@hienlh/ppm 0.13.55 → 0.13.56

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 (80) hide show
  1. package/assets/skills/ppm/SKILL.md +1 -1
  2. package/assets/skills/ppm/references/http-api.md +2 -1
  3. package/dist/web/assets/ai-settings-section-BH2UOQH-.js +1 -0
  4. package/dist/web/assets/{api-settings-BJTjIG4U.js → api-settings-uQKmeGkl.js} +1 -1
  5. package/dist/web/assets/architecture-PBZL5I3N-DLKD1Xjj.js +1 -0
  6. package/dist/web/assets/{audio-preview-B53oeW0y.js → audio-preview-LCxWo-25.js} +1 -1
  7. package/dist/web/assets/chat-tab-3GUmdAJN.js +16 -0
  8. package/dist/web/assets/code-editor-Cd7NZ0VX.js +8 -0
  9. package/dist/web/assets/{conflict-editor-C3l3pgtV.js → conflict-editor-No7IVPRN.js} +1 -1
  10. package/dist/web/assets/{csv-preview-asMfgR0r.js → csv-preview-DgArUJhd.js} +1 -1
  11. package/dist/web/assets/{data-grid-overlay-editor-DGjqvYn6.js → data-grid-overlay-editor-CmduzuPM.js} +1 -1
  12. package/dist/web/assets/{database-viewer-DNYgu_Jv.js → database-viewer-zeQXxkg-.js} +1 -1
  13. package/dist/web/assets/{diff-viewer-Dec4mKgl.js → diff-viewer-DmSkyBaT.js} +1 -1
  14. package/dist/web/assets/{esm-xVTUq__o.js → esm-JPvheKDJ.js} +1 -1
  15. package/dist/web/assets/{extension-webview-b7T0yAq2.js → extension-webview-DCwz2Wso.js} +1 -1
  16. package/dist/web/assets/{git-log-panel-CWTTJERX.js → git-log-panel-Bk7Eh-Bn.js} +1 -1
  17. package/dist/web/assets/gitGraph-HDMCJU4V-2a0r4GHr.js +1 -0
  18. package/dist/web/assets/{glide-data-grid-_9gGGfZy.js → glide-data-grid-ha8hjunf.js} +6 -6
  19. package/dist/web/assets/{image-preview-CzXKlWft.js → image-preview-C1VLHLdJ.js} +1 -1
  20. package/dist/web/assets/{index-1_isAfRS.js → index-CP6EIXkh.js} +8 -8
  21. package/dist/web/assets/index-DwvSM9vu.css +2 -0
  22. package/dist/web/assets/info-3K5VOQVL-CWKw4e0V.js +1 -0
  23. package/dist/web/assets/{input-By_lZeCs.js → input-B78ol0hV.js} +1 -1
  24. package/dist/web/assets/keybindings-store-Rf9YKWAp.js +1 -0
  25. package/dist/web/assets/{markdown-renderer-DWIBF9Jg.js → markdown-renderer-C7ZoGWso.js} +3 -3
  26. package/dist/web/assets/notification-store-C3tg-ZXm.js +1 -0
  27. package/dist/web/assets/{number-overlay-editor-DtUBprPW.js → number-overlay-editor-DS-qf63L.js} +1 -1
  28. package/dist/web/assets/packet-RMMSAZCW-Ar00Wbhd.js +1 -0
  29. package/dist/web/assets/{panel-store-C9VAhbZz.js → panel-store-B1pOXkyS.js} +1 -1
  30. package/dist/web/assets/{pdf-preview-C51mDesS.js → pdf-preview-BdmR2RsT.js} +1 -1
  31. package/dist/web/assets/pie-UPGHQEXC-Q4ssDdib.js +1 -0
  32. package/dist/web/assets/{port-forwarding-tab-BmRMiN32.js → port-forwarding-tab-BMb8neu0.js} +1 -1
  33. package/dist/web/assets/{postgres-viewer-DuiEoUGK.js → postgres-viewer-DkM6ndux.js} +3 -3
  34. package/dist/web/assets/{project-store-DlbHpIq0.js → project-store-BnvrVKBw.js} +1 -1
  35. package/dist/web/assets/radar-KQ55EAFF-kq5v4OKX.js +1 -0
  36. package/dist/web/assets/{settings-store-DQUFTPk2.js → settings-store-CSDOihqv.js} +2 -2
  37. package/dist/web/assets/settings-tab-WdL5pYxG.js +1 -0
  38. package/dist/web/assets/{sql-query-editor-BA80nuKp.js → sql-query-editor-CNwOnFgF.js} +1 -1
  39. package/dist/web/assets/{sqlite-viewer-Bev2XJe7.js → sqlite-viewer-FFlsRPWf.js} +1 -1
  40. package/dist/web/assets/system-monitor-tab-CefzxLVi.js +1 -0
  41. package/dist/web/assets/{tab-store-CIcbSn0c.js → tab-store-DzftzxTL.js} +1 -1
  42. package/dist/web/assets/{terminal-tab-Ca5kyUS7.js → terminal-tab-C4MNU5S3.js} +1 -1
  43. package/dist/web/assets/{x-ClICkcxR.js → trash-2-DkIfBY8d.js} +1 -1
  44. package/dist/web/assets/treemap-KZPCXAKY-DChODgHt.js +1 -0
  45. package/dist/web/assets/{use-blob-url-VgTGpely.js → use-blob-url-CI2h4qu0.js} +1 -1
  46. package/dist/web/assets/{use-monaco-theme-BLIgarH5.js → use-monaco-theme-qx6SfVRk.js} +1 -1
  47. package/dist/web/assets/{vendor-mermaid-DkqjpqJK.js → vendor-mermaid-DCie7hiR.js} +2 -2
  48. package/dist/web/assets/{video-preview-Bvd0OaYA.js → video-preview-izCy3xj7.js} +1 -1
  49. package/dist/web/assets/x-DfF6D5Js.js +1 -0
  50. package/dist/web/index.html +15 -14
  51. package/dist/web/sw.js +1 -1
  52. package/package.json +1 -1
  53. package/src/server/routes/resources.ts +28 -1
  54. package/src/web/components/system/system-monitor-group-row.tsx +133 -0
  55. package/src/web/components/system/system-monitor-tab.tsx +65 -73
  56. package/dist/web/assets/ai-settings-section-AxLbNnLW.js +0 -1
  57. package/dist/web/assets/architecture-PBZL5I3N-CkdUQjA_.js +0 -1
  58. package/dist/web/assets/chat-tab-Clzw7eDP.js +0 -16
  59. package/dist/web/assets/code-editor-BgU5lFVC.js +0 -8
  60. package/dist/web/assets/gitGraph-HDMCJU4V-D3UR56AG.js +0 -1
  61. package/dist/web/assets/index-CDPVPZHJ.css +0 -2
  62. package/dist/web/assets/info-3K5VOQVL-DUhLSKI2.js +0 -1
  63. package/dist/web/assets/keybindings-store-BicDU0b1.js +0 -1
  64. package/dist/web/assets/notification-store-D_2wCv0z.js +0 -1
  65. package/dist/web/assets/packet-RMMSAZCW-BIpeVUGW.js +0 -1
  66. package/dist/web/assets/pie-UPGHQEXC-CNoizzjb.js +0 -1
  67. package/dist/web/assets/radar-KQ55EAFF-7dns-ho5.js +0 -1
  68. package/dist/web/assets/settings-tab-p3lxp6_T.js +0 -1
  69. package/dist/web/assets/system-monitor-tab-DfpsOgL3.js +0 -1
  70. package/dist/web/assets/treemap-KZPCXAKY-D3DZCLoE.js +0 -1
  71. /package/dist/web/assets/{api-client-BK4NPNoY.js → api-client-DiZgVOok.js} +0 -0
  72. /package/dist/web/assets/{csv-parser-D1b_lg2T.js → csv-parser-D8VHWVA6.js} +0 -0
  73. /package/dist/web/assets/{data-grid-types-DzL5W2em.js → data-grid-types-C29KDkZJ.js} +0 -0
  74. /package/dist/web/assets/{dist-CohudVKa.js → dist-DeY41KFi.js} +0 -0
  75. /package/dist/web/assets/{dist-BM2EHhLH.js → dist-PPUhQONj.js} +0 -0
  76. /package/dist/web/assets/{katex-CHaeM9QC.js → katex-DUj5OG1J.js} +0 -0
  77. /package/dist/web/assets/{lib-LPmTkMu4.js → lib-DrypSCq8.js} +0 -0
  78. /package/dist/web/assets/{react-DHBl6KRc.js → react-CfveccaI.js} +0 -0
  79. /package/dist/web/assets/{utils-CSCvNZxE.js → utils-E0yyGxXt.js} +0 -0
  80. /package/dist/web/assets/{vendor-xterm-vh96p1Au.js → vendor-xterm-t3d5xZdz.js} +0 -0
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/terminal-tab-Ca5kyUS7.js","assets/rolldown-runtime-FhOqtrmT.js","assets/vendor-mermaid-DkqjpqJK.js","assets/vendor-ui-UXCWAcmi.js","assets/vendor-markdown-0Mxgxy0L.js","assets/vendor-xterm-vh96p1Au.js","assets/vendor-xterm-BrP-ENHg.css","assets/utils-CSCvNZxE.js","assets/settings-store-DQUFTPk2.js","assets/react-DHBl6KRc.js","assets/api-client-BK4NPNoY.js","assets/panel-store-C9VAhbZz.js","assets/chat-tab-Clzw7eDP.js","assets/input-By_lZeCs.js","assets/createLucideIcon-BjHrJDVb.js","assets/x-ClICkcxR.js","assets/arrow-up-Rcw6_KKu.js","assets/ai-settings-section-AxLbNnLW.js","assets/chevron-down-BMo4cBth.js","assets/globe-CQ8NAYvi.js","assets/refresh-cw-CRD2qr4U.js","assets/api-settings-BJTjIG4U.js","assets/chevron-right-CD8e6Aj4.js","assets/code-DiNmA3eR.js","assets/search-D90WJ5fo.js","assets/sparkles-KCOEy7QI.js","assets/project-store-DlbHpIq0.js","assets/tab-store-CIcbSn0c.js","assets/code-editor-BgU5lFVC.js","assets/glide-data-grid-_9gGGfZy.js","assets/dist-BM2EHhLH.js","assets/data-grid-types-DzL5W2em.js","assets/use-monaco-theme-BLIgarH5.js","assets/arrow-down-D825m4vm.js","assets/database-Dc8mr-dP.js","assets/text-wrap-AZErifCu.js","assets/csv-parser-D1b_lg2T.js","assets/glide-data-grid-nthEL3fk.css","assets/file-exclamation-point-B__2Hrd6.js","assets/table-2wDtM4_B.js","assets/database-viewer-DNYgu_Jv.js","assets/sql-query-editor-BA80nuKp.js","assets/sqlite-viewer-Bev2XJe7.js","assets/postgres-viewer-DuiEoUGK.js","assets/dist-CohudVKa.js","assets/lib-LPmTkMu4.js","assets/diff-viewer-Dec4mKgl.js","assets/settings-tab-p3lxp6_T.js","assets/port-forwarding-tab-BmRMiN32.js","assets/wifi-LJEyIdXf.js","assets/extension-webview-b7T0yAq2.js","assets/conflict-editor-C3l3pgtV.js","assets/system-monitor-tab-DfpsOgL3.js","assets/git-log-panel-CWTTJERX.js","assets/keybindings-store-BicDU0b1.js","assets/notification-store-D_2wCv0z.js"])))=>i.map(i=>d[i]);
2
- import{o as e,t}from"./rolldown-runtime-FhOqtrmT.js";import{b as n,x as r}from"./vendor-markdown-0Mxgxy0L.js";import{A as i,C as a,D as o,E as s,F as c,I as l,L as u,M as d,N as f,O as p,P as m,R as h,T as g,Y as _,_ as v,b as y,i as b,j as x,k as S,t as C,v as w,w as T,x as E,y as D,z as O}from"./vendor-ui-UXCWAcmi.js";import{t as k}from"./createLucideIcon-BjHrJDVb.js";import{n as ee,t as A}from"./eye-off-BacF7RVS.js";import{a as te,c as ne,d as re,f as j,h as M,i as N,l as ie,m as ae,o as P,p as F,s as I,t as oe,u as L}from"./ai-settings-section-AxLbNnLW.js";import{n as se,t as ce}from"./chevron-down-BMo4cBth.js";import{n as le,t as ue}from"./globe-CQ8NAYvi.js";import{n as de,t as fe}from"./database-Dc8mr-dP.js";import{t as pe}from"./chevron-right-CD8e6Aj4.js";import{a as me,c as he,i as ge,l as R,n as _e,o as ve,r as ye,s as be,t as z,u as xe}from"./input-By_lZeCs.js";import{i as Se,n as Ce,r as we,t as Te}from"./search-D90WJ5fo.js";import{a as Ee,i as De,n as Oe,r as ke,t as Ae}from"./x-ClICkcxR.js";import{t as je}from"./refresh-cw-CRD2qr4U.js";import{t as Me}from"./react-DHBl6KRc.js";import{a as Ne,i as B,r as Pe,t as V}from"./api-client-BK4NPNoY.js";import{n as Fe,t as Ie}from"./settings-store-DQUFTPk2.js";import{K as Le}from"./vendor-mermaid-DkqjpqJK.js";import{n as H,t as Re}from"./utils-CSCvNZxE.js";import{i as ze,n as Be,o as Ve,r as He,s as Ue,t as U}from"./panel-store-C9VAhbZz.js";import{n as We,t as Ge}from"./project-store-DlbHpIq0.js";import{t as W}from"./tab-store-CIcbSn0c.js";import{_ as Ke,d as qe}from"./api-settings-BJTjIG4U.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Je=t((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&A(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&A(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,ee=k.port2;k.port1.onmessage=D,O=function(){ee.postMessage(null)}}else O=function(){_(D,0)};function A(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,A(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),Ye=t(((e,t)=>{t.exports=Je()})),Xe=t((e=>{var t=Ye(),n=r(),i=_();function a(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function o(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function s(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function c(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function u(e){if(s(e)!==e)throw Error(a(188))}function d(e){var t=e.alternate;if(!t){if(t=s(e),t===null)throw Error(a(188));return t===e?e:null}for(var n=e,r=t;;){var i=n.return;if(i===null)break;var o=i.alternate;if(o===null){if(r=i.return,r!==null){n=r;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===n)return u(i),e;if(o===r)return u(i),t;o=o.sibling}throw Error(a(188))}if(n.return!==r.return)n=i,r=o;else{for(var c=!1,l=i.child;l;){if(l===n){c=!0,n=i,r=o;break}if(l===r){c=!0,r=i,n=o;break}l=l.sibling}if(!c){for(l=o.child;l;){if(l===n){c=!0,n=o,r=i;break}if(l===r){c=!0,r=o,n=i;break}l=l.sibling}if(!c)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(n.tag!==3)throw Error(a(188));return n.stateNode.current===n?e:t}function f(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=f(e),t!==null)return t;e=e.sibling}return null}var p=Object.assign,m=Symbol.for(`react.element`),h=Symbol.for(`react.transitional.element`),g=Symbol.for(`react.portal`),v=Symbol.for(`react.fragment`),y=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),x=Symbol.for(`react.consumer`),S=Symbol.for(`react.context`),C=Symbol.for(`react.forward_ref`),w=Symbol.for(`react.suspense`),T=Symbol.for(`react.suspense_list`),E=Symbol.for(`react.memo`),D=Symbol.for(`react.lazy`),O=Symbol.for(`react.activity`),k=Symbol.for(`react.memo_cache_sentinel`),ee=Symbol.iterator;function A(e){return typeof e!=`object`||!e?null:(e=ee&&e[ee]||e[`@@iterator`],typeof e==`function`?e:null)}var te=Symbol.for(`react.client.reference`);function ne(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===te?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case v:return`Fragment`;case b:return`Profiler`;case y:return`StrictMode`;case w:return`Suspense`;case T:return`SuspenseList`;case O:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case g:return`Portal`;case S:return e.displayName||`Context`;case x:return(e._context.displayName||`Context`)+`.Consumer`;case C:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case E:return t=e.displayName||null,t===null?ne(e.type)||`Memo`:t;case D:t=e._payload,e=e._init;try{return ne(e(t))}catch{}}return null}var re=Array.isArray,j=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,M=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,N={pending:!1,data:null,method:null,action:null},ie=[],ae=-1;function P(e){return{current:e}}function F(e){0>ae||(e.current=ie[ae],ie[ae]=null,ae--)}function I(e,t){ae++,ie[ae]=e.current,e.current=t}var oe=P(null),L=P(null),se=P(null),ce=P(null);function le(e,t){switch(I(se,t),I(L,e),I(oe,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}F(oe),I(oe,e)}function ue(){F(oe),F(L),F(se)}function de(e){e.memoizedState!==null&&I(ce,e);var t=oe.current,n=Hd(t,e.type);t!==n&&(I(L,e),I(oe,n))}function fe(e){L.current===e&&(F(oe),F(L)),ce.current===e&&(F(ce),Qf._currentValue=N)}var pe,me;function he(e){if(pe===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);pe=t&&t[1]||``,me=-1<e.stack.indexOf(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/terminal-tab-C4MNU5S3.js","assets/rolldown-runtime-FhOqtrmT.js","assets/vendor-mermaid-DCie7hiR.js","assets/vendor-ui-UXCWAcmi.js","assets/vendor-markdown-0Mxgxy0L.js","assets/vendor-xterm-t3d5xZdz.js","assets/vendor-xterm-BrP-ENHg.css","assets/utils-E0yyGxXt.js","assets/settings-store-CSDOihqv.js","assets/react-CfveccaI.js","assets/api-client-DiZgVOok.js","assets/panel-store-B1pOXkyS.js","assets/chat-tab-3GUmdAJN.js","assets/input-B78ol0hV.js","assets/createLucideIcon-BjHrJDVb.js","assets/x-DfF6D5Js.js","assets/arrow-up-Rcw6_KKu.js","assets/ai-settings-section-BH2UOQH-.js","assets/chevron-down-BMo4cBth.js","assets/globe-CQ8NAYvi.js","assets/trash-2-DkIfBY8d.js","assets/refresh-cw-CRD2qr4U.js","assets/api-settings-uQKmeGkl.js","assets/chevron-right-CD8e6Aj4.js","assets/code-DiNmA3eR.js","assets/search-D90WJ5fo.js","assets/sparkles-KCOEy7QI.js","assets/project-store-BnvrVKBw.js","assets/tab-store-DzftzxTL.js","assets/code-editor-Cd7NZ0VX.js","assets/glide-data-grid-ha8hjunf.js","assets/dist-PPUhQONj.js","assets/data-grid-types-C29KDkZJ.js","assets/use-monaco-theme-qx6SfVRk.js","assets/arrow-down-D825m4vm.js","assets/database-Dc8mr-dP.js","assets/text-wrap-AZErifCu.js","assets/csv-parser-D8VHWVA6.js","assets/glide-data-grid-nthEL3fk.css","assets/file-exclamation-point-B__2Hrd6.js","assets/table-2wDtM4_B.js","assets/database-viewer-zeQXxkg-.js","assets/sql-query-editor-CNwOnFgF.js","assets/sqlite-viewer-FFlsRPWf.js","assets/postgres-viewer-DkM6ndux.js","assets/dist-DeY41KFi.js","assets/lib-DrypSCq8.js","assets/diff-viewer-DmSkyBaT.js","assets/settings-tab-WdL5pYxG.js","assets/port-forwarding-tab-BMb8neu0.js","assets/wifi-LJEyIdXf.js","assets/extension-webview-DCwz2Wso.js","assets/conflict-editor-No7IVPRN.js","assets/system-monitor-tab-CefzxLVi.js","assets/git-log-panel-Bk7Eh-Bn.js","assets/keybindings-store-Rf9YKWAp.js","assets/notification-store-C3tg-ZXm.js"])))=>i.map(i=>d[i]);
2
+ import{o as e,t}from"./rolldown-runtime-FhOqtrmT.js";import{b as n,x as r}from"./vendor-markdown-0Mxgxy0L.js";import{A as i,C as a,D as o,E as s,F as c,I as l,L as u,M as d,N as f,O as p,P as m,R as h,T as g,Y as _,_ as v,b as y,i as b,j as x,k as S,t as C,v as w,w as T,x as E,y as D,z as O}from"./vendor-ui-UXCWAcmi.js";import{t as k}from"./createLucideIcon-BjHrJDVb.js";import{n as ee,t as A}from"./eye-off-BacF7RVS.js";import{a as te,c as ne,d as re,f as j,h as M,i as N,l as ie,m as ae,o as P,p as F,s as I,t as oe,u as L}from"./ai-settings-section-BH2UOQH-.js";import{n as se,t as ce}from"./chevron-down-BMo4cBth.js";import{n as le,t as ue}from"./globe-CQ8NAYvi.js";import{n as de,t as fe}from"./database-Dc8mr-dP.js";import{t as pe}from"./chevron-right-CD8e6Aj4.js";import{a as me,c as he,i as ge,l as R,n as _e,o as ve,r as ye,s as be,t as z,u as xe}from"./input-B78ol0hV.js";import{i as Se,n as Ce,r as we,t as Te}from"./search-D90WJ5fo.js";import{i as Ee,n as De,r as Oe,t as ke}from"./trash-2-DkIfBY8d.js";import{t as Ae}from"./refresh-cw-CRD2qr4U.js";import{t as je}from"./x-DfF6D5Js.js";import{t as Me}from"./react-CfveccaI.js";import{a as Ne,i as B,r as Pe,t as V}from"./api-client-DiZgVOok.js";import{n as Fe,t as Ie}from"./settings-store-CSDOihqv.js";import{K as Le}from"./vendor-mermaid-DCie7hiR.js";import{n as H,t as Re}from"./utils-E0yyGxXt.js";import{i as ze,n as Be,o as Ve,r as He,s as Ue,t as U}from"./panel-store-B1pOXkyS.js";import{n as We,t as Ge}from"./project-store-BnvrVKBw.js";import{t as W}from"./tab-store-DzftzxTL.js";import{_ as Ke,d as qe}from"./api-settings-uQKmeGkl.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Je=t((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&A(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&A(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,ee=k.port2;k.port1.onmessage=D,O=function(){ee.postMessage(null)}}else O=function(){_(D,0)};function A(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,A(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),Ye=t(((e,t)=>{t.exports=Je()})),Xe=t((e=>{var t=Ye(),n=r(),i=_();function a(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function o(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function s(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function c(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function u(e){if(s(e)!==e)throw Error(a(188))}function d(e){var t=e.alternate;if(!t){if(t=s(e),t===null)throw Error(a(188));return t===e?e:null}for(var n=e,r=t;;){var i=n.return;if(i===null)break;var o=i.alternate;if(o===null){if(r=i.return,r!==null){n=r;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===n)return u(i),e;if(o===r)return u(i),t;o=o.sibling}throw Error(a(188))}if(n.return!==r.return)n=i,r=o;else{for(var c=!1,l=i.child;l;){if(l===n){c=!0,n=i,r=o;break}if(l===r){c=!0,r=i,n=o;break}l=l.sibling}if(!c){for(l=o.child;l;){if(l===n){c=!0,n=o,r=i;break}if(l===r){c=!0,r=o,n=i;break}l=l.sibling}if(!c)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(n.tag!==3)throw Error(a(188));return n.stateNode.current===n?e:t}function f(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=f(e),t!==null)return t;e=e.sibling}return null}var p=Object.assign,m=Symbol.for(`react.element`),h=Symbol.for(`react.transitional.element`),g=Symbol.for(`react.portal`),v=Symbol.for(`react.fragment`),y=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),x=Symbol.for(`react.consumer`),S=Symbol.for(`react.context`),C=Symbol.for(`react.forward_ref`),w=Symbol.for(`react.suspense`),T=Symbol.for(`react.suspense_list`),E=Symbol.for(`react.memo`),D=Symbol.for(`react.lazy`),O=Symbol.for(`react.activity`),k=Symbol.for(`react.memo_cache_sentinel`),ee=Symbol.iterator;function A(e){return typeof e!=`object`||!e?null:(e=ee&&e[ee]||e[`@@iterator`],typeof e==`function`?e:null)}var te=Symbol.for(`react.client.reference`);function ne(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===te?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case v:return`Fragment`;case b:return`Profiler`;case y:return`StrictMode`;case w:return`Suspense`;case T:return`SuspenseList`;case O:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case g:return`Portal`;case S:return e.displayName||`Context`;case x:return(e._context.displayName||`Context`)+`.Consumer`;case C:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case E:return t=e.displayName||null,t===null?ne(e.type)||`Memo`:t;case D:t=e._payload,e=e._init;try{return ne(e(t))}catch{}}return null}var re=Array.isArray,j=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,M=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,N={pending:!1,data:null,method:null,action:null},ie=[],ae=-1;function P(e){return{current:e}}function F(e){0>ae||(e.current=ie[ae],ie[ae]=null,ae--)}function I(e,t){ae++,ie[ae]=e.current,e.current=t}var oe=P(null),L=P(null),se=P(null),ce=P(null);function le(e,t){switch(I(se,t),I(L,e),I(oe,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}F(oe),I(oe,e)}function ue(){F(oe),F(L),F(se)}function de(e){e.memoizedState!==null&&I(ce,e);var t=oe.current,n=Hd(t,e.type);t!==n&&(I(L,e),I(oe,n))}function fe(e){L.current===e&&(F(oe),F(L)),ce.current===e&&(F(ce),Qf._currentValue=N)}var pe,me;function he(e){if(pe===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);pe=t&&t[1]||``,me=-1<e.stack.indexOf(`
3
3
  at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
4
4
  `+pe+e+me}var ge=!1;function R(e,t){if(!e||ge)return``;ge=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,`props`,{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,`name`,{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
5
5
  `),l=s.split(`
@@ -7,16 +7,16 @@ import{o as e,t}from"./rolldown-runtime-FhOqtrmT.js";import{b as n,x as r}from".
7
7
  `+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ge=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?he(n):``}function _e(e,t){switch(e.tag){case 26:case 27:case 5:return he(e.type);case 16:return he(`Lazy`);case 13:return e.child!==t&&t!==null?he(`Suspense Fallback`):he(`Suspense`);case 19:return he(`SuspenseList`);case 0:case 15:return R(e.type,!1);case 11:return R(e.type.render,!1);case 1:return R(e.type,!0);case 31:return he(`Activity`);default:return``}}function ve(e){try{var t=``,n=null;do t+=_e(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
8
8
  Error generating stack: `+e.message+`
9
9
  `+e.stack}}var ye=Object.prototype.hasOwnProperty,be=t.unstable_scheduleCallback,z=t.unstable_cancelCallback,xe=t.unstable_shouldYield,Se=t.unstable_requestPaint,Ce=t.unstable_now,we=t.unstable_getCurrentPriorityLevel,Te=t.unstable_ImmediatePriority,Ee=t.unstable_UserBlockingPriority,De=t.unstable_NormalPriority,Oe=t.unstable_LowPriority,ke=t.unstable_IdlePriority,Ae=t.log,je=t.unstable_setDisableYieldValue,Me=null,Ne=null;function B(e){if(typeof Ae==`function`&&je(e),Ne&&typeof Ne.setStrictMode==`function`)try{Ne.setStrictMode(Me,e)}catch{}}var Pe=Math.clz32?Math.clz32:Ie,V=Math.log,Fe=Math.LN2;function Ie(e){return e>>>=0,e===0?32:31-(V(e)/Fe|0)|0}var Le=256,H=262144,Re=4194304;function ze(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Be(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=ze(n))):i=ze(o):i=ze(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=ze(n))):i=ze(o)):i=ze(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Ve(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function He(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ue(){var e=Re;return Re<<=1,!(Re&62914560)&&(Re=4194304),e}function U(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function We(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ge(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-Pe(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&W(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function W(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Pe(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function Ke(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Pe(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function qe(e,t){var n=t&-t;return n=n&42?1:Je(n),(n&(e.suspendedLanes|t))===0?n:0}function Je(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function Xe(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function Ze(){var e=M.p;return e===0?(e=window.event,e===void 0?32:mp(e.type)):e}function Qe(e,t){var n=M.p;try{return M.p=e,t()}finally{M.p=n}}var $e=Math.random().toString(36).slice(2),et=`__reactFiber$`+$e,tt=`__reactProps$`+$e,nt=`__reactContainer$`+$e,rt=`__reactEvents$`+$e,it=`__reactListeners$`+$e,at=`__reactHandles$`+$e,ot=`__reactResources$`+$e,st=`__reactMarker$`+$e;function ct(e){delete e[et],delete e[tt],delete e[rt],delete e[it],delete e[at]}function lt(e){var t=e[et];if(t)return t;for(var n=e.parentNode;n;){if(t=n[nt]||n[et]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=df(e);e!==null;){if(n=e[et])return n;e=df(e)}return t}e=n,n=e.parentNode}return null}function ut(e){if(e=e[et]||e[nt]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function dt(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(a(33))}function ft(e){var t=e[ot];return t||=e[ot]={hoistableStyles:new Map,hoistableScripts:new Map},t}function pt(e){e[st]=!0}var mt=new Set,ht={};function gt(e,t){_t(e,t),_t(e+`Capture`,t)}function _t(e,t){for(ht[e]=t,e=0;e<t.length;e++)mt.add(t[e])}var vt=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`),yt={},bt={};function xt(e){return ye.call(bt,e)?!0:ye.call(yt,e)?!1:vt.test(e)?bt[e]=!0:(yt[e]=!0,!1)}function St(e,t,n){if(xt(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}function Ct(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function wt(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function Tt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function Et(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function Dt(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ot(e){if(!e._valueTracker){var t=Et(e)?`checked`:`value`;e._valueTracker=Dt(e,t,``+e[t])}}function kt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=Et(e)?e.checked?`true`:`false`:e.value),e=r,e===n?!1:(t.setValue(e),!0)}function At(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var jt=/[\n"\\]/g;function Mt(e){return e.replace(jt,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Nt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+Tt(t)):e.value!==``+Tt(t)&&(e.value=``+Tt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Ft(e,o,Tt(n)):Ft(e,o,Tt(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+Tt(s):e.removeAttribute(`name`)}function Pt(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){Ot(e);return}n=n==null?``:``+Tt(n),t=t==null?n:``+Tt(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),Ot(e)}function Ft(e,t,n){t===`number`&&At(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function It(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+Tt(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Lt(e,t,n){if(t!=null&&(t=``+Tt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+Tt(n)}function Rt(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(a(92));if(re(r)){if(1<r.length)throw Error(a(93));r=r[0]}n=r}n??=``,t=n}n=Tt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Ot(e)}function zt(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Bt=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function Vt(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||Bt.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function Ht(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(a(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var i in t)r=t[i],t.hasOwnProperty(i)&&n[i]!==r&&Vt(e,i,r)}else for(var o in t)t.hasOwnProperty(o)&&Vt(e,o,t[o])}function Ut(e){if(e.indexOf(`-`)===-1)return!1;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var Wt=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),Gt=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Kt(e){return Gt.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function qt(){}var Jt=null;function Yt(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Xt=null,Zt=null;function G(e){var t=ut(e);if(t&&(e=t.stateNode)){var n=e[tt]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Nt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+Mt(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var i=r[tt]||null;if(!i)throw Error(a(90));Nt(r,i.value,i.defaultValue,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&kt(r)}break a;case`textarea`:Lt(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&It(e,!!n.multiple,t,!1)}}}var Qt=!1;function $t(e,t,n){if(Qt)return e(t,n);Qt=!0;try{return e(t)}finally{if(Qt=!1,(Xt!==null||Zt!==null)&&(vu(),Xt&&(t=Xt,e=Zt,Zt=Xt=null,G(t),e)))for(t=0;t<e.length;t++)G(e[t])}}function en(e,t){var n=e.stateNode;if(n===null)return null;var r=n[tt]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=!(e===`button`||e===`input`||e===`select`||e===`textarea`)),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(a(231,t,typeof n));return n}var tn=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),nn=!1;if(tn)try{var rn={};Object.defineProperty(rn,`passive`,{get:function(){nn=!0}}),window.addEventListener(`test`,rn,rn),window.removeEventListener(`test`,rn,rn)}catch{nn=!1}var an=null,on=null,sn=null;function cn(){if(sn)return sn;var e,t=on,n=t.length,r,i=`value`in an?an.value:an.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return sn=i.slice(e,1<r?1-r:void 0)}function ln(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function un(){return!0}function dn(){return!1}function fn(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?un:dn,this.isPropagationStopped=dn,this}return p(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=un)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=un)},persist:function(){},isPersistent:un}),t}var pn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},mn=fn(pn),hn=p({},pn,{view:0,detail:0}),gn=fn(hn),_n,vn,yn,bn=p({},hn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:jn,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==yn&&(yn&&e.type===`mousemove`?(_n=e.screenX-yn.screenX,vn=e.screenY-yn.screenY):vn=_n=0,yn=e),_n)},movementY:function(e){return`movementY`in e?e.movementY:vn}}),xn=fn(bn),Sn=fn(p({},bn,{dataTransfer:0})),Cn=fn(p({},hn,{relatedTarget:0})),wn=fn(p({},pn,{animationName:0,elapsedTime:0,pseudoElement:0})),Tn=fn(p({},pn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),En=fn(p({},pn,{data:0})),Dn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},On={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},kn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function An(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=kn[e])?!!t[e]:!1}function jn(){return An}var Mn=fn(p({},hn,{key:function(e){if(e.key){var t=Dn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=ln(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?On[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:jn,charCode:function(e){return e.type===`keypress`?ln(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?ln(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),Nn=fn(p({},bn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Pn=fn(p({},hn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:jn})),Fn=fn(p({},pn,{propertyName:0,elapsedTime:0,pseudoElement:0})),In=fn(p({},bn,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Ln=fn(p({},pn,{newState:0,oldState:0})),Rn=[9,13,27,32],K=tn&&`CompositionEvent`in window,zn=null;tn&&`documentMode`in document&&(zn=document.documentMode);var Bn=tn&&`TextEvent`in window&&!zn,Vn=tn&&(!K||zn&&8<zn&&11>=zn),Hn=` `,Un=!1;function Wn(e,t){switch(e){case`keyup`:return Rn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Gn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Kn=!1;function qn(e,t){switch(e){case`compositionend`:return Gn(t);case`keypress`:return t.which===32?(Un=!0,Hn):null;case`textInput`:return e=t.data,e===Hn&&Un?null:e;default:return null}}function Jn(e,t){if(Kn)return e===`compositionend`||!K&&Wn(e,t)?(e=cn(),sn=on=an=null,Kn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return Vn&&t.locale!==`ko`?null:t.data;default:return null}}var Yn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Xn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!Yn[e.type]:t===`textarea`}function Zn(e,t,n,r){Xt?Zt?Zt.push(r):Zt=[r]:Xt=r,t=Td(t,`onChange`),0<t.length&&(n=new mn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var Qn=null,$n=null;function er(e){vd(e,0)}function tr(e){if(kt(dt(e)))return e}function nr(e,t){if(e===`change`)return t}var rr=!1;if(tn){var ir;if(tn){var ar=`oninput`in document;if(!ar){var or=document.createElement(`div`);or.setAttribute(`oninput`,`return;`),ar=typeof or.oninput==`function`}ir=ar}else ir=!1;rr=ir&&(!document.documentMode||9<document.documentMode)}function sr(){Qn&&(Qn.detachEvent(`onpropertychange`,cr),$n=Qn=null)}function cr(e){if(e.propertyName===`value`&&tr($n)){var t=[];Zn(t,$n,e,Yt(e)),$t(er,t)}}function lr(e,t,n){e===`focusin`?(sr(),Qn=t,$n=n,Qn.attachEvent(`onpropertychange`,cr)):e===`focusout`&&sr()}function ur(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return tr($n)}function dr(e,t){if(e===`click`)return tr(t)}function fr(e,t){if(e===`input`||e===`change`)return tr(t)}function pr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var mr=typeof Object.is==`function`?Object.is:pr;function hr(e,t){if(mr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!ye.call(t,i)||!mr(e[i],t[i]))return!1}return!0}function gr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function q(e,t){var n=gr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=gr(n)}}function _r(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?_r(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function vr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=At(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=At(e.document)}return t}function yr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var br=tn&&`documentMode`in document&&11>=document.documentMode,xr=null,Sr=null,Cr=null,wr=!1;function Tr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;wr||xr==null||xr!==At(r)||(r=xr,`selectionStart`in r&&yr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Cr&&hr(Cr,r)||(Cr=r,r=Td(Sr,`onSelect`),0<r.length&&(t=new mn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=xr)))}function Er(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Dr={animationend:Er(`Animation`,`AnimationEnd`),animationiteration:Er(`Animation`,`AnimationIteration`),animationstart:Er(`Animation`,`AnimationStart`),transitionrun:Er(`Transition`,`TransitionRun`),transitionstart:Er(`Transition`,`TransitionStart`),transitioncancel:Er(`Transition`,`TransitionCancel`),transitionend:Er(`Transition`,`TransitionEnd`)},Or={},kr={};tn&&(kr=document.createElement(`div`).style,`AnimationEvent`in window||(delete Dr.animationend.animation,delete Dr.animationiteration.animation,delete Dr.animationstart.animation),`TransitionEvent`in window||delete Dr.transitionend.transition);function Ar(e){if(Or[e])return Or[e];if(!Dr[e])return e;var t=Dr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in kr)return Or[e]=t[n];return e}var jr=Ar(`animationend`),Mr=Ar(`animationiteration`),Nr=Ar(`animationstart`),Pr=Ar(`transitionrun`),Fr=Ar(`transitionstart`),Ir=Ar(`transitioncancel`),Lr=Ar(`transitionend`),Rr=new Map,zr=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);zr.push(`scrollEnd`);function Br(e,t){Rr.set(e,t),gt(t,[e])}var Vr=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},Hr=[],Ur=0,Wr=0;function Gr(){for(var e=Ur,t=Wr=Ur=0;t<e;){var n=Hr[t];Hr[t++]=null;var r=Hr[t];Hr[t++]=null;var i=Hr[t];Hr[t++]=null;var a=Hr[t];if(Hr[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&Yr(n,i,a)}}function Kr(e,t,n,r){Hr[Ur++]=e,Hr[Ur++]=t,Hr[Ur++]=n,Hr[Ur++]=r,Wr|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function qr(e,t,n,r){return Kr(e,t,n,r),Xr(e)}function Jr(e,t){return Kr(e,null,null,t),Xr(e)}function Yr(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Pe(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function Xr(e){if(50<lu)throw lu=0,uu=null,Error(a(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Zr={};function Qr(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function $r(e,t,n,r){return new Qr(e,t,n,r)}function ei(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ti(e,t){var n=e.alternate;return n===null?(n=$r(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function ni(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ri(e,t,n,r,i,o){var s=0;if(r=e,typeof e==`function`)ei(e)&&(s=1);else if(typeof e==`string`)s=Uf(e,n,oe.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case O:return e=$r(31,n,t,i),e.elementType=O,e.lanes=o,e;case v:return ii(n.children,i,o,t);case y:s=8,i|=24;break;case b:return e=$r(12,n,t,i|2),e.elementType=b,e.lanes=o,e;case w:return e=$r(13,n,t,i),e.elementType=w,e.lanes=o,e;case T:return e=$r(19,n,t,i),e.elementType=T,e.lanes=o,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case S:s=10;break a;case x:s=9;break a;case C:s=11;break a;case E:s=14;break a;case D:s=16,r=null;break a}s=29,n=Error(a(130,e===null?`null`:typeof e,``)),r=null}return t=$r(s,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function ii(e,t,n,r){return e=$r(7,e,r,t),e.lanes=n,e}function ai(e,t,n){return e=$r(6,e,null,t),e.lanes=n,e}function oi(e){var t=$r(18,null,null,0);return t.stateNode=e,t}function si(e,t,n){return t=$r(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var ci=new WeakMap;function li(e,t){if(typeof e==`object`&&e){var n=ci.get(e);return n===void 0?(t={value:e,source:t,stack:ve(t)},ci.set(e,t),t):n}return{value:e,source:t,stack:ve(t)}}var ui=[],di=0,fi=null,pi=0,mi=[],hi=0,gi=null,_i=1,vi=``;function yi(e,t){ui[di++]=pi,ui[di++]=fi,fi=e,pi=t}function bi(e,t,n){mi[hi++]=_i,mi[hi++]=vi,mi[hi++]=gi,gi=e;var r=_i;e=vi;var i=32-Pe(r)-1;r&=~(1<<i),n+=1;var a=32-Pe(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,_i=1<<32-Pe(t)+i|n<<i|r,vi=a+e}else _i=1<<a|n<<i|r,vi=e}function xi(e){e.return!==null&&(yi(e,1),bi(e,1,0))}function Si(e){for(;e===fi;)fi=ui[--di],ui[di]=null,pi=ui[--di],ui[di]=null;for(;e===gi;)gi=mi[--hi],mi[hi]=null,vi=mi[--hi],mi[hi]=null,_i=mi[--hi],mi[hi]=null}function Ci(e,t){mi[hi++]=_i,mi[hi++]=vi,mi[hi++]=gi,_i=t.id,vi=t.overflow,gi=e}var wi=null,Ti=null,J=!1,Ei=null,Di=!1,Oi=Error(a(519));function ki(e){throw Fi(li(Error(a(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Oi}function Ai(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[et]=e,t[tt]=r,n){case`dialog`:$(`cancel`,t),$(`close`,t);break;case`iframe`:case`object`:case`embed`:$(`load`,t);break;case`video`:case`audio`:for(n=0;n<gd.length;n++)$(gd[n],t);break;case`source`:$(`error`,t);break;case`img`:case`image`:case`link`:$(`error`,t),$(`load`,t);break;case`details`:$(`toggle`,t);break;case`input`:$(`invalid`,t),Pt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:$(`invalid`,t);break;case`textarea`:$(`invalid`,t),Rt(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||jd(t.textContent,n)?(r.popover!=null&&($(`beforetoggle`,t),$(`toggle`,t)),r.onScroll!=null&&$(`scroll`,t),r.onScrollEnd!=null&&$(`scrollend`,t),r.onClick!=null&&(t.onclick=qt),t=!0):t=!1,t||ki(e,!0)}function ji(e){for(wi=e.return;wi;)switch(wi.tag){case 5:case 31:case 13:Di=!1;return;case 27:case 3:Di=!0;return;default:wi=wi.return}}function Mi(e){if(e!==wi)return!1;if(!J)return ji(e),J=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!==`form`&&n!==`button`)||Ud(e.type,e.memoizedProps)),n=!n),n&&Ti&&ki(e),ji(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(317));Ti=uf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(317));Ti=uf(e)}else t===27?(t=Ti,Zd(e.type)?(e=lf,lf=null,Ti=e):Ti=t):Ti=wi?cf(e.stateNode.nextSibling):null;return!0}function Ni(){Ti=wi=null,J=!1}function Pi(){var e=Ei;return e!==null&&(Yl===null?Yl=e:Yl.push.apply(Yl,e),Ei=null),e}function Fi(e){Ei===null?Ei=[e]:Ei.push(e)}var Ii=P(null),Li=null,Ri=null;function zi(e,t,n){I(Ii,t._currentValue),t._currentValue=n}function Bi(e){e._currentValue=Ii.current,F(Ii)}function Vi(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function Hi(e,t,n,r){var i=e.child;for(i!==null&&(i.return=e);i!==null;){var o=i.dependencies;if(o!==null){var s=i.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=i;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),Vi(o.return,n,e),r||(s=null);break a}o=c.next}}else if(i.tag===18){if(s=i.return,s===null)throw Error(a(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),Vi(s,n,e),s=null}else s=i.child;if(s!==null)s.return=i;else for(s=i;s!==null;){if(s===e){s=null;break}if(i=s.sibling,i!==null){i.return=s.return,s=i;break}s=s.return}i=s}}function Ui(e,t,n,r){e=null;for(var i=t,o=!1;i!==null;){if(!o){if(i.flags&524288)o=!0;else if(i.flags&262144)break}if(i.tag===10){var s=i.alternate;if(s===null)throw Error(a(387));if(s=s.memoizedProps,s!==null){var c=i.type;mr(i.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(i===ce.current){if(s=i.alternate,s===null)throw Error(a(387));s.memoizedState.memoizedState!==i.memoizedState.memoizedState&&(e===null?e=[Qf]:e.push(Qf))}i=i.return}e!==null&&Hi(t,e,n,r),t.flags|=262144}function Wi(e){for(e=e.firstContext;e!==null;){if(!mr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Gi(e){Li=e,Ri=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function Ki(e){return Ji(Li,e)}function qi(e,t){return Li===null&&Gi(e),Ji(e,t)}function Ji(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Ri===null){if(e===null)throw Error(a(308));Ri=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Ri=Ri.next=t;return n}var Yi=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},Xi=t.unstable_scheduleCallback,Zi=t.unstable_NormalPriority,Qi={$$typeof:S,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function $i(){return{controller:new Yi,data:new Map,refCount:0}}function ea(e){e.refCount--,e.refCount===0&&Xi(Zi,function(){e.controller.abort()})}var ta=null,na=0,ra=0,ia=null;function aa(e,t){if(ta===null){var n=ta=[];na=0,ra=ud(),ia={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return na++,t.then(oa,oa),t}function oa(){if(--na===0&&ta!==null){ia!==null&&(ia.status=`fulfilled`);var e=ta;ta=null,ra=0,ia=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function sa(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var ca=j.S;j.S=function(e,t){Ql=Ce(),typeof t==`object`&&t&&typeof t.then==`function`&&aa(e,t),ca!==null&&ca(e,t)};var la=P(null);function ua(){var e=la.current;return e===null?Fl.pooledCache:e}function da(e,t){t===null?I(la,la.current):I(la,t.pool)}function fa(){var e=ua();return e===null?null:{parent:Qi._currentValue,pool:e}}var pa=Error(a(460)),ma=Error(a(474)),ha=Error(a(542)),ga={then:function(){}};function _a(e){return e=e.status,e===`fulfilled`||e===`rejected`}function va(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(qt,qt),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Sa(e),e;default:if(typeof t.status==`string`)t.then(qt,qt);else{if(e=Fl,e!==null&&100<e.shellSuspendCounter)throw Error(a(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Sa(e),e}throw ba=t,pa}}function ya(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(ba=e,pa):e}}var ba=null;function xa(){if(ba===null)throw Error(a(459));var e=ba;return ba=null,e}function Sa(e){if(e===pa||e===ha)throw Error(a(483))}var Ca=null,wa=0;function Ta(e){var t=wa;return wa+=1,Ca===null&&(Ca=[]),va(Ca,e,t)}function Ea(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Da(e,t){throw t.$$typeof===m?Error(a(525)):(e=Object.prototype.toString.call(t),Error(a(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function Oa(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function i(e,t){return e=ti(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=ai(n,e.mode,r),t.return=e,t):(t=i(t,n),t.return=e,t)}function l(e,t,n,r){var a=n.type;return a===v?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===a||typeof a==`object`&&a&&a.$$typeof===D&&ya(a)===t.type)?(t=i(t,n.props),Ea(t,n),t.return=e,t):(t=ri(n.type,n.key,n.props,null,e.mode,r),Ea(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=si(n,e.mode,r),t.return=e,t):(t=i(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,a){return t===null||t.tag!==7?(t=ii(n,e.mode,r,a),t.return=e,t):(t=i(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=ai(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case h:return n=ri(t.type,t.key,t.props,null,e.mode,n),Ea(n,t),n.return=e,n;case g:return t=si(t,e.mode,n),t.return=e,t;case D:return t=ya(t),f(e,t,n)}if(re(t)||A(t))return t=ii(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,Ta(t),n);if(t.$$typeof===S)return f(e,qi(e,t),n);Da(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case h:return n.key===i?l(e,t,n,r):null;case g:return n.key===i?u(e,t,n,r):null;case D:return n=ya(n),p(e,t,n,r)}if(re(n)||A(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,Ta(n),r);if(n.$$typeof===S)return p(e,t,qi(e,n),r);Da(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case h:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case g:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case D:return r=ya(r),m(e,t,n,r,i)}if(re(r)||A(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,Ta(r),i);if(r.$$typeof===S)return m(e,t,n,qi(t,r),i);Da(t,r)}return null}function _(i,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),J&&yi(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return J&&yi(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),J&&yi(i,h),l}function y(i,s,c,l){if(c==null)throw Error(a(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),J&&yi(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return J&&yi(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),J&&yi(i,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===v&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case h:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===v){if(r.tag===7){n(e,r.sibling),c=i(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===D&&ya(l)===r.type){n(e,r.sibling),c=i(r,o.props),Ea(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===v?(c=ii(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ri(o.type,o.key,o.props,null,e.mode,c),Ea(c,o),c.return=e,e=c)}return s(e);case g:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=i(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=si(o,e.mode,c),c.return=e,e=c}return s(e);case D:return o=ya(o),b(e,r,o,c)}if(re(o))return _(e,r,o,c);if(A(o)){if(l=A(o),typeof l!=`function`)throw Error(a(150));return o=l.call(o),y(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Ta(o),c);if(o.$$typeof===S)return b(e,r,qi(e,o),c);Da(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,o),c.return=e,e=c):(n(e,r),c=ai(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{wa=0;var i=b(e,t,n,r);return Ca=null,i}catch(t){if(t===pa||t===ha)throw t;var a=$r(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var ka=Oa(!0),Aa=Oa(!1),ja=!1;function Ma(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Na(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Pa(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Fa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,X&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Xr(e),Yr(e,null,n),t}return Kr(e,r,t,n),Xr(e)}function Ia(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ke(e,n)}}function La(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ra=!1;function za(){if(Ra){var e=ia;if(e!==null)throw e}}function Ba(e,t,n,r){Ra=!1;var i=e.updateQueue;ja=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,m=f!==s.lane;if(m?(Q&f)===f:(r&f)===f){f!==0&&f===ra&&(Ra=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=p({},d,f);break a;case 2:ja=!0}}f=s.callback,f!==null&&(e.flags|=64,m&&(e.flags|=8192),m=i.callbacks,m===null?i.callbacks=[f]:m.push(f))}else m={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=m,c=d):u=u.next=m,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Ul|=o,e.lanes=o,e.memoizedState=d}}function Va(e,t){if(typeof e!=`function`)throw Error(a(191,e));e.call(t)}function Ha(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)Va(n[e],t)}var Ua=P(null),Wa=P(0);function Ga(e,t){e=Vl,I(Wa,e),I(Ua,t),Vl=e|t.baseLanes}function Ka(){I(Wa,Vl),I(Ua,Ua.current)}function qa(){Vl=Wa.current,F(Ua),F(Wa)}var Ja=P(null),Ya=null;function Xa(e){var t=e.alternate;I(to,to.current&1),I(Ja,e),Ya===null&&(t===null||Ua.current!==null||t.memoizedState!==null)&&(Ya=e)}function Za(e){I(to,to.current),I(Ja,e),Ya===null&&(Ya=e)}function Qa(e){e.tag===22?(I(to,to.current),I(Ja,e),Ya===null&&(Ya=e)):$a(e)}function $a(){I(to,to.current),I(Ja,Ja.current)}function eo(e){F(Ja),Ya===e&&(Ya=null),F(to)}var to=P(0);function no(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||af(n)||of(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ro=0,Y=null,io=null,ao=null,oo=!1,so=!1,co=!1,lo=0,uo=0,fo=null,po=0;function mo(){throw Error(a(321))}function ho(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!mr(e[n],t[n]))return!1;return!0}function go(e,t,n,r,i,a){return ro=a,Y=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,j.H=e===null||e.memoizedState===null?Ns:Ps,co=!1,a=n(r,i),co=!1,so&&(a=vo(t,n,r,i)),_o(e),a}function _o(e){j.H=Ms;var t=io!==null&&io.next!==null;if(ro=0,ao=io=Y=null,oo=!1,uo=0,fo=null,t)throw Error(a(300));e===null||Zs||(e=e.dependencies,e!==null&&Wi(e)&&(Zs=!0))}function vo(e,t,n,r){Y=e;var i=0;do{if(so&&(fo=null),uo=0,so=!1,25<=i)throw Error(a(301));if(i+=1,ao=io=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}j.H=Fs,o=t(n,r)}while(so);return o}function yo(){var e=j.H,t=e.useState()[0];return t=typeof t.then==`function`?Eo(t):t,e=e.useState()[0],(io===null?null:io.memoizedState)!==e&&(Y.flags|=1024),t}function bo(){var e=lo!==0;return lo=0,e}function xo(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function So(e){if(oo){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}oo=!1}ro=0,ao=io=Y=null,so=!1,uo=lo=0,fo=null}function Co(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ao===null?Y.memoizedState=ao=e:ao=ao.next=e,ao}function wo(){if(io===null){var e=Y.alternate;e=e===null?null:e.memoizedState}else e=io.next;var t=ao===null?Y.memoizedState:ao.next;if(t!==null)ao=t,io=e;else{if(e===null)throw Y.alternate===null?Error(a(467)):Error(a(310));io=e,e={memoizedState:io.memoizedState,baseState:io.baseState,baseQueue:io.baseQueue,queue:io.queue,next:null},ao===null?Y.memoizedState=ao=e:ao=ao.next=e}return ao}function To(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Eo(e){var t=uo;return uo+=1,fo===null&&(fo=[]),e=va(fo,e,t),t=Y,(ao===null?t.memoizedState:ao.next)===null&&(t=t.alternate,j.H=t===null||t.memoizedState===null?Ns:Ps),e}function Do(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return Eo(e);if(e.$$typeof===S)return Ki(e)}throw Error(a(438,String(e)))}function Oo(e){var t=null,n=Y.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=Y.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=To(),Y.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=k;return t.index++,n}function ko(e,t){return typeof t==`function`?t(e):t}function Ao(e){return jo(wo(),io,e)}function jo(e,t,n){var r=e.queue;if(r===null)throw Error(a(311));r.lastRenderedReducer=n;var i=e.baseQueue,o=r.pending;if(o!==null){if(i!==null){var s=i.next;i.next=o.next,o.next=s}t.baseQueue=i=o,r.pending=null}if(o=e.baseState,i===null)e.memoizedState=o;else{t=i.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(ro&f)===f:(Q&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===ra&&(d=!0);else if((ro&p)===p){u=u.next,p===ra&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,Y.lanes|=p,Ul|=p;f=u.action,co&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,Y.lanes|=f,Ul|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!mr(o,e.memoizedState)&&(Zs=!0,d&&(n=ia,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return i===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Mo(e){var t=wo(),n=t.queue;if(n===null)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,o=t.memoizedState;if(i!==null){n.pending=null;var s=i=i.next;do o=e(o,s.action),s=s.next;while(s!==i);mr(o,t.memoizedState)||(Zs=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function No(e,t,n){var r=Y,i=wo(),o=J;if(o){if(n===void 0)throw Error(a(407));n=n()}else n=t();var s=!mr((io||i).memoizedState,n);if(s&&(i.memoizedState=n,Zs=!0),i=i.queue,is(Io.bind(null,r,i,e),[e]),i.getSnapshot!==t||s||ao!==null&&ao.memoizedState.tag&1){if(r.flags|=2048,$o(9,{destroy:void 0},Fo.bind(null,r,i,n,t),null),Fl===null)throw Error(a(349));o||ro&127||Po(r,t,n)}return n}function Po(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=Y.updateQueue,t===null?(t=To(),Y.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Fo(e,t,n,r){t.value=n,t.getSnapshot=r,Lo(t)&&Ro(e)}function Io(e,t,n){return n(function(){Lo(t)&&Ro(e)})}function Lo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!mr(e,n)}catch{return!0}}function Ro(e){var t=Jr(e,2);t!==null&&pu(t,e,2)}function zo(e){var t=Co();if(typeof e==`function`){var n=e;if(e=n(),co){B(!0);try{n()}finally{B(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ko,lastRenderedState:e},t}function Bo(e,t,n,r){return e.baseState=n,jo(e,io,typeof r==`function`?r:ko)}function Vo(e,t,n,r,i){if(ks(e))throw Error(a(485));if(e=t.action,e!==null){var o={payload:i,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};j.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,Ho(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Ho(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=j.T,o={};j.T=o;try{var s=n(i,r),c=j.S;c!==null&&c(o,s),Uo(e,t,s)}catch(n){Go(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),j.T=a}}else try{a=n(i,r),Uo(e,t,a)}catch(n){Go(e,t,n)}}function Uo(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){Wo(e,t,n)},function(n){return Go(e,t,n)}):Wo(e,t,n)}function Wo(e,t,n){t.status=`fulfilled`,t.value=n,Ko(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Ho(e,n)))}function Go(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,Ko(t),t=t.next;while(t!==r)}e.action=null}function Ko(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function qo(e,t){return t}function Jo(e,t){if(J){var n=Fl.formState;if(n!==null){a:{var r=Y;if(J){if(Ti){b:{for(var i=Ti,a=Di;i.nodeType!==8;){if(!a){i=null;break b}if(i=cf(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Ti=cf(i.nextSibling),r=i.data===`F!`;break a}}ki(r)}r=!1}r&&(t=n[0])}}return n=Co(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:qo,lastRenderedState:t},n.queue=r,n=Es.bind(null,Y,r),r.dispatch=n,r=zo(!1),a=Os.bind(null,Y,!1,r.queue),r=Co(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Vo.bind(null,Y,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function Yo(e){return Xo(wo(),io,e)}function Xo(e,t,n){if(t=jo(e,t,qo)[0],e=Ao(ko)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=Eo(t)}catch(e){throw e===pa?ha:e}else r=t;t=wo();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(Y.flags|=2048,$o(9,{destroy:void 0},Zo.bind(null,i,n),null)),[r,a,e]}function Zo(e,t){e.action=t}function Qo(e){var t=wo(),n=io;if(n!==null)return Xo(t,n,e);wo(),t=t.memoizedState,n=wo();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function $o(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=Y.updateQueue,t===null&&(t=To(),Y.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function es(){return wo().memoizedState}function ts(e,t,n,r){var i=Co();Y.flags|=e,i.memoizedState=$o(1|t,{destroy:void 0},n,r===void 0?null:r)}function ns(e,t,n,r){var i=wo();r=r===void 0?null:r;var a=i.memoizedState.inst;io!==null&&r!==null&&ho(r,io.memoizedState.deps)?i.memoizedState=$o(t,a,n,r):(Y.flags|=e,i.memoizedState=$o(1|t,a,n,r))}function rs(e,t){ts(8390656,8,e,t)}function is(e,t){ns(2048,8,e,t)}function as(e){Y.flags|=4;var t=Y.updateQueue;if(t===null)t=To(),Y.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function os(e){var t=wo().memoizedState;return as({ref:t,nextImpl:e}),function(){if(X&2)throw Error(a(440));return t.impl.apply(void 0,arguments)}}function ss(e,t){return ns(4,2,e,t)}function cs(e,t){return ns(4,4,e,t)}function ls(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function us(e,t,n){n=n==null?null:n.concat([e]),ns(4,4,ls.bind(null,t,e),n)}function ds(){}function fs(e,t){var n=wo();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&ho(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function ps(e,t){var n=wo();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&ho(t,r[1]))return r[0];if(r=e(),co){B(!0);try{e()}finally{B(!1)}}return n.memoizedState=[r,t],r}function ms(e,t,n){return n===void 0||ro&1073741824&&!(Q&261930)?e.memoizedState=t:(e.memoizedState=n,e=fu(),Y.lanes|=e,Ul|=e,n)}function hs(e,t,n,r){return mr(n,t)?n:Ua.current===null?!(ro&42)||ro&1073741824&&!(Q&261930)?(Zs=!0,e.memoizedState=n):(e=fu(),Y.lanes|=e,Ul|=e,t):(e=ms(e,n,r),mr(e,t)||(Zs=!0),e)}function gs(e,t,n,r,i){var a=M.p;M.p=a!==0&&8>a?a:8;var o=j.T,s={};j.T=s,Os(e,!1,t,n);try{var c=i(),l=j.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ds(e,t,sa(c,r),du(e)):Ds(e,t,r,du(e))}catch(n){Ds(e,t,{then:function(){},status:`rejected`,reason:n},du())}finally{M.p=a,o!==null&&s.types!==null&&(o.types=s.types),j.T=o}}function _s(){}function vs(e,t,n,r){if(e.tag!==5)throw Error(a(476));var i=ys(e).queue;gs(e,i,t,N,n===null?_s:function(){return bs(e),n(r)})}function ys(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:N,baseState:N,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ko,lastRenderedState:N},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ko,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function bs(e){var t=ys(e);t.next===null&&(t=e.alternate.memoizedState),Ds(e,t.next.queue,{},du())}function xs(){return Ki(Qf)}function Ss(){return wo().memoizedState}function Cs(){return wo().memoizedState}function ws(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=du();e=Pa(n);var r=Fa(t,e,n);r!==null&&(pu(r,t,n),Ia(r,t,n)),t={cache:$i()},e.payload=t;return}t=t.return}}function Ts(e,t,n){var r=du();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},ks(e)?As(t,n):(n=qr(e,t,n,r),n!==null&&(pu(n,e,r),js(n,t,r)))}function Es(e,t,n){Ds(e,t,n,du())}function Ds(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(ks(e))As(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,mr(s,o))return Kr(e,t,i,0),Fl===null&&Gr(),!1}catch{}if(n=qr(e,t,i,r),n!==null)return pu(n,e,r),js(n,t,r),!0}return!1}function Os(e,t,n,r){if(r={lane:2,revertLane:ud(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},ks(e)){if(t)throw Error(a(479))}else t=qr(e,n,r,2),t!==null&&pu(t,e,2)}function ks(e){var t=e.alternate;return e===Y||t!==null&&t===Y}function As(e,t){so=oo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function js(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ke(e,n)}}var Ms={readContext:Ki,use:Do,useCallback:mo,useContext:mo,useEffect:mo,useImperativeHandle:mo,useLayoutEffect:mo,useInsertionEffect:mo,useMemo:mo,useReducer:mo,useRef:mo,useState:mo,useDebugValue:mo,useDeferredValue:mo,useTransition:mo,useSyncExternalStore:mo,useId:mo,useHostTransitionStatus:mo,useFormState:mo,useActionState:mo,useOptimistic:mo,useMemoCache:mo,useCacheRefresh:mo};Ms.useEffectEvent=mo;var Ns={readContext:Ki,use:Do,useCallback:function(e,t){return Co().memoizedState=[e,t===void 0?null:t],e},useContext:Ki,useEffect:rs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),ts(4194308,4,ls.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ts(4194308,4,e,t)},useInsertionEffect:function(e,t){ts(4,2,e,t)},useMemo:function(e,t){var n=Co();t=t===void 0?null:t;var r=e();if(co){B(!0);try{e()}finally{B(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Co();if(n!==void 0){var i=n(t);if(co){B(!0);try{n(t)}finally{B(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ts.bind(null,Y,e),[r.memoizedState,e]},useRef:function(e){var t=Co();return e={current:e},t.memoizedState=e},useState:function(e){e=zo(e);var t=e.queue,n=Es.bind(null,Y,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ds,useDeferredValue:function(e,t){return ms(Co(),e,t)},useTransition:function(){var e=zo(!1);return e=gs.bind(null,Y,e.queue,!0,!1),Co().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=Y,i=Co();if(J){if(n===void 0)throw Error(a(407));n=n()}else{if(n=t(),Fl===null)throw Error(a(349));Q&127||Po(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,rs(Io.bind(null,r,o,e),[e]),r.flags|=2048,$o(9,{destroy:void 0},Fo.bind(null,r,o,n,t),null),n},useId:function(){var e=Co(),t=Fl.identifierPrefix;if(J){var n=vi,r=_i;n=(r&~(1<<32-Pe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=lo++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=po++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:xs,useFormState:Jo,useActionState:Jo,useOptimistic:function(e){var t=Co();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Os.bind(null,Y,!0,n),n.dispatch=t,[e,t]},useMemoCache:Oo,useCacheRefresh:function(){return Co().memoizedState=ws.bind(null,Y)},useEffectEvent:function(e){var t=Co(),n={impl:e};return t.memoizedState=n,function(){if(X&2)throw Error(a(440));return n.impl.apply(void 0,arguments)}}},Ps={readContext:Ki,use:Do,useCallback:fs,useContext:Ki,useEffect:is,useImperativeHandle:us,useInsertionEffect:ss,useLayoutEffect:cs,useMemo:ps,useReducer:Ao,useRef:es,useState:function(){return Ao(ko)},useDebugValue:ds,useDeferredValue:function(e,t){return hs(wo(),io.memoizedState,e,t)},useTransition:function(){var e=Ao(ko)[0],t=wo().memoizedState;return[typeof e==`boolean`?e:Eo(e),t]},useSyncExternalStore:No,useId:Ss,useHostTransitionStatus:xs,useFormState:Yo,useActionState:Yo,useOptimistic:function(e,t){return Bo(wo(),io,e,t)},useMemoCache:Oo,useCacheRefresh:Cs};Ps.useEffectEvent=os;var Fs={readContext:Ki,use:Do,useCallback:fs,useContext:Ki,useEffect:is,useImperativeHandle:us,useInsertionEffect:ss,useLayoutEffect:cs,useMemo:ps,useReducer:Mo,useRef:es,useState:function(){return Mo(ko)},useDebugValue:ds,useDeferredValue:function(e,t){var n=wo();return io===null?ms(n,e,t):hs(n,io.memoizedState,e,t)},useTransition:function(){var e=Mo(ko)[0],t=wo().memoizedState;return[typeof e==`boolean`?e:Eo(e),t]},useSyncExternalStore:No,useId:Ss,useHostTransitionStatus:xs,useFormState:Qo,useActionState:Qo,useOptimistic:function(e,t){var n=wo();return io===null?(n.baseState=e,[e,n.queue.dispatch]):Bo(n,io,e,t)},useMemoCache:Oo,useCacheRefresh:Cs};Fs.useEffectEvent=os;function Is(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:p({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Ls={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=du(),i=Pa(r);i.payload=t,n!=null&&(i.callback=n),t=Fa(e,i,r),t!==null&&(pu(t,e,r),Ia(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=du(),i=Pa(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Fa(e,i,r),t!==null&&(pu(t,e,r),Ia(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=du(),r=Pa(n);r.tag=2,t!=null&&(r.callback=t),t=Fa(e,r,n),t!==null&&(pu(t,e,n),Ia(t,e,n))}};function Rs(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!hr(n,r)||!hr(i,a):!0}function zs(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ls.enqueueReplaceState(t,t.state,null)}function Bs(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=p({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Vs(e){Vr(e)}function Hs(e){console.error(e)}function Us(e){Vr(e)}function Ws(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function Gs(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Ks(e,t,n){return n=Pa(n),n.tag=3,n.payload={element:null},n.callback=function(){Ws(e,t)},n}function qs(e){return e=Pa(e),e.tag=3,e}function Js(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){Gs(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){Gs(t,n,r),typeof i!=`function`&&(tu===null?tu=new Set([this]):tu.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function Ys(e,t,n,r,i){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&Ui(t,n,i,!0),n=Ja.current,n!==null){switch(n.tag){case 31:case 13:return Ya===null?Tu():n.alternate===null&&Hl===0&&(Hl=3),n.flags&=-257,n.flags|=65536,n.lanes=i,r===ga?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),Wu(e,r,i)),!1;case 22:return n.flags|=65536,r===ga?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),Wu(e,r,i)),!1}throw Error(a(435,n.tag))}return Wu(e,r,i),Tu(),!1}if(J)return t=Ja.current,t===null?(r!==Oi&&(t=Error(a(423),{cause:r}),Fi(li(t,n))),e=e.current.alternate,e.flags|=65536,i&=-i,e.lanes|=i,r=li(r,n),i=Ks(e.stateNode,r,i),La(e,i),Hl!==4&&(Hl=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=i,r!==Oi&&(e=Error(a(422),{cause:r}),Fi(li(e,n)))),!1;var o=Error(a(520),{cause:r});if(o=li(o,n),Jl===null?Jl=[o]:Jl.push(o),Hl!==4&&(Hl=2),t===null)return!0;r=li(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=i&-i,n.lanes|=e,e=Ks(n.stateNode,r,e),La(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(tu===null||!tu.has(o))))return n.flags|=65536,i&=-i,n.lanes|=i,i=qs(i),Js(i,e,n,r),La(n,i),!1}n=n.return}while(n!==null);return!1}var Xs=Error(a(461)),Zs=!1;function Qs(e,t,n,r){t.child=e===null?Aa(t,null,n,r):ka(t,e.child,n,r)}function $s(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return Gi(t),r=go(e,t,n,o,a,i),s=bo(),e!==null&&!Zs?(xo(e,t,i),Cc(e,t,i)):(J&&s&&xi(t),t.flags|=1,Qs(e,t,r,i),t.child)}function ec(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!ei(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,tc(e,t,a,r,i)):(e=ri(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!wc(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?hr:n,n(o,r)&&e.ref===t.ref)return Cc(e,t,i)}return t.flags|=1,e=ti(a,r),e.ref=t.ref,e.return=t,t.child=e}function tc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(hr(a,r)&&e.ref===t.ref)if(Zs=!1,t.pendingProps=r=a,wc(e,i))e.flags&131072&&(Zs=!0);else return t.lanes=e.lanes,Cc(e,t,i)}return lc(e,t,n,r,i)}function nc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return ic(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&da(t,a===null?null:a.cachePool),a===null?Ka():Ga(t,a),Qa(t);else return r=t.lanes=536870912,ic(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&da(t,null),Ka(),$a(t)):(da(t,a.cachePool),Ga(t,a),$a(t),t.memoizedState=null);return Qs(e,t,i,n),t.child}function rc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function ic(e,t,n,r,i){var a=ua();return a=a===null?null:{parent:Qi._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&da(t,null),Ka(),Qa(t),e!==null&&Ui(e,t,r,!0),t.childLanes=i,null}function ac(e,t){return t=vc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function oc(e,t,n){return ka(t,e.child,null,n),e=ac(t,t.pendingProps),e.flags|=2,eo(t),t.memoizedState=null,e}function sc(e,t,n){var r=t.pendingProps,i=(t.flags&128)!=0;if(t.flags&=-129,e===null){if(J){if(r.mode===`hidden`)return e=ac(t,r),t.lanes=536870912,rc(null,e);if(Za(t),(e=Ti)?(e=rf(e,Di),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:gi===null?null:{id:_i,overflow:vi},retryLane:536870912,hydrationErrors:null},n=oi(e),n.return=t,t.child=n,wi=t,Ti=null)):e=null,e===null)throw ki(t);return t.lanes=536870912,null}return ac(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(Za(t),i)if(t.flags&256)t.flags&=-257,t=oc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(a(558));else if(Zs||Ui(e,t,n,!1),i=(n&e.childLanes)!==0,Zs||i){if(r=Fl,r!==null&&(s=qe(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,Jr(e,s),pu(r,e,s),Xs;Tu(),t=oc(e,t,n)}else e=o.treeContext,Ti=cf(s.nextSibling),wi=t,J=!0,Ei=null,Di=!1,e!==null&&Ci(t,e),t=ac(t,r),t.flags|=4096;return t}return e=ti(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function cc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(a(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function lc(e,t,n,r,i){return Gi(t),n=go(e,t,n,r,void 0,i),r=bo(),e!==null&&!Zs?(xo(e,t,i),Cc(e,t,i)):(J&&r&&xi(t),t.flags|=1,Qs(e,t,n,i),t.child)}function uc(e,t,n,r,i,a){return Gi(t),t.updateQueue=null,n=vo(t,r,n,i),_o(e),r=bo(),e!==null&&!Zs?(xo(e,t,a),Cc(e,t,a)):(J&&r&&xi(t),t.flags|=1,Qs(e,t,n,a),t.child)}function dc(e,t,n,r,i){if(Gi(t),t.stateNode===null){var a=Zr,o=n.contextType;typeof o==`object`&&o&&(a=Ki(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Ls,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Ma(t),o=n.contextType,a.context=typeof o==`object`&&o?Ki(o):Zr,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Is(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&Ls.enqueueReplaceState(a,a.state,null),Ba(t,r,a,i),za(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=Bs(n,s);a.props=c;var l=a.context,u=n.contextType;o=Zr,typeof u==`object`&&u&&(o=Ki(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&zs(t,a,r,o),ja=!1;var f=t.memoizedState;a.state=f,Ba(t,r,a,i),za(),l=t.memoizedState,s||f!==l||ja?(typeof d==`function`&&(Is(t,n,d,r),l=t.memoizedState),(c=ja||Rs(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Na(e,t),o=t.memoizedProps,u=Bs(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=Zr,typeof l==`object`&&l&&(c=Ki(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&zs(t,a,r,c),ja=!1,f=t.memoizedState,a.state=f,Ba(t,r,a,i),za();var p=t.memoizedState;o!==d||f!==p||ja||e!==null&&e.dependencies!==null&&Wi(e.dependencies)?(typeof s==`function`&&(Is(t,n,s,r),p=t.memoizedState),(u=ja||Rs(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&Wi(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,cc(e,t),r=(t.flags&128)!=0,a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=ka(t,e.child,null,i),t.child=ka(t,null,n,i)):Qs(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Cc(e,t,i),e}function fc(e,t,n,r){return Ni(),t.flags|=256,Qs(e,t,n,r),t.child}var pc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function mc(e){return{baseLanes:e,cachePool:fa()}}function hc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=Kl),e}function gc(e,t,n){var r=t.pendingProps,i=!1,o=(t.flags&128)!=0,s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:(to.current&2)!=0),s&&(i=!0,t.flags&=-129),s=(t.flags&32)!=0,t.flags&=-33,e===null){if(J){if(i?Xa(t):$a(t),(e=Ti)?(e=rf(e,Di),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:gi===null?null:{id:_i,overflow:vi},retryLane:536870912,hydrationErrors:null},n=oi(e),n.return=t,t.child=n,wi=t,Ti=null)):e=null,e===null)throw ki(t);return of(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,i?($a(t),i=t.mode,c=vc({mode:`hidden`,children:c},i),r=ii(r,i,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=mc(n),r.childLanes=hc(e,s,n),t.memoizedState=pc,rc(null,r)):(Xa(t),_c(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(Xa(t),t.flags&=-257,t=yc(e,t,n)):t.memoizedState===null?($a(t),c=r.fallback,i=t.mode,r=vc({mode:`visible`,children:r.children},i),c=ii(c,i,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,ka(t,e.child,null,n),r=t.child,r.memoizedState=mc(n),r.childLanes=hc(e,s,n),t.memoizedState=pc,t=rc(null,r)):($a(t),t.child=e.child,t.flags|=128,t=null);else if(Xa(t),of(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(a(419)),r.stack=``,r.digest=s,Fi({value:r,source:null,stack:null}),t=yc(e,t,n)}else if(Zs||Ui(e,t,n,!1),s=(n&e.childLanes)!==0,Zs||s){if(s=Fl,s!==null&&(r=qe(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,Jr(e,r),pu(s,e,r),Xs;af(c)||Tu(),t=yc(e,t,n)}else af(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Ti=cf(c.nextSibling),wi=t,J=!0,Ei=null,Di=!1,e!==null&&Ci(t,e),t=_c(t,r.children),t.flags|=4096);return t}return i?($a(t),c=r.fallback,i=t.mode,l=e.child,u=l.sibling,r=ti(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=ii(c,i,n,null),c.flags|=2):c=ti(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,rc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=mc(n):(i=c.cachePool,i===null?i=fa():(l=Qi._currentValue,i=i.parent===l?i:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:i}),r.memoizedState=c,r.childLanes=hc(e,s,n),t.memoizedState=pc,rc(e.child,r)):(Xa(t),n=e.child,e=n.sibling,n=ti(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function _c(e,t){return t=vc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function vc(e,t){return e=$r(22,e,null,t),e.lanes=0,e}function yc(e,t,n){return ka(t,e.child,null,n),e=_c(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function bc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Vi(e.return,t,n)}function xc(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function Sc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=to.current,s=(o&2)!=0;if(s?(o=o&1|2,t.flags|=128):o&=1,I(to,o),Qs(e,t,r,n),r=J?pi:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&bc(e,n,t);else if(e.tag===19)bc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&no(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),xc(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&no(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}xc(t,!0,n,null,a,r);break;case`together`:xc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Cc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Ul|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(Ui(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(a(153));if(t.child!==null){for(e=t.child,n=ti(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=ti(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function wc(e,t){return(e.lanes&t)===0?(e=e.dependencies,!!(e!==null&&Wi(e))):!0}function Tc(e,t,n){switch(t.tag){case 3:le(t,t.stateNode.containerInfo),zi(t,Qi,e.memoizedState.cache),Ni();break;case 27:case 5:de(t);break;case 4:le(t,t.stateNode.containerInfo);break;case 10:zi(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Za(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(Xa(t),e=Cc(e,t,n),e===null?null:e.sibling):gc(e,t,n):(Xa(t),t.flags|=128,null);Xa(t);break;case 19:var i=(e.flags&128)!=0;if(r=(n&t.childLanes)!==0,r||=(Ui(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return Sc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),I(to,to.current),r)break;return null;case 22:return t.lanes=0,nc(e,t,n,t.pendingProps);case 24:zi(t,Qi,e.memoizedState.cache)}return Cc(e,t,n)}function Ec(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)Zs=!0;else{if(!wc(e,n)&&!(t.flags&128))return Zs=!1,Tc(e,t,n);Zs=!!(e.flags&131072)}else Zs=!1,J&&t.flags&1048576&&bi(t,pi,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=ya(t.elementType),t.type=e,typeof e==`function`)ei(e)?(r=Bs(e,r),t.tag=1,t=dc(null,t,e,r,n)):(t.tag=0,t=lc(null,t,e,r,n));else{if(e!=null){var i=e.$$typeof;if(i===C){t.tag=11,t=$s(null,t,e,r,n);break a}else if(i===E){t.tag=14,t=ec(null,t,e,r,n);break a}}throw t=ne(e)||e,Error(a(306,t,``))}}return t;case 0:return lc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,i=Bs(r,t.pendingProps),dc(e,t,r,i,n);case 3:a:{if(le(t,t.stateNode.containerInfo),e===null)throw Error(a(387));r=t.pendingProps;var o=t.memoizedState;i=o.element,Na(e,t),Ba(t,r,null,n);var s=t.memoizedState;if(r=s.cache,zi(t,Qi,r),r!==o.cache&&Hi(t,[Qi],n,!0),za(),r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=fc(e,t,r,n);break a}else if(r!==i){i=li(Error(a(424)),t),Fi(i),t=fc(e,t,r,n);break a}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(Ti=cf(e.firstChild),wi=t,J=!0,Ei=null,Di=!0,n=Aa(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Ni(),r===i){t=Cc(e,t,n);break a}Qs(e,t,r,n)}t=t.child}return t;case 26:return cc(e,t),e===null?(n=kf(t.type,null,t.pendingProps,null))?t.memoizedState=n:J||(n=t.type,e=t.pendingProps,r=Bd(se.current).createElement(n),r[et]=t,r[tt]=e,Pd(r,n,e),pt(r),t.stateNode=r):t.memoizedState=kf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return de(t),e===null&&J&&(r=t.stateNode=ff(t.type,t.pendingProps,se.current),wi=t,Di=!0,i=Ti,Zd(t.type)?(lf=i,Ti=cf(r.firstChild)):Ti=i),Qs(e,t,t.pendingProps.children,n),cc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&J&&((i=r=Ti)&&(r=tf(r,t.type,t.pendingProps,Di),r===null?i=!1:(t.stateNode=r,wi=t,Ti=cf(r.firstChild),Di=!1,i=!0)),i||ki(t)),de(t),i=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,Ud(i,o)?r=null:s!==null&&Ud(i,s)&&(t.flags|=32),t.memoizedState!==null&&(i=go(e,t,yo,null,null,n),Qf._currentValue=i),cc(e,t),Qs(e,t,r,n),t.child;case 6:return e===null&&J&&((e=n=Ti)&&(n=nf(n,t.pendingProps,Di),n===null?e=!1:(t.stateNode=n,wi=t,Ti=null,e=!0)),e||ki(t)),null;case 13:return gc(e,t,n);case 4:return le(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=ka(t,null,r,n):Qs(e,t,r,n),t.child;case 11:return $s(e,t,t.type,t.pendingProps,n);case 7:return Qs(e,t,t.pendingProps,n),t.child;case 8:return Qs(e,t,t.pendingProps.children,n),t.child;case 12:return Qs(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,zi(t,t.type,r.value),Qs(e,t,r.children,n),t.child;case 9:return i=t.type._context,r=t.pendingProps.children,Gi(t),i=Ki(i),r=r(i),t.flags|=1,Qs(e,t,r,n),t.child;case 14:return ec(e,t,t.type,t.pendingProps,n);case 15:return tc(e,t,t.type,t.pendingProps,n);case 19:return Sc(e,t,n);case 31:return sc(e,t,n);case 22:return nc(e,t,n,t.pendingProps);case 24:return Gi(t),r=Ki(Qi),e===null?(i=ua(),i===null&&(i=Fl,o=$i(),i.pooledCache=o,o.refCount++,o!==null&&(i.pooledCacheLanes|=n),i=o),t.memoizedState={parent:r,cache:i},Ma(t),zi(t,Qi,i)):((e.lanes&n)!==0&&(Na(e,t),Ba(t,null,null,n),za()),i=e.memoizedState,o=t.memoizedState,i.parent===r?(r=o.cache,zi(t,Qi,r),r!==i.cache&&Hi(t,[Qi],n,!0)):(i={parent:r,cache:r},t.memoizedState=i,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=i),zi(t,Qi,r))),Qs(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(a(156,t.tag))}function Dc(e){e.flags|=4}function Oc(e,t,n,r,i){if((t=(e.mode&32)!=0)&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i)if(e.stateNode.complete)e.flags|=8192;else if(Su())e.flags|=8192;else throw ba=ga,ma}else e.flags&=-16777217}function kc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!Wf(t))if(Su())e.flags|=8192;else throw ba=ga,ma}function Ac(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:Ue(),e.lanes|=t,ql|=t)}function jc(e,t){if(!J)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Mc(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Nc(e,t,n){var r=t.pendingProps;switch(Si(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Mc(t),null;case 1:return Mc(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Bi(Qi),ue(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Mi(t)?Dc(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Pi())),Mc(t),null;case 26:var i=t.type,o=t.memoizedState;return e===null?(Dc(t),o===null?(Mc(t),Oc(t,i,null,r,n)):(Mc(t),kc(t,o))):o?o===e.memoizedState?(Mc(t),t.flags&=-16777217):(Dc(t),Mc(t),kc(t,o)):(e=e.memoizedProps,e!==r&&Dc(t),Mc(t),Oc(t,i,e,r,n)),null;case 27:if(fe(t),n=se.current,i=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Dc(t);else{if(!r){if(t.stateNode===null)throw Error(a(166));return Mc(t),null}e=oe.current,Mi(t)?Ai(t,e):(e=ff(i,r,n),t.stateNode=e,Dc(t))}return Mc(t),null;case 5:if(fe(t),i=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Dc(t);else{if(!r){if(t.stateNode===null)throw Error(a(166));return Mc(t),null}if(o=oe.current,Mi(t))Ai(t,o);else{var s=Bd(se.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,i);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,i);break;default:switch(i){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,i);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,i);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}o[et]=t,o[tt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Pd(o,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Dc(t)}}return Mc(t),Oc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Dc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(a(166));if(e=se.current,Mi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=wi,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[et]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||jd(e.nodeValue,n)),e||ki(t,!0)}else e=Bd(e).createTextNode(r),e[et]=t,t.stateNode=e}return Mc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Mi(t),n!==null){if(e===null){if(!r)throw Error(a(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(557));e[et]=t}else Ni(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Mc(t),e=!1}else n=Pi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(eo(t),t):(eo(t),null);if(t.flags&128)throw Error(a(558))}return Mc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=Mi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(a(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(a(317));i[et]=t}else Ni(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Mc(t),i=!1}else i=Pi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(eo(t),t):(eo(t),null)}return eo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Ac(t,t.updateQueue),Mc(t),null);case 4:return ue(),e===null&&xd(t.stateNode.containerInfo),Mc(t),null;case 10:return Bi(t.type),Mc(t),null;case 19:if(F(to),r=t.memoizedState,r===null)return Mc(t),null;if(i=(t.flags&128)!=0,o=r.rendering,o===null)if(i)jc(r,!1);else{if(Hl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=no(e),o!==null){for(t.flags|=128,jc(r,!1),e=o.updateQueue,t.updateQueue=e,Ac(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ni(n,e),n=n.sibling;return I(to,to.current&1|2),J&&yi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Ce()>$l&&(t.flags|=128,i=!0,jc(r,!1),t.lanes=4194304)}else{if(!i)if(e=no(o),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Ac(t,e),jc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!J)return Mc(t),null}else 2*Ce()-r.renderingStartTime>$l&&n!==536870912&&(t.flags|=128,i=!0,jc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Mc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Ce(),e.sibling=null,n=to.current,I(to,i?n&1|2:n&1),J&&yi(t,r.treeForkCount),e);case 22:case 23:return eo(t),qa(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Mc(t),t.subtreeFlags&6&&(t.flags|=8192)):Mc(t),n=t.updateQueue,n!==null&&Ac(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&F(la),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Bi(Qi),Mc(t),null;case 25:return null;case 30:return null}throw Error(a(156,t.tag))}function Pc(e,t){switch(Si(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Bi(Qi),ue(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return fe(t),null;case 31:if(t.memoizedState!==null){if(eo(t),t.alternate===null)throw Error(a(340));Ni()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(eo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));Ni()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return F(to),null;case 4:return ue(),null;case 10:return Bi(t.type),null;case 22:case 23:return eo(t),qa(),e!==null&&F(la),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Bi(Qi),null;case 25:return null;default:return null}}function Fc(e,t){switch(Si(t),t.tag){case 3:Bi(Qi),ue();break;case 26:case 27:case 5:fe(t);break;case 4:ue();break;case 31:t.memoizedState!==null&&eo(t);break;case 13:eo(t);break;case 19:F(to);break;case 10:Bi(t.type);break;case 22:case 23:eo(t),qa(),e!==null&&F(la);break;case 24:Bi(Qi)}}function Ic(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Uu(t,t.return,e)}}function Lc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Uu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Uu(t,t.return,e)}}function Rc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Ha(t,n)}catch(t){Uu(e,e.return,t)}}}function zc(e,t,n){n.props=Bs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Uu(e,t,n)}}function Bc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Uu(e,t,n)}}function Vc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Uu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Uu(e,t,n)}else n.current=null}function Hc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Uu(e,e.return,t)}}function Uc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[tt]=t}catch(t){Uu(e,e.return,t)}}function Wc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function Gc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Wc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Kc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=qt));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Kc(e,t,n),e=e.sibling;e!==null;)Kc(e,t,n),e=e.sibling}function qc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(qc(e,t,n),e=e.sibling;e!==null;)qc(e,t,n),e=e.sibling}function Jc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[et]=e,t[tt]=n}catch(t){Uu(e,e.return,t)}}var Yc=!1,Xc=!1,Zc=!1,Qc=typeof WeakSet==`function`?WeakSet:Set,$c=null;function el(e,t){if(e=e.containerInfo,Rd=sp,e=vr(e),yr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=s+i),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,$c=t;$c!==null;)if(t=$c,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,$c=e;else for(;$c!==null;){switch(t=$c,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)i=e[n],i.ref.impl=i.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&o!==null){e=void 0,n=t,i=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=Bs(n.type,i);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){Uu(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)ef(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:ef(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(a(163))}if(e=t.sibling,e!==null){e.return=t.return,$c=e;break}$c=t.return}}function tl(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:gl(e,n),r&4&&Ic(5,n);break;case 1:if(gl(e,n),r&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){Uu(n,n.return,e)}else{var i=Bs(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Uu(n,n.return,e)}}r&64&&Rc(n),r&512&&Bc(n,n.return);break;case 3:if(gl(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{Ha(e,t)}catch(e){Uu(n,n.return,e)}}break;case 27:t===null&&r&4&&Jc(n);case 26:case 5:gl(e,n),t===null&&r&4&&Hc(n),r&512&&Bc(n,n.return);break;case 12:gl(e,n);break;case 31:gl(e,n),r&4&&sl(e,n);break;case 13:gl(e,n),r&4&&cl(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=qu.bind(null,n),sf(e,n))));break;case 22:if(r=n.memoizedState!==null||Yc,!r){t=t!==null&&t.memoizedState!==null||Xc,i=Yc;var a=Xc;Yc=r,(Xc=t)&&!a?vl(e,n,(n.subtreeFlags&8772)!=0):gl(e,n),Yc=i,Xc=a}break;case 30:break;default:gl(e,n)}}function nl(e){var t=e.alternate;t!==null&&(e.alternate=null,nl(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&ct(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var rl=null,il=!1;function al(e,t,n){for(n=n.child;n!==null;)ol(e,t,n),n=n.sibling}function ol(e,t,n){if(Ne&&typeof Ne.onCommitFiberUnmount==`function`)try{Ne.onCommitFiberUnmount(Me,n)}catch{}switch(n.tag){case 26:Xc||Vc(n,t),al(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:Xc||Vc(n,t);var r=rl,i=il;Zd(n.type)&&(rl=n.stateNode,il=!1),al(e,t,n),pf(n.stateNode),rl=r,il=i;break;case 5:Xc||Vc(n,t);case 6:if(r=rl,i=il,rl=null,al(e,t,n),rl=r,il=i,rl!==null)if(il)try{(rl.nodeType===9?rl.body:rl.nodeName===`HTML`?rl.ownerDocument.body:rl).removeChild(n.stateNode)}catch(e){Uu(n,t,e)}else try{rl.removeChild(n.stateNode)}catch(e){Uu(n,t,e)}break;case 18:rl!==null&&(il?(e=rl,Qd(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Np(e)):Qd(rl,n.stateNode));break;case 4:r=rl,i=il,rl=n.stateNode.containerInfo,il=!0,al(e,t,n),rl=r,il=i;break;case 0:case 11:case 14:case 15:Lc(2,n,t),Xc||Lc(4,n,t),al(e,t,n);break;case 1:Xc||(Vc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&zc(n,t,r)),al(e,t,n);break;case 21:al(e,t,n);break;case 22:Xc=(r=Xc)||n.memoizedState!==null,al(e,t,n),Xc=r;break;default:al(e,t,n)}}function sl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Np(e)}catch(e){Uu(t,t.return,e)}}}function cl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Np(e)}catch(e){Uu(t,t.return,e)}}function ll(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new Qc),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new Qc),t;default:throw Error(a(435,e.tag))}}function ul(e,t){var n=ll(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Ju.bind(null,e,t);t.then(r,r)}})}function dl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var i=n[r],o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(Zd(c.type)){rl=c.stateNode,il=!1;break a}break;case 5:rl=c.stateNode,il=!1;break a;case 3:case 4:rl=c.stateNode.containerInfo,il=!0;break a}c=c.return}if(rl===null)throw Error(a(160));ol(o,s,i),rl=null,il=!1,o=i.alternate,o!==null&&(o.return=null),i.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)pl(t,e),t=t.sibling}var fl=null;function pl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:dl(t,e),ml(e),r&4&&(Lc(3,e,e.return),Ic(3,e),Lc(5,e,e.return));break;case 1:dl(t,e),ml(e),r&512&&(Xc||n===null||Vc(n,n.return)),r&64&&Yc&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var i=fl;if(dl(t,e),ml(e),r&512&&(Xc||n===null||Vc(n,n.return)),r&4){var o=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null)if(r===null)if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,i=i.ownerDocument||i;b:switch(r){case`title`:o=i.getElementsByTagName(`title`)[0],(!o||o[st]||o[et]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=i.createElement(r),i.head.insertBefore(o,i.querySelector(`head > title`))),Pd(o,r,n),o[et]=e,pt(o),r=o;break a;case`link`:var s=Vf(`link`,`href`,i).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&o.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&o.getAttribute(`title`)===(n.title==null?null:n.title)&&o.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}o=i.createElement(r),Pd(o,r,n),i.head.appendChild(o);break;case`meta`:if(s=Vf(`meta`,`content`,i).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`content`)===(n.content==null?null:``+n.content)&&o.getAttribute(`name`)===(n.name==null?null:n.name)&&o.getAttribute(`property`)===(n.property==null?null:n.property)&&o.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}o=i.createElement(r),Pd(o,r,n),i.head.appendChild(o);break;default:throw Error(a(468,r))}o[et]=e,pt(o),r=o}e.stateNode=r}else Hf(i,e.type,e.stateNode);else e.stateNode=If(i,r,e.memoizedProps);else o===r?r===null&&e.stateNode!==null&&Uc(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?Hf(i,e.type,e.stateNode):If(i,r,e.memoizedProps))}break;case 27:dl(t,e),ml(e),r&512&&(Xc||n===null||Vc(n,n.return)),n!==null&&r&4&&Uc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(dl(t,e),ml(e),r&512&&(Xc||n===null||Vc(n,n.return)),e.flags&32){i=e.stateNode;try{zt(i,``)}catch(t){Uu(e,e.return,t)}}r&4&&e.stateNode!=null&&(i=e.memoizedProps,Uc(e,i,n===null?i:n.memoizedProps)),r&1024&&(Zc=!0);break;case 6:if(dl(t,e),ml(e),r&4){if(e.stateNode===null)throw Error(a(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){Uu(e,e.return,t)}}break;case 3:if(Bf=null,i=fl,fl=gf(t.containerInfo),dl(t,e),fl=i,ml(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Np(t.containerInfo)}catch(t){Uu(e,e.return,t)}Zc&&(Zc=!1,hl(e));break;case 4:r=fl,fl=gf(e.stateNode.containerInfo),dl(t,e),ml(e),fl=r;break;case 12:dl(t,e),ml(e);break;case 31:dl(t,e),ml(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ul(e,r)));break;case 13:dl(t,e),ml(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(Zl=Ce()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ul(e,r)));break;case 22:i=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=Yc,d=Xc;if(Yc=u||i,Xc=d||l,dl(t,e),Xc=d,Yc=u,ml(e),r&8192)a:for(t=e.stateNode,t._visibility=i?t._visibility&-2:t._visibility|1,i&&(n===null||l||Yc||Xc||_l(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(o=l.stateNode,i)s=o.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){Uu(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=i?``:l.memoizedProps}catch(e){Uu(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;i?$d(m,!0):$d(l.stateNode,!1)}catch(e){Uu(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,ul(e,n))));break;case 19:dl(t,e),ml(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ul(e,r)));break;case 30:break;case 21:break;default:dl(t,e),ml(e)}}function ml(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(Wc(r)){n=r;break}r=r.return}if(n==null)throw Error(a(160));switch(n.tag){case 27:var i=n.stateNode;qc(e,Gc(e),i);break;case 5:var o=n.stateNode;n.flags&32&&(zt(o,``),n.flags&=-33),qc(e,Gc(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;Kc(e,Gc(e),s);break;default:throw Error(a(161))}}catch(t){Uu(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function hl(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;hl(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function gl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)tl(e,t.alternate,t),t=t.sibling}function _l(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Lc(4,t,t.return),_l(t);break;case 1:Vc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&zc(t,t.return,n),_l(t);break;case 27:pf(t.stateNode);case 26:case 5:Vc(t,t.return),_l(t);break;case 22:t.memoizedState===null&&_l(t);break;case 30:_l(t);break;default:_l(t)}e=e.sibling}}function vl(e,t,n){for(n&&=(t.subtreeFlags&8772)!=0,t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:vl(i,a,n),Ic(4,a);break;case 1:if(vl(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){Uu(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)Va(c[i],s)}catch(e){Uu(r,r.return,e)}}n&&o&64&&Rc(a),Bc(a,a.return);break;case 27:Jc(a);case 26:case 5:vl(i,a,n),n&&r===null&&o&4&&Hc(a),Bc(a,a.return);break;case 12:vl(i,a,n);break;case 31:vl(i,a,n),n&&o&4&&sl(i,a);break;case 13:vl(i,a,n),n&&o&4&&cl(i,a);break;case 22:a.memoizedState===null&&vl(i,a,n),Bc(a,a.return);break;case 30:break;default:vl(i,a,n)}t=t.sibling}}function yl(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&ea(n))}function bl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&ea(e))}function xl(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Sl(e,t,n,r),t=t.sibling}function Sl(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:xl(e,t,n,r),i&2048&&Ic(9,t);break;case 1:xl(e,t,n,r);break;case 3:xl(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&ea(e)));break;case 12:if(i&2048){xl(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){Uu(t,t.return,e)}}else xl(e,t,n,r);break;case 31:xl(e,t,n,r);break;case 13:xl(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?xl(e,t,n,r):(a._visibility|=2,Cl(e,t,n,r,(t.subtreeFlags&10256)!=0||!1)):a._visibility&2?xl(e,t,n,r):wl(e,t),i&2048&&yl(o,t);break;case 24:xl(e,t,n,r),i&2048&&bl(t.alternate,t);break;default:xl(e,t,n,r)}}function Cl(e,t,n,r,i){for(i&&=(t.subtreeFlags&10256)!=0||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Cl(a,o,s,c,i),Ic(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Cl(a,o,s,c,i)):u._visibility&2?Cl(a,o,s,c,i):wl(a,o),i&&l&2048&&yl(o.alternate,o);break;case 24:Cl(a,o,s,c,i),i&&l&2048&&bl(o.alternate,o);break;default:Cl(a,o,s,c,i)}t=t.sibling}}function wl(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:wl(n,r),i&2048&&yl(r.alternate,r);break;case 24:wl(n,r),i&2048&&bl(r.alternate,r);break;default:wl(n,r)}t=t.sibling}}var Tl=8192;function El(e,t,n){if(e.subtreeFlags&Tl)for(e=e.child;e!==null;)Dl(e,t,n),e=e.sibling}function Dl(e,t,n){switch(e.tag){case 26:El(e,t,n),e.flags&Tl&&e.memoizedState!==null&&Gf(n,fl,e.memoizedState,e.memoizedProps);break;case 5:El(e,t,n);break;case 3:case 4:var r=fl;fl=gf(e.stateNode.containerInfo),El(e,t,n),fl=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Tl,Tl=16777216,El(e,t,n),Tl=r):El(e,t,n));break;default:El(e,t,n)}}function Ol(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function kl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];$c=r,Ml(r,e)}Ol(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Al(e),e=e.sibling}function Al(e){switch(e.tag){case 0:case 11:case 15:kl(e),e.flags&2048&&Lc(9,e,e.return);break;case 3:kl(e);break;case 12:kl(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,jl(e)):kl(e);break;default:kl(e)}}function jl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];$c=r,Ml(r,e)}Ol(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Lc(8,t,t.return),jl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,jl(t));break;default:jl(t)}e=e.sibling}}function Ml(e,t){for(;$c!==null;){var n=$c;switch(n.tag){case 0:case 11:case 15:Lc(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:ea(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,$c=r;else a:for(n=e;$c!==null;){r=$c;var i=r.sibling,a=r.return;if(nl(r),r===n){$c=null;break a}if(i!==null){i.return=a,$c=i;break a}$c=a}}}var Nl={getCacheForType:function(e){var t=Ki(Qi),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Ki(Qi).controller.signal}},Pl=typeof WeakMap==`function`?WeakMap:Map,X=0,Fl=null,Z=null,Q=0,Il=0,Ll=null,Rl=!1,zl=!1,Bl=!1,Vl=0,Hl=0,Ul=0,Wl=0,Gl=0,Kl=0,ql=0,Jl=null,Yl=null,Xl=!1,Zl=0,Ql=0,$l=1/0,eu=null,tu=null,nu=0,ru=null,iu=null,au=0,ou=0,su=null,cu=null,lu=0,uu=null;function du(){return X&2&&Q!==0?Q&-Q:j.T===null?Ze():ud()}function fu(){if(Kl===0)if(!(Q&536870912)||J){var e=H;H<<=1,!(H&3932160)&&(H=262144),Kl=e}else Kl=536870912;return e=Ja.current,e!==null&&(e.flags|=32),Kl}function pu(e,t,n){(e===Fl&&(Il===2||Il===9)||e.cancelPendingCommit!==null)&&(bu(e,0),_u(e,Q,Kl,!1)),We(e,n),(!(X&2)||e!==Fl)&&(e===Fl&&(!(X&2)&&(Wl|=n),Hl===4&&_u(e,Q,Kl,!1)),nd(e))}function mu(e,t,n){if(X&6)throw Error(a(327));var r=!n&&(t&127)==0&&(t&e.expiredLanes)===0||Ve(e,t),i=r?Ou(e,t):Eu(e,t,!0),o=r;do{if(i===0){zl&&!r&&_u(e,t,0,!1);break}else{if(n=e.current.alternate,o&&!gu(n)){i=Eu(e,t,!1),o=!1;continue}if(i===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;i=Jl;var l=c.current.memoizedState.isDehydrated;if(l&&(bu(c,s).flags|=256),s=Eu(c,s,!1),s!==2){if(Bl&&!l){c.errorRecoveryDisabledLanes|=o,Wl|=o,i=4;break a}o=Yl,Yl=i,o!==null&&(Yl===null?Yl=o:Yl.push.apply(Yl,o))}i=s}if(o=!1,i!==2)continue}}if(i===1){bu(e,0),_u(e,t,0,!0);break}a:{switch(r=e,o=i,o){case 0:case 1:throw Error(a(345));case 4:if((t&4194048)!==t)break;case 6:_u(r,t,Kl,!Rl);break a;case 2:Yl=null;break;case 3:case 5:break;default:throw Error(a(329))}if((t&62914560)===t&&(i=Zl+300-Ce(),10<i)){if(_u(r,t,Kl,!Rl),Be(r,0,!0)!==0)break a;au=t,r.timeoutHandle=Kd(hu.bind(null,r,n,Yl,eu,Xl,t,Kl,Wl,ql,Rl,o,`Throttled`,-0,0),i);break a}hu(r,n,Yl,eu,Xl,t,Kl,Wl,ql,Rl,o,null,-0,0)}}break}while(1);nd(e)}function hu(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:qt},Dl(t,a,d);var m=(a&62914560)===a?Zl-Ce():(a&4194048)===a?Ql-Ce():0;if(m=qf(d,m),m!==null){au=a,e.cancelPendingCommit=m(Fu.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),_u(e,a,o,!l);return}}Fu(e,t,a,n,r,i,o,s,c)}function gu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!mr(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function _u(e,t,n,r){t&=~Gl,t&=~Wl,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Pe(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&W(e,n,t)}function vu(){return X&6?!0:(rd(0,!1),!1)}function yu(){if(Z!==null){if(Il===0)var e=Z.return;else e=Z,Ri=Li=null,So(e),Ca=null,wa=0,e=Z;for(;e!==null;)Fc(e.alternate,e),e=e.return;Z=null}}function bu(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,qd(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),au=0,yu(),Fl=e,Z=n=ti(e.current,null),Q=t,Il=0,Ll=null,Rl=!1,zl=Ve(e,t),Bl=!1,ql=Kl=Gl=Wl=Ul=Hl=0,Yl=Jl=null,Xl=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Pe(r),a=1<<i;t|=e[i],r&=~a}return Vl=t,Gr(),n}function xu(e,t){Y=null,j.H=Ms,t===pa||t===ha?(t=xa(),Il=3):t===ma?(t=xa(),Il=4):Il=t===Xs?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,Ll=t,Z===null&&(Hl=1,Ws(e,li(t,e.current)))}function Su(){var e=Ja.current;return e===null?!0:(Q&4194048)===Q?Ya===null:(Q&62914560)===Q||Q&536870912?e===Ya:!1}function Cu(){var e=j.H;return j.H=Ms,e===null?Ms:e}function wu(){var e=j.A;return j.A=Nl,e}function Tu(){Hl=4,Rl||(Q&4194048)!==Q&&Ja.current!==null||(zl=!0),!(Ul&134217727)&&!(Wl&134217727)||Fl===null||_u(Fl,Q,Kl,!1)}function Eu(e,t,n){var r=X;X|=2;var i=Cu(),a=wu();(Fl!==e||Q!==t)&&(eu=null,bu(e,t)),t=!1;var o=Hl;a:do try{if(Il!==0&&Z!==null){var s=Z,c=Ll;switch(Il){case 8:yu(),o=6;break a;case 3:case 2:case 9:case 6:Ja.current===null&&(t=!0);var l=Il;if(Il=0,Ll=null,Mu(e,s,c,l),n&&zl){o=0;break a}break;default:l=Il,Il=0,Ll=null,Mu(e,s,c,l)}}Du(),o=Hl;break}catch(t){xu(e,t)}while(1);return t&&e.shellSuspendCounter++,Ri=Li=null,X=r,j.H=i,j.A=a,Z===null&&(Fl=null,Q=0,Gr()),o}function Du(){for(;Z!==null;)Au(Z)}function Ou(e,t){var n=X;X|=2;var r=Cu(),i=wu();Fl!==e||Q!==t?(eu=null,$l=Ce()+500,bu(e,t)):zl=Ve(e,t);a:do try{if(Il!==0&&Z!==null){t=Z;var o=Ll;b:switch(Il){case 1:Il=0,Ll=null,Mu(e,t,o,1);break;case 2:case 9:if(_a(o)){Il=0,Ll=null,ju(t);break}t=function(){Il!==2&&Il!==9||Fl!==e||(Il=7),nd(e)},o.then(t,t);break a;case 3:Il=7;break a;case 4:Il=5;break a;case 7:_a(o)?(Il=0,Ll=null,ju(t)):(Il=0,Ll=null,Mu(e,t,o,7));break;case 5:var s=null;switch(Z.tag){case 26:s=Z.memoizedState;case 5:case 27:var c=Z;if(s?Wf(s):c.stateNode.complete){Il=0,Ll=null;var l=c.sibling;if(l!==null)Z=l;else{var u=c.return;u===null?Z=null:(Z=u,Nu(u))}break b}}Il=0,Ll=null,Mu(e,t,o,5);break;case 6:Il=0,Ll=null,Mu(e,t,o,6);break;case 8:yu(),Hl=6;break a;default:throw Error(a(462))}}ku();break}catch(t){xu(e,t)}while(1);return Ri=Li=null,j.H=r,j.A=i,X=n,Z===null?(Fl=null,Q=0,Gr(),Hl):0}function ku(){for(;Z!==null&&!xe();)Au(Z)}function Au(e){var t=Ec(e.alternate,e,Vl);e.memoizedProps=e.pendingProps,t===null?Nu(e):Z=t}function ju(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=uc(n,t,t.pendingProps,t.type,void 0,Q);break;case 11:t=uc(n,t,t.pendingProps,t.type.render,t.ref,Q);break;case 5:So(t);default:Fc(n,t),t=Z=ni(t,Vl),t=Ec(n,t,Vl)}e.memoizedProps=e.pendingProps,t===null?Nu(e):Z=t}function Mu(e,t,n,r){Ri=Li=null,So(t),Ca=null,wa=0;var i=t.return;try{if(Ys(e,i,t,n,Q)){Hl=1,Ws(e,li(n,e.current)),Z=null;return}}catch(t){if(i!==null)throw Z=i,t;Hl=1,Ws(e,li(n,e.current)),Z=null;return}t.flags&32768?(J||r===1?e=!0:zl||Q&536870912?e=!1:(Rl=e=!0,(r===2||r===9||r===3||r===6)&&(r=Ja.current,r!==null&&r.tag===13&&(r.flags|=16384))),Pu(t,e)):Nu(t)}function Nu(e){var t=e;do{if(t.flags&32768){Pu(t,Rl);return}e=t.return;var n=Nc(t.alternate,t,Vl);if(n!==null){Z=n;return}if(t=t.sibling,t!==null){Z=t;return}Z=t=e}while(t!==null);Hl===0&&(Hl=5)}function Pu(e,t){do{var n=Pc(e.alternate,e);if(n!==null){n.flags&=32767,Z=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){Z=e;return}Z=e=n}while(e!==null);Hl=6,Z=null}function Fu(e,t,n,r,i,o,s,c,l){e.cancelPendingCommit=null;do Bu();while(nu!==0);if(X&6)throw Error(a(327));if(t!==null){if(t===e.current)throw Error(a(177));if(o=t.lanes|t.childLanes,o|=Wr,Ge(e,n,o,s,c,l),e===Fl&&(Z=Fl=null,Q=0),iu=t,ru=e,au=n,ou=o,su=i,cu=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,Yu(De,function(){return Vu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=(t.flags&13878)!=0,t.subtreeFlags&13878||r){r=j.T,j.T=null,i=M.p,M.p=2,s=X,X|=4;try{el(e,t,n)}finally{X=s,M.p=i,j.T=r}}nu=1,Iu(),Lu(),Ru()}}function Iu(){if(nu===1){nu=0;var e=ru,t=iu,n=(t.flags&13878)!=0;if(t.subtreeFlags&13878||n){n=j.T,j.T=null;var r=M.p;M.p=2;var i=X;X|=4;try{pl(t,e);var a=zd,o=vr(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&_r(s.ownerDocument.documentElement,s)){if(c!==null&&yr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=q(s,h),v=q(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}sp=!!Rd,zd=Rd=null}finally{X=i,M.p=r,j.T=n}}e.current=t,nu=2}}function Lu(){if(nu===2){nu=0;var e=ru,t=iu,n=(t.flags&8772)!=0;if(t.subtreeFlags&8772||n){n=j.T,j.T=null;var r=M.p;M.p=2;var i=X;X|=4;try{tl(e,t.alternate,t)}finally{X=i,M.p=r,j.T=n}}nu=3}}function Ru(){if(nu===4||nu===3){nu=0,Se();var e=ru,t=iu,n=au,r=cu;t.subtreeFlags&10256||t.flags&10256?nu=5:(nu=0,iu=ru=null,zu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(tu=null),Xe(n),t=t.stateNode,Ne&&typeof Ne.onCommitFiberRoot==`function`)try{Ne.onCommitFiberRoot(Me,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=j.T,i=M.p,M.p=2,j.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{j.T=t,M.p=i}}au&3&&Bu(),nd(e),i=e.pendingLanes,n&261930&&i&42?e===uu?lu++:(lu=0,uu=e):lu=0,rd(0,!1)}}function zu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,ea(t)))}function Bu(){return Iu(),Lu(),Ru(),Vu()}function Vu(){if(nu!==5)return!1;var e=ru,t=ou;ou=0;var n=Xe(au),r=j.T,i=M.p;try{M.p=32>n?32:n,j.T=null,n=su,su=null;var o=ru,s=au;if(nu=0,iu=ru=null,au=0,X&6)throw Error(a(331));var c=X;if(X|=4,Al(o.current),Sl(o,o.current,s,n),X=c,rd(0,!1),Ne&&typeof Ne.onPostCommitFiberRoot==`function`)try{Ne.onPostCommitFiberRoot(Me,o)}catch{}return!0}finally{M.p=i,j.T=r,zu(e,t)}}function Hu(e,t,n){t=li(n,t),t=Ks(e.stateNode,t,2),e=Fa(e,t,2),e!==null&&(We(e,2),nd(e))}function Uu(e,t,n){if(e.tag===3)Hu(e,e,n);else for(;t!==null;){if(t.tag===3){Hu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(tu===null||!tu.has(r))){e=li(n,e),n=qs(2),r=Fa(t,n,2),r!==null&&(Js(n,r,t,e),We(r,2),nd(r));break}}t=t.return}}function Wu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Pl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Bl=!0,i.add(n),e=Gu.bind(null,e,t,n),t.then(e,e))}function Gu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Fl===e&&(Q&n)===n&&(Hl===4||Hl===3&&(Q&62914560)===Q&&300>Ce()-Zl?!(X&2)&&bu(e,0):Gl|=n,ql===Q&&(ql=0)),nd(e)}function Ku(e,t){t===0&&(t=Ue()),e=Jr(e,t),e!==null&&(We(e,t),nd(e))}function qu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ku(e,n)}function Ju(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(a(314))}r!==null&&r.delete(t),Ku(e,n)}function Yu(e,t){return be(e,t)}var Xu=null,Zu=null,Qu=!1,$u=!1,ed=!1,td=0;function nd(e){e!==Zu&&e.next===null&&(Zu===null?Xu=Zu=e:Zu=Zu.next=e),$u=!0,Qu||(Qu=!0,ld())}function rd(e,t){if(!ed&&$u){ed=!0;do for(var n=!1,r=Xu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Pe(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,cd(r,a))}else a=Q,a=Be(r,r===Fl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ve(r,a)||(n=!0,cd(r,a));r=r.next}while(n);ed=!1}}function id(){ad()}function ad(){$u=Qu=!1;var e=0;td!==0&&Gd()&&(e=td);for(var t=Ce(),n=null,r=Xu;r!==null;){var i=r.next,a=od(r,t);a===0?(r.next=null,n===null?Xu=i:n.next=i,i===null&&(Zu=n)):(n=r,(e!==0||a&3)&&($u=!0)),r=i}nu!==0&&nu!==5||rd(e,!1),td!==0&&(td=0)}function od(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Pe(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=He(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Fl,n=Q,n=Be(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(Il===2||Il===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&z(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||Ve(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&z(r),Xe(n)){case 2:case 8:n=Ee;break;case 32:n=De;break;case 268435456:n=ke;break;default:n=De}return r=sd.bind(null,e),n=be(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&z(r),e.callbackPriority=2,e.callbackNode=null,2}function sd(e,t){if(nu!==0&&nu!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Bu()&&e.callbackNode!==n)return null;var r=Q;return r=Be(e,e===Fl?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(mu(e,r,t),od(e,Ce()),e.callbackNode!=null&&e.callbackNode===n?sd.bind(null,e):null)}function cd(e,t){if(Bu())return null;mu(e,t,!0)}function ld(){Yd(function(){X&6?be(Te,id):ad()})}function ud(){if(td===0){var e=ra;e===0&&(e=Le,Le<<=1,!(Le&261888)&&(Le=256)),td=e}return td}function dd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:Kt(``+e)}function fd(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function pd(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=dd((i[tt]||null).action),o=r.submitter;o&&(t=(t=o[tt]||null)?dd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new mn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(td!==0){var e=o?fd(i,o):new FormData(i);vs(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?fd(i,o):new FormData(i),vs(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var md=0;md<zr.length;md++){var hd=zr[md];Br(hd.toLowerCase(),`on`+(hd[0].toUpperCase()+hd.slice(1)))}Br(jr,`onAnimationEnd`),Br(Mr,`onAnimationIteration`),Br(Nr,`onAnimationStart`),Br(`dblclick`,`onDoubleClick`),Br(`focusin`,`onFocus`),Br(`focusout`,`onBlur`),Br(Pr,`onTransitionRun`),Br(Fr,`onTransitionStart`),Br(Ir,`onTransitionCancel`),Br(Lr,`onTransitionEnd`),_t(`onMouseEnter`,[`mouseout`,`mouseover`]),_t(`onMouseLeave`,[`mouseout`,`mouseover`]),_t(`onPointerEnter`,[`pointerout`,`pointerover`]),_t(`onPointerLeave`,[`pointerout`,`pointerover`]),gt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),gt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),gt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),gt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),gt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),gt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var gd=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),_d=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(gd));function vd(e,t){t=(t&4)!=0;for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Vr(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Vr(e)}i.currentTarget=null,a=c}}}}function $(e,t){var n=t[rt];n===void 0&&(n=t[rt]=new Set);var r=e+`__bubble`;n.has(r)||(Sd(t,e,2,!1),n.add(r))}function yd(e,t,n){var r=0;t&&(r|=4),Sd(n,e,r,t)}var bd=`_reactListening`+Math.random().toString(36).slice(2);function xd(e){if(!e[bd]){e[bd]=!0,mt.forEach(function(t){t!==`selectionchange`&&(_d.has(t)||yd(t,!1,e),yd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[bd]||(t[bd]=!0,yd(`selectionchange`,!1,t))}}function Sd(e,t,n,r){switch(mp(t)){case 2:var i=cp;break;case 8:i=lp;break;default:i=up}n=i.bind(null,t,n,e),i=void 0,!nn||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Cd(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var o=r.tag;if(o===3||o===4){var c=r.stateNode.containerInfo;if(c===i)break;if(o===4)for(o=r.return;o!==null;){var l=o.tag;if((l===3||l===4)&&o.stateNode.containerInfo===i)return;o=o.return}for(;c!==null;){if(o=lt(c),o===null)return;if(l=o.tag,l===5||l===6||l===26||l===27){r=a=o;continue a}c=c.parentNode}}r=r.return}$t(function(){var r=a,i=Yt(n),o=[];a:{var c=Rr.get(e);if(c!==void 0){var l=mn,u=e;switch(e){case`keypress`:if(ln(n)===0)break a;case`keydown`:case`keyup`:l=Mn;break;case`focusin`:u=`focus`,l=Cn;break;case`focusout`:u=`blur`,l=Cn;break;case`beforeblur`:case`afterblur`:l=Cn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=xn;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=Sn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=Pn;break;case jr:case Mr:case Nr:l=wn;break;case Lr:l=Fn;break;case`scroll`:case`scrollend`:l=gn;break;case`wheel`:l=In;break;case`copy`:case`cut`:case`paste`:l=Tn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=Nn;break;case`toggle`:case`beforetoggle`:l=Ln}var d=(t&4)!=0,f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=en(m,p),g!=null&&d.push(wd(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),o.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(c=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,c&&n!==Jt&&(u=n.relatedTarget||n.fromElement)&&(lt(u)||u[nt]))break a;if((l||c)&&(c=i.window===i?i:(c=i.ownerDocument)?c.defaultView||c.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?lt(u):null,u!==null&&(f=s(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=xn,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=Nn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:dt(l),h=u==null?c:dt(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,lt(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=Ed,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&Dd(o,c,l,d,!1),u!==null&&f!==null&&Dd(o,f,u,d,!0)}}a:{if(c=r?dt(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=nr;else if(Xn(c))if(rr)v=fr;else{v=ur;var y=lr}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&Ut(r.elementType)&&(v=nr):v=dr;if(v&&=v(e,r)){Zn(o,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&Ft(c,`number`,c.value)}switch(y=r?dt(r):window,e){case`focusin`:(Xn(y)||y.contentEditable===`true`)&&(xr=y,Sr=r,Cr=null);break;case`focusout`:Cr=Sr=xr=null;break;case`mousedown`:wr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:wr=!1,Tr(o,n,i);break;case`selectionchange`:if(br)break;case`keydown`:case`keyup`:Tr(o,n,i)}var b;if(K)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else Kn?Wn(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(Vn&&n.locale!==`ko`&&(Kn||x!==`onCompositionStart`?x===`onCompositionEnd`&&Kn&&(b=cn()):(an=i,on=`value`in an?an.value:an.textContent,Kn=!0)),y=Td(r,x),0<y.length&&(x=new En(x,e,null,n,i),o.push({event:x,listeners:y}),b?x.data=b:(b=Gn(n),b!==null&&(x.data=b)))),(b=Bn?qn(e,n):Jn(e,n))&&(x=Td(r,`onBeforeInput`),0<x.length&&(y=new En(`onBeforeInput`,`beforeinput`,null,n,i),o.push({event:y,listeners:x}),y.data=b)),pd(o,e,r,n,i)}vd(o,t)})}function wd(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Td(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=en(e,n),i!=null&&r.unshift(wd(e,i,a)),i=en(e,t),i!=null&&r.push(wd(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Ed(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Dd(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=en(n,a),l!=null&&o.unshift(wd(n,l,c))):i||(l=en(n,a),l!=null&&o.push(wd(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Od=/\r\n?/g,kd=/\u0000|\uFFFD/g;function Ad(e){return(typeof e==`string`?e:``+e).replace(Od,`
10
- `).replace(kd,``)}function jd(e,t){return t=Ad(t),Ad(e)===t}function Md(e,t,n,r,i,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||zt(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&zt(e,``+r);break;case`className`:Ct(e,`class`,r);break;case`tabIndex`:Ct(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Ct(e,n,r);break;case`style`:Ht(e,r,o);break;case`data`:if(t!==`object`){Ct(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Kt(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}else typeof o==`function`&&(n===`formAction`?(t!==`input`&&Md(e,t,`name`,i.name,i,null),Md(e,t,`formEncType`,i.formEncType,i,null),Md(e,t,`formMethod`,i.formMethod,i,null),Md(e,t,`formTarget`,i.formTarget,i,null)):(Md(e,t,`encType`,i.encType,i,null),Md(e,t,`method`,i.method,i,null),Md(e,t,`target`,i.target,i,null)));if(r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Kt(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=qt);break;case`onScroll`:r!=null&&$(`scroll`,e);break;case`onScrollEnd`:r!=null&&$(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(a(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(a(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=Kt(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:$(`beforetoggle`,e),$(`toggle`,e),St(e,`popover`,r);break;case`xlinkActuate`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:wt(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:wt(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:wt(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:St(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=Wt.get(n)||n,St(e,n,r))}}function Nd(e,t,n,r,i,o){switch(n){case`style`:Ht(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(a(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(a(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?zt(e,r):(typeof r==`number`||typeof r==`bigint`)&&zt(e,``+r);break;case`onScroll`:r!=null&&$(`scroll`,e);break;case`onScrollEnd`:r!=null&&$(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=qt);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!ht.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(i=n.endsWith(`Capture`),t=n.slice(2,i?n.length-7:void 0),o=e[tt]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,i),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,i);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):St(e,n,r)}}}function Pd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:$(`error`,e),$(`load`,e);var r=!1,i=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:i=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(a(137,t));default:Md(e,t,o,s,n,null)}}i&&Md(e,t,`srcSet`,n.srcSet,n,null),r&&Md(e,t,`src`,n.src,n,null);return;case`input`:$(`invalid`,e);var c=o=s=i=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:i=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(a(137,t));break;default:Md(e,t,r,d,n,null)}}Pt(e,o,c,l,u,s,i,!1);return;case`select`:for(i in $(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(i)&&(c=n[i],c!=null))switch(i){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:Md(e,t,i,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&It(e,!!r,n,!0):It(e,!!r,t,!1);return;case`textarea`:for(s in $(`invalid`,e),o=i=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:i=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(a(91));break;default:Md(e,t,s,c,n,null)}Rt(e,r,i,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:Md(e,t,l,r,n,null)}return;case`dialog`:$(`beforetoggle`,e),$(`toggle`,e),$(`cancel`,e),$(`close`,e);break;case`iframe`:case`object`:$(`load`,e);break;case`video`:case`audio`:for(r=0;r<gd.length;r++)$(gd[r],e);break;case`image`:$(`error`,e),$(`load`,e);break;case`details`:$(`toggle`,e);break;case`embed`:case`source`:case`link`:$(`error`,e),$(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(a(137,t));default:Md(e,t,u,r,n,null)}return;default:if(Ut(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Nd(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Md(e,t,c,r,n,null))}function Fd(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var i=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||Md(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:o=m;break;case`name`:i=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(a(137,t));break;default:m!==f&&Md(e,t,p,m,r,f)}}Nt(e,s,c,l,u,d,o,i);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||Md(e,t,o,null,r,l)}for(i in r)if(o=r[i],l=n[i],r.hasOwnProperty(i)&&(o!=null||l!=null))switch(i){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&Md(e,t,i,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?It(e,!!n,n?[]:``,!1):It(e,!!n,t,!0)):It(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(i=n[c],n.hasOwnProperty(c)&&i!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:Md(e,t,c,null,r,i)}for(s in r)if(i=r[s],o=n[s],r.hasOwnProperty(s)&&(i!=null||o!=null))switch(s){case`value`:p=i;break;case`defaultValue`:m=i;break;case`children`:break;case`dangerouslySetInnerHTML`:if(i!=null)throw Error(a(91));break;default:i!==o&&Md(e,t,s,i,r,o)}Lt(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:Md(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:Md(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&Md(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(a(137,t));break;default:Md(e,t,u,p,r,m)}return;default:if(Ut(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Nd(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Nd(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Md(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||Md(e,t,f,p,r,m)}function Id(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Ld(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&Id(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var Rd=null,zd=null;function Bd(e){return e.nodeType===9?e:e.ownerDocument}function Vd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function Hd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function Ud(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Wd=null;function Gd(){var e=window.event;return e&&e.type===`popstate`?e===Wd?!1:(Wd=e,!0):(Wd=null,!1)}var Kd=typeof setTimeout==`function`?setTimeout:void 0,qd=typeof clearTimeout==`function`?clearTimeout:void 0,Jd=typeof Promise==`function`?Promise:void 0,Yd=typeof queueMicrotask==`function`?queueMicrotask:Jd===void 0?Kd:function(e){return Jd.resolve(null).then(e).catch(Xd)};function Xd(e){setTimeout(function(){throw e})}function Zd(e){return e===`head`}function Qd(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Np(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)pf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,pf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[st]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&pf(e.ownerDocument.body);n=i}while(n);Np(t)}function $d(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8)if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++;n=r}while(n)}function ef(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:ef(n),ct(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function tf(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r)if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e;else if(!e[st])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=cf(e.nextSibling),e===null)break}return null}function nf(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=cf(e.nextSibling),e===null))return null;return e}function rf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=cf(e.nextSibling),e===null))return null;return e}function af(e){return e.data===`$?`||e.data===`$~`}function of(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function sf(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function cf(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var lf=null;function uf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return cf(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function df(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function ff(e,t,n){switch(t=Bd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(a(452));return e;case`head`:if(e=t.head,!e)throw Error(a(453));return e;case`body`:if(e=t.body,!e)throw Error(a(454));return e;default:throw Error(a(451))}}function pf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);ct(e)}var mf=new Map,hf=new Set;function gf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var _f=M.d;M.d={f:vf,r:yf,D:Sf,C:Cf,L:wf,m:Tf,X:Df,S:Ef,M:Of};function vf(){var e=_f.f(),t=vu();return e||t}function yf(e){var t=ut(e);t!==null&&t.tag===5&&t.type===`form`?bs(t):_f.r(e)}var bf=typeof document>`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=Mt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),pt(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Mt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Mt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Mt(n.imageSizes)+`"]`)):i+=`[href="`+Mt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=p({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),pt(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Mt(r)+`"][href="`+Mt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=p({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),pt(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=ft(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=p({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);pt(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=ft(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=p({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),pt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=ft(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=p({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),pt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var i=(i=se.current)?gf(i):null;if(!i)throw Error(a(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=ft(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var o=ft(i).hoistableStyles,s=o.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=i.querySelector(jf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),o||Nf(i,e,n,s.state))),t&&r===null)throw Error(a(528,``));return s}if(t&&r!==null)throw Error(a(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=ft(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(a(444,e))}}function Af(e){return`href="`+Mt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return p({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),pt(t),e.head.appendChild(t))}function Pf(e){return`[src="`+Mt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Mt(n.href)+`"]`);if(r)return t.instance=r,pt(r),r;var i=p({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),pt(r),Pd(r,`style`,i),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Af(n.href);var o=e.querySelector(jf(i));if(o)return t.state.loading|=4,t.instance=o,pt(o),o;r=Mf(n),(i=mf.get(i))&&Rf(r,i),o=(e.ownerDocument||e).createElement(`link`),pt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Pd(o,`link`,r),t.state.loading|=4,Lf(o,n.precedence,e),t.instance=o;case`script`:return o=Pf(n.src),(i=e.querySelector(Ff(o)))?(t.instance=i,pt(i),i):(r=n,(i=mf.get(o))&&(r=p({},n),zf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),pt(i),Pd(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(a(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Rf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function zf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Bf=null;function Vf(e,t,n){if(Bf===null){var r=new Map,i=Bf=new Map;i.set(n,r)}else i=Bf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[st]||a[et]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Hf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,pt(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),pt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&Xf(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&Kf===0&&(Kf=62500*Ld());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Xf(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=Jf.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var Qf={$$typeof:S,Provider:null,Consumer:null,_currentValue:N,_currentValue2:N,_threadCount:0};function $f(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=U(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=U(0),this.hiddenUpdates=U(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function ep(e,t,n,r,i,a,o,s,c,l,u,d){return e=new $f(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=$r(3,null,null,t),e.current=a,a.stateNode=e,t=$i(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Ma(a),e}function tp(e){return e?(e=Zr,e):Zr}function np(e,t,n,r,i,a){i=tp(i),r.context===null?r.context=i:r.pendingContext=i,r=Pa(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Fa(e,r,t),n!==null&&(pu(n,e,t),Ia(n,e,t))}function rp(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function ip(e,t){rp(e,t),(e=e.alternate)&&rp(e,t)}function ap(e){if(e.tag===13||e.tag===31){var t=Jr(e,67108864);t!==null&&pu(t,e,67108864),ip(e,67108864)}}function op(e){if(e.tag===13||e.tag===31){var t=du();t=Je(t);var n=Jr(e,t);n!==null&&pu(n,e,t),ip(e,t)}}var sp=!0;function cp(e,t,n,r){var i=j.T;j.T=null;var a=M.p;try{M.p=2,up(e,t,n,r)}finally{M.p=a,j.T=i}}function lp(e,t,n,r){var i=j.T;j.T=null;var a=M.p;try{M.p=8,up(e,t,n,r)}finally{M.p=a,j.T=i}}function up(e,t,n,r){if(sp){var i=dp(r);if(i===null)Cd(e,t,r,fp,n),Cp(e,r);else if(Tp(i,e,t,n,r))r.stopPropagation();else if(Cp(e,r),t&4&&-1<Sp.indexOf(e)){for(;i!==null;){var a=ut(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=ze(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Pe(o);s.entanglements[1]|=c,o&=~c}nd(a),!(X&6)&&($l=Ce()+500,rd(0,!1))}}break;case 31:case 13:s=Jr(a,2),s!==null&&pu(s,a,2),vu(),ip(a,2)}if(a=dp(r),a===null&&Cd(e,t,r,fp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Cd(e,t,r,null,n)}}function dp(e){return e=Yt(e),pp(e)}var fp=null;function pp(e){if(fp=null,e=lt(e),e!==null){var t=s(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=c(t),e!==null)return e;e=null}else if(n===31){if(e=l(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return fp=e,null}function mp(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(we()){case Te:return 2;case Ee:return 8;case De:case Oe:return 32;case ke:return 268435456;default:return 32}default:return 32}}var hp=!1,gp=null,_p=null,vp=null,yp=new Map,bp=new Map,xp=[],Sp=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Cp(e,t){switch(e){case`focusin`:case`focusout`:gp=null;break;case`dragenter`:case`dragleave`:_p=null;break;case`mouseover`:case`mouseout`:vp=null;break;case`pointerover`:case`pointerout`:yp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:bp.delete(t.pointerId)}}function wp(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=ut(t),t!==null&&ap(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Tp(e,t,n,r,i){switch(t){case`focusin`:return gp=wp(gp,e,t,n,r,i),!0;case`dragenter`:return _p=wp(_p,e,t,n,r,i),!0;case`mouseover`:return vp=wp(vp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return yp.set(a,wp(yp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,bp.set(a,wp(bp.get(a)||null,e,t,n,r,i)),!0}return!1}function Ep(e){var t=lt(e.target);if(t!==null){var n=s(t);if(n!==null){if(t=n.tag,t===13){if(t=c(n),t!==null){e.blockedOn=t,Qe(e.priority,function(){op(n)});return}}else if(t===31){if(t=l(n),t!==null){e.blockedOn=t,Qe(e.priority,function(){op(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Dp(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=dp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Jt=r,n.target.dispatchEvent(r),Jt=null}else return t=ut(n),t!==null&&ap(t),e.blockedOn=n,!1;t.shift()}return!0}function Op(e,t,n){Dp(e)&&n.delete(t)}function kp(){hp=!1,gp!==null&&Dp(gp)&&(gp=null),_p!==null&&Dp(_p)&&(_p=null),vp!==null&&Dp(vp)&&(vp=null),yp.forEach(Op),bp.forEach(Op)}function Ap(e,n){e.blockedOn===n&&(e.blockedOn=null,hp||(hp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,kp)))}var jp=null;function Mp(e){jp!==e&&(jp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){jp===e&&(jp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(pp(r||n)===null)continue;break}var a=ut(n);a!==null&&(e.splice(t,3),t-=3,vs(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Np(e){function t(t){return Ap(t,e)}gp!==null&&Ap(gp,e),_p!==null&&Ap(_p,e),vp!==null&&Ap(vp,e),yp.forEach(t),bp.forEach(t);for(var n=0;n<xp.length;n++){var r=xp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<xp.length&&(n=xp[0],n.blockedOn===null);)Ep(n),n.blockedOn===null&&xp.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[tt]||null;if(typeof a==`function`)o||Mp(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[tt]||null)s=o.formAction;else if(pp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Mp(n)}}}function Pp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Fp(e){this._internalRoot=e}Ip.prototype.render=Fp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(a(409));var n=t.current;np(n,du(),e,t,null,null)},Ip.prototype.unmount=Fp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;np(e.current,2,null,e,null,null),vu(),t[nt]=null}};function Ip(e){this._internalRoot=e}Ip.prototype.unstable_scheduleHydration=function(e){if(e){var t=Ze();e={blockedOn:null,target:e,priority:t};for(var n=0;n<xp.length&&t!==0&&t<xp[n].priority;n++);xp.splice(n,0,e),n===0&&Ep(e)}};var Lp=n.version;if(Lp!==`19.2.4`)throw Error(a(527,Lp,`19.2.4`));M.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(a(188)):(e=Object.keys(e).join(`,`),Error(a(268,e)));return e=d(t),e=e===null?null:f(e),e=e===null?null:e.stateNode,e};var Rp={bundleType:0,version:`19.2.4`,rendererPackageName:`react-dom`,currentDispatcherRef:j,reconcilerVersion:`19.2.4`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var zp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!zp.isDisabled&&zp.supportsFiber)try{Me=zp.inject(Rp),Ne=zp}catch{}}e.createRoot=function(e,t){if(!o(e))throw Error(a(299));var n=!1,r=``,i=Vs,s=Hs,c=Us;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(i=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=ep(e,1,!1,null,null,n,r,null,i,s,c,Pp),e[nt]=t.current,xd(e),new Fp(t)}})),Ze=t(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=Xe()})),Qe=k(`arrow-down-to-line`,[[`path`,{d:`M12 17V3`,key:`1cwfxf`}],[`path`,{d:`m6 11 6 6 6-6`,key:`12ii2o`}],[`path`,{d:`M19 21H5`,key:`150jfl`}]]),$e=k(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),et=k(`arrow-up-from-line`,[[`path`,{d:`m18 9-6-6-6 6`,key:`kcunyi`}],[`path`,{d:`M12 3v14`,key:`7cf3v8`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),tt=k(`bell-ring`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M22 8c0-2.3-.8-4.3-2-6`,key:`5bb3ad`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}],[`path`,{d:`M4 2C2.8 3.7 2 5.7 2 8`,key:`tap9e0`}]]),nt=k(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),rt=k(`brain`,[[`path`,{d:`M12 18V5`,key:`adv99a`}],[`path`,{d:`M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4`,key:`1e3is1`}],[`path`,{d:`M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5`,key:`1gqd8o`}],[`path`,{d:`M17.997 5.125a4 4 0 0 1 2.526 5.77`,key:`iwvgf7`}],[`path`,{d:`M18 18a4 4 0 0 0 2-7.464`,key:`efp6ie`}],[`path`,{d:`M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517`,key:`1gq6am`}],[`path`,{d:`M6 18a4 4 0 0 1-2-7.464`,key:`k1g0md`}],[`path`,{d:`M6.003 5.125a4 4 0 0 0-2.526 5.77`,key:`q97ue3`}]]),it=k(`case-sensitive`,[[`path`,{d:`m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16`,key:`d5nyq2`}],[`path`,{d:`M22 9v7`,key:`pvm9v3`}],[`path`,{d:`M3.304 13h6.392`,key:`1q3zxz`}],[`circle`,{cx:`18.5`,cy:`12.5`,r:`3.5`,key:`z97x68`}]]),at=k(`chevrons-down-up`,[[`path`,{d:`m7 20 5-5 5 5`,key:`13a0gw`}],[`path`,{d:`m7 4 5 5 5-5`,key:`1kwcof`}]]),ot=k(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),st=k(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),ct=k(`circle-arrow-up`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16 12-4-4-4 4`,key:`177agl`}],[`path`,{d:`M12 16V8`,key:`1sbj14`}]]),lt=k(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),ut=k(`clipboard-paste`,[[`path`,{d:`M11 14h10`,key:`1w8e9d`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v1.344`,key:`1e62lh`}],[`path`,{d:`m17 18 4-4-4-4`,key:`z2g111`}],[`path`,{d:`M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113`,key:`bjbb7m`}],[`rect`,{x:`8`,y:`2`,width:`8`,height:`4`,rx:`1`,key:`ublpy`}]]),dt=k(`clipboard`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}]]),ft=k(`cloud`,[[`path`,{d:`M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z`,key:`p7xjir`}]]),pt=k(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),mt=k(`cpu`,[[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M17 20v2`,key:`1rnc9c`}],[`path`,{d:`M17 2v2`,key:`11trls`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M2 17h2`,key:`7oei6x`}],[`path`,{d:`M2 7h2`,key:`asdhe0`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`M20 17h2`,key:`1fpfkl`}],[`path`,{d:`M20 7h2`,key:`1o8tra`}],[`path`,{d:`M7 20v2`,key:`4gnj0m`}],[`path`,{d:`M7 2v2`,key:`1i4yhu`}],[`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`,key:`1vbyd7`}],[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`1`,key:`z9xiuo`}]]),ht=k(`crosshair`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`22`,x2:`18`,y1:`12`,y2:`12`,key:`l9bcsi`}],[`line`,{x1:`6`,x2:`2`,y1:`12`,y2:`12`,key:`13hhkx`}],[`line`,{x1:`12`,x2:`12`,y1:`6`,y2:`2`,key:`10w3f3`}],[`line`,{x1:`12`,x2:`12`,y1:`22`,y2:`18`,key:`15g9kq`}]]),gt=k(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),_t=k(`ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),vt=k(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),yt=k(`file-archive`,[[`path`,{d:`M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5`,key:`4pqfef`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 12v-1`,key:`1ej8lb`}],[`path`,{d:`M8 18v-2`,key:`qcmpov`}],[`path`,{d:`M8 7V6`,key:`1nbb54`}],[`circle`,{cx:`8`,cy:`20`,r:`2`,key:`ckkr5m`}]]),bt=k(`file-braces`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),xt=k(`file-code`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12.5 8 15l2 2.5`,key:`1tg20x`}],[`path`,{d:`m14 12.5 2 2.5-2 2.5`,key:`yinavb`}]]),St=k(`file-diff`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M9 10h6`,key:`9gxzsh`}],[`path`,{d:`M12 13V7`,key:`h0r20n`}],[`path`,{d:`M9 17h6`,key:`r8uit2`}]]),Ct=k(`file-headphone`,[[`path`,{d:`M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343`,key:`1vfytu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0`,key:`1etmh7`}]]),wt=k(`file-image`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`circle`,{cx:`10`,cy:`12`,r:`2`,key:`737tya`}],[`path`,{d:`m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22`,key:`wt3hpn`}]]),Tt=k(`file-play`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z`,key:`1tzo1f`}]]),Et=k(`file-plus`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M9 15h6`,key:`cctwl0`}],[`path`,{d:`M12 18v-6`,key:`17g6i2`}]]),Dt=k(`file-spreadsheet`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 13h2`,key:`yr2amv`}],[`path`,{d:`M14 13h2`,key:`un5t4a`}],[`path`,{d:`M8 17h2`,key:`2yhykz`}],[`path`,{d:`M14 17h2`,key:`10kma7`}]]),Ot=k(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),kt=k(`file-type`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M11 18h2`,key:`12mj7e`}],[`path`,{d:`M12 12v6`,key:`3ahymv`}],[`path`,{d:`M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5`,key:`qbrxap`}]]),At=k(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),jt=k(`flask-conical`,[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`,key:`18mbvz`}],[`path`,{d:`M6.453 15h11.094`,key:`3shlmq`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}]]),Mt=k(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),Nt=k(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),Pt=k(`folder-search`,[[`path`,{d:`M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1`,key:`1bw5m7`}],[`path`,{d:`m21 21-1.9-1.9`,key:`1g2n9r`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}]]),Ft=k(`folder-symlink`,[[`path`,{d:`M2 9.35V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7`,key:`y8kt7d`}],[`path`,{d:`m8 16 3-3-3-3`,key:`rlqrt1`}]]),It=k(`folder-tree`,[[`path`,{d:`M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z`,key:`hod4my`}],[`path`,{d:`M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z`,key:`w4yl2u`}],[`path`,{d:`M3 5a2 2 0 0 0 2 2h3`,key:`f2jnh7`}],[`path`,{d:`M3 3v13a2 2 0 0 0 2 2h3`,key:`k8epm1`}]]),Lt=k(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),Rt=k(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),zt=k(`git-commit-horizontal`,[[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`line`,{x1:`3`,x2:`9`,y1:`12`,y2:`12`,key:`1dyftd`}],[`line`,{x1:`15`,x2:`21`,y1:`12`,y2:`12`,key:`oup4p8`}]]),Bt=k(`grip-horizontal`,[[`circle`,{cx:`12`,cy:`9`,r:`1`,key:`124mty`}],[`circle`,{cx:`19`,cy:`9`,r:`1`,key:`1ruzo2`}],[`circle`,{cx:`5`,cy:`9`,r:`1`,key:`1a8b28`}],[`circle`,{cx:`12`,cy:`15`,r:`1`,key:`1e56xg`}],[`circle`,{cx:`19`,cy:`15`,r:`1`,key:`1a92ep`}],[`circle`,{cx:`5`,cy:`15`,r:`1`,key:`5r1jwy`}]]),Vt=k(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),Ht=k(`house`,[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`,key:`5wwlr5`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`r6nss1`}]]),Ut=k(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Wt=k(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),Gt=k(`key`,[[`path`,{d:`m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4`,key:`g0fldk`}],[`path`,{d:`m21 2-9.6 9.6`,key:`1j0ho8`}],[`circle`,{cx:`7.5`,cy:`15.5`,r:`5.5`,key:`yqb3hr`}]]),Kt=k(`keyboard`,[[`path`,{d:`M10 8h.01`,key:`1r9ogq`}],[`path`,{d:`M12 12h.01`,key:`1mp3jc`}],[`path`,{d:`M14 8h.01`,key:`1primd`}],[`path`,{d:`M16 12h.01`,key:`1l6xoz`}],[`path`,{d:`M18 8h.01`,key:`emo2bl`}],[`path`,{d:`M6 8h.01`,key:`x9i8wu`}],[`path`,{d:`M7 16h10`,key:`wp8him`}],[`path`,{d:`M8 12h.01`,key:`czm47f`}],[`rect`,{width:`20`,height:`16`,x:`2`,y:`4`,rx:`2`,key:`18n3k1`}]]),qt=k(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),Jt=k(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),Yt=k(`link`,[[`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`,key:`1cjeqo`}],[`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`,key:`19qd67`}]]),Xt=k(`list-filter`,[[`path`,{d:`M2 5h20`,key:`1fs1ex`}],[`path`,{d:`M6 12h12`,key:`8npq4p`}],[`path`,{d:`M9 19h6`,key:`456am0`}]]),Zt=k(`list`,[[`path`,{d:`M3 5h.01`,key:`18ugdj`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 19h.01`,key:`noohij`}],[`path`,{d:`M8 5h13`,key:`1pao27`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 19h13`,key:`m83p4d`}]]),G=k(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),Qt=k(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),$t=k(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),en=k(`message-square`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]),tn=k(`mic`,[[`path`,{d:`M12 19v3`,key:`npa21l`}],[`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`,key:`1vc78b`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`13`,rx:`3`,key:`s6n7sd`}]]),nn=k(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]),rn=k(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),an=k(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),on=k(`move-vertical`,[[`path`,{d:`M12 2v20`,key:`t6zp3m`}],[`path`,{d:`m8 18 4 4 4-4`,key:`bh5tu3`}],[`path`,{d:`m8 6 4-4 4 4`,key:`ybng9g`}]]),sn=k(`octagon-x`,[[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z`,key:`2d38gg`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]]),cn=k(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),ln=k(`panel-left-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m16 15-3-3 3-3`,key:`14y99z`}]]),un=k(`panel-left-open`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m14 9 3 3-3 3`,key:`8010ee`}]]),dn=k(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),fn=k(`plug`,[[`path`,{d:`M12 22v-5`,key:`1ega77`}],[`path`,{d:`M15 8V2`,key:`18g5xt`}],[`path`,{d:`M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z`,key:`1xoxul`}],[`path`,{d:`M9 8V2`,key:`14iosj`}]]),pn=k(`power-off`,[[`path`,{d:`M18.36 6.64A9 9 0 0 1 20.77 15`,key:`dxknvb`}],[`path`,{d:`M6.16 6.16a9 9 0 1 0 12.68 12.68`,key:`1x7qb5`}],[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),mn=k(`power`,[[`path`,{d:`M12 2v10`,key:`mnfbl`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`,key:`obofu9`}]]),hn=k(`puzzle`,[[`path`,{d:`M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z`,key:`w46dr5`}]]),gn=k(`regex`,[[`path`,{d:`M17 3v10`,key:`15fgeh`}],[`path`,{d:`m12.67 5.5 8.66 5`,key:`1gpheq`}],[`path`,{d:`m12.67 10.5 8.66-5`,key:`1dkfa6`}],[`path`,{d:`M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z`,key:`swwfx4`}]]),_n=k(`replace-all`,[[`path`,{d:`M14 14a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1`,key:`zg1ipl`}],[`path`,{d:`M14 4a1 1 0 0 1 1-1`,key:`dhj8ez`}],[`path`,{d:`M15 10a1 1 0 0 1-1-1`,key:`1mnyi5`}],[`path`,{d:`M19 14a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1`,key:`txt6k4`}],[`path`,{d:`M21 4a1 1 0 0 0-1-1`,key:`sfs9ap`}],[`path`,{d:`M21 9a1 1 0 0 1-1 1`,key:`mp6qeo`}],[`path`,{d:`m3 7 3 3 3-3`,key:`x25e72`}],[`path`,{d:`M6 10V5a2 2 0 0 1 2-2h2`,key:`15xut4`}],[`rect`,{x:`3`,y:`14`,width:`7`,height:`7`,rx:`1`,key:`1bkyp8`}]]),vn=k(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),yn=k(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),bn=k(`server-off`,[[`path`,{d:`M7 2h13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-5`,key:`bt2siv`}],[`path`,{d:`M10 10 2.5 2.5C2 2 2 2.5 2 5v3a2 2 0 0 0 2 2h6z`,key:`1hjrv1`}],[`path`,{d:`M22 17v-1a2 2 0 0 0-2-2h-1`,key:`1iynyr`}],[`path`,{d:`M4 14a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16.5l1-.5.5.5-8-8H4z`,key:`161ggg`}],[`path`,{d:`M6 18h.01`,key:`uhywen`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),xn=k(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),Sn=k(`settings-2`,[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]),Cn=k(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),wn=k(`share-2`,[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]),Tn=k(`square-split-vertical`,[[`path`,{d:`M5 8V5c0-1 1-2 2-2h10c1 0 2 1 2 2v3`,key:`1pi83i`}],[`path`,{d:`M19 16v3c0 1-1 2-2 2H7c-1 0-2-1-2-2v-3`,key:`ido5k7`}],[`line`,{x1:`4`,x2:`20`,y1:`12`,y2:`12`,key:`1e0a9i`}]]),En=k(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),Dn=k(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),On=k(`tag`,[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`,key:`vktsd0`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`kqv944`}]]),kn=k(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),An=k(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),jn=k(`undo-2`,[[`path`,{d:`M9 14 4 9l5-5`,key:`102s5s`}],[`path`,{d:`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`,key:`f3b9sd`}]]),Mn=k(`unlink`,[[`path`,{d:`m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71`,key:`yqzxt4`}],[`path`,{d:`m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71`,key:`4qinb0`}],[`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`5`,key:`1041cp`}],[`line`,{x1:`2`,x2:`5`,y1:`8`,y2:`8`,key:`14m1p5`}],[`line`,{x1:`16`,x2:`16`,y1:`19`,y2:`22`,key:`rzdirn`}],[`line`,{x1:`19`,x2:`22`,y1:`16`,y2:`16`,key:`ox905f`}]]),Nn=k(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),Pn=k(`whole-word`,[[`circle`,{cx:`7`,cy:`12`,r:`3`,key:`12clwm`}],[`path`,{d:`M10 9v6`,key:`17i7lo`}],[`circle`,{cx:`17`,cy:`12`,r:`3`,key:`gl7c2s`}],[`path`,{d:`M14 7v8`,key:`dl84cr`}],[`path`,{d:`M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1`,key:`lt2kga`}]]),Fn=k(`wifi-off`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}],[`path`,{d:`M5 12.859a10 10 0 0 1 5.17-2.69`,key:`1dl1wf`}],[`path`,{d:`M19 12.859a10 10 0 0 0-2.007-1.523`,key:`4k23kn`}],[`path`,{d:`M2 8.82a15 15 0 0 1 4.177-2.643`,key:`1grhjp`}],[`path`,{d:`M22 8.82a15 15 0 0 0-11.288-3.764`,key:`z3jwby`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),In=k(`zoom-in`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`11`,x2:`11`,y1:`8`,y2:`14`,key:`1vmskp`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),Ln=k(`zoom-out`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),Rn=Ze(),K=e(r(),1),zn=e(_(),1);function Bn(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var Vn=e=>{switch(e){case`success`:return Wn;case`info`:return Kn;case`warning`:return Gn;case`error`:return qn;default:return null}},Hn=Array(12).fill(0),Un=({visible:e,className:t})=>K.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},K.createElement(`div`,{className:`sonner-spinner`},Hn.map((e,t)=>K.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),Wn=K.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},K.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),Gn=K.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},K.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),Kn=K.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},K.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),qn=K.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},K.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),Jn=K.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`},K.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),K.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),Yn=()=>{let[e,t]=K.useState(document.hidden);return K.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},Xn=1,Zn=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:Xn++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],K.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if($n(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!K.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!K.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!K.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!K.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||Xn++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Qn=(e,t)=>{let n=t?.id||Xn++;return Zn.addToast({title:e,...t,id:n}),n},$n=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,er=Qn,tr=Object.assign(er,{success:Zn.success,info:Zn.info,warning:Zn.warning,error:Zn.error,custom:Zn.custom,message:Zn.message,promise:Zn.promise,dismiss:Zn.dismiss,loading:Zn.loading},{getHistory:()=>Zn.toasts,getToasts:()=>Zn.getActiveToasts()});Bn(`[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}`);function nr(e){return e.label!==void 0}var rr=3,ir=`24px`,ar=`16px`,or=4e3,sr=356,cr=14,lr=45,ur=200;function dr(...e){return e.filter(Boolean).join(` `)}function fr(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var pr=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:f,closeButton:p,style:m,cancelButtonStyle:h,actionButtonStyle:g,className:_=``,descriptionClassName:v=``,duration:y,position:b,gap:x,expandByDefault:S,classNames:C,icons:w,closeButtonAriaLabel:T=`Close toast`}=e,[E,D]=K.useState(null),[O,k]=K.useState(null),[ee,A]=K.useState(!1),[te,ne]=K.useState(!1),[re,j]=K.useState(!1),[M,N]=K.useState(!1),[ie,ae]=K.useState(!1),[P,F]=K.useState(0),[I,oe]=K.useState(0),L=K.useRef(n.duration||y||or),se=K.useRef(null),ce=K.useRef(null),le=c===0,ue=c+1<=o,de=n.type,fe=n.dismissible!==!1,pe=n.className||``,me=n.descriptionClassName||``,he=K.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),ge=K.useMemo(()=>n.closeButton??p,[n.closeButton,p]),R=K.useMemo(()=>n.duration||y||or,[n.duration,y]),_e=K.useRef(0),ve=K.useRef(0),ye=K.useRef(0),be=K.useRef(null),[z,xe]=b.split(`-`),Se=K.useMemo(()=>s.reduce((e,t,n)=>n>=he?e:e+t.height,0),[s,he]),Ce=Yn(),we=n.invert||t,Te=de===`loading`;ve.current=K.useMemo(()=>he*x+Se,[he,Se]),K.useEffect(()=>{L.current=R},[R]),K.useEffect(()=>{A(!0)},[]),K.useEffect(()=>{let e=ce.current;if(e){let t=e.getBoundingClientRect().height;return oe(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),K.useLayoutEffect(()=>{if(!ee)return;let e=ce.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,oe(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[ee,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let Ee=K.useCallback(()=>{ne(!0),F(ve.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},ur)},[n,d,a,ve]);K.useEffect(()=>{if(n.promise&&de===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||Ce?(()=>{if(ye.current<_e.current){let e=new Date().getTime()-_e.current;L.current-=e}ye.current=new Date().getTime()})():L.current!==1/0&&(_e.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),Ee()},L.current)),()=>clearTimeout(e)},[u,i,n,de,Ce,Ee]),K.useEffect(()=>{n.delete&&(Ee(),n.onDismiss==null||n.onDismiss.call(n,n))},[Ee,n.delete]);function De(){return w?.loading?K.createElement(`div`,{className:dr(C?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":de===`loading`},w.loading):K.createElement(Un,{className:dr(C?.loader,n?.classNames?.loader),visible:de===`loading`})}let Oe=n.icon||w?.[de]||Vn(de);return K.createElement(`li`,{tabIndex:0,ref:ce,className:dr(_,pe,C?.toast,n?.classNames?.toast,C?.default,C?.[de],n?.classNames?.[de]),"data-sonner-toast":``,"data-rich-colors":n.richColors??f,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":ee,"data-promise":!!n.promise,"data-swiped":ie,"data-removed":te,"data-visible":ue,"data-y-position":z,"data-x-position":xe,"data-index":c,"data-front":le,"data-swiping":re,"data-dismissible":fe,"data-type":de,"data-invert":we,"data-swipe-out":M,"data-swipe-direction":O,"data-expanded":!!(u||S&&ee),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${te?P:ve.current}px`,"--initial-height":S?`auto`:`${I}px`,...m,...n.style},onDragEnd:()=>{j(!1),D(null),be.current=null},onPointerDown:e=>{e.button!==2&&(Te||!fe||(se.current=new Date,F(ve.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(j(!0),be.current={x:e.clientX,y:e.clientY})))},onPointerUp:()=>{if(M||!fe)return;be.current=null;let e=Number(ce.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(ce.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-se.current?.getTime(),i=E===`x`?e:t,a=Math.abs(i)/r;if(Math.abs(i)>=lr||a>.11){F(ve.current),n.onDismiss==null||n.onDismiss.call(n,n),k(E===`x`?e>0?`right`:`left`:t>0?`down`:`up`),Ee(),N(!0);return}else{var o,s;(o=ce.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=ce.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`)}ae(!1),j(!1),D(null)},onPointerMove:t=>{var n,r;if(!be.current||!fe||window.getSelection()?.toString().length>0)return;let i=t.clientY-be.current.y,a=t.clientX-be.current.x,o=e.swipeDirections??fr(b);!E&&(Math.abs(a)>1||Math.abs(i)>1)&&D(Math.abs(a)>Math.abs(i)?`x`:`y`);let s={x:0,y:0},c=e=>1/(1.5+Math.abs(e)/20);if(E===`y`){if(o.includes(`top`)||o.includes(`bottom`))if(o.includes(`top`)&&i<0||o.includes(`bottom`)&&i>0)s.y=i;else{let e=i*c(i);s.y=Math.abs(e)<Math.abs(i)?e:i}}else if(E===`x`&&(o.includes(`left`)||o.includes(`right`)))if(o.includes(`left`)&&a<0||o.includes(`right`)&&a>0)s.x=a;else{let e=a*c(a);s.x=Math.abs(e)<Math.abs(a)?e:a}(Math.abs(s.x)>0||Math.abs(s.y)>0)&&ae(!0),(n=ce.current)==null||n.style.setProperty(`--swipe-amount-x`,`${s.x}px`),(r=ce.current)==null||r.style.setProperty(`--swipe-amount-y`,`${s.y}px`)}},ge&&!n.jsx&&de!==`loading`?K.createElement(`button`,{"aria-label":T,"data-disabled":Te,"data-close-button":!0,onClick:Te||!fe?()=>{}:()=>{Ee(),n.onDismiss==null||n.onDismiss.call(n,n)},className:dr(C?.closeButton,n?.classNames?.closeButton)},w?.close??Jn):null,(de||n.icon||n.promise)&&n.icon!==null&&(w?.[de]!==null||n.icon)?K.createElement(`div`,{"data-icon":``,className:dr(C?.icon,n?.classNames?.icon)},n.promise||n.type===`loading`&&!n.icon?n.icon||De():null,n.type===`loading`?null:Oe):null,K.createElement(`div`,{"data-content":``,className:dr(C?.content,n?.classNames?.content)},K.createElement(`div`,{"data-title":``,className:dr(C?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?K.createElement(`div`,{"data-description":``,className:dr(v,me,C?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),K.isValidElement(n.cancel)?n.cancel:n.cancel&&nr(n.cancel)?K.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||h,onClick:e=>{nr(n.cancel)&&fe&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),Ee())},className:dr(C?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,K.isValidElement(n.action)?n.action:n.action&&nr(n.action)?K.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||g,onClick:e=>{nr(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&Ee())},className:dr(C?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function mr(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function hr(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?ar:ir;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var gr=K.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:f,duration:p,style:m,visibleToasts:h=rr,toastOptions:g,dir:_=mr(),gap:v=cr,icons:y,containerAriaLabel:b=`Notifications`}=e,[x,S]=K.useState([]),C=K.useMemo(()=>n?x.filter(e=>e.toasterId===n):x.filter(e=>!e.toasterId),[x,n]),w=K.useMemo(()=>Array.from(new Set([i].concat(C.filter(e=>e.position).map(e=>e.position)))),[C,i]),[T,E]=K.useState([]),[D,O]=K.useState(!1),[k,ee]=K.useState(!1),[A,te]=K.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),ne=K.useRef(null),re=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),j=K.useRef(null),M=K.useRef(!1),N=K.useCallback(e=>{S(t=>(t.find(t=>t.id===e.id)?.delete||Zn.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return K.useEffect(()=>Zn.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{S(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{zn.flushSync(()=>{S(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[x]),K.useEffect(()=>{if(d!==`system`){te(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?te(`dark`):te(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{te(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{te(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),K.useEffect(()=>{x.length<=1&&O(!1)},[x]),K.useEffect(()=>{let e=e=>{if(a.every(t=>e[t]||e.code===t)){var t;O(!0),(t=ne.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===ne.current||ne.current?.contains(document.activeElement))&&O(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),K.useEffect(()=>{if(ne.current)return()=>{j.current&&(j.current.focus({preventScroll:!0}),j.current=null,M.current=!1)}},[ne.current]),K.createElement(`section`,{ref:t,"aria-label":`${b} ${re}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0},w.map((t,n)=>{let[i,a]=t.split(`-`);return C.length?K.createElement(`ol`,{key:t,dir:_===`auto`?mr():_,tabIndex:-1,ref:ne,className:c,"data-sonner-toaster":!0,"data-sonner-theme":A,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${T[0]?.height||0}px`,"--width":`${sr}px`,"--gap":`${v}px`,...m,...hr(l,u)},onBlur:e=>{M.current&&!e.currentTarget.contains(e.relatedTarget)&&(M.current=!1,j.current&&=(j.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||M.current||(M.current=!0,j.current=e.relatedTarget)},onMouseEnter:()=>O(!0),onMouseMove:()=>O(!0),onMouseLeave:()=>{k||O(!1)},onDragEnd:()=>O(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||ee(!0)},onPointerUp:()=>ee(!1)},C.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>K.createElement(pr,{key:n.id,icons:y,index:i,toast:n,defaultRichColors:f,duration:g?.duration??p,className:g?.className,descriptionClassName:g?.descriptionClassName,invert:r,visibleToasts:h,closeButton:g?.closeButton??s,interacting:k,position:t,style:g?.style,unstyled:g?.unstyled,classNames:g?.classNames,cancelButtonStyle:g?.cancelButtonStyle,actionButtonStyle:g?.actionButtonStyle,closeButtonAriaLabel:g?.closeButtonAriaLabel,removeToast:N,toasts:C.filter(e=>e.position==n.position),heights:T.filter(e=>e.position==n.position),setHeights:E,expandByDefault:o,gap:v,expanded:D,swipeDirections:e.swipeDirections}))):null}))}),q=n(),_r=({...e})=>{let t=Fe(e=>e.theme);return(0,q.jsx)(gr,{theme:t===`system`?window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:t,className:`toaster group`,icons:{success:(0,q.jsx)(lt,{className:`size-4`}),info:(0,q.jsx)(Ut,{className:`size-4`}),warning:(0,q.jsx)(An,{className:`size-4`}),error:(0,q.jsx)(sn,{className:`size-4`}),loading:(0,q.jsx)(G,{className:`size-4 animate-spin`})},style:{"--normal-bg":`var(--color-popover)`,"--normal-text":`var(--color-popover-foreground)`,"--normal-border":`var(--color-border)`,"--border-radius":`var(--radius)`},...e})};function vr({delayDuration:e=0,...t}){return(0,q.jsx)(C,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function yr(e,t){let n=getComputedStyle(e);return t*parseFloat(n.fontSize)}function br(e,t){let n=getComputedStyle(e.ownerDocument.body);return t*parseFloat(n.fontSize)}function xr(e){return e/100*window.innerHeight}function Sr(e){return e/100*window.innerWidth}function Cr(e){switch(typeof e){case`number`:return[e,`px`];case`string`:{let t=parseFloat(e);return e.endsWith(`%`)?[t,`%`]:e.endsWith(`px`)?[t,`px`]:e.endsWith(`rem`)?[t,`rem`]:e.endsWith(`em`)?[t,`em`]:e.endsWith(`vh`)?[t,`vh`]:e.endsWith(`vw`)?[t,`vw`]:[t,`%`]}}}function wr({groupSize:e,panelElement:t,styleProp:n}){let r,[i,a]=Cr(n);switch(a){case`%`:r=i/100*e;break;case`px`:r=i;break;case`rem`:r=br(t,i);break;case`em`:r=yr(t,i);break;case`vh`:r=xr(i);break;case`vw`:r=Sr(i);break}return r}function Tr(e){return parseFloat(e.toFixed(3))}function Er({group:e}){let{orientation:t,panels:n}=e;return n.reduce((e,n)=>(e+=t===`horizontal`?n.element.offsetWidth:n.element.offsetHeight,e),0)}function Dr(e){let{panels:t}=e,n=Er({group:e});return n===0?t.map(e=>({groupResizeBehavior:e.panelConstraints.groupResizeBehavior,collapsedSize:0,collapsible:e.panelConstraints.collapsible===!0,defaultSize:void 0,disabled:e.panelConstraints.disabled,minSize:0,maxSize:100,panelId:e.id})):t.map(e=>{let{element:t,panelConstraints:r}=e,i=0;r.collapsedSize!==void 0&&(i=Tr(wr({groupSize:n,panelElement:t,styleProp:r.collapsedSize})/n*100));let a;r.defaultSize!==void 0&&(a=Tr(wr({groupSize:n,panelElement:t,styleProp:r.defaultSize})/n*100));let o=0;r.minSize!==void 0&&(o=Tr(wr({groupSize:n,panelElement:t,styleProp:r.minSize})/n*100));let s=100;return r.maxSize!==void 0&&(s=Tr(wr({groupSize:n,panelElement:t,styleProp:r.maxSize})/n*100)),{groupResizeBehavior:r.groupResizeBehavior,collapsedSize:i,collapsible:r.collapsible===!0,defaultSize:a,disabled:r.disabled,minSize:o,maxSize:s,panelId:e.id}})}function Or(e,t=`Assertion error`){if(!e)throw Error(t)}function kr(e,t){return Array.from(t).sort(e===`horizontal`?Ar:jr)}function Ar(e,t){let n=e.element.offsetLeft-t.element.offsetLeft;return n===0?e.element.offsetWidth-t.element.offsetWidth:n}function jr(e,t){let n=e.element.offsetTop-t.element.offsetTop;return n===0?e.element.offsetHeight-t.element.offsetHeight:n}function Mr(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.ELEMENT_NODE}function Nr(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function Pr({orientation:e,rects:t,targetRect:n}){let r={x:n.x+n.width/2,y:n.y+n.height/2},i,a=Number.MAX_VALUE;for(let n of t){let{x:t,y:o}=Nr(r,n),s=e===`horizontal`?t:o;s<a&&(a=s,i=n)}return Or(i,`No rect found`),i}var Fr;function Ir(){return Fr===void 0&&(Fr=typeof matchMedia==`function`?!!matchMedia(`(pointer:coarse)`).matches:!1),Fr}function Lr(e){let{element:t,orientation:n,panels:r,separators:i}=e,a=kr(n,Array.from(t.children).filter(Mr).map(e=>({element:e}))).map(({element:e})=>e),o=[],s=!1,c=!1,l=-1,u=-1,d=0,f,p=[];{let e=-1;for(let t of a)t.hasAttribute(`data-panel`)&&(e++,t.ariaDisabled===null&&(d++,l===-1&&(l=e),u=e))}if(d>1){let t=-1;for(let d of a)if(d.hasAttribute(`data-panel`)){t++;let i=r.find(e=>e.element===d);if(i){if(f){let r=f.element.getBoundingClientRect(),a=d.getBoundingClientRect(),m;if(c){let e=n===`horizontal`?new DOMRect(r.right,r.top,0,r.height):new DOMRect(r.left,r.bottom,r.width,0),t=n===`horizontal`?new DOMRect(a.left,a.top,0,a.height):new DOMRect(a.left,a.top,a.width,0);switch(p.length){case 0:m=[e,t];break;case 1:{let i=p[0];m=[i,Pr({orientation:n,rects:[r,a],targetRect:i.element.getBoundingClientRect()})===r?t:e];break}default:m=p;break}}else m=p.length?p:[n===`horizontal`?new DOMRect(r.right,a.top,a.left-r.right,a.height):new DOMRect(a.left,r.bottom,a.width,a.top-r.bottom)];for(let n of m){let r=`width`in n?n:n.element.getBoundingClientRect(),a=Ir()?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(r.width<a){let e=a-r.width;r=new DOMRect(r.x-e/2,r.y,r.width+e,r.height)}if(r.height<a){let e=a-r.height;r=new DOMRect(r.x,r.y-e/2,r.width,r.height+e)}!s&&!(t<=l||t>u)&&o.push({group:e,groupSize:Er({group:e}),panels:[f,i],separator:`width`in n?void 0:n,rect:r}),s=!1}}c=!1,f=i,p=[]}}else if(d.hasAttribute(`data-separator`)){d.ariaDisabled!==null&&(s=!0);let e=i.find(e=>e.element===d);e?p.push(e):(f=void 0,p=[])}else c=!0}return o}var Rr=class{#e={};addListener(e,t){let n=this.#e[e];return n===void 0?this.#e[e]=[t]:n.includes(t)||n.push(t),()=>{this.removeListener(e,t)}}emit(e,t){let n=this.#e[e];if(n!==void 0)if(n.length===1)n[0].call(null,t);else{let e=!1,r=null,i=Array.from(n);for(let n=0;n<i.length;n++){let a=i[n];try{a.call(null,t)}catch(t){r===null&&(e=!0,r=t)}}if(e)throw r}}removeAllListeners(){this.#e={}}removeListener(e,t){let n=this.#e[e];if(n!==void 0){let e=n.indexOf(t);e>=0&&n.splice(e,1)}}},zr=new Map,Br=new Rr;function Vr(e){zr=new Map(zr),zr.delete(e)}function Hr(e,t){for(let[t]of zr)if(t.id===e)return t}function Ur(e,t){for(let[t,n]of zr)if(t.id===e)return n;if(t)throw Error(`Could not find data for Group with id ${e}`)}function Wr(){return zr}function Gr(e,t){return Br.addListener(`groupChange`,n=>{n.group.id===e&&t(n)})}function Kr(e,t){let n=zr.get(e);zr=new Map(zr),zr.set(e,t),Br.emit(`groupChange`,{group:e,prev:n,next:t})}function qr(e,t,n){let r,i={x:1/0,y:1/0};for(let a of t){let t=Nr(n,a.rect);switch(e){case`horizontal`:t.x<=i.x&&(r=a,i=t);break;case`vertical`:t.y<=i.y&&(r=a,i=t);break}}return r?{distance:i,hitRegion:r}:void 0}function Jr(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function Yr(e,t){if(e===t)throw Error(`Cannot compare node with itself`);let n={a:ti(e),b:ti(t)},r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();Or(r,`Stacking order can only be calculated for elements with a common ancestor`);let i={a:ei($r(n.a)),b:ei($r(n.b))};if(i.a===i.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},i=e.length;for(;i--;){let n=e[i];if(n===t.a)return 1;if(n===t.b)return-1}}return Math.sign(i.a-i.b)}var Xr=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function Zr(e){let t=getComputedStyle(ni(e)??e).display;return t===`flex`||t===`inline-flex`}function Qr(e){let t=getComputedStyle(e);return!!(t.position===`fixed`||t.zIndex!==`auto`&&(t.position!==`static`||Zr(e))||+t.opacity<1||`transform`in t&&t.transform!==`none`||`webkitTransform`in t&&t.webkitTransform!==`none`||`mixBlendMode`in t&&t.mixBlendMode!==`normal`||`filter`in t&&t.filter!==`none`||`webkitFilter`in t&&t.webkitFilter!==`none`||`isolation`in t&&t.isolation===`isolate`||Xr.test(t.willChange)||t.webkitOverflowScrolling===`touch`)}function $r(e){let t=e.length;for(;t--;){let n=e[t];if(Or(n,`Missing node`),Qr(n))return n}return null}function ei(e){return e&&Number(getComputedStyle(e).zIndex)||0}function ti(e){let t=[];for(;e;)t.push(e),e=ni(e);return t}function ni(e){let{parentNode:t}=e;return Jr(t)?t.host:t}function ri(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function ii({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!Mr(n)||n.contains(e)||e.contains(n))return!0;if(Yr(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(ri(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function ai(e,t){let n=[];return t.forEach((t,r)=>{if(r.disabled)return;let i=Lr(r),a=qr(r.orientation,i,{x:e.clientX,y:e.clientY});a&&a.distance.x<=0&&a.distance.y<=0&&ii({groupElement:r.element,hitRegion:a.hitRegion.rect,pointerEventTarget:e.target})&&n.push(a.hitRegion)}),n}function oi(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}function si(e,t,n=0){return Math.abs(Tr(e)-Tr(t))<=n}function ci(e,t){return si(e,t)?0:e>t?1:-1}function li({overrideDisabledPanels:e,panelConstraints:t,prevSize:n,size:r}){let{collapsedSize:i=0,collapsible:a,disabled:o,maxSize:s=100,minSize:c=0}=t;if(o&&!e)return n;if(ci(r,c)<0)if(a){let e=(i+c)/2;r=ci(r,e)<0?i:c}else r=c;return r=Math.min(s,r),r=Tr(r),r}function ui({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:i,trigger:a}){if(si(e,0))return t;let o=a===`imperative-api`,s=Object.values(t),c=Object.values(i),l=[...s],[u,d]=r;Or(u!=null,`Invalid first pivot index`),Or(d!=null,`Invalid second pivot index`);let f=0;switch(a){case`keyboard`:{let t=e<0?d:u,r=n[t];Or(r,`Panel constraints not found for index ${t}`);let{collapsedSize:i=0,collapsible:a,minSize:o=0}=r;if(a){let n=s[t];if(Or(n!=null,`Previous layout not found for panel index ${t}`),si(n,i)){let t=o-n;ci(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?u:d,r=n[t];Or(r,`No panel constraints found for index ${t}`);let{collapsedSize:i=0,collapsible:a,minSize:o=0}=r;if(a){let n=s[t];if(Or(n!=null,`Previous layout not found for panel index ${t}`),si(n,o)){let t=n-i;ci(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}break;default:{let t=e<0?d:u,r=n[t];Or(r,`Panel constraints not found for index ${t}`);let i=s[t],{collapsible:a,collapsedSize:o,minSize:c}=r;if(a&&ci(i,c)<0)if(e>0){let t=c-o,n=t/2;ci(i+e,c)<0&&(e=ci(e,n)<=0?0:t)}else{let t=c-o,n=100-t/2;ci(i-e,c)<0&&(e=ci(100+e,n)>0?0:-t)}break}}{let t=e<0?1:-1,r=e<0?d:u,i=0;for(;;){let e=s[r];Or(e!=null,`Previous layout not found for panel index ${r}`);let a=li({overrideDisabledPanels:o,panelConstraints:n[r],prevSize:e,size:100})-e;if(i+=a,r+=t,r<0||r>=n.length)break}let a=Math.min(Math.abs(e),Math.abs(i));e=e<0?0-a:a}{let t=e<0?u:d;for(;t>=0&&t<n.length;){let r=Math.abs(e)-Math.abs(f),i=s[t];Or(i!=null,`Previous layout not found for panel index ${t}`);let a=i-r,c=li({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:i,size:a});if(!si(i,c)&&(f+=i-c,l[t]=c,f.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?t--:t++}}if(oi(c,l))return i;{let t=e<0?d:u,r=s[t];Or(r!=null,`Previous layout not found for panel index ${t}`);let i=r+f,a=li({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:r,size:i});if(l[t]=a,!si(a,i)){let t=i-a,r=e<0?d:u;for(;r>=0&&r<n.length;){let i=l[r];Or(i!=null,`Previous layout not found for panel index ${r}`);let a=i+t,s=li({overrideDisabledPanels:o,panelConstraints:n[r],prevSize:i,size:a});if(si(i,s)||(t-=s-i,l[r]=s),si(t,0))break;e>0?r--:r++}}}if(!si(Object.values(l).reduce((e,t)=>t+e,0),100,.1))return i;let p=Object.keys(i);return l.reduce((e,t,n)=>(e[p[n]]=t,e),{})}function di(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(t[n]===void 0||ci(e[n],t[n])!==0)return!1;return!0}function fi({layout:e,panelConstraints:t}){let n=Object.values(e),r=[...n],i=r.reduce((e,t)=>e+t,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(e=>`${e}%`).join(`, `)}`);if(!si(i,100)&&r.length>0)for(let e=0;e<t.length;e++){let t=r[e];Or(t!=null,`No layout data found for index ${e}`),r[e]=100/i*t}let a=0;for(let e=0;e<t.length;e++){let i=n[e];Or(i!=null,`No layout data found for index ${e}`);let o=r[e];Or(o!=null,`No layout data found for index ${e}`);let s=li({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:i,size:o});o!=s&&(a+=o-s,r[e]=s)}if(!si(a,0))for(let e=0;e<t.length;e++){let n=r[e];Or(n!=null,`No layout data found for index ${e}`);let i=n+a,o=li({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:n,size:i});if(n!==o&&(a-=o-n,r[e]=o,si(a,0)))break}let o=Object.keys(e);return r.reduce((e,t,n)=>(e[o[n]]=t,e),{})}function pi({groupId:e,panelId:t}){let n=()=>{let t=Wr();for(let[n,{defaultLayoutDeferred:r,derivedPanelConstraints:i,layout:a,groupSize:o,separatorToPanels:s}]of t)if(n.id===e)return{defaultLayoutDeferred:r,derivedPanelConstraints:i,group:n,groupSize:o,layout:a,separatorToPanels:s};throw Error(`Group ${e} not found`)},r=()=>{let e=n().derivedPanelConstraints.find(e=>e.panelId===t);if(e!==void 0)return e;throw Error(`Panel constraints not found for Panel ${t}`)},i=()=>{let e=n().group.panels.find(e=>e.id===t);if(e!==void 0)return e;throw Error(`Layout not found for Panel ${t}`)},a=()=>{let e=n().layout[t];if(e!==void 0)return e;throw Error(`Layout not found for Panel ${t}`)},o=e=>{let r=a();if(e===r)return;let{defaultLayoutDeferred:i,derivedPanelConstraints:o,group:s,groupSize:c,layout:l,separatorToPanels:u}=n(),d=s.panels.findIndex(e=>e.id===t),f=d===s.panels.length-1,p=fi({layout:ui({delta:f?r-e:e-r,initialLayout:l,panelConstraints:o,pivotIndices:f?[d-1,d]:[d,d+1],prevLayout:l,trigger:`imperative-api`}),panelConstraints:o});di(l,p)||Kr(s,{defaultLayoutDeferred:i,derivedPanelConstraints:o,groupSize:c,layout:p,separatorToPanels:u})};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=r(),{mutableValues:n}=i(),s=a();e&&s!==t&&(n.expandToSize=s,o(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:n}=r(),{mutableValues:s}=i(),c=a();if(e&&c===t){let e=s.expandToSize??n;e===0&&(e=1),o(e)}},getSize:()=>{let{group:e}=n(),t=a(),{element:r}=i();return{asPercentage:t,inPixels:e.orientation===`horizontal`?r.offsetWidth:r.offsetHeight}},isCollapsed:()=>{let{collapsible:e,collapsedSize:t}=r(),n=a();return e&&si(t,n)},resize:e=>{let{group:t}=n(),{element:r}=i(),a=Er({group:t});o(Tr(wr({groupSize:a,panelElement:r,styleProp:e})/a*100))}}}function mi(e){e.defaultPrevented||ai(e,Wr()).forEach(t=>{if(t.separator){let n=t.panels.find(e=>e.panelConstraints.defaultSize!==void 0);if(n){let r=n.panelConstraints.defaultSize,i=pi({groupId:t.group.id,panelId:n.id});i&&r!==void 0&&(i.resize(r),e.preventDefault())}}})}function hi(e){let t=Wr();for(let[n]of t)if(n.separators.some(t=>t.element===e))return n;throw Error(`Could not find parent Group for separator element`)}function gi({groupId:e}){let t=()=>{let t=Wr();for(let[n,r]of t)if(n.id===e)return{group:n,...r};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){let{defaultLayoutDeferred:e,layout:n}=t();return e?{}:n},setLayout(e){let{defaultLayoutDeferred:n,derivedPanelConstraints:r,group:i,groupSize:a,layout:o,separatorToPanels:s}=t(),c=fi({layout:e,panelConstraints:r});return n?o:(di(o,c)||Kr(i,{defaultLayoutDeferred:n,derivedPanelConstraints:r,groupSize:a,layout:c,separatorToPanels:s}),c)}}}function _i(e,t){let n=hi(e),r=Ur(n.id,!0),i=n.separators.find(t=>t.element===e);Or(i,`Matching separator not found`);let a=r.separatorToPanels.get(i);Or(a,`Matching panels not found`);let o=a.map(e=>n.panels.indexOf(e)),s=gi({groupId:n.id}).getLayout(),c=fi({layout:ui({delta:t,initialLayout:s,panelConstraints:r.derivedPanelConstraints,pivotIndices:o,prevLayout:s,trigger:`keyboard`}),panelConstraints:r.derivedPanelConstraints});di(s,c)||Kr(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedPanelConstraints:r.derivedPanelConstraints,groupSize:r.groupSize,layout:c,separatorToPanels:r.separatorToPanels})}function vi(e){if(e.defaultPrevented)return;let t=e.currentTarget,n=hi(t);if(!n.disabled)switch(e.key){case`ArrowDown`:e.preventDefault(),n.orientation===`vertical`&&_i(t,5);break;case`ArrowLeft`:e.preventDefault(),n.orientation===`horizontal`&&_i(t,-5);break;case`ArrowRight`:e.preventDefault(),n.orientation===`horizontal`&&_i(t,5);break;case`ArrowUp`:e.preventDefault(),n.orientation===`vertical`&&_i(t,-5);break;case`End`:e.preventDefault(),_i(t,100);break;case`Enter`:{e.preventDefault();let n=hi(t),{derivedPanelConstraints:r,layout:i,separatorToPanels:a}=Ur(n.id,!0),o=n.separators.find(e=>e.element===t);Or(o,`Matching separator not found`);let s=a.get(o);Or(s,`Matching panels not found`);let c=s[0],l=r.find(e=>e.panelId===c.id);if(Or(l,`Panel metadata not found`),l.collapsible){let e=i[c.id];_i(t,(l.collapsedSize===e?n.mutableState.expandedPanelSizes[c.id]??l.minSize:l.collapsedSize)-e)}break}case`F6`:{e.preventDefault();let n=hi(t).separators.map(e=>e.element),r=Array.from(n).findIndex(t=>t===e.currentTarget);Or(r!==null,`Index not found`),n[e.shiftKey?r>0?r-1:n.length-1:r+1<n.length?r+1:0].focus({preventScroll:!0});break}case`Home`:e.preventDefault(),_i(t,-100);break}}var yi={cursorFlags:0,state:`inactive`},bi=new Rr;function xi(){return yi}function Si(e){return bi.addListener(`change`,e)}function Ci(e){let t=yi,n={...yi};n.cursorFlags=e,yi=n,bi.emit(`change`,{prev:t,next:n})}function wi(e){let t=yi;yi=e,bi.emit(`change`,{prev:t,next:e})}function Ti(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=Wr(),n=ai(e,t),r=new Map,i=!1;n.forEach(e=>{e.separator&&(i||(i=!0,e.separator.element.focus({preventScroll:!0})));let n=t.get(e.group);n&&r.set(e.group,n.layout)}),wi({cursorFlags:0,hitRegions:n,initialLayoutMap:r,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:`active`}),n.length&&e.preventDefault()}var J=e=>e,Ei=()=>{},Di=1,Oi=2,ki=4,Ai=8,ji=3,Mi=12,Ni;function Pi(){return Ni===void 0&&(Ni=!1,typeof window<`u`&&(window.navigator.userAgent.includes(`Chrome`)||window.navigator.userAgent.includes(`Firefox`))&&(Ni=!0)),Ni}function Fi({cursorFlags:e,groups:t,state:n}){let r=0,i=0;switch(n){case`active`:case`hover`:t.forEach(e=>{if(!e.mutableState.disableCursor)switch(e.orientation){case`horizontal`:r++;break;case`vertical`:i++;break}})}if(!(r===0&&i===0)){switch(n){case`active`:if(e&&Pi()){let t=(e&Di)!==0,n=(e&Oi)!==0,r=(e&ki)!==0,i=(e&Ai)!==0;if(t)return r?`se-resize`:i?`ne-resize`:`e-resize`;if(n)return r?`sw-resize`:i?`nw-resize`:`w-resize`;if(r)return`s-resize`;if(i)return`n-resize`}break}return Pi()?r>0&&i>0?`move`:r>0?`ew-resize`:`ns-resize`:r>0&&i>0?`grab`:r>0?`col-resize`:`row-resize`}}var Ii=new WeakMap;function Li(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Ii.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));let r=xi();switch(r.state){case`active`:case`hover`:{let e=Fi({cursorFlags:r.cursorFlags,groups:r.hitRegions.map(e=>e.group),state:r.state}),i=`*, *:hover {cursor: ${e} !important; }`;if(t===i)return;t=i,e?n.cssRules.length===0?n.insertRule(i):n.replaceSync(i):n.cssRules.length===1&&n.deleteRule(0);break}case`inactive`:t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}Ii.set(e,{prevStyle:t,styleSheet:n})}function Ri({document:e,event:t,hitRegions:n,initialLayoutMap:r,mountedGroups:i,pointerDownAtPoint:a,prevCursorFlags:o}){let s=0;n.forEach(e=>{let{group:n,groupSize:o}=e,{orientation:c,panels:l}=n,{disableCursor:u}=n.mutableState,d=0;d=a?c===`horizontal`?(t.clientX-a.x)/o*100:(t.clientY-a.y)/o*100:c===`horizontal`?t.clientX<0?-100:100:t.clientY<0?-100:100;let f=r.get(n),p=i.get(n);if(!f||!p)return;let{defaultLayoutDeferred:m,derivedPanelConstraints:h,groupSize:g,layout:_,separatorToPanels:v}=p;if(h&&_&&v){let t=ui({delta:d,initialLayout:f,panelConstraints:h,pivotIndices:e.panels.map(e=>l.indexOf(e)),prevLayout:_,trigger:`mouse-or-touch`});if(di(t,_)){if(d!==0&&!u)switch(c){case`horizontal`:s|=d<0?Di:Oi;break;case`vertical`:s|=d<0?ki:Ai;break}}else Kr(e.group,{defaultLayoutDeferred:m,derivedPanelConstraints:h,groupSize:g,layout:t,separatorToPanels:v})}});let c=0;t.movementX===0?c|=o&ji:c|=s&ji,t.movementY===0?c|=o&Mi:c|=s&Mi,Ci(c),Li(e)}function zi(e){let t=Wr(),n=xi();switch(n.state){case`active`:Ri({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function Bi(e){if(e.defaultPrevented)return;let t=xi(),n=Wr();switch(t.state){case`active`:if(e.buttons===0){wi({cursorFlags:0,state:`inactive`}),t.hitRegions.forEach(e=>{let t=Ur(e.group.id,!0);Kr(e.group,t)});return}Ri({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break;default:{let r=ai(e,n);r.length===0?t.state!==`inactive`&&wi({cursorFlags:0,state:`inactive`}):wi({cursorFlags:0,hitRegions:r,state:`hover`}),Li(e.currentTarget);break}}}function Vi(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(xi().state){case`hover`:wi({cursorFlags:0,state:`inactive`})}}function Hi(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=xi();switch(t.state){case`active`:wi({cursorFlags:0,state:`inactive`}),t.hitRegions.length>0&&(Li(e.currentTarget),t.hitRegions.forEach(e=>{let t=Ur(e.group.id,!0);Kr(e.group,t)}),e.preventDefault())}}function Ui(e){let t=0,n=0,r={};for(let i of e)if(i.defaultSize!==void 0){t++;let e=Tr(i.defaultSize);n+=e,r[i.panelId]=e}else r[i.panelId]=void 0;let i=e.length-t;if(i!==0){let t=Tr((100-n)/i);for(let n of e)n.defaultSize===void 0&&(r[n.panelId]=t)}return r}function Wi(e,t,n){if(!n[0])return;let r=e.panels.find(e=>e.element===t);if(!r||!r.onResize)return;let i=Er({group:e}),a=e.orientation===`horizontal`?r.element.offsetWidth:r.element.offsetHeight,o=r.mutableValues.prevSize,s={asPercentage:Tr(a/i*100),inPixels:a};r.mutableValues.prevSize=s,r.onResize(s,r.id,o)}function Gi(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function Ki({group:e,nextGroupSize:t,prevGroupSize:n,prevLayout:r}){if(n<=0||t<=0||n===t)return r;let i=0,a=0,o=!1,s=new Map,c=[];for(let l of e.panels){let e=r[l.id]??0;switch(l.panelConstraints.groupResizeBehavior){case`preserve-pixel-size`:{o=!0;let r=Tr(e/100*n/t*100);s.set(l.id,r),i+=r;break}default:c.push(l.id),a+=e;break}}if(!o||c.length===0)return r;let l=100-i,u={...r};if(s.forEach((e,t)=>{u[t]=e}),a>0)for(let e of c)u[e]=Tr((r[e]??0)/a*l);else{let e=Tr(l/c.length);for(let t of c)u[t]=e}return u}function qi(e,t){let n=e.map(e=>e.id),r=Object.keys(t);if(n.length!==r.length)return!1;for(let e of n)if(!r.includes(e))return!1;return!0}var Ji=new Map;function Yi(e){let t=!0;Or(e.element.ownerDocument.defaultView,`Cannot register an unmounted Group`);let n=e.element.ownerDocument.defaultView.ResizeObserver,r=new Set,i=new Set,a=new n(n=>{for(let r of n){let{borderBoxSize:n,target:i}=r;if(i===e.element){if(t){let t=Er({group:e});if(t===0)return;let n=Ur(e.id);if(!n)return;let r=Dr(e),i=n.defaultLayoutDeferred?Ui(r):n.layout,a=fi({layout:Ki({group:e,nextGroupSize:t,prevGroupSize:n.groupSize,prevLayout:i}),panelConstraints:r});if(!n.defaultLayoutDeferred&&di(n.layout,a)&&Gi(n.derivedPanelConstraints,r)&&n.groupSize===t)return;Kr(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,groupSize:t,layout:a,separatorToPanels:n.separatorToPanels})}}else Wi(e,i,n)}});a.observe(e.element),e.panels.forEach(e=>{Or(!r.has(e.id),`Panel ids must be unique; id "${e.id}" was used more than once`),r.add(e.id),e.onResize&&a.observe(e.element)});let o=Er({group:e}),s=Dr(e),c=e.panels.map(({id:e})=>e).join(`,`),l=e.mutableState.defaultLayout;l&&(qi(e.panels,l)||(l=void 0));let u=fi({layout:e.mutableState.layouts[c]??l??Ui(s),panelConstraints:s}),d=e.element.ownerDocument;Ji.set(d,(Ji.get(d)??0)+1);let f=new Map;return Lr(e).forEach(e=>{e.separator&&f.set(e.separator,e.panels)}),Kr(e,{defaultLayoutDeferred:o===0,derivedPanelConstraints:s,groupSize:o,layout:u,separatorToPanels:f}),e.separators.forEach(e=>{Or(!i.has(e.id),`Separator ids must be unique; id "${e.id}" was used more than once`),i.add(e.id),e.element.addEventListener(`keydown`,vi)}),Ji.get(d)===1&&(d.addEventListener(`dblclick`,mi,!0),d.addEventListener(`pointerdown`,Ti,!0),d.addEventListener(`pointerleave`,zi),d.addEventListener(`pointermove`,Bi),d.addEventListener(`pointerout`,Vi),d.addEventListener(`pointerup`,Hi,!0)),function(){t=!1,Ji.set(d,Math.max(0,(Ji.get(d)??0)-1)),Vr(e),e.separators.forEach(e=>{e.element.removeEventListener(`keydown`,vi)}),Ji.get(d)||(d.removeEventListener(`dblclick`,mi,!0),d.removeEventListener(`pointerdown`,Ti,!0),d.removeEventListener(`pointerleave`,zi),d.removeEventListener(`pointermove`,Bi),d.removeEventListener(`pointerout`,Vi),d.removeEventListener(`pointerup`,Hi,!0)),a.disconnect()}}function Xi(){let[e,t]=(0,K.useState)({});return[e,(0,K.useCallback)(()=>t({}),[])]}function Zi(e){let t=(0,K.useId)();return`${e??t}`}var Qi=typeof window<`u`?K.useLayoutEffect:K.useEffect;function $i(e){let t=(0,K.useRef)(e);return Qi(()=>{t.current=e},[e]),(0,K.useCallback)((...e)=>t.current?.(...e),[t])}function ea(...e){return $i(t=>{e.forEach(e=>{if(e)switch(typeof e){case`function`:e(t);break;case`object`:e.current=t;break}})})}function ta(e){let t=(0,K.useRef)({...e});return Qi(()=>{for(let n in e)t.current[n]=e[n]},[e]),t.current}var na=(0,K.createContext)(null);function ra(e,t){let n=(0,K.useRef)({getLayout:()=>({}),setLayout:J});(0,K.useImperativeHandle)(t,()=>n.current,[]),Qi(()=>{Object.assign(n.current,gi({groupId:e}))})}function ia({children:e,className:t,defaultLayout:n,disableCursor:r,disabled:i,elementRef:a,groupRef:o,id:s,onLayoutChange:c,onLayoutChanged:l,orientation:u=`horizontal`,resizeTargetMinimumSize:d={coarse:20,fine:10},style:f,...p}){let m=(0,K.useRef)({onLayoutChange:{},onLayoutChanged:{}}),h=$i(e=>{di(m.current.onLayoutChange,e)||(m.current.onLayoutChange=e,c?.(e))}),g=$i(e=>{di(m.current.onLayoutChanged,e)||(m.current.onLayoutChanged=e,l?.(e))}),_=Zi(s),v=(0,K.useRef)(null),[y,b]=Xi(),x=(0,K.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:d,separators:[]}),S=ea(v,a);ra(_,o);let C=$i((e,t)=>{let r=xi(),i=Hr(e),a=Ur(e);if(a){let e=!1;switch(r.state){case`active`:e=r.hitRegions.some(e=>e.group===i);break}return{flexGrow:a.layout[t]??1,pointerEvents:e?`none`:void 0}}return{flexGrow:n?.[t]??1}}),w=ta({defaultLayout:n,disableCursor:r}),T=(0,K.useMemo)(()=>({get disableCursor(){return!!w.disableCursor},getPanelStyles:C,id:_,orientation:u,registerPanel:e=>{let t=x.current;return t.panels=kr(u,[...t.panels,e]),b(),()=>{t.panels=t.panels.filter(t=>t!==e),b()}},registerSeparator:e=>{let t=x.current;return t.separators=kr(u,[...t.separators,e]),b(),()=>{t.separators=t.separators.filter(t=>t!==e),b()}},togglePanelDisabled:(e,t)=>{let n=x.current.panels.find(t=>t.id===e);n&&(n.panelConstraints.disabled=t);let r=Hr(_),i=Ur(_);r&&i&&Kr(r,{...i,derivedPanelConstraints:Dr(r)})},toggleSeparatorDisabled:(e,t)=>{let n=x.current.separators.find(t=>t.id===e);n&&(n.disabled=t)}}),[C,_,b,u,w]),E=(0,K.useRef)(null);return Qi(()=>{let e=v.current;if(e===null)return;let t=x.current,n;if(w.defaultLayout!==void 0&&Object.keys(w.defaultLayout).length===t.panels.length){n={};for(let e of t.panels){let t=w.defaultLayout[e.id];t!==void 0&&(n[e.id]=t)}}let r={disabled:!!i,element:e,id:_,mutableState:{defaultLayout:n,disableCursor:!!w.disableCursor,expandedPanelSizes:x.current.lastExpandedPanelSizes,layouts:x.current.layouts},orientation:u,panels:t.panels,resizeTargetMinimumSize:t.resizeTargetMinimumSize,separators:t.separators};E.current=r;let a=Yi(r),{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:c}=Ur(r.id,!0);!o&&s.length>0&&(h(c),g(c));let l=Gr(_,e=>{let{defaultLayoutDeferred:t,derivedPanelConstraints:n,layout:i}=e.next;if(t||n.length===0)return;let a=r.panels.map(({id:e})=>e).join(`,`);r.mutableState.layouts[a]=i,n.forEach(t=>{if(t.collapsible){let{layout:n}=e.prev??{};if(n){let e=si(t.collapsedSize,i[t.panelId]),a=si(t.collapsedSize,n[t.panelId]);e&&!a&&(r.mutableState.expandedPanelSizes[t.panelId]=n[t.panelId])}}});let o=xi().state!==`active`;h(i),o&&g(i)});return()=>{E.current=null,a(),l()}},[i,_,g,h,u,y,w]),(0,K.useEffect)(()=>{let e=E.current;e&&(e.mutableState.defaultLayout=n,e.mutableState.disableCursor=!!r)}),(0,q.jsx)(na.Provider,{value:T,children:(0,q.jsx)(`div`,{...p,className:t,"data-group":!0,"data-testid":_,id:_,ref:S,style:{height:`100%`,width:`100%`,overflow:`hidden`,...f,display:`flex`,flexDirection:u===`horizontal`?`row`:`column`,flexWrap:`nowrap`,touchAction:u===`horizontal`?`pan-y`:`pan-x`},children:e})})}ia.displayName=`Group`;function aa(){let e=(0,K.useContext)(na);return Or(e,`Group Context not found; did you render a Panel or Separator outside of a Group?`),e}function oa(e,t){let{id:n}=aa(),r=(0,K.useRef)({collapse:Ei,expand:Ei,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:Ei});(0,K.useImperativeHandle)(t,()=>r.current,[]),Qi(()=>{Object.assign(r.current,pi({groupId:n,panelId:e}))})}function sa({children:e,className:t,collapsedSize:n=`0%`,collapsible:r=!1,defaultSize:i,disabled:a,elementRef:o,groupResizeBehavior:s=`preserve-relative-size`,id:c,maxSize:l=`100%`,minSize:u=`0%`,onResize:d,panelRef:f,style:p,...m}){let h=!!c,g=Zi(c),_=ta({disabled:a}),v=(0,K.useRef)(null),y=ea(v,o),{getPanelStyles:b,id:x,orientation:S,registerPanel:C,togglePanelDisabled:w}=aa(),T=d!==null,E=$i((e,t,n)=>{d?.(e,c,n)});Qi(()=>{let e=v.current;if(e!==null)return C({element:e,id:g,idIsStable:h,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:T?E:void 0,panelConstraints:{groupResizeBehavior:s,collapsedSize:n,collapsible:r,defaultSize:i,disabled:_.disabled,maxSize:l,minSize:u}})},[s,n,r,i,T,g,h,l,u,E,C,_]),(0,K.useEffect)(()=>{w(g,!!a)},[a,g,w]),oa(g,f);let D=(0,K.useSyncExternalStore)(e=>Gr(x,e),()=>JSON.stringify(b(x,g)),()=>JSON.stringify(b(x,g)));return(0,q.jsx)(`div`,{...m,"aria-disabled":a||void 0,"data-panel":!0,"data-testid":g,id:g,ref:y,style:{...ca,display:`flex`,flexBasis:0,flexShrink:1,overflow:`visible`,...JSON.parse(D)},children:(0,q.jsx)(`div`,{className:t,style:{maxHeight:`100%`,maxWidth:`100%`,flexGrow:1,overflow:`auto`,...p,touchAction:S===`horizontal`?`pan-y`:`pan-x`},children:e})})}sa.displayName=`Panel`;var ca={minHeight:0,maxHeight:`100%`,height:`auto`,minWidth:0,maxWidth:`100%`,width:`auto`,border:`none`,borderWidth:0,padding:0,margin:0};function la({layout:e,panelConstraints:t,panelId:n,panelIndex:r}){let i,a,o=e[n],s=t.find(e=>e.panelId===n);if(s){let c=s.maxSize,l=s.collapsible?s.collapsedSize:s.minSize,u=[r,r+1];a=fi({layout:ui({delta:l-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n],i=fi({layout:ui({delta:c-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:a,valueNow:o}}function ua({children:e,className:t,disabled:n,elementRef:r,id:i,style:a,...o}){let s=Zi(i),c=ta({disabled:n}),[l,u]=(0,K.useState)({}),[d,f]=(0,K.useState)(`inactive`),p=(0,K.useRef)(null),m=ea(p,r),{disableCursor:h,id:g,orientation:_,registerSeparator:v,toggleSeparatorDisabled:y}=aa(),b=_===`horizontal`?`vertical`:`horizontal`;Qi(()=>{let e=p.current;if(e!==null){let t={disabled:c.disabled,element:e,id:s},n=v(t),r=Si(e=>{f(e.next.state!==`inactive`&&e.next.hitRegions.some(e=>e.separator===t)?e.next.state:`inactive`)}),i=Gr(g,e=>{let{derivedPanelConstraints:n,layout:r,separatorToPanels:i}=e.next,a=i.get(t);if(a){let e=a[0],t=a.indexOf(e);u(la({layout:r,panelConstraints:n,panelId:e.id,panelIndex:t}))}});return()=>{r(),i(),n()}}},[g,s,v,c]),(0,K.useEffect)(()=>{y(s,!!n)},[n,s,y]);let x;return n&&!h&&(x=`not-allowed`),(0,q.jsx)(`div`,{...o,"aria-controls":l.valueControls,"aria-disabled":n||void 0,"aria-orientation":b,"aria-valuemax":l.valueMax,"aria-valuemin":l.valueMin,"aria-valuenow":l.valueNow,children:e,className:t,"data-separator":n?`disabled`:d,"data-testid":s,id:s,ref:m,role:`separator`,style:{flexBasis:`auto`,cursor:x,...a,flexGrow:0,flexShrink:0,touchAction:`none`},tabIndex:n?void 0:0})}ua.displayName=`Separator`;function da(e){let[t,n]=(0,K.useState)(()=>typeof window<`u`?window.matchMedia(e).matches:!1);return(0,K.useEffect)(()=>{let t=window.matchMedia(e),r=e=>n(e.matches);return t.addEventListener(`change`,r),n(t.matches),()=>t.removeEventListener(`change`,r)},[e]),t}function fa(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<7?`${a}d ago`:t.toLocaleDateString(void 0,{month:`short`,day:`numeric`})}catch{return``}}function pa(e,t){let[n,r]=(0,K.useState)(e);return(0,K.useEffect)(()=>{let n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n}function ma(e){let[t,n]=(0,K.useState)([]),[r,i]=(0,K.useState)({}),a=(0,K.useCallback)(async()=>{if(e)try{let t=await V.get(`${B(e)}/tags`);n(t.tags),i(t.counts)}catch{}},[e]);return(0,K.useEffect)(()=>{a()},[a]),{projectTags:t,tagCounts:r,loadTags:a}}function ha({projectTags:e,tagCounts:t,totalCount:n,selectedTagId:r,onSelect:i}){return e.length===0?null:(0,q.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1.5 overflow-x-auto scrollbar-none`,children:[(0,q.jsxs)(`button`,{onClick:()=>i(null),className:`shrink-0 rounded-md border px-2 py-1 text-[10px] transition-colors ${r===null?`bg-primary/20 border-primary text-primary`:`border-border bg-surface text-text-secondary hover:bg-surface-elevated`}`,children:[`All (`,n,`)`]}),e.map(e=>(0,q.jsxs)(`button`,{onClick:()=>i(r===e.id?null:e.id),className:`shrink-0 flex items-center gap-1 rounded-md border px-2 py-1 text-[10px] transition-colors ${r===e.id?`border-current`:`border-border bg-surface hover:bg-surface-elevated`}`,style:r===e.id?{backgroundColor:e.color+`20`,color:e.color,borderColor:e.color}:void 0,children:[(0,q.jsx)(`span`,{className:`size-2 rounded-full shrink-0`,style:{backgroundColor:e.color}}),e.name,` (`,t[e.id]??0,`)`]},e.id))]})}function ga({...e}){return(0,q.jsx)(m,{"data-slot":`context-menu`,...e})}function _a({...e}){return(0,q.jsx)(O,{"data-slot":`context-menu-trigger`,...e})}function va({...e}){return(0,q.jsx)(l,{"data-slot":`context-menu-sub`,...e})}function ya({className:e,inset:t,children:n,...r}){return(0,q.jsxs)(h,{"data-slot":`context-menu-sub-trigger`,"data-inset":t,className:H(`flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground`,e),...r,children:[n,(0,q.jsx)(pe,{className:`ml-auto`})]})}function ba({className:e,...t}){return(0,q.jsx)(u,{"data-slot":`context-menu-sub-content`,className:H(`z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,e),...t})}function xa({className:e,...t}){return(0,q.jsx)(f,{children:(0,q.jsx)(x,{"data-slot":`context-menu-content`,className:H(`z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,e),...t})})}function Sa({className:e,inset:t,variant:n=`default`,...r}){return(0,q.jsx)(d,{"data-slot":`context-menu-item`,"data-inset":t,"data-variant":n,className:H(`relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!`,e),...r})}function Ca({className:e,...t}){return(0,q.jsx)(c,{"data-slot":`context-menu-separator`,className:H(`-mx-1 my-1 h-px bg-border`,e),...t})}function wa({session:e,projectName:t,projectTags:n,children:r,onTogglePin:i,onStartEditing:a,onDeleteSession:o,onTagChanged:s}){let c=(0,K.useCallback)(async r=>{try{if(r){await V.patch(`${B(t)}/chat/sessions/${e.id}/tag`,{tagId:r});let i=n.find(e=>e.id===r);i&&s(e.id,{id:i.id,name:i.name,color:i.color})}else await V.del(`${B(t)}/chat/sessions/${e.id}/tag`),s(e.id,null)}catch{}},[e.id,t,n,s]);return(0,q.jsxs)(ga,{children:[(0,q.jsx)(_a,{asChild:!0,children:r}),(0,q.jsxs)(xa,{children:[(0,q.jsxs)(Sa,{onClick:t=>i(t,e),children:[e.pinned?(0,q.jsx)(we,{className:`size-3.5 mr-2`}):(0,q.jsx)(Ce,{className:`size-3.5 mr-2`}),e.pinned?`Unpin`:`Pin`]}),a&&(0,q.jsxs)(Sa,{onClick:t=>a(e,t),children:[(0,q.jsx)(re,{className:`size-3.5 mr-2`}),`Rename`]}),n.length>0&&(0,q.jsxs)(va,{children:[(0,q.jsxs)(ya,{children:[(0,q.jsx)(On,{className:`size-3.5 mr-2`}),`Set Tag`]}),(0,q.jsxs)(ba,{children:[n.map(t=>(0,q.jsxs)(Sa,{onClick:()=>c(t.id),children:[(0,q.jsx)(`span`,{className:`size-2.5 rounded-full mr-2 shrink-0`,style:{backgroundColor:t.color}}),t.name,e.tag?.id===t.id&&(0,q.jsx)(le,{className:`size-3 ml-auto`})]},t.id)),e.tag&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ca,{}),(0,q.jsx)(Sa,{onClick:()=>c(null),children:`Remove tag`})]})]})]}),o&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ca,{}),(0,q.jsxs)(Sa,{className:`text-red-500 focus:text-red-500`,onClick:t=>o(t,e),children:[(0,q.jsx)(Oe,{className:`size-3.5 mr-2`}),`Delete`]})]})]})]})}var Ta={approval_request:`bg-red-500`,question:`bg-amber-500`,done:`bg-blue-500`},Ea={done:0,question:1,approval_request:2};function Da(e){return e&&Ta[e]||`bg-red-500`}var Oa={approval_request:`bg-red-500/10`,question:`bg-amber-500/10`,done:`bg-blue-500/10`};function ka(e){return e&&Oa[e]||`bg-red-500/10`}var Aa=Me()(e=>({notifications:new Map,addNotification:(t,n,r,i)=>{e(e=>{let a=new Map(e.notifications),o=a.get(t);return a.set(t,{count:(o?.count??0)+1,type:n,projectName:r,sessionTitle:i??o?.sessionTitle??null}),{notifications:a}})},clearForSession:t=>{let n=Aa.getState().notifications.get(t)?.projectName;e(e=>{if(!e.notifications.has(t))return e;let n=new Map(e.notifications);return n.delete(t),{notifications:n}}),n&&V.post(`/api/project/${encodeURIComponent(n)}/chat/sessions/${encodeURIComponent(t)}/read`).catch(()=>{})},clearAll:()=>e({notifications:new Map}),loadFromServer:async t=>{try{let n=await V.get(`/api/project/${encodeURIComponent(t)}/chat/sessions/unread`);e(()=>{let e=new Map;for(let t of n)t.unreadCount>0&&e.set(t.sessionId,{count:t.unreadCount,type:t.unreadType||`done`,projectName:t.projectName||``,sessionTitle:t.sessionTitle??null});return{notifications:e}})}catch{}},handleUnreadChanged:(t,n,r,i,a)=>{e(e=>{let o=new Map(e.notifications);if(n===0)o.delete(t);else{let e=o.get(t);o.set(t,{count:n>0?n:(e?.count??0)+1,type:r||`done`,projectName:i||e?.projectName||``,sessionTitle:a??e?.sessionTitle??null})}return{notifications:o}})}}));function ja(e){return e.notifications.size}function Ma(e){return t=>{let n=null,r=-1;for(let[,i]of t.notifications){if(i.projectName!==e)continue;let t=Ea[i.type]??0;t>r&&(r=t,n=i.type)}return n}}var Na=5,Pa=20;function Fa({projectName:e,onSelectSession:t,className:n}){let[r,i]=(0,K.useState)([]),[a,o]=(0,K.useState)(!1),[s,c]=(0,K.useState)(!1),[l,u]=(0,K.useState)(``),d=pa(l,300),[f,p]=(0,K.useState)(null),{projectTags:m,tagCounts:h,loadTags:g}=ma(e),_=(0,K.useCallback)(async t=>{if(e){o(!0);try{let n=new URLSearchParams({limit:String(Pa)});t&&n.set(`q`,t),i((await V.get(`${B(e)}/chat/sessions?${n}`)).sessions.slice(0,Pa))}catch{}finally{o(!1)}}},[e]);(0,K.useEffect)(()=>{_()},[_]),(0,K.useEffect)(()=>{_(d||void 0)},[d]);let v=(0,K.useCallback)(async(t,n)=>{if(t.stopPropagation(),!e)return;let r=`${B(e)}/chat/sessions/${n.id}/pin`;try{n.pinned?await V.del(r):await V.put(r),i(e=>e.map(e=>e.id===n.id?{...e,pinned:!e.pinned}:e).sort((e,t)=>e.pinned&&!t.pinned?-1:!e.pinned&&t.pinned?1:new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime()))}catch{}},[e]),y=(0,K.useCallback)((e,t)=>{i(n=>n.map(n=>n.id===e?{...n,tag:t}:n)),g()},[g]),b=f===null?r:r.filter(e=>e.tag?.id===f),x=b.filter(e=>e.pinned),S=b.filter(e=>!e.pinned),C=s?S:S.slice(0,Na),w=S.length>Na;return a||!e||r.length===0?null:(0,q.jsxs)(`div`,{className:n,children:[(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(Te,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 size-3.5 text-text-subtle pointer-events-none`}),(0,q.jsx)(`input`,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:`Search chats...`,className:`w-full pl-8 pr-8 py-1.5 text-xs rounded-md border border-border bg-surface text-text-primary placeholder:text-text-subtle focus:outline-none focus:ring-1 focus:ring-primary/50`}),l&&(0,q.jsx)(`button`,{onClick:()=>u(``),className:`absolute right-2 top-1/2 -translate-y-1/2 text-text-subtle hover:text-text-primary`,children:(0,q.jsx)(Ae,{className:`size-3.5`})})]}),(0,q.jsx)(`div`,{className:`mt-3`,children:(0,q.jsx)(ha,{projectTags:m,tagCounts:h,totalCount:r.length,selectedTagId:f,onSelect:p})}),x.length>0&&(0,q.jsxs)(`div`,{className:`flex flex-col gap-2 w-full mt-4`,children:[(0,q.jsx)(`p`,{className:`text-xs text-text-subtle text-center`,children:`Pinned`}),(0,q.jsx)(`div`,{className:`w-full rounded-md border border-border bg-surface overflow-hidden`,children:x.map(n=>(0,q.jsx)(Ia,{session:n,projectName:e,projectTags:m,onSelect:t,onTogglePin:v,onTagChanged:y},n.id))})]}),C.length>0&&(0,q.jsxs)(`div`,{className:`flex flex-col gap-2 w-full mt-4`,children:[(0,q.jsx)(`p`,{className:`text-xs text-text-subtle text-center`,children:`Recent chats`}),(0,q.jsx)(`div`,{className:`w-full rounded-md border border-border bg-surface overflow-hidden`,children:C.map(n=>(0,q.jsx)(Ia,{session:n,projectName:e,projectTags:m,onSelect:t,onTogglePin:v,onTagChanged:y},n.id))}),w&&(0,q.jsxs)(`button`,{onClick:()=>c(!s),className:`flex items-center justify-center gap-1 text-[11px] text-text-subtle hover:text-text-primary transition-colors py-1`,children:[s?(0,q.jsx)(F,{className:`size-3`}):(0,q.jsx)(ce,{className:`size-3`}),s?`Show less`:`Show more (${S.length-Na})`]})]})]})}function Ia({session:e,projectName:t,projectTags:n,onSelect:r,onTogglePin:i,onTagChanged:a}){let o=Aa(t=>t.notifications.get(e.id));return(0,q.jsx)(wa,{session:e,projectName:t,projectTags:n,onTogglePin:i,onTagChanged:a,children:(0,q.jsxs)(`button`,{onClick:()=>r(e),className:H(`group flex items-center gap-2.5 w-full px-3 py-2.5 text-left hover:bg-surface-elevated active:bg-surface-elevated transition-colors border-b border-border/50 last:border-0`,o&&ka(o.type)),children:[(0,q.jsx)(en,{className:`size-3.5 shrink-0 text-text-subtle`}),e.tag&&(0,q.jsx)(`span`,{className:`size-2 rounded-full shrink-0`,style:{backgroundColor:e.tag.color},title:e.tag.name}),(0,q.jsx)(`span`,{className:H(`flex-1 min-w-0 text-xs truncate`,o?`font-semibold text-foreground`:`font-medium text-text-primary`),children:e.title||`Untitled`}),e.updatedAt&&(0,q.jsx)(`span`,{className:`text-[10px] text-text-subtle shrink-0`,children:fa(e.updatedAt)}),(0,q.jsx)(`span`,{role:`button`,tabIndex:0,onClick:t=>i(t,e),className:`p-1 rounded transition-colors shrink-0 ${e.pinned?`text-primary hover:text-primary/70`:`text-text-subtle can-hover:opacity-0 can-hover:group-hover:opacity-100 hover:text-text-primary`}`,"aria-label":e.pinned?`Unpin session`:`Pin session`,children:e.pinned?(0,q.jsx)(we,{className:`size-3`}):(0,q.jsx)(Ce,{className:`size-3`})})]})})}function La(e,t){return e.map(e=>({name:e.name,path:t?`${t}/${e.name}`:e.name,type:e.type,ignored:e.isIgnored}))}function Ra(e,t,n){return t?e.map(e=>za(e,t,n)):n.map(t=>{let n=e.find(e=>e.path===t.path);return n?{...t,children:n.children}:t})}function za(e,t,n){if(e.path===t){let t=n.map(t=>{let n=e.children?.find(e=>e.path===t.path);return n?{...t,children:n.children}:t});return{...e,children:t}}return e.children&&t.startsWith(e.path+`/`)?{...e,children:e.children.map(e=>za(e,t,n))}:e}var Ba=Me((e,t)=>({tree:[],fileIndex:[],loading:!1,error:null,expandedPaths:new Set,loadedPaths:new Set,inflight:new Map,indexStatus:`idle`,selectedFiles:[],inlineAction:null,clipboard:null,focusedPath:null,setInlineAction:t=>e({inlineAction:t}),clearInlineAction:()=>e({inlineAction:null}),setClipboard:t=>e({clipboard:t}),setFocusedPath:t=>e({focusedPath:t}),loadRoot:async n=>{e({loading:!0,error:null});try{let r=La(await V.get(`${B(n)}/files/list?path=`),``),i=new Set(t().loadedPaths);i.add(``),e({tree:r,loading:!1,loadedPaths:i})}catch(t){e({error:t instanceof Error?t.message:`Failed to load files`,loading:!1})}},loadChildren:async(n,r)=>{let i=t();if(i.loadedPaths.has(r))return;let a=i.inflight.get(r);a&&a.abort();let o=new AbortController,s=new Map(i.inflight);s.set(r,o),e({inflight:s});try{let i=encodeURIComponent(r),a=await V.get(`${B(n)}/files/list?path=${i}`,{signal:o.signal});if(o.signal.aborted)return;let s=La(a,r),c=t(),l=Ra(c.tree,r,s),u=new Set(c.loadedPaths);u.add(r);let d=new Map(c.inflight);d.delete(r),e({tree:l,loadedPaths:u,inflight:d})}catch(n){if(n instanceof Error&&n.name===`AbortError`)return;let i=new Map(t().inflight);i.delete(r),e({inflight:i})}},loadIndex:async t=>{e({indexStatus:`loading`});try{e({fileIndex:await V.get(`${B(t)}/files/index`),indexStatus:`ready`})}catch{e({indexStatus:`error`})}},invalidateIndex:()=>{e({indexStatus:`idle`,fileIndex:[]})},invalidateFolder:async(n,r)=>{let i=t();if(!i.loadedPaths.has(r))return;let a=new Set(i.loadedPaths);a.delete(r),e({loadedPaths:a}),(!r||i.expandedPaths.has(r))&&await t().loadChildren(n,r)},toggleExpand:(n,r)=>{let i=t(),a=new Set(i.expandedPaths);a.has(r)?(a.delete(r),e({expandedPaths:a})):(a.add(r),e({expandedPaths:a}),i.loadedPaths.has(r)||t().loadChildren(n,r))},setExpanded:(n,r)=>{let i=new Set(t().expandedPaths);r?i.add(n):i.delete(n),e({expandedPaths:i})},collapseAll:()=>{e({expandedPaths:new Set})},toggleFileSelect:n=>{let r=t().selectedFiles;r.indexOf(n)>=0?e({selectedFiles:r.filter(e=>e!==n)}):e({selectedFiles:[...r,n]})},setSelectedFiles:t=>e({selectedFiles:t}),clearSelection:()=>e({selectedFiles:[]}),reset:()=>{for(let e of t().inflight.values())e.abort();e({tree:[],fileIndex:[],loading:!1,error:null,expandedPaths:new Set,loadedPaths:new Set,inflight:new Map,indexStatus:`idle`,selectedFiles:[],inlineAction:null,clipboard:null,focusedPath:null})},fetchTree:async e=>{await t().loadRoot(e),t().loadIndex(e)}}));function Va(){let{tree:e,expandedPaths:t}=Ba.getState(),n=[];function r(e){let i=[...e].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1);for(let e of i){let i=e;if(e.type===`directory`&&t.has(e.path)&&e.children)for(;i.children&&i.children.length===1&&i.children[0].type===`directory`&&t.has(i.children[0].path);)i=i.children[0];n.push(i.path),i.type===`directory`&&t.has(i.path)&&i.children&&r(i.children)}}return r(e),n}function Ha(e,t){let n;try{n=e()}catch{return}return{getItem:e=>{let r=e=>e===null?null:JSON.parse(e,t?.reviver),i=n.getItem(e)??null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,t?.replacer)),removeItem:e=>n.removeItem(e)}}var Ua=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return Ua(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return Ua(t)(e)}}}},Wa=(e,t)=>(n,r,i)=>{let a={storage:Ha(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=0,c=new Set,l=new Set,u=a.storage;if(!u)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},r,i);let d=()=>{let e=a.partialize({...r()});return u.setItem(a.name,{state:e,version:a.version})},f=i.setState;i.setState=(e,t)=>(f(e,t),d());let p=e((...e)=>(n(...e),d()),r,i);i.getInitialState=()=>p;let m,h=()=>{if(!u)return;let e=++s;o=!1,c.forEach(e=>e(r()??p));let t=a.onRehydrateStorage?.call(a,r()??p)||void 0;return Ua(u.getItem.bind(u))(a.name).then(e=>{if(e)if(typeof e.version==`number`&&e.version!==a.version){if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`)}else return[!1,e.state];return[!1,void 0]}).then(t=>{if(e!==s)return;let[i,o]=t;if(m=a.merge(o,r()??p),n(m,!0),i)return d()}).then(()=>{e===s&&(t?.(m,void 0),m=r(),o=!0,l.forEach(e=>e(m)))}).catch(n=>{e===s&&t?.(void 0,n)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(u=e.storage)},clearStorage:()=>{u?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>h(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},a.skipHydration||h(),m||p},Ga=5e5,Ka=Me()(Wa(e=>({selection:null,setSelection:t=>e({selection:t}),clearSelection:()=>e({selection:null})}),{name:`ppm:compare-selection`,partialize:e=>{if(!e.selection)return{selection:null};let t=e.selection;if(t.dirtyContent&&t.dirtyContent.length>Ga){let{dirtyContent:e,...n}=t;return{selection:n}}return{selection:t}}})),qa=null;We.subscribe(e=>{let t=e.activeProject?.name??null;qa!==null&&qa!==t&&Ka.getState().clearSelection(),qa=t});async function Ja(e,t,n){let r=`${Re(e.path)} ↔ ${Re(t.path)}`,i=e.dirtyContent!==void 0,a=t.dirtyContent!==void 0,o;if(i||a){let[r,i]=await Promise.all([Ya(e,n),Ya(t,n)]);o={projectName:n,original:r,modified:i,file1:e.path,file2:t.path}}else o={projectName:n,file1:e.path,file2:t.path};return W.getState().openTab({type:`git-diff`,title:r,projectId:n,metadata:o,closable:!0})}async function Ya(e,t){if(e.dirtyContent!==void 0)return e.dirtyContent;try{let{content:n}=await V.get(`${B(t)}/files/read?path=${encodeURIComponent(e.path)}`);return n}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Failed to read "${e.path}": ${n}`)}}var Xa=`application/ppm-tab`,Za=!1,Qa=new Set;function $a(e){Za!==e&&(Za=e,Qa.forEach(e=>e()))}function eo(){return(0,K.useSyncExternalStore)(e=>(Qa.add(e),()=>Qa.delete(e)),()=>Za)}function to(){$a(!1)}function no(e){let[t,n]=(0,K.useState)(null),r=(0,K.useRef)(null);return{dropIndex:t,handleDragStart:(0,K.useCallback)((t,n)=>{let r={tabId:n,panelId:e};t.dataTransfer.setData(Xa,JSON.stringify(r)),t.dataTransfer.effectAllowed=`move`,requestAnimationFrame(()=>$a(!0))},[e]),handleDragOver:(0,K.useCallback)((e,t,i)=>{if(!e.dataTransfer.types.includes(`application/ppm-tab`)||(e.preventDefault(),e.dataTransfer.dropEffect=`move`,r.current===t))return;r.current=t;let a=e.currentTarget.getBoundingClientRect(),o=a.left+a.width/2;n(e.clientX<o?i:i+1)},[]),handleDragOverBar:(0,K.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`)},[]),handleDrop:(0,K.useCallback)(i=>{i.preventDefault(),$a(!1);let a=i.dataTransfer.getData(Xa);if(a){try{let n=JSON.parse(a),r=U.getState();n.panelId===e?t!==null&&r.reorderTab(n.tabId,e,t):r.moveTab(n.tabId,n.panelId,e,t??void 0)}catch{}n(null),r.current=null}},[e,t]),handleDragEnd:(0,K.useCallback)(()=>{$a(!1),n(null),r.current=null},[])}}var ro=null,Y=null,io=0,ao=new Set;function oo(){ao.forEach(e=>e())}function so(){return(0,K.useSyncExternalStore)(e=>(ao.add(e),()=>ao.delete(e)),()=>Y)}function co(){return Date.now()-io<300}var lo=null;function uo(e,t,n){let r=document.createElement(`div`);r.id=`touch-drag-ghost`,Object.assign(r.style,{position:`fixed`,zIndex:`9999`,pointerEvents:`none`,padding:`6px 14px`,borderRadius:`8px`,background:`rgba(30,30,30,0.92)`,color:`#fff`,fontSize:`12px`,whiteSpace:`nowrap`,opacity:`0.95`,boxShadow:`0 4px 16px rgba(0,0,0,0.35)`,transform:`translate(-50%, -130%)`,left:`${t}px`,top:`${n}px`}),r.textContent=e,document.body.appendChild(r),lo=r}function fo(e,t){lo&&(lo.style.left=`${e}px`,lo.style.top=`${t}px`)}function po(){lo?.remove(),lo=null}function mo(e,t){lo&&(lo.style.display=`none`);let n=document.elementFromPoint(e,t);lo&&(lo.style.display=``);let r=n?.closest(`[data-panel-drop-zone]`);if(!r)return null;let i=r.dataset.panelDropZone,a=r.getBoundingClientRect(),o=(e-a.left)/a.width,s=(t-a.top)/a.height,c=.25,{grid:l}=U.getState(),u=window.innerWidth<768,d=ze(l,i),f=d?!u&&(l[d.row]?.length??0)<Ve(!1):!1,p=!u&&l.length<3,m=`center`;return o<c&&f?m=`left`:o>1-c&&f?m=`right`:s<c&&p?m=`top`:s>1-c&&p&&(m=`bottom`),{panelId:i,zone:m}}function ho(e){if(!ro)return;e.preventDefault();let t=e.touches[0];if(!t)return;fo(t.clientX,t.clientY);let n=mo(t.clientX,t.clientY);(n?.panelId!==Y?.panelId||n?.zone!==Y?.zone)&&(Y=n,oo())}function go(){ro=null,Y=null,oo(),po(),to(),document.removeEventListener(`touchmove`,ho),document.removeEventListener(`touchend`,_o),document.removeEventListener(`touchcancel`,vo)}function _o(){let e=ro,t=Y;if(go(),io=Date.now(),!e||!t)return;let n=U.getState();if(t.zone===`center`)e.panelId!==t.panelId&&n.moveTab(e.tabId,e.panelId,t.panelId);else{let r=t.zone===`top`?`up`:t.zone===`bottom`?`down`:t.zone;n.splitPanel(r,e.tabId,e.panelId,t.panelId)}}function vo(){go(),io=Date.now()}function yo(e,t,n,r){ro=e,$a(!0),uo(t,n,r),document.addEventListener(`touchmove`,ho,{passive:!1}),document.addEventListener(`touchend`,_o),document.addEventListener(`touchcancel`,vo)}var bo=200,xo=10;function So(e){let t=(0,K.useRef)(null),n=(0,K.useRef)(null),r=(0,K.useRef)(!1);return{handleTouchStart:(0,K.useCallback)((i,a,o)=>{let s=i.touches[0];s&&(n.current={x:s.clientX,y:s.clientY},r.current=!1,t.current=setTimeout(()=>{r.current=!0,yo({tabId:a,panelId:e},o,n.current.x,n.current.y)},bo))},[e]),handleTouchMove:(0,K.useCallback)(e=>{if(r.current||!n.current||!t.current)return;let i=e.touches[0];i&&(Math.abs(i.clientX-n.current.x)>xo||Math.abs(i.clientY-n.current.y)>xo)&&(clearTimeout(t.current),t.current=null)},[]),handleTouchEnd:(0,K.useCallback)(()=>{t.current&&=(clearTimeout(t.current),null)},[])}}var Co=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),wo=[{id:`command-palette`,label:`Command Palette`,category:`general`,defaultKey:`F1`,note:`Shift+Shift also opens (not customizable)`},{id:`toggle-sidebar`,label:`Toggle Sidebar`,category:`general`,defaultKey:`Mod+B`},{id:`save-prevent`,label:`Prevent Save Dialog`,category:`general`,defaultKey:`Mod+S`,locked:!0,note:`Always active — prevents browser save`},{id:`next-tab`,label:`Next Tab`,category:`tabs`,defaultKey:`Alt+]`},{id:`prev-tab`,label:`Previous Tab`,category:`tabs`,defaultKey:`Alt+[`},{id:`new-file`,label:`New File`,category:`tabs`,defaultKey:`Mod+N`},{id:`open-chat`,label:`Open Chat`,category:`tabs`,defaultKey:`Mod+L`},{id:`open-terminal`,label:`Open Terminal`,category:`tabs`,defaultKey:`Mod+'`},{id:`open-settings`,label:`Open Settings`,category:`tabs`,defaultKey:`Mod+,`},{id:`open-git-status`,label:`Git Status (sidebar)`,category:`tabs`,defaultKey:`Mod+Shift+E`},{id:`open-search`,label:`Search Files (sidebar)`,category:`tabs`,defaultKey:`Mod+Shift+F`},{id:`voice-input`,label:`Voice Input`,category:`general`,defaultKey:`Mod+Shift+V`,note:`Toggle speech-to-text in chat`},{id:`compare-files`,label:`Compare Files...`,category:`general`,defaultKey:`Mod+Alt+D`,note:`Open file-compare picker (seeds active file as A)`},...Array.from({length:9},(e,t)=>({id:`switch-project-${t+1}`,label:`Switch to Project ${t+1}`,category:`projects`,defaultKey:`Mod+${t+1}`}))],To=new Map(wo.map(e=>[e.id,e.defaultKey]));function Eo(e){let t=e.split(`+`),n={ctrl:!1,meta:!1,alt:!1,shift:!1,key:``};for(let e of t){let t=e.trim();switch(t){case`Mod`:Co?n.meta=!0:n.ctrl=!0;break;case`Ctrl`:n.ctrl=!0;break;case`Meta`:case`Cmd`:n.meta=!0;break;case`Alt`:n.alt=!0;break;case`Shift`:n.shift=!0;break;default:n.key=t.toLowerCase();break}}return n}function Do(e,t){return e.ctrlKey!==t.ctrl||e.metaKey!==t.meta||e.altKey!==t.alt||e.shiftKey!==t.shift?!1:e.key.toLowerCase()===t.key}function Oo(e){return e.replace(/Mod/g,Co?`⌘`:`Ctrl`).replace(/Shift/g,Co?`⇧`:`Shift`).replace(/Alt/g,Co?`⌥`:`Alt`).replace(/Meta|Cmd/g,`⌘`).replace(/Ctrl/g,Co?`⌃`:`Ctrl`)}function ko(e){if([`Control`,`Meta`,`Alt`,`Shift`].includes(e.key))return null;let t=[];e.ctrlKey&&!e.metaKey&&t.push(Co?`Ctrl`:`Mod`),e.metaKey&&t.push(Co?`Mod`:`Meta`),e.altKey&&t.push(`Alt`),e.shiftKey&&t.push(`Shift`);let n=e.key;return n===` `?n=`Space`:n.length===1&&(n=n.toUpperCase()),t.push(n),t.join(`+`)}function Ao(e){let t=new Map;for(let n of wo){let r=e[n.id]??n.defaultKey;r&&t.set(n.id,Eo(r))}return t}var jo=Ao({}),Mo=Me((e,t)=>({overrides:{},parsedCache:jo,loaded:!1,getBinding:e=>t().overrides[e]??To.get(e)??``,matchesEvent:(e,n)=>{let r=t().parsedCache.get(n);return r?Do(e,r):!1},setBinding:(n,r)=>{let i={...t().overrides,[n]:r};e({overrides:i,parsedCache:Ao(i)}),V.put(`/api/settings/keybindings`,{[n]:r}).catch(()=>{})},resetBinding:n=>{let r={...t().overrides};delete r[n],e({overrides:r,parsedCache:Ao(r)}),V.put(`/api/settings/keybindings`,{[n]:null}).catch(()=>{})},resetAll:()=>{let n={};for(let e of Object.keys(t().overrides))n[e]=null;e({overrides:{},parsedCache:Ao({})}),Object.keys(n).length>0&&V.put(`/api/settings/keybindings`,n).catch(()=>{})},loadFromServer:async()=>{try{let t=await V.get(`/api/settings/keybindings`);e({overrides:t,parsedCache:Ao(t),loaded:!0})}catch{e({loaded:!0})}}})),No=Me((e,t)=>({statusBarItems:[],addStatusBarItem:t=>e(e=>({statusBarItems:[...e.statusBarItems.filter(e=>e.id!==t.id),t]})),removeStatusBarItem:t=>e(e=>({statusBarItems:e.statusBarItems.filter(e=>e.id!==t)})),updateStatusBarItem:(t,n)=>e(e=>({statusBarItems:e.statusBarItems.map(e=>e.id===t?{...e,...n}:e)})),treeViews:{},updateTree:(t,n)=>e(e=>({treeViews:{...e.treeViews,[t]:n}})),updateTreeChildren:(t,n,r)=>e(e=>{let i=e.treeViews[t];if(!i)return e;let a=e=>e.map(e=>e.id===n?{...e,children:r,collapsibleState:`expanded`}:e.children?{...e,children:a(e.children)}:e);return{treeViews:{...e.treeViews,[t]:a(i)}}}),removeTree:t=>e(e=>{let{[t]:n,...r}=e.treeViews;return{treeViews:r}}),webviewPanels:{},addWebviewPanel:t=>e(e=>({webviewPanels:{...e.webviewPanels,[t.id]:t}})),removeWebviewPanel:t=>e(e=>{let{[t]:n,...r}=e.webviewPanels;return{webviewPanels:r}}),updateWebviewPanel:(t,n)=>e(e=>{let r=e.webviewPanels[t];return r?{webviewPanels:{...e.webviewPanels,[t]:{...r,...n}}}:e}),contributions:null,setContributions:t=>e({contributions:t}),activationErrors:{},setActivationErrors:t=>e({activationErrors:t}),quickPick:null,showQuickPick:(n,r={})=>{let i=t().quickPick;return i&&i.resolve(void 0),new Promise(t=>{e({quickPick:{items:n,options:r,resolve:t}})})},resolveQuickPick:n=>{let r=t().quickPick;r&&(r.resolve(n),e({quickPick:null}))},inputBox:null,showInputBox:(n={})=>{let r=t().inputBox;return r&&r.resolve(void 0),new Promise(t=>{e({inputBox:{options:n,resolve:t}})})},resolveInputBox:n=>{let r=t().inputBox;r&&(r.resolve(n),e({inputBox:null}))},clearExtension:t=>e(e=>{let n={...e.webviewPanels};for(let[e,r]of Object.entries(n))r.extensionId===t&&delete n[e];return{statusBarItems:e.statusBarItems.filter(e=>e.extensionId!==t),webviewPanels:n}})}));function Po(e){window.dispatchEvent(new CustomEvent(`open-command-palette`,{detail:e}))}function Fo(){let[e,t]=(0,K.useState)(!1),[n,r]=(0,K.useState)(``);return(0,K.useEffect)(()=>{let e=0,n=!1,{matchesEvent:i}=Mo.getState(),a=new Map,o=!1;function s(){o=!0}function c(){o=!1}function l(i){if(i.type===`keydown`&&i.key===`Shift`){n=!0;return}if(i.type===`keydown`&&i.shiftKey&&(n=!1),i.type===`keydown`&&i.key!==`Shift`&&(e=0),i.type===`keyup`&&i.key===`Shift`&&n&&!i.ctrlKey&&!i.metaKey&&!i.altKey&&!o&&!i.isComposing){let n=Date.now();if(n-e<400){e=0,r(``),t(!0);return}e=n;return}if(i.type!==`keydown`||o||i.isComposing)return;let s=i.target?.tagName;if(s===`TEXTAREA`||s===`INPUT`||i.target?.isContentEditable){let{matchesEvent:e}=Mo.getState();e(i,`save-prevent`)&&i.preventDefault();return}let{matchesEvent:c}=Mo.getState();if(c(i,`save-prevent`)){i.preventDefault();return}if(c(i,`command-palette`)){i.preventDefault(),r(``),t(!0);return}if(c(i,`toggle-sidebar`)){i.preventDefault(),Fe.getState().toggleSidebar();return}if(c(i,`next-tab`)||c(i,`prev-tab`)){i.preventDefault();let{tabs:e,activeTabId:t,setActiveTab:n}=W.getState();if(e.length<2)return;let r=e.findIndex(e=>e.id===t);n(e[c(i,`next-tab`)?(r+1)%e.length:(r-1+e.length)%e.length].id);return}if(c(i,`new-file`)){i.preventDefault(),W.getState().openNewFile();return}for(let e of[{action:`open-chat`,type:`chat`,title:`AI Chat`},{action:`open-terminal`,type:`terminal`,title:`Terminal`}])if(c(i,e.action)){i.preventDefault();let t=We.getState().activeProject;W.getState().openTab({type:e.type,title:e.title,projectId:t?.name??null,metadata:t?{projectName:t.name}:void 0,closable:!0});return}if(c(i,`open-settings`)){i.preventDefault();let e=Fe.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`settings`);return}if(c(i,`open-git-status`)){i.preventDefault();let e=Fe.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`git`);return}if(c(i,`voice-input`)){i.preventDefault(),window.dispatchEvent(new CustomEvent(`toggle-voice-input`));return}if(c(i,`compare-files`)){i.preventDefault();let{activeTabId:e,tabs:t}=W.getState(),n=t.find(t=>t.id===e),r=n?.metadata;n?.type===`editor`&&r?.filePath&&r?.projectName&&Ka.getState().setSelection({filePath:r.filePath,projectName:r.projectName,dirtyContent:r.unsavedContent,label:Re(r.filePath)}),window.dispatchEvent(new CustomEvent(`open-compare-picker`));return}if(c(i,`open-search`)){i.preventDefault();let e=Fe.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`search`);return}for(let e=1;e<=9;e++)if(c(i,`switch-project-${e}`)){i.preventDefault();let t=We.getState().projects[e-1];t&&(We.getState().setActiveProject(t),W.getState().switchProject(t.name));return}let l=No.getState().contributions?.keybindings;if(l){let e=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),{getBinding:t}=Mo.getState();for(let n of l){let r=t(`ext:${n.command}`)||(e&&n.mac?n.mac:n.key);if(!r)continue;let o=a.get(r);if(o||(o=Eo(r),a.set(r,o)),Do(i,o)){i.preventDefault();let e=We.getState().activeProject,t=[];e?.path&&t.push(e.path),window.dispatchEvent(new CustomEvent(`ext:command:execute`,{detail:{command:n.command,args:t}}));return}}}}function u(e){let n=e.detail;r(typeof n==`string`?n:``),t(!0)}return window.addEventListener(`keydown`,l),window.addEventListener(`keyup`,l),window.addEventListener(`compositionstart`,s),window.addEventListener(`compositionend`,c),window.addEventListener(`open-command-palette`,u),()=>{window.removeEventListener(`keydown`,l),window.removeEventListener(`keyup`,l),window.removeEventListener(`compositionstart`,s),window.removeEventListener(`compositionend`,c),window.removeEventListener(`open-command-palette`,u)}},[]),{paletteOpen:e,paletteInitialQuery:n,closePalette:(0,K.useCallback)(()=>{t(!1),r(``)},[])}}var Io=Me(e=>({sessions:new Set,setStreaming:(t,n)=>e(e=>{let r=new Set(e.sessions);return n?r.add(t):r.delete(t),{sessions:r}})})),Lo=e=>e.sessions.size>0;function Ro(e){let[t,n]=(0,K.useState)(!1),[r,i]=(0,K.useState)(!1),a=(0,K.useCallback)(()=>{let t=e.current;t&&(n(t.scrollLeft>1),i(t.scrollLeft+t.clientWidth<t.scrollWidth-1))},[e]);return(0,K.useEffect)(()=>{let t=e.current;if(!t)return;a(),t.addEventListener(`scroll`,a,{passive:!0});let n=new ResizeObserver(a);n.observe(t);let r=new MutationObserver(a);return r.observe(t,{childList:!0,subtree:!0}),()=>{t.removeEventListener(`scroll`,a),n.disconnect(),r.disconnect()}},[e,a]),{canScrollLeft:t,canScrollRight:r,scrollLeft:(0,K.useCallback)(()=>{e.current?.scrollBy({left:-150,behavior:`smooth`})},[e]),scrollRight:(0,K.useCallback)(()=>{e.current?.scrollBy({left:150,behavior:`smooth`})},[e])}}var zo={done:0,question:1,approval_request:2};function Bo(e,t,n,r){if(!e)return{left:null,right:null};let i=e.scrollLeft,a=i+e.clientWidth,o=null,s=-1,c=null,l=-1,u=e.getBoundingClientRect();for(let d of n){if(d.type!==`chat`)continue;let n=d.metadata?.sessionId,f=n?r.get(n):void 0;if(!f||f.count===0)continue;let p=t.get(d.id);if(!p)continue;let m=p.getBoundingClientRect(),h=m.left-u.left+e.scrollLeft,g=h+m.width,_=zo[f.type]??0;g<=i&&_>s&&(s=_,o=f.type),h>=a&&_>l&&(l=_,c=f.type)}return{left:o,right:c}}function Vo(e){let t=/^#([0-9a-fA-F]{6})$/.exec(e.trim());if(!t)return null;let n=parseInt(t[1],16);return{r:n>>16&255,g:n>>8&255,b:n&255}}function Ho(e,t,n){let[r,i,a]=[e,t,n].map(e=>{let t=e/255;return t<=.04045?t/12.92:((t+.055)/1.055)**2.4});return .2126*r+.7152*i+.0722*a}function Uo(e){let t=Vo(e);return t?Ho(t.r,t.g,t.b)<.4:!1}function Wo({tab:e,isActive:t,icon:n,showDropBefore:r,notificationType:i,isStreaming:a,onSelect:o,onClose:s,onDragStart:c,onDragOver:l,onDragEnd:u,onTouchStart:d,onTouchMove:f,onTouchEnd:p,tabRef:m,onRename:h,onContextAction:g,tagColor:_,extraMenuContent:v}){let[y,b]=(0,K.useState)(!1),[x,S]=(0,K.useState)(e.title),C=(0,K.useRef)(null);(0,K.useEffect)(()=>{y&&(S(e.title),setTimeout(()=>C.current?.select(),0))},[y]);let w=()=>{b(!1);let t=x.trim();t&&t!==e.title&&h&&h(t)},T=e.metadata?.connectionColor,E=T?{backgroundColor:t?T:`${T}33`,color:t&&Uo(T)?`#fff`:void 0}:void 0,D=e.type===`editor`,O=(0,q.jsxs)(`button`,{ref:m,"data-tab-item":!0,draggable:!y,onClick:o,onAuxClick:t=>{t.button===1&&e.closable&&(t.preventDefault(),s())},onDragStart:c,onDragOver:l,onDragEnd:u,onTouchStart:d,onTouchMove:f,onTouchEnd:p,style:E,className:H(`group flex items-center gap-1 px-3 h-10 whitespace-nowrap text-xs transition-colors`,`border-b-2 -mb-px cursor-grab active:cursor-grabbing`,!E&&(t?`border-primary text-primary`:`border-transparent text-text-secondary hover:text-foreground`),E&&`border-transparent`),children:[(0,q.jsxs)(`span`,{className:H(`relative`,a&&`text-amber-500`),children:[(0,q.jsx)(n,{className:`size-4`}),a?(0,q.jsxs)(`span`,{"aria-hidden":!0,className:`absolute inset-0 flex items-center justify-center gap-[1.5px]`,children:[(0,q.jsx)(`span`,{className:`tab-typing-dot size-[2px] rounded-full bg-current`}),(0,q.jsx)(`span`,{className:`tab-typing-dot size-[2px] rounded-full bg-current`,style:{animationDelay:`0.15s`}}),(0,q.jsx)(`span`,{className:`tab-typing-dot size-[2px] rounded-full bg-current`,style:{animationDelay:`0.3s`}})]}):i&&!t?(0,q.jsx)(`span`,{className:H(`absolute -top-1 -right-1 size-2 rounded-full`,Da(i))}):null]}),y?(0,q.jsx)(`input`,{ref:C,value:x,onChange:e=>S(e.target.value),onBlur:w,onKeyDown:e=>{e.key===`Enter`&&w(),e.key===`Escape`&&b(!1),e.stopPropagation()},onClick:e=>e.stopPropagation(),className:`max-w-[120px] bg-surface-elevated text-xs px-1 py-0.5 rounded border border-border outline-none focus:border-primary`,autoFocus:!0}):(0,q.jsx)(`span`,{className:`max-w-[120px] truncate`,title:e.title,onDoubleClick:e=>{h&&(e.stopPropagation(),b(!0))},children:e.title}),e.closable&&!y&&(0,q.jsx)(`span`,{role:`button`,tabIndex:0,onClick:e=>{e.stopPropagation(),s()},onKeyDown:e=>{e.key===`Enter`&&(e.stopPropagation(),s())},className:`ml-1 can-hover:opacity-0 can-hover:group-hover:opacity-100 rounded-sm hover:bg-surface-elevated p-0.5 transition-opacity`,children:(0,q.jsx)(Ae,{className:`size-3`})})]});return(0,q.jsxs)(`div`,{className:`relative flex items-center`,children:[r&&(0,q.jsx)(`div`,{className:`absolute left-0 top-1 bottom-1 w-0.5 bg-primary rounded-full z-10`}),_&&(0,q.jsx)(`span`,{"aria-hidden":!0,className:`absolute left-0 top-2 bottom-2 w-[3px] rounded-r-full pointer-events-none`,style:{backgroundColor:_}}),g?(0,q.jsxs)(ga,{children:[(0,q.jsx)(_a,{asChild:!0,children:O}),(0,q.jsxs)(xa,{children:[D&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Sa,{onClick:()=>g(`copy-path`),children:`Copy Path`}),(0,q.jsxs)(Sa,{onClick:()=>g(`download`),children:[(0,q.jsx)(Ee,{className:`size-3.5 mr-2`}),`Download`]}),(0,q.jsx)(Ca,{}),(0,q.jsx)(Sa,{onClick:()=>g(`rename`),children:`Rename`}),(0,q.jsx)(Sa,{variant:`destructive`,onClick:()=>g(`delete`),children:`Delete`}),(0,q.jsx)(Ca,{})]}),v,e.closable&&(0,q.jsx)(Sa,{onClick:()=>g(`close`),children:`Close`}),(0,q.jsx)(Sa,{onClick:()=>g(`close-others`),children:`Close Others`}),(0,q.jsx)(Sa,{onClick:()=>g(`close-right`),children:`Close to the Right`})]})]}):O]})}async function Go(e,t){let{token:n}=await V.post(`${B(e)}/files/download/token`);qo(`${B(e)}/files/raw?path=${encodeURIComponent(t)}&download=true&dl_token=${encodeURIComponent(n)}`,t.split(`/`).pop()??`download`)}async function Ko(e,t){let{token:n}=await V.post(`${B(e)}/files/download/token`),r=t.split(`/`).pop()??`folder`;qo(`${B(e)}/files/download/zip?path=${encodeURIComponent(t)}&dl_token=${encodeURIComponent(n)}`,`${r}.zip`)}function qo(e,t){let n=document.createElement(`a`);n.href=e,n.download=t,n.style.display=`none`,document.body.appendChild(n),n.click(),document.body.removeChild(n)}function Jo({node:e,projectName:t,onClose:n,onRefresh:r}){let[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(null);async function c(){a(!0),s(null);try{await V.del(`${B(t)}/files/delete`,{path:e.path}),r(),n()}catch(e){s(e instanceof Error?e.message:`Failed to delete`)}finally{a(!1)}}return(0,q.jsx)(_e,{open:!0,onOpenChange:e=>!e&&n(),children:(0,q.jsxs)(ye,{children:[(0,q.jsxs)(ve,{children:[(0,q.jsxs)(be,{children:[`Delete `,e.type===`directory`?`Folder`:`File`]}),(0,q.jsxs)(ge,{children:[`Are you sure you want to delete`,` `,(0,q.jsx)(`span`,{className:`font-mono font-semibold`,children:e.name}),`?`,e.type===`directory`&&` This will delete all contents.`]})]}),o&&(0,q.jsx)(`p`,{className:`text-sm text-error`,children:o}),(0,q.jsxs)(me,{children:[(0,q.jsx)(R,{variant:`outline`,onClick:n,disabled:i,children:`Cancel`}),(0,q.jsx)(R,{variant:`destructive`,onClick:c,disabled:i,children:i?`Deleting...`:`Delete`})]})]})})}var Yo={terminal:kn,chat:en,editor:xt,database:fe,sqlite:fe,postgres:fe,"git-diff":St,settings:Cn,ports:ue,extension:hn,"extension-webview":hn,"conflict-editor":St,"system-monitor":Cn,"git-log":zt},Xo=(0,K.memo)(function({panelId:e}){let t=We(e=>e.activeProject),n=(0,K.useRef)(new Map),r=(0,K.useRef)(null),i=(0,K.useRef)(0),a=U(t=>e?t.panels[e]:t.panels[t.focusedPanelId]),o=t?.name??null,s=(a?.tabs??[]).filter(e=>!e.projectId||!o||e.projectId===o),c=a?.activeTabId??null,l=a?.id??U.getState().focusedPanelId,{dropIndex:u,handleDragStart:d,handleDragOver:f,handleDragOverBar:p,handleDrop:m,handleDragEnd:h}=no(l),{handleTouchStart:g,handleTouchMove:_,handleTouchEnd:v}=So(l),{projectTags:y,loadTags:b}=ma(t?.name),[x,S]=(0,K.useState)({}),C=s.filter(e=>e.type===`chat`&&e.metadata?.sessionId).map(e=>e.metadata.sessionId);(0,K.useEffect)(()=>{!t?.name||C.length===0||V.get(`${B(t.name)}/chat/sessions?limit=50`).then(e=>{let t={};for(let n of e.sessions)n.tag&&(t[n.id]=n.tag);S(t)}).catch(()=>{})},[t?.name,C.join(`,`)]);let w=(0,K.useCallback)(async(e,n)=>{if(t?.name)try{if(n!==null){await V.patch(`${B(t.name)}/chat/sessions/${e}/tag`,{tagId:n});let r=y.find(e=>e.id===n);r&&S(t=>({...t,[e]:{id:r.id,name:r.name,color:r.color}}))}else await V.del(`${B(t.name)}/chat/sessions/${e}/tag`),S(t=>{let n={...t};return delete n[e],n});b()}catch{}},[t?.name,y,b]),T=Aa(e=>e.notifications),E=Io(e=>e.sessions),{canScrollLeft:D,canScrollRight:O,scrollLeft:k,scrollRight:ee}=Ro(r),A=Bo(r.current,n.current,s,T);(0,K.useEffect)(()=>{if(s.length>i.current&&c){let e=n.current.get(c);e&&e.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`nearest`})}i.current=s.length},[s.length,c]);let te=(0,K.useCallback)((e,t)=>{W.getState().updateTab(e.id,{title:t});let n=e.metadata?.projectName,r=e.metadata?.sessionId;n&&r&&V.patch(`${B(n)}/chat/sessions/${r}`,{title:t}).catch(()=>{})},[]),ne=Ka(e=>e.selection),[re,j]=(0,K.useState)(null);function M(e){if(e.type!==`editor`)return null;let t=e.metadata?.filePath,n=e.metadata?.projectName;if(!t||!n)return null;let r=ne!=null&&ne.projectName===n&&ne.filePath!==t;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(Sa,{onClick:()=>{let r=e.metadata?.unsavedContent;Ka.getState().setSelection({filePath:t,projectName:n,dirtyContent:r,label:Re(t)})},children:[(0,q.jsx)(Se,{className:`size-3.5 mr-2`}),`Select for Compare`]}),r&&(0,q.jsxs)(Sa,{onClick:async()=>{let r=Ka.getState().selection;if(!r)return;let i=e.metadata?.unsavedContent;try{await Ja({path:r.filePath,dirtyContent:r.dirtyContent},{path:t,dirtyContent:i},n),Ka.getState().clearSelection()}catch(e){let t=e instanceof Error?e.message:`Compare failed`;tr.error(t)}},children:[(0,q.jsx)(Se,{className:`size-3.5 mr-2`}),`Compare with Selected (`,ne.label,`)`]}),(0,q.jsx)(Ca,{})]})}let N=(0,K.useCallback)((e,t)=>{let n=U.getState(),r=n.panels[l]?.tabs??[];switch(t){case`close`:n.closeTab(e.id,l);break;case`close-others`:for(let t of r)t.id!==e.id&&t.closable&&n.closeTab(t.id,l);break;case`close-right`:{let t=r.findIndex(t=>t.id===e.id);for(let e=t+1;e<r.length;e++)r[e].closable&&n.closeTab(r[e].id,l);break}case`copy-path`:{let t=e.metadata?.filePath;t&&navigator.clipboard.writeText(t).catch(()=>{});break}case`download`:{let t=e.metadata?.filePath,n=e.metadata?.projectName;t&&n&&Go(n,t);break}case`rename`:case`delete`:{let n=e.metadata?.filePath;n&&j({action:t,tabId:e.id,node:{name:e.title,path:n,type:`file`}});break}}},[l]);function ie(e){e.target.closest(`[data-tab-item]`)||Po()}function ae(e){e.target.closest(`[data-tab-item]`)||(e.preventDefault(),Po())}return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`hidden md:flex items-center h-10 border-b border-border bg-background relative`,onDragOver:p,onDrop:m,onDoubleClick:ie,onContextMenu:ae,children:[D&&(0,q.jsx)(`button`,{onClick:k,className:`absolute left-0 z-10 flex items-center justify-center size-8 bg-gradient-to-r from-background via-background to-transparent`,children:(0,q.jsxs)(`span`,{className:`relative`,children:[(0,q.jsx)(de,{className:`size-4 text-text-secondary`}),A.left&&(0,q.jsx)(`span`,{className:H(`absolute -top-1 -right-0.5 size-2 rounded-full`,Da(A.left))})]})}),(0,q.jsx)(`div`,{ref:r,className:`flex-1 overflow-x-auto overflow-y-hidden min-w-0 scrollbar-none`,children:(0,q.jsxs)(`div`,{className:`flex items-center h-10`,children:[s.map((e,t)=>{let r=e.type===`chat`?e.metadata?.sessionId:void 0,i=r?T.get(r):void 0,a=i&&i.count>0?i.type:null,o=r?E.has(r):!1;return(0,q.jsx)(Wo,{tab:e,isActive:e.id===c,icon:Yo[e.type]||hn,showDropBefore:u===t,notificationType:a,isStreaming:o,onSelect:()=>{co()||(U.getState().setActiveTab(e.id,l),r&&Aa.getState().clearForSession(r))},onClose:()=>U.getState().closeTab(e.id,l),onDragStart:t=>d(t,e.id),onDragOver:n=>f(n,e.id,t),onDragEnd:h,onTouchStart:t=>g(t,e.id,e.title),onTouchMove:_,onTouchEnd:v,tabRef:t=>{t?n.current.set(e.id,t):n.current.delete(e.id)},onRename:e.type===`chat`?t=>te(e,t):void 0,onContextAction:t=>N(e,t),tagColor:r?x[r]?.color:void 0,extraMenuContent:(0,q.jsxs)(q.Fragment,{children:[M(e),r&&y.length>0&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(va,{children:[(0,q.jsxs)(ya,{children:[(0,q.jsx)(On,{className:`size-3.5 mr-2`}),`Set Tag`]}),(0,q.jsxs)(ba,{children:[y.map(e=>(0,q.jsxs)(Sa,{onClick:()=>w(r,e.id),children:[(0,q.jsx)(`span`,{className:`size-2.5 rounded-full mr-2 shrink-0`,style:{backgroundColor:e.color}}),e.name,x[r]?.id===e.id&&(0,q.jsx)(le,{className:`size-3 ml-auto`})]},e.id)),x[r]&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ca,{}),(0,q.jsx)(Sa,{onClick:()=>w(r,null),children:`Remove tag`})]})]})]}),(0,q.jsx)(Ca,{})]})]})},e.id)}),u!==null&&u>=s.length&&(0,q.jsx)(`div`,{className:`w-0.5 h-6 bg-primary rounded-full`}),(0,q.jsx)(`button`,{onClick:()=>Po(),title:`Open command palette (Shift+Shift)`,className:`flex items-center justify-center size-10 shrink-0 sticky right-0 border-b-2 border-transparent text-text-secondary hover:text-foreground transition-colors bg-background`,children:(0,q.jsx)(ke,{className:`size-4`})})]})}),O&&(0,q.jsx)(`button`,{onClick:ee,className:`absolute right-10 z-10 flex items-center justify-center size-8 bg-gradient-to-l from-background via-background to-transparent`,children:(0,q.jsxs)(`span`,{className:`relative`,children:[(0,q.jsx)(pe,{className:`size-4 text-text-secondary`}),A.right&&(0,q.jsx)(`span`,{className:H(`absolute -top-1 -left-0.5 size-2 rounded-full`,Da(A.right))})]})})]}),re&&(0,q.jsx)(Jo,{action:re.action,node:re.node,projectName:t?.name??``,onClose:()=>j(null),onRefresh:()=>{t&&Ba.getState().fetchTree(t.name),re.action===`delete`&&U.getState().closeTab(re.tabId,l)}})]})});function Zo({panelId:e}){let[t,n]=(0,K.useState)(null),r=eo(),i=so(),a=(i?.panelId===e?i.zone:null)??t,o=U(e=>e.grid),s=U(e=>e.isMobile()),c=ze(o,e),l=!s&&o.length<3,u=c?!s&&(o[c.row]?.length??0)<Ve(!1):!1,d=(0,K.useCallback)(e=>{let t=e.currentTarget.getBoundingClientRect(),n=(e.clientX-t.left)/t.width,r=(e.clientY-t.top)/t.height,i=.25;return n<i&&u?`left`:n>1-i&&u?`right`:r<i&&l?`top`:r>1-i&&l?`bottom`:`center`},[u,l]),f=(0,K.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.stopPropagation(),n(d(e)))},[d]),p=(0,K.useCallback)(e=>{e.currentTarget.contains(e.relatedTarget)||n(null)},[]),m=(0,K.useCallback)(t=>{t.preventDefault(),t.stopPropagation();let r=d(t);if(n(null),to(),!r)return;let i=t.dataTransfer.getData(Xa);if(i)try{let t=JSON.parse(i),n=U.getState();if(r===`center`)t.panelId!==e&&n.moveTab(t.tabId,t.panelId,e);else{let i=r===`top`?`up`:r===`bottom`?`down`:r;n.splitPanel(i,t.tabId,t.panelId,e)}}catch{}},[d,e]);return r?(0,q.jsxs)(`div`,{className:`absolute inset-0 z-20`,onDragOver:f,onDragLeave:p,onDrop:m,children:[a===`left`&&(0,q.jsx)(`div`,{className:`absolute inset-y-0 left-0 w-1/3 bg-primary/10 border-2 border-primary/30 rounded-l-md`}),a===`right`&&(0,q.jsx)(`div`,{className:`absolute inset-y-0 right-0 w-1/3 bg-primary/10 border-2 border-primary/30 rounded-r-md`}),a===`top`&&(0,q.jsx)(`div`,{className:`absolute inset-x-0 top-0 h-1/3 bg-primary/10 border-2 border-primary/30 rounded-t-md`}),a===`bottom`&&(0,q.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 h-1/3 bg-primary/10 border-2 border-primary/30 rounded-b-md`}),a===`center`&&(0,q.jsx)(`div`,{className:`absolute inset-0 bg-primary/5 border-2 border-dashed border-primary/30 rounded-md`})]}):null}var Qo={terminal:(0,K.lazy)(()=>Le(()=>import(`./terminal-tab-Ca5kyUS7.js`).then(e=>({default:e.TerminalTab})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]))),chat:(0,K.lazy)(()=>Le(()=>import(`./chat-tab-Clzw7eDP.js`).then(e=>({default:e.ChatTab})),__vite__mapDeps([12,1,2,3,4,13,7,14,15,8,9,10,16,17,18,19,20,21,22,23,24,25,11,26,27]))),editor:(0,K.lazy)(()=>Le(()=>import(`./code-editor-BgU5lFVC.js`).then(e=>({default:e.CodeEditor})),__vite__mapDeps([28,1,2,3,4,29,30,31,32,8,9,10,14,33,16,34,22,24,15,25,35,36,27,11,7,37,13,23,38,39,26]))),database:(0,K.lazy)(()=>Le(()=>import(`./database-viewer-DNYgu_Jv.js`).then(e=>({default:e.DatabaseViewer})),__vite__mapDeps([40,1,2,3,4,29,30,31,32,8,9,10,14,33,16,34,22,24,15,25,35,36,27,11,7,37,20,41]))),sqlite:(0,K.lazy)(()=>Le(()=>import(`./sqlite-viewer-Bev2XJe7.js`).then(e=>({default:e.SqliteViewer})),__vite__mapDeps([42,1,2,3,4,29,30,31,32,8,9,10,14,33,16,34,22,24,15,25,35,36,27,11,7,37,20,39,41]))),postgres:(0,K.lazy)(()=>Le(()=>import(`./postgres-viewer-DuiEoUGK.js`).then(e=>({default:e.PostgresViewer})),__vite__mapDeps([43,1,2,44,45,4,34,14,22,20,39,10]))),"git-diff":(0,K.lazy)(()=>Le(()=>import(`./diff-viewer-Dec4mKgl.js`).then(e=>({default:e.DiffViewer})),__vite__mapDeps([46,1,2,32,4,8,9,10,35,14]))),settings:(0,K.lazy)(()=>Le(()=>import(`./settings-tab-p3lxp6_T.js`).then(e=>({default:e.SettingsTab})),__vite__mapDeps([47,2,1,3,4,13,7,14,15,8,9,10,17,18,19,20,21,26]))),ports:(0,K.lazy)(()=>Le(()=>import(`./port-forwarding-tab-BmRMiN32.js`).then(e=>({default:e.PortForwardingTab})),__vite__mapDeps([48,1,3,4,19,14,49,10]))),extension:(0,K.lazy)(()=>Le(()=>import(`./extension-webview-b7T0yAq2.js`).then(e=>({default:e.ExtensionWebview})),__vite__mapDeps([50,1,4,10]))),"extension-webview":(0,K.lazy)(()=>Le(()=>import(`./extension-webview-b7T0yAq2.js`).then(e=>({default:e.ExtensionWebview})),__vite__mapDeps([50,1,4,10]))),"conflict-editor":(0,K.lazy)(()=>Le(()=>import(`./conflict-editor-C3l3pgtV.js`).then(e=>({default:e.ConflictEditor})),__vite__mapDeps([51,1,2,32,4,8,9,10]))),"system-monitor":(0,K.lazy)(()=>Le(()=>import(`./system-monitor-tab-DfpsOgL3.js`).then(e=>({default:e.SystemMonitorTab})),__vite__mapDeps([52,1,4,7,14,18,22,49,10]))),"git-log":(0,K.lazy)(()=>Le(()=>import(`./git-log-panel-CWTTJERX.js`).then(e=>({default:e.GitLogPanel})),__vite__mapDeps([53,1,3,4,7,14,33,16,20,10,26,9])))},$o=new class{slots=new Map;listeners=new Set;version=0;register(e,t){if(t){if(this.slots.get(e)===t)return;this.slots.set(e,t)}else{if(!this.slots.has(e))return;this.slots.delete(e)}this.version++,this.listeners.forEach(e=>e())}get(e){return this.slots.get(e)}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}getVersion(){return this.version}};function es(e,t){$o.register(e,t)}function ts(){let e=(0,K.useRef)(null);(0,K.useSyncExternalStore)(e=>$o.subscribe(e),()=>$o.getVersion());let t=U(e=>e.panels),n=U(e=>e.grid),r=U(e=>e.currentProject),i=U(e=>e.projectGrids),a=[],o=new Set,s=(e,n)=>{for(let r of e.flat()){let e=t[r];if(e)for(let t of e.tabs)o.has(t.id)||t.projectId&&n&&t.projectId!==n||(o.add(t.id),a.push({tabId:t.id,panelId:r,type:t.type,metadata:t.metadata,isActive:t.id===e.activeTabId}))}};s(n,r);for(let[e,t]of Object.entries(i))e!==r&&s(t,e);return a.sort((e,t)=>e.tabId.localeCompare(t.tabId)),(0,q.jsx)(`div`,{ref:e,style:{position:`fixed`,top:0,left:0,width:0,height:0,overflow:`hidden`,pointerEvents:`none`,visibility:`hidden`},children:a.map(t=>(0,q.jsx)(ns,{tabId:t.tabId,panelId:t.panelId,type:t.type,metadata:t.metadata,isActive:t.isActive,hiddenContainer:e},t.tabId))})}function ns({tabId:e,panelId:t,type:n,metadata:r,isActive:i,hiddenContainer:a}){let o=(0,K.useRef)(null),s=Qo[n];return(0,K.useLayoutEffect)(()=>()=>{let e=o.current,t=a.current;e&&t&&e.parentElement!==t&&t.appendChild(e)},[a]),(0,K.useLayoutEffect)(()=>{let e=o.current,n=$o.get(t);if(!e)return;if(!n){let t=a.current;t&&e.parentElement!==t&&t.appendChild(e);return}if(e.parentElement===n)return;let r=[];e.querySelectorAll(`*`).forEach(e=>{(e.scrollTop||e.scrollLeft)&&r.push({el:e,top:e.scrollTop,left:e.scrollLeft})}),n.appendChild(e);for(let{el:e,top:t,left:n}of r)e.scrollTop=t,e.scrollLeft=n}),s?(0,q.jsx)(`div`,{ref:o,className:`absolute inset-0`,style:i?void 0:{display:`none`},"data-tab-pool-id":e,children:(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,q.jsx)(G,{className:`size-6 animate-spin text-primary`})}),children:(0,q.jsx)(s,{metadata:r,tabId:e})})}):null}var rs=[{type:`terminal`,label:`Terminal`,icon:kn},{type:`chat`,label:`AI Chat`,icon:en},{type:`editor`,label:`New File`,icon:Et}];function is({panelId:e,projectName:t}){let n=U(t=>t.panels[e]),r=U(t=>t.focusedPanelId===e),i=U(e=>(e.currentProject===t?e.grid:e.projectGrids[t]??[[]]).flat().length),a=(0,K.useCallback)(t=>{es(e,t)},[e]);return n?(0,q.jsxs)(`div`,{className:H(`flex flex-col h-full overflow-hidden`,i>1&&`border border-transparent`,i>1&&r&&`border-primary/30`),onMouseDown:()=>{U.getState().focusedPanelId!==e&&U.getState().setFocusedPanel(e)},children:[(0,q.jsx)(Xo,{panelId:e}),(0,q.jsxs)(`div`,{className:`flex-1 overflow-hidden relative`,"data-panel-drop-zone":e,children:[n.tabs.length===0&&(0,q.jsx)(as,{panelId:e}),(0,q.jsx)(`div`,{ref:a,className:`absolute inset-0`,style:n.tabs.length===0?{display:`none`}:void 0}),(0,q.jsx)(Zo,{panelId:e})]})]}):null}function as({panelId:e}){let t=We(e=>e.activeProject);function n(n){if(n===`editor`){W.getState().openNewFile();return}let r=n!==`settings`&&t?{projectName:t.name}:void 0;U.getState().openTab({type:n,title:rs.find(e=>e.type===n)?.label??n,metadata:r,projectId:t?.name??null,closable:!0},e)}let r=(0,K.useCallback)(n=>{U.getState().openTab({type:`chat`,title:n.title||`Chat`,projectId:t?.name??null,metadata:{projectName:t?.name,sessionId:n.id,providerId:n.providerId},closable:!0},e)},[t?.name,e]);return(0,q.jsx)(`div`,{className:`flex flex-col h-full overflow-y-auto text-text-secondary`,children:(0,q.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-6 px-4 flex-1`,children:[(0,q.jsx)(`p`,{className:`text-sm`,children:`Open a tab to get started`}),(0,q.jsx)(`div`,{className:`grid grid-cols-3 gap-2 w-full max-w-sm`,children:rs.map(e=>{let t=e.icon;return(0,q.jsxs)(`button`,{onClick:()=>n(e.type),className:`flex flex-col items-center justify-center gap-1.5 px-2 py-3 rounded-md border border-border bg-surface hover:bg-surface-elevated active:bg-surface-elevated text-xs text-foreground transition-colors`,children:[(0,q.jsx)(t,{className:`size-5`}),e.label]},e.type)})}),(0,q.jsx)(Fa,{projectName:t?.name,onSelectSession:r,className:`w-full`})]})})}var os=(0,K.memo)(function({projectName:e}){let t=da(`(min-width: 768px)`),n=U(t=>t.currentProject===e?t.grid:t.projectGrids[e]??[[]]),r=U(e=>e.focusedPanelId),i=n.flat().length;if((0,K.useEffect)(()=>{if(i===0){let e=Be();U.setState(t=>({panels:{...t.panels,[e.id]:e},grid:[[e.id]],focusedPanelId:e.id}))}},[i]),i===0)return null;if(!t){let t=n.flat(),i=t.includes(r)?r:t[0];return i?(0,q.jsx)(is,{panelId:i,projectName:e}):null}return i===1&&n[0]?.[0]?(0,q.jsx)(is,{panelId:n[0][0],projectName:e}):(0,q.jsx)(ia,{orientation:`vertical`,style:{height:`100%`},children:n.map((t,r)=>(0,q.jsx)(ss,{row:t,rowIdx:r,totalRows:n.length,projectName:e},`row-${r}`))})});function ss({row:e,rowIdx:t,totalRows:n,projectName:r}){return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(sa,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:e.length===1?(0,q.jsx)(is,{panelId:e[0],projectName:r}):(0,q.jsx)(ia,{orientation:`horizontal`,children:e.map((t,n)=>(0,q.jsx)(cs,{panelId:t,colIdx:n,totalCols:e.length,projectName:r},t))})}),t<n-1&&(0,q.jsx)(ls,{orientation:`horizontal`})]})}function cs({panelId:e,colIdx:t,totalCols:n,projectName:r}){return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(sa,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:(0,q.jsx)(is,{panelId:e,projectName:r})}),t<n-1&&(0,q.jsx)(ls,{orientation:`vertical`})]})}function ls({orientation:e}){let t=e===`vertical`;return(0,q.jsx)(ua,{className:`
10
+ `).replace(kd,``)}function jd(e,t){return t=Ad(t),Ad(e)===t}function Md(e,t,n,r,i,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||zt(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&zt(e,``+r);break;case`className`:Ct(e,`class`,r);break;case`tabIndex`:Ct(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Ct(e,n,r);break;case`style`:Ht(e,r,o);break;case`data`:if(t!==`object`){Ct(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Kt(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}else typeof o==`function`&&(n===`formAction`?(t!==`input`&&Md(e,t,`name`,i.name,i,null),Md(e,t,`formEncType`,i.formEncType,i,null),Md(e,t,`formMethod`,i.formMethod,i,null),Md(e,t,`formTarget`,i.formTarget,i,null)):(Md(e,t,`encType`,i.encType,i,null),Md(e,t,`method`,i.method,i,null),Md(e,t,`target`,i.target,i,null)));if(r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Kt(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=qt);break;case`onScroll`:r!=null&&$(`scroll`,e);break;case`onScrollEnd`:r!=null&&$(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(a(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(a(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=Kt(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:$(`beforetoggle`,e),$(`toggle`,e),St(e,`popover`,r);break;case`xlinkActuate`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:wt(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:wt(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:wt(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:wt(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:St(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=Wt.get(n)||n,St(e,n,r))}}function Nd(e,t,n,r,i,o){switch(n){case`style`:Ht(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(a(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(a(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?zt(e,r):(typeof r==`number`||typeof r==`bigint`)&&zt(e,``+r);break;case`onScroll`:r!=null&&$(`scroll`,e);break;case`onScrollEnd`:r!=null&&$(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=qt);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!ht.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(i=n.endsWith(`Capture`),t=n.slice(2,i?n.length-7:void 0),o=e[tt]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,i),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,i);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):St(e,n,r)}}}function Pd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:$(`error`,e),$(`load`,e);var r=!1,i=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:i=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(a(137,t));default:Md(e,t,o,s,n,null)}}i&&Md(e,t,`srcSet`,n.srcSet,n,null),r&&Md(e,t,`src`,n.src,n,null);return;case`input`:$(`invalid`,e);var c=o=s=i=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:i=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(a(137,t));break;default:Md(e,t,r,d,n,null)}}Pt(e,o,c,l,u,s,i,!1);return;case`select`:for(i in $(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(i)&&(c=n[i],c!=null))switch(i){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:Md(e,t,i,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&It(e,!!r,n,!0):It(e,!!r,t,!1);return;case`textarea`:for(s in $(`invalid`,e),o=i=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:i=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(a(91));break;default:Md(e,t,s,c,n,null)}Rt(e,r,i,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:Md(e,t,l,r,n,null)}return;case`dialog`:$(`beforetoggle`,e),$(`toggle`,e),$(`cancel`,e),$(`close`,e);break;case`iframe`:case`object`:$(`load`,e);break;case`video`:case`audio`:for(r=0;r<gd.length;r++)$(gd[r],e);break;case`image`:$(`error`,e),$(`load`,e);break;case`details`:$(`toggle`,e);break;case`embed`:case`source`:case`link`:$(`error`,e),$(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(a(137,t));default:Md(e,t,u,r,n,null)}return;default:if(Ut(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Nd(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Md(e,t,c,r,n,null))}function Fd(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var i=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||Md(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:o=m;break;case`name`:i=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(a(137,t));break;default:m!==f&&Md(e,t,p,m,r,f)}}Nt(e,s,c,l,u,d,o,i);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||Md(e,t,o,null,r,l)}for(i in r)if(o=r[i],l=n[i],r.hasOwnProperty(i)&&(o!=null||l!=null))switch(i){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&Md(e,t,i,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?It(e,!!n,n?[]:``,!1):It(e,!!n,t,!0)):It(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(i=n[c],n.hasOwnProperty(c)&&i!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:Md(e,t,c,null,r,i)}for(s in r)if(i=r[s],o=n[s],r.hasOwnProperty(s)&&(i!=null||o!=null))switch(s){case`value`:p=i;break;case`defaultValue`:m=i;break;case`children`:break;case`dangerouslySetInnerHTML`:if(i!=null)throw Error(a(91));break;default:i!==o&&Md(e,t,s,i,r,o)}Lt(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:Md(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:Md(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&Md(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(a(137,t));break;default:Md(e,t,u,p,r,m)}return;default:if(Ut(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Nd(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Nd(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Md(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||Md(e,t,f,p,r,m)}function Id(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Ld(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&Id(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var Rd=null,zd=null;function Bd(e){return e.nodeType===9?e:e.ownerDocument}function Vd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function Hd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function Ud(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Wd=null;function Gd(){var e=window.event;return e&&e.type===`popstate`?e===Wd?!1:(Wd=e,!0):(Wd=null,!1)}var Kd=typeof setTimeout==`function`?setTimeout:void 0,qd=typeof clearTimeout==`function`?clearTimeout:void 0,Jd=typeof Promise==`function`?Promise:void 0,Yd=typeof queueMicrotask==`function`?queueMicrotask:Jd===void 0?Kd:function(e){return Jd.resolve(null).then(e).catch(Xd)};function Xd(e){setTimeout(function(){throw e})}function Zd(e){return e===`head`}function Qd(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Np(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)pf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,pf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[st]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&pf(e.ownerDocument.body);n=i}while(n);Np(t)}function $d(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8)if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++;n=r}while(n)}function ef(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:ef(n),ct(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function tf(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r)if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e;else if(!e[st])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=cf(e.nextSibling),e===null)break}return null}function nf(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=cf(e.nextSibling),e===null))return null;return e}function rf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=cf(e.nextSibling),e===null))return null;return e}function af(e){return e.data===`$?`||e.data===`$~`}function of(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function sf(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function cf(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var lf=null;function uf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return cf(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function df(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function ff(e,t,n){switch(t=Bd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(a(452));return e;case`head`:if(e=t.head,!e)throw Error(a(453));return e;case`body`:if(e=t.body,!e)throw Error(a(454));return e;default:throw Error(a(451))}}function pf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);ct(e)}var mf=new Map,hf=new Set;function gf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var _f=M.d;M.d={f:vf,r:yf,D:Sf,C:Cf,L:wf,m:Tf,X:Df,S:Ef,M:Of};function vf(){var e=_f.f(),t=vu();return e||t}function yf(e){var t=ut(e);t!==null&&t.tag===5&&t.type===`form`?bs(t):_f.r(e)}var bf=typeof document>`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=Mt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),pt(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Mt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Mt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Mt(n.imageSizes)+`"]`)):i+=`[href="`+Mt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=p({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),pt(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Mt(r)+`"][href="`+Mt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=p({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),pt(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=ft(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=p({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);pt(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=ft(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=p({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),pt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=ft(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=p({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),pt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var i=(i=se.current)?gf(i):null;if(!i)throw Error(a(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=ft(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var o=ft(i).hoistableStyles,s=o.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=i.querySelector(jf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),o||Nf(i,e,n,s.state))),t&&r===null)throw Error(a(528,``));return s}if(t&&r!==null)throw Error(a(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=ft(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(a(444,e))}}function Af(e){return`href="`+Mt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return p({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),pt(t),e.head.appendChild(t))}function Pf(e){return`[src="`+Mt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Mt(n.href)+`"]`);if(r)return t.instance=r,pt(r),r;var i=p({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),pt(r),Pd(r,`style`,i),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Af(n.href);var o=e.querySelector(jf(i));if(o)return t.state.loading|=4,t.instance=o,pt(o),o;r=Mf(n),(i=mf.get(i))&&Rf(r,i),o=(e.ownerDocument||e).createElement(`link`),pt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Pd(o,`link`,r),t.state.loading|=4,Lf(o,n.precedence,e),t.instance=o;case`script`:return o=Pf(n.src),(i=e.querySelector(Ff(o)))?(t.instance=i,pt(i),i):(r=n,(i=mf.get(o))&&(r=p({},n),zf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),pt(i),Pd(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(a(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Rf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function zf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Bf=null;function Vf(e,t,n){if(Bf===null){var r=new Map,i=Bf=new Map;i.set(n,r)}else i=Bf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[st]||a[et]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Hf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,pt(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),pt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&Xf(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&Kf===0&&(Kf=62500*Ld());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Xf(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=Jf.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var Qf={$$typeof:S,Provider:null,Consumer:null,_currentValue:N,_currentValue2:N,_threadCount:0};function $f(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=U(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=U(0),this.hiddenUpdates=U(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function ep(e,t,n,r,i,a,o,s,c,l,u,d){return e=new $f(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=$r(3,null,null,t),e.current=a,a.stateNode=e,t=$i(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Ma(a),e}function tp(e){return e?(e=Zr,e):Zr}function np(e,t,n,r,i,a){i=tp(i),r.context===null?r.context=i:r.pendingContext=i,r=Pa(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Fa(e,r,t),n!==null&&(pu(n,e,t),Ia(n,e,t))}function rp(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function ip(e,t){rp(e,t),(e=e.alternate)&&rp(e,t)}function ap(e){if(e.tag===13||e.tag===31){var t=Jr(e,67108864);t!==null&&pu(t,e,67108864),ip(e,67108864)}}function op(e){if(e.tag===13||e.tag===31){var t=du();t=Je(t);var n=Jr(e,t);n!==null&&pu(n,e,t),ip(e,t)}}var sp=!0;function cp(e,t,n,r){var i=j.T;j.T=null;var a=M.p;try{M.p=2,up(e,t,n,r)}finally{M.p=a,j.T=i}}function lp(e,t,n,r){var i=j.T;j.T=null;var a=M.p;try{M.p=8,up(e,t,n,r)}finally{M.p=a,j.T=i}}function up(e,t,n,r){if(sp){var i=dp(r);if(i===null)Cd(e,t,r,fp,n),Cp(e,r);else if(Tp(i,e,t,n,r))r.stopPropagation();else if(Cp(e,r),t&4&&-1<Sp.indexOf(e)){for(;i!==null;){var a=ut(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=ze(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Pe(o);s.entanglements[1]|=c,o&=~c}nd(a),!(X&6)&&($l=Ce()+500,rd(0,!1))}}break;case 31:case 13:s=Jr(a,2),s!==null&&pu(s,a,2),vu(),ip(a,2)}if(a=dp(r),a===null&&Cd(e,t,r,fp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Cd(e,t,r,null,n)}}function dp(e){return e=Yt(e),pp(e)}var fp=null;function pp(e){if(fp=null,e=lt(e),e!==null){var t=s(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=c(t),e!==null)return e;e=null}else if(n===31){if(e=l(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return fp=e,null}function mp(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(we()){case Te:return 2;case Ee:return 8;case De:case Oe:return 32;case ke:return 268435456;default:return 32}default:return 32}}var hp=!1,gp=null,_p=null,vp=null,yp=new Map,bp=new Map,xp=[],Sp=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Cp(e,t){switch(e){case`focusin`:case`focusout`:gp=null;break;case`dragenter`:case`dragleave`:_p=null;break;case`mouseover`:case`mouseout`:vp=null;break;case`pointerover`:case`pointerout`:yp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:bp.delete(t.pointerId)}}function wp(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=ut(t),t!==null&&ap(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Tp(e,t,n,r,i){switch(t){case`focusin`:return gp=wp(gp,e,t,n,r,i),!0;case`dragenter`:return _p=wp(_p,e,t,n,r,i),!0;case`mouseover`:return vp=wp(vp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return yp.set(a,wp(yp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,bp.set(a,wp(bp.get(a)||null,e,t,n,r,i)),!0}return!1}function Ep(e){var t=lt(e.target);if(t!==null){var n=s(t);if(n!==null){if(t=n.tag,t===13){if(t=c(n),t!==null){e.blockedOn=t,Qe(e.priority,function(){op(n)});return}}else if(t===31){if(t=l(n),t!==null){e.blockedOn=t,Qe(e.priority,function(){op(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Dp(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=dp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Jt=r,n.target.dispatchEvent(r),Jt=null}else return t=ut(n),t!==null&&ap(t),e.blockedOn=n,!1;t.shift()}return!0}function Op(e,t,n){Dp(e)&&n.delete(t)}function kp(){hp=!1,gp!==null&&Dp(gp)&&(gp=null),_p!==null&&Dp(_p)&&(_p=null),vp!==null&&Dp(vp)&&(vp=null),yp.forEach(Op),bp.forEach(Op)}function Ap(e,n){e.blockedOn===n&&(e.blockedOn=null,hp||(hp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,kp)))}var jp=null;function Mp(e){jp!==e&&(jp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){jp===e&&(jp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(pp(r||n)===null)continue;break}var a=ut(n);a!==null&&(e.splice(t,3),t-=3,vs(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Np(e){function t(t){return Ap(t,e)}gp!==null&&Ap(gp,e),_p!==null&&Ap(_p,e),vp!==null&&Ap(vp,e),yp.forEach(t),bp.forEach(t);for(var n=0;n<xp.length;n++){var r=xp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<xp.length&&(n=xp[0],n.blockedOn===null);)Ep(n),n.blockedOn===null&&xp.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[tt]||null;if(typeof a==`function`)o||Mp(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[tt]||null)s=o.formAction;else if(pp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Mp(n)}}}function Pp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Fp(e){this._internalRoot=e}Ip.prototype.render=Fp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(a(409));var n=t.current;np(n,du(),e,t,null,null)},Ip.prototype.unmount=Fp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;np(e.current,2,null,e,null,null),vu(),t[nt]=null}};function Ip(e){this._internalRoot=e}Ip.prototype.unstable_scheduleHydration=function(e){if(e){var t=Ze();e={blockedOn:null,target:e,priority:t};for(var n=0;n<xp.length&&t!==0&&t<xp[n].priority;n++);xp.splice(n,0,e),n===0&&Ep(e)}};var Lp=n.version;if(Lp!==`19.2.4`)throw Error(a(527,Lp,`19.2.4`));M.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(a(188)):(e=Object.keys(e).join(`,`),Error(a(268,e)));return e=d(t),e=e===null?null:f(e),e=e===null?null:e.stateNode,e};var Rp={bundleType:0,version:`19.2.4`,rendererPackageName:`react-dom`,currentDispatcherRef:j,reconcilerVersion:`19.2.4`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var zp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!zp.isDisabled&&zp.supportsFiber)try{Me=zp.inject(Rp),Ne=zp}catch{}}e.createRoot=function(e,t){if(!o(e))throw Error(a(299));var n=!1,r=``,i=Vs,s=Hs,c=Us;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(i=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=ep(e,1,!1,null,null,n,r,null,i,s,c,Pp),e[nt]=t.current,xd(e),new Fp(t)}})),Ze=t(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=Xe()})),Qe=k(`arrow-down-to-line`,[[`path`,{d:`M12 17V3`,key:`1cwfxf`}],[`path`,{d:`m6 11 6 6 6-6`,key:`12ii2o`}],[`path`,{d:`M19 21H5`,key:`150jfl`}]]),$e=k(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),et=k(`arrow-up-from-line`,[[`path`,{d:`m18 9-6-6-6 6`,key:`kcunyi`}],[`path`,{d:`M12 3v14`,key:`7cf3v8`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),tt=k(`bell-ring`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M22 8c0-2.3-.8-4.3-2-6`,key:`5bb3ad`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}],[`path`,{d:`M4 2C2.8 3.7 2 5.7 2 8`,key:`tap9e0`}]]),nt=k(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),rt=k(`brain`,[[`path`,{d:`M12 18V5`,key:`adv99a`}],[`path`,{d:`M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4`,key:`1e3is1`}],[`path`,{d:`M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5`,key:`1gqd8o`}],[`path`,{d:`M17.997 5.125a4 4 0 0 1 2.526 5.77`,key:`iwvgf7`}],[`path`,{d:`M18 18a4 4 0 0 0 2-7.464`,key:`efp6ie`}],[`path`,{d:`M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517`,key:`1gq6am`}],[`path`,{d:`M6 18a4 4 0 0 1-2-7.464`,key:`k1g0md`}],[`path`,{d:`M6.003 5.125a4 4 0 0 0-2.526 5.77`,key:`q97ue3`}]]),it=k(`case-sensitive`,[[`path`,{d:`m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16`,key:`d5nyq2`}],[`path`,{d:`M22 9v7`,key:`pvm9v3`}],[`path`,{d:`M3.304 13h6.392`,key:`1q3zxz`}],[`circle`,{cx:`18.5`,cy:`12.5`,r:`3.5`,key:`z97x68`}]]),at=k(`chevrons-down-up`,[[`path`,{d:`m7 20 5-5 5 5`,key:`13a0gw`}],[`path`,{d:`m7 4 5 5 5-5`,key:`1kwcof`}]]),ot=k(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),st=k(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),ct=k(`circle-arrow-up`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16 12-4-4-4 4`,key:`177agl`}],[`path`,{d:`M12 16V8`,key:`1sbj14`}]]),lt=k(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),ut=k(`clipboard-paste`,[[`path`,{d:`M11 14h10`,key:`1w8e9d`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v1.344`,key:`1e62lh`}],[`path`,{d:`m17 18 4-4-4-4`,key:`z2g111`}],[`path`,{d:`M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113`,key:`bjbb7m`}],[`rect`,{x:`8`,y:`2`,width:`8`,height:`4`,rx:`1`,key:`ublpy`}]]),dt=k(`clipboard`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}]]),ft=k(`cloud`,[[`path`,{d:`M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z`,key:`p7xjir`}]]),pt=k(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),mt=k(`cpu`,[[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M17 20v2`,key:`1rnc9c`}],[`path`,{d:`M17 2v2`,key:`11trls`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M2 17h2`,key:`7oei6x`}],[`path`,{d:`M2 7h2`,key:`asdhe0`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`M20 17h2`,key:`1fpfkl`}],[`path`,{d:`M20 7h2`,key:`1o8tra`}],[`path`,{d:`M7 20v2`,key:`4gnj0m`}],[`path`,{d:`M7 2v2`,key:`1i4yhu`}],[`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`,key:`1vbyd7`}],[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`1`,key:`z9xiuo`}]]),ht=k(`crosshair`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`22`,x2:`18`,y1:`12`,y2:`12`,key:`l9bcsi`}],[`line`,{x1:`6`,x2:`2`,y1:`12`,y2:`12`,key:`13hhkx`}],[`line`,{x1:`12`,x2:`12`,y1:`6`,y2:`2`,key:`10w3f3`}],[`line`,{x1:`12`,x2:`12`,y1:`22`,y2:`18`,key:`15g9kq`}]]),gt=k(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),_t=k(`ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),vt=k(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),yt=k(`file-archive`,[[`path`,{d:`M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5`,key:`4pqfef`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 12v-1`,key:`1ej8lb`}],[`path`,{d:`M8 18v-2`,key:`qcmpov`}],[`path`,{d:`M8 7V6`,key:`1nbb54`}],[`circle`,{cx:`8`,cy:`20`,r:`2`,key:`ckkr5m`}]]),bt=k(`file-braces`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),xt=k(`file-code`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12.5 8 15l2 2.5`,key:`1tg20x`}],[`path`,{d:`m14 12.5 2 2.5-2 2.5`,key:`yinavb`}]]),St=k(`file-diff`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M9 10h6`,key:`9gxzsh`}],[`path`,{d:`M12 13V7`,key:`h0r20n`}],[`path`,{d:`M9 17h6`,key:`r8uit2`}]]),Ct=k(`file-headphone`,[[`path`,{d:`M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343`,key:`1vfytu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0`,key:`1etmh7`}]]),wt=k(`file-image`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`circle`,{cx:`10`,cy:`12`,r:`2`,key:`737tya`}],[`path`,{d:`m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22`,key:`wt3hpn`}]]),Tt=k(`file-play`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z`,key:`1tzo1f`}]]),Et=k(`file-plus`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M9 15h6`,key:`cctwl0`}],[`path`,{d:`M12 18v-6`,key:`17g6i2`}]]),Dt=k(`file-spreadsheet`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 13h2`,key:`yr2amv`}],[`path`,{d:`M14 13h2`,key:`un5t4a`}],[`path`,{d:`M8 17h2`,key:`2yhykz`}],[`path`,{d:`M14 17h2`,key:`10kma7`}]]),Ot=k(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),kt=k(`file-type`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M11 18h2`,key:`12mj7e`}],[`path`,{d:`M12 12v6`,key:`3ahymv`}],[`path`,{d:`M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5`,key:`qbrxap`}]]),At=k(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),jt=k(`flask-conical`,[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`,key:`18mbvz`}],[`path`,{d:`M6.453 15h11.094`,key:`3shlmq`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}]]),Mt=k(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),Nt=k(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),Pt=k(`folder-search`,[[`path`,{d:`M10.7 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v4.1`,key:`1bw5m7`}],[`path`,{d:`m21 21-1.9-1.9`,key:`1g2n9r`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}]]),Ft=k(`folder-symlink`,[[`path`,{d:`M2 9.35V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7`,key:`y8kt7d`}],[`path`,{d:`m8 16 3-3-3-3`,key:`rlqrt1`}]]),It=k(`folder-tree`,[[`path`,{d:`M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z`,key:`hod4my`}],[`path`,{d:`M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z`,key:`w4yl2u`}],[`path`,{d:`M3 5a2 2 0 0 0 2 2h3`,key:`f2jnh7`}],[`path`,{d:`M3 3v13a2 2 0 0 0 2 2h3`,key:`k8epm1`}]]),Lt=k(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),Rt=k(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),zt=k(`git-commit-horizontal`,[[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`line`,{x1:`3`,x2:`9`,y1:`12`,y2:`12`,key:`1dyftd`}],[`line`,{x1:`15`,x2:`21`,y1:`12`,y2:`12`,key:`oup4p8`}]]),Bt=k(`grip-horizontal`,[[`circle`,{cx:`12`,cy:`9`,r:`1`,key:`124mty`}],[`circle`,{cx:`19`,cy:`9`,r:`1`,key:`1ruzo2`}],[`circle`,{cx:`5`,cy:`9`,r:`1`,key:`1a8b28`}],[`circle`,{cx:`12`,cy:`15`,r:`1`,key:`1e56xg`}],[`circle`,{cx:`19`,cy:`15`,r:`1`,key:`1a92ep`}],[`circle`,{cx:`5`,cy:`15`,r:`1`,key:`5r1jwy`}]]),Vt=k(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),Ht=k(`house`,[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`,key:`5wwlr5`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`r6nss1`}]]),Ut=k(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Wt=k(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),Gt=k(`key`,[[`path`,{d:`m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4`,key:`g0fldk`}],[`path`,{d:`m21 2-9.6 9.6`,key:`1j0ho8`}],[`circle`,{cx:`7.5`,cy:`15.5`,r:`5.5`,key:`yqb3hr`}]]),Kt=k(`keyboard`,[[`path`,{d:`M10 8h.01`,key:`1r9ogq`}],[`path`,{d:`M12 12h.01`,key:`1mp3jc`}],[`path`,{d:`M14 8h.01`,key:`1primd`}],[`path`,{d:`M16 12h.01`,key:`1l6xoz`}],[`path`,{d:`M18 8h.01`,key:`emo2bl`}],[`path`,{d:`M6 8h.01`,key:`x9i8wu`}],[`path`,{d:`M7 16h10`,key:`wp8him`}],[`path`,{d:`M8 12h.01`,key:`czm47f`}],[`rect`,{width:`20`,height:`16`,x:`2`,y:`4`,rx:`2`,key:`18n3k1`}]]),qt=k(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),Jt=k(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),Yt=k(`link`,[[`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`,key:`1cjeqo`}],[`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`,key:`19qd67`}]]),Xt=k(`list-filter`,[[`path`,{d:`M2 5h20`,key:`1fs1ex`}],[`path`,{d:`M6 12h12`,key:`8npq4p`}],[`path`,{d:`M9 19h6`,key:`456am0`}]]),Zt=k(`list`,[[`path`,{d:`M3 5h.01`,key:`18ugdj`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 19h.01`,key:`noohij`}],[`path`,{d:`M8 5h13`,key:`1pao27`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 19h13`,key:`m83p4d`}]]),G=k(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),Qt=k(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),$t=k(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),en=k(`message-square`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]),tn=k(`mic`,[[`path`,{d:`M12 19v3`,key:`npa21l`}],[`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`,key:`1vc78b`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`13`,rx:`3`,key:`s6n7sd`}]]),nn=k(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]),rn=k(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),an=k(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),on=k(`move-vertical`,[[`path`,{d:`M12 2v20`,key:`t6zp3m`}],[`path`,{d:`m8 18 4 4 4-4`,key:`bh5tu3`}],[`path`,{d:`m8 6 4-4 4 4`,key:`ybng9g`}]]),sn=k(`octagon-x`,[[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z`,key:`2d38gg`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]]),cn=k(`palette`,[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`,key:`e79jfc`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`,key:`1okk4w`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`,key:`f64h9f`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`,key:`qy21gx`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`fotxhn`}]]),ln=k(`panel-left-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m16 15-3-3 3-3`,key:`14y99z`}]]),un=k(`panel-left-open`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m14 9 3 3-3 3`,key:`8010ee`}]]),dn=k(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),fn=k(`plug`,[[`path`,{d:`M12 22v-5`,key:`1ega77`}],[`path`,{d:`M15 8V2`,key:`18g5xt`}],[`path`,{d:`M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z`,key:`1xoxul`}],[`path`,{d:`M9 8V2`,key:`14iosj`}]]),pn=k(`power-off`,[[`path`,{d:`M18.36 6.64A9 9 0 0 1 20.77 15`,key:`dxknvb`}],[`path`,{d:`M6.16 6.16a9 9 0 1 0 12.68 12.68`,key:`1x7qb5`}],[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),mn=k(`power`,[[`path`,{d:`M12 2v10`,key:`mnfbl`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`,key:`obofu9`}]]),hn=k(`puzzle`,[[`path`,{d:`M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z`,key:`w46dr5`}]]),gn=k(`regex`,[[`path`,{d:`M17 3v10`,key:`15fgeh`}],[`path`,{d:`m12.67 5.5 8.66 5`,key:`1gpheq`}],[`path`,{d:`m12.67 10.5 8.66-5`,key:`1dkfa6`}],[`path`,{d:`M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z`,key:`swwfx4`}]]),_n=k(`replace-all`,[[`path`,{d:`M14 14a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1`,key:`zg1ipl`}],[`path`,{d:`M14 4a1 1 0 0 1 1-1`,key:`dhj8ez`}],[`path`,{d:`M15 10a1 1 0 0 1-1-1`,key:`1mnyi5`}],[`path`,{d:`M19 14a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1`,key:`txt6k4`}],[`path`,{d:`M21 4a1 1 0 0 0-1-1`,key:`sfs9ap`}],[`path`,{d:`M21 9a1 1 0 0 1-1 1`,key:`mp6qeo`}],[`path`,{d:`m3 7 3 3 3-3`,key:`x25e72`}],[`path`,{d:`M6 10V5a2 2 0 0 1 2-2h2`,key:`15xut4`}],[`rect`,{x:`3`,y:`14`,width:`7`,height:`7`,rx:`1`,key:`1bkyp8`}]]),vn=k(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),yn=k(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),bn=k(`server-off`,[[`path`,{d:`M7 2h13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-5`,key:`bt2siv`}],[`path`,{d:`M10 10 2.5 2.5C2 2 2 2.5 2 5v3a2 2 0 0 0 2 2h6z`,key:`1hjrv1`}],[`path`,{d:`M22 17v-1a2 2 0 0 0-2-2h-1`,key:`1iynyr`}],[`path`,{d:`M4 14a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16.5l1-.5.5.5-8-8H4z`,key:`161ggg`}],[`path`,{d:`M6 18h.01`,key:`uhywen`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),xn=k(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),Sn=k(`settings-2`,[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]),Cn=k(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),wn=k(`share-2`,[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]),Tn=k(`square-split-vertical`,[[`path`,{d:`M5 8V5c0-1 1-2 2-2h10c1 0 2 1 2 2v3`,key:`1pi83i`}],[`path`,{d:`M19 16v3c0 1-1 2-2 2H7c-1 0-2-1-2-2v-3`,key:`ido5k7`}],[`line`,{x1:`4`,x2:`20`,y1:`12`,y2:`12`,key:`1e0a9i`}]]),En=k(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),Dn=k(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),On=k(`tag`,[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`,key:`vktsd0`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`kqv944`}]]),kn=k(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),An=k(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),jn=k(`undo-2`,[[`path`,{d:`M9 14 4 9l5-5`,key:`102s5s`}],[`path`,{d:`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`,key:`f3b9sd`}]]),Mn=k(`unlink`,[[`path`,{d:`m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71`,key:`yqzxt4`}],[`path`,{d:`m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71`,key:`4qinb0`}],[`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`5`,key:`1041cp`}],[`line`,{x1:`2`,x2:`5`,y1:`8`,y2:`8`,key:`14m1p5`}],[`line`,{x1:`16`,x2:`16`,y1:`19`,y2:`22`,key:`rzdirn`}],[`line`,{x1:`19`,x2:`22`,y1:`16`,y2:`16`,key:`ox905f`}]]),Nn=k(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),Pn=k(`whole-word`,[[`circle`,{cx:`7`,cy:`12`,r:`3`,key:`12clwm`}],[`path`,{d:`M10 9v6`,key:`17i7lo`}],[`circle`,{cx:`17`,cy:`12`,r:`3`,key:`gl7c2s`}],[`path`,{d:`M14 7v8`,key:`dl84cr`}],[`path`,{d:`M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1`,key:`lt2kga`}]]),Fn=k(`wifi-off`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}],[`path`,{d:`M5 12.859a10 10 0 0 1 5.17-2.69`,key:`1dl1wf`}],[`path`,{d:`M19 12.859a10 10 0 0 0-2.007-1.523`,key:`4k23kn`}],[`path`,{d:`M2 8.82a15 15 0 0 1 4.177-2.643`,key:`1grhjp`}],[`path`,{d:`M22 8.82a15 15 0 0 0-11.288-3.764`,key:`z3jwby`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),In=k(`zoom-in`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`11`,x2:`11`,y1:`8`,y2:`14`,key:`1vmskp`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),Ln=k(`zoom-out`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),Rn=Ze(),K=e(r(),1),zn=e(_(),1);function Bn(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var Vn=e=>{switch(e){case`success`:return Wn;case`info`:return Kn;case`warning`:return Gn;case`error`:return qn;default:return null}},Hn=Array(12).fill(0),Un=({visible:e,className:t})=>K.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},K.createElement(`div`,{className:`sonner-spinner`},Hn.map((e,t)=>K.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),Wn=K.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},K.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),Gn=K.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},K.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),Kn=K.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},K.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),qn=K.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},K.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),Jn=K.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`},K.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),K.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),Yn=()=>{let[e,t]=K.useState(document.hidden);return K.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},Xn=1,Zn=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:Xn++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],K.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if($n(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!K.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!K.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!K.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!K.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||Xn++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Qn=(e,t)=>{let n=t?.id||Xn++;return Zn.addToast({title:e,...t,id:n}),n},$n=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,er=Qn,tr=Object.assign(er,{success:Zn.success,info:Zn.info,warning:Zn.warning,error:Zn.error,custom:Zn.custom,message:Zn.message,promise:Zn.promise,dismiss:Zn.dismiss,loading:Zn.loading},{getHistory:()=>Zn.toasts,getToasts:()=>Zn.getActiveToasts()});Bn(`[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}`);function nr(e){return e.label!==void 0}var rr=3,ir=`24px`,ar=`16px`,or=4e3,sr=356,cr=14,lr=45,ur=200;function dr(...e){return e.filter(Boolean).join(` `)}function fr(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var pr=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:f,closeButton:p,style:m,cancelButtonStyle:h,actionButtonStyle:g,className:_=``,descriptionClassName:v=``,duration:y,position:b,gap:x,expandByDefault:S,classNames:C,icons:w,closeButtonAriaLabel:T=`Close toast`}=e,[E,D]=K.useState(null),[O,k]=K.useState(null),[ee,A]=K.useState(!1),[te,ne]=K.useState(!1),[re,j]=K.useState(!1),[M,N]=K.useState(!1),[ie,ae]=K.useState(!1),[P,F]=K.useState(0),[I,oe]=K.useState(0),L=K.useRef(n.duration||y||or),se=K.useRef(null),ce=K.useRef(null),le=c===0,ue=c+1<=o,de=n.type,fe=n.dismissible!==!1,pe=n.className||``,me=n.descriptionClassName||``,he=K.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),ge=K.useMemo(()=>n.closeButton??p,[n.closeButton,p]),R=K.useMemo(()=>n.duration||y||or,[n.duration,y]),_e=K.useRef(0),ve=K.useRef(0),ye=K.useRef(0),be=K.useRef(null),[z,xe]=b.split(`-`),Se=K.useMemo(()=>s.reduce((e,t,n)=>n>=he?e:e+t.height,0),[s,he]),Ce=Yn(),we=n.invert||t,Te=de===`loading`;ve.current=K.useMemo(()=>he*x+Se,[he,Se]),K.useEffect(()=>{L.current=R},[R]),K.useEffect(()=>{A(!0)},[]),K.useEffect(()=>{let e=ce.current;if(e){let t=e.getBoundingClientRect().height;return oe(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),K.useLayoutEffect(()=>{if(!ee)return;let e=ce.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,oe(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[ee,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let Ee=K.useCallback(()=>{ne(!0),F(ve.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},ur)},[n,d,a,ve]);K.useEffect(()=>{if(n.promise&&de===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||Ce?(()=>{if(ye.current<_e.current){let e=new Date().getTime()-_e.current;L.current-=e}ye.current=new Date().getTime()})():L.current!==1/0&&(_e.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),Ee()},L.current)),()=>clearTimeout(e)},[u,i,n,de,Ce,Ee]),K.useEffect(()=>{n.delete&&(Ee(),n.onDismiss==null||n.onDismiss.call(n,n))},[Ee,n.delete]);function De(){return w?.loading?K.createElement(`div`,{className:dr(C?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":de===`loading`},w.loading):K.createElement(Un,{className:dr(C?.loader,n?.classNames?.loader),visible:de===`loading`})}let Oe=n.icon||w?.[de]||Vn(de);return K.createElement(`li`,{tabIndex:0,ref:ce,className:dr(_,pe,C?.toast,n?.classNames?.toast,C?.default,C?.[de],n?.classNames?.[de]),"data-sonner-toast":``,"data-rich-colors":n.richColors??f,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":ee,"data-promise":!!n.promise,"data-swiped":ie,"data-removed":te,"data-visible":ue,"data-y-position":z,"data-x-position":xe,"data-index":c,"data-front":le,"data-swiping":re,"data-dismissible":fe,"data-type":de,"data-invert":we,"data-swipe-out":M,"data-swipe-direction":O,"data-expanded":!!(u||S&&ee),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${te?P:ve.current}px`,"--initial-height":S?`auto`:`${I}px`,...m,...n.style},onDragEnd:()=>{j(!1),D(null),be.current=null},onPointerDown:e=>{e.button!==2&&(Te||!fe||(se.current=new Date,F(ve.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(j(!0),be.current={x:e.clientX,y:e.clientY})))},onPointerUp:()=>{if(M||!fe)return;be.current=null;let e=Number(ce.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(ce.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-se.current?.getTime(),i=E===`x`?e:t,a=Math.abs(i)/r;if(Math.abs(i)>=lr||a>.11){F(ve.current),n.onDismiss==null||n.onDismiss.call(n,n),k(E===`x`?e>0?`right`:`left`:t>0?`down`:`up`),Ee(),N(!0);return}else{var o,s;(o=ce.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=ce.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`)}ae(!1),j(!1),D(null)},onPointerMove:t=>{var n,r;if(!be.current||!fe||window.getSelection()?.toString().length>0)return;let i=t.clientY-be.current.y,a=t.clientX-be.current.x,o=e.swipeDirections??fr(b);!E&&(Math.abs(a)>1||Math.abs(i)>1)&&D(Math.abs(a)>Math.abs(i)?`x`:`y`);let s={x:0,y:0},c=e=>1/(1.5+Math.abs(e)/20);if(E===`y`){if(o.includes(`top`)||o.includes(`bottom`))if(o.includes(`top`)&&i<0||o.includes(`bottom`)&&i>0)s.y=i;else{let e=i*c(i);s.y=Math.abs(e)<Math.abs(i)?e:i}}else if(E===`x`&&(o.includes(`left`)||o.includes(`right`)))if(o.includes(`left`)&&a<0||o.includes(`right`)&&a>0)s.x=a;else{let e=a*c(a);s.x=Math.abs(e)<Math.abs(a)?e:a}(Math.abs(s.x)>0||Math.abs(s.y)>0)&&ae(!0),(n=ce.current)==null||n.style.setProperty(`--swipe-amount-x`,`${s.x}px`),(r=ce.current)==null||r.style.setProperty(`--swipe-amount-y`,`${s.y}px`)}},ge&&!n.jsx&&de!==`loading`?K.createElement(`button`,{"aria-label":T,"data-disabled":Te,"data-close-button":!0,onClick:Te||!fe?()=>{}:()=>{Ee(),n.onDismiss==null||n.onDismiss.call(n,n)},className:dr(C?.closeButton,n?.classNames?.closeButton)},w?.close??Jn):null,(de||n.icon||n.promise)&&n.icon!==null&&(w?.[de]!==null||n.icon)?K.createElement(`div`,{"data-icon":``,className:dr(C?.icon,n?.classNames?.icon)},n.promise||n.type===`loading`&&!n.icon?n.icon||De():null,n.type===`loading`?null:Oe):null,K.createElement(`div`,{"data-content":``,className:dr(C?.content,n?.classNames?.content)},K.createElement(`div`,{"data-title":``,className:dr(C?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?K.createElement(`div`,{"data-description":``,className:dr(v,me,C?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),K.isValidElement(n.cancel)?n.cancel:n.cancel&&nr(n.cancel)?K.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||h,onClick:e=>{nr(n.cancel)&&fe&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),Ee())},className:dr(C?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,K.isValidElement(n.action)?n.action:n.action&&nr(n.action)?K.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||g,onClick:e=>{nr(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&Ee())},className:dr(C?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function mr(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function hr(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?ar:ir;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var gr=K.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:f,duration:p,style:m,visibleToasts:h=rr,toastOptions:g,dir:_=mr(),gap:v=cr,icons:y,containerAriaLabel:b=`Notifications`}=e,[x,S]=K.useState([]),C=K.useMemo(()=>n?x.filter(e=>e.toasterId===n):x.filter(e=>!e.toasterId),[x,n]),w=K.useMemo(()=>Array.from(new Set([i].concat(C.filter(e=>e.position).map(e=>e.position)))),[C,i]),[T,E]=K.useState([]),[D,O]=K.useState(!1),[k,ee]=K.useState(!1),[A,te]=K.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),ne=K.useRef(null),re=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),j=K.useRef(null),M=K.useRef(!1),N=K.useCallback(e=>{S(t=>(t.find(t=>t.id===e.id)?.delete||Zn.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return K.useEffect(()=>Zn.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{S(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{zn.flushSync(()=>{S(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[x]),K.useEffect(()=>{if(d!==`system`){te(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?te(`dark`):te(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{te(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{te(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),K.useEffect(()=>{x.length<=1&&O(!1)},[x]),K.useEffect(()=>{let e=e=>{if(a.every(t=>e[t]||e.code===t)){var t;O(!0),(t=ne.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===ne.current||ne.current?.contains(document.activeElement))&&O(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),K.useEffect(()=>{if(ne.current)return()=>{j.current&&(j.current.focus({preventScroll:!0}),j.current=null,M.current=!1)}},[ne.current]),K.createElement(`section`,{ref:t,"aria-label":`${b} ${re}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0},w.map((t,n)=>{let[i,a]=t.split(`-`);return C.length?K.createElement(`ol`,{key:t,dir:_===`auto`?mr():_,tabIndex:-1,ref:ne,className:c,"data-sonner-toaster":!0,"data-sonner-theme":A,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${T[0]?.height||0}px`,"--width":`${sr}px`,"--gap":`${v}px`,...m,...hr(l,u)},onBlur:e=>{M.current&&!e.currentTarget.contains(e.relatedTarget)&&(M.current=!1,j.current&&=(j.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||M.current||(M.current=!0,j.current=e.relatedTarget)},onMouseEnter:()=>O(!0),onMouseMove:()=>O(!0),onMouseLeave:()=>{k||O(!1)},onDragEnd:()=>O(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||ee(!0)},onPointerUp:()=>ee(!1)},C.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>K.createElement(pr,{key:n.id,icons:y,index:i,toast:n,defaultRichColors:f,duration:g?.duration??p,className:g?.className,descriptionClassName:g?.descriptionClassName,invert:r,visibleToasts:h,closeButton:g?.closeButton??s,interacting:k,position:t,style:g?.style,unstyled:g?.unstyled,classNames:g?.classNames,cancelButtonStyle:g?.cancelButtonStyle,actionButtonStyle:g?.actionButtonStyle,closeButtonAriaLabel:g?.closeButtonAriaLabel,removeToast:N,toasts:C.filter(e=>e.position==n.position),heights:T.filter(e=>e.position==n.position),setHeights:E,expandByDefault:o,gap:v,expanded:D,swipeDirections:e.swipeDirections}))):null}))}),q=n(),_r=({...e})=>{let t=Fe(e=>e.theme);return(0,q.jsx)(gr,{theme:t===`system`?window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:t,className:`toaster group`,icons:{success:(0,q.jsx)(lt,{className:`size-4`}),info:(0,q.jsx)(Ut,{className:`size-4`}),warning:(0,q.jsx)(An,{className:`size-4`}),error:(0,q.jsx)(sn,{className:`size-4`}),loading:(0,q.jsx)(G,{className:`size-4 animate-spin`})},style:{"--normal-bg":`var(--color-popover)`,"--normal-text":`var(--color-popover-foreground)`,"--normal-border":`var(--color-border)`,"--border-radius":`var(--radius)`},...e})};function vr({delayDuration:e=0,...t}){return(0,q.jsx)(C,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function yr(e,t){let n=getComputedStyle(e);return t*parseFloat(n.fontSize)}function br(e,t){let n=getComputedStyle(e.ownerDocument.body);return t*parseFloat(n.fontSize)}function xr(e){return e/100*window.innerHeight}function Sr(e){return e/100*window.innerWidth}function Cr(e){switch(typeof e){case`number`:return[e,`px`];case`string`:{let t=parseFloat(e);return e.endsWith(`%`)?[t,`%`]:e.endsWith(`px`)?[t,`px`]:e.endsWith(`rem`)?[t,`rem`]:e.endsWith(`em`)?[t,`em`]:e.endsWith(`vh`)?[t,`vh`]:e.endsWith(`vw`)?[t,`vw`]:[t,`%`]}}}function wr({groupSize:e,panelElement:t,styleProp:n}){let r,[i,a]=Cr(n);switch(a){case`%`:r=i/100*e;break;case`px`:r=i;break;case`rem`:r=br(t,i);break;case`em`:r=yr(t,i);break;case`vh`:r=xr(i);break;case`vw`:r=Sr(i);break}return r}function Tr(e){return parseFloat(e.toFixed(3))}function Er({group:e}){let{orientation:t,panels:n}=e;return n.reduce((e,n)=>(e+=t===`horizontal`?n.element.offsetWidth:n.element.offsetHeight,e),0)}function Dr(e){let{panels:t}=e,n=Er({group:e});return n===0?t.map(e=>({groupResizeBehavior:e.panelConstraints.groupResizeBehavior,collapsedSize:0,collapsible:e.panelConstraints.collapsible===!0,defaultSize:void 0,disabled:e.panelConstraints.disabled,minSize:0,maxSize:100,panelId:e.id})):t.map(e=>{let{element:t,panelConstraints:r}=e,i=0;r.collapsedSize!==void 0&&(i=Tr(wr({groupSize:n,panelElement:t,styleProp:r.collapsedSize})/n*100));let a;r.defaultSize!==void 0&&(a=Tr(wr({groupSize:n,panelElement:t,styleProp:r.defaultSize})/n*100));let o=0;r.minSize!==void 0&&(o=Tr(wr({groupSize:n,panelElement:t,styleProp:r.minSize})/n*100));let s=100;return r.maxSize!==void 0&&(s=Tr(wr({groupSize:n,panelElement:t,styleProp:r.maxSize})/n*100)),{groupResizeBehavior:r.groupResizeBehavior,collapsedSize:i,collapsible:r.collapsible===!0,defaultSize:a,disabled:r.disabled,minSize:o,maxSize:s,panelId:e.id}})}function Or(e,t=`Assertion error`){if(!e)throw Error(t)}function kr(e,t){return Array.from(t).sort(e===`horizontal`?Ar:jr)}function Ar(e,t){let n=e.element.offsetLeft-t.element.offsetLeft;return n===0?e.element.offsetWidth-t.element.offsetWidth:n}function jr(e,t){let n=e.element.offsetTop-t.element.offsetTop;return n===0?e.element.offsetHeight-t.element.offsetHeight:n}function Mr(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.ELEMENT_NODE}function Nr(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function Pr({orientation:e,rects:t,targetRect:n}){let r={x:n.x+n.width/2,y:n.y+n.height/2},i,a=Number.MAX_VALUE;for(let n of t){let{x:t,y:o}=Nr(r,n),s=e===`horizontal`?t:o;s<a&&(a=s,i=n)}return Or(i,`No rect found`),i}var Fr;function Ir(){return Fr===void 0&&(Fr=typeof matchMedia==`function`?!!matchMedia(`(pointer:coarse)`).matches:!1),Fr}function Lr(e){let{element:t,orientation:n,panels:r,separators:i}=e,a=kr(n,Array.from(t.children).filter(Mr).map(e=>({element:e}))).map(({element:e})=>e),o=[],s=!1,c=!1,l=-1,u=-1,d=0,f,p=[];{let e=-1;for(let t of a)t.hasAttribute(`data-panel`)&&(e++,t.ariaDisabled===null&&(d++,l===-1&&(l=e),u=e))}if(d>1){let t=-1;for(let d of a)if(d.hasAttribute(`data-panel`)){t++;let i=r.find(e=>e.element===d);if(i){if(f){let r=f.element.getBoundingClientRect(),a=d.getBoundingClientRect(),m;if(c){let e=n===`horizontal`?new DOMRect(r.right,r.top,0,r.height):new DOMRect(r.left,r.bottom,r.width,0),t=n===`horizontal`?new DOMRect(a.left,a.top,0,a.height):new DOMRect(a.left,a.top,a.width,0);switch(p.length){case 0:m=[e,t];break;case 1:{let i=p[0];m=[i,Pr({orientation:n,rects:[r,a],targetRect:i.element.getBoundingClientRect()})===r?t:e];break}default:m=p;break}}else m=p.length?p:[n===`horizontal`?new DOMRect(r.right,a.top,a.left-r.right,a.height):new DOMRect(a.left,r.bottom,a.width,a.top-r.bottom)];for(let n of m){let r=`width`in n?n:n.element.getBoundingClientRect(),a=Ir()?e.resizeTargetMinimumSize.coarse:e.resizeTargetMinimumSize.fine;if(r.width<a){let e=a-r.width;r=new DOMRect(r.x-e/2,r.y,r.width+e,r.height)}if(r.height<a){let e=a-r.height;r=new DOMRect(r.x,r.y-e/2,r.width,r.height+e)}!s&&!(t<=l||t>u)&&o.push({group:e,groupSize:Er({group:e}),panels:[f,i],separator:`width`in n?void 0:n,rect:r}),s=!1}}c=!1,f=i,p=[]}}else if(d.hasAttribute(`data-separator`)){d.ariaDisabled!==null&&(s=!0);let e=i.find(e=>e.element===d);e?p.push(e):(f=void 0,p=[])}else c=!0}return o}var Rr=class{#e={};addListener(e,t){let n=this.#e[e];return n===void 0?this.#e[e]=[t]:n.includes(t)||n.push(t),()=>{this.removeListener(e,t)}}emit(e,t){let n=this.#e[e];if(n!==void 0)if(n.length===1)n[0].call(null,t);else{let e=!1,r=null,i=Array.from(n);for(let n=0;n<i.length;n++){let a=i[n];try{a.call(null,t)}catch(t){r===null&&(e=!0,r=t)}}if(e)throw r}}removeAllListeners(){this.#e={}}removeListener(e,t){let n=this.#e[e];if(n!==void 0){let e=n.indexOf(t);e>=0&&n.splice(e,1)}}},zr=new Map,Br=new Rr;function Vr(e){zr=new Map(zr),zr.delete(e)}function Hr(e,t){for(let[t]of zr)if(t.id===e)return t}function Ur(e,t){for(let[t,n]of zr)if(t.id===e)return n;if(t)throw Error(`Could not find data for Group with id ${e}`)}function Wr(){return zr}function Gr(e,t){return Br.addListener(`groupChange`,n=>{n.group.id===e&&t(n)})}function Kr(e,t){let n=zr.get(e);zr=new Map(zr),zr.set(e,t),Br.emit(`groupChange`,{group:e,prev:n,next:t})}function qr(e,t,n){let r,i={x:1/0,y:1/0};for(let a of t){let t=Nr(n,a.rect);switch(e){case`horizontal`:t.x<=i.x&&(r=a,i=t);break;case`vertical`:t.y<=i.y&&(r=a,i=t);break}}return r?{distance:i,hitRegion:r}:void 0}function Jr(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function Yr(e,t){if(e===t)throw Error(`Cannot compare node with itself`);let n={a:ti(e),b:ti(t)},r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();Or(r,`Stacking order can only be calculated for elements with a common ancestor`);let i={a:ei($r(n.a)),b:ei($r(n.b))};if(i.a===i.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},i=e.length;for(;i--;){let n=e[i];if(n===t.a)return 1;if(n===t.b)return-1}}return Math.sign(i.a-i.b)}var Xr=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function Zr(e){let t=getComputedStyle(ni(e)??e).display;return t===`flex`||t===`inline-flex`}function Qr(e){let t=getComputedStyle(e);return!!(t.position===`fixed`||t.zIndex!==`auto`&&(t.position!==`static`||Zr(e))||+t.opacity<1||`transform`in t&&t.transform!==`none`||`webkitTransform`in t&&t.webkitTransform!==`none`||`mixBlendMode`in t&&t.mixBlendMode!==`normal`||`filter`in t&&t.filter!==`none`||`webkitFilter`in t&&t.webkitFilter!==`none`||`isolation`in t&&t.isolation===`isolate`||Xr.test(t.willChange)||t.webkitOverflowScrolling===`touch`)}function $r(e){let t=e.length;for(;t--;){let n=e[t];if(Or(n,`Missing node`),Qr(n))return n}return null}function ei(e){return e&&Number(getComputedStyle(e).zIndex)||0}function ti(e){let t=[];for(;e;)t.push(e),e=ni(e);return t}function ni(e){let{parentNode:t}=e;return Jr(t)?t.host:t}function ri(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function ii({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!Mr(n)||n.contains(e)||e.contains(n))return!0;if(Yr(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(ri(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function ai(e,t){let n=[];return t.forEach((t,r)=>{if(r.disabled)return;let i=Lr(r),a=qr(r.orientation,i,{x:e.clientX,y:e.clientY});a&&a.distance.x<=0&&a.distance.y<=0&&ii({groupElement:r.element,hitRegion:a.hitRegion.rect,pointerEventTarget:e.target})&&n.push(a.hitRegion)}),n}function oi(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}function si(e,t,n=0){return Math.abs(Tr(e)-Tr(t))<=n}function ci(e,t){return si(e,t)?0:e>t?1:-1}function li({overrideDisabledPanels:e,panelConstraints:t,prevSize:n,size:r}){let{collapsedSize:i=0,collapsible:a,disabled:o,maxSize:s=100,minSize:c=0}=t;if(o&&!e)return n;if(ci(r,c)<0)if(a){let e=(i+c)/2;r=ci(r,e)<0?i:c}else r=c;return r=Math.min(s,r),r=Tr(r),r}function ui({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:i,trigger:a}){if(si(e,0))return t;let o=a===`imperative-api`,s=Object.values(t),c=Object.values(i),l=[...s],[u,d]=r;Or(u!=null,`Invalid first pivot index`),Or(d!=null,`Invalid second pivot index`);let f=0;switch(a){case`keyboard`:{let t=e<0?d:u,r=n[t];Or(r,`Panel constraints not found for index ${t}`);let{collapsedSize:i=0,collapsible:a,minSize:o=0}=r;if(a){let n=s[t];if(Or(n!=null,`Previous layout not found for panel index ${t}`),si(n,i)){let t=o-n;ci(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?u:d,r=n[t];Or(r,`No panel constraints found for index ${t}`);let{collapsedSize:i=0,collapsible:a,minSize:o=0}=r;if(a){let n=s[t];if(Or(n!=null,`Previous layout not found for panel index ${t}`),si(n,o)){let t=n-i;ci(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}break;default:{let t=e<0?d:u,r=n[t];Or(r,`Panel constraints not found for index ${t}`);let i=s[t],{collapsible:a,collapsedSize:o,minSize:c}=r;if(a&&ci(i,c)<0)if(e>0){let t=c-o,n=t/2;ci(i+e,c)<0&&(e=ci(e,n)<=0?0:t)}else{let t=c-o,n=100-t/2;ci(i-e,c)<0&&(e=ci(100+e,n)>0?0:-t)}break}}{let t=e<0?1:-1,r=e<0?d:u,i=0;for(;;){let e=s[r];Or(e!=null,`Previous layout not found for panel index ${r}`);let a=li({overrideDisabledPanels:o,panelConstraints:n[r],prevSize:e,size:100})-e;if(i+=a,r+=t,r<0||r>=n.length)break}let a=Math.min(Math.abs(e),Math.abs(i));e=e<0?0-a:a}{let t=e<0?u:d;for(;t>=0&&t<n.length;){let r=Math.abs(e)-Math.abs(f),i=s[t];Or(i!=null,`Previous layout not found for panel index ${t}`);let a=i-r,c=li({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:i,size:a});if(!si(i,c)&&(f+=i-c,l[t]=c,f.toFixed(3).localeCompare(Math.abs(e).toFixed(3),void 0,{numeric:!0})>=0))break;e<0?t--:t++}}if(oi(c,l))return i;{let t=e<0?d:u,r=s[t];Or(r!=null,`Previous layout not found for panel index ${t}`);let i=r+f,a=li({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:r,size:i});if(l[t]=a,!si(a,i)){let t=i-a,r=e<0?d:u;for(;r>=0&&r<n.length;){let i=l[r];Or(i!=null,`Previous layout not found for panel index ${r}`);let a=i+t,s=li({overrideDisabledPanels:o,panelConstraints:n[r],prevSize:i,size:a});if(si(i,s)||(t-=s-i,l[r]=s),si(t,0))break;e>0?r--:r++}}}if(!si(Object.values(l).reduce((e,t)=>t+e,0),100,.1))return i;let p=Object.keys(i);return l.reduce((e,t,n)=>(e[p[n]]=t,e),{})}function di(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(t[n]===void 0||ci(e[n],t[n])!==0)return!1;return!0}function fi({layout:e,panelConstraints:t}){let n=Object.values(e),r=[...n],i=r.reduce((e,t)=>e+t,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(e=>`${e}%`).join(`, `)}`);if(!si(i,100)&&r.length>0)for(let e=0;e<t.length;e++){let t=r[e];Or(t!=null,`No layout data found for index ${e}`),r[e]=100/i*t}let a=0;for(let e=0;e<t.length;e++){let i=n[e];Or(i!=null,`No layout data found for index ${e}`);let o=r[e];Or(o!=null,`No layout data found for index ${e}`);let s=li({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:i,size:o});o!=s&&(a+=o-s,r[e]=s)}if(!si(a,0))for(let e=0;e<t.length;e++){let n=r[e];Or(n!=null,`No layout data found for index ${e}`);let i=n+a,o=li({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:n,size:i});if(n!==o&&(a-=o-n,r[e]=o,si(a,0)))break}let o=Object.keys(e);return r.reduce((e,t,n)=>(e[o[n]]=t,e),{})}function pi({groupId:e,panelId:t}){let n=()=>{let t=Wr();for(let[n,{defaultLayoutDeferred:r,derivedPanelConstraints:i,layout:a,groupSize:o,separatorToPanels:s}]of t)if(n.id===e)return{defaultLayoutDeferred:r,derivedPanelConstraints:i,group:n,groupSize:o,layout:a,separatorToPanels:s};throw Error(`Group ${e} not found`)},r=()=>{let e=n().derivedPanelConstraints.find(e=>e.panelId===t);if(e!==void 0)return e;throw Error(`Panel constraints not found for Panel ${t}`)},i=()=>{let e=n().group.panels.find(e=>e.id===t);if(e!==void 0)return e;throw Error(`Layout not found for Panel ${t}`)},a=()=>{let e=n().layout[t];if(e!==void 0)return e;throw Error(`Layout not found for Panel ${t}`)},o=e=>{let r=a();if(e===r)return;let{defaultLayoutDeferred:i,derivedPanelConstraints:o,group:s,groupSize:c,layout:l,separatorToPanels:u}=n(),d=s.panels.findIndex(e=>e.id===t),f=d===s.panels.length-1,p=fi({layout:ui({delta:f?r-e:e-r,initialLayout:l,panelConstraints:o,pivotIndices:f?[d-1,d]:[d,d+1],prevLayout:l,trigger:`imperative-api`}),panelConstraints:o});di(l,p)||Kr(s,{defaultLayoutDeferred:i,derivedPanelConstraints:o,groupSize:c,layout:p,separatorToPanels:u})};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=r(),{mutableValues:n}=i(),s=a();e&&s!==t&&(n.expandToSize=s,o(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:n}=r(),{mutableValues:s}=i(),c=a();if(e&&c===t){let e=s.expandToSize??n;e===0&&(e=1),o(e)}},getSize:()=>{let{group:e}=n(),t=a(),{element:r}=i();return{asPercentage:t,inPixels:e.orientation===`horizontal`?r.offsetWidth:r.offsetHeight}},isCollapsed:()=>{let{collapsible:e,collapsedSize:t}=r(),n=a();return e&&si(t,n)},resize:e=>{let{group:t}=n(),{element:r}=i(),a=Er({group:t});o(Tr(wr({groupSize:a,panelElement:r,styleProp:e})/a*100))}}}function mi(e){e.defaultPrevented||ai(e,Wr()).forEach(t=>{if(t.separator){let n=t.panels.find(e=>e.panelConstraints.defaultSize!==void 0);if(n){let r=n.panelConstraints.defaultSize,i=pi({groupId:t.group.id,panelId:n.id});i&&r!==void 0&&(i.resize(r),e.preventDefault())}}})}function hi(e){let t=Wr();for(let[n]of t)if(n.separators.some(t=>t.element===e))return n;throw Error(`Could not find parent Group for separator element`)}function gi({groupId:e}){let t=()=>{let t=Wr();for(let[n,r]of t)if(n.id===e)return{group:n,...r};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){let{defaultLayoutDeferred:e,layout:n}=t();return e?{}:n},setLayout(e){let{defaultLayoutDeferred:n,derivedPanelConstraints:r,group:i,groupSize:a,layout:o,separatorToPanels:s}=t(),c=fi({layout:e,panelConstraints:r});return n?o:(di(o,c)||Kr(i,{defaultLayoutDeferred:n,derivedPanelConstraints:r,groupSize:a,layout:c,separatorToPanels:s}),c)}}}function _i(e,t){let n=hi(e),r=Ur(n.id,!0),i=n.separators.find(t=>t.element===e);Or(i,`Matching separator not found`);let a=r.separatorToPanels.get(i);Or(a,`Matching panels not found`);let o=a.map(e=>n.panels.indexOf(e)),s=gi({groupId:n.id}).getLayout(),c=fi({layout:ui({delta:t,initialLayout:s,panelConstraints:r.derivedPanelConstraints,pivotIndices:o,prevLayout:s,trigger:`keyboard`}),panelConstraints:r.derivedPanelConstraints});di(s,c)||Kr(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedPanelConstraints:r.derivedPanelConstraints,groupSize:r.groupSize,layout:c,separatorToPanels:r.separatorToPanels})}function vi(e){if(e.defaultPrevented)return;let t=e.currentTarget,n=hi(t);if(!n.disabled)switch(e.key){case`ArrowDown`:e.preventDefault(),n.orientation===`vertical`&&_i(t,5);break;case`ArrowLeft`:e.preventDefault(),n.orientation===`horizontal`&&_i(t,-5);break;case`ArrowRight`:e.preventDefault(),n.orientation===`horizontal`&&_i(t,5);break;case`ArrowUp`:e.preventDefault(),n.orientation===`vertical`&&_i(t,-5);break;case`End`:e.preventDefault(),_i(t,100);break;case`Enter`:{e.preventDefault();let n=hi(t),{derivedPanelConstraints:r,layout:i,separatorToPanels:a}=Ur(n.id,!0),o=n.separators.find(e=>e.element===t);Or(o,`Matching separator not found`);let s=a.get(o);Or(s,`Matching panels not found`);let c=s[0],l=r.find(e=>e.panelId===c.id);if(Or(l,`Panel metadata not found`),l.collapsible){let e=i[c.id];_i(t,(l.collapsedSize===e?n.mutableState.expandedPanelSizes[c.id]??l.minSize:l.collapsedSize)-e)}break}case`F6`:{e.preventDefault();let n=hi(t).separators.map(e=>e.element),r=Array.from(n).findIndex(t=>t===e.currentTarget);Or(r!==null,`Index not found`),n[e.shiftKey?r>0?r-1:n.length-1:r+1<n.length?r+1:0].focus({preventScroll:!0});break}case`Home`:e.preventDefault(),_i(t,-100);break}}var yi={cursorFlags:0,state:`inactive`},bi=new Rr;function xi(){return yi}function Si(e){return bi.addListener(`change`,e)}function Ci(e){let t=yi,n={...yi};n.cursorFlags=e,yi=n,bi.emit(`change`,{prev:t,next:n})}function wi(e){let t=yi;yi=e,bi.emit(`change`,{prev:t,next:e})}function Ti(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=Wr(),n=ai(e,t),r=new Map,i=!1;n.forEach(e=>{e.separator&&(i||(i=!0,e.separator.element.focus({preventScroll:!0})));let n=t.get(e.group);n&&r.set(e.group,n.layout)}),wi({cursorFlags:0,hitRegions:n,initialLayoutMap:r,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:`active`}),n.length&&e.preventDefault()}var J=e=>e,Ei=()=>{},Di=1,Oi=2,ki=4,Ai=8,ji=3,Mi=12,Ni;function Pi(){return Ni===void 0&&(Ni=!1,typeof window<`u`&&(window.navigator.userAgent.includes(`Chrome`)||window.navigator.userAgent.includes(`Firefox`))&&(Ni=!0)),Ni}function Fi({cursorFlags:e,groups:t,state:n}){let r=0,i=0;switch(n){case`active`:case`hover`:t.forEach(e=>{if(!e.mutableState.disableCursor)switch(e.orientation){case`horizontal`:r++;break;case`vertical`:i++;break}})}if(!(r===0&&i===0)){switch(n){case`active`:if(e&&Pi()){let t=(e&Di)!==0,n=(e&Oi)!==0,r=(e&ki)!==0,i=(e&Ai)!==0;if(t)return r?`se-resize`:i?`ne-resize`:`e-resize`;if(n)return r?`sw-resize`:i?`nw-resize`:`w-resize`;if(r)return`s-resize`;if(i)return`n-resize`}break}return Pi()?r>0&&i>0?`move`:r>0?`ew-resize`:`ns-resize`:r>0&&i>0?`grab`:r>0?`col-resize`:`row-resize`}}var Ii=new WeakMap;function Li(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Ii.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));let r=xi();switch(r.state){case`active`:case`hover`:{let e=Fi({cursorFlags:r.cursorFlags,groups:r.hitRegions.map(e=>e.group),state:r.state}),i=`*, *:hover {cursor: ${e} !important; }`;if(t===i)return;t=i,e?n.cssRules.length===0?n.insertRule(i):n.replaceSync(i):n.cssRules.length===1&&n.deleteRule(0);break}case`inactive`:t=void 0,n.cssRules.length===1&&n.deleteRule(0);break}Ii.set(e,{prevStyle:t,styleSheet:n})}function Ri({document:e,event:t,hitRegions:n,initialLayoutMap:r,mountedGroups:i,pointerDownAtPoint:a,prevCursorFlags:o}){let s=0;n.forEach(e=>{let{group:n,groupSize:o}=e,{orientation:c,panels:l}=n,{disableCursor:u}=n.mutableState,d=0;d=a?c===`horizontal`?(t.clientX-a.x)/o*100:(t.clientY-a.y)/o*100:c===`horizontal`?t.clientX<0?-100:100:t.clientY<0?-100:100;let f=r.get(n),p=i.get(n);if(!f||!p)return;let{defaultLayoutDeferred:m,derivedPanelConstraints:h,groupSize:g,layout:_,separatorToPanels:v}=p;if(h&&_&&v){let t=ui({delta:d,initialLayout:f,panelConstraints:h,pivotIndices:e.panels.map(e=>l.indexOf(e)),prevLayout:_,trigger:`mouse-or-touch`});if(di(t,_)){if(d!==0&&!u)switch(c){case`horizontal`:s|=d<0?Di:Oi;break;case`vertical`:s|=d<0?ki:Ai;break}}else Kr(e.group,{defaultLayoutDeferred:m,derivedPanelConstraints:h,groupSize:g,layout:t,separatorToPanels:v})}});let c=0;t.movementX===0?c|=o&ji:c|=s&ji,t.movementY===0?c|=o&Mi:c|=s&Mi,Ci(c),Li(e)}function zi(e){let t=Wr(),n=xi();switch(n.state){case`active`:Ri({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function Bi(e){if(e.defaultPrevented)return;let t=xi(),n=Wr();switch(t.state){case`active`:if(e.buttons===0){wi({cursorFlags:0,state:`inactive`}),t.hitRegions.forEach(e=>{let t=Ur(e.group.id,!0);Kr(e.group,t)});return}Ri({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break;default:{let r=ai(e,n);r.length===0?t.state!==`inactive`&&wi({cursorFlags:0,state:`inactive`}):wi({cursorFlags:0,hitRegions:r,state:`hover`}),Li(e.currentTarget);break}}}function Vi(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(xi().state){case`hover`:wi({cursorFlags:0,state:`inactive`})}}function Hi(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=xi();switch(t.state){case`active`:wi({cursorFlags:0,state:`inactive`}),t.hitRegions.length>0&&(Li(e.currentTarget),t.hitRegions.forEach(e=>{let t=Ur(e.group.id,!0);Kr(e.group,t)}),e.preventDefault())}}function Ui(e){let t=0,n=0,r={};for(let i of e)if(i.defaultSize!==void 0){t++;let e=Tr(i.defaultSize);n+=e,r[i.panelId]=e}else r[i.panelId]=void 0;let i=e.length-t;if(i!==0){let t=Tr((100-n)/i);for(let n of e)n.defaultSize===void 0&&(r[n.panelId]=t)}return r}function Wi(e,t,n){if(!n[0])return;let r=e.panels.find(e=>e.element===t);if(!r||!r.onResize)return;let i=Er({group:e}),a=e.orientation===`horizontal`?r.element.offsetWidth:r.element.offsetHeight,o=r.mutableValues.prevSize,s={asPercentage:Tr(a/i*100),inPixels:a};r.mutableValues.prevSize=s,r.onResize(s,r.id,o)}function Gi(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function Ki({group:e,nextGroupSize:t,prevGroupSize:n,prevLayout:r}){if(n<=0||t<=0||n===t)return r;let i=0,a=0,o=!1,s=new Map,c=[];for(let l of e.panels){let e=r[l.id]??0;switch(l.panelConstraints.groupResizeBehavior){case`preserve-pixel-size`:{o=!0;let r=Tr(e/100*n/t*100);s.set(l.id,r),i+=r;break}default:c.push(l.id),a+=e;break}}if(!o||c.length===0)return r;let l=100-i,u={...r};if(s.forEach((e,t)=>{u[t]=e}),a>0)for(let e of c)u[e]=Tr((r[e]??0)/a*l);else{let e=Tr(l/c.length);for(let t of c)u[t]=e}return u}function qi(e,t){let n=e.map(e=>e.id),r=Object.keys(t);if(n.length!==r.length)return!1;for(let e of n)if(!r.includes(e))return!1;return!0}var Ji=new Map;function Yi(e){let t=!0;Or(e.element.ownerDocument.defaultView,`Cannot register an unmounted Group`);let n=e.element.ownerDocument.defaultView.ResizeObserver,r=new Set,i=new Set,a=new n(n=>{for(let r of n){let{borderBoxSize:n,target:i}=r;if(i===e.element){if(t){let t=Er({group:e});if(t===0)return;let n=Ur(e.id);if(!n)return;let r=Dr(e),i=n.defaultLayoutDeferred?Ui(r):n.layout,a=fi({layout:Ki({group:e,nextGroupSize:t,prevGroupSize:n.groupSize,prevLayout:i}),panelConstraints:r});if(!n.defaultLayoutDeferred&&di(n.layout,a)&&Gi(n.derivedPanelConstraints,r)&&n.groupSize===t)return;Kr(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,groupSize:t,layout:a,separatorToPanels:n.separatorToPanels})}}else Wi(e,i,n)}});a.observe(e.element),e.panels.forEach(e=>{Or(!r.has(e.id),`Panel ids must be unique; id "${e.id}" was used more than once`),r.add(e.id),e.onResize&&a.observe(e.element)});let o=Er({group:e}),s=Dr(e),c=e.panels.map(({id:e})=>e).join(`,`),l=e.mutableState.defaultLayout;l&&(qi(e.panels,l)||(l=void 0));let u=fi({layout:e.mutableState.layouts[c]??l??Ui(s),panelConstraints:s}),d=e.element.ownerDocument;Ji.set(d,(Ji.get(d)??0)+1);let f=new Map;return Lr(e).forEach(e=>{e.separator&&f.set(e.separator,e.panels)}),Kr(e,{defaultLayoutDeferred:o===0,derivedPanelConstraints:s,groupSize:o,layout:u,separatorToPanels:f}),e.separators.forEach(e=>{Or(!i.has(e.id),`Separator ids must be unique; id "${e.id}" was used more than once`),i.add(e.id),e.element.addEventListener(`keydown`,vi)}),Ji.get(d)===1&&(d.addEventListener(`dblclick`,mi,!0),d.addEventListener(`pointerdown`,Ti,!0),d.addEventListener(`pointerleave`,zi),d.addEventListener(`pointermove`,Bi),d.addEventListener(`pointerout`,Vi),d.addEventListener(`pointerup`,Hi,!0)),function(){t=!1,Ji.set(d,Math.max(0,(Ji.get(d)??0)-1)),Vr(e),e.separators.forEach(e=>{e.element.removeEventListener(`keydown`,vi)}),Ji.get(d)||(d.removeEventListener(`dblclick`,mi,!0),d.removeEventListener(`pointerdown`,Ti,!0),d.removeEventListener(`pointerleave`,zi),d.removeEventListener(`pointermove`,Bi),d.removeEventListener(`pointerout`,Vi),d.removeEventListener(`pointerup`,Hi,!0)),a.disconnect()}}function Xi(){let[e,t]=(0,K.useState)({});return[e,(0,K.useCallback)(()=>t({}),[])]}function Zi(e){let t=(0,K.useId)();return`${e??t}`}var Qi=typeof window<`u`?K.useLayoutEffect:K.useEffect;function $i(e){let t=(0,K.useRef)(e);return Qi(()=>{t.current=e},[e]),(0,K.useCallback)((...e)=>t.current?.(...e),[t])}function ea(...e){return $i(t=>{e.forEach(e=>{if(e)switch(typeof e){case`function`:e(t);break;case`object`:e.current=t;break}})})}function ta(e){let t=(0,K.useRef)({...e});return Qi(()=>{for(let n in e)t.current[n]=e[n]},[e]),t.current}var na=(0,K.createContext)(null);function ra(e,t){let n=(0,K.useRef)({getLayout:()=>({}),setLayout:J});(0,K.useImperativeHandle)(t,()=>n.current,[]),Qi(()=>{Object.assign(n.current,gi({groupId:e}))})}function ia({children:e,className:t,defaultLayout:n,disableCursor:r,disabled:i,elementRef:a,groupRef:o,id:s,onLayoutChange:c,onLayoutChanged:l,orientation:u=`horizontal`,resizeTargetMinimumSize:d={coarse:20,fine:10},style:f,...p}){let m=(0,K.useRef)({onLayoutChange:{},onLayoutChanged:{}}),h=$i(e=>{di(m.current.onLayoutChange,e)||(m.current.onLayoutChange=e,c?.(e))}),g=$i(e=>{di(m.current.onLayoutChanged,e)||(m.current.onLayoutChanged=e,l?.(e))}),_=Zi(s),v=(0,K.useRef)(null),[y,b]=Xi(),x=(0,K.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:d,separators:[]}),S=ea(v,a);ra(_,o);let C=$i((e,t)=>{let r=xi(),i=Hr(e),a=Ur(e);if(a){let e=!1;switch(r.state){case`active`:e=r.hitRegions.some(e=>e.group===i);break}return{flexGrow:a.layout[t]??1,pointerEvents:e?`none`:void 0}}return{flexGrow:n?.[t]??1}}),w=ta({defaultLayout:n,disableCursor:r}),T=(0,K.useMemo)(()=>({get disableCursor(){return!!w.disableCursor},getPanelStyles:C,id:_,orientation:u,registerPanel:e=>{let t=x.current;return t.panels=kr(u,[...t.panels,e]),b(),()=>{t.panels=t.panels.filter(t=>t!==e),b()}},registerSeparator:e=>{let t=x.current;return t.separators=kr(u,[...t.separators,e]),b(),()=>{t.separators=t.separators.filter(t=>t!==e),b()}},togglePanelDisabled:(e,t)=>{let n=x.current.panels.find(t=>t.id===e);n&&(n.panelConstraints.disabled=t);let r=Hr(_),i=Ur(_);r&&i&&Kr(r,{...i,derivedPanelConstraints:Dr(r)})},toggleSeparatorDisabled:(e,t)=>{let n=x.current.separators.find(t=>t.id===e);n&&(n.disabled=t)}}),[C,_,b,u,w]),E=(0,K.useRef)(null);return Qi(()=>{let e=v.current;if(e===null)return;let t=x.current,n;if(w.defaultLayout!==void 0&&Object.keys(w.defaultLayout).length===t.panels.length){n={};for(let e of t.panels){let t=w.defaultLayout[e.id];t!==void 0&&(n[e.id]=t)}}let r={disabled:!!i,element:e,id:_,mutableState:{defaultLayout:n,disableCursor:!!w.disableCursor,expandedPanelSizes:x.current.lastExpandedPanelSizes,layouts:x.current.layouts},orientation:u,panels:t.panels,resizeTargetMinimumSize:t.resizeTargetMinimumSize,separators:t.separators};E.current=r;let a=Yi(r),{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:c}=Ur(r.id,!0);!o&&s.length>0&&(h(c),g(c));let l=Gr(_,e=>{let{defaultLayoutDeferred:t,derivedPanelConstraints:n,layout:i}=e.next;if(t||n.length===0)return;let a=r.panels.map(({id:e})=>e).join(`,`);r.mutableState.layouts[a]=i,n.forEach(t=>{if(t.collapsible){let{layout:n}=e.prev??{};if(n){let e=si(t.collapsedSize,i[t.panelId]),a=si(t.collapsedSize,n[t.panelId]);e&&!a&&(r.mutableState.expandedPanelSizes[t.panelId]=n[t.panelId])}}});let o=xi().state!==`active`;h(i),o&&g(i)});return()=>{E.current=null,a(),l()}},[i,_,g,h,u,y,w]),(0,K.useEffect)(()=>{let e=E.current;e&&(e.mutableState.defaultLayout=n,e.mutableState.disableCursor=!!r)}),(0,q.jsx)(na.Provider,{value:T,children:(0,q.jsx)(`div`,{...p,className:t,"data-group":!0,"data-testid":_,id:_,ref:S,style:{height:`100%`,width:`100%`,overflow:`hidden`,...f,display:`flex`,flexDirection:u===`horizontal`?`row`:`column`,flexWrap:`nowrap`,touchAction:u===`horizontal`?`pan-y`:`pan-x`},children:e})})}ia.displayName=`Group`;function aa(){let e=(0,K.useContext)(na);return Or(e,`Group Context not found; did you render a Panel or Separator outside of a Group?`),e}function oa(e,t){let{id:n}=aa(),r=(0,K.useRef)({collapse:Ei,expand:Ei,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:Ei});(0,K.useImperativeHandle)(t,()=>r.current,[]),Qi(()=>{Object.assign(r.current,pi({groupId:n,panelId:e}))})}function sa({children:e,className:t,collapsedSize:n=`0%`,collapsible:r=!1,defaultSize:i,disabled:a,elementRef:o,groupResizeBehavior:s=`preserve-relative-size`,id:c,maxSize:l=`100%`,minSize:u=`0%`,onResize:d,panelRef:f,style:p,...m}){let h=!!c,g=Zi(c),_=ta({disabled:a}),v=(0,K.useRef)(null),y=ea(v,o),{getPanelStyles:b,id:x,orientation:S,registerPanel:C,togglePanelDisabled:w}=aa(),T=d!==null,E=$i((e,t,n)=>{d?.(e,c,n)});Qi(()=>{let e=v.current;if(e!==null)return C({element:e,id:g,idIsStable:h,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:T?E:void 0,panelConstraints:{groupResizeBehavior:s,collapsedSize:n,collapsible:r,defaultSize:i,disabled:_.disabled,maxSize:l,minSize:u}})},[s,n,r,i,T,g,h,l,u,E,C,_]),(0,K.useEffect)(()=>{w(g,!!a)},[a,g,w]),oa(g,f);let D=(0,K.useSyncExternalStore)(e=>Gr(x,e),()=>JSON.stringify(b(x,g)),()=>JSON.stringify(b(x,g)));return(0,q.jsx)(`div`,{...m,"aria-disabled":a||void 0,"data-panel":!0,"data-testid":g,id:g,ref:y,style:{...ca,display:`flex`,flexBasis:0,flexShrink:1,overflow:`visible`,...JSON.parse(D)},children:(0,q.jsx)(`div`,{className:t,style:{maxHeight:`100%`,maxWidth:`100%`,flexGrow:1,overflow:`auto`,...p,touchAction:S===`horizontal`?`pan-y`:`pan-x`},children:e})})}sa.displayName=`Panel`;var ca={minHeight:0,maxHeight:`100%`,height:`auto`,minWidth:0,maxWidth:`100%`,width:`auto`,border:`none`,borderWidth:0,padding:0,margin:0};function la({layout:e,panelConstraints:t,panelId:n,panelIndex:r}){let i,a,o=e[n],s=t.find(e=>e.panelId===n);if(s){let c=s.maxSize,l=s.collapsible?s.collapsedSize:s.minSize,u=[r,r+1];a=fi({layout:ui({delta:l-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n],i=fi({layout:ui({delta:c-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:a,valueNow:o}}function ua({children:e,className:t,disabled:n,elementRef:r,id:i,style:a,...o}){let s=Zi(i),c=ta({disabled:n}),[l,u]=(0,K.useState)({}),[d,f]=(0,K.useState)(`inactive`),p=(0,K.useRef)(null),m=ea(p,r),{disableCursor:h,id:g,orientation:_,registerSeparator:v,toggleSeparatorDisabled:y}=aa(),b=_===`horizontal`?`vertical`:`horizontal`;Qi(()=>{let e=p.current;if(e!==null){let t={disabled:c.disabled,element:e,id:s},n=v(t),r=Si(e=>{f(e.next.state!==`inactive`&&e.next.hitRegions.some(e=>e.separator===t)?e.next.state:`inactive`)}),i=Gr(g,e=>{let{derivedPanelConstraints:n,layout:r,separatorToPanels:i}=e.next,a=i.get(t);if(a){let e=a[0],t=a.indexOf(e);u(la({layout:r,panelConstraints:n,panelId:e.id,panelIndex:t}))}});return()=>{r(),i(),n()}}},[g,s,v,c]),(0,K.useEffect)(()=>{y(s,!!n)},[n,s,y]);let x;return n&&!h&&(x=`not-allowed`),(0,q.jsx)(`div`,{...o,"aria-controls":l.valueControls,"aria-disabled":n||void 0,"aria-orientation":b,"aria-valuemax":l.valueMax,"aria-valuemin":l.valueMin,"aria-valuenow":l.valueNow,children:e,className:t,"data-separator":n?`disabled`:d,"data-testid":s,id:s,ref:m,role:`separator`,style:{flexBasis:`auto`,cursor:x,...a,flexGrow:0,flexShrink:0,touchAction:`none`},tabIndex:n?void 0:0})}ua.displayName=`Separator`;function da(e){let[t,n]=(0,K.useState)(()=>typeof window<`u`?window.matchMedia(e).matches:!1);return(0,K.useEffect)(()=>{let t=window.matchMedia(e),r=e=>n(e.matches);return t.addEventListener(`change`,r),n(t.matches),()=>t.removeEventListener(`change`,r)},[e]),t}function fa(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<7?`${a}d ago`:t.toLocaleDateString(void 0,{month:`short`,day:`numeric`})}catch{return``}}function pa(e,t){let[n,r]=(0,K.useState)(e);return(0,K.useEffect)(()=>{let n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n}function ma(e){let[t,n]=(0,K.useState)([]),[r,i]=(0,K.useState)({}),a=(0,K.useCallback)(async()=>{if(e)try{let t=await V.get(`${B(e)}/tags`);n(t.tags),i(t.counts)}catch{}},[e]);return(0,K.useEffect)(()=>{a()},[a]),{projectTags:t,tagCounts:r,loadTags:a}}function ha({projectTags:e,tagCounts:t,totalCount:n,selectedTagId:r,onSelect:i}){return e.length===0?null:(0,q.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1.5 overflow-x-auto scrollbar-none`,children:[(0,q.jsxs)(`button`,{onClick:()=>i(null),className:`shrink-0 rounded-md border px-2 py-1 text-[10px] transition-colors ${r===null?`bg-primary/20 border-primary text-primary`:`border-border bg-surface text-text-secondary hover:bg-surface-elevated`}`,children:[`All (`,n,`)`]}),e.map(e=>(0,q.jsxs)(`button`,{onClick:()=>i(r===e.id?null:e.id),className:`shrink-0 flex items-center gap-1 rounded-md border px-2 py-1 text-[10px] transition-colors ${r===e.id?`border-current`:`border-border bg-surface hover:bg-surface-elevated`}`,style:r===e.id?{backgroundColor:e.color+`20`,color:e.color,borderColor:e.color}:void 0,children:[(0,q.jsx)(`span`,{className:`size-2 rounded-full shrink-0`,style:{backgroundColor:e.color}}),e.name,` (`,t[e.id]??0,`)`]},e.id))]})}function ga({...e}){return(0,q.jsx)(m,{"data-slot":`context-menu`,...e})}function _a({...e}){return(0,q.jsx)(O,{"data-slot":`context-menu-trigger`,...e})}function va({...e}){return(0,q.jsx)(l,{"data-slot":`context-menu-sub`,...e})}function ya({className:e,inset:t,children:n,...r}){return(0,q.jsxs)(h,{"data-slot":`context-menu-sub-trigger`,"data-inset":t,className:H(`flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground`,e),...r,children:[n,(0,q.jsx)(pe,{className:`ml-auto`})]})}function ba({className:e,...t}){return(0,q.jsx)(u,{"data-slot":`context-menu-sub-content`,className:H(`z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,e),...t})}function xa({className:e,...t}){return(0,q.jsx)(f,{children:(0,q.jsx)(x,{"data-slot":`context-menu-content`,className:H(`z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,e),...t})})}function Sa({className:e,inset:t,variant:n=`default`,...r}){return(0,q.jsx)(d,{"data-slot":`context-menu-item`,"data-inset":t,"data-variant":n,className:H(`relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!`,e),...r})}function Ca({className:e,...t}){return(0,q.jsx)(c,{"data-slot":`context-menu-separator`,className:H(`-mx-1 my-1 h-px bg-border`,e),...t})}function wa({session:e,projectName:t,projectTags:n,children:r,onTogglePin:i,onStartEditing:a,onDeleteSession:o,onTagChanged:s}){let c=(0,K.useCallback)(async r=>{try{if(r){await V.patch(`${B(t)}/chat/sessions/${e.id}/tag`,{tagId:r});let i=n.find(e=>e.id===r);i&&s(e.id,{id:i.id,name:i.name,color:i.color})}else await V.del(`${B(t)}/chat/sessions/${e.id}/tag`),s(e.id,null)}catch{}},[e.id,t,n,s]);return(0,q.jsxs)(ga,{children:[(0,q.jsx)(_a,{asChild:!0,children:r}),(0,q.jsxs)(xa,{children:[(0,q.jsxs)(Sa,{onClick:t=>i(t,e),children:[e.pinned?(0,q.jsx)(we,{className:`size-3.5 mr-2`}):(0,q.jsx)(Ce,{className:`size-3.5 mr-2`}),e.pinned?`Unpin`:`Pin`]}),a&&(0,q.jsxs)(Sa,{onClick:t=>a(e,t),children:[(0,q.jsx)(re,{className:`size-3.5 mr-2`}),`Rename`]}),n.length>0&&(0,q.jsxs)(va,{children:[(0,q.jsxs)(ya,{children:[(0,q.jsx)(On,{className:`size-3.5 mr-2`}),`Set Tag`]}),(0,q.jsxs)(ba,{children:[n.map(t=>(0,q.jsxs)(Sa,{onClick:()=>c(t.id),children:[(0,q.jsx)(`span`,{className:`size-2.5 rounded-full mr-2 shrink-0`,style:{backgroundColor:t.color}}),t.name,e.tag?.id===t.id&&(0,q.jsx)(le,{className:`size-3 ml-auto`})]},t.id)),e.tag&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ca,{}),(0,q.jsx)(Sa,{onClick:()=>c(null),children:`Remove tag`})]})]})]}),o&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ca,{}),(0,q.jsxs)(Sa,{className:`text-red-500 focus:text-red-500`,onClick:t=>o(t,e),children:[(0,q.jsx)(ke,{className:`size-3.5 mr-2`}),`Delete`]})]})]})]})}var Ta={approval_request:`bg-red-500`,question:`bg-amber-500`,done:`bg-blue-500`},Ea={done:0,question:1,approval_request:2};function Da(e){return e&&Ta[e]||`bg-red-500`}var Oa={approval_request:`bg-red-500/10`,question:`bg-amber-500/10`,done:`bg-blue-500/10`};function ka(e){return e&&Oa[e]||`bg-red-500/10`}var Aa=Me()(e=>({notifications:new Map,addNotification:(t,n,r,i)=>{e(e=>{let a=new Map(e.notifications),o=a.get(t);return a.set(t,{count:(o?.count??0)+1,type:n,projectName:r,sessionTitle:i??o?.sessionTitle??null}),{notifications:a}})},clearForSession:t=>{let n=Aa.getState().notifications.get(t)?.projectName;e(e=>{if(!e.notifications.has(t))return e;let n=new Map(e.notifications);return n.delete(t),{notifications:n}}),n&&V.post(`/api/project/${encodeURIComponent(n)}/chat/sessions/${encodeURIComponent(t)}/read`).catch(()=>{})},clearAll:()=>e({notifications:new Map}),loadFromServer:async t=>{try{let n=await V.get(`/api/project/${encodeURIComponent(t)}/chat/sessions/unread`);e(()=>{let e=new Map;for(let t of n)t.unreadCount>0&&e.set(t.sessionId,{count:t.unreadCount,type:t.unreadType||`done`,projectName:t.projectName||``,sessionTitle:t.sessionTitle??null});return{notifications:e}})}catch{}},handleUnreadChanged:(t,n,r,i,a)=>{e(e=>{let o=new Map(e.notifications);if(n===0)o.delete(t);else{let e=o.get(t);o.set(t,{count:n>0?n:(e?.count??0)+1,type:r||`done`,projectName:i||e?.projectName||``,sessionTitle:a??e?.sessionTitle??null})}return{notifications:o}})}}));function ja(e){return e.notifications.size}function Ma(e){return t=>{let n=null,r=-1;for(let[,i]of t.notifications){if(i.projectName!==e)continue;let t=Ea[i.type]??0;t>r&&(r=t,n=i.type)}return n}}var Na=5,Pa=20;function Fa({projectName:e,onSelectSession:t,className:n}){let[r,i]=(0,K.useState)([]),[a,o]=(0,K.useState)(!1),[s,c]=(0,K.useState)(!1),[l,u]=(0,K.useState)(``),d=pa(l,300),[f,p]=(0,K.useState)(null),{projectTags:m,tagCounts:h,loadTags:g}=ma(e),_=(0,K.useCallback)(async t=>{if(e){o(!0);try{let n=new URLSearchParams({limit:String(Pa)});t&&n.set(`q`,t),i((await V.get(`${B(e)}/chat/sessions?${n}`)).sessions.slice(0,Pa))}catch{}finally{o(!1)}}},[e]);(0,K.useEffect)(()=>{_()},[_]),(0,K.useEffect)(()=>{_(d||void 0)},[d]);let v=(0,K.useCallback)(async(t,n)=>{if(t.stopPropagation(),!e)return;let r=`${B(e)}/chat/sessions/${n.id}/pin`;try{n.pinned?await V.del(r):await V.put(r),i(e=>e.map(e=>e.id===n.id?{...e,pinned:!e.pinned}:e).sort((e,t)=>e.pinned&&!t.pinned?-1:!e.pinned&&t.pinned?1:new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime()))}catch{}},[e]),y=(0,K.useCallback)((e,t)=>{i(n=>n.map(n=>n.id===e?{...n,tag:t}:n)),g()},[g]),b=f===null?r:r.filter(e=>e.tag?.id===f),x=b.filter(e=>e.pinned),S=b.filter(e=>!e.pinned),C=s?S:S.slice(0,Na),w=S.length>Na;return a||!e||r.length===0?null:(0,q.jsxs)(`div`,{className:n,children:[(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(Te,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 size-3.5 text-text-subtle pointer-events-none`}),(0,q.jsx)(`input`,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:`Search chats...`,className:`w-full pl-8 pr-8 py-1.5 text-xs rounded-md border border-border bg-surface text-text-primary placeholder:text-text-subtle focus:outline-none focus:ring-1 focus:ring-primary/50`}),l&&(0,q.jsx)(`button`,{onClick:()=>u(``),className:`absolute right-2 top-1/2 -translate-y-1/2 text-text-subtle hover:text-text-primary`,children:(0,q.jsx)(je,{className:`size-3.5`})})]}),(0,q.jsx)(`div`,{className:`mt-3`,children:(0,q.jsx)(ha,{projectTags:m,tagCounts:h,totalCount:r.length,selectedTagId:f,onSelect:p})}),x.length>0&&(0,q.jsxs)(`div`,{className:`flex flex-col gap-2 w-full mt-4`,children:[(0,q.jsx)(`p`,{className:`text-xs text-text-subtle text-center`,children:`Pinned`}),(0,q.jsx)(`div`,{className:`w-full rounded-md border border-border bg-surface overflow-hidden`,children:x.map(n=>(0,q.jsx)(Ia,{session:n,projectName:e,projectTags:m,onSelect:t,onTogglePin:v,onTagChanged:y},n.id))})]}),C.length>0&&(0,q.jsxs)(`div`,{className:`flex flex-col gap-2 w-full mt-4`,children:[(0,q.jsx)(`p`,{className:`text-xs text-text-subtle text-center`,children:`Recent chats`}),(0,q.jsx)(`div`,{className:`w-full rounded-md border border-border bg-surface overflow-hidden`,children:C.map(n=>(0,q.jsx)(Ia,{session:n,projectName:e,projectTags:m,onSelect:t,onTogglePin:v,onTagChanged:y},n.id))}),w&&(0,q.jsxs)(`button`,{onClick:()=>c(!s),className:`flex items-center justify-center gap-1 text-[11px] text-text-subtle hover:text-text-primary transition-colors py-1`,children:[s?(0,q.jsx)(F,{className:`size-3`}):(0,q.jsx)(ce,{className:`size-3`}),s?`Show less`:`Show more (${S.length-Na})`]})]})]})}function Ia({session:e,projectName:t,projectTags:n,onSelect:r,onTogglePin:i,onTagChanged:a}){let o=Aa(t=>t.notifications.get(e.id));return(0,q.jsx)(wa,{session:e,projectName:t,projectTags:n,onTogglePin:i,onTagChanged:a,children:(0,q.jsxs)(`button`,{onClick:()=>r(e),className:H(`group flex items-center gap-2.5 w-full px-3 py-2.5 text-left hover:bg-surface-elevated active:bg-surface-elevated transition-colors border-b border-border/50 last:border-0`,o&&ka(o.type)),children:[(0,q.jsx)(en,{className:`size-3.5 shrink-0 text-text-subtle`}),e.tag&&(0,q.jsx)(`span`,{className:`size-2 rounded-full shrink-0`,style:{backgroundColor:e.tag.color},title:e.tag.name}),(0,q.jsx)(`span`,{className:H(`flex-1 min-w-0 text-xs truncate`,o?`font-semibold text-foreground`:`font-medium text-text-primary`),children:e.title||`Untitled`}),e.updatedAt&&(0,q.jsx)(`span`,{className:`text-[10px] text-text-subtle shrink-0`,children:fa(e.updatedAt)}),(0,q.jsx)(`span`,{role:`button`,tabIndex:0,onClick:t=>i(t,e),className:`p-1 rounded transition-colors shrink-0 ${e.pinned?`text-primary hover:text-primary/70`:`text-text-subtle can-hover:opacity-0 can-hover:group-hover:opacity-100 hover:text-text-primary`}`,"aria-label":e.pinned?`Unpin session`:`Pin session`,children:e.pinned?(0,q.jsx)(we,{className:`size-3`}):(0,q.jsx)(Ce,{className:`size-3`})})]})})}function La(e,t){return e.map(e=>({name:e.name,path:t?`${t}/${e.name}`:e.name,type:e.type,ignored:e.isIgnored}))}function Ra(e,t,n){return t?e.map(e=>za(e,t,n)):n.map(t=>{let n=e.find(e=>e.path===t.path);return n?{...t,children:n.children}:t})}function za(e,t,n){if(e.path===t){let t=n.map(t=>{let n=e.children?.find(e=>e.path===t.path);return n?{...t,children:n.children}:t});return{...e,children:t}}return e.children&&t.startsWith(e.path+`/`)?{...e,children:e.children.map(e=>za(e,t,n))}:e}var Ba=Me((e,t)=>({tree:[],fileIndex:[],loading:!1,error:null,expandedPaths:new Set,loadedPaths:new Set,inflight:new Map,indexStatus:`idle`,selectedFiles:[],inlineAction:null,clipboard:null,focusedPath:null,setInlineAction:t=>e({inlineAction:t}),clearInlineAction:()=>e({inlineAction:null}),setClipboard:t=>e({clipboard:t}),setFocusedPath:t=>e({focusedPath:t}),loadRoot:async n=>{e({loading:!0,error:null});try{let r=La(await V.get(`${B(n)}/files/list?path=`),``),i=new Set(t().loadedPaths);i.add(``),e({tree:r,loading:!1,loadedPaths:i})}catch(t){e({error:t instanceof Error?t.message:`Failed to load files`,loading:!1})}},loadChildren:async(n,r)=>{let i=t();if(i.loadedPaths.has(r))return;let a=i.inflight.get(r);a&&a.abort();let o=new AbortController,s=new Map(i.inflight);s.set(r,o),e({inflight:s});try{let i=encodeURIComponent(r),a=await V.get(`${B(n)}/files/list?path=${i}`,{signal:o.signal});if(o.signal.aborted)return;let s=La(a,r),c=t(),l=Ra(c.tree,r,s),u=new Set(c.loadedPaths);u.add(r);let d=new Map(c.inflight);d.delete(r),e({tree:l,loadedPaths:u,inflight:d})}catch(n){if(n instanceof Error&&n.name===`AbortError`)return;let i=new Map(t().inflight);i.delete(r),e({inflight:i})}},loadIndex:async t=>{e({indexStatus:`loading`});try{e({fileIndex:await V.get(`${B(t)}/files/index`),indexStatus:`ready`})}catch{e({indexStatus:`error`})}},invalidateIndex:()=>{e({indexStatus:`idle`,fileIndex:[]})},invalidateFolder:async(n,r)=>{let i=t();if(!i.loadedPaths.has(r))return;let a=new Set(i.loadedPaths);a.delete(r),e({loadedPaths:a}),(!r||i.expandedPaths.has(r))&&await t().loadChildren(n,r)},toggleExpand:(n,r)=>{let i=t(),a=new Set(i.expandedPaths);a.has(r)?(a.delete(r),e({expandedPaths:a})):(a.add(r),e({expandedPaths:a}),i.loadedPaths.has(r)||t().loadChildren(n,r))},setExpanded:(n,r)=>{let i=new Set(t().expandedPaths);r?i.add(n):i.delete(n),e({expandedPaths:i})},collapseAll:()=>{e({expandedPaths:new Set})},toggleFileSelect:n=>{let r=t().selectedFiles;r.indexOf(n)>=0?e({selectedFiles:r.filter(e=>e!==n)}):e({selectedFiles:[...r,n]})},setSelectedFiles:t=>e({selectedFiles:t}),clearSelection:()=>e({selectedFiles:[]}),reset:()=>{for(let e of t().inflight.values())e.abort();e({tree:[],fileIndex:[],loading:!1,error:null,expandedPaths:new Set,loadedPaths:new Set,inflight:new Map,indexStatus:`idle`,selectedFiles:[],inlineAction:null,clipboard:null,focusedPath:null})},fetchTree:async e=>{await t().loadRoot(e),t().loadIndex(e)}}));function Va(){let{tree:e,expandedPaths:t}=Ba.getState(),n=[];function r(e){let i=[...e].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1);for(let e of i){let i=e;if(e.type===`directory`&&t.has(e.path)&&e.children)for(;i.children&&i.children.length===1&&i.children[0].type===`directory`&&t.has(i.children[0].path);)i=i.children[0];n.push(i.path),i.type===`directory`&&t.has(i.path)&&i.children&&r(i.children)}}return r(e),n}function Ha(e,t){let n;try{n=e()}catch{return}return{getItem:e=>{let r=e=>e===null?null:JSON.parse(e,t?.reviver),i=n.getItem(e)??null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,t?.replacer)),removeItem:e=>n.removeItem(e)}}var Ua=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return Ua(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return Ua(t)(e)}}}},Wa=(e,t)=>(n,r,i)=>{let a={storage:Ha(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=0,c=new Set,l=new Set,u=a.storage;if(!u)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},r,i);let d=()=>{let e=a.partialize({...r()});return u.setItem(a.name,{state:e,version:a.version})},f=i.setState;i.setState=(e,t)=>(f(e,t),d());let p=e((...e)=>(n(...e),d()),r,i);i.getInitialState=()=>p;let m,h=()=>{if(!u)return;let e=++s;o=!1,c.forEach(e=>e(r()??p));let t=a.onRehydrateStorage?.call(a,r()??p)||void 0;return Ua(u.getItem.bind(u))(a.name).then(e=>{if(e)if(typeof e.version==`number`&&e.version!==a.version){if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`)}else return[!1,e.state];return[!1,void 0]}).then(t=>{if(e!==s)return;let[i,o]=t;if(m=a.merge(o,r()??p),n(m,!0),i)return d()}).then(()=>{e===s&&(t?.(m,void 0),m=r(),o=!0,l.forEach(e=>e(m)))}).catch(n=>{e===s&&t?.(void 0,n)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(u=e.storage)},clearStorage:()=>{u?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>h(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},a.skipHydration||h(),m||p},Ga=5e5,Ka=Me()(Wa(e=>({selection:null,setSelection:t=>e({selection:t}),clearSelection:()=>e({selection:null})}),{name:`ppm:compare-selection`,partialize:e=>{if(!e.selection)return{selection:null};let t=e.selection;if(t.dirtyContent&&t.dirtyContent.length>Ga){let{dirtyContent:e,...n}=t;return{selection:n}}return{selection:t}}})),qa=null;We.subscribe(e=>{let t=e.activeProject?.name??null;qa!==null&&qa!==t&&Ka.getState().clearSelection(),qa=t});async function Ja(e,t,n){let r=`${Re(e.path)} ↔ ${Re(t.path)}`,i=e.dirtyContent!==void 0,a=t.dirtyContent!==void 0,o;if(i||a){let[r,i]=await Promise.all([Ya(e,n),Ya(t,n)]);o={projectName:n,original:r,modified:i,file1:e.path,file2:t.path}}else o={projectName:n,file1:e.path,file2:t.path};return W.getState().openTab({type:`git-diff`,title:r,projectId:n,metadata:o,closable:!0})}async function Ya(e,t){if(e.dirtyContent!==void 0)return e.dirtyContent;try{let{content:n}=await V.get(`${B(t)}/files/read?path=${encodeURIComponent(e.path)}`);return n}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Failed to read "${e.path}": ${n}`)}}var Xa=`application/ppm-tab`,Za=!1,Qa=new Set;function $a(e){Za!==e&&(Za=e,Qa.forEach(e=>e()))}function eo(){return(0,K.useSyncExternalStore)(e=>(Qa.add(e),()=>Qa.delete(e)),()=>Za)}function to(){$a(!1)}function no(e){let[t,n]=(0,K.useState)(null),r=(0,K.useRef)(null);return{dropIndex:t,handleDragStart:(0,K.useCallback)((t,n)=>{let r={tabId:n,panelId:e};t.dataTransfer.setData(Xa,JSON.stringify(r)),t.dataTransfer.effectAllowed=`move`,requestAnimationFrame(()=>$a(!0))},[e]),handleDragOver:(0,K.useCallback)((e,t,i)=>{if(!e.dataTransfer.types.includes(`application/ppm-tab`)||(e.preventDefault(),e.dataTransfer.dropEffect=`move`,r.current===t))return;r.current=t;let a=e.currentTarget.getBoundingClientRect(),o=a.left+a.width/2;n(e.clientX<o?i:i+1)},[]),handleDragOverBar:(0,K.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`)},[]),handleDrop:(0,K.useCallback)(i=>{i.preventDefault(),$a(!1);let a=i.dataTransfer.getData(Xa);if(a){try{let n=JSON.parse(a),r=U.getState();n.panelId===e?t!==null&&r.reorderTab(n.tabId,e,t):r.moveTab(n.tabId,n.panelId,e,t??void 0)}catch{}n(null),r.current=null}},[e,t]),handleDragEnd:(0,K.useCallback)(()=>{$a(!1),n(null),r.current=null},[])}}var ro=null,Y=null,io=0,ao=new Set;function oo(){ao.forEach(e=>e())}function so(){return(0,K.useSyncExternalStore)(e=>(ao.add(e),()=>ao.delete(e)),()=>Y)}function co(){return Date.now()-io<300}var lo=null;function uo(e,t,n){let r=document.createElement(`div`);r.id=`touch-drag-ghost`,Object.assign(r.style,{position:`fixed`,zIndex:`9999`,pointerEvents:`none`,padding:`6px 14px`,borderRadius:`8px`,background:`rgba(30,30,30,0.92)`,color:`#fff`,fontSize:`12px`,whiteSpace:`nowrap`,opacity:`0.95`,boxShadow:`0 4px 16px rgba(0,0,0,0.35)`,transform:`translate(-50%, -130%)`,left:`${t}px`,top:`${n}px`}),r.textContent=e,document.body.appendChild(r),lo=r}function fo(e,t){lo&&(lo.style.left=`${e}px`,lo.style.top=`${t}px`)}function po(){lo?.remove(),lo=null}function mo(e,t){lo&&(lo.style.display=`none`);let n=document.elementFromPoint(e,t);lo&&(lo.style.display=``);let r=n?.closest(`[data-panel-drop-zone]`);if(!r)return null;let i=r.dataset.panelDropZone,a=r.getBoundingClientRect(),o=(e-a.left)/a.width,s=(t-a.top)/a.height,c=.25,{grid:l}=U.getState(),u=window.innerWidth<768,d=ze(l,i),f=d?!u&&(l[d.row]?.length??0)<Ve(!1):!1,p=!u&&l.length<3,m=`center`;return o<c&&f?m=`left`:o>1-c&&f?m=`right`:s<c&&p?m=`top`:s>1-c&&p&&(m=`bottom`),{panelId:i,zone:m}}function ho(e){if(!ro)return;e.preventDefault();let t=e.touches[0];if(!t)return;fo(t.clientX,t.clientY);let n=mo(t.clientX,t.clientY);(n?.panelId!==Y?.panelId||n?.zone!==Y?.zone)&&(Y=n,oo())}function go(){ro=null,Y=null,oo(),po(),to(),document.removeEventListener(`touchmove`,ho),document.removeEventListener(`touchend`,_o),document.removeEventListener(`touchcancel`,vo)}function _o(){let e=ro,t=Y;if(go(),io=Date.now(),!e||!t)return;let n=U.getState();if(t.zone===`center`)e.panelId!==t.panelId&&n.moveTab(e.tabId,e.panelId,t.panelId);else{let r=t.zone===`top`?`up`:t.zone===`bottom`?`down`:t.zone;n.splitPanel(r,e.tabId,e.panelId,t.panelId)}}function vo(){go(),io=Date.now()}function yo(e,t,n,r){ro=e,$a(!0),uo(t,n,r),document.addEventListener(`touchmove`,ho,{passive:!1}),document.addEventListener(`touchend`,_o),document.addEventListener(`touchcancel`,vo)}var bo=200,xo=10;function So(e){let t=(0,K.useRef)(null),n=(0,K.useRef)(null),r=(0,K.useRef)(!1);return{handleTouchStart:(0,K.useCallback)((i,a,o)=>{let s=i.touches[0];s&&(n.current={x:s.clientX,y:s.clientY},r.current=!1,t.current=setTimeout(()=>{r.current=!0,yo({tabId:a,panelId:e},o,n.current.x,n.current.y)},bo))},[e]),handleTouchMove:(0,K.useCallback)(e=>{if(r.current||!n.current||!t.current)return;let i=e.touches[0];i&&(Math.abs(i.clientX-n.current.x)>xo||Math.abs(i.clientY-n.current.y)>xo)&&(clearTimeout(t.current),t.current=null)},[]),handleTouchEnd:(0,K.useCallback)(()=>{t.current&&=(clearTimeout(t.current),null)},[])}}var Co=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),wo=[{id:`command-palette`,label:`Command Palette`,category:`general`,defaultKey:`F1`,note:`Shift+Shift also opens (not customizable)`},{id:`toggle-sidebar`,label:`Toggle Sidebar`,category:`general`,defaultKey:`Mod+B`},{id:`save-prevent`,label:`Prevent Save Dialog`,category:`general`,defaultKey:`Mod+S`,locked:!0,note:`Always active — prevents browser save`},{id:`next-tab`,label:`Next Tab`,category:`tabs`,defaultKey:`Alt+]`},{id:`prev-tab`,label:`Previous Tab`,category:`tabs`,defaultKey:`Alt+[`},{id:`new-file`,label:`New File`,category:`tabs`,defaultKey:`Mod+N`},{id:`open-chat`,label:`Open Chat`,category:`tabs`,defaultKey:`Mod+L`},{id:`open-terminal`,label:`Open Terminal`,category:`tabs`,defaultKey:`Mod+'`},{id:`open-settings`,label:`Open Settings`,category:`tabs`,defaultKey:`Mod+,`},{id:`open-git-status`,label:`Git Status (sidebar)`,category:`tabs`,defaultKey:`Mod+Shift+E`},{id:`open-search`,label:`Search Files (sidebar)`,category:`tabs`,defaultKey:`Mod+Shift+F`},{id:`voice-input`,label:`Voice Input`,category:`general`,defaultKey:`Mod+Shift+V`,note:`Toggle speech-to-text in chat`},{id:`compare-files`,label:`Compare Files...`,category:`general`,defaultKey:`Mod+Alt+D`,note:`Open file-compare picker (seeds active file as A)`},...Array.from({length:9},(e,t)=>({id:`switch-project-${t+1}`,label:`Switch to Project ${t+1}`,category:`projects`,defaultKey:`Mod+${t+1}`}))],To=new Map(wo.map(e=>[e.id,e.defaultKey]));function Eo(e){let t=e.split(`+`),n={ctrl:!1,meta:!1,alt:!1,shift:!1,key:``};for(let e of t){let t=e.trim();switch(t){case`Mod`:Co?n.meta=!0:n.ctrl=!0;break;case`Ctrl`:n.ctrl=!0;break;case`Meta`:case`Cmd`:n.meta=!0;break;case`Alt`:n.alt=!0;break;case`Shift`:n.shift=!0;break;default:n.key=t.toLowerCase();break}}return n}function Do(e,t){return e.ctrlKey!==t.ctrl||e.metaKey!==t.meta||e.altKey!==t.alt||e.shiftKey!==t.shift?!1:e.key.toLowerCase()===t.key}function Oo(e){return e.replace(/Mod/g,Co?`⌘`:`Ctrl`).replace(/Shift/g,Co?`⇧`:`Shift`).replace(/Alt/g,Co?`⌥`:`Alt`).replace(/Meta|Cmd/g,`⌘`).replace(/Ctrl/g,Co?`⌃`:`Ctrl`)}function ko(e){if([`Control`,`Meta`,`Alt`,`Shift`].includes(e.key))return null;let t=[];e.ctrlKey&&!e.metaKey&&t.push(Co?`Ctrl`:`Mod`),e.metaKey&&t.push(Co?`Mod`:`Meta`),e.altKey&&t.push(`Alt`),e.shiftKey&&t.push(`Shift`);let n=e.key;return n===` `?n=`Space`:n.length===1&&(n=n.toUpperCase()),t.push(n),t.join(`+`)}function Ao(e){let t=new Map;for(let n of wo){let r=e[n.id]??n.defaultKey;r&&t.set(n.id,Eo(r))}return t}var jo=Ao({}),Mo=Me((e,t)=>({overrides:{},parsedCache:jo,loaded:!1,getBinding:e=>t().overrides[e]??To.get(e)??``,matchesEvent:(e,n)=>{let r=t().parsedCache.get(n);return r?Do(e,r):!1},setBinding:(n,r)=>{let i={...t().overrides,[n]:r};e({overrides:i,parsedCache:Ao(i)}),V.put(`/api/settings/keybindings`,{[n]:r}).catch(()=>{})},resetBinding:n=>{let r={...t().overrides};delete r[n],e({overrides:r,parsedCache:Ao(r)}),V.put(`/api/settings/keybindings`,{[n]:null}).catch(()=>{})},resetAll:()=>{let n={};for(let e of Object.keys(t().overrides))n[e]=null;e({overrides:{},parsedCache:Ao({})}),Object.keys(n).length>0&&V.put(`/api/settings/keybindings`,n).catch(()=>{})},loadFromServer:async()=>{try{let t=await V.get(`/api/settings/keybindings`);e({overrides:t,parsedCache:Ao(t),loaded:!0})}catch{e({loaded:!0})}}})),No=Me((e,t)=>({statusBarItems:[],addStatusBarItem:t=>e(e=>({statusBarItems:[...e.statusBarItems.filter(e=>e.id!==t.id),t]})),removeStatusBarItem:t=>e(e=>({statusBarItems:e.statusBarItems.filter(e=>e.id!==t)})),updateStatusBarItem:(t,n)=>e(e=>({statusBarItems:e.statusBarItems.map(e=>e.id===t?{...e,...n}:e)})),treeViews:{},updateTree:(t,n)=>e(e=>({treeViews:{...e.treeViews,[t]:n}})),updateTreeChildren:(t,n,r)=>e(e=>{let i=e.treeViews[t];if(!i)return e;let a=e=>e.map(e=>e.id===n?{...e,children:r,collapsibleState:`expanded`}:e.children?{...e,children:a(e.children)}:e);return{treeViews:{...e.treeViews,[t]:a(i)}}}),removeTree:t=>e(e=>{let{[t]:n,...r}=e.treeViews;return{treeViews:r}}),webviewPanels:{},addWebviewPanel:t=>e(e=>({webviewPanels:{...e.webviewPanels,[t.id]:t}})),removeWebviewPanel:t=>e(e=>{let{[t]:n,...r}=e.webviewPanels;return{webviewPanels:r}}),updateWebviewPanel:(t,n)=>e(e=>{let r=e.webviewPanels[t];return r?{webviewPanels:{...e.webviewPanels,[t]:{...r,...n}}}:e}),contributions:null,setContributions:t=>e({contributions:t}),activationErrors:{},setActivationErrors:t=>e({activationErrors:t}),quickPick:null,showQuickPick:(n,r={})=>{let i=t().quickPick;return i&&i.resolve(void 0),new Promise(t=>{e({quickPick:{items:n,options:r,resolve:t}})})},resolveQuickPick:n=>{let r=t().quickPick;r&&(r.resolve(n),e({quickPick:null}))},inputBox:null,showInputBox:(n={})=>{let r=t().inputBox;return r&&r.resolve(void 0),new Promise(t=>{e({inputBox:{options:n,resolve:t}})})},resolveInputBox:n=>{let r=t().inputBox;r&&(r.resolve(n),e({inputBox:null}))},clearExtension:t=>e(e=>{let n={...e.webviewPanels};for(let[e,r]of Object.entries(n))r.extensionId===t&&delete n[e];return{statusBarItems:e.statusBarItems.filter(e=>e.extensionId!==t),webviewPanels:n}})}));function Po(e){window.dispatchEvent(new CustomEvent(`open-command-palette`,{detail:e}))}function Fo(){let[e,t]=(0,K.useState)(!1),[n,r]=(0,K.useState)(``);return(0,K.useEffect)(()=>{let e=0,n=!1,{matchesEvent:i}=Mo.getState(),a=new Map,o=!1;function s(){o=!0}function c(){o=!1}function l(i){if(i.type===`keydown`&&i.key===`Shift`){n=!0;return}if(i.type===`keydown`&&i.shiftKey&&(n=!1),i.type===`keydown`&&i.key!==`Shift`&&(e=0),i.type===`keyup`&&i.key===`Shift`&&n&&!i.ctrlKey&&!i.metaKey&&!i.altKey&&!o&&!i.isComposing){let n=Date.now();if(n-e<400){e=0,r(``),t(!0);return}e=n;return}if(i.type!==`keydown`||o||i.isComposing)return;let s=i.target?.tagName;if(s===`TEXTAREA`||s===`INPUT`||i.target?.isContentEditable){let{matchesEvent:e}=Mo.getState();e(i,`save-prevent`)&&i.preventDefault();return}let{matchesEvent:c}=Mo.getState();if(c(i,`save-prevent`)){i.preventDefault();return}if(c(i,`command-palette`)){i.preventDefault(),r(``),t(!0);return}if(c(i,`toggle-sidebar`)){i.preventDefault(),Fe.getState().toggleSidebar();return}if(c(i,`next-tab`)||c(i,`prev-tab`)){i.preventDefault();let{tabs:e,activeTabId:t,setActiveTab:n}=W.getState();if(e.length<2)return;let r=e.findIndex(e=>e.id===t);n(e[c(i,`next-tab`)?(r+1)%e.length:(r-1+e.length)%e.length].id);return}if(c(i,`new-file`)){i.preventDefault(),W.getState().openNewFile();return}for(let e of[{action:`open-chat`,type:`chat`,title:`AI Chat`},{action:`open-terminal`,type:`terminal`,title:`Terminal`}])if(c(i,e.action)){i.preventDefault();let t=We.getState().activeProject;W.getState().openTab({type:e.type,title:e.title,projectId:t?.name??null,metadata:t?{projectName:t.name}:void 0,closable:!0});return}if(c(i,`open-settings`)){i.preventDefault();let e=Fe.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`settings`);return}if(c(i,`open-git-status`)){i.preventDefault();let e=Fe.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`git`);return}if(c(i,`voice-input`)){i.preventDefault(),window.dispatchEvent(new CustomEvent(`toggle-voice-input`));return}if(c(i,`compare-files`)){i.preventDefault();let{activeTabId:e,tabs:t}=W.getState(),n=t.find(t=>t.id===e),r=n?.metadata;n?.type===`editor`&&r?.filePath&&r?.projectName&&Ka.getState().setSelection({filePath:r.filePath,projectName:r.projectName,dirtyContent:r.unsavedContent,label:Re(r.filePath)}),window.dispatchEvent(new CustomEvent(`open-compare-picker`));return}if(c(i,`open-search`)){i.preventDefault();let e=Fe.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`search`);return}for(let e=1;e<=9;e++)if(c(i,`switch-project-${e}`)){i.preventDefault();let t=We.getState().projects[e-1];t&&(We.getState().setActiveProject(t),W.getState().switchProject(t.name));return}let l=No.getState().contributions?.keybindings;if(l){let e=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),{getBinding:t}=Mo.getState();for(let n of l){let r=t(`ext:${n.command}`)||(e&&n.mac?n.mac:n.key);if(!r)continue;let o=a.get(r);if(o||(o=Eo(r),a.set(r,o)),Do(i,o)){i.preventDefault();let e=We.getState().activeProject,t=[];e?.path&&t.push(e.path),window.dispatchEvent(new CustomEvent(`ext:command:execute`,{detail:{command:n.command,args:t}}));return}}}}function u(e){let n=e.detail;r(typeof n==`string`?n:``),t(!0)}return window.addEventListener(`keydown`,l),window.addEventListener(`keyup`,l),window.addEventListener(`compositionstart`,s),window.addEventListener(`compositionend`,c),window.addEventListener(`open-command-palette`,u),()=>{window.removeEventListener(`keydown`,l),window.removeEventListener(`keyup`,l),window.removeEventListener(`compositionstart`,s),window.removeEventListener(`compositionend`,c),window.removeEventListener(`open-command-palette`,u)}},[]),{paletteOpen:e,paletteInitialQuery:n,closePalette:(0,K.useCallback)(()=>{t(!1),r(``)},[])}}var Io=Me(e=>({sessions:new Set,setStreaming:(t,n)=>e(e=>{let r=new Set(e.sessions);return n?r.add(t):r.delete(t),{sessions:r}})})),Lo=e=>e.sessions.size>0;function Ro(e){let[t,n]=(0,K.useState)(!1),[r,i]=(0,K.useState)(!1),a=(0,K.useCallback)(()=>{let t=e.current;t&&(n(t.scrollLeft>1),i(t.scrollLeft+t.clientWidth<t.scrollWidth-1))},[e]);return(0,K.useEffect)(()=>{let t=e.current;if(!t)return;a(),t.addEventListener(`scroll`,a,{passive:!0});let n=new ResizeObserver(a);n.observe(t);let r=new MutationObserver(a);return r.observe(t,{childList:!0,subtree:!0}),()=>{t.removeEventListener(`scroll`,a),n.disconnect(),r.disconnect()}},[e,a]),{canScrollLeft:t,canScrollRight:r,scrollLeft:(0,K.useCallback)(()=>{e.current?.scrollBy({left:-150,behavior:`smooth`})},[e]),scrollRight:(0,K.useCallback)(()=>{e.current?.scrollBy({left:150,behavior:`smooth`})},[e])}}var zo={done:0,question:1,approval_request:2};function Bo(e,t,n,r){if(!e)return{left:null,right:null};let i=e.scrollLeft,a=i+e.clientWidth,o=null,s=-1,c=null,l=-1,u=e.getBoundingClientRect();for(let d of n){if(d.type!==`chat`)continue;let n=d.metadata?.sessionId,f=n?r.get(n):void 0;if(!f||f.count===0)continue;let p=t.get(d.id);if(!p)continue;let m=p.getBoundingClientRect(),h=m.left-u.left+e.scrollLeft,g=h+m.width,_=zo[f.type]??0;g<=i&&_>s&&(s=_,o=f.type),h>=a&&_>l&&(l=_,c=f.type)}return{left:o,right:c}}function Vo(e){let t=/^#([0-9a-fA-F]{6})$/.exec(e.trim());if(!t)return null;let n=parseInt(t[1],16);return{r:n>>16&255,g:n>>8&255,b:n&255}}function Ho(e,t,n){let[r,i,a]=[e,t,n].map(e=>{let t=e/255;return t<=.04045?t/12.92:((t+.055)/1.055)**2.4});return .2126*r+.7152*i+.0722*a}function Uo(e){let t=Vo(e);return t?Ho(t.r,t.g,t.b)<.4:!1}function Wo({tab:e,isActive:t,icon:n,showDropBefore:r,notificationType:i,isStreaming:a,onSelect:o,onClose:s,onDragStart:c,onDragOver:l,onDragEnd:u,onTouchStart:d,onTouchMove:f,onTouchEnd:p,tabRef:m,onRename:h,onContextAction:g,tagColor:_,extraMenuContent:v}){let[y,b]=(0,K.useState)(!1),[x,S]=(0,K.useState)(e.title),C=(0,K.useRef)(null);(0,K.useEffect)(()=>{y&&(S(e.title),setTimeout(()=>C.current?.select(),0))},[y]);let w=()=>{b(!1);let t=x.trim();t&&t!==e.title&&h&&h(t)},T=e.metadata?.connectionColor,E=T?{backgroundColor:t?T:`${T}33`,color:t&&Uo(T)?`#fff`:void 0}:void 0,D=e.type===`editor`,O=(0,q.jsxs)(`button`,{ref:m,"data-tab-item":!0,draggable:!y,onClick:o,onAuxClick:t=>{t.button===1&&e.closable&&(t.preventDefault(),s())},onDragStart:c,onDragOver:l,onDragEnd:u,onTouchStart:d,onTouchMove:f,onTouchEnd:p,style:E,className:H(`group flex items-center gap-1 px-3 h-10 whitespace-nowrap text-xs transition-colors`,`border-b-2 -mb-px cursor-grab active:cursor-grabbing`,!E&&(t?`border-primary text-primary`:`border-transparent text-text-secondary hover:text-foreground`),E&&`border-transparent`),children:[(0,q.jsxs)(`span`,{className:H(`relative`,a&&`text-amber-500`),children:[(0,q.jsx)(n,{className:`size-4`}),a?(0,q.jsxs)(`span`,{"aria-hidden":!0,className:`absolute inset-0 flex items-center justify-center gap-[1.5px]`,children:[(0,q.jsx)(`span`,{className:`tab-typing-dot size-[2px] rounded-full bg-current`}),(0,q.jsx)(`span`,{className:`tab-typing-dot size-[2px] rounded-full bg-current`,style:{animationDelay:`0.15s`}}),(0,q.jsx)(`span`,{className:`tab-typing-dot size-[2px] rounded-full bg-current`,style:{animationDelay:`0.3s`}})]}):i&&!t?(0,q.jsx)(`span`,{className:H(`absolute -top-1 -right-1 size-2 rounded-full`,Da(i))}):null]}),y?(0,q.jsx)(`input`,{ref:C,value:x,onChange:e=>S(e.target.value),onBlur:w,onKeyDown:e=>{e.key===`Enter`&&w(),e.key===`Escape`&&b(!1),e.stopPropagation()},onClick:e=>e.stopPropagation(),className:`max-w-[120px] bg-surface-elevated text-xs px-1 py-0.5 rounded border border-border outline-none focus:border-primary`,autoFocus:!0}):(0,q.jsx)(`span`,{className:`max-w-[120px] truncate`,title:e.title,onDoubleClick:e=>{h&&(e.stopPropagation(),b(!0))},children:e.title}),e.closable&&!y&&(0,q.jsx)(`span`,{role:`button`,tabIndex:0,onClick:e=>{e.stopPropagation(),s()},onKeyDown:e=>{e.key===`Enter`&&(e.stopPropagation(),s())},className:`ml-1 can-hover:opacity-0 can-hover:group-hover:opacity-100 rounded-sm hover:bg-surface-elevated p-0.5 transition-opacity`,children:(0,q.jsx)(je,{className:`size-3`})})]});return(0,q.jsxs)(`div`,{className:`relative flex items-center`,children:[r&&(0,q.jsx)(`div`,{className:`absolute left-0 top-1 bottom-1 w-0.5 bg-primary rounded-full z-10`}),_&&(0,q.jsx)(`span`,{"aria-hidden":!0,className:`absolute left-0 top-2 bottom-2 w-[3px] rounded-r-full pointer-events-none`,style:{backgroundColor:_}}),g?(0,q.jsxs)(ga,{children:[(0,q.jsx)(_a,{asChild:!0,children:O}),(0,q.jsxs)(xa,{children:[D&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Sa,{onClick:()=>g(`copy-path`),children:`Copy Path`}),(0,q.jsxs)(Sa,{onClick:()=>g(`download`),children:[(0,q.jsx)(Ee,{className:`size-3.5 mr-2`}),`Download`]}),(0,q.jsx)(Ca,{}),(0,q.jsx)(Sa,{onClick:()=>g(`rename`),children:`Rename`}),(0,q.jsx)(Sa,{variant:`destructive`,onClick:()=>g(`delete`),children:`Delete`}),(0,q.jsx)(Ca,{})]}),v,e.closable&&(0,q.jsx)(Sa,{onClick:()=>g(`close`),children:`Close`}),(0,q.jsx)(Sa,{onClick:()=>g(`close-others`),children:`Close Others`}),(0,q.jsx)(Sa,{onClick:()=>g(`close-right`),children:`Close to the Right`})]})]}):O]})}async function Go(e,t){let{token:n}=await V.post(`${B(e)}/files/download/token`);qo(`${B(e)}/files/raw?path=${encodeURIComponent(t)}&download=true&dl_token=${encodeURIComponent(n)}`,t.split(`/`).pop()??`download`)}async function Ko(e,t){let{token:n}=await V.post(`${B(e)}/files/download/token`),r=t.split(`/`).pop()??`folder`;qo(`${B(e)}/files/download/zip?path=${encodeURIComponent(t)}&dl_token=${encodeURIComponent(n)}`,`${r}.zip`)}function qo(e,t){let n=document.createElement(`a`);n.href=e,n.download=t,n.style.display=`none`,document.body.appendChild(n),n.click(),document.body.removeChild(n)}function Jo({node:e,projectName:t,onClose:n,onRefresh:r}){let[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(null);async function c(){a(!0),s(null);try{await V.del(`${B(t)}/files/delete`,{path:e.path}),r(),n()}catch(e){s(e instanceof Error?e.message:`Failed to delete`)}finally{a(!1)}}return(0,q.jsx)(_e,{open:!0,onOpenChange:e=>!e&&n(),children:(0,q.jsxs)(ye,{children:[(0,q.jsxs)(ve,{children:[(0,q.jsxs)(be,{children:[`Delete `,e.type===`directory`?`Folder`:`File`]}),(0,q.jsxs)(ge,{children:[`Are you sure you want to delete`,` `,(0,q.jsx)(`span`,{className:`font-mono font-semibold`,children:e.name}),`?`,e.type===`directory`&&` This will delete all contents.`]})]}),o&&(0,q.jsx)(`p`,{className:`text-sm text-error`,children:o}),(0,q.jsxs)(me,{children:[(0,q.jsx)(R,{variant:`outline`,onClick:n,disabled:i,children:`Cancel`}),(0,q.jsx)(R,{variant:`destructive`,onClick:c,disabled:i,children:i?`Deleting...`:`Delete`})]})]})})}var Yo={terminal:kn,chat:en,editor:xt,database:fe,sqlite:fe,postgres:fe,"git-diff":St,settings:Cn,ports:ue,extension:hn,"extension-webview":hn,"conflict-editor":St,"system-monitor":Cn,"git-log":zt},Xo=(0,K.memo)(function({panelId:e}){let t=We(e=>e.activeProject),n=(0,K.useRef)(new Map),r=(0,K.useRef)(null),i=(0,K.useRef)(0),a=U(t=>e?t.panels[e]:t.panels[t.focusedPanelId]),o=t?.name??null,s=(a?.tabs??[]).filter(e=>!e.projectId||!o||e.projectId===o),c=a?.activeTabId??null,l=a?.id??U.getState().focusedPanelId,{dropIndex:u,handleDragStart:d,handleDragOver:f,handleDragOverBar:p,handleDrop:m,handleDragEnd:h}=no(l),{handleTouchStart:g,handleTouchMove:_,handleTouchEnd:v}=So(l),{projectTags:y,loadTags:b}=ma(t?.name),[x,S]=(0,K.useState)({}),C=s.filter(e=>e.type===`chat`&&e.metadata?.sessionId).map(e=>e.metadata.sessionId);(0,K.useEffect)(()=>{!t?.name||C.length===0||V.get(`${B(t.name)}/chat/sessions?limit=50`).then(e=>{let t={};for(let n of e.sessions)n.tag&&(t[n.id]=n.tag);S(t)}).catch(()=>{})},[t?.name,C.join(`,`)]);let w=(0,K.useCallback)(async(e,n)=>{if(t?.name)try{if(n!==null){await V.patch(`${B(t.name)}/chat/sessions/${e}/tag`,{tagId:n});let r=y.find(e=>e.id===n);r&&S(t=>({...t,[e]:{id:r.id,name:r.name,color:r.color}}))}else await V.del(`${B(t.name)}/chat/sessions/${e}/tag`),S(t=>{let n={...t};return delete n[e],n});b()}catch{}},[t?.name,y,b]),T=Aa(e=>e.notifications),E=Io(e=>e.sessions),{canScrollLeft:D,canScrollRight:O,scrollLeft:k,scrollRight:ee}=Ro(r),A=Bo(r.current,n.current,s,T);(0,K.useEffect)(()=>{if(s.length>i.current&&c){let e=n.current.get(c);e&&e.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`nearest`})}i.current=s.length},[s.length,c]);let te=(0,K.useCallback)((e,t)=>{W.getState().updateTab(e.id,{title:t});let n=e.metadata?.projectName,r=e.metadata?.sessionId;n&&r&&V.patch(`${B(n)}/chat/sessions/${r}`,{title:t}).catch(()=>{})},[]),ne=Ka(e=>e.selection),[re,j]=(0,K.useState)(null);function M(e){if(e.type!==`editor`)return null;let t=e.metadata?.filePath,n=e.metadata?.projectName;if(!t||!n)return null;let r=ne!=null&&ne.projectName===n&&ne.filePath!==t;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(Sa,{onClick:()=>{let r=e.metadata?.unsavedContent;Ka.getState().setSelection({filePath:t,projectName:n,dirtyContent:r,label:Re(t)})},children:[(0,q.jsx)(Se,{className:`size-3.5 mr-2`}),`Select for Compare`]}),r&&(0,q.jsxs)(Sa,{onClick:async()=>{let r=Ka.getState().selection;if(!r)return;let i=e.metadata?.unsavedContent;try{await Ja({path:r.filePath,dirtyContent:r.dirtyContent},{path:t,dirtyContent:i},n),Ka.getState().clearSelection()}catch(e){let t=e instanceof Error?e.message:`Compare failed`;tr.error(t)}},children:[(0,q.jsx)(Se,{className:`size-3.5 mr-2`}),`Compare with Selected (`,ne.label,`)`]}),(0,q.jsx)(Ca,{})]})}let N=(0,K.useCallback)((e,t)=>{let n=U.getState(),r=n.panels[l]?.tabs??[];switch(t){case`close`:n.closeTab(e.id,l);break;case`close-others`:for(let t of r)t.id!==e.id&&t.closable&&n.closeTab(t.id,l);break;case`close-right`:{let t=r.findIndex(t=>t.id===e.id);for(let e=t+1;e<r.length;e++)r[e].closable&&n.closeTab(r[e].id,l);break}case`copy-path`:{let t=e.metadata?.filePath;t&&navigator.clipboard.writeText(t).catch(()=>{});break}case`download`:{let t=e.metadata?.filePath,n=e.metadata?.projectName;t&&n&&Go(n,t);break}case`rename`:case`delete`:{let n=e.metadata?.filePath;n&&j({action:t,tabId:e.id,node:{name:e.title,path:n,type:`file`}});break}}},[l]);function ie(e){e.target.closest(`[data-tab-item]`)||Po()}function ae(e){e.target.closest(`[data-tab-item]`)||(e.preventDefault(),Po())}return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`hidden md:flex items-center h-10 border-b border-border bg-background relative`,onDragOver:p,onDrop:m,onDoubleClick:ie,onContextMenu:ae,children:[D&&(0,q.jsx)(`button`,{onClick:k,className:`absolute left-0 z-10 flex items-center justify-center size-8 bg-gradient-to-r from-background via-background to-transparent`,children:(0,q.jsxs)(`span`,{className:`relative`,children:[(0,q.jsx)(de,{className:`size-4 text-text-secondary`}),A.left&&(0,q.jsx)(`span`,{className:H(`absolute -top-1 -right-0.5 size-2 rounded-full`,Da(A.left))})]})}),(0,q.jsx)(`div`,{ref:r,className:`flex-1 overflow-x-auto overflow-y-hidden min-w-0 scrollbar-none`,children:(0,q.jsxs)(`div`,{className:`flex items-center h-10`,children:[s.map((e,t)=>{let r=e.type===`chat`?e.metadata?.sessionId:void 0,i=r?T.get(r):void 0,a=i&&i.count>0?i.type:null,o=r?E.has(r):!1;return(0,q.jsx)(Wo,{tab:e,isActive:e.id===c,icon:Yo[e.type]||hn,showDropBefore:u===t,notificationType:a,isStreaming:o,onSelect:()=>{co()||(U.getState().setActiveTab(e.id,l),r&&Aa.getState().clearForSession(r))},onClose:()=>U.getState().closeTab(e.id,l),onDragStart:t=>d(t,e.id),onDragOver:n=>f(n,e.id,t),onDragEnd:h,onTouchStart:t=>g(t,e.id,e.title),onTouchMove:_,onTouchEnd:v,tabRef:t=>{t?n.current.set(e.id,t):n.current.delete(e.id)},onRename:e.type===`chat`?t=>te(e,t):void 0,onContextAction:t=>N(e,t),tagColor:r?x[r]?.color:void 0,extraMenuContent:(0,q.jsxs)(q.Fragment,{children:[M(e),r&&y.length>0&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(va,{children:[(0,q.jsxs)(ya,{children:[(0,q.jsx)(On,{className:`size-3.5 mr-2`}),`Set Tag`]}),(0,q.jsxs)(ba,{children:[y.map(e=>(0,q.jsxs)(Sa,{onClick:()=>w(r,e.id),children:[(0,q.jsx)(`span`,{className:`size-2.5 rounded-full mr-2 shrink-0`,style:{backgroundColor:e.color}}),e.name,x[r]?.id===e.id&&(0,q.jsx)(le,{className:`size-3 ml-auto`})]},e.id)),x[r]&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ca,{}),(0,q.jsx)(Sa,{onClick:()=>w(r,null),children:`Remove tag`})]})]})]}),(0,q.jsx)(Ca,{})]})]})},e.id)}),u!==null&&u>=s.length&&(0,q.jsx)(`div`,{className:`w-0.5 h-6 bg-primary rounded-full`}),(0,q.jsx)(`button`,{onClick:()=>Po(),title:`Open command palette (Shift+Shift)`,className:`flex items-center justify-center size-10 shrink-0 sticky right-0 border-b-2 border-transparent text-text-secondary hover:text-foreground transition-colors bg-background`,children:(0,q.jsx)(De,{className:`size-4`})})]})}),O&&(0,q.jsx)(`button`,{onClick:ee,className:`absolute right-10 z-10 flex items-center justify-center size-8 bg-gradient-to-l from-background via-background to-transparent`,children:(0,q.jsxs)(`span`,{className:`relative`,children:[(0,q.jsx)(pe,{className:`size-4 text-text-secondary`}),A.right&&(0,q.jsx)(`span`,{className:H(`absolute -top-1 -left-0.5 size-2 rounded-full`,Da(A.right))})]})})]}),re&&(0,q.jsx)(Jo,{action:re.action,node:re.node,projectName:t?.name??``,onClose:()=>j(null),onRefresh:()=>{t&&Ba.getState().fetchTree(t.name),re.action===`delete`&&U.getState().closeTab(re.tabId,l)}})]})});function Zo({panelId:e}){let[t,n]=(0,K.useState)(null),r=eo(),i=so(),a=(i?.panelId===e?i.zone:null)??t,o=U(e=>e.grid),s=U(e=>e.isMobile()),c=ze(o,e),l=!s&&o.length<3,u=c?!s&&(o[c.row]?.length??0)<Ve(!1):!1,d=(0,K.useCallback)(e=>{let t=e.currentTarget.getBoundingClientRect(),n=(e.clientX-t.left)/t.width,r=(e.clientY-t.top)/t.height,i=.25;return n<i&&u?`left`:n>1-i&&u?`right`:r<i&&l?`top`:r>1-i&&l?`bottom`:`center`},[u,l]),f=(0,K.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.stopPropagation(),n(d(e)))},[d]),p=(0,K.useCallback)(e=>{e.currentTarget.contains(e.relatedTarget)||n(null)},[]),m=(0,K.useCallback)(t=>{t.preventDefault(),t.stopPropagation();let r=d(t);if(n(null),to(),!r)return;let i=t.dataTransfer.getData(Xa);if(i)try{let t=JSON.parse(i),n=U.getState();if(r===`center`)t.panelId!==e&&n.moveTab(t.tabId,t.panelId,e);else{let i=r===`top`?`up`:r===`bottom`?`down`:r;n.splitPanel(i,t.tabId,t.panelId,e)}}catch{}},[d,e]);return r?(0,q.jsxs)(`div`,{className:`absolute inset-0 z-20`,onDragOver:f,onDragLeave:p,onDrop:m,children:[a===`left`&&(0,q.jsx)(`div`,{className:`absolute inset-y-0 left-0 w-1/3 bg-primary/10 border-2 border-primary/30 rounded-l-md`}),a===`right`&&(0,q.jsx)(`div`,{className:`absolute inset-y-0 right-0 w-1/3 bg-primary/10 border-2 border-primary/30 rounded-r-md`}),a===`top`&&(0,q.jsx)(`div`,{className:`absolute inset-x-0 top-0 h-1/3 bg-primary/10 border-2 border-primary/30 rounded-t-md`}),a===`bottom`&&(0,q.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 h-1/3 bg-primary/10 border-2 border-primary/30 rounded-b-md`}),a===`center`&&(0,q.jsx)(`div`,{className:`absolute inset-0 bg-primary/5 border-2 border-dashed border-primary/30 rounded-md`})]}):null}var Qo={terminal:(0,K.lazy)(()=>Le(()=>import(`./terminal-tab-C4MNU5S3.js`).then(e=>({default:e.TerminalTab})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]))),chat:(0,K.lazy)(()=>Le(()=>import(`./chat-tab-3GUmdAJN.js`).then(e=>({default:e.ChatTab})),__vite__mapDeps([12,1,2,3,4,13,7,14,15,8,9,10,16,17,18,19,20,21,22,23,24,25,26,11,27,28]))),editor:(0,K.lazy)(()=>Le(()=>import(`./code-editor-Cd7NZ0VX.js`).then(e=>({default:e.CodeEditor})),__vite__mapDeps([29,1,2,3,4,30,31,32,33,8,9,10,14,34,16,35,23,25,20,26,36,15,37,28,11,7,38,13,24,39,40,27]))),database:(0,K.lazy)(()=>Le(()=>import(`./database-viewer-zeQXxkg-.js`).then(e=>({default:e.DatabaseViewer})),__vite__mapDeps([41,1,2,3,4,30,31,32,33,8,9,10,14,34,16,35,23,25,20,26,36,15,37,28,11,7,38,21,42]))),sqlite:(0,K.lazy)(()=>Le(()=>import(`./sqlite-viewer-FFlsRPWf.js`).then(e=>({default:e.SqliteViewer})),__vite__mapDeps([43,1,2,3,4,30,31,32,33,8,9,10,14,34,16,35,23,25,20,26,36,15,37,28,11,7,38,21,40,42]))),postgres:(0,K.lazy)(()=>Le(()=>import(`./postgres-viewer-DkM6ndux.js`).then(e=>({default:e.PostgresViewer})),__vite__mapDeps([44,1,2,45,46,4,35,14,23,21,40,10]))),"git-diff":(0,K.lazy)(()=>Le(()=>import(`./diff-viewer-DmSkyBaT.js`).then(e=>({default:e.DiffViewer})),__vite__mapDeps([47,1,2,33,4,8,9,10,36,14]))),settings:(0,K.lazy)(()=>Le(()=>import(`./settings-tab-WdL5pYxG.js`).then(e=>({default:e.SettingsTab})),__vite__mapDeps([48,2,1,3,4,13,7,14,15,8,9,10,17,18,19,20,21,22,27]))),ports:(0,K.lazy)(()=>Le(()=>import(`./port-forwarding-tab-BMb8neu0.js`).then(e=>({default:e.PortForwardingTab})),__vite__mapDeps([49,1,3,4,19,14,50,10]))),extension:(0,K.lazy)(()=>Le(()=>import(`./extension-webview-DCwz2Wso.js`).then(e=>({default:e.ExtensionWebview})),__vite__mapDeps([51,1,4,10]))),"extension-webview":(0,K.lazy)(()=>Le(()=>import(`./extension-webview-DCwz2Wso.js`).then(e=>({default:e.ExtensionWebview})),__vite__mapDeps([51,1,4,10]))),"conflict-editor":(0,K.lazy)(()=>Le(()=>import(`./conflict-editor-No7IVPRN.js`).then(e=>({default:e.ConflictEditor})),__vite__mapDeps([52,1,2,33,4,8,9,10]))),"system-monitor":(0,K.lazy)(()=>Le(()=>import(`./system-monitor-tab-CefzxLVi.js`).then(e=>({default:e.SystemMonitorTab})),__vite__mapDeps([53,1,3,4,7,14,34,16,18,23,50,15,10]))),"git-log":(0,K.lazy)(()=>Le(()=>import(`./git-log-panel-Bk7Eh-Bn.js`).then(e=>({default:e.GitLogPanel})),__vite__mapDeps([54,1,3,4,7,14,34,16,21,10,27,9])))},$o=new class{slots=new Map;listeners=new Set;version=0;register(e,t){if(t){if(this.slots.get(e)===t)return;this.slots.set(e,t)}else{if(!this.slots.has(e))return;this.slots.delete(e)}this.version++,this.listeners.forEach(e=>e())}get(e){return this.slots.get(e)}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}getVersion(){return this.version}};function es(e,t){$o.register(e,t)}function ts(){let e=(0,K.useRef)(null);(0,K.useSyncExternalStore)(e=>$o.subscribe(e),()=>$o.getVersion());let t=U(e=>e.panels),n=U(e=>e.grid),r=U(e=>e.currentProject),i=U(e=>e.projectGrids),a=[],o=new Set,s=(e,n)=>{for(let r of e.flat()){let e=t[r];if(e)for(let t of e.tabs)o.has(t.id)||t.projectId&&n&&t.projectId!==n||(o.add(t.id),a.push({tabId:t.id,panelId:r,type:t.type,metadata:t.metadata,isActive:t.id===e.activeTabId}))}};s(n,r);for(let[e,t]of Object.entries(i))e!==r&&s(t,e);return a.sort((e,t)=>e.tabId.localeCompare(t.tabId)),(0,q.jsx)(`div`,{ref:e,style:{position:`fixed`,top:0,left:0,width:0,height:0,overflow:`hidden`,pointerEvents:`none`,visibility:`hidden`},children:a.map(t=>(0,q.jsx)(ns,{tabId:t.tabId,panelId:t.panelId,type:t.type,metadata:t.metadata,isActive:t.isActive,hiddenContainer:e},t.tabId))})}function ns({tabId:e,panelId:t,type:n,metadata:r,isActive:i,hiddenContainer:a}){let o=(0,K.useRef)(null),s=Qo[n];return(0,K.useLayoutEffect)(()=>()=>{let e=o.current,t=a.current;e&&t&&e.parentElement!==t&&t.appendChild(e)},[a]),(0,K.useLayoutEffect)(()=>{let e=o.current,n=$o.get(t);if(!e)return;if(!n){let t=a.current;t&&e.parentElement!==t&&t.appendChild(e);return}if(e.parentElement===n)return;let r=[];e.querySelectorAll(`*`).forEach(e=>{(e.scrollTop||e.scrollLeft)&&r.push({el:e,top:e.scrollTop,left:e.scrollLeft})}),n.appendChild(e);for(let{el:e,top:t,left:n}of r)e.scrollTop=t,e.scrollLeft=n}),s?(0,q.jsx)(`div`,{ref:o,className:`absolute inset-0`,style:i?void 0:{display:`none`},"data-tab-pool-id":e,children:(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,q.jsx)(G,{className:`size-6 animate-spin text-primary`})}),children:(0,q.jsx)(s,{metadata:r,tabId:e})})}):null}var rs=[{type:`terminal`,label:`Terminal`,icon:kn},{type:`chat`,label:`AI Chat`,icon:en},{type:`editor`,label:`New File`,icon:Et}];function is({panelId:e,projectName:t}){let n=U(t=>t.panels[e]),r=U(t=>t.focusedPanelId===e),i=U(e=>(e.currentProject===t?e.grid:e.projectGrids[t]??[[]]).flat().length),a=(0,K.useCallback)(t=>{es(e,t)},[e]);return n?(0,q.jsxs)(`div`,{className:H(`flex flex-col h-full overflow-hidden`,i>1&&`border border-transparent`,i>1&&r&&`border-primary/30`),onMouseDown:()=>{U.getState().focusedPanelId!==e&&U.getState().setFocusedPanel(e)},children:[(0,q.jsx)(Xo,{panelId:e}),(0,q.jsxs)(`div`,{className:`flex-1 overflow-hidden relative`,"data-panel-drop-zone":e,children:[n.tabs.length===0&&(0,q.jsx)(as,{panelId:e}),(0,q.jsx)(`div`,{ref:a,className:`absolute inset-0`,style:n.tabs.length===0?{display:`none`}:void 0}),(0,q.jsx)(Zo,{panelId:e})]})]}):null}function as({panelId:e}){let t=We(e=>e.activeProject);function n(n){if(n===`editor`){W.getState().openNewFile();return}let r=n!==`settings`&&t?{projectName:t.name}:void 0;U.getState().openTab({type:n,title:rs.find(e=>e.type===n)?.label??n,metadata:r,projectId:t?.name??null,closable:!0},e)}let r=(0,K.useCallback)(n=>{U.getState().openTab({type:`chat`,title:n.title||`Chat`,projectId:t?.name??null,metadata:{projectName:t?.name,sessionId:n.id,providerId:n.providerId},closable:!0},e)},[t?.name,e]);return(0,q.jsx)(`div`,{className:`flex flex-col h-full overflow-y-auto text-text-secondary`,children:(0,q.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-6 px-4 flex-1`,children:[(0,q.jsx)(`p`,{className:`text-sm`,children:`Open a tab to get started`}),(0,q.jsx)(`div`,{className:`grid grid-cols-3 gap-2 w-full max-w-sm`,children:rs.map(e=>{let t=e.icon;return(0,q.jsxs)(`button`,{onClick:()=>n(e.type),className:`flex flex-col items-center justify-center gap-1.5 px-2 py-3 rounded-md border border-border bg-surface hover:bg-surface-elevated active:bg-surface-elevated text-xs text-foreground transition-colors`,children:[(0,q.jsx)(t,{className:`size-5`}),e.label]},e.type)})}),(0,q.jsx)(Fa,{projectName:t?.name,onSelectSession:r,className:`w-full`})]})})}var os=(0,K.memo)(function({projectName:e}){let t=da(`(min-width: 768px)`),n=U(t=>t.currentProject===e?t.grid:t.projectGrids[e]??[[]]),r=U(e=>e.focusedPanelId),i=n.flat().length;if((0,K.useEffect)(()=>{if(i===0){let e=Be();U.setState(t=>({panels:{...t.panels,[e.id]:e},grid:[[e.id]],focusedPanelId:e.id}))}},[i]),i===0)return null;if(!t){let t=n.flat(),i=t.includes(r)?r:t[0];return i?(0,q.jsx)(is,{panelId:i,projectName:e}):null}return i===1&&n[0]?.[0]?(0,q.jsx)(is,{panelId:n[0][0],projectName:e}):(0,q.jsx)(ia,{orientation:`vertical`,style:{height:`100%`},children:n.map((t,r)=>(0,q.jsx)(ss,{row:t,rowIdx:r,totalRows:n.length,projectName:e},`row-${r}`))})});function ss({row:e,rowIdx:t,totalRows:n,projectName:r}){return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(sa,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:e.length===1?(0,q.jsx)(is,{panelId:e[0],projectName:r}):(0,q.jsx)(ia,{orientation:`horizontal`,children:e.map((t,n)=>(0,q.jsx)(cs,{panelId:t,colIdx:n,totalCols:e.length,projectName:r},t))})}),t<n-1&&(0,q.jsx)(ls,{orientation:`horizontal`})]})}function cs({panelId:e,colIdx:t,totalCols:n,projectName:r}){return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(sa,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:(0,q.jsx)(is,{panelId:e,projectName:r})}),t<n-1&&(0,q.jsx)(ls,{orientation:`vertical`})]})}function ls({orientation:e}){let t=e===`vertical`;return(0,q.jsx)(ua,{className:`
11
11
  group/handle relative flex items-center justify-center
12
12
  ${t?`w-1 cursor-col-resize`:`h-1 cursor-row-resize`}
13
13
  bg-border/30 hover:bg-primary/30 active:bg-primary/50
14
14
  transition-colors duration-150
15
- `,children:(0,q.jsx)(`div`,{className:`absolute can-hover:opacity-0 can-hover:group-hover/handle:opacity-70 transition-opacity text-foreground/50`,children:t?(0,q.jsx)(Vt,{className:`size-3`}):(0,q.jsx)(Bt,{className:`size-3`})})})}var us=e=>Symbol.iterator in e,ds=e=>`entries`in e,fs=(e,t)=>{let n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(let[e,t]of n)if(!r.has(e)||!Object.is(t,r.get(e)))return!1;return!0},ps=(e,t)=>{let n=e[Symbol.iterator](),r=t[Symbol.iterator](),i=n.next(),a=r.next();for(;!i.done&&!a.done;){if(!Object.is(i.value,a.value))return!1;i=n.next(),a=r.next()}return!!i.done&&!!a.done};function ms(e,t){return Object.is(e,t)?!0:typeof e!=`object`||!e||typeof t!=`object`||!t||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:us(e)&&us(t)?ds(e)&&ds(t)?fs(e,t):ps(e,t):fs({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function hs(e){let t=K.useRef(void 0);return n=>{let r=e(n);return ms(t.current,r)?t.current:t.current=r}}function gs({className:e,children:t,...n}){return(0,q.jsxs)(w,{"data-slot":`scroll-area`,className:H(`relative`,e),...n,children:[(0,q.jsx)(E,{"data-slot":`scroll-area-viewport`,className:`size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 [&>div]:!block`,children:t}),(0,q.jsx)(_s,{}),(0,q.jsx)(v,{})]})}function _s({className:e,orientation:t=`vertical`,...n}){return(0,q.jsx)(D,{"data-slot":`scroll-area-scrollbar`,orientation:t,className:H(`flex touch-none p-px transition-colors select-none`,t===`vertical`&&`h-full w-1.5 border-l border-l-transparent`,t===`horizontal`&&`h-1.5 flex-col border-t border-t-transparent`,e),...n,children:(0,q.jsx)(y,{"data-slot":`scroll-area-thumb`,className:`relative flex-1 rounded-full bg-border`})})}function vs(e){return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)}function ys(){return typeof window<`u`&&window.innerWidth<768}function bs(){return!1}function xs(){return(0,K.useSyncExternalStore)(vs,ys,bs)}var Ss=80;function Cs(e){let[t,n]=(0,K.useState)(0),r=(0,K.useRef)(0),i=(0,K.useRef)(!1),a=(0,K.useRef)(0);return{dragY:t,swipeHandlers:{onTouchStart:(0,K.useCallback)(e=>{r.current=e.touches[0].clientY,i.current=!0,a.current=0,n(0)},[]),onTouchMove:(0,K.useCallback)(e=>{if(!i.current)return;let t=e.touches[0].clientY-r.current,o=Math.max(0,t);a.current=o,n(o)},[]),onTouchEnd:(0,K.useCallback)(()=>{i.current&&(i.current=!1,a.current>=Ss&&e(),a.current=0,n(0))},[e])},dragStyle:t>0?{transform:`translateY(${t}px)`}:void 0,backdropOpacity:t>0?Math.max(0,1-t/300):1,isDragging:t>0}}function ws({open:e,onClose:t,children:n,className:r,zIndex:i=50}){let{dragY:a,swipeHandlers:o,dragStyle:s,backdropOpacity:c,isDragging:l}=Cs(t);return e?(0,zn.createPortal)((0,q.jsxs)(`div`,{className:`fixed inset-0`,style:{zIndex:i},onClick:t,children:[(0,q.jsx)(`div`,{className:`absolute inset-0 bg-black/40 animate-in fade-in-0 duration-200`,style:l?{opacity:c}:void 0}),(0,q.jsxs)(`div`,{className:H(`absolute bottom-0 left-0 right-0 rounded-t-2xl bg-popover text-popover-foreground border-t border-border`,`pb-[max(0.5rem,env(safe-area-inset-bottom))]`,!l&&`animate-in slide-in-from-bottom duration-200`,r),style:s,onClick:e=>e.stopPropagation(),...o,children:[(0,q.jsx)(`div`,{className:`flex justify-center pt-3 pb-1`,children:(0,q.jsx)(`div`,{className:`w-10 h-1 rounded-full bg-border`})}),n]})]}),document.body):null}var Ts=(0,K.createContext)({open:!1,setOpen:()=>{}});function Es({children:e,onClick:t,variant:n,className:r,disabled:i}){let{setOpen:a}=(0,K.useContext)(Ts);return(0,q.jsx)(`button`,{disabled:i,className:H(`flex w-full items-center gap-2 rounded-lg px-3 py-3 text-sm text-left`,`active:bg-accent transition-colors select-none`,`disabled:pointer-events-none disabled:opacity-50`,n===`destructive`&&`text-destructive`,`[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,r),onClick:e=>{t?.(e),a(!1)},children:e})}function Ds({className:e}){return(0,q.jsx)(`div`,{className:H(`-mx-1 my-1 h-px bg-border`,e)})}var Os=500,ks=K.createContext(!1);function As({children:e,...t}){let n=xs(),[r,i]=(0,K.useState)(!1);return n?(0,q.jsx)(ks.Provider,{value:!0,children:(0,q.jsx)(Ts.Provider,{value:{open:r,setOpen:i},children:e})}):(0,q.jsx)(ga,{...t,children:e})}function js({children:e,asChild:t,...n}){let r=K.useContext(ks),{setOpen:i}=K.useContext(Ts),a=(0,K.useRef)(),o=(0,K.useRef)(!1);return r?(0,q.jsx)(`div`,{onTouchStart:(0,K.useCallback)(e=>{e.stopPropagation(),o.current=!1,a.current=setTimeout(()=>{i(!0),o.current=!0},Os)},[i]),onTouchMove:(0,K.useCallback)(()=>{clearTimeout(a.current)},[]),onTouchEnd:(0,K.useCallback)(()=>{clearTimeout(a.current)},[]),onClickCapture:(0,K.useCallback)(e=>{o.current&&=(e.preventDefault(),e.stopPropagation(),!1)},[]),onContextMenu:(0,K.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),className:`contents`,children:e}):(0,q.jsx)(_a,{asChild:t,...n,children:e})}function Ms({children:e,className:t,...n}){if(!K.useContext(ks))return(0,q.jsx)(xa,{className:t,...n,children:e});let{open:r,setOpen:i}=K.useContext(Ts);return(0,q.jsx)(ws,{open:r,onClose:()=>i(!1),className:H(`p-2`,t),children:(0,q.jsx)(`div`,{className:`max-h-[60vh] overflow-y-auto`,children:e})})}function Ns({children:e,className:t,variant:n,onClick:r,disabled:i,...a}){return K.useContext(ks)?(0,q.jsx)(Es,{className:t,variant:n,disabled:i,onClick:r,children:e}):(0,q.jsx)(Sa,{className:t,variant:n,disabled:i,onClick:r,...a,children:e})}function Ps({className:e,...t}){return K.useContext(ks)?(0,q.jsx)(Ds,{className:e}):(0,q.jsx)(Ca,{className:e,...t})}var Fs={M:`text-yellow-500`,A:`text-green-500`,D:`text-red-500`,R:`text-blue-500`,C:`text-purple-500`,U:`text-gray-400`};function Is(e){let t=new Map;for(let n of e.untracked)t.set(n,`U`);for(let n of e.unstaged){let e=n.status===`?`?`U`:n.status;t.set(n.path,e)}for(let n of e.staged){let e=n.status===`?`?`U`:n.status;t.set(n.path,e)}return t}function Ls(e){let t={D:5,A:4,M:3,R:2,C:1,U:0},n=new Map;for(let[r,i]of e){let e=r.split(`/`);for(let r=1;r<e.length;r++){let a=e.slice(0,r).join(`/`),o=n.get(a);(!o||t[i]>t[o])&&n.set(a,i)}}return n}var Rs=Me()(e=>({counts:new Map,fileStatuses:new Map,folderStatuses:new Map,setCount:(t,n)=>{e(e=>{if(e.counts.get(t)===n)return e;let r=new Map(e.counts);return r.set(t,n),{counts:r}})},setFileStatuses:(t,n)=>{let r=Is(n),i=Ls(r);e(e=>{let n=new Map(e.fileStatuses);n.set(t,r);let a=new Map(e.folderStatuses);return a.set(t,i),{fileStatuses:n,folderStatuses:a}})}}));function zs(e,t){let n=Rs(e=>e.setCount),r=Rs(e=>e.setFileStatuses),i=(0,K.useCallback)(async()=>{if(e)try{let t=await V.get(`${B(e)}/git/status`);n(e,t.staged.length+t.unstaged.length+t.untracked.length),r(e,t)}catch{}},[e,n,r]);(0,K.useEffect)(()=>{if(t)return;i();let e=setInterval(i,1e4);return()=>clearInterval(e)},[i,t])}function Bs({defaultValue:e,placeholder:t,depth:n,icon:r,onConfirm:i,onCancel:a}){let[o,s]=(0,K.useState)(e),[c,l]=(0,K.useState)(null),[u,d]=(0,K.useState)(!1),f=(0,K.useRef)(null),p=(0,K.useRef)(!1);(0,K.useEffect)(()=>{let t=f.current;t&&requestAnimationFrame(()=>{if(t.focus(),e){let n=e.lastIndexOf(`.`);t.setSelectionRange(0,n>0?n:e.length)}})},[e]);let m=(0,K.useCallback)(async()=>{if(p.current||u)return;let e=o.trim();if(!e){a();return}p.current=!0,d(!0),l(null);try{await i(e)}catch(e){p.current=!1,l(e instanceof Error?e.message:`Failed`),d(!1)}},[o,u,i,a]);function h(e){e.key===`Enter`?(e.preventDefault(),m()):e.key===`Escape`&&(e.preventDefault(),a())}function g(){p.current||m()}let _=r===`folder`?Lt:At;return(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:H(`flex items-center w-full gap-1.5 px-2 py-0.5`,`min-h-[32px] text-left`),style:{paddingLeft:`${n*16+8}px`},children:[(0,q.jsx)(`span`,{className:`w-3.5 shrink-0`}),(0,q.jsx)(_,{className:`size-4 shrink-0 text-text-secondary`}),(0,q.jsx)(`input`,{ref:f,value:o,onChange:e=>{s(e.target.value),l(null)},onKeyDown:h,onBlur:g,placeholder:t,disabled:u,className:H(`flex-1 min-w-0 bg-input text-sm px-1.5 py-0.5 rounded border outline-none`,`focus:ring-1 focus:ring-primary/50`,c?`border-destructive`:`border-primary`)})]}),c&&(0,q.jsx)(`p`,{className:`text-[10px] text-destructive truncate`,style:{paddingLeft:`${n*16+8+14+22}px`},children:c})]})}var Vs={ts:{icon:xt,color:`text-blue-400`},tsx:{icon:xt,color:`text-blue-400`},js:{icon:xt,color:`text-yellow-400`},jsx:{icon:xt,color:`text-yellow-400`},py:{icon:xt,color:`text-green-400`},rs:{icon:xt,color:`text-orange-400`},go:{icon:xt,color:`text-cyan-400`},c:{icon:xt,color:`text-blue-300`},cpp:{icon:xt,color:`text-blue-300`},java:{icon:xt,color:`text-red-400`},rb:{icon:xt,color:`text-red-400`},php:{icon:xt,color:`text-purple-400`},swift:{icon:xt,color:`text-orange-400`},kt:{icon:xt,color:`text-purple-400`},dart:{icon:xt,color:`text-cyan-400`},sh:{icon:xt,color:`text-green-300`},html:{icon:xt,color:`text-orange-400`},css:{icon:xt,color:`text-blue-400`},scss:{icon:xt,color:`text-pink-400`},json:{icon:bt,color:`text-yellow-400`},yaml:{icon:kt,color:`text-orange-300`},yml:{icon:kt,color:`text-orange-300`},toml:{icon:kt,color:`text-orange-300`},ini:{icon:kt,color:`text-orange-300`},env:{icon:kt,color:`text-yellow-300`},csv:{icon:Dt,color:`text-green-400`},xls:{icon:Dt,color:`text-green-400`},xlsx:{icon:Dt,color:`text-green-400`},md:{icon:Ot,color:`text-text-secondary`},txt:{icon:Ot,color:`text-text-secondary`},log:{icon:Ot,color:`text-text-subtle`},pdf:{icon:Ot,color:`text-red-400`},png:{icon:wt,color:`text-green-400`},jpg:{icon:wt,color:`text-green-400`},jpeg:{icon:wt,color:`text-green-400`},gif:{icon:wt,color:`text-green-400`},svg:{icon:wt,color:`text-yellow-400`},webp:{icon:wt,color:`text-green-400`},ico:{icon:wt,color:`text-green-400`},bmp:{icon:wt,color:`text-green-400`},mp4:{icon:Tt,color:`text-purple-400`},webm:{icon:Tt,color:`text-purple-400`},mov:{icon:Tt,color:`text-purple-400`},avi:{icon:Tt,color:`text-purple-400`},mkv:{icon:Tt,color:`text-purple-400`},mp3:{icon:Ct,color:`text-pink-400`},wav:{icon:Ct,color:`text-pink-400`},ogg:{icon:Ct,color:`text-pink-400`},flac:{icon:Ct,color:`text-pink-400`},db:{icon:fe,color:`text-amber-400`},sqlite:{icon:fe,color:`text-amber-400`},sqlite3:{icon:fe,color:`text-amber-400`},sql:{icon:fe,color:`text-amber-400`},zip:{icon:yt,color:`text-amber-300`},tar:{icon:yt,color:`text-amber-300`},gz:{icon:yt,color:`text-amber-300`},rar:{icon:yt,color:`text-amber-300`},"7z":{icon:yt,color:`text-amber-300`}},Hs={icon:At};function Us(e){return Vs[e.split(`.`).pop()?.toLowerCase()??``]??Hs}function Ws({node:e,isDir:t,projectName:n,selectedFiles:r,compareSelection:i,clipboard:a,onAction:o}){return(0,q.jsxs)(Ms,{children:[t&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ns,{onClick:()=>o(`new-file`,e),children:`New File`}),(0,q.jsx)(Ns,{onClick:()=>o(`new-folder`,e),children:`New Folder`}),(0,q.jsx)(Ps,{})]}),(0,q.jsx)(Ns,{onClick:()=>o(`cut`,e),children:`Cut`}),(0,q.jsx)(Ns,{onClick:()=>o(`copy-file`,e),children:`Copy`}),t&&a&&(0,q.jsx)(Ns,{onClick:()=>o(`paste`,e),children:`Paste`}),(0,q.jsx)(Ps,{}),(0,q.jsx)(Ns,{onClick:()=>o(`rename`,e),children:`Rename`}),(0,q.jsx)(Ns,{variant:`destructive`,onClick:()=>o(`delete`,e),children:`Delete`}),(0,q.jsx)(Ps,{}),(0,q.jsx)(Ns,{onClick:()=>o(`copy-path`,e),children:`Copy Path`}),(0,q.jsx)(Ps,{}),(0,q.jsxs)(Ns,{onClick:()=>o(`download`,e),children:[(0,q.jsx)(Ee,{className:`size-3.5 mr-2`}),`Download`,t?` as Zip`:``]}),!t&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ps,{}),(0,q.jsx)(Ns,{onClick:()=>o(`select-for-compare`,e),children:`Select for Compare`}),i&&i.projectName===n&&i.filePath!==e.path&&(0,q.jsxs)(Ns,{onClick:()=>o(`compare-with-selected`,e),children:[`Compare with Selected (`,i.label,`)`]})]}),!t&&r.length===2&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ps,{}),(0,q.jsx)(Ns,{onClick:()=>o(`compare-selected`,e),children:`Compare Selected`})]})]})}function Gs(e){return e.dataTransfer.types.includes(`Files`)&&!e.dataTransfer.types.includes(`application/x-ppm-path`)}var Ks=(0,K.memo)(function e({node:t,depth:n,projectName:r,onAction:i,onFileDrop:a,onFileOpen:o}){let{expandedPaths:s,loadedPaths:c,inflight:l,toggleExpand:u,selectedFiles:d,toggleFileSelect:f,inlineAction:p,clearInlineAction:m,clipboard:h,focusedPath:g,setFocusedPath:_}=Ba(hs(e=>({expandedPaths:e.expandedPaths,loadedPaths:e.loadedPaths,inflight:e.inflight,toggleExpand:e.toggleExpand,selectedFiles:e.selectedFiles,toggleFileSelect:e.toggleFileSelect,inlineAction:e.inlineAction,clearInlineAction:e.clearInlineAction,clipboard:e.clipboard,focusedPath:e.focusedPath,setFocusedPath:e.setFocusedPath}))),v=W(e=>e.openTab),y=Ka(e=>e.selection),b=t.type===`directory`,x=Rs(e=>(b?e.folderStatuses.get(r):e.fileStatuses.get(r))?.get(t.path)),S=x?Fs[x]:void 0,C=s.has(t.path),w=d.includes(t.path),T=t.ignored===!0,E=h?.operation===`cut`&&h.paths.includes(t.path),D=g===t.path,O=b&&C&&!c.has(t.path)&&l.has(t.path),[k,ee]=(0,K.useState)(!1),A=(0,K.useRef)(0),te=(0,K.useRef)(null);(0,K.useEffect)(()=>{D&&te.current&&te.current.scrollIntoView({block:`nearest`})},[D]);function ne(e){if(e.metaKey||e.ctrlKey){_(t.path),f(t.path);return}if(e.shiftKey&&g!=null){let e=Va(),n=e.indexOf(g),r=e.indexOf(t.path);if(n>=0&&r>=0){let t=Math.min(n,r),i=Math.max(n,r);Ba.getState().setSelectedFiles(e.slice(t,i+1))}return}if(_(t.path),Ba.getState().clearSelection(),b){u(r,t.path);return}let n=t.name.split(`.`).pop()?.toLowerCase()??``;v({type:n===`db`||n===`sqlite`||n===`sqlite3`?`sqlite`:`editor`,title:t.name,metadata:{filePath:t.path,projectName:r},projectId:r,closable:!0}),o?.()}function re(e){let n=b?`${t.path}/`:t.path;e.dataTransfer.setData(`application/x-ppm-path`,n),e.dataTransfer.setData(`text/plain`,t.name),e.dataTransfer.effectAllowed=`copyMove`}function j(e){return b?Gs(e)||e.dataTransfer.types.includes(`application/x-ppm-path`):!1}function M(e){j(e)&&(e.preventDefault(),e.stopPropagation(),A.current++,A.current===1&&ee(!0))}function N(e){b&&(e.stopPropagation(),A.current--,A.current===0&&ee(!1))}function ie(e){j(e)&&(e.preventDefault(),e.stopPropagation(),e.dataTransfer.dropEffect=Gs(e)?`copy`:`move`)}function ae(e){if(!b)return;if(e.preventDefault(),e.stopPropagation(),A.current=0,ee(!1),Gs(e)){e.dataTransfer.files.length>0&&a(t.path,e.dataTransfer.files);return}let n=e.dataTransfer.getData(`application/x-ppm-path`).replace(/\/$/,``);if(!n||n===t.path||t.path.startsWith(`${n}/`))return;let i=n.includes(`/`)?n.slice(0,n.lastIndexOf(`/`)):``;if(i===t.path)return;let o=n.includes(`/`)?n.slice(n.lastIndexOf(`/`)+1):n,s=t.path?`${t.path}/${o}`:o;V.post(`${B(r)}/files/move`,{source:n,destination:s}).then(()=>{let e=Ba.getState();e.invalidateIndex(),e.loadIndex(r),e.invalidateFolder(r,i),e.invalidateFolder(r,t.path)}).catch(e=>{tr.error(e instanceof Error?e.message:`Move failed`)})}let{icon:P,color:F}=b?{icon:C?Mt:Lt,color:`text-primary`}:Us(t.name),I=t.name,oe=t;if(b&&C&&t.children){let e=t;for(;e.children&&e.children.length===1&&e.children[0].type===`directory`&&s.has(e.children[0].path);)e=e.children[0],I+=`/${e.name}`;e!==t&&(oe=e)}let L=oe.children?[...oe.children].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1):[],se=p?.type===`rename`&&p.existingNode?.path===t.path,le=b&&p!=null&&(p.parentPath===t.path||p.parentPath===oe.path)&&p.type!==`rename`;return(0,q.jsxs)(`div`,{onDragEnter:b?M:void 0,onDragLeave:b?N:void 0,onDragOver:b?ie:void 0,onDrop:b?ae:void 0,children:[se?(0,q.jsx)(Bs,{defaultValue:t.name,placeholder:t.name,depth:n,icon:b?`folder`:`file`,onConfirm:async e=>{if(e===t.name){m();return}let n=t.path.includes(`/`)?t.path.slice(0,t.path.lastIndexOf(`/`)):``,i=n?`${n}/${e}`:e;await V.post(`${B(r)}/files/rename`,{oldPath:t.path,newPath:i}),m();let a=Ba.getState();a.invalidateIndex(),a.loadIndex(r),a.invalidateFolder(r,n)},onCancel:m}):(0,q.jsxs)(As,{children:[(0,q.jsx)(js,{asChild:!0,children:(0,q.jsxs)(`button`,{ref:te,draggable:!0,onDragStart:re,onClick:ne,className:H(`flex items-center w-full gap-1.5 px-2 py-1 rounded-sm text-sm`,`min-h-[32px] hover:bg-surface-elevated transition-colors text-left`,`select-none`,(T||E)&&`opacity-40`,D&&`bg-surface-elevated`,w&&`bg-primary/15 ring-1 ring-primary/40`,k&&`ring-1 ring-dashed ring-primary bg-primary/10`),style:{paddingLeft:`${n*16+8}px`},children:[b?O?(0,q.jsx)(G,{className:`size-3.5 shrink-0 text-text-subtle animate-spin`}):C?(0,q.jsx)(ce,{className:`size-3.5 shrink-0 text-text-subtle`}):(0,q.jsx)(pe,{className:`size-3.5 shrink-0 text-text-subtle`}):(0,q.jsx)(`span`,{className:`w-3.5 shrink-0`}),(0,q.jsx)(P,{className:H(`size-4 shrink-0`,F??`text-text-secondary`)}),(0,q.jsx)(`span`,{className:H(`truncate`,S),children:I}),x&&!b&&(0,q.jsx)(`span`,{className:H(`text-[10px] ml-auto shrink-0 font-mono`,S),children:x})]})}),(0,q.jsx)(Ws,{node:t,isDir:b,projectName:r,selectedFiles:d,compareSelection:y,clipboard:h,onAction:i})]}),b&&C&&le&&(0,q.jsx)(Bs,{defaultValue:``,placeholder:p.type===`new-file`?`filename.ts`:`folder-name`,depth:n+1,icon:p.type===`new-file`?`file`:`folder`,onConfirm:async e=>{let n=p.type===`new-file`?`file`:`directory`,i=oe.path||t.path,a=i?`${i}/${e}`:e;await V.post(`${B(r)}/files/create`,{path:a,type:n}),m();let o=Ba.getState();o.invalidateIndex(),o.loadIndex(r),o.invalidateFolder(r,i)},onCancel:m}),b&&C&&L.map(t=>(0,q.jsx)(e,{node:t,depth:n+1,projectName:r,onAction:i,onFileDrop:a,onFileOpen:o},t.path))]})});function qs({projectName:e,setExpanded:t}){let[n,r]=(0,K.useState)(!1),i=(0,K.useRef)(0),a=(0,K.useCallback)(async(n,r)=>{if(!e)return;let i=r.length,a=i===1?r[0].name:`${i} files`,o=tr.loading(`Uploading ${a}…`),s=new FormData;s.append(`targetDir`,n);for(let e of r)s.append(`files`,e);let c={},l=Pe();l&&(c.Authorization=`Bearer ${l}`);try{let r=await fetch(`${B(e)}/files/upload`,{method:`POST`,headers:c,body:s});if(!r.ok){let e=await r.json();tr.error(`Upload failed: ${e.error??`Unknown error`}`,{id:o});return}tr.success(`Uploaded ${a}`,{id:o});let i=Ba.getState();i.loadedPaths.has(n)&&await i.invalidateFolder(e,n),n&&t(n,!0)}catch(e){tr.error(e instanceof Error?e.message:`Upload failed`,{id:o})}},[e,t]);function o(e){Gs(e)&&(e.preventDefault(),i.current++,i.current===1&&r(!0))}function s(){i.current--,i.current===0&&r(!1)}function c(e){Gs(e)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)}function l(e){Gs(e)&&(e.preventDefault(),i.current=0,r(!1),e.dataTransfer.files.length>0&&a(``,e.dataTransfer.files))}return{uploadFiles:a,isRootDragOver:n,handleRootDragEnter:o,handleRootDragLeave:s,handleRootDragOver:c,handleRootDrop:l}}function Js({tree:e,expandedPaths:t,focusedPath:n,setFocusedPath:r,setExpanded:i,toggleExpand:a,projectName:o,onAction:s}){let c=(0,K.useMemo)(()=>{let n=[];function r(e){let i=[...e].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1);for(let e of i){let i=e;if(e.type===`directory`&&t.has(e.path)&&e.children)for(;i.children&&i.children.length===1&&i.children[0].type===`directory`&&t.has(i.children[0].path);)i=i.children[0];n.push(i),i.type===`directory`&&t.has(i.path)&&i.children&&r(i.children)}}return r(e),n},[e,t]),l=(0,K.useMemo)(()=>c.find(e=>e.path===n)??null,[c,n]);function u(e){if(!o)return;let u=e.target;if(u.tagName===`INPUT`||u.tagName===`TEXTAREA`)return;let d=n==null?-1:c.findIndex(e=>e.path===n);switch(e.key){case`ArrowDown`:e.preventDefault(),r(c[d<c.length-1?d+1:0].path);break;case`ArrowUp`:e.preventDefault(),r(c[d>0?d-1:c.length-1].path);break;case`ArrowRight`:e.preventDefault(),l?.type===`directory`&&!t.has(l.path)&&a(o,l.path);break;case`ArrowLeft`:if(e.preventDefault(),l?.type===`directory`&&t.has(l.path))i(l.path,!1);else if(l){let e=l.path.includes(`/`)?l.path.slice(0,l.path.lastIndexOf(`/`)):``;if(e||e===``){let t=c.find(t=>t.path===e);t&&r(t.path)}}break;case`Enter`:e.preventDefault(),l&&s(l.type===`directory`?`toggle-expand`:`open-file`,l);break;case`F2`:e.preventDefault(),l&&s(`rename`,l);break;case`Delete`:e.preventDefault(),l&&s(`delete`,l);break}}return{visibleNodes:c,focusedNode:l,handleTreeKeyDown:u}}var Ys={name:``,path:``,type:`directory`};function Xs({onFileOpen:e}={}){let{tree:t,loading:n,error:r,loadRoot:i,loadIndex:a,loadChildren:o,invalidateIndex:s,invalidateFolder:c,reset:l,selectedFiles:u,clearSelection:d,setExpanded:f,fetchTree:p,inlineAction:m,setInlineAction:h,clearInlineAction:g,clipboard:_,setClipboard:v,collapseAll:y,focusedPath:b,setFocusedPath:x,expandedPaths:S,toggleExpand:C}=Ba(hs(e=>({tree:e.tree,loading:e.loading,error:e.error,loadRoot:e.loadRoot,loadIndex:e.loadIndex,loadChildren:e.loadChildren,invalidateIndex:e.invalidateIndex,invalidateFolder:e.invalidateFolder,reset:e.reset,selectedFiles:e.selectedFiles,clearSelection:e.clearSelection,setExpanded:e.setExpanded,fetchTree:e.fetchTree,inlineAction:e.inlineAction,setInlineAction:e.setInlineAction,clearInlineAction:e.clearInlineAction,clipboard:e.clipboard,setClipboard:e.setClipboard,collapseAll:e.collapseAll,focusedPath:e.focusedPath,setFocusedPath:e.setFocusedPath,expandedPaths:e.expandedPaths,toggleExpand:e.toggleExpand}))),w=We(e=>e.activeProject),T=W(e=>e.openTab),[E,D]=(0,K.useState)(null),O=(0,K.useCallback)(()=>{w&&(l(),i(w.name),a(w.name))},[w,l,i,a]),k=(0,K.useCallback)(async()=>{if(!w)return;let{tabs:e,activeTabId:t}=W.getState(),n=e.find(e=>e.id===t)?.metadata?.filePath;if(!n)return;let r=n.split(`/`),i=w.name;for(let e=1;e<r.length;e++){let t=r.slice(0,e).join(`/`);f(t,!0),await o(i,t)}x(n)},[w,f,o,x]),ee=(0,K.useCallback)(async e=>{if(!w||!_)return;let t=w.name,n=_.operation===`cut`?`move`:`copy`;for(let r of _.paths){let i=r.includes(`/`)?r.slice(r.lastIndexOf(`/`)+1):r,a=e?`${e}/${i}`:i;try{await V.post(`${B(t)}/files/${n}`,{source:r,destination:a})}catch(e){tr.error(e instanceof Error?e.message:`Failed to ${n}`)}}_.operation===`cut`&&v(null),O()},[w,_,v,O]),A=(0,K.useRef)(null),te=(0,K.useCallback)(e=>{if(!w)return;let t=e.target;t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.isContentEditable||(e.metaKey||e.ctrlKey)&&(e.key===`x`&&u.length>0?(e.preventDefault(),v({paths:[...u],operation:`cut`})):e.key===`c`&&u.length>0?(e.preventDefault(),v({paths:[...u],operation:`copy`})):e.key===`v`&&_&&(e.preventDefault(),ee(``)))},[w,u,_,v,ee]),{handleTreeKeyDown:ne}=Js({tree:t,expandedPaths:S,focusedPath:b,setFocusedPath:x,setExpanded:f,toggleExpand:C,projectName:w?.name,onAction:P});(0,K.useEffect)(()=>{if(!w)return;l();let e=w.name;i(e).then(()=>{Ba.getState().setExpanded(``,!0)}),a(e)},[w?.name]),(0,K.useEffect)(()=>{if(!w)return;let e=w.name,t,n=n=>{let r=n.detail;r.projectName===e&&(clearTimeout(t),t=setTimeout(()=>{let t=Ba.getState(),n=r.path??``,i=n.includes(`/`)?n.slice(0,n.lastIndexOf(`/`)):``;t.invalidateIndex(),t.loadIndex(e),t.invalidateFolder(e,i)},300))};return window.addEventListener(`file:changed`,n),()=>{clearTimeout(t),window.removeEventListener(`file:changed`,n)}},[w]);let{uploadFiles:re,isRootDragOver:j,handleRootDragEnter:M,handleRootDragLeave:N,handleRootDragOver:ie,handleRootDrop:ae}=qs({projectName:w?.name,setExpanded:f});async function P(t,n){if(t===`toggle-expand`&&n.type===`directory`){C(w.name,n.path);return}if(t===`open-file`&&n.type===`file`){let t=n.name.split(`.`).pop()?.toLowerCase()??``;T({type:t===`db`||t===`sqlite`||t===`sqlite3`?`sqlite`:`editor`,title:n.name,metadata:{filePath:n.path,projectName:w.name},projectId:w.name,closable:!0}),e?.();return}if(t===`cut`){v({paths:u.length>0&&u.includes(n.path)?[...u]:[n.path],operation:`cut`});return}if(t===`copy-file`){v({paths:u.length>0&&u.includes(n.path)?[...u]:[n.path],operation:`copy`});return}if(t===`paste`&&n.type===`directory`){ee(n.path);return}if(t===`copy-path`){navigator.clipboard.writeText(n.path).catch(()=>{});return}if(t===`select-for-compare`){Ka.getState().setSelection({filePath:n.path,projectName:w.name,label:n.name});return}if(t===`compare-with-selected`){let e=Ka.getState().selection;if(!e)return;try{await Ja({path:e.filePath,dirtyContent:e.dirtyContent},{path:n.path},w.name),Ka.getState().clearSelection()}catch(e){let t=e instanceof Error?e.message:`Compare failed`;tr.error(t)}return}if(t===`download`){n.type===`directory`?Ko(w.name,n.path):Go(w.name,n.path);return}if(t===`compare-selected`&&u.length===2){let e=u[0],t=u[1];T({type:`git-diff`,title:`Compare ${Re(e)} vs ${Re(t)}`,closable:!0,metadata:{projectName:w.name,file1:e,file2:t},projectId:w.name}),d();return}if(t===`new-file`||t===`new-folder`){let e=n.type===`directory`?n.path:``;e&&f(e,!0),h({type:t,parentPath:e});return}if(t===`rename`){h({type:`rename`,parentPath:n.path.includes(`/`)?n.path.slice(0,n.path.lastIndexOf(`/`)):``,existingNode:n});return}D({action:t,node:n})}if(!w)return(0,q.jsx)(`div`,{className:`p-3 text-xs text-text-subtle`,children:`Select a project to browse files.`});if(n&&t.length===0)return(0,q.jsxs)(`div`,{className:`flex items-center gap-2 p-3 text-xs text-text-secondary`,children:[(0,q.jsx)(G,{className:`size-3 animate-spin`}),`Loading files...`]});if(r)return(0,q.jsxs)(`div`,{className:`p-3 text-xs text-error`,children:[r,(0,q.jsx)(`button`,{onClick:O,className:`block mt-1 text-primary underline`,children:`Retry`})]});let F=[...t].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1),I=`p-1 rounded-sm text-text-secondary hover:text-foreground hover:bg-surface-elevated transition-colors`;return(0,q.jsxs)(`div`,{ref:A,className:H(`flex flex-col h-full outline-none`,j&&`bg-primary/5`),tabIndex:0,onKeyDown:e=>{te(e),ne(e)},onDragEnter:M,onDragLeave:N,onDragOver:ie,onDrop:ae,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-0.5 px-2 h-8 border-b border-border shrink-0 sticky top-0 z-10 bg-surface`,children:[(0,q.jsx)(`button`,{onClick:()=>P(`new-file`,Ys),title:`New File`,className:I,children:(0,q.jsx)(Et,{className:`size-3.5`})}),(0,q.jsx)(`button`,{onClick:()=>P(`new-folder`,Ys),title:`New Folder`,className:I,children:(0,q.jsx)(Nt,{className:`size-3.5`})}),(0,q.jsx)(`div`,{className:`flex-1`}),(0,q.jsx)(`button`,{onClick:k,title:`Reveal Active File`,className:I,children:(0,q.jsx)(ht,{className:`size-3.5`})}),(0,q.jsx)(`button`,{onClick:y,title:`Collapse All`,className:I,children:(0,q.jsx)(at,{className:`size-3.5`})}),(0,q.jsx)(`button`,{onClick:O,title:`Refresh`,className:I,children:(0,q.jsx)(je,{className:`size-3.5`})})]}),(0,q.jsxs)(As,{children:[(0,q.jsx)(js,{asChild:!0,children:(0,q.jsx)(gs,{className:`flex-1`,children:(0,q.jsxs)(`div`,{className:`py-1`,children:[m&&m.parentPath===``&&m.type!==`rename`&&(0,q.jsx)(Bs,{defaultValue:``,placeholder:m.type===`new-file`?`filename.ts`:`folder-name`,depth:0,icon:m.type===`new-file`?`file`:`folder`,onConfirm:async e=>{let t=m.type===`new-file`?`file`:`directory`;await V.post(`${B(w.name)}/files/create`,{path:e,type:t}),g(),O()},onCancel:g}),F.map(t=>(0,q.jsx)(Ks,{node:t,depth:0,projectName:w.name,onAction:P,onFileDrop:re,onFileOpen:e},t.path)),F.length===0&&(0,q.jsx)(`p`,{className:`p-3 text-xs text-text-subtle`,children:`Empty project.`})]})})}),(0,q.jsxs)(Ms,{children:[(0,q.jsxs)(Ns,{onClick:()=>P(`new-file`,Ys),children:[(0,q.jsx)(Et,{className:`size-3.5 mr-2`}),`New File`]}),(0,q.jsxs)(Ns,{onClick:()=>P(`new-folder`,Ys),children:[(0,q.jsx)(Nt,{className:`size-3.5 mr-2`}),`New Folder`]}),(0,q.jsx)(Ps,{}),(0,q.jsxs)(Ns,{onClick:O,children:[(0,q.jsx)(je,{className:`size-3.5 mr-2`}),`Refresh`]})]})]}),E?.action===`delete`&&(0,q.jsx)(Jo,{action:`delete`,node:E.node,projectName:w.name,onClose:()=>D(null),onRefresh:O})]})}function Zs({open:e,onOpenChange:t,projectName:n,onCreated:r}){let[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(`new`),[c,l]=(0,K.useState)(``),[u,d]=(0,K.useState)(``),[f,p]=(0,K.useState)([]),[m,h]=(0,K.useState)(!1),[g,_]=(0,K.useState)(null);(0,K.useEffect)(()=>{!e||!n||V.get(`${B(n)}/git/branches`).then(e=>{let t=e.filter(e=>!e.remote).map(e=>e.name);p(t),t.length>0&&!u&&d(t[0])}).catch(()=>p([]))},[e,n]);function v(){a(``),s(`new`),l(``),_(null)}function y(){v(),t(!1)}async function b(){if(!i.trim()){_(`Worktree path is required`);return}let e=o===`existing`?u:void 0,t=o===`new`&&c.trim()?c.trim():void 0;h(!0),_(null);try{await V.post(`${B(n)}/git/worktree/add`,{path:i.trim(),branch:e,newBranch:t}),r(),y()}catch(e){_(e instanceof Error?e.message:`Failed to create worktree`)}finally{h(!1)}}let x=(0,q.jsxs)(`div`,{className:`space-y-4`,children:[g&&(0,q.jsx)(`p`,{className:`text-xs text-destructive bg-destructive/10 px-3 py-2 rounded-md`,children:g}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(L,{htmlFor:`wt-path`,children:`Worktree Path`}),(0,q.jsx)(z,{id:`wt-path`,placeholder:`../my-feature`,value:i,onChange:e=>a(e.target.value),autoFocus:!0,className:`w-full`}),(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Relative or absolute path for the new worktree directory`})]}),(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsx)(L,{children:`Branch`}),(0,q.jsxs)(`div`,{className:`flex gap-3`,children:[(0,q.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,q.jsx)(`input`,{type:`radio`,checked:o===`new`,onChange:()=>s(`new`),className:`accent-primary`}),(0,q.jsx)(`span`,{className:`text-sm`,children:`Create new branch`})]}),(0,q.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,q.jsx)(`input`,{type:`radio`,checked:o===`existing`,onChange:()=>s(`existing`),className:`accent-primary`}),(0,q.jsx)(`span`,{className:`text-sm`,children:`Use existing branch`})]})]}),o===`new`?(0,q.jsx)(z,{placeholder:`feature/my-branch`,value:c,onChange:e=>l(e.target.value),className:`w-full`}):(0,q.jsxs)(`select`,{value:u,onChange:e=>d(e.target.value),className:`w-full h-9 px-3 rounded-md border border-input bg-transparent text-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,children:[f.length===0&&(0,q.jsx)(`option`,{value:``,children:`No branches available`}),f.map(e=>(0,q.jsx)(`option`,{value:e,children:e},e))]})]})]}),S=(0,q.jsxs)(`div`,{className:`flex gap-2 justify-end pt-2`,children:[(0,q.jsx)(R,{variant:`outline`,size:`sm`,onClick:y,disabled:m,children:`Cancel`}),(0,q.jsxs)(R,{size:`sm`,onClick:b,disabled:m||!i.trim(),children:[m?(0,q.jsx)(G,{className:`size-3 animate-spin mr-1`}):null,`Create Worktree`]})]});return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(_e,{open:e,onOpenChange:e=>{e||y()},children:(0,q.jsxs)(ye,{className:`hidden md:grid sm:max-w-md`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:`Add Worktree`})}),x,(0,q.jsx)(me,{children:S})]})}),e&&(0,q.jsxs)(`div`,{className:`md:hidden`,children:[(0,q.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/50`,onClick:y}),(0,q.jsxs)(`div`,{className:H(`fixed bottom-0 left-0 right-0 z-50 bg-background rounded-t-2xl border-t border-border shadow-2xl`,`animate-in slide-in-from-bottom-2 duration-200`),children:[(0,q.jsx)(`div`,{className:`flex justify-center pt-3 pb-1`,children:(0,q.jsx)(`div`,{className:`w-10 h-1 rounded-full bg-border`})}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-border`,children:[(0,q.jsx)(`span`,{className:`text-sm font-semibold`,children:`Add Worktree`}),(0,q.jsx)(`button`,{onClick:y,className:`flex items-center justify-center size-7 rounded-md hover:bg-surface-elevated transition-colors`,children:(0,q.jsx)(Ae,{className:`size-4`})})]}),(0,q.jsxs)(`div`,{className:`px-4 py-4 space-y-4 max-h-[70vh] overflow-y-auto`,children:[x,S]})]})]})]})}function Qs({projectName:e,projectPath:t}){let[n,r]=(0,K.useState)(!1),[i,a]=(0,K.useState)([]),[o,s]=(0,K.useState)(!1),[c,l]=(0,K.useState)(null),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(null),[m,h]=(0,K.useState)(!1),g=(0,K.useCallback)(async()=>{if(e){s(!0),l(null);try{a(await V.get(`${B(e)}/git/worktrees`))}catch(e){l(e instanceof Error?e.message:`Failed to load worktrees`)}finally{s(!1)}}},[e]);(0,K.useEffect)(()=>{n&&g()},[n,g]);async function _(t=!1){if(f){h(!0);try{await V.post(`${B(e)}/git/worktree/remove`,{path:f.path,force:t}),p(null),await g()}catch(e){l(e instanceof Error?e.message:`Failed to remove worktree`),p(null)}finally{h(!1)}}}async function v(){try{await V.post(`${B(e)}/git/worktree/prune`,{}),await g()}catch(e){l(e instanceof Error?e.message:`Prune failed`)}}return(0,q.jsxs)(`div`,{className:`border-t border-border`,children:[(0,q.jsxs)(`button`,{type:`button`,className:`flex items-center justify-between w-full px-3 py-2 hover:bg-muted/50 transition-colors`,onClick:()=>r(e=>!e),children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[n?(0,q.jsx)(ce,{className:`size-3.5 text-muted-foreground`}):(0,q.jsx)(pe,{className:`size-3.5 text-muted-foreground`}),(0,q.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase`,children:`Worktrees`}),i.length>0&&(0,q.jsx)(`span`,{className:`text-[10px] bg-muted text-muted-foreground rounded px-1`,children:i.length})]}),(0,q.jsx)(`div`,{className:`flex items-center gap-0.5`,children:n&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`span`,{role:`button`,tabIndex:0,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-foreground transition-colors`,onClick:e=>{e.stopPropagation(),v()},onKeyDown:e=>{e.key===`Enter`&&(e.stopPropagation(),v())},title:`Prune stale worktrees`,"aria-label":`Prune stale worktrees`,children:(0,q.jsx)(je,{className:H(`size-3`,o&&`animate-spin`)})}),(0,q.jsx)(`span`,{role:`button`,tabIndex:0,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-foreground transition-colors`,onClick:e=>{e.stopPropagation(),d(!0)},onKeyDown:e=>{e.key===`Enter`&&(e.stopPropagation(),d(!0))},title:`Add worktree`,"aria-label":`Add worktree`,children:(0,q.jsx)(ke,{className:`size-3`})})]})})]}),n&&(0,q.jsxs)(`div`,{className:`pb-1`,children:[c&&(0,q.jsx)(`p`,{className:`text-xs text-destructive px-3 py-1`,children:c}),o&&i.length===0&&(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 text-muted-foreground`,children:[(0,q.jsx)(G,{className:`size-3.5 animate-spin`}),(0,q.jsx)(`span`,{className:`text-xs`,children:`Loading worktrees...`})]}),!o&&i.length===0&&!c&&(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground px-3 py-1`,children:`No worktrees found.`}),i.map(e=>(0,q.jsx)($s,{worktree:e,isActive:!!t&&e.path===t,onRemove:()=>p(e)},e.path)),(0,q.jsxs)(`button`,{type:`button`,className:`flex items-center gap-2 w-full px-3 py-2 text-xs text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors`,onClick:()=>d(!0),children:[(0,q.jsx)(ke,{className:`size-3.5`}),`Add worktree`]})]}),(0,q.jsx)(Zs,{open:u,onOpenChange:d,projectName:e,onCreated:g}),(0,q.jsx)(_e,{open:!!f,onOpenChange:e=>!e&&p(null),children:(0,q.jsxs)(ye,{showCloseButton:!1,children:[(0,q.jsxs)(ve,{children:[(0,q.jsx)(be,{children:`Remove Worktree`}),(0,q.jsxs)(ge,{children:[`Remove worktree at`,` `,(0,q.jsx)(`code`,{className:`px-1 py-0.5 rounded bg-muted text-xs font-mono`,children:f?.path}),f?.branch&&(0,q.jsxs)(q.Fragment,{children:[` (branch: `,(0,q.jsx)(`strong`,{children:f.branch}),`)`]}),`? The directory will be deleted.`]})]}),(0,q.jsxs)(me,{children:[(0,q.jsx)(R,{variant:`outline`,size:`sm`,onClick:()=>p(null),disabled:m,children:`Cancel`}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,onClick:()=>_(!0),disabled:m,children:m?(0,q.jsx)(G,{className:`size-3 animate-spin`}):`Force Remove`}),(0,q.jsx)(R,{variant:`destructive`,size:`sm`,onClick:()=>_(!1),disabled:m,children:m?(0,q.jsx)(G,{className:`size-3 animate-spin`}):`Remove`})]})]})})]})}function $s({worktree:e,isActive:t,onRemove:n}){let r=e.branch||e.head.slice(0,7)||`detached`,i=e.path.replace(/^\/home\/[^/]+/,`~`);return(0,q.jsxs)(`div`,{className:H(`group flex items-center gap-2 px-3 py-1.5 hover:bg-muted/50 transition-colors`,t&&`bg-accent/10`),children:[(0,q.jsx)(Rt,{className:`size-3.5 text-muted-foreground shrink-0`}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1 min-w-0`,children:[(0,q.jsx)(`span`,{className:`text-xs font-mono truncate`,title:e.branch,children:r}),t&&(0,q.jsx)(le,{className:`size-3 text-green-500 shrink-0`}),e.isMain&&(0,q.jsx)(`span`,{className:`text-[10px] bg-muted text-muted-foreground rounded px-1 shrink-0`,children:`main`}),e.locked&&(0,q.jsx)(`span`,{title:e.lockReason??`locked`,children:(0,q.jsx)(j,{className:`size-3 text-yellow-500 shrink-0`})}),e.prunable&&(0,q.jsx)(`span`,{title:`stale/prunable`,children:(0,q.jsx)(ot,{className:`size-3 text-destructive shrink-0`})})]}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground truncate`,title:e.path,children:i})]}),!e.isMain&&(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-destructive opacity-0 group-hover:opacity-100 can-hover:opacity-0 can-hover:group-hover:opacity-100 transition-all active:scale-95 shrink-0`,onClick:n,title:`Remove worktree`,"aria-label":`Remove worktree`,children:(0,q.jsx)(Oe,{className:`size-3`})})]})}function ec({...e}){return(0,q.jsx)(s,{"data-slot":`dropdown-menu`,...e})}function tc({...e}){return(0,q.jsx)(i,{"data-slot":`dropdown-menu-trigger`,...e})}function nc({className:e,sideOffset:t=4,...n}){return(0,q.jsx)(g,{children:(0,q.jsx)(a,{"data-slot":`dropdown-menu-content`,sideOffset:t,className:H(`z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,e),...n})})}function rc({className:e,inset:t,variant:n=`default`,...r}){return(0,q.jsx)(T,{"data-slot":`dropdown-menu-item`,"data-inset":t,"data-variant":n,className:H(`relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!`,e),...r})}function ic({...e}){return(0,q.jsx)(o,{"data-slot":`dropdown-menu-sub`,...e})}function ac({className:e,inset:t,children:n,...r}){return(0,q.jsxs)(S,{"data-slot":`dropdown-menu-sub-trigger`,"data-inset":t,className:H(`flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground`,e),...r,children:[n,(0,q.jsx)(pe,{className:`ml-auto size-4`})]})}function oc({className:e,...t}){return(0,q.jsx)(p,{"data-slot":`dropdown-menu-sub-content`,className:H(`z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,e),...t})}var sc={M:`text-yellow-500`,A:`text-green-500`,D:`text-red-500`,R:`text-blue-500`,C:`text-purple-500`,"?":`text-gray-400`};function cc(e){let t=[];for(let n of e){let e=n.path.split(`/`),r=t;for(let t=0;t<e.length;t++){let i=e[t],a=e.slice(0,t+1).join(`/`),o=t===e.length-1,s=r.find(e=>e.name===i);s||(s={name:i,fullPath:a,file:o?n:void 0,children:[]},r.push(s)),o&&(s.file=n),r=s.children}}return t}function lc(e){let t=[];e.file&&t.push(e.file);for(let n of e.children)t.push(...lc(n));return t}function uc({metadata:e,tabId:t,onNavigate:n}){let r=e?.projectName,[i,a]=(0,K.useState)(null),[o,s]=(0,K.useState)(!0),[c,l]=(0,K.useState)(null),[u,d]=(0,K.useState)(``),[f,p]=(0,K.useState)(!1),[m,h]=(0,K.useState)(null),{openTab:g}=W(hs(e=>({openTab:e.openTab}))),_=Fe(e=>e.gitStatusViewMode),v=Fe(e=>e.setGitStatusViewMode),y=We(e=>e.projects.find(e=>e.name===r)?.path),b=Rs(e=>e.setCount),x=(0,K.useCallback)(async()=>{if(r)try{s(!0);let e=await V.get(`${B(r)}/git/status`);a(e),b(r,e.staged.length+e.unstaged.length+e.untracked.length),l(null)}catch(e){l(e instanceof Error?e.message:`Failed to fetch status`)}finally{s(!1)}},[r,b]);(0,K.useEffect)(()=>{x();let e=setInterval(x,5e3);return()=>clearInterval(e)},[x]);let S=async e=>{if(r){p(!0);try{await V.post(`${B(r)}/git/stage`,{files:e}),await x()}catch(e){l(e instanceof Error?e.message:`Stage failed`)}finally{p(!1)}}},C=async e=>{if(r){p(!0);try{await V.post(`${B(r)}/git/unstage`,{files:e}),await x()}catch(e){l(e instanceof Error?e.message:`Unstage failed`)}finally{p(!1)}}},w=async e=>{if(r){p(!0);try{await V.post(`${B(r)}/git/discard`,{files:e}),await x()}catch(e){l(e instanceof Error?e.message:`Discard failed`)}finally{p(!1)}}},T=async()=>{m&&(await w(m.files),h(null))},E=async()=>{if(!(!r||!u.trim()||!i?.staged.length)){p(!0);try{await V.post(`${B(r)}/git/commit`,{message:u.trim()}),d(``),await x()}catch(e){l(e instanceof Error?e.message:`Commit failed`)}finally{p(!1)}}},D=async()=>{if(r){p(!0);try{await V.post(`${B(r)}/git/push`,{}),await x()}catch(e){l(e instanceof Error?e.message:`Push failed`)}finally{p(!1)}}},O=async()=>{if(r){p(!0);try{await V.post(`${B(r)}/git/pull`,{}),await x()}catch(e){l(e instanceof Error?e.message:`Pull failed`)}finally{p(!1)}}},k=e=>{g({type:`git-diff`,title:Re(e.path),closable:!0,metadata:{projectName:r,filePath:e.path},projectId:r??null}),n?.()},ee=e=>{g({type:`editor`,title:Re(e.path),closable:!0,metadata:{projectName:r,filePath:e.path},projectId:r??null}),n?.()},A=(0,K.useMemo)(()=>[...i?.unstaged??[],...i?.untracked.map(e=>({path:e,status:`?`}))??[]],[i]);return r?o&&!i?(0,q.jsxs)(`div`,{className:`flex items-center justify-center h-full gap-2 text-muted-foreground`,children:[(0,q.jsx)(G,{className:`size-5 animate-spin`}),(0,q.jsx)(`span`,{className:`text-sm`,children:`Loading git status...`})]}):c&&!i?(0,q.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-2 text-destructive text-sm`,children:[(0,q.jsx)(`p`,{children:c}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,onClick:x,children:`Retry`})]}):(0,q.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b shrink-0`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium`,children:i?.current?`On: ${i.current}`:`Git Status`}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(R,{variant:_===`flat`?`secondary`:`ghost`,size:`icon-xs`,onClick:()=>v(`flat`),title:`Flat view`,children:(0,q.jsx)(Zt,{className:`size-3.5`})}),(0,q.jsx)(R,{variant:_===`tree`?`secondary`:`ghost`,size:`icon-xs`,onClick:()=>v(`tree`),title:`Tree view`,children:(0,q.jsx)(It,{className:`size-3.5`})}),(0,q.jsx)(R,{variant:`ghost`,size:`icon-xs`,onClick:()=>{g({type:`git-log`,title:`Git Log`,projectId:r??null,closable:!0,metadata:{projectName:r}}),n?.()},title:`View Git Log`,children:(0,q.jsx)(zt,{className:`size-3.5`})}),(0,q.jsx)(R,{variant:`ghost`,size:`icon-xs`,onClick:x,disabled:f,children:(0,q.jsx)(je,{className:o?`animate-spin`:``})})]})]}),c&&(0,q.jsx)(`div`,{className:`px-3 py-1.5 text-xs text-destructive bg-destructive/10 shrink-0`,children:c}),r&&(0,q.jsx)(Qs,{projectName:r,projectPath:y}),(0,q.jsx)(gs,{className:`flex-1 overflow-hidden`,children:(0,q.jsxs)(`div`,{className:`p-1.5 space-y-2 overflow-hidden`,children:[(0,q.jsx)(fc,{title:`Staged Changes`,count:i?.staged.length??0,files:i?.staged??[],viewMode:_,actionIcon:(0,q.jsx)(nn,{className:`size-3`}),actionAllIcon:(0,q.jsx)(nn,{className:`size-3`}),actionTitle:`Unstage`,onAction:e=>C([e.path]),onActionAll:i?.staged.length?()=>C(i.staged.map(e=>e.path)):void 0,actionAllLabel:`Unstage All`,onFolderAction:e=>C(e.map(e=>e.path)),onClickFile:k,onOpenFile:ee,disabled:f}),(0,q.jsx)(fc,{title:`Changes`,count:A.length,files:A,viewMode:_,actionIcon:(0,q.jsx)(ke,{className:`size-3`}),actionAllIcon:(0,q.jsx)(ke,{className:`size-3`}),actionTitle:`Stage`,onAction:e=>S([e.path]),onActionAll:A.length?()=>S(A.map(e=>e.path)):void 0,actionAllLabel:`Stage All`,onFolderAction:e=>S(e.map(e=>e.path)),onClickFile:k,onOpenFile:ee,disabled:f,showRevert:!0,onRevert:e=>h({label:e.path,files:[e.path]}),onFolderRevert:(e,t)=>h({label:`${t}/ (${e.length} files)`,files:e.map(e=>e.path)})})]})}),(0,q.jsxs)(`div`,{className:`border-t p-2 space-y-2 shrink-0`,children:[(0,q.jsx)(`textarea`,{className:`w-full h-16 px-3 py-2 text-base md:text-sm text-foreground bg-surface border border-border rounded-lg resize-none focus:outline-none focus:border-ring placeholder:text-muted-foreground`,placeholder:`Commit message...`,value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&E()}}),(0,q.jsx)(R,{size:`sm`,className:`w-full`,disabled:f||!u.trim()||!i?.staged.length,onClick:E,children:f?(0,q.jsx)(G,{className:`size-3 animate-spin`}):`Commit (${i?.staged.length??0})`}),(0,q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`flex-1`,disabled:f,onClick:D,children:[(0,q.jsx)(et,{className:`size-3`}),`Push`]}),(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`flex-1`,disabled:f,onClick:O,children:[(0,q.jsx)(Qe,{className:`size-3`}),`Pull`]})]})]}),(0,q.jsx)(_e,{open:!!m,onOpenChange:e=>!e&&h(null),children:(0,q.jsxs)(ye,{showCloseButton:!1,children:[(0,q.jsxs)(ve,{children:[(0,q.jsx)(be,{children:`Discard Changes`}),(0,q.jsxs)(ge,{children:[`Are you sure you want to discard all changes to`,` `,(0,q.jsx)(`code`,{className:`px-1 py-0.5 rounded bg-muted text-sm font-mono`,children:m?.label}),`? This action cannot be undone.`]})]}),(0,q.jsxs)(me,{children:[(0,q.jsx)(R,{variant:`outline`,onClick:()=>h(null),children:`Cancel`}),(0,q.jsx)(R,{variant:`destructive`,onClick:T,disabled:f,children:f?(0,q.jsx)(G,{className:`size-3 animate-spin`}):`Discard`})]})]})})]}):(0,q.jsx)(`div`,{className:`flex items-center justify-center h-full text-muted-foreground text-sm`,children:`No project selected.`})}function dc({showRevert:e,onRevert:t,onAction:n,onOpenFile:r,actionIcon:i,actionTitle:a,disabled:o}){return(0,q.jsxs)(`div`,{className:`hidden md:flex absolute right-0 top-0 bottom-0 items-center gap-0.5 pl-6 pr-1 bg-gradient-to-l from-background from-70% to-transparent can-hover:opacity-0 can-hover:group-hover:opacity-100 transition-opacity`,children:[r&&(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-primary active:scale-95 transition-colors`,onClick:e=>{e.stopPropagation(),r()},disabled:o,title:`Open file`,children:(0,q.jsx)(Ot,{className:`size-3`})}),e&&t&&(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-destructive active:scale-95 transition-colors`,onClick:e=>{e.stopPropagation(),t()},disabled:o,title:`Discard changes`,children:(0,q.jsx)(jn,{className:`size-3`})}),(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-accent-foreground active:scale-95 transition-colors`,onClick:e=>{e.stopPropagation(),n()},disabled:o,title:a,children:i})]})}function fc({title:e,count:t,files:n,viewMode:r,actionIcon:i,actionAllIcon:a,actionTitle:o,onAction:s,onActionAll:c,actionAllLabel:l,onFolderAction:u,onClickFile:d,onOpenFile:f,disabled:p,showRevert:m,onRevert:h,onFolderRevert:g}){return(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between mb-0.5`,children:[(0,q.jsxs)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase`,children:[e,` (`,t,`)`]}),c&&t>0&&(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-accent-foreground active:scale-95 transition-colors`,onClick:c,disabled:p,title:l,children:a})]}),n.length===0?(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground px-1`,children:`No changes`}):r===`flat`?(0,q.jsx)(`div`,{className:`w-full overflow-hidden`,children:n.map(e=>(0,q.jsx)(mc,{file:e,actionIcon:i,actionTitle:o,onAction:s,onClickFile:d,onOpenFile:f,disabled:p,showRevert:m,onRevert:h},e.path))}):(0,q.jsx)(hc,{files:n,actionIcon:i,actionTitle:o,onAction:s,onFolderAction:u,onClickFile:d,onOpenFile:f,disabled:p,showRevert:m,onRevert:h,onFolderRevert:g})]})}function pc(e,t,n=400){let r=(0,K.useRef)(null),i=(0,K.useRef)(!1),a=(0,K.useRef)(!1),o=(0,K.useCallback)(()=>{r.current&&=(clearTimeout(r.current),null)},[]);return{onTouchStart:(0,K.useCallback)(t=>{i.current=!1,a.current=!1,r.current=setTimeout(()=>{a.current=!0,e()},n)},[e,n]),onTouchMove:(0,K.useCallback)(()=>{i.current=!0,o()},[o]),onTouchEnd:(0,K.useCallback)(e=>{o(),!i.current&&!a.current&&(e.preventDefault(),t())},[o,t])}}function mc({file:e,actionIcon:t,actionTitle:n,onAction:r,onClickFile:i,onOpenFile:a,disabled:o,showRevert:s,onRevert:c,displayName:l}){let[u,d]=(0,K.useState)(!1),f=pc((0,K.useCallback)(()=>d(!0),[]),(0,K.useCallback)(()=>i(e),[i,e])),p=(0,q.jsxs)(`div`,{className:`group relative flex items-center gap-1 hover:bg-muted/50 rounded pl-1 py-px w-full min-w-0`,children:[(0,q.jsx)(`span`,{className:`text-xs font-mono w-4 text-center shrink-0 ${sc[e.status]??``}`,children:e.status}),(0,q.jsx)(`button`,{type:`button`,className:`hidden md:block flex-1 text-left text-xs font-mono truncate hover:underline min-w-0`,onClick:()=>i(e),title:e.path,children:l??e.path}),(0,q.jsx)(`span`,{className:`md:hidden flex-1 text-left text-xs font-mono truncate min-w-0 select-none`,children:l??e.path}),(0,q.jsx)(dc,{showRevert:s,onRevert:c?()=>c(e):void 0,onOpenFile:a?()=>a(e):void 0,onAction:()=>r(e),actionIcon:t,actionTitle:n,disabled:o})]});return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`hidden md:block`,children:p}),(0,q.jsx)(`div`,{className:`md:hidden select-none`,...f,children:(0,q.jsxs)(ec,{open:u,onOpenChange:d,children:[(0,q.jsx)(tc,{asChild:!0,children:p}),(0,q.jsxs)(nc,{align:`start`,className:`min-w-40`,children:[(0,q.jsx)(rc,{onClick:()=>i(e),children:`View Diff`}),a&&(0,q.jsx)(rc,{onClick:()=>a(e),children:`Open File`}),(0,q.jsx)(rc,{onClick:()=>r(e),disabled:o,children:n}),s&&c&&(0,q.jsx)(rc,{className:`text-destructive focus:text-destructive`,onClick:()=>c(e),disabled:o,children:`Discard Changes`})]})]})})]})}function hc({files:e,actionIcon:t,actionTitle:n,onAction:r,onFolderAction:i,onClickFile:a,onOpenFile:o,disabled:s,showRevert:c,onRevert:l,onFolderRevert:u}){let d=(0,K.useMemo)(()=>cc(e),[e]);return(0,q.jsx)(`div`,{children:d.map((e,f)=>(0,q.jsx)(gc,{node:e,depth:0,isLast:f===d.length-1,actionIcon:t,actionTitle:n,onAction:r,onFolderAction:i,onClickFile:a,onOpenFile:o,disabled:s,showRevert:c,onRevert:l,onFolderRevert:u},e.fullPath))})}function gc({node:e,depth:t,isLast:n,actionIcon:r,actionTitle:i,onAction:a,onFolderAction:o,onClickFile:s,onOpenFile:c,disabled:l,showRevert:u,onRevert:d,onFolderRevert:f}){let[p,m]=(0,K.useState)(!0),h=e.children.length>0&&!e.file,g=t*12-6,_=`absolute border-dashed border-border`;if(e.file)return(0,q.jsxs)(`div`,{className:`relative`,style:{paddingLeft:t*12},children:[t>0&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`${_} border-l`,style:{left:g,top:0,bottom:n?`50%`:0}}),(0,q.jsx)(`div`,{className:`${_} border-t`,style:{left:g,top:`50%`,width:6}})]}),(0,q.jsx)(mc,{file:e.file,displayName:e.name,actionIcon:r,actionTitle:i,onAction:a,onClickFile:s,onOpenFile:c,disabled:l,showRevert:u,onRevert:d})]});if(h){let h=lc(e);return(0,q.jsxs)(`div`,{className:`relative`,children:[t>0&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`${_} border-l`,style:{left:g,top:0,...n?{height:13}:{bottom:0}}}),(0,q.jsx)(`div`,{className:`${_} border-t`,style:{left:g,top:13,width:8}})]}),(()=>{let n=(0,q.jsxs)(`div`,{className:`group relative flex items-center hover:bg-muted/50 rounded py-0.5`,style:{paddingLeft:t*12+2},children:[(0,q.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 flex-1 min-w-0 text-xs font-mono text-muted-foreground`,onClick:()=>m(!p),children:[p?(0,q.jsx)(ce,{className:`size-3.5 shrink-0`}):(0,q.jsx)(pe,{className:`size-3.5 shrink-0`}),(0,q.jsx)(`span`,{className:`truncate font-semibold`,children:e.name}),(0,q.jsxs)(`span`,{className:`text-[10px] opacity-60 shrink-0`,children:[`(`,h.length,`)`]})]}),(0,q.jsx)(dc,{showRevert:u,onRevert:f?()=>f(h,e.fullPath):void 0,onAction:()=>o?.(h),actionIcon:r,actionTitle:`${i} ${e.name}/`,disabled:l})]});return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`hidden md:block`,children:n}),(0,q.jsx)(`div`,{className:`md:hidden`,children:(0,q.jsxs)(ec,{children:[(0,q.jsx)(tc,{asChild:!0,children:n}),(0,q.jsxs)(nc,{align:`start`,className:`min-w-40`,children:[(0,q.jsxs)(rc,{onClick:()=>o?.(h),disabled:l,children:[i,` `,e.name,`/`]}),f&&(0,q.jsx)(rc,{className:`text-destructive focus:text-destructive`,onClick:()=>f(h,e.fullPath),disabled:l,children:`Discard Changes`})]})]})})]})})(),p&&(0,q.jsx)(`div`,{children:e.children.map((n,p)=>(0,q.jsx)(gc,{node:n,depth:t+1,isLast:p===e.children.length-1,actionIcon:r,actionTitle:i,onAction:a,onFolderAction:o,onClickFile:s,onOpenFile:c,disabled:l,showRevert:u,onRevert:d,onFolderRevert:f},n.fullPath))})]})}return null}function _c({className:e,orientation:t=`horizontal`,decorative:n=!0,...r}){return(0,q.jsx)(b,{"data-slot":`separator`,decorative:n,orientation:t,className:H(`shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px`,e),...r})}var vc=[{key:`general`,label:`General`},{key:`tabs`,label:`Tabs`},{key:`projects`,label:`Projects`}],yc=[`Ctrl+T`,`Ctrl+W`,`Ctrl+N`,`Ctrl+Tab`,`Ctrl+L`,`Ctrl+H`,`Ctrl+J`,`F5`,`Ctrl+R`,`Ctrl+Shift+I`,`Ctrl+Shift+J`];function bc({actionId:e,combo:t,locked:n}){let[r,i]=(0,K.useState)(!1),a=Mo(e=>e.setBinding),o=(0,K.useRef)(null),s=(0,K.useCallback)(t=>{if(t.preventDefault(),t.stopPropagation(),t.key===`Escape`){i(!1);return}let n=ko(t);n&&(a(e,n),i(!1))},[e,a]);return(0,K.useEffect)(()=>{if(r)return document.addEventListener(`keydown`,s,!0),()=>document.removeEventListener(`keydown`,s,!0)},[r,s]),(0,K.useEffect)(()=>{if(!r)return;let e=e=>{o.current&&!o.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[r]),n?(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded border border-border bg-muted px-2 py-0.5 text-[11px] font-mono text-muted-foreground`,children:[(0,q.jsx)(j,{className:`size-2.5`}),Oo(t)]}):r?(0,q.jsx)(`button`,{ref:o,className:`inline-flex items-center rounded border-2 border-primary bg-primary/10 px-2 py-0.5 text-[11px] font-mono text-primary animate-pulse`,children:`Press keys...`}):(0,q.jsx)(`button`,{ref:o,onClick:()=>i(!0),className:`inline-flex items-center rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-mono text-foreground hover:border-primary hover:bg-primary/5 transition-colors cursor-pointer`,title:`Click to change shortcut`,children:Oo(t)})}function xc(){let{getBinding:e,resetBinding:t,resetAll:n,overrides:r}=Mo(),i=No(e=>e.contributions),a=i?.keybindings??[],o=i?.commands??[];return(0,q.jsxs)(`div`,{className:`space-y-3`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-text-secondary`,children:`Keyboard Shortcuts`}),Object.keys(r).length>0&&(0,q.jsxs)(R,{variant:`ghost`,size:`sm`,className:`h-6 text-[10px] text-muted-foreground`,onClick:n,children:[(0,q.jsx)(vn,{className:`size-3 mr-1`}),`Reset all`]})]}),(0,q.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-amber-500/30 bg-amber-500/5 px-2.5 py-2`,children:[(0,q.jsx)(An,{className:`size-3.5 text-amber-500 shrink-0 mt-0.5`}),(0,q.jsxs)(`p`,{className:`text-[10px] text-muted-foreground leading-relaxed`,children:[`Some shortcuts (`,yc.slice(0,4).join(`, `),`...) are reserved by the browser and cannot be overridden.`]})]}),vc.map(n=>{let i=wo.filter(e=>e.category===n.key);return i.length===0?null:(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:n.label}),(0,q.jsx)(`div`,{className:`space-y-0.5`,children:i.map(n=>{let i=e(n.id),a=n.id in r;return(0,q.jsxs)(`div`,{className:`flex items-center justify-between py-1 px-1 rounded hover:bg-surface-elevated/50 transition-colors`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[(0,q.jsx)(`span`,{className:`text-xs text-foreground`,children:n.label}),n.note&&(0,q.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:n.note})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0 ml-2`,children:[(0,q.jsx)(bc,{actionId:n.id,combo:i,locked:n.locked}),a&&!n.locked&&(0,q.jsx)(`button`,{onClick:()=>t(n.id),className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-foreground hover:bg-surface-elevated transition-colors`,title:`Reset to default`,children:(0,q.jsx)(vn,{className:`size-3`})})]})]},n.id)})})]},n.key)}),a.length>0&&(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:`Extensions`}),(0,q.jsx)(`div`,{className:`space-y-0.5`,children:a.map(n=>{let i=o.find(e=>e.command===n.command)?.title??n.command,a=`ext:${n.command}`,s=e(a)||n.key,c=a in r;return(0,q.jsxs)(`div`,{className:`flex items-center justify-between py-1 px-1 rounded hover:bg-surface-elevated/50 transition-colors`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,q.jsx)(hn,{className:`size-3 text-muted-foreground shrink-0`}),(0,q.jsx)(`span`,{className:`text-xs text-foreground`,children:i})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0 ml-2`,children:[(0,q.jsx)(bc,{actionId:a,combo:s}),c&&(0,q.jsx)(`button`,{onClick:()=>t(a),className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-foreground hover:bg-surface-elevated transition-colors`,title:`Reset to default`,children:(0,q.jsx)(vn,{className:`size-3`})})]})]},a)})})]})]})}var Sc=`Hello! Reply briefly.`,Cc=`claude-sonnet-4-6`;function wc(e){let[t,n]=(0,K.useState)(!1);return(0,q.jsxs)(_e,{open:t,onOpenChange:n,children:[(0,q.jsx)(he,{asChild:!0,children:(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`h-7 text-[11px] gap-1.5 cursor-pointer`,children:[(0,q.jsx)(jt,{className:`size-3`}),`Test`]})}),(0,q.jsxs)(ye,{className:`sm:max-w-md max-h-[85vh] overflow-y-auto`,children:[(0,q.jsxs)(ve,{children:[(0,q.jsx)(be,{className:`text-sm`,children:`Test Proxy`}),(0,q.jsx)(ge,{className:`text-[11px]`,children:`Send a test request and inspect the raw response.`})]}),t&&(0,q.jsx)(Tc,{...e})]})]})}function Tc({authKey:e,baseUrl:t}){let[n,r]=(0,K.useState)(`anthropic`),[i,a]=(0,K.useState)(Sc),[o,s]=(0,K.useState)(Cc),[c,l]=(0,K.useState)(!0),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(null),[m,h]=(0,K.useState)(null),[g,_]=(0,K.useState)(null),v=(0,K.useRef)(null),y=(0,K.useRef)(null);(0,K.useEffect)(()=>{v.current?.select()},[]),(0,K.useEffect)(()=>{y.current&&(y.current.scrollTop=y.current.scrollHeight)},[f]);let b=e=>{r(e),p(null),h(null),_(null)},x=async()=>{d(!0),p(null),h(null),_(null);let r=Date.now(),a=n===`openai`,s=a?`${t}/proxy/v1/chat/completions`:`${t}/proxy/v1/messages`,l=JSON.stringify({model:o,max_tokens:256,stream:c,messages:[{role:`user`,content:i}]}),u={"Content-Type":`application/json`};a?u.Authorization=`Bearer ${e}`:(u[`x-api-key`]=e,u[`anthropic-version`]=`2023-06-01`);try{let e=await fetch(s,{method:`POST`,headers:u,body:l});if(!e.ok){let t=await e.text();h(`HTTP ${e.status}: ${t}`),d(!1),_(Date.now()-r);return}if(c){let t=e.body?.getReader();if(!t){h(`No response body`),d(!1);return}let n=new TextDecoder,i=``;for(;;){let{done:e,value:r}=await t.read();if(e)break;i+=n.decode(r,{stream:!0}),p(i)}_(Date.now()-r)}else{let t=await e.text();try{p(JSON.stringify(JSON.parse(t),null,2))}catch{p(t)}_(Date.now()-r)}}catch(e){h(e.message)}finally{d(!1),_(e=>e??Date.now()-r)}};return(0,q.jsxs)(`div`,{className:`space-y-3 min-w-0`,children:[(0,q.jsxs)(`div`,{className:`space-y-1.5 min-w-0`,children:[(0,q.jsx)(L,{className:`text-[11px]`,children:`Auth Style`}),(0,q.jsx)(`div`,{className:`flex gap-1`,children:[`anthropic`,`openai`].map(e=>(0,q.jsx)(`button`,{onClick:()=>b(e),className:`flex-1 h-8 rounded-md text-[11px] font-medium border transition-colors cursor-pointer ${n===e?`bg-primary text-primary-foreground border-primary`:`bg-muted text-muted-foreground border-transparent hover:bg-muted/80`}`,children:e===`anthropic`?`Anthropic`:`OpenAI`},e))}),(0,q.jsx)(`p`,{className:`text-[9px] text-muted-foreground`,children:n===`anthropic`?`x-api-key header`:`Authorization: Bearer header`})]}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(L,{className:`text-[11px]`,children:`Model`}),(0,q.jsxs)(`select`,{value:o,onChange:e=>s(e.target.value),className:`h-8 w-full rounded-md border bg-background px-2 text-[11px]`,children:[(0,q.jsx)(`option`,{value:`claude-sonnet-4-6`,children:`claude-sonnet-4-6`}),(0,q.jsx)(`option`,{value:`claude-opus-4-7`,children:`claude-opus-4-7`}),(0,q.jsx)(`option`,{value:`claude-haiku-4-5-20251001`,children:`claude-haiku-4-5`}),(0,q.jsx)(`option`,{value:`claude-opus-4-6`,children:`claude-opus-4-6`})]})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(L,{className:`text-[11px]`,children:`Streaming`}),(0,q.jsx)(`div`,{className:`flex gap-1`,children:[!0,!1].map(e=>(0,q.jsx)(`button`,{onClick:()=>l(e),className:`h-7 px-3 rounded-md text-[11px] font-medium border transition-colors cursor-pointer ${c===e?`bg-primary text-primary-foreground border-primary`:`bg-muted text-muted-foreground border-transparent hover:bg-muted/80`}`,children:e?`Stream`:`JSON`},String(e)))})]}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(L,{className:`text-[11px]`,children:`Message`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(z,{ref:v,value:i,onChange:e=>a(e.target.value),placeholder:`Type a test message...`,className:`h-9 text-[11px] flex-1 min-w-0`,onKeyDown:e=>{e.key===`Enter`&&!u&&x()}}),(0,q.jsxs)(R,{size:`sm`,className:`h-9 px-3 cursor-pointer shrink-0`,onClick:x,disabled:u||!i.trim(),children:[u?(0,q.jsx)(G,{className:`size-3.5 animate-spin`}):(0,q.jsx)(dn,{className:`size-3.5`}),(0,q.jsx)(`span`,{className:`ml-1 text-[11px]`,children:u?`...`:`Send`})]})]})]}),(f||m)&&(0,q.jsxs)(`div`,{className:`space-y-1 min-w-0`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(L,{className:`text-[10px] text-muted-foreground`,children:`Raw Response`}),g!=null&&(0,q.jsxs)(`span`,{className:`text-[9px] font-mono text-muted-foreground`,children:[(g/1e3).toFixed(1),`s`]})]}),m?(0,q.jsx)(`pre`,{className:`text-[9px] font-mono bg-red-500/10 text-red-500 p-2 rounded overflow-auto max-h-52 whitespace-pre-wrap break-all`,children:m}):(0,q.jsx)(`pre`,{ref:y,className:`text-[9px] font-mono bg-muted p-2 rounded overflow-auto max-h-52 whitespace-pre-wrap break-all`,children:f})]})]})}function Ec(){let[e,t]=(0,K.useState)(null),[n,r]=(0,K.useState)(!0),[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(null),[c,l]=(0,K.useState)(null);(0,K.useEffect)(()=>{r(!0),qe().then(t).catch(e=>s(e.message)).finally(()=>r(!1))},[]);let u=async e=>{a(!0),s(null);try{t(await Ke(e))}catch(e){s(e.message)}finally{a(!1)}},d=(e,t)=>{navigator.clipboard.writeText(e),l(t),setTimeout(()=>l(null),2e3)};if(n||!e)return(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-text-secondary`,children:`API Proxy`}),(0,q.jsx)(`p`,{className:`text-[11px] text-text-subtle`,children:o?`Error: ${o}`:`Loading...`})]});let f=!!e.authKey,p=!!e.tunnelUrl,m=e.localEndpoint,h=m.replace(/\/proxy\/v1\/messages$/,``);return(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsx)(`div`,{className:`space-y-1.5`,children:(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Expose your Claude accounts as an Anthropic-compatible API endpoint. External tools (OpenCode, Cursor, etc.) can use your accounts via this proxy.`})}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,q.jsx)(L,{className:`text-xs`,children:`Enable Proxy`}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Accept API requests on /proxy/v1/messages`})]}),(0,q.jsx)(ie,{checked:e.enabled,onCheckedChange:e=>u({enabled:e}),disabled:i})]}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(L,{className:`text-[11px]`,children:`Auth Key`}),f?(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(z,{readOnly:!0,value:e.authKey,className:`h-7 text-[11px] font-mono flex-1`}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-7 px-2 cursor-pointer shrink-0`,onClick:()=>d(e.authKey,`key`),children:c===`key`?`Copied!`:(0,q.jsx)(pt,{className:`size-3`})}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-7 px-2 cursor-pointer shrink-0`,onClick:()=>u({generateKey:!0}),disabled:i,children:(0,q.jsx)(je,{className:`size-3`})})]}):(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-7 text-xs cursor-pointer`,onClick:()=>u({generateKey:!0}),disabled:i,children:`Generate Auth Key`}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Use as Bearer token or x-api-key when calling the proxy.`})]}),e.enabled&&f&&(0,q.jsxs)(`div`,{className:`space-y-2 rounded-md border p-3 bg-muted/30`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`h4`,{className:`text-[11px] font-medium`,children:`Connection Info`}),(0,q.jsx)(wc,{authKey:e.authKey,baseUrl:window.location.origin})]}),(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(L,{className:`text-[10px] text-muted-foreground`,children:`Anthropic Endpoint`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5 items-center`,children:[(0,q.jsx)(`code`,{className:`text-[10px] font-mono bg-muted px-1.5 py-0.5 rounded flex-1 truncate`,children:p?e.proxyEndpoint:m}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`h-6 px-1.5 cursor-pointer shrink-0`,onClick:()=>d(p?e.proxyEndpoint:m,`anthropic`),children:c===`anthropic`?`Copied!`:(0,q.jsx)(pt,{className:`size-3`})})]})]}),(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(L,{className:`text-[10px] text-muted-foreground`,children:`OpenAI-Compatible Endpoint`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5 items-center`,children:[(0,q.jsx)(`code`,{className:`text-[10px] font-mono bg-muted px-1.5 py-0.5 rounded flex-1 truncate`,children:p?e.openAiEndpoint:e.localOpenAiEndpoint}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`h-6 px-1.5 cursor-pointer shrink-0`,onClick:()=>d(p?e.openAiEndpoint:e.localOpenAiEndpoint,`openai`),children:c===`openai`?`Copied!`:(0,q.jsx)(pt,{className:`size-3`})})]})]}),!p&&(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Start a Cloudflare tunnel (Share) to get a public URL.`}),(0,q.jsxs)(`div`,{className:`space-y-1 pt-1`,children:[(0,q.jsx)(L,{className:`text-[10px] text-muted-foreground`,children:`Anthropic Format`}),(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(`pre`,{className:`text-[9px] font-mono bg-muted p-2 rounded overflow-x-auto whitespace-pre`,children:`ANTHROPIC_BASE_URL=${p?e.tunnelUrl+`/proxy`:h+`/proxy`}
15
+ `,children:(0,q.jsx)(`div`,{className:`absolute can-hover:opacity-0 can-hover:group-hover/handle:opacity-70 transition-opacity text-foreground/50`,children:t?(0,q.jsx)(Vt,{className:`size-3`}):(0,q.jsx)(Bt,{className:`size-3`})})})}var us=e=>Symbol.iterator in e,ds=e=>`entries`in e,fs=(e,t)=>{let n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(let[e,t]of n)if(!r.has(e)||!Object.is(t,r.get(e)))return!1;return!0},ps=(e,t)=>{let n=e[Symbol.iterator](),r=t[Symbol.iterator](),i=n.next(),a=r.next();for(;!i.done&&!a.done;){if(!Object.is(i.value,a.value))return!1;i=n.next(),a=r.next()}return!!i.done&&!!a.done};function ms(e,t){return Object.is(e,t)?!0:typeof e!=`object`||!e||typeof t!=`object`||!t||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:us(e)&&us(t)?ds(e)&&ds(t)?fs(e,t):ps(e,t):fs({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function hs(e){let t=K.useRef(void 0);return n=>{let r=e(n);return ms(t.current,r)?t.current:t.current=r}}function gs({className:e,children:t,...n}){return(0,q.jsxs)(w,{"data-slot":`scroll-area`,className:H(`relative`,e),...n,children:[(0,q.jsx)(E,{"data-slot":`scroll-area-viewport`,className:`size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 [&>div]:!block`,children:t}),(0,q.jsx)(_s,{}),(0,q.jsx)(v,{})]})}function _s({className:e,orientation:t=`vertical`,...n}){return(0,q.jsx)(D,{"data-slot":`scroll-area-scrollbar`,orientation:t,className:H(`flex touch-none p-px transition-colors select-none`,t===`vertical`&&`h-full w-1.5 border-l border-l-transparent`,t===`horizontal`&&`h-1.5 flex-col border-t border-t-transparent`,e),...n,children:(0,q.jsx)(y,{"data-slot":`scroll-area-thumb`,className:`relative flex-1 rounded-full bg-border`})})}function vs(e){return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)}function ys(){return typeof window<`u`&&window.innerWidth<768}function bs(){return!1}function xs(){return(0,K.useSyncExternalStore)(vs,ys,bs)}var Ss=80;function Cs(e){let[t,n]=(0,K.useState)(0),r=(0,K.useRef)(0),i=(0,K.useRef)(!1),a=(0,K.useRef)(0);return{dragY:t,swipeHandlers:{onTouchStart:(0,K.useCallback)(e=>{r.current=e.touches[0].clientY,i.current=!0,a.current=0,n(0)},[]),onTouchMove:(0,K.useCallback)(e=>{if(!i.current)return;let t=e.touches[0].clientY-r.current,o=Math.max(0,t);a.current=o,n(o)},[]),onTouchEnd:(0,K.useCallback)(()=>{i.current&&(i.current=!1,a.current>=Ss&&e(),a.current=0,n(0))},[e])},dragStyle:t>0?{transform:`translateY(${t}px)`}:void 0,backdropOpacity:t>0?Math.max(0,1-t/300):1,isDragging:t>0}}function ws({open:e,onClose:t,children:n,className:r,zIndex:i=50}){let{dragY:a,swipeHandlers:o,dragStyle:s,backdropOpacity:c,isDragging:l}=Cs(t);return e?(0,zn.createPortal)((0,q.jsxs)(`div`,{className:`fixed inset-0`,style:{zIndex:i},onClick:t,children:[(0,q.jsx)(`div`,{className:`absolute inset-0 bg-black/40 animate-in fade-in-0 duration-200`,style:l?{opacity:c}:void 0}),(0,q.jsxs)(`div`,{className:H(`absolute bottom-0 left-0 right-0 rounded-t-2xl bg-popover text-popover-foreground border-t border-border`,`pb-[max(0.5rem,env(safe-area-inset-bottom))]`,!l&&`animate-in slide-in-from-bottom duration-200`,r),style:s,onClick:e=>e.stopPropagation(),...o,children:[(0,q.jsx)(`div`,{className:`flex justify-center pt-3 pb-1`,children:(0,q.jsx)(`div`,{className:`w-10 h-1 rounded-full bg-border`})}),n]})]}),document.body):null}var Ts=(0,K.createContext)({open:!1,setOpen:()=>{}});function Es({children:e,onClick:t,variant:n,className:r,disabled:i}){let{setOpen:a}=(0,K.useContext)(Ts);return(0,q.jsx)(`button`,{disabled:i,className:H(`flex w-full items-center gap-2 rounded-lg px-3 py-3 text-sm text-left`,`active:bg-accent transition-colors select-none`,`disabled:pointer-events-none disabled:opacity-50`,n===`destructive`&&`text-destructive`,`[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,r),onClick:e=>{t?.(e),a(!1)},children:e})}function Ds({className:e}){return(0,q.jsx)(`div`,{className:H(`-mx-1 my-1 h-px bg-border`,e)})}var Os=500,ks=K.createContext(!1);function As({children:e,...t}){let n=xs(),[r,i]=(0,K.useState)(!1);return n?(0,q.jsx)(ks.Provider,{value:!0,children:(0,q.jsx)(Ts.Provider,{value:{open:r,setOpen:i},children:e})}):(0,q.jsx)(ga,{...t,children:e})}function js({children:e,asChild:t,...n}){let r=K.useContext(ks),{setOpen:i}=K.useContext(Ts),a=(0,K.useRef)(),o=(0,K.useRef)(!1);return r?(0,q.jsx)(`div`,{onTouchStart:(0,K.useCallback)(e=>{e.stopPropagation(),o.current=!1,a.current=setTimeout(()=>{i(!0),o.current=!0},Os)},[i]),onTouchMove:(0,K.useCallback)(()=>{clearTimeout(a.current)},[]),onTouchEnd:(0,K.useCallback)(()=>{clearTimeout(a.current)},[]),onClickCapture:(0,K.useCallback)(e=>{o.current&&=(e.preventDefault(),e.stopPropagation(),!1)},[]),onContextMenu:(0,K.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),className:`contents`,children:e}):(0,q.jsx)(_a,{asChild:t,...n,children:e})}function Ms({children:e,className:t,...n}){if(!K.useContext(ks))return(0,q.jsx)(xa,{className:t,...n,children:e});let{open:r,setOpen:i}=K.useContext(Ts);return(0,q.jsx)(ws,{open:r,onClose:()=>i(!1),className:H(`p-2`,t),children:(0,q.jsx)(`div`,{className:`max-h-[60vh] overflow-y-auto`,children:e})})}function Ns({children:e,className:t,variant:n,onClick:r,disabled:i,...a}){return K.useContext(ks)?(0,q.jsx)(Es,{className:t,variant:n,disabled:i,onClick:r,children:e}):(0,q.jsx)(Sa,{className:t,variant:n,disabled:i,onClick:r,...a,children:e})}function Ps({className:e,...t}){return K.useContext(ks)?(0,q.jsx)(Ds,{className:e}):(0,q.jsx)(Ca,{className:e,...t})}var Fs={M:`text-yellow-500`,A:`text-green-500`,D:`text-red-500`,R:`text-blue-500`,C:`text-purple-500`,U:`text-gray-400`};function Is(e){let t=new Map;for(let n of e.untracked)t.set(n,`U`);for(let n of e.unstaged){let e=n.status===`?`?`U`:n.status;t.set(n.path,e)}for(let n of e.staged){let e=n.status===`?`?`U`:n.status;t.set(n.path,e)}return t}function Ls(e){let t={D:5,A:4,M:3,R:2,C:1,U:0},n=new Map;for(let[r,i]of e){let e=r.split(`/`);for(let r=1;r<e.length;r++){let a=e.slice(0,r).join(`/`),o=n.get(a);(!o||t[i]>t[o])&&n.set(a,i)}}return n}var Rs=Me()(e=>({counts:new Map,fileStatuses:new Map,folderStatuses:new Map,setCount:(t,n)=>{e(e=>{if(e.counts.get(t)===n)return e;let r=new Map(e.counts);return r.set(t,n),{counts:r}})},setFileStatuses:(t,n)=>{let r=Is(n),i=Ls(r);e(e=>{let n=new Map(e.fileStatuses);n.set(t,r);let a=new Map(e.folderStatuses);return a.set(t,i),{fileStatuses:n,folderStatuses:a}})}}));function zs(e,t){let n=Rs(e=>e.setCount),r=Rs(e=>e.setFileStatuses),i=(0,K.useCallback)(async()=>{if(e)try{let t=await V.get(`${B(e)}/git/status`);n(e,t.staged.length+t.unstaged.length+t.untracked.length),r(e,t)}catch{}},[e,n,r]);(0,K.useEffect)(()=>{if(t)return;i();let e=setInterval(i,1e4);return()=>clearInterval(e)},[i,t])}function Bs({defaultValue:e,placeholder:t,depth:n,icon:r,onConfirm:i,onCancel:a}){let[o,s]=(0,K.useState)(e),[c,l]=(0,K.useState)(null),[u,d]=(0,K.useState)(!1),f=(0,K.useRef)(null),p=(0,K.useRef)(!1);(0,K.useEffect)(()=>{let t=f.current;t&&requestAnimationFrame(()=>{if(t.focus(),e){let n=e.lastIndexOf(`.`);t.setSelectionRange(0,n>0?n:e.length)}})},[e]);let m=(0,K.useCallback)(async()=>{if(p.current||u)return;let e=o.trim();if(!e){a();return}p.current=!0,d(!0),l(null);try{await i(e)}catch(e){p.current=!1,l(e instanceof Error?e.message:`Failed`),d(!1)}},[o,u,i,a]);function h(e){e.key===`Enter`?(e.preventDefault(),m()):e.key===`Escape`&&(e.preventDefault(),a())}function g(){p.current||m()}let _=r===`folder`?Lt:At;return(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:H(`flex items-center w-full gap-1.5 px-2 py-0.5`,`min-h-[32px] text-left`),style:{paddingLeft:`${n*16+8}px`},children:[(0,q.jsx)(`span`,{className:`w-3.5 shrink-0`}),(0,q.jsx)(_,{className:`size-4 shrink-0 text-text-secondary`}),(0,q.jsx)(`input`,{ref:f,value:o,onChange:e=>{s(e.target.value),l(null)},onKeyDown:h,onBlur:g,placeholder:t,disabled:u,className:H(`flex-1 min-w-0 bg-input text-sm px-1.5 py-0.5 rounded border outline-none`,`focus:ring-1 focus:ring-primary/50`,c?`border-destructive`:`border-primary`)})]}),c&&(0,q.jsx)(`p`,{className:`text-[10px] text-destructive truncate`,style:{paddingLeft:`${n*16+8+14+22}px`},children:c})]})}var Vs={ts:{icon:xt,color:`text-blue-400`},tsx:{icon:xt,color:`text-blue-400`},js:{icon:xt,color:`text-yellow-400`},jsx:{icon:xt,color:`text-yellow-400`},py:{icon:xt,color:`text-green-400`},rs:{icon:xt,color:`text-orange-400`},go:{icon:xt,color:`text-cyan-400`},c:{icon:xt,color:`text-blue-300`},cpp:{icon:xt,color:`text-blue-300`},java:{icon:xt,color:`text-red-400`},rb:{icon:xt,color:`text-red-400`},php:{icon:xt,color:`text-purple-400`},swift:{icon:xt,color:`text-orange-400`},kt:{icon:xt,color:`text-purple-400`},dart:{icon:xt,color:`text-cyan-400`},sh:{icon:xt,color:`text-green-300`},html:{icon:xt,color:`text-orange-400`},css:{icon:xt,color:`text-blue-400`},scss:{icon:xt,color:`text-pink-400`},json:{icon:bt,color:`text-yellow-400`},yaml:{icon:kt,color:`text-orange-300`},yml:{icon:kt,color:`text-orange-300`},toml:{icon:kt,color:`text-orange-300`},ini:{icon:kt,color:`text-orange-300`},env:{icon:kt,color:`text-yellow-300`},csv:{icon:Dt,color:`text-green-400`},xls:{icon:Dt,color:`text-green-400`},xlsx:{icon:Dt,color:`text-green-400`},md:{icon:Ot,color:`text-text-secondary`},txt:{icon:Ot,color:`text-text-secondary`},log:{icon:Ot,color:`text-text-subtle`},pdf:{icon:Ot,color:`text-red-400`},png:{icon:wt,color:`text-green-400`},jpg:{icon:wt,color:`text-green-400`},jpeg:{icon:wt,color:`text-green-400`},gif:{icon:wt,color:`text-green-400`},svg:{icon:wt,color:`text-yellow-400`},webp:{icon:wt,color:`text-green-400`},ico:{icon:wt,color:`text-green-400`},bmp:{icon:wt,color:`text-green-400`},mp4:{icon:Tt,color:`text-purple-400`},webm:{icon:Tt,color:`text-purple-400`},mov:{icon:Tt,color:`text-purple-400`},avi:{icon:Tt,color:`text-purple-400`},mkv:{icon:Tt,color:`text-purple-400`},mp3:{icon:Ct,color:`text-pink-400`},wav:{icon:Ct,color:`text-pink-400`},ogg:{icon:Ct,color:`text-pink-400`},flac:{icon:Ct,color:`text-pink-400`},db:{icon:fe,color:`text-amber-400`},sqlite:{icon:fe,color:`text-amber-400`},sqlite3:{icon:fe,color:`text-amber-400`},sql:{icon:fe,color:`text-amber-400`},zip:{icon:yt,color:`text-amber-300`},tar:{icon:yt,color:`text-amber-300`},gz:{icon:yt,color:`text-amber-300`},rar:{icon:yt,color:`text-amber-300`},"7z":{icon:yt,color:`text-amber-300`}},Hs={icon:At};function Us(e){return Vs[e.split(`.`).pop()?.toLowerCase()??``]??Hs}function Ws({node:e,isDir:t,projectName:n,selectedFiles:r,compareSelection:i,clipboard:a,onAction:o}){return(0,q.jsxs)(Ms,{children:[t&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ns,{onClick:()=>o(`new-file`,e),children:`New File`}),(0,q.jsx)(Ns,{onClick:()=>o(`new-folder`,e),children:`New Folder`}),(0,q.jsx)(Ps,{})]}),(0,q.jsx)(Ns,{onClick:()=>o(`cut`,e),children:`Cut`}),(0,q.jsx)(Ns,{onClick:()=>o(`copy-file`,e),children:`Copy`}),t&&a&&(0,q.jsx)(Ns,{onClick:()=>o(`paste`,e),children:`Paste`}),(0,q.jsx)(Ps,{}),(0,q.jsx)(Ns,{onClick:()=>o(`rename`,e),children:`Rename`}),(0,q.jsx)(Ns,{variant:`destructive`,onClick:()=>o(`delete`,e),children:`Delete`}),(0,q.jsx)(Ps,{}),(0,q.jsx)(Ns,{onClick:()=>o(`copy-path`,e),children:`Copy Path`}),(0,q.jsx)(Ps,{}),(0,q.jsxs)(Ns,{onClick:()=>o(`download`,e),children:[(0,q.jsx)(Ee,{className:`size-3.5 mr-2`}),`Download`,t?` as Zip`:``]}),!t&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ps,{}),(0,q.jsx)(Ns,{onClick:()=>o(`select-for-compare`,e),children:`Select for Compare`}),i&&i.projectName===n&&i.filePath!==e.path&&(0,q.jsxs)(Ns,{onClick:()=>o(`compare-with-selected`,e),children:[`Compare with Selected (`,i.label,`)`]})]}),!t&&r.length===2&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ps,{}),(0,q.jsx)(Ns,{onClick:()=>o(`compare-selected`,e),children:`Compare Selected`})]})]})}function Gs(e){return e.dataTransfer.types.includes(`Files`)&&!e.dataTransfer.types.includes(`application/x-ppm-path`)}var Ks=(0,K.memo)(function e({node:t,depth:n,projectName:r,onAction:i,onFileDrop:a,onFileOpen:o}){let{expandedPaths:s,loadedPaths:c,inflight:l,toggleExpand:u,selectedFiles:d,toggleFileSelect:f,inlineAction:p,clearInlineAction:m,clipboard:h,focusedPath:g,setFocusedPath:_}=Ba(hs(e=>({expandedPaths:e.expandedPaths,loadedPaths:e.loadedPaths,inflight:e.inflight,toggleExpand:e.toggleExpand,selectedFiles:e.selectedFiles,toggleFileSelect:e.toggleFileSelect,inlineAction:e.inlineAction,clearInlineAction:e.clearInlineAction,clipboard:e.clipboard,focusedPath:e.focusedPath,setFocusedPath:e.setFocusedPath}))),v=W(e=>e.openTab),y=Ka(e=>e.selection),b=t.type===`directory`,x=Rs(e=>(b?e.folderStatuses.get(r):e.fileStatuses.get(r))?.get(t.path)),S=x?Fs[x]:void 0,C=s.has(t.path),w=d.includes(t.path),T=t.ignored===!0,E=h?.operation===`cut`&&h.paths.includes(t.path),D=g===t.path,O=b&&C&&!c.has(t.path)&&l.has(t.path),[k,ee]=(0,K.useState)(!1),A=(0,K.useRef)(0),te=(0,K.useRef)(null);(0,K.useEffect)(()=>{D&&te.current&&te.current.scrollIntoView({block:`nearest`})},[D]);function ne(e){if(e.metaKey||e.ctrlKey){_(t.path),f(t.path);return}if(e.shiftKey&&g!=null){let e=Va(),n=e.indexOf(g),r=e.indexOf(t.path);if(n>=0&&r>=0){let t=Math.min(n,r),i=Math.max(n,r);Ba.getState().setSelectedFiles(e.slice(t,i+1))}return}if(_(t.path),Ba.getState().clearSelection(),b){u(r,t.path);return}let n=t.name.split(`.`).pop()?.toLowerCase()??``;v({type:n===`db`||n===`sqlite`||n===`sqlite3`?`sqlite`:`editor`,title:t.name,metadata:{filePath:t.path,projectName:r},projectId:r,closable:!0}),o?.()}function re(e){let n=b?`${t.path}/`:t.path;e.dataTransfer.setData(`application/x-ppm-path`,n),e.dataTransfer.setData(`text/plain`,t.name),e.dataTransfer.effectAllowed=`copyMove`}function j(e){return b?Gs(e)||e.dataTransfer.types.includes(`application/x-ppm-path`):!1}function M(e){j(e)&&(e.preventDefault(),e.stopPropagation(),A.current++,A.current===1&&ee(!0))}function N(e){b&&(e.stopPropagation(),A.current--,A.current===0&&ee(!1))}function ie(e){j(e)&&(e.preventDefault(),e.stopPropagation(),e.dataTransfer.dropEffect=Gs(e)?`copy`:`move`)}function ae(e){if(!b)return;if(e.preventDefault(),e.stopPropagation(),A.current=0,ee(!1),Gs(e)){e.dataTransfer.files.length>0&&a(t.path,e.dataTransfer.files);return}let n=e.dataTransfer.getData(`application/x-ppm-path`).replace(/\/$/,``);if(!n||n===t.path||t.path.startsWith(`${n}/`))return;let i=n.includes(`/`)?n.slice(0,n.lastIndexOf(`/`)):``;if(i===t.path)return;let o=n.includes(`/`)?n.slice(n.lastIndexOf(`/`)+1):n,s=t.path?`${t.path}/${o}`:o;V.post(`${B(r)}/files/move`,{source:n,destination:s}).then(()=>{let e=Ba.getState();e.invalidateIndex(),e.loadIndex(r),e.invalidateFolder(r,i),e.invalidateFolder(r,t.path)}).catch(e=>{tr.error(e instanceof Error?e.message:`Move failed`)})}let{icon:P,color:F}=b?{icon:C?Mt:Lt,color:`text-primary`}:Us(t.name),I=t.name,oe=t;if(b&&C&&t.children){let e=t;for(;e.children&&e.children.length===1&&e.children[0].type===`directory`&&s.has(e.children[0].path);)e=e.children[0],I+=`/${e.name}`;e!==t&&(oe=e)}let L=oe.children?[...oe.children].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1):[],se=p?.type===`rename`&&p.existingNode?.path===t.path,le=b&&p!=null&&(p.parentPath===t.path||p.parentPath===oe.path)&&p.type!==`rename`;return(0,q.jsxs)(`div`,{onDragEnter:b?M:void 0,onDragLeave:b?N:void 0,onDragOver:b?ie:void 0,onDrop:b?ae:void 0,children:[se?(0,q.jsx)(Bs,{defaultValue:t.name,placeholder:t.name,depth:n,icon:b?`folder`:`file`,onConfirm:async e=>{if(e===t.name){m();return}let n=t.path.includes(`/`)?t.path.slice(0,t.path.lastIndexOf(`/`)):``,i=n?`${n}/${e}`:e;await V.post(`${B(r)}/files/rename`,{oldPath:t.path,newPath:i}),m();let a=Ba.getState();a.invalidateIndex(),a.loadIndex(r),a.invalidateFolder(r,n)},onCancel:m}):(0,q.jsxs)(As,{children:[(0,q.jsx)(js,{asChild:!0,children:(0,q.jsxs)(`button`,{ref:te,draggable:!0,onDragStart:re,onClick:ne,className:H(`flex items-center w-full gap-1.5 px-2 py-1 rounded-sm text-sm`,`min-h-[32px] hover:bg-surface-elevated transition-colors text-left`,`select-none`,(T||E)&&`opacity-40`,D&&`bg-surface-elevated`,w&&`bg-primary/15 ring-1 ring-primary/40`,k&&`ring-1 ring-dashed ring-primary bg-primary/10`),style:{paddingLeft:`${n*16+8}px`},children:[b?O?(0,q.jsx)(G,{className:`size-3.5 shrink-0 text-text-subtle animate-spin`}):C?(0,q.jsx)(ce,{className:`size-3.5 shrink-0 text-text-subtle`}):(0,q.jsx)(pe,{className:`size-3.5 shrink-0 text-text-subtle`}):(0,q.jsx)(`span`,{className:`w-3.5 shrink-0`}),(0,q.jsx)(P,{className:H(`size-4 shrink-0`,F??`text-text-secondary`)}),(0,q.jsx)(`span`,{className:H(`truncate`,S),children:I}),x&&!b&&(0,q.jsx)(`span`,{className:H(`text-[10px] ml-auto shrink-0 font-mono`,S),children:x})]})}),(0,q.jsx)(Ws,{node:t,isDir:b,projectName:r,selectedFiles:d,compareSelection:y,clipboard:h,onAction:i})]}),b&&C&&le&&(0,q.jsx)(Bs,{defaultValue:``,placeholder:p.type===`new-file`?`filename.ts`:`folder-name`,depth:n+1,icon:p.type===`new-file`?`file`:`folder`,onConfirm:async e=>{let n=p.type===`new-file`?`file`:`directory`,i=oe.path||t.path,a=i?`${i}/${e}`:e;await V.post(`${B(r)}/files/create`,{path:a,type:n}),m();let o=Ba.getState();o.invalidateIndex(),o.loadIndex(r),o.invalidateFolder(r,i)},onCancel:m}),b&&C&&L.map(t=>(0,q.jsx)(e,{node:t,depth:n+1,projectName:r,onAction:i,onFileDrop:a,onFileOpen:o},t.path))]})});function qs({projectName:e,setExpanded:t}){let[n,r]=(0,K.useState)(!1),i=(0,K.useRef)(0),a=(0,K.useCallback)(async(n,r)=>{if(!e)return;let i=r.length,a=i===1?r[0].name:`${i} files`,o=tr.loading(`Uploading ${a}…`),s=new FormData;s.append(`targetDir`,n);for(let e of r)s.append(`files`,e);let c={},l=Pe();l&&(c.Authorization=`Bearer ${l}`);try{let r=await fetch(`${B(e)}/files/upload`,{method:`POST`,headers:c,body:s});if(!r.ok){let e=await r.json();tr.error(`Upload failed: ${e.error??`Unknown error`}`,{id:o});return}tr.success(`Uploaded ${a}`,{id:o});let i=Ba.getState();i.loadedPaths.has(n)&&await i.invalidateFolder(e,n),n&&t(n,!0)}catch(e){tr.error(e instanceof Error?e.message:`Upload failed`,{id:o})}},[e,t]);function o(e){Gs(e)&&(e.preventDefault(),i.current++,i.current===1&&r(!0))}function s(){i.current--,i.current===0&&r(!1)}function c(e){Gs(e)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)}function l(e){Gs(e)&&(e.preventDefault(),i.current=0,r(!1),e.dataTransfer.files.length>0&&a(``,e.dataTransfer.files))}return{uploadFiles:a,isRootDragOver:n,handleRootDragEnter:o,handleRootDragLeave:s,handleRootDragOver:c,handleRootDrop:l}}function Js({tree:e,expandedPaths:t,focusedPath:n,setFocusedPath:r,setExpanded:i,toggleExpand:a,projectName:o,onAction:s}){let c=(0,K.useMemo)(()=>{let n=[];function r(e){let i=[...e].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1);for(let e of i){let i=e;if(e.type===`directory`&&t.has(e.path)&&e.children)for(;i.children&&i.children.length===1&&i.children[0].type===`directory`&&t.has(i.children[0].path);)i=i.children[0];n.push(i),i.type===`directory`&&t.has(i.path)&&i.children&&r(i.children)}}return r(e),n},[e,t]),l=(0,K.useMemo)(()=>c.find(e=>e.path===n)??null,[c,n]);function u(e){if(!o)return;let u=e.target;if(u.tagName===`INPUT`||u.tagName===`TEXTAREA`)return;let d=n==null?-1:c.findIndex(e=>e.path===n);switch(e.key){case`ArrowDown`:e.preventDefault(),r(c[d<c.length-1?d+1:0].path);break;case`ArrowUp`:e.preventDefault(),r(c[d>0?d-1:c.length-1].path);break;case`ArrowRight`:e.preventDefault(),l?.type===`directory`&&!t.has(l.path)&&a(o,l.path);break;case`ArrowLeft`:if(e.preventDefault(),l?.type===`directory`&&t.has(l.path))i(l.path,!1);else if(l){let e=l.path.includes(`/`)?l.path.slice(0,l.path.lastIndexOf(`/`)):``;if(e||e===``){let t=c.find(t=>t.path===e);t&&r(t.path)}}break;case`Enter`:e.preventDefault(),l&&s(l.type===`directory`?`toggle-expand`:`open-file`,l);break;case`F2`:e.preventDefault(),l&&s(`rename`,l);break;case`Delete`:e.preventDefault(),l&&s(`delete`,l);break}}return{visibleNodes:c,focusedNode:l,handleTreeKeyDown:u}}var Ys={name:``,path:``,type:`directory`};function Xs({onFileOpen:e}={}){let{tree:t,loading:n,error:r,loadRoot:i,loadIndex:a,loadChildren:o,invalidateIndex:s,invalidateFolder:c,reset:l,selectedFiles:u,clearSelection:d,setExpanded:f,fetchTree:p,inlineAction:m,setInlineAction:h,clearInlineAction:g,clipboard:_,setClipboard:v,collapseAll:y,focusedPath:b,setFocusedPath:x,expandedPaths:S,toggleExpand:C}=Ba(hs(e=>({tree:e.tree,loading:e.loading,error:e.error,loadRoot:e.loadRoot,loadIndex:e.loadIndex,loadChildren:e.loadChildren,invalidateIndex:e.invalidateIndex,invalidateFolder:e.invalidateFolder,reset:e.reset,selectedFiles:e.selectedFiles,clearSelection:e.clearSelection,setExpanded:e.setExpanded,fetchTree:e.fetchTree,inlineAction:e.inlineAction,setInlineAction:e.setInlineAction,clearInlineAction:e.clearInlineAction,clipboard:e.clipboard,setClipboard:e.setClipboard,collapseAll:e.collapseAll,focusedPath:e.focusedPath,setFocusedPath:e.setFocusedPath,expandedPaths:e.expandedPaths,toggleExpand:e.toggleExpand}))),w=We(e=>e.activeProject),T=W(e=>e.openTab),[E,D]=(0,K.useState)(null),O=(0,K.useCallback)(()=>{w&&(l(),i(w.name),a(w.name))},[w,l,i,a]),k=(0,K.useCallback)(async()=>{if(!w)return;let{tabs:e,activeTabId:t}=W.getState(),n=e.find(e=>e.id===t)?.metadata?.filePath;if(!n)return;let r=n.split(`/`),i=w.name;for(let e=1;e<r.length;e++){let t=r.slice(0,e).join(`/`);f(t,!0),await o(i,t)}x(n)},[w,f,o,x]),ee=(0,K.useCallback)(async e=>{if(!w||!_)return;let t=w.name,n=_.operation===`cut`?`move`:`copy`;for(let r of _.paths){let i=r.includes(`/`)?r.slice(r.lastIndexOf(`/`)+1):r,a=e?`${e}/${i}`:i;try{await V.post(`${B(t)}/files/${n}`,{source:r,destination:a})}catch(e){tr.error(e instanceof Error?e.message:`Failed to ${n}`)}}_.operation===`cut`&&v(null),O()},[w,_,v,O]),A=(0,K.useRef)(null),te=(0,K.useCallback)(e=>{if(!w)return;let t=e.target;t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.isContentEditable||(e.metaKey||e.ctrlKey)&&(e.key===`x`&&u.length>0?(e.preventDefault(),v({paths:[...u],operation:`cut`})):e.key===`c`&&u.length>0?(e.preventDefault(),v({paths:[...u],operation:`copy`})):e.key===`v`&&_&&(e.preventDefault(),ee(``)))},[w,u,_,v,ee]),{handleTreeKeyDown:ne}=Js({tree:t,expandedPaths:S,focusedPath:b,setFocusedPath:x,setExpanded:f,toggleExpand:C,projectName:w?.name,onAction:P});(0,K.useEffect)(()=>{if(!w)return;l();let e=w.name;i(e).then(()=>{Ba.getState().setExpanded(``,!0)}),a(e)},[w?.name]),(0,K.useEffect)(()=>{if(!w)return;let e=w.name,t,n=n=>{let r=n.detail;r.projectName===e&&(clearTimeout(t),t=setTimeout(()=>{let t=Ba.getState(),n=r.path??``,i=n.includes(`/`)?n.slice(0,n.lastIndexOf(`/`)):``;t.invalidateIndex(),t.loadIndex(e),t.invalidateFolder(e,i)},300))};return window.addEventListener(`file:changed`,n),()=>{clearTimeout(t),window.removeEventListener(`file:changed`,n)}},[w]);let{uploadFiles:re,isRootDragOver:j,handleRootDragEnter:M,handleRootDragLeave:N,handleRootDragOver:ie,handleRootDrop:ae}=qs({projectName:w?.name,setExpanded:f});async function P(t,n){if(t===`toggle-expand`&&n.type===`directory`){C(w.name,n.path);return}if(t===`open-file`&&n.type===`file`){let t=n.name.split(`.`).pop()?.toLowerCase()??``;T({type:t===`db`||t===`sqlite`||t===`sqlite3`?`sqlite`:`editor`,title:n.name,metadata:{filePath:n.path,projectName:w.name},projectId:w.name,closable:!0}),e?.();return}if(t===`cut`){v({paths:u.length>0&&u.includes(n.path)?[...u]:[n.path],operation:`cut`});return}if(t===`copy-file`){v({paths:u.length>0&&u.includes(n.path)?[...u]:[n.path],operation:`copy`});return}if(t===`paste`&&n.type===`directory`){ee(n.path);return}if(t===`copy-path`){navigator.clipboard.writeText(n.path).catch(()=>{});return}if(t===`select-for-compare`){Ka.getState().setSelection({filePath:n.path,projectName:w.name,label:n.name});return}if(t===`compare-with-selected`){let e=Ka.getState().selection;if(!e)return;try{await Ja({path:e.filePath,dirtyContent:e.dirtyContent},{path:n.path},w.name),Ka.getState().clearSelection()}catch(e){let t=e instanceof Error?e.message:`Compare failed`;tr.error(t)}return}if(t===`download`){n.type===`directory`?Ko(w.name,n.path):Go(w.name,n.path);return}if(t===`compare-selected`&&u.length===2){let e=u[0],t=u[1];T({type:`git-diff`,title:`Compare ${Re(e)} vs ${Re(t)}`,closable:!0,metadata:{projectName:w.name,file1:e,file2:t},projectId:w.name}),d();return}if(t===`new-file`||t===`new-folder`){let e=n.type===`directory`?n.path:``;e&&f(e,!0),h({type:t,parentPath:e});return}if(t===`rename`){h({type:`rename`,parentPath:n.path.includes(`/`)?n.path.slice(0,n.path.lastIndexOf(`/`)):``,existingNode:n});return}D({action:t,node:n})}if(!w)return(0,q.jsx)(`div`,{className:`p-3 text-xs text-text-subtle`,children:`Select a project to browse files.`});if(n&&t.length===0)return(0,q.jsxs)(`div`,{className:`flex items-center gap-2 p-3 text-xs text-text-secondary`,children:[(0,q.jsx)(G,{className:`size-3 animate-spin`}),`Loading files...`]});if(r)return(0,q.jsxs)(`div`,{className:`p-3 text-xs text-error`,children:[r,(0,q.jsx)(`button`,{onClick:O,className:`block mt-1 text-primary underline`,children:`Retry`})]});let F=[...t].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1),I=`p-1 rounded-sm text-text-secondary hover:text-foreground hover:bg-surface-elevated transition-colors`;return(0,q.jsxs)(`div`,{ref:A,className:H(`flex flex-col h-full outline-none`,j&&`bg-primary/5`),tabIndex:0,onKeyDown:e=>{te(e),ne(e)},onDragEnter:M,onDragLeave:N,onDragOver:ie,onDrop:ae,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-0.5 px-2 h-8 border-b border-border shrink-0 sticky top-0 z-10 bg-surface`,children:[(0,q.jsx)(`button`,{onClick:()=>P(`new-file`,Ys),title:`New File`,className:I,children:(0,q.jsx)(Et,{className:`size-3.5`})}),(0,q.jsx)(`button`,{onClick:()=>P(`new-folder`,Ys),title:`New Folder`,className:I,children:(0,q.jsx)(Nt,{className:`size-3.5`})}),(0,q.jsx)(`div`,{className:`flex-1`}),(0,q.jsx)(`button`,{onClick:k,title:`Reveal Active File`,className:I,children:(0,q.jsx)(ht,{className:`size-3.5`})}),(0,q.jsx)(`button`,{onClick:y,title:`Collapse All`,className:I,children:(0,q.jsx)(at,{className:`size-3.5`})}),(0,q.jsx)(`button`,{onClick:O,title:`Refresh`,className:I,children:(0,q.jsx)(Ae,{className:`size-3.5`})})]}),(0,q.jsxs)(As,{children:[(0,q.jsx)(js,{asChild:!0,children:(0,q.jsx)(gs,{className:`flex-1`,children:(0,q.jsxs)(`div`,{className:`py-1`,children:[m&&m.parentPath===``&&m.type!==`rename`&&(0,q.jsx)(Bs,{defaultValue:``,placeholder:m.type===`new-file`?`filename.ts`:`folder-name`,depth:0,icon:m.type===`new-file`?`file`:`folder`,onConfirm:async e=>{let t=m.type===`new-file`?`file`:`directory`;await V.post(`${B(w.name)}/files/create`,{path:e,type:t}),g(),O()},onCancel:g}),F.map(t=>(0,q.jsx)(Ks,{node:t,depth:0,projectName:w.name,onAction:P,onFileDrop:re,onFileOpen:e},t.path)),F.length===0&&(0,q.jsx)(`p`,{className:`p-3 text-xs text-text-subtle`,children:`Empty project.`})]})})}),(0,q.jsxs)(Ms,{children:[(0,q.jsxs)(Ns,{onClick:()=>P(`new-file`,Ys),children:[(0,q.jsx)(Et,{className:`size-3.5 mr-2`}),`New File`]}),(0,q.jsxs)(Ns,{onClick:()=>P(`new-folder`,Ys),children:[(0,q.jsx)(Nt,{className:`size-3.5 mr-2`}),`New Folder`]}),(0,q.jsx)(Ps,{}),(0,q.jsxs)(Ns,{onClick:O,children:[(0,q.jsx)(Ae,{className:`size-3.5 mr-2`}),`Refresh`]})]})]}),E?.action===`delete`&&(0,q.jsx)(Jo,{action:`delete`,node:E.node,projectName:w.name,onClose:()=>D(null),onRefresh:O})]})}function Zs({open:e,onOpenChange:t,projectName:n,onCreated:r}){let[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(`new`),[c,l]=(0,K.useState)(``),[u,d]=(0,K.useState)(``),[f,p]=(0,K.useState)([]),[m,h]=(0,K.useState)(!1),[g,_]=(0,K.useState)(null);(0,K.useEffect)(()=>{!e||!n||V.get(`${B(n)}/git/branches`).then(e=>{let t=e.filter(e=>!e.remote).map(e=>e.name);p(t),t.length>0&&!u&&d(t[0])}).catch(()=>p([]))},[e,n]);function v(){a(``),s(`new`),l(``),_(null)}function y(){v(),t(!1)}async function b(){if(!i.trim()){_(`Worktree path is required`);return}let e=o===`existing`?u:void 0,t=o===`new`&&c.trim()?c.trim():void 0;h(!0),_(null);try{await V.post(`${B(n)}/git/worktree/add`,{path:i.trim(),branch:e,newBranch:t}),r(),y()}catch(e){_(e instanceof Error?e.message:`Failed to create worktree`)}finally{h(!1)}}let x=(0,q.jsxs)(`div`,{className:`space-y-4`,children:[g&&(0,q.jsx)(`p`,{className:`text-xs text-destructive bg-destructive/10 px-3 py-2 rounded-md`,children:g}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(L,{htmlFor:`wt-path`,children:`Worktree Path`}),(0,q.jsx)(z,{id:`wt-path`,placeholder:`../my-feature`,value:i,onChange:e=>a(e.target.value),autoFocus:!0,className:`w-full`}),(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Relative or absolute path for the new worktree directory`})]}),(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsx)(L,{children:`Branch`}),(0,q.jsxs)(`div`,{className:`flex gap-3`,children:[(0,q.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,q.jsx)(`input`,{type:`radio`,checked:o===`new`,onChange:()=>s(`new`),className:`accent-primary`}),(0,q.jsx)(`span`,{className:`text-sm`,children:`Create new branch`})]}),(0,q.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,q.jsx)(`input`,{type:`radio`,checked:o===`existing`,onChange:()=>s(`existing`),className:`accent-primary`}),(0,q.jsx)(`span`,{className:`text-sm`,children:`Use existing branch`})]})]}),o===`new`?(0,q.jsx)(z,{placeholder:`feature/my-branch`,value:c,onChange:e=>l(e.target.value),className:`w-full`}):(0,q.jsxs)(`select`,{value:u,onChange:e=>d(e.target.value),className:`w-full h-9 px-3 rounded-md border border-input bg-transparent text-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,children:[f.length===0&&(0,q.jsx)(`option`,{value:``,children:`No branches available`}),f.map(e=>(0,q.jsx)(`option`,{value:e,children:e},e))]})]})]}),S=(0,q.jsxs)(`div`,{className:`flex gap-2 justify-end pt-2`,children:[(0,q.jsx)(R,{variant:`outline`,size:`sm`,onClick:y,disabled:m,children:`Cancel`}),(0,q.jsxs)(R,{size:`sm`,onClick:b,disabled:m||!i.trim(),children:[m?(0,q.jsx)(G,{className:`size-3 animate-spin mr-1`}):null,`Create Worktree`]})]});return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(_e,{open:e,onOpenChange:e=>{e||y()},children:(0,q.jsxs)(ye,{className:`hidden md:grid sm:max-w-md`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:`Add Worktree`})}),x,(0,q.jsx)(me,{children:S})]})}),e&&(0,q.jsxs)(`div`,{className:`md:hidden`,children:[(0,q.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/50`,onClick:y}),(0,q.jsxs)(`div`,{className:H(`fixed bottom-0 left-0 right-0 z-50 bg-background rounded-t-2xl border-t border-border shadow-2xl`,`animate-in slide-in-from-bottom-2 duration-200`),children:[(0,q.jsx)(`div`,{className:`flex justify-center pt-3 pb-1`,children:(0,q.jsx)(`div`,{className:`w-10 h-1 rounded-full bg-border`})}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-border`,children:[(0,q.jsx)(`span`,{className:`text-sm font-semibold`,children:`Add Worktree`}),(0,q.jsx)(`button`,{onClick:y,className:`flex items-center justify-center size-7 rounded-md hover:bg-surface-elevated transition-colors`,children:(0,q.jsx)(je,{className:`size-4`})})]}),(0,q.jsxs)(`div`,{className:`px-4 py-4 space-y-4 max-h-[70vh] overflow-y-auto`,children:[x,S]})]})]})]})}function Qs({projectName:e,projectPath:t}){let[n,r]=(0,K.useState)(!1),[i,a]=(0,K.useState)([]),[o,s]=(0,K.useState)(!1),[c,l]=(0,K.useState)(null),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(null),[m,h]=(0,K.useState)(!1),g=(0,K.useCallback)(async()=>{if(e){s(!0),l(null);try{a(await V.get(`${B(e)}/git/worktrees`))}catch(e){l(e instanceof Error?e.message:`Failed to load worktrees`)}finally{s(!1)}}},[e]);(0,K.useEffect)(()=>{n&&g()},[n,g]);async function _(t=!1){if(f){h(!0);try{await V.post(`${B(e)}/git/worktree/remove`,{path:f.path,force:t}),p(null),await g()}catch(e){l(e instanceof Error?e.message:`Failed to remove worktree`),p(null)}finally{h(!1)}}}async function v(){try{await V.post(`${B(e)}/git/worktree/prune`,{}),await g()}catch(e){l(e instanceof Error?e.message:`Prune failed`)}}return(0,q.jsxs)(`div`,{className:`border-t border-border`,children:[(0,q.jsxs)(`button`,{type:`button`,className:`flex items-center justify-between w-full px-3 py-2 hover:bg-muted/50 transition-colors`,onClick:()=>r(e=>!e),children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[n?(0,q.jsx)(ce,{className:`size-3.5 text-muted-foreground`}):(0,q.jsx)(pe,{className:`size-3.5 text-muted-foreground`}),(0,q.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase`,children:`Worktrees`}),i.length>0&&(0,q.jsx)(`span`,{className:`text-[10px] bg-muted text-muted-foreground rounded px-1`,children:i.length})]}),(0,q.jsx)(`div`,{className:`flex items-center gap-0.5`,children:n&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`span`,{role:`button`,tabIndex:0,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-foreground transition-colors`,onClick:e=>{e.stopPropagation(),v()},onKeyDown:e=>{e.key===`Enter`&&(e.stopPropagation(),v())},title:`Prune stale worktrees`,"aria-label":`Prune stale worktrees`,children:(0,q.jsx)(Ae,{className:H(`size-3`,o&&`animate-spin`)})}),(0,q.jsx)(`span`,{role:`button`,tabIndex:0,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-foreground transition-colors`,onClick:e=>{e.stopPropagation(),d(!0)},onKeyDown:e=>{e.key===`Enter`&&(e.stopPropagation(),d(!0))},title:`Add worktree`,"aria-label":`Add worktree`,children:(0,q.jsx)(De,{className:`size-3`})})]})})]}),n&&(0,q.jsxs)(`div`,{className:`pb-1`,children:[c&&(0,q.jsx)(`p`,{className:`text-xs text-destructive px-3 py-1`,children:c}),o&&i.length===0&&(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 text-muted-foreground`,children:[(0,q.jsx)(G,{className:`size-3.5 animate-spin`}),(0,q.jsx)(`span`,{className:`text-xs`,children:`Loading worktrees...`})]}),!o&&i.length===0&&!c&&(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground px-3 py-1`,children:`No worktrees found.`}),i.map(e=>(0,q.jsx)($s,{worktree:e,isActive:!!t&&e.path===t,onRemove:()=>p(e)},e.path)),(0,q.jsxs)(`button`,{type:`button`,className:`flex items-center gap-2 w-full px-3 py-2 text-xs text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors`,onClick:()=>d(!0),children:[(0,q.jsx)(De,{className:`size-3.5`}),`Add worktree`]})]}),(0,q.jsx)(Zs,{open:u,onOpenChange:d,projectName:e,onCreated:g}),(0,q.jsx)(_e,{open:!!f,onOpenChange:e=>!e&&p(null),children:(0,q.jsxs)(ye,{showCloseButton:!1,children:[(0,q.jsxs)(ve,{children:[(0,q.jsx)(be,{children:`Remove Worktree`}),(0,q.jsxs)(ge,{children:[`Remove worktree at`,` `,(0,q.jsx)(`code`,{className:`px-1 py-0.5 rounded bg-muted text-xs font-mono`,children:f?.path}),f?.branch&&(0,q.jsxs)(q.Fragment,{children:[` (branch: `,(0,q.jsx)(`strong`,{children:f.branch}),`)`]}),`? The directory will be deleted.`]})]}),(0,q.jsxs)(me,{children:[(0,q.jsx)(R,{variant:`outline`,size:`sm`,onClick:()=>p(null),disabled:m,children:`Cancel`}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,onClick:()=>_(!0),disabled:m,children:m?(0,q.jsx)(G,{className:`size-3 animate-spin`}):`Force Remove`}),(0,q.jsx)(R,{variant:`destructive`,size:`sm`,onClick:()=>_(!1),disabled:m,children:m?(0,q.jsx)(G,{className:`size-3 animate-spin`}):`Remove`})]})]})})]})}function $s({worktree:e,isActive:t,onRemove:n}){let r=e.branch||e.head.slice(0,7)||`detached`,i=e.path.replace(/^\/home\/[^/]+/,`~`);return(0,q.jsxs)(`div`,{className:H(`group flex items-center gap-2 px-3 py-1.5 hover:bg-muted/50 transition-colors`,t&&`bg-accent/10`),children:[(0,q.jsx)(Rt,{className:`size-3.5 text-muted-foreground shrink-0`}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1 min-w-0`,children:[(0,q.jsx)(`span`,{className:`text-xs font-mono truncate`,title:e.branch,children:r}),t&&(0,q.jsx)(le,{className:`size-3 text-green-500 shrink-0`}),e.isMain&&(0,q.jsx)(`span`,{className:`text-[10px] bg-muted text-muted-foreground rounded px-1 shrink-0`,children:`main`}),e.locked&&(0,q.jsx)(`span`,{title:e.lockReason??`locked`,children:(0,q.jsx)(j,{className:`size-3 text-yellow-500 shrink-0`})}),e.prunable&&(0,q.jsx)(`span`,{title:`stale/prunable`,children:(0,q.jsx)(ot,{className:`size-3 text-destructive shrink-0`})})]}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground truncate`,title:e.path,children:i})]}),!e.isMain&&(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-destructive opacity-0 group-hover:opacity-100 can-hover:opacity-0 can-hover:group-hover:opacity-100 transition-all active:scale-95 shrink-0`,onClick:n,title:`Remove worktree`,"aria-label":`Remove worktree`,children:(0,q.jsx)(ke,{className:`size-3`})})]})}function ec({...e}){return(0,q.jsx)(s,{"data-slot":`dropdown-menu`,...e})}function tc({...e}){return(0,q.jsx)(i,{"data-slot":`dropdown-menu-trigger`,...e})}function nc({className:e,sideOffset:t=4,...n}){return(0,q.jsx)(g,{children:(0,q.jsx)(a,{"data-slot":`dropdown-menu-content`,sideOffset:t,className:H(`z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,e),...n})})}function rc({className:e,inset:t,variant:n=`default`,...r}){return(0,q.jsx)(T,{"data-slot":`dropdown-menu-item`,"data-inset":t,"data-variant":n,className:H(`relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!`,e),...r})}function ic({...e}){return(0,q.jsx)(o,{"data-slot":`dropdown-menu-sub`,...e})}function ac({className:e,inset:t,children:n,...r}){return(0,q.jsxs)(S,{"data-slot":`dropdown-menu-sub-trigger`,"data-inset":t,className:H(`flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground`,e),...r,children:[n,(0,q.jsx)(pe,{className:`ml-auto size-4`})]})}function oc({className:e,...t}){return(0,q.jsx)(p,{"data-slot":`dropdown-menu-sub-content`,className:H(`z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,e),...t})}var sc={M:`text-yellow-500`,A:`text-green-500`,D:`text-red-500`,R:`text-blue-500`,C:`text-purple-500`,"?":`text-gray-400`};function cc(e){let t=[];for(let n of e){let e=n.path.split(`/`),r=t;for(let t=0;t<e.length;t++){let i=e[t],a=e.slice(0,t+1).join(`/`),o=t===e.length-1,s=r.find(e=>e.name===i);s||(s={name:i,fullPath:a,file:o?n:void 0,children:[]},r.push(s)),o&&(s.file=n),r=s.children}}return t}function lc(e){let t=[];e.file&&t.push(e.file);for(let n of e.children)t.push(...lc(n));return t}function uc({metadata:e,tabId:t,onNavigate:n}){let r=e?.projectName,[i,a]=(0,K.useState)(null),[o,s]=(0,K.useState)(!0),[c,l]=(0,K.useState)(null),[u,d]=(0,K.useState)(``),[f,p]=(0,K.useState)(!1),[m,h]=(0,K.useState)(null),{openTab:g}=W(hs(e=>({openTab:e.openTab}))),_=Fe(e=>e.gitStatusViewMode),v=Fe(e=>e.setGitStatusViewMode),y=We(e=>e.projects.find(e=>e.name===r)?.path),b=Rs(e=>e.setCount),x=(0,K.useCallback)(async()=>{if(r)try{s(!0);let e=await V.get(`${B(r)}/git/status`);a(e),b(r,e.staged.length+e.unstaged.length+e.untracked.length),l(null)}catch(e){l(e instanceof Error?e.message:`Failed to fetch status`)}finally{s(!1)}},[r,b]);(0,K.useEffect)(()=>{x();let e=setInterval(x,5e3);return()=>clearInterval(e)},[x]);let S=async e=>{if(r){p(!0);try{await V.post(`${B(r)}/git/stage`,{files:e}),await x()}catch(e){l(e instanceof Error?e.message:`Stage failed`)}finally{p(!1)}}},C=async e=>{if(r){p(!0);try{await V.post(`${B(r)}/git/unstage`,{files:e}),await x()}catch(e){l(e instanceof Error?e.message:`Unstage failed`)}finally{p(!1)}}},w=async e=>{if(r){p(!0);try{await V.post(`${B(r)}/git/discard`,{files:e}),await x()}catch(e){l(e instanceof Error?e.message:`Discard failed`)}finally{p(!1)}}},T=async()=>{m&&(await w(m.files),h(null))},E=async()=>{if(!(!r||!u.trim()||!i?.staged.length)){p(!0);try{await V.post(`${B(r)}/git/commit`,{message:u.trim()}),d(``),await x()}catch(e){l(e instanceof Error?e.message:`Commit failed`)}finally{p(!1)}}},D=async()=>{if(r){p(!0);try{await V.post(`${B(r)}/git/push`,{}),await x()}catch(e){l(e instanceof Error?e.message:`Push failed`)}finally{p(!1)}}},O=async()=>{if(r){p(!0);try{await V.post(`${B(r)}/git/pull`,{}),await x()}catch(e){l(e instanceof Error?e.message:`Pull failed`)}finally{p(!1)}}},k=e=>{g({type:`git-diff`,title:Re(e.path),closable:!0,metadata:{projectName:r,filePath:e.path},projectId:r??null}),n?.()},ee=e=>{g({type:`editor`,title:Re(e.path),closable:!0,metadata:{projectName:r,filePath:e.path},projectId:r??null}),n?.()},A=(0,K.useMemo)(()=>[...i?.unstaged??[],...i?.untracked.map(e=>({path:e,status:`?`}))??[]],[i]);return r?o&&!i?(0,q.jsxs)(`div`,{className:`flex items-center justify-center h-full gap-2 text-muted-foreground`,children:[(0,q.jsx)(G,{className:`size-5 animate-spin`}),(0,q.jsx)(`span`,{className:`text-sm`,children:`Loading git status...`})]}):c&&!i?(0,q.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-2 text-destructive text-sm`,children:[(0,q.jsx)(`p`,{children:c}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,onClick:x,children:`Retry`})]}):(0,q.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b shrink-0`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium`,children:i?.current?`On: ${i.current}`:`Git Status`}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(R,{variant:_===`flat`?`secondary`:`ghost`,size:`icon-xs`,onClick:()=>v(`flat`),title:`Flat view`,children:(0,q.jsx)(Zt,{className:`size-3.5`})}),(0,q.jsx)(R,{variant:_===`tree`?`secondary`:`ghost`,size:`icon-xs`,onClick:()=>v(`tree`),title:`Tree view`,children:(0,q.jsx)(It,{className:`size-3.5`})}),(0,q.jsx)(R,{variant:`ghost`,size:`icon-xs`,onClick:()=>{g({type:`git-log`,title:`Git Log`,projectId:r??null,closable:!0,metadata:{projectName:r}}),n?.()},title:`View Git Log`,children:(0,q.jsx)(zt,{className:`size-3.5`})}),(0,q.jsx)(R,{variant:`ghost`,size:`icon-xs`,onClick:x,disabled:f,children:(0,q.jsx)(Ae,{className:o?`animate-spin`:``})})]})]}),c&&(0,q.jsx)(`div`,{className:`px-3 py-1.5 text-xs text-destructive bg-destructive/10 shrink-0`,children:c}),r&&(0,q.jsx)(Qs,{projectName:r,projectPath:y}),(0,q.jsx)(gs,{className:`flex-1 overflow-hidden`,children:(0,q.jsxs)(`div`,{className:`p-1.5 space-y-2 overflow-hidden`,children:[(0,q.jsx)(fc,{title:`Staged Changes`,count:i?.staged.length??0,files:i?.staged??[],viewMode:_,actionIcon:(0,q.jsx)(nn,{className:`size-3`}),actionAllIcon:(0,q.jsx)(nn,{className:`size-3`}),actionTitle:`Unstage`,onAction:e=>C([e.path]),onActionAll:i?.staged.length?()=>C(i.staged.map(e=>e.path)):void 0,actionAllLabel:`Unstage All`,onFolderAction:e=>C(e.map(e=>e.path)),onClickFile:k,onOpenFile:ee,disabled:f}),(0,q.jsx)(fc,{title:`Changes`,count:A.length,files:A,viewMode:_,actionIcon:(0,q.jsx)(De,{className:`size-3`}),actionAllIcon:(0,q.jsx)(De,{className:`size-3`}),actionTitle:`Stage`,onAction:e=>S([e.path]),onActionAll:A.length?()=>S(A.map(e=>e.path)):void 0,actionAllLabel:`Stage All`,onFolderAction:e=>S(e.map(e=>e.path)),onClickFile:k,onOpenFile:ee,disabled:f,showRevert:!0,onRevert:e=>h({label:e.path,files:[e.path]}),onFolderRevert:(e,t)=>h({label:`${t}/ (${e.length} files)`,files:e.map(e=>e.path)})})]})}),(0,q.jsxs)(`div`,{className:`border-t p-2 space-y-2 shrink-0`,children:[(0,q.jsx)(`textarea`,{className:`w-full h-16 px-3 py-2 text-base md:text-sm text-foreground bg-surface border border-border rounded-lg resize-none focus:outline-none focus:border-ring placeholder:text-muted-foreground`,placeholder:`Commit message...`,value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&E()}}),(0,q.jsx)(R,{size:`sm`,className:`w-full`,disabled:f||!u.trim()||!i?.staged.length,onClick:E,children:f?(0,q.jsx)(G,{className:`size-3 animate-spin`}):`Commit (${i?.staged.length??0})`}),(0,q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`flex-1`,disabled:f,onClick:D,children:[(0,q.jsx)(et,{className:`size-3`}),`Push`]}),(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`flex-1`,disabled:f,onClick:O,children:[(0,q.jsx)(Qe,{className:`size-3`}),`Pull`]})]})]}),(0,q.jsx)(_e,{open:!!m,onOpenChange:e=>!e&&h(null),children:(0,q.jsxs)(ye,{showCloseButton:!1,children:[(0,q.jsxs)(ve,{children:[(0,q.jsx)(be,{children:`Discard Changes`}),(0,q.jsxs)(ge,{children:[`Are you sure you want to discard all changes to`,` `,(0,q.jsx)(`code`,{className:`px-1 py-0.5 rounded bg-muted text-sm font-mono`,children:m?.label}),`? This action cannot be undone.`]})]}),(0,q.jsxs)(me,{children:[(0,q.jsx)(R,{variant:`outline`,onClick:()=>h(null),children:`Cancel`}),(0,q.jsx)(R,{variant:`destructive`,onClick:T,disabled:f,children:f?(0,q.jsx)(G,{className:`size-3 animate-spin`}):`Discard`})]})]})})]}):(0,q.jsx)(`div`,{className:`flex items-center justify-center h-full text-muted-foreground text-sm`,children:`No project selected.`})}function dc({showRevert:e,onRevert:t,onAction:n,onOpenFile:r,actionIcon:i,actionTitle:a,disabled:o}){return(0,q.jsxs)(`div`,{className:`hidden md:flex absolute right-0 top-0 bottom-0 items-center gap-0.5 pl-6 pr-1 bg-gradient-to-l from-background from-70% to-transparent can-hover:opacity-0 can-hover:group-hover:opacity-100 transition-opacity`,children:[r&&(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-primary active:scale-95 transition-colors`,onClick:e=>{e.stopPropagation(),r()},disabled:o,title:`Open file`,children:(0,q.jsx)(Ot,{className:`size-3`})}),e&&t&&(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-destructive active:scale-95 transition-colors`,onClick:e=>{e.stopPropagation(),t()},disabled:o,title:`Discard changes`,children:(0,q.jsx)(jn,{className:`size-3`})}),(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-accent-foreground active:scale-95 transition-colors`,onClick:e=>{e.stopPropagation(),n()},disabled:o,title:a,children:i})]})}function fc({title:e,count:t,files:n,viewMode:r,actionIcon:i,actionAllIcon:a,actionTitle:o,onAction:s,onActionAll:c,actionAllLabel:l,onFolderAction:u,onClickFile:d,onOpenFile:f,disabled:p,showRevert:m,onRevert:h,onFolderRevert:g}){return(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between mb-0.5`,children:[(0,q.jsxs)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase`,children:[e,` (`,t,`)`]}),c&&t>0&&(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-accent-foreground active:scale-95 transition-colors`,onClick:c,disabled:p,title:l,children:a})]}),n.length===0?(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground px-1`,children:`No changes`}):r===`flat`?(0,q.jsx)(`div`,{className:`w-full overflow-hidden`,children:n.map(e=>(0,q.jsx)(mc,{file:e,actionIcon:i,actionTitle:o,onAction:s,onClickFile:d,onOpenFile:f,disabled:p,showRevert:m,onRevert:h},e.path))}):(0,q.jsx)(hc,{files:n,actionIcon:i,actionTitle:o,onAction:s,onFolderAction:u,onClickFile:d,onOpenFile:f,disabled:p,showRevert:m,onRevert:h,onFolderRevert:g})]})}function pc(e,t,n=400){let r=(0,K.useRef)(null),i=(0,K.useRef)(!1),a=(0,K.useRef)(!1),o=(0,K.useCallback)(()=>{r.current&&=(clearTimeout(r.current),null)},[]);return{onTouchStart:(0,K.useCallback)(t=>{i.current=!1,a.current=!1,r.current=setTimeout(()=>{a.current=!0,e()},n)},[e,n]),onTouchMove:(0,K.useCallback)(()=>{i.current=!0,o()},[o]),onTouchEnd:(0,K.useCallback)(e=>{o(),!i.current&&!a.current&&(e.preventDefault(),t())},[o,t])}}function mc({file:e,actionIcon:t,actionTitle:n,onAction:r,onClickFile:i,onOpenFile:a,disabled:o,showRevert:s,onRevert:c,displayName:l}){let[u,d]=(0,K.useState)(!1),f=pc((0,K.useCallback)(()=>d(!0),[]),(0,K.useCallback)(()=>i(e),[i,e])),p=(0,q.jsxs)(`div`,{className:`group relative flex items-center gap-1 hover:bg-muted/50 rounded pl-1 py-px w-full min-w-0`,children:[(0,q.jsx)(`span`,{className:`text-xs font-mono w-4 text-center shrink-0 ${sc[e.status]??``}`,children:e.status}),(0,q.jsx)(`button`,{type:`button`,className:`hidden md:block flex-1 text-left text-xs font-mono truncate hover:underline min-w-0`,onClick:()=>i(e),title:e.path,children:l??e.path}),(0,q.jsx)(`span`,{className:`md:hidden flex-1 text-left text-xs font-mono truncate min-w-0 select-none`,children:l??e.path}),(0,q.jsx)(dc,{showRevert:s,onRevert:c?()=>c(e):void 0,onOpenFile:a?()=>a(e):void 0,onAction:()=>r(e),actionIcon:t,actionTitle:n,disabled:o})]});return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`hidden md:block`,children:p}),(0,q.jsx)(`div`,{className:`md:hidden select-none`,...f,children:(0,q.jsxs)(ec,{open:u,onOpenChange:d,children:[(0,q.jsx)(tc,{asChild:!0,children:p}),(0,q.jsxs)(nc,{align:`start`,className:`min-w-40`,children:[(0,q.jsx)(rc,{onClick:()=>i(e),children:`View Diff`}),a&&(0,q.jsx)(rc,{onClick:()=>a(e),children:`Open File`}),(0,q.jsx)(rc,{onClick:()=>r(e),disabled:o,children:n}),s&&c&&(0,q.jsx)(rc,{className:`text-destructive focus:text-destructive`,onClick:()=>c(e),disabled:o,children:`Discard Changes`})]})]})})]})}function hc({files:e,actionIcon:t,actionTitle:n,onAction:r,onFolderAction:i,onClickFile:a,onOpenFile:o,disabled:s,showRevert:c,onRevert:l,onFolderRevert:u}){let d=(0,K.useMemo)(()=>cc(e),[e]);return(0,q.jsx)(`div`,{children:d.map((e,f)=>(0,q.jsx)(gc,{node:e,depth:0,isLast:f===d.length-1,actionIcon:t,actionTitle:n,onAction:r,onFolderAction:i,onClickFile:a,onOpenFile:o,disabled:s,showRevert:c,onRevert:l,onFolderRevert:u},e.fullPath))})}function gc({node:e,depth:t,isLast:n,actionIcon:r,actionTitle:i,onAction:a,onFolderAction:o,onClickFile:s,onOpenFile:c,disabled:l,showRevert:u,onRevert:d,onFolderRevert:f}){let[p,m]=(0,K.useState)(!0),h=e.children.length>0&&!e.file,g=t*12-6,_=`absolute border-dashed border-border`;if(e.file)return(0,q.jsxs)(`div`,{className:`relative`,style:{paddingLeft:t*12},children:[t>0&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`${_} border-l`,style:{left:g,top:0,bottom:n?`50%`:0}}),(0,q.jsx)(`div`,{className:`${_} border-t`,style:{left:g,top:`50%`,width:6}})]}),(0,q.jsx)(mc,{file:e.file,displayName:e.name,actionIcon:r,actionTitle:i,onAction:a,onClickFile:s,onOpenFile:c,disabled:l,showRevert:u,onRevert:d})]});if(h){let h=lc(e);return(0,q.jsxs)(`div`,{className:`relative`,children:[t>0&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`${_} border-l`,style:{left:g,top:0,...n?{height:13}:{bottom:0}}}),(0,q.jsx)(`div`,{className:`${_} border-t`,style:{left:g,top:13,width:8}})]}),(()=>{let n=(0,q.jsxs)(`div`,{className:`group relative flex items-center hover:bg-muted/50 rounded py-0.5`,style:{paddingLeft:t*12+2},children:[(0,q.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 flex-1 min-w-0 text-xs font-mono text-muted-foreground`,onClick:()=>m(!p),children:[p?(0,q.jsx)(ce,{className:`size-3.5 shrink-0`}):(0,q.jsx)(pe,{className:`size-3.5 shrink-0`}),(0,q.jsx)(`span`,{className:`truncate font-semibold`,children:e.name}),(0,q.jsxs)(`span`,{className:`text-[10px] opacity-60 shrink-0`,children:[`(`,h.length,`)`]})]}),(0,q.jsx)(dc,{showRevert:u,onRevert:f?()=>f(h,e.fullPath):void 0,onAction:()=>o?.(h),actionIcon:r,actionTitle:`${i} ${e.name}/`,disabled:l})]});return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`hidden md:block`,children:n}),(0,q.jsx)(`div`,{className:`md:hidden`,children:(0,q.jsxs)(ec,{children:[(0,q.jsx)(tc,{asChild:!0,children:n}),(0,q.jsxs)(nc,{align:`start`,className:`min-w-40`,children:[(0,q.jsxs)(rc,{onClick:()=>o?.(h),disabled:l,children:[i,` `,e.name,`/`]}),f&&(0,q.jsx)(rc,{className:`text-destructive focus:text-destructive`,onClick:()=>f(h,e.fullPath),disabled:l,children:`Discard Changes`})]})]})})]})})(),p&&(0,q.jsx)(`div`,{children:e.children.map((n,p)=>(0,q.jsx)(gc,{node:n,depth:t+1,isLast:p===e.children.length-1,actionIcon:r,actionTitle:i,onAction:a,onFolderAction:o,onClickFile:s,onOpenFile:c,disabled:l,showRevert:u,onRevert:d,onFolderRevert:f},n.fullPath))})]})}return null}function _c({className:e,orientation:t=`horizontal`,decorative:n=!0,...r}){return(0,q.jsx)(b,{"data-slot":`separator`,decorative:n,orientation:t,className:H(`shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px`,e),...r})}var vc=[{key:`general`,label:`General`},{key:`tabs`,label:`Tabs`},{key:`projects`,label:`Projects`}],yc=[`Ctrl+T`,`Ctrl+W`,`Ctrl+N`,`Ctrl+Tab`,`Ctrl+L`,`Ctrl+H`,`Ctrl+J`,`F5`,`Ctrl+R`,`Ctrl+Shift+I`,`Ctrl+Shift+J`];function bc({actionId:e,combo:t,locked:n}){let[r,i]=(0,K.useState)(!1),a=Mo(e=>e.setBinding),o=(0,K.useRef)(null),s=(0,K.useCallback)(t=>{if(t.preventDefault(),t.stopPropagation(),t.key===`Escape`){i(!1);return}let n=ko(t);n&&(a(e,n),i(!1))},[e,a]);return(0,K.useEffect)(()=>{if(r)return document.addEventListener(`keydown`,s,!0),()=>document.removeEventListener(`keydown`,s,!0)},[r,s]),(0,K.useEffect)(()=>{if(!r)return;let e=e=>{o.current&&!o.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[r]),n?(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded border border-border bg-muted px-2 py-0.5 text-[11px] font-mono text-muted-foreground`,children:[(0,q.jsx)(j,{className:`size-2.5`}),Oo(t)]}):r?(0,q.jsx)(`button`,{ref:o,className:`inline-flex items-center rounded border-2 border-primary bg-primary/10 px-2 py-0.5 text-[11px] font-mono text-primary animate-pulse`,children:`Press keys...`}):(0,q.jsx)(`button`,{ref:o,onClick:()=>i(!0),className:`inline-flex items-center rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-mono text-foreground hover:border-primary hover:bg-primary/5 transition-colors cursor-pointer`,title:`Click to change shortcut`,children:Oo(t)})}function xc(){let{getBinding:e,resetBinding:t,resetAll:n,overrides:r}=Mo(),i=No(e=>e.contributions),a=i?.keybindings??[],o=i?.commands??[];return(0,q.jsxs)(`div`,{className:`space-y-3`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-text-secondary`,children:`Keyboard Shortcuts`}),Object.keys(r).length>0&&(0,q.jsxs)(R,{variant:`ghost`,size:`sm`,className:`h-6 text-[10px] text-muted-foreground`,onClick:n,children:[(0,q.jsx)(vn,{className:`size-3 mr-1`}),`Reset all`]})]}),(0,q.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-amber-500/30 bg-amber-500/5 px-2.5 py-2`,children:[(0,q.jsx)(An,{className:`size-3.5 text-amber-500 shrink-0 mt-0.5`}),(0,q.jsxs)(`p`,{className:`text-[10px] text-muted-foreground leading-relaxed`,children:[`Some shortcuts (`,yc.slice(0,4).join(`, `),`...) are reserved by the browser and cannot be overridden.`]})]}),vc.map(n=>{let i=wo.filter(e=>e.category===n.key);return i.length===0?null:(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:n.label}),(0,q.jsx)(`div`,{className:`space-y-0.5`,children:i.map(n=>{let i=e(n.id),a=n.id in r;return(0,q.jsxs)(`div`,{className:`flex items-center justify-between py-1 px-1 rounded hover:bg-surface-elevated/50 transition-colors`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[(0,q.jsx)(`span`,{className:`text-xs text-foreground`,children:n.label}),n.note&&(0,q.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:n.note})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0 ml-2`,children:[(0,q.jsx)(bc,{actionId:n.id,combo:i,locked:n.locked}),a&&!n.locked&&(0,q.jsx)(`button`,{onClick:()=>t(n.id),className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-foreground hover:bg-surface-elevated transition-colors`,title:`Reset to default`,children:(0,q.jsx)(vn,{className:`size-3`})})]})]},n.id)})})]},n.key)}),a.length>0&&(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:`Extensions`}),(0,q.jsx)(`div`,{className:`space-y-0.5`,children:a.map(n=>{let i=o.find(e=>e.command===n.command)?.title??n.command,a=`ext:${n.command}`,s=e(a)||n.key,c=a in r;return(0,q.jsxs)(`div`,{className:`flex items-center justify-between py-1 px-1 rounded hover:bg-surface-elevated/50 transition-colors`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,q.jsx)(hn,{className:`size-3 text-muted-foreground shrink-0`}),(0,q.jsx)(`span`,{className:`text-xs text-foreground`,children:i})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0 ml-2`,children:[(0,q.jsx)(bc,{actionId:a,combo:s}),c&&(0,q.jsx)(`button`,{onClick:()=>t(a),className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-foreground hover:bg-surface-elevated transition-colors`,title:`Reset to default`,children:(0,q.jsx)(vn,{className:`size-3`})})]})]},a)})})]})]})}var Sc=`Hello! Reply briefly.`,Cc=`claude-sonnet-4-6`;function wc(e){let[t,n]=(0,K.useState)(!1);return(0,q.jsxs)(_e,{open:t,onOpenChange:n,children:[(0,q.jsx)(he,{asChild:!0,children:(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`h-7 text-[11px] gap-1.5 cursor-pointer`,children:[(0,q.jsx)(jt,{className:`size-3`}),`Test`]})}),(0,q.jsxs)(ye,{className:`sm:max-w-md max-h-[85vh] overflow-y-auto`,children:[(0,q.jsxs)(ve,{children:[(0,q.jsx)(be,{className:`text-sm`,children:`Test Proxy`}),(0,q.jsx)(ge,{className:`text-[11px]`,children:`Send a test request and inspect the raw response.`})]}),t&&(0,q.jsx)(Tc,{...e})]})]})}function Tc({authKey:e,baseUrl:t}){let[n,r]=(0,K.useState)(`anthropic`),[i,a]=(0,K.useState)(Sc),[o,s]=(0,K.useState)(Cc),[c,l]=(0,K.useState)(!0),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(null),[m,h]=(0,K.useState)(null),[g,_]=(0,K.useState)(null),v=(0,K.useRef)(null),y=(0,K.useRef)(null);(0,K.useEffect)(()=>{v.current?.select()},[]),(0,K.useEffect)(()=>{y.current&&(y.current.scrollTop=y.current.scrollHeight)},[f]);let b=e=>{r(e),p(null),h(null),_(null)},x=async()=>{d(!0),p(null),h(null),_(null);let r=Date.now(),a=n===`openai`,s=a?`${t}/proxy/v1/chat/completions`:`${t}/proxy/v1/messages`,l=JSON.stringify({model:o,max_tokens:256,stream:c,messages:[{role:`user`,content:i}]}),u={"Content-Type":`application/json`};a?u.Authorization=`Bearer ${e}`:(u[`x-api-key`]=e,u[`anthropic-version`]=`2023-06-01`);try{let e=await fetch(s,{method:`POST`,headers:u,body:l});if(!e.ok){let t=await e.text();h(`HTTP ${e.status}: ${t}`),d(!1),_(Date.now()-r);return}if(c){let t=e.body?.getReader();if(!t){h(`No response body`),d(!1);return}let n=new TextDecoder,i=``;for(;;){let{done:e,value:r}=await t.read();if(e)break;i+=n.decode(r,{stream:!0}),p(i)}_(Date.now()-r)}else{let t=await e.text();try{p(JSON.stringify(JSON.parse(t),null,2))}catch{p(t)}_(Date.now()-r)}}catch(e){h(e.message)}finally{d(!1),_(e=>e??Date.now()-r)}};return(0,q.jsxs)(`div`,{className:`space-y-3 min-w-0`,children:[(0,q.jsxs)(`div`,{className:`space-y-1.5 min-w-0`,children:[(0,q.jsx)(L,{className:`text-[11px]`,children:`Auth Style`}),(0,q.jsx)(`div`,{className:`flex gap-1`,children:[`anthropic`,`openai`].map(e=>(0,q.jsx)(`button`,{onClick:()=>b(e),className:`flex-1 h-8 rounded-md text-[11px] font-medium border transition-colors cursor-pointer ${n===e?`bg-primary text-primary-foreground border-primary`:`bg-muted text-muted-foreground border-transparent hover:bg-muted/80`}`,children:e===`anthropic`?`Anthropic`:`OpenAI`},e))}),(0,q.jsx)(`p`,{className:`text-[9px] text-muted-foreground`,children:n===`anthropic`?`x-api-key header`:`Authorization: Bearer header`})]}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(L,{className:`text-[11px]`,children:`Model`}),(0,q.jsxs)(`select`,{value:o,onChange:e=>s(e.target.value),className:`h-8 w-full rounded-md border bg-background px-2 text-[11px]`,children:[(0,q.jsx)(`option`,{value:`claude-sonnet-4-6`,children:`claude-sonnet-4-6`}),(0,q.jsx)(`option`,{value:`claude-opus-4-7`,children:`claude-opus-4-7`}),(0,q.jsx)(`option`,{value:`claude-haiku-4-5-20251001`,children:`claude-haiku-4-5`}),(0,q.jsx)(`option`,{value:`claude-opus-4-6`,children:`claude-opus-4-6`})]})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(L,{className:`text-[11px]`,children:`Streaming`}),(0,q.jsx)(`div`,{className:`flex gap-1`,children:[!0,!1].map(e=>(0,q.jsx)(`button`,{onClick:()=>l(e),className:`h-7 px-3 rounded-md text-[11px] font-medium border transition-colors cursor-pointer ${c===e?`bg-primary text-primary-foreground border-primary`:`bg-muted text-muted-foreground border-transparent hover:bg-muted/80`}`,children:e?`Stream`:`JSON`},String(e)))})]}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(L,{className:`text-[11px]`,children:`Message`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(z,{ref:v,value:i,onChange:e=>a(e.target.value),placeholder:`Type a test message...`,className:`h-9 text-[11px] flex-1 min-w-0`,onKeyDown:e=>{e.key===`Enter`&&!u&&x()}}),(0,q.jsxs)(R,{size:`sm`,className:`h-9 px-3 cursor-pointer shrink-0`,onClick:x,disabled:u||!i.trim(),children:[u?(0,q.jsx)(G,{className:`size-3.5 animate-spin`}):(0,q.jsx)(dn,{className:`size-3.5`}),(0,q.jsx)(`span`,{className:`ml-1 text-[11px]`,children:u?`...`:`Send`})]})]})]}),(f||m)&&(0,q.jsxs)(`div`,{className:`space-y-1 min-w-0`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(L,{className:`text-[10px] text-muted-foreground`,children:`Raw Response`}),g!=null&&(0,q.jsxs)(`span`,{className:`text-[9px] font-mono text-muted-foreground`,children:[(g/1e3).toFixed(1),`s`]})]}),m?(0,q.jsx)(`pre`,{className:`text-[9px] font-mono bg-red-500/10 text-red-500 p-2 rounded overflow-auto max-h-52 whitespace-pre-wrap break-all`,children:m}):(0,q.jsx)(`pre`,{ref:y,className:`text-[9px] font-mono bg-muted p-2 rounded overflow-auto max-h-52 whitespace-pre-wrap break-all`,children:f})]})]})}function Ec(){let[e,t]=(0,K.useState)(null),[n,r]=(0,K.useState)(!0),[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(null),[c,l]=(0,K.useState)(null);(0,K.useEffect)(()=>{r(!0),qe().then(t).catch(e=>s(e.message)).finally(()=>r(!1))},[]);let u=async e=>{a(!0),s(null);try{t(await Ke(e))}catch(e){s(e.message)}finally{a(!1)}},d=(e,t)=>{navigator.clipboard.writeText(e),l(t),setTimeout(()=>l(null),2e3)};if(n||!e)return(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-text-secondary`,children:`API Proxy`}),(0,q.jsx)(`p`,{className:`text-[11px] text-text-subtle`,children:o?`Error: ${o}`:`Loading...`})]});let f=!!e.authKey,p=!!e.tunnelUrl,m=e.localEndpoint,h=m.replace(/\/proxy\/v1\/messages$/,``);return(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsx)(`div`,{className:`space-y-1.5`,children:(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Expose your Claude accounts as an Anthropic-compatible API endpoint. External tools (OpenCode, Cursor, etc.) can use your accounts via this proxy.`})}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,q.jsx)(L,{className:`text-xs`,children:`Enable Proxy`}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Accept API requests on /proxy/v1/messages`})]}),(0,q.jsx)(ie,{checked:e.enabled,onCheckedChange:e=>u({enabled:e}),disabled:i})]}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(L,{className:`text-[11px]`,children:`Auth Key`}),f?(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(z,{readOnly:!0,value:e.authKey,className:`h-7 text-[11px] font-mono flex-1`}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-7 px-2 cursor-pointer shrink-0`,onClick:()=>d(e.authKey,`key`),children:c===`key`?`Copied!`:(0,q.jsx)(pt,{className:`size-3`})}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-7 px-2 cursor-pointer shrink-0`,onClick:()=>u({generateKey:!0}),disabled:i,children:(0,q.jsx)(Ae,{className:`size-3`})})]}):(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-7 text-xs cursor-pointer`,onClick:()=>u({generateKey:!0}),disabled:i,children:`Generate Auth Key`}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Use as Bearer token or x-api-key when calling the proxy.`})]}),e.enabled&&f&&(0,q.jsxs)(`div`,{className:`space-y-2 rounded-md border p-3 bg-muted/30`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`h4`,{className:`text-[11px] font-medium`,children:`Connection Info`}),(0,q.jsx)(wc,{authKey:e.authKey,baseUrl:window.location.origin})]}),(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(L,{className:`text-[10px] text-muted-foreground`,children:`Anthropic Endpoint`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5 items-center`,children:[(0,q.jsx)(`code`,{className:`text-[10px] font-mono bg-muted px-1.5 py-0.5 rounded flex-1 truncate`,children:p?e.proxyEndpoint:m}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`h-6 px-1.5 cursor-pointer shrink-0`,onClick:()=>d(p?e.proxyEndpoint:m,`anthropic`),children:c===`anthropic`?`Copied!`:(0,q.jsx)(pt,{className:`size-3`})})]})]}),(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(L,{className:`text-[10px] text-muted-foreground`,children:`OpenAI-Compatible Endpoint`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5 items-center`,children:[(0,q.jsx)(`code`,{className:`text-[10px] font-mono bg-muted px-1.5 py-0.5 rounded flex-1 truncate`,children:p?e.openAiEndpoint:e.localOpenAiEndpoint}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`h-6 px-1.5 cursor-pointer shrink-0`,onClick:()=>d(p?e.openAiEndpoint:e.localOpenAiEndpoint,`openai`),children:c===`openai`?`Copied!`:(0,q.jsx)(pt,{className:`size-3`})})]})]}),!p&&(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Start a Cloudflare tunnel (Share) to get a public URL.`}),(0,q.jsxs)(`div`,{className:`space-y-1 pt-1`,children:[(0,q.jsx)(L,{className:`text-[10px] text-muted-foreground`,children:`Anthropic Format`}),(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(`pre`,{className:`text-[9px] font-mono bg-muted p-2 rounded overflow-x-auto whitespace-pre`,children:`ANTHROPIC_BASE_URL=${p?e.tunnelUrl+`/proxy`:h+`/proxy`}
16
16
  ANTHROPIC_API_KEY=${e.authKey}`}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`absolute top-1 right-1 h-5 px-1 cursor-pointer`,onClick:()=>d(`ANTHROPIC_BASE_URL=${p?e.tunnelUrl+`/proxy`:h+`/proxy`}\nANTHROPIC_API_KEY=${e.authKey}`,`anthropic-env`),children:c===`anthropic-env`?`Copied!`:(0,q.jsx)(pt,{className:`size-2.5`})})]})]}),(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(L,{className:`text-[10px] text-muted-foreground`,children:`OpenAI Format`}),(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(`pre`,{className:`text-[9px] font-mono bg-muted p-2 rounded overflow-x-auto whitespace-pre`,children:`OPENAI_BASE_URL=${p?e.tunnelUrl+`/proxy/v1`:h+`/proxy/v1`}
17
- OPENAI_API_KEY=${e.authKey}`}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`absolute top-1 right-1 h-5 px-1 cursor-pointer`,onClick:()=>d(`OPENAI_BASE_URL=${p?e.tunnelUrl+`/proxy/v1`:h+`/proxy/v1`}\nOPENAI_API_KEY=${e.authKey}`,`openai-env`),children:c===`openai-env`?`Copied!`:(0,q.jsx)(pt,{className:`size-2.5`})})]})]}),(0,q.jsx)(`div`,{className:`flex items-center gap-3 pt-1`,children:(0,q.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,children:[`Requests served: `,(0,q.jsx)(`span`,{className:`font-mono`,children:e.requestCount})]})})]}),i&&(0,q.jsx)(`p`,{className:`text-[11px] text-text-subtle`,children:`Saving...`}),o&&(0,q.jsx)(`p`,{className:`text-[11px] text-red-500`,children:o})]})}function Dc(){return V.get(`/api/settings/mcp`)}function Oc(e,t){return V.post(`/api/settings/mcp`,{name:e,config:t})}function kc(e,t){return V.put(`/api/settings/mcp/${encodeURIComponent(e)}`,t)}function Ac(e){return V.del(`/api/settings/mcp/${encodeURIComponent(e)}`)}function jc(){return V.post(`/api/settings/mcp/import`,{})}function Mc(e){return!e||!/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(e)?`Name must start with a letter/digit, then alphanumeric, hyphens, or underscores`:e.length>50?`Name max 50 chars`:null}function Nc(e){let t=[];if(!e||typeof e!=`object`)return[`Config must be an object`];let n=e,r=n.type??`stdio`;return r===`stdio`?(!n.command||typeof n.command!=`string`)&&t.push(`command is required for stdio`):r===`http`||r===`sse`?((!n.url||typeof n.url!=`string`)&&t.push(`url is required for `+r),n.url&&typeof n.url==`string`&&!/^https?:\/\/.+/.test(n.url)&&t.push(`url must be HTTP(S)`)):t.push(`type must be stdio, http, or sse`),t}var Pc=[`stdio`,`http`,`sse`];function Fc({open:e,onClose:t,editServer:n}){let r=!!n,[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(`stdio`),[c,l]=(0,K.useState)(``),[u,d]=(0,K.useState)(``),[f,p]=(0,K.useState)(``),[m,h]=(0,K.useState)([]),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(null);(0,K.useEffect)(()=>{if(e)if(y(null),_(!1),n){a(n.name),s(n.transport||`stdio`);let e=n.config;`command`in e?(l(e.command||``),d((e.args??[]).join(` `)),h(Ic(e.env))):`url`in e&&(p(e.url||``),h(Ic(e.headers)))}else a(``),s(`stdio`),l(``),d(``),p(``),h([])},[e,n]);let b=()=>{let e=Lc(m);return o===`stdio`?{type:`stdio`,command:c,...u.trim()&&{args:u.trim().split(/\s+/)},...Object.keys(e).length>0&&{env:e}}:{type:o,url:f,...Object.keys(e).length>0&&{headers:e}}},x=async()=>{if(y(null),!r){let e=Mc(i);if(e){y(e);return}}let e=b(),n=Nc(e);if(n.length){y(n.join(`; `));return}_(!0);try{r?await kc(i,e):await Oc(i,e),t(!0)}catch(e){y(e.message||`Save failed`)}finally{_(!1)}},S=()=>h([...m,{key:``,value:``}]),C=e=>h(m.filter((t,n)=>n!==e)),w=(e,t,n)=>{h(m.map((r,i)=>i===e?{key:t===`key`?n:r.key,value:t===`value`?n:r.value}:r))},T=o===`stdio`,E=T?`Environment Variables`:`Headers`;return(0,q.jsx)(_e,{open:e,onOpenChange:e=>{e||t()},children:(0,q.jsxs)(ye,{className:`max-h-[85vh] overflow-y-auto sm:max-w-md`,children:[(0,q.jsxs)(ve,{children:[(0,q.jsx)(be,{className:`text-sm`,children:r?`Edit MCP Server`:`Add MCP Server`}),(0,q.jsx)(ge,{className:`text-[11px]`,children:`Configure a Model Context Protocol server connection.`})]}),(0,q.jsxs)(`div`,{className:`space-y-3`,children:[(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`label`,{className:`text-[11px] font-medium text-muted-foreground`,children:`Name`}),(0,q.jsx)(z,{value:i,onChange:e=>a(e.target.value),placeholder:`my-mcp-server`,className:`h-8 text-xs`,disabled:r})]}),(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`label`,{className:`text-[11px] font-medium text-muted-foreground`,children:`Transport`}),(0,q.jsx)(`div`,{className:`flex gap-1`,children:Pc.map(e=>(0,q.jsx)(R,{variant:o===e?`default`:`outline`,size:`sm`,className:`flex-1 h-7 text-xs cursor-pointer`,onClick:()=>{s(e),h([]),l(``),d(``),p(``)},children:e},e))})]}),T?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`label`,{className:`text-[11px] font-medium text-muted-foreground`,children:`Command *`}),(0,q.jsx)(z,{value:c,onChange:e=>l(e.target.value),placeholder:`npx`,className:`h-8 text-xs`})]}),(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`label`,{className:`text-[11px] font-medium text-muted-foreground`,children:`Arguments (space-separated)`}),(0,q.jsx)(z,{value:u,onChange:e=>d(e.target.value),placeholder:`@playwright/mcp@latest`,className:`h-8 text-xs`})]})]}):(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`label`,{className:`text-[11px] font-medium text-muted-foreground`,children:`URL *`}),(0,q.jsx)(z,{value:f,onChange:e=>p(e.target.value),placeholder:`https://mcp.example.com`,className:`h-8 text-xs`})]}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(`label`,{className:`text-[11px] font-medium text-muted-foreground`,children:E}),m.map((e,t)=>(0,q.jsxs)(`div`,{className:`flex gap-1 items-center`,children:[(0,q.jsx)(z,{value:e.key,onChange:e=>w(t,`key`,e.target.value),placeholder:`KEY`,className:`h-7 text-xs flex-1`}),(0,q.jsx)(z,{value:e.value,onChange:e=>w(t,`value`,e.target.value),placeholder:`value`,className:`h-7 text-xs flex-1`}),(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0 cursor-pointer`,onClick:()=>C(t),children:(0,q.jsx)(Ae,{className:`size-3`})})]},t)),(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`h-7 text-xs gap-1 cursor-pointer`,onClick:S,children:[(0,q.jsx)(ke,{className:`size-3`}),` Add `,T?`Variable`:`Header`]})]}),v&&(0,q.jsx)(`p`,{className:`text-[11px] text-destructive`,children:v})]}),(0,q.jsxs)(me,{children:[(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-8 text-xs cursor-pointer`,onClick:()=>t(),children:`Cancel`}),(0,q.jsx)(R,{size:`sm`,className:`h-8 text-xs cursor-pointer`,onClick:x,disabled:g,children:g?`Saving...`:`Save`})]})]})})}function Ic(e){return e?Object.entries(e).map(([e,t])=>({key:e,value:t})):[]}function Lc(e){let t={};for(let{key:n,value:r}of e)n.trim()&&(t[n.trim()]=r);return t}function Rc(){let[e,t]=(0,K.useState)([]),[n,r]=(0,K.useState)(!0),[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(null),[c,l]=(0,K.useState)(null),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(null),m=(0,K.useCallback)(async()=>{try{t(await Dc())}catch(e){console.error(`Failed to load MCP servers:`,e)}finally{r(!1)}},[]);(0,K.useEffect)(()=>{m()},[m]);let h=async e=>{try{await Ac(e),l(null),m()}catch(e){console.error(`Failed to delete:`,e)}},g=async()=>{d(!0),p(null);try{let e=await jc();p(`Imported ${e.imported}, skipped ${e.skipped}`),m()}catch(e){p(e.message||`Import failed`)}finally{d(!1)}},_=e=>{a(!1),s(null),e&&m()},v=()=>{s(null),a(!0)},y=e=>{s(e),a(!0)};return n?(0,q.jsx)(`div`,{className:`space-y-3`,children:[1,2,3].map(e=>(0,q.jsx)(`div`,{className:`h-16 rounded-lg bg-muted animate-pulse`},e))}):(0,q.jsxs)(`div`,{className:`space-y-3`,children:[e.length===0?(0,q.jsxs)(`div`,{className:`text-center py-8 space-y-2`,children:[(0,q.jsx)(xn,{className:`size-8 mx-auto text-muted-foreground`}),(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No MCP servers configured. Add one or import from Claude Code.`})]}):(0,q.jsx)(`div`,{className:`space-y-2`,children:e.map(e=>(0,q.jsxs)(`div`,{className:`rounded-lg border bg-card p-3 space-y-1.5`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{className:`text-xs font-medium truncate flex-1`,children:e.name}),(0,q.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded bg-muted text-muted-foreground shrink-0`,children:e.transport})]}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground truncate`,children:zc(e)}),(0,q.jsx)(`div`,{className:`flex justify-end gap-1.5`,children:c===e.name?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`span`,{className:`text-[11px] text-destructive self-center mr-1`,children:`Delete?`}),(0,q.jsx)(R,{variant:`destructive`,size:`sm`,className:`h-8 min-w-[44px] text-xs cursor-pointer`,onClick:()=>h(e.name),children:`Yes`}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-8 min-w-[44px] text-xs cursor-pointer`,onClick:()=>l(null),children:`No`})]}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(R,{variant:`ghost`,size:`sm`,className:`h-7 text-xs gap-1 cursor-pointer`,onClick:()=>y(e),children:[(0,q.jsx)(re,{className:`size-3`}),` Edit`]}),(0,q.jsxs)(R,{variant:`ghost`,size:`sm`,className:`h-7 text-xs gap-1 text-destructive hover:text-destructive cursor-pointer`,onClick:()=>l(e.name),children:[(0,q.jsx)(Oe,{className:`size-3`}),` Delete`]})]})})]},e.name))}),(0,q.jsxs)(`div`,{className:`space-y-2 pt-1`,children:[(0,q.jsxs)(R,{className:`w-full h-10 text-xs gap-1.5 cursor-pointer`,onClick:v,children:[(0,q.jsx)(ke,{className:`size-3.5`}),` Add MCP Server`]}),(0,q.jsxs)(R,{variant:`outline`,className:`w-full h-10 text-xs gap-1.5 cursor-pointer`,onClick:g,disabled:u,children:[(0,q.jsx)(Ee,{className:`size-3.5`}),` `,u?`Importing...`:`Import from Claude Code`]}),f&&(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground text-center`,children:f})]}),(0,q.jsx)(Fc,{open:i,onClose:_,editServer:o})]})}function zc(e){let t=e.config;if(e.transport===`stdio`||!(`url`in t)){let e=t;return[e.command,...e.args??[]].join(` `)}return t.url??``}function Bc(){let[e,t]=(0,K.useState)([]),[n,r]=(0,K.useState)(!0),[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(!1),[c,l]=(0,K.useState)(``),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(null),[m,h]=(0,K.useState)(null),g=(0,K.useCallback)(async()=>{try{t(await V.get(`/api/extensions`))}catch(e){console.error(`Failed to load extensions:`,e)}finally{r(!1)}},[]);(0,K.useEffect)(()=>{g()},[g]);let _=async()=>{let e=i.trim();if(e){s(!0);try{await V.post(`/api/extensions/install`,{name:e}),tr.success(`Installed ${e}`),a(``),g()}catch(e){tr.error(e.message||`Install failed`)}finally{s(!1)}}},v=async e=>{p(e.id);try{await V.patch(`/api/extensions/${e.id}`,{enabled:!e.enabled}),g()}catch(e){tr.error(e.message||`Toggle failed`)}finally{p(null)}},y=async e=>{h(e);try{await V.del(`/api/extensions/${e}`),tr.success(`Removed ${e}`),g()}catch(e){tr.error(e.message||`Remove failed`)}finally{h(null)}};return n?(0,q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,q.jsx)(G,{className:`size-4 animate-spin text-muted-foreground`})}):(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Install Extension`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(z,{value:i,onChange:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&_()},placeholder:`npm package name (e.g. @ppm/ext-myext)`,className:`h-8 text-xs flex-1`}),(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`h-8 text-xs px-3 gap-1 cursor-pointer`,disabled:!i.trim()||o,onClick:_,children:[o?(0,q.jsx)(G,{className:`size-3 animate-spin`}):(0,q.jsx)(ke,{className:`size-3`}),`Install`]})]}),(0,q.jsx)(`button`,{onClick:()=>d(!u),className:`text-[11px] text-muted-foreground hover:text-foreground transition-colors cursor-pointer`,children:u?`Hide`:`Dev link local extension...`}),u&&(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(z,{value:c,onChange:e=>l(e.target.value),placeholder:`Local path (e.g. ./packages/ext-myext)`,className:`h-8 text-xs flex-1`}),(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`h-8 text-xs px-3 gap-1 cursor-pointer`,disabled:!c.trim(),onClick:async()=>{try{await V.post(`/api/extensions/dev-link`,{path:c.trim()}),tr.success(`Dev-linked successfully`),l(``),g()}catch(e){tr.error(e.message||`Dev link failed`)}},children:[(0,q.jsx)(Ft,{className:`size-3`}),`Link`]})]})]}),(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsxs)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:[`Installed (`,e.length,`)`]}),e.length===0?(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground py-4 text-center`,children:`No extensions installed`}):(0,q.jsx)(`div`,{className:`space-y-1`,children:e.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-2.5 py-2 rounded-lg bg-muted/50 hover:bg-muted transition-colors`,children:[(0,q.jsx)(`div`,{className:`size-8 rounded-md bg-background flex items-center justify-center shrink-0`,children:(0,q.jsx)(hn,{className:`size-4 text-muted-foreground`})}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,q.jsx)(`p`,{className:`text-xs font-medium truncate`,children:e.displayName||e.id}),(0,q.jsxs)(`p`,{className:`text-[11px] text-muted-foreground truncate`,children:[e.id,` v`,e.version,e.activated&&(0,q.jsx)(`span`,{className:`ml-1 text-green-500`,children:`active`})]})]}),(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0 cursor-pointer`,title:e.enabled?`Disable`:`Enable`,disabled:f===e.id,onClick:()=>v(e),children:f===e.id?(0,q.jsx)(G,{className:`size-3.5 animate-spin`}):e.enabled?(0,q.jsx)(mn,{className:`size-3.5 text-green-500`}):(0,q.jsx)(pn,{className:`size-3.5 text-muted-foreground`})}),(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0 cursor-pointer text-destructive hover:text-destructive`,title:`Remove`,disabled:m===e.id,onClick:()=>y(e.id),children:m===e.id?(0,q.jsx)(G,{className:`size-3.5 animate-spin`}):(0,q.jsx)(Oe,{className:`size-3.5`})})]},e.id))})]})]})}function Vc(){let[e,t]=(0,K.useState)(null),[n,r]=(0,K.useState)(!1),[i,a]=(0,K.useState)(null),[o,s]=(0,K.useState)(``),[c,l]=(0,K.useState)(!1),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(!1),[m,h]=(0,K.useState)(``),[g,_]=(0,K.useState)(!0),[v,y]=(0,K.useState)(!1),[b,x]=(0,K.useState)(2e3),[S,C]=(0,K.useState)([]),[w,T]=(0,K.useState)(``),[E,D]=(0,K.useState)(!1),[O,k]=(0,K.useState)(!1),[ee,A]=(0,K.useState)([]),[te,ne]=(0,K.useState)(`_global`),[re,j]=(0,K.useState)([]),M=(0,K.useRef)(void 0),N=(0,K.useCallback)(async()=>{try{C(await V.get(`/api/settings/clawbot/paired`))}catch{}},[]),ae=(0,K.useCallback)(async(e=te)=>{try{A(await V.get(`/api/settings/clawbot/memories?project=${encodeURIComponent(e)}`))}catch{}},[te]),P=(0,K.useCallback)(async()=>{try{j(await V.get(`/api/settings/clawbot/tasks?limit=20`))}catch{}},[]),F=async e=>{try{await V.del(`/api/settings/clawbot/memories/${e}`),A(t=>t.filter(t=>t.id!==e))}catch{}};(0,K.useEffect)(()=>(V.get(`/api/settings/clawbot`).then(e=>{t(e),p(e.enabled),h(e.system_prompt),_(e.show_tool_calls),y(e.show_thinking),x(e.debounce_ms)}).catch(()=>{}),V.get(`/api/settings/telegram`).then(e=>{l(!!e.bot_token)}).catch(()=>{}),N(),ae(`_global`),P(),M.current=setInterval(P,1e4),()=>{M.current&&clearInterval(M.current)}),[N,ae,P]);let I=async()=>{if(o.trim()){d(!0),a(null);try{await V.put(`/api/settings/telegram`,{bot_token:o}),l(!0),s(``),a({type:`ok`,msg:`Bot token saved`})}catch(e){a({type:`err`,msg:e.message})}finally{d(!1)}}},oe=async()=>{r(!0),a(null);try{let e={enabled:f,system_prompt:m,show_tool_calls:g,show_thinking:v,debounce_ms:b};t(await V.put(`/api/settings/clawbot`,e)),a({type:`ok`,msg:f?`Saved — bot started`:`Saved — bot stopped`})}catch(e){a({type:`err`,msg:e.message})}finally{r(!1)}},L=async()=>{if(w.trim()){D(!0);try{await V.post(`/api/settings/clawbot/paired/approve`,{code:w.trim().toUpperCase()}),T(``),await N(),a({type:`ok`,msg:`Device approved`})}catch(e){a({type:`err`,msg:e.message})}finally{D(!1)}}},se=async e=>{try{await V.del(`/api/settings/clawbot/paired/${e}`),await N(),a({type:`ok`,msg:`Device revoked`})}catch(e){a({type:`err`,msg:e.message})}},ce=async()=>{k(!0),a(null);try{await V.post(`/api/settings/telegram/test`,{}),a({type:`ok`,msg:`Test notification sent to all paired devices!`})}catch(e){a({type:`err`,msg:e.message})}finally{k(!1)}};if(!e)return(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Loading...`});let le=S.filter(e=>e.status===`approved`).length,ue={pending:`⏳`,running:`🔄`,completed:`✅`,failed:`❌`,timeout:`⏱`},de={running:`text-blue-500`,completed:`text-green-500`,failed:`text-destructive`,timeout:`text-yellow-500`};return(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(`label`,{className:`text-[11px] text-muted-foreground`,children:`Telegram Bot Token`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(z,{type:`password`,placeholder:c?`•••••• (saved)`:`123456:ABC-DEF...`,value:o,onChange:e=>s(e.target.value),className:`h-7 text-xs flex-1`}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-7 text-xs shrink-0 cursor-pointer`,disabled:u||!o.trim(),onClick:I,children:u?`...`:`Save`})]}),(0,q.jsxs)(`p`,{className:`text-[10px] text-muted-foreground`,children:[`Create a bot via `,(0,q.jsx)(`b`,{children:`@BotFather`}),` on Telegram. Used for both chat and notifications.`]})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`p`,{className:`text-xs font-medium`,children:`Enable PPMBot`}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`AI coordinator on Telegram — delegates tasks to your projects`})]}),(0,q.jsx)(ie,{checked:f,onCheckedChange:p})]}),(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsx)(`p`,{className:`text-xs font-medium`,children:`Paired Devices`}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Send any message to the bot on Telegram to get a pairing code. Enter it below to approve. Notifications are sent to all approved devices.`}),(0,q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,q.jsx)(z,{placeholder:`Enter pairing code (e.g. A3K7WR)`,value:w,onChange:e=>T(e.target.value.toUpperCase()),className:`h-8 text-xs font-mono tracking-wider uppercase`,maxLength:6}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-8 text-xs shrink-0 cursor-pointer`,disabled:E||w.length<6,onClick:L,children:E?`...`:`Approve`})]}),S.length===0?(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground italic`,children:`No paired devices yet.`}):(0,q.jsx)(`div`,{className:`space-y-1`,children:S.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[e.status===`approved`?(0,q.jsx)(st,{className:`size-3.5 text-green-500 shrink-0`}):(0,q.jsx)(xe,{className:`size-3.5 text-yellow-500 shrink-0`}),(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsx)(`p`,{className:`text-xs truncate`,children:e.display_name||`Chat ${e.telegram_chat_id}`}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:e.status===`pending`&&e.pairing_code?`Code: ${e.pairing_code}`:e.status})]})]}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`h-7 w-7 p-0 text-destructive hover:text-destructive cursor-pointer`,onClick:()=>se(e.telegram_chat_id),children:(0,q.jsx)(Oe,{className:`size-3.5`})})]},e.id))}),c&&le>0&&(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`h-7 text-xs gap-1 w-full cursor-pointer`,disabled:O,onClick:ce,children:[(0,q.jsx)(yn,{className:`size-3`}),O?`Sending...`:`Test Notification`]})]}),(0,q.jsx)(_c,{}),(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`p`,{className:`text-xs font-medium`,children:`Delegated Tasks`}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 cursor-pointer`,onClick:P,children:(0,q.jsx)(je,{className:`size-3`})})]}),re.length===0?(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground italic`,children:`No delegated tasks yet. The coordinator will create tasks when you ask it to work on a project.`}):(0,q.jsx)(`div`,{className:`space-y-1 max-h-[200px] overflow-y-auto`,children:re.map(e=>{let t=e.completed_at?`${Math.round((e.completed_at-e.created_at)/60)}m`:`${Math.round((Date.now()/1e3-e.created_at)/60)}m`;return(0,q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border p-2 text-[11px]`,children:[(0,q.jsx)(`span`,{className:de[e.status]??``,children:ue[e.status]??`?`}),(0,q.jsx)(`span`,{className:`font-medium shrink-0`,children:e.project_name}),(0,q.jsx)(`span`,{className:`truncate text-muted-foreground flex-1`,children:e.prompt.slice(0,60)}),(0,q.jsx)(`span`,{className:`text-[10px] text-muted-foreground shrink-0`,children:t})]},e.id)})})]}),(0,q.jsx)(_c,{}),(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(rt,{className:`size-3.5 text-muted-foreground`}),(0,q.jsx)(`p`,{className:`text-xs font-medium`,children:`Memory & Identity`})]}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 cursor-pointer`,onClick:()=>ae(te),children:(0,q.jsx)(je,{className:`size-3`})})]}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Facts the bot remembers across sessions. Use /remember on Telegram to add, or delete here.`}),ee.length===0?(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground italic`,children:`No memories stored yet. Send /start on Telegram and introduce yourself.`}):(0,q.jsx)(`div`,{className:`space-y-1 max-h-[200px] overflow-y-auto`,children:ee.map(e=>(0,q.jsxs)(`div`,{className:`flex items-start justify-between rounded-md border p-2 gap-1`,children:[(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`p`,{className:`text-[11px] break-words`,children:e.content}),(0,q.jsxs)(`p`,{className:`text-[10px] text-muted-foreground`,children:[e.category,` · `,e.project]})]}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 text-destructive hover:text-destructive cursor-pointer shrink-0`,onClick:()=>F(e.id),children:(0,q.jsx)(Oe,{className:`size-3`})})]},e.id))})]}),(0,q.jsx)(_c,{}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(`label`,{className:`text-[11px] text-muted-foreground`,children:`Custom Instructions`}),(0,q.jsx)(`textarea`,{placeholder:`Additional instructions for the coordinator (optional)...`,value:m,onChange:e=>h(e.target.value),className:`flex w-full rounded-md border border-input bg-background px-3 py-2 text-xs min-h-[60px] resize-y ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,rows:3}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Extra instructions added to the coordinator identity. Leave empty to use defaults from coordinator.md.`})]}),(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`p`,{className:`text-xs`,children:`Show tool calls`}),(0,q.jsx)(ie,{checked:g,onCheckedChange:_})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`p`,{className:`text-xs`,children:`Show thinking`}),(0,q.jsx)(ie,{checked:v,onCheckedChange:y})]})]}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(`label`,{className:`text-[11px] text-muted-foreground`,children:`Debounce (ms)`}),(0,q.jsx)(z,{type:`number`,min:0,max:3e4,step:500,value:b,onChange:e=>x(Number(e.target.value)),className:`h-7 text-xs w-24`}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Merge rapid messages within this window. 0 = no debounce.`})]}),(0,q.jsx)(R,{variant:`default`,size:`sm`,className:`h-8 text-xs w-full cursor-pointer`,disabled:n,onClick:oe,children:n?`Saving...`:`Save`}),i&&(0,q.jsx)(`p`,{className:`text-[11px] ${i.type===`ok`?`text-green-600 dark:text-green-400`:`text-destructive`}`,children:i.msg})]})}function Hc(){let[e,t]=(0,K.useState)(!1),[n,r]=(0,K.useState)(``),[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(!1),[c,l]=(0,K.useState)(!1),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(null),m=i.length>0&&n!==i,h=n.trim().length>=4&&n===i&&!c,g=(0,K.useCallback)(async()=>{if(h){l(!0),p(null);try{let{token:e}=await V.put(`/api/settings/auth/password`,{password:n.trim(),confirm:i.trim()});Ne(e),d(!0),r(``),a(``),setTimeout(()=>{d(!1),t(!1)},1500)}catch(e){p(e instanceof Error?e.message:`Failed to change password`)}finally{l(!1)}}},[h,n,i]);return e?(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Change Password`}),(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(z,{type:o?`text`:`password`,placeholder:`New password`,value:n,onChange:e=>r(e.target.value),className:`h-8 text-xs pr-8`,autoFocus:!0}),(0,q.jsx)(`button`,{type:`button`,className:`absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground cursor-pointer`,onClick:()=>s(!o),tabIndex:-1,children:o?(0,q.jsx)(A,{className:`size-3.5`}):(0,q.jsx)(De,{className:`size-3.5`})})]}),(0,q.jsx)(z,{type:o?`text`:`password`,placeholder:`Confirm password`,value:i,onChange:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&g()},className:`h-8 text-xs`}),m&&(0,q.jsx)(`p`,{className:`text-[11px] text-destructive`,children:`Passwords do not match`}),f&&(0,q.jsx)(`p`,{className:`text-[11px] text-destructive`,children:f}),(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-8 text-xs flex-1 cursor-pointer`,onClick:()=>{t(!1),r(``),a(``),p(null)},children:`Cancel`}),(0,q.jsx)(R,{variant:u?`default`:`outline`,size:`sm`,className:`h-8 text-xs flex-1 cursor-pointer`,disabled:!h,onClick:g,children:c?`...`:u?(0,q.jsx)(le,{className:`size-3.5`}):`Save`})]}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Min 4 characters. You'll stay logged in on this device.`})]})]}):(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Security`}),(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`h-8 text-xs gap-1.5 cursor-pointer`,onClick:()=>t(!0),children:[(0,q.jsx)(Wt,{className:`size-3.5`}),`Change Password`]})]})}function Uc(){return V.get(`/api/settings/files`)}function Wc(e){return V.patch(`/api/settings/files`,e)}function Gc(e){return V.get(`/api/projects/${encodeURIComponent(e)}/settings`)}function Kc(e,t){return V.patch(`/api/projects/${encodeURIComponent(e)}/settings`,t)}function qc({value:e,onChange:t,placeholder:n=`e.g. **/*.log`,disabled:r=!1}){let i=(0,K.useRef)([]);function a(n,r){let i=[...e];i[n]=r,t(i)}function o(n){t(e.filter((e,t)=>t!==n)),setTimeout(()=>{let e=Math.max(n-1,0);i.current[e]?.focus()},0)}function s(){t([...e,``]),setTimeout(()=>{i.current[e.length]?.focus()},0)}function c(t,n){n.key===`Enter`?(n.preventDefault(),e[t]?.trim()&&s()):n.key===`Backspace`&&e[t]===``&&(n.preventDefault(),o(t))}return(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[e.length===0&&(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground py-1`,children:`No patterns. Click "Add pattern" to start.`}),e.map((e,t)=>(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(z,{ref:e=>{i.current[t]=e},value:e,onChange:e=>a(t,e.target.value),onKeyDown:e=>c(t,e),placeholder:n,disabled:r,className:`h-8 text-xs flex-1 font-mono`,"aria-label":`Pattern ${t+1}`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>o(t),disabled:r,"aria-label":`Remove pattern ${t+1}`,className:`shrink-0 flex items-center justify-center p-2.5 rounded-md text-muted-foreground hover:text-destructive hover:bg-destructive/10 transition-colors disabled:opacity-40 disabled:pointer-events-none`,children:(0,q.jsx)(Ae,{className:`size-3.5`})})]},t)),(0,q.jsxs)(R,{type:`button`,variant:`outline`,size:`sm`,onClick:s,disabled:r,className:`h-8 text-xs gap-1.5 w-full cursor-pointer`,children:[(0,q.jsx)(ke,{className:`size-3.5`}),`Add pattern`]})]})}var Jc={filesExclude:[],searchExclude:[],useIgnoreFiles:!0};function Yc(){let e=We(e=>e.activeProject),[t,n]=(0,K.useState)(`global`),[r,i]=(0,K.useState)([]),[a,o]=(0,K.useState)([]),[s,c]=(0,K.useState)(!0),[l,u]=(0,K.useState)(!1),[d,f]=(0,K.useState)(!1),[p,m]=(0,K.useState)(null),[h,g]=(0,K.useState)(!1),_=(0,K.useRef)(null);(0,K.useEffect)(()=>{_.current?.abort();let n=new AbortController;return _.current=n,g(!0),m(null),(async()=>{try{if(t===`global`){let e=await Uc();if(n.signal.aborted)return;i(e.filesExclude),o(e.searchExclude),c(e.useIgnoreFiles)}else{if(!e)return;let t=await Gc(e.name);if(n.signal.aborted)return;let r=t.files??{};i(r.filesExclude??Jc.filesExclude),o(r.searchExclude??Jc.searchExclude),c(r.useIgnoreFiles??Jc.useIgnoreFiles)}}catch(e){if(n.signal.aborted)return;m(e.message)}finally{n.signal.aborted||g(!1)}})(),()=>n.abort()},[t,e?.name]);let v=async()=>{u(!0),f(!1),m(null);try{let n={filesExclude:r.filter(e=>e.trim()!==``),searchExclude:a.filter(e=>e.trim()!==``),useIgnoreFiles:s};if(t===`global`)await Wc(n);else{if(!e)throw Error(`No active project`);await Kc(e.name,{files:n})}let i=Ba.getState();i.invalidateIndex(),e&&i.loadIndex(e.name),f(!0),setTimeout(()=>f(!1),2e3)}catch(e){m(e.message)}finally{u(!1)}},y=!!e;return(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`File Filters`}),(0,q.jsxs)(`div`,{className:`flex gap-1`,children:[(0,q.jsx)(`button`,{type:`button`,onClick:()=>n(`global`),className:`flex-1 py-1.5 rounded-md text-xs font-medium transition-colors cursor-pointer ${t===`global`?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground hover:bg-accent`}`,children:`Global`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>y&&n(`project`),disabled:!y,title:y?void 0:`Open a project to edit per-project overrides`,className:`flex-1 py-1.5 rounded-md text-xs font-medium transition-colors cursor-pointer disabled:opacity-40 disabled:cursor-not-allowed ${t===`project`?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground hover:bg-accent`}`,children:e?e.name:`Per-project`})]}),t===`project`&&e&&(0,q.jsxs)(`p`,{className:`text-[11px] text-muted-foreground -mt-2`,children:[`Overrides for `,(0,q.jsx)(`span`,{className:`font-medium`,children:e.name}),`. Leave empty to use global settings.`]}),h?(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Loading...`}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(L,{className:`text-xs`,children:`Files to Exclude`}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Glob patterns hidden from the file tree and palette.`}),(0,q.jsx)(qc,{value:r,onChange:i,placeholder:`e.g. **/*.log or node_modules/**`,disabled:l})]}),(0,q.jsx)(_c,{}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(L,{className:`text-xs`,children:`Search to Exclude`}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Glob patterns excluded from file index / palette search.`}),(0,q.jsx)(qc,{value:a,onChange:o,placeholder:`e.g. dist/** or **/*.min.js`,disabled:l})]}),(0,q.jsx)(_c,{}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(L,{className:`text-xs`,children:`Use .gitignore rules`}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Respect .gitignore when filtering the file tree and index.`})]}),(0,q.jsx)(ie,{checked:s,onCheckedChange:c,disabled:l})]}),p&&(0,q.jsx)(`p`,{className:`text-[11px] text-destructive`,children:p}),(0,q.jsx)(R,{onClick:v,disabled:l||h,size:`sm`,className:`h-8 text-xs w-full cursor-pointer`,children:l?`Saving...`:d?`Saved`:`Save`})]})]})}function Xc(e){let t=(e+`=`.repeat((4-e.length%4)%4)).replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t);return Uint8Array.from(n,e=>e.charCodeAt(0))}function Zc(){let[e,t]=(0,K.useState)(`default`),[n,r]=(0,K.useState)(!1),[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(null);return(0,K.useEffect)(()=>{`Notification`in window&&t(Notification.permission),r(localStorage.getItem(`ppm-push-subscribed`)===`true`)},[]),{permission:e,isSubscribed:n,loading:i,error:o,subscribe:(0,K.useCallback)(async()=>{a(!0),s(null);try{let e=await Notification.requestPermission();if(t(e),e!==`granted`){s(`Permission denied`);return}if(!navigator.serviceWorker?.controller&&!navigator.serviceWorker?.ready){s(`Service worker not available (dev mode?)`);return}let n=await Promise.race([navigator.serviceWorker.ready,new Promise((e,t)=>setTimeout(()=>t(Error(`Service worker timeout`)),5e3))]);if(!n)throw Error(`Service worker not ready`);let i={},a=Pe();a&&(i.Authorization=`Bearer ${a}`);let o=await(await fetch(`/api/push/vapid-key`,{headers:i})).json();if(!o.ok)throw Error(o.error||`Failed to get VAPID key`);let c=await n.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:Xc(o.data.publicKey).buffer});await fetch(`/api/push/subscribe`,{method:`POST`,headers:{...i,"Content-Type":`application/json`},body:JSON.stringify(c.toJSON())}),r(!0),localStorage.setItem(`ppm-push-subscribed`,`true`)}catch(e){s(e instanceof Error?e.message:`Subscribe failed`),console.error(`[push] Subscribe failed:`,e)}finally{a(!1)}},[]),unsubscribe:(0,K.useCallback)(async()=>{a(!0);try{let e=await(await navigator.serviceWorker.ready).pushManager.getSubscription();if(e){let t={"Content-Type":`application/json`},n=Pe();n&&(t.Authorization=`Bearer ${n}`),await fetch(`/api/push/subscribe`,{method:`DELETE`,headers:t,body:JSON.stringify({endpoint:e.endpoint})}),await e.unsubscribe()}r(!1),localStorage.removeItem(`ppm-push-subscribed`)}catch(e){console.error(`[push] Unsubscribe failed:`,e)}finally{a(!1)}},[])}}var Qc=[{value:`light`,label:`Light`,icon:Dn},{value:`dark`,label:`Dark`,icon:an},{value:`system`,label:`System`,icon:rn}],$c=`PushManager`in window&&`serviceWorker`in navigator,el=/iPhone|iPad/.test(navigator.userAgent)&&!window.matchMedia(`(display-mode: standalone)`).matches,tl=[{value:`ai`,label:`AI Provider`,subtitle:`Model, execution mode, limits`,icon:se},{value:`notifications`,label:`Notifications`,subtitle:`Push & Telegram alerts`,icon:tt},{value:`clawbot`,label:`PPMBot`,subtitle:`Telegram AI bot`,icon:se},{value:`proxy`,label:`API Proxy`,subtitle:`Expose accounts as Anthropic API`,icon:ue},{value:`shortcuts`,label:`Keyboard Shortcuts`,subtitle:`Customize key bindings`,icon:Kt},{value:`mcp`,label:`MCP Servers`,subtitle:`Model Context Protocol tools`,icon:fn},{value:`extensions`,label:`Extensions`,subtitle:`Install and manage extensions`,icon:hn},{value:`files`,label:`File Filters`,subtitle:`Exclude patterns, ignore files`,icon:Pt}];function nl(){let{theme:e,setTheme:t,deviceName:n,setDeviceName:r,version:i,jiraEnabled:a,setJiraEnabled:o}=Fe(hs(e=>({theme:e.theme,setTheme:e.setTheme,deviceName:e.deviceName,setDeviceName:e.setDeviceName,version:e.version,jiraEnabled:e.jiraEnabled,setJiraEnabled:e.setJiraEnabled}))),{permission:s,isSubscribed:c,loading:l,error:u,subscribe:d,unsubscribe:f}=Zc(),[p,m]=(0,K.useState)(null),[h,g]=(0,K.useState)(n??``),[_,v]=(0,K.useState)(!1),[y,b]=(0,K.useState)(!1),x=(0,K.useRef)(void 0),S=h.trim()!==(n??``),C=(0,K.useCallback)(async()=>{if(S){v(!0);try{await r(h),b(!0),clearTimeout(x.current),x.current=setTimeout(()=>b(!1),2e3)}finally{v(!1)}}},[h,S,r]);if(p){let e=tl.find(e=>e.value===p),t=e.icon;return(0,q.jsxs)(`div`,{className:`h-full w-full flex flex-col`,children:[(0,q.jsxs)(`div`,{className:`shrink-0 px-2 pt-3 pb-1 flex items-center gap-1`,children:[(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:`size-8 cursor-pointer shrink-0`,onClick:()=>m(null),children:(0,q.jsx)(ee,{className:`size-4`})}),(0,q.jsx)(t,{className:`size-4 text-muted-foreground shrink-0`}),(0,q.jsx)(`h2`,{className:`text-sm font-semibold truncate`,children:e.label})]}),(0,q.jsx)(_c,{}),(0,q.jsx)(gs,{className:`flex-1 min-h-0`,children:(0,q.jsxs)(`div`,{className:`p-3`,children:[p===`ai`&&(0,q.jsx)(oe,{compact:!0}),p===`notifications`&&(0,q.jsx)(rl,{isSubscribed:c,loading:l,permission:s,pushError:u,subscribe:d,unsubscribe:f}),p===`clawbot`&&(0,q.jsx)(Vc,{}),p===`proxy`&&(0,q.jsx)(Ec,{}),p===`shortcuts`&&(0,q.jsx)(xc,{}),p===`mcp`&&(0,q.jsx)(Rc,{}),p===`extensions`&&(0,q.jsx)(Bc,{}),p===`files`&&(0,q.jsx)(Yc,{})]})})]})}return(0,q.jsxs)(`div`,{className:`h-full w-full flex flex-col`,children:[(0,q.jsx)(`div`,{className:`shrink-0 px-3 pt-3 pb-1`,children:(0,q.jsx)(`h2`,{className:`text-sm font-semibold`,children:`Settings`})}),(0,q.jsx)(gs,{className:`flex-1 min-h-0`,children:(0,q.jsxs)(`div`,{className:`p-3 space-y-4`,children:[(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Device Name`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(z,{value:h,onChange:e=>g(e.target.value),onKeyDown:e=>{e.key===`Enter`&&C()},placeholder:`My Device`,className:`h-8 text-xs flex-1`,maxLength:100}),(0,q.jsx)(R,{variant:y?`default`:`outline`,size:`sm`,className:`h-8 text-xs px-3 cursor-pointer`,disabled:!S||_,onClick:C,children:_?`...`:y?(0,q.jsx)(le,{className:`size-3.5`}):`Save`})]}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Shown in page title and synced to PPM Cloud.`})]}),(0,q.jsx)(Hc,{}),(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Theme`}),(0,q.jsx)(`div`,{className:`flex gap-1.5`,children:Qc.map(n=>{let r=n.icon;return(0,q.jsxs)(R,{variant:e===n.value?`default`:`outline`,size:`sm`,onClick:()=>t(n.value),className:H(`flex-1 gap-1.5 text-xs h-8 cursor-pointer`,e===n.value&&`ring-2 ring-primary`),children:[(0,q.jsx)(r,{className:`size-3.5`}),n.label]},n.value)})})]}),(0,q.jsx)(`section`,{className:`space-y-1`,children:(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(ae,{className:`size-4 text-muted-foreground`}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`p`,{className:`text-xs font-medium`,children:`Jira Watcher`}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Auto-debug Jira tickets`})]})]}),(0,q.jsx)(ie,{checked:a,onCheckedChange:o})]})}),(0,q.jsx)(_c,{}),(0,q.jsx)(`nav`,{className:`space-y-1`,"aria-label":`Settings categories`,children:tl.map(e=>{let t=e.icon;return(0,q.jsxs)(`button`,{onClick:()=>m(e.value),className:`w-full flex items-center gap-3 px-2.5 py-2.5 rounded-lg hover:bg-accent/50 active:bg-accent transition-colors cursor-pointer text-left group`,children:[(0,q.jsx)(`div`,{className:`size-8 rounded-md bg-muted flex items-center justify-center shrink-0 group-hover:bg-accent`,children:(0,q.jsx)(t,{className:`size-4 text-muted-foreground`})}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,q.jsx)(`p`,{className:`text-xs font-medium text-foreground truncate`,children:e.label}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground truncate`,children:e.subtitle})]}),(0,q.jsx)(pe,{className:`size-4 text-muted-foreground shrink-0`})]},e.value)})}),(0,q.jsx)(_c,{}),(0,q.jsxs)(`section`,{className:`space-y-1 pb-2`,children:[(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`PPM — Personal Project Manager`}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`A mobile-first web IDE for managing your projects.`}),i&&(0,q.jsxs)(`p`,{className:`text-[11px] text-muted-foreground tabular-nums`,children:[`Version `,i]})]})]})})]})}function rl({isSubscribed:e,loading:t,permission:n,pushError:r,subscribe:i,unsubscribe:a}){return(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Push Notifications`}),$c?(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[e?(0,q.jsx)(nt,{className:`size-3.5`}):(0,q.jsx)(M,{className:`size-3.5`}),(0,q.jsx)(`span`,{className:`text-xs`,children:`Push notifications`})]}),(0,q.jsx)(R,{variant:e?`default`:`outline`,size:`sm`,className:`h-7 text-xs cursor-pointer`,disabled:t||n===`denied`,onClick:()=>e?a():i(),children:t?`...`:e?`On`:`Off`})]}),e&&(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-7 text-xs w-full cursor-pointer`,onClick:()=>{new Notification(`PPM Test`,{body:`Push notifications are working!`})},children:`Test notification`}),r&&(0,q.jsx)(`p`,{className:`text-[11px] text-destructive`,children:r}),n===`denied`&&(0,q.jsx)(`p`,{className:`text-[11px] text-destructive`,children:`Notifications blocked. Enable in browser settings.`}),el&&(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`On iOS, install PPM to Home Screen for push notifications.`})]}):(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Push notifications not supported in this browser.`})]}),(0,q.jsx)(_c,{}),(0,q.jsxs)(`section`,{className:`space-y-1`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Telegram`}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Telegram notifications are sent to all approved devices in PPMBot settings. Configure your bot token and pair devices there.`})]})]})}function il({connId:e,schemas:t,isSingleSchema:n,filter:r,expandedTables:i,loadingColumns:a,columnCache:o,columnErrors:s,onToggleTable:c,onOpenTable:l}){let u=r.toLowerCase();return(0,q.jsxs)(`div`,{className:`overflow-y-auto max-h-[40vh]`,children:[Array.from(t.entries()).map(([t,r])=>{let d=u?r.filter(e=>e.tableName.toLowerCase().includes(u)):r;return d.length===0?null:(0,q.jsxs)(`div`,{children:[!n&&(0,q.jsx)(`p`,{className:`px-2 py-0.5 text-[9px] font-semibold text-text-subtle uppercase tracking-wider`,children:t}),d.map(t=>{let n=`${e}:${t.schemaName}.${t.tableName}`,r=i.has(n),u=a.has(n),d=o?.get(n),f=s?.has(n);return(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1 pl-2 pr-2 py-0.5 hover:bg-surface-elevated transition-colors group/table`,children:[(0,q.jsx)(`button`,{onClick:()=>c(e,t.tableName,t.schemaName),className:`shrink-0 text-text-subtle hover:text-foreground transition-colors`,children:r?(0,q.jsx)(ce,{className:`size-2.5`}):(0,q.jsx)(pe,{className:`size-2.5`})}),(0,q.jsx)(fe,{className:`size-2.5 shrink-0 text-text-subtle`}),(0,q.jsx)(`button`,{onClick:()=>l(t.tableName,t.schemaName),className:`flex-1 text-left text-[11px] text-text-secondary hover:text-foreground transition-colors truncate`,children:t.tableName}),(0,q.jsx)(`span`,{className:`text-[9px] text-text-subtle`,children:t.rowCount})]}),r&&(0,q.jsxs)(`div`,{className:`ml-[18px] border-l border-dotted border-border pl-2`,children:[u&&(0,q.jsx)(`p`,{className:`text-[9px] text-text-subtle px-1 py-0.5`,children:`Loading…`}),f&&(0,q.jsx)(`p`,{className:`text-[9px] text-red-500 px-1 py-0.5`,children:`Failed to load columns`}),d&&d.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center gap-1 px-1 py-px text-[10px] text-text-subtle`,title:e.fk?`FK → ${e.fk.table}.${e.fk.column}`:void 0,children:[e.pk&&(0,q.jsx)(Gt,{className:`size-2.5 text-amber-500 shrink-0`}),e.fk&&(0,q.jsx)(Jt,{className:`size-2.5 text-blue-400 shrink-0`}),!e.pk&&!e.fk&&(0,q.jsx)(`span`,{className:`size-2.5 shrink-0`}),(0,q.jsxs)(`span`,{className:`truncate`,children:[e.name,e.nullable?`?`:``]}),(0,q.jsx)(`span`,{className:`ml-auto text-[9px] text-text-subtle/60 shrink-0`,children:e.type})]},e.name)),!u&&!f&&!d&&(0,q.jsx)(`p`,{className:`text-[9px] text-text-subtle px-1 py-0.5`,children:`No columns`})]})]},n)})]},t)}),r&&Array.from(t.values()).every(e=>!e.some(e=>e.tableName.toLowerCase().includes(u)))&&(0,q.jsx)(`p`,{className:`text-[10px] text-text-subtle px-2 py-1`,children:`No match`})]})}function al({conn:e,isExpanded:t,isRefreshing:n,tables:r,schemas:i,isSingleSchema:a,filter:o,expandedTables:s,loadingColumns:c,columnCache:l,columnErrors:u,refreshError:d,hasGroup:f,onToggle:p,onRefresh:m,onEdit:h,onDelete:g,onOpenTable:_,onToggleTable:v,onFilterChange:y}){let b=()=>p(e.id,!t&&r.length===0);return(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:H(`group flex items-center gap-1 py-1 hover:bg-surface-elevated transition-colors`,f?`pl-3 pr-2`:`px-2`),children:[(0,q.jsx)(`button`,{onClick:b,className:`shrink-0 text-text-subtle hover:text-foreground transition-colors`,children:t?(0,q.jsx)(ce,{className:`size-3`}):(0,q.jsx)(pe,{className:`size-3`})}),(0,q.jsx)(`span`,{className:`shrink-0 size-2 rounded-full border border-border`,style:{backgroundColor:e.color??`transparent`}}),(0,q.jsx)(`button`,{className:`flex-1 text-left text-xs truncate hover:text-primary transition-colors`,onClick:b,children:e.name}),(0,q.jsx)(`span`,{className:`shrink-0 text-[9px] text-text-subtle uppercase px-1 rounded bg-surface-elevated`,children:e.type===`postgres`?`PG`:`DB`}),e.readonly===1&&(0,q.jsx)(`span`,{title:`Readonly`,children:(0,q.jsx)(j,{className:`shrink-0 size-2.5 text-text-subtle`})}),(0,q.jsxs)(`div`,{className:`flex can-hover:hidden can-hover:group-hover:flex items-center gap-0.5 shrink-0`,children:[(0,q.jsx)(`button`,{onClick:()=>m(e.id),disabled:n,className:`p-0.5 text-text-subtle hover:text-foreground transition-colors`,title:`Refresh tables`,children:(0,q.jsx)(je,{className:H(`size-3`,n&&`animate-spin`)})}),(0,q.jsx)(`button`,{onClick:()=>h(e),className:`p-0.5 text-text-subtle hover:text-foreground transition-colors`,title:`Edit`,children:(0,q.jsx)(re,{className:`size-3`})}),(0,q.jsx)(`button`,{onClick:()=>g(e.id),className:`p-0.5 text-text-subtle hover:text-red-500 transition-colors`,title:`Delete`,children:(0,q.jsx)(Oe,{className:`size-3`})})]})]}),t&&(0,q.jsxs)(`div`,{className:`ml-[11px] border-l border-dashed border-border pl-1`,children:[n&&r.length===0&&(0,q.jsx)(`p`,{className:`text-[10px] text-text-subtle px-2 py-1`,children:`Loading…`}),!n&&r.length===0&&(d?(0,q.jsx)(`p`,{className:`text-[10px] text-red-500 px-2 py-1 break-all`,children:d}):(0,q.jsx)(`p`,{className:`text-[10px] text-text-subtle px-2 py-1`,children:`No tables cached`})),r.length>0&&(0,q.jsxs)(q.Fragment,{children:[r.length>5&&(0,q.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-0.5`,children:[(0,q.jsx)(Te,{className:`size-2.5 text-text-subtle shrink-0`}),(0,q.jsx)(`input`,{type:`text`,value:o,onChange:t=>y(e.id,t.target.value),placeholder:`Filter tables…`,className:`w-full text-[10px] bg-transparent border-none outline-none text-foreground placeholder:text-text-subtle`})]}),(0,q.jsx)(il,{connId:e.id,schemas:i,isSingleSchema:a,filter:o,expandedTables:s,loadingColumns:c,columnCache:l,columnErrors:u,onToggleTable:v,onOpenTable:(t,n)=>_(e,t,n)})]})]})]})}function ol({connections:e,cachedTables:t,refreshErrors:n,onOpenTable:r,onRefreshTables:i,onEdit:a,onDelete:o,onFetchColumns:s,columnCache:c}){let[l,u]=(0,K.useState)(new Set),[d,f]=(0,K.useState)(new Set([`__ungrouped__`])),[p,m]=(0,K.useState)(new Set),[h,g]=(0,K.useState)(new Set),[_,v]=(0,K.useState)(new Map),[y,b]=(0,K.useState)(new Set),[x,S]=(0,K.useState)(new Set),C=(e,t)=>{u(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),t&&E(e)},w=e=>{f(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},T=async(e,t,n)=>{let r=`${e}:${n}.${t}`;if(p.has(r)){m(e=>{let t=new Set(e);return t.delete(r),t});return}if(m(e=>new Set(e).add(r)),s&&!c?.has(r)){b(e=>new Set(e).add(r)),S(e=>{let t=new Set(e);return t.delete(r),t});try{await s(e,t,n)}catch{S(e=>new Set(e).add(r))}b(e=>{let t=new Set(e);return t.delete(r),t})}},E=async e=>{g(t=>new Set(t).add(e));try{await i(e)}finally{g(t=>{let n=new Set(t);return n.delete(e),n})}},D=(e,t)=>{v(n=>new Map(n).set(e,t))},{groups:O,groupKeys:k}=(0,K.useMemo)(()=>{let t={};for(let n of e){let e=n.group_name??`__ungrouped__`;(t[e]??=[]).push(n)}return{groups:t,groupKeys:Object.keys(t).sort((e,t)=>e===`__ungrouped__`?1:t===`__ungrouped__`?-1:e.localeCompare(t))}},[e]),ee=(0,K.useMemo)(()=>{let n=new Map;for(let r of e){let e=t.get(r.id)??[],i=new Map;for(let t of e){let e=t.schemaName;(i.get(e)??i.set(e,[]).get(e)).push(t)}n.set(r.id,i)}return n},[e,t]);return e.length===0?(0,q.jsxs)(`p`,{className:`px-4 py-6 text-xs text-text-subtle text-center`,children:[`No connections yet.`,(0,q.jsx)(`br`,{}),`Click + to add one.`]}):(0,q.jsx)(`div`,{className:`py-1`,children:k.map(e=>{let i=d.has(e),s=e===`__ungrouped__`?`Ungrouped`:e,u=O[e],f=k.length>1||e!==`__ungrouped__`;return(0,q.jsxs)(`div`,{children:[f&&(0,q.jsxs)(`button`,{onClick:()=>w(e),className:`w-full flex items-center gap-1 px-2 py-1 text-[10px] font-semibold text-text-subtle uppercase tracking-wider hover:text-text-secondary transition-colors`,children:[i?(0,q.jsx)(ce,{className:`size-3`}):(0,q.jsx)(pe,{className:`size-3`}),s]}),i&&(0,q.jsx)(`div`,{className:f?`ml-[11px] border-l border-dashed border-border`:``,children:u.map(e=>(0,q.jsx)(al,{conn:e,isExpanded:l.has(e.id),isRefreshing:h.has(e.id),tables:t.get(e.id)??[],schemas:ee.get(e.id)??new Map,isSingleSchema:(ee.get(e.id)?.size??0)<=1,filter:_.get(e.id)??``,expandedTables:p,loadingColumns:y,columnCache:c,columnErrors:x,refreshError:n?.get(e.id),hasGroup:f,onToggle:C,onRefresh:E,onEdit:a,onDelete:o,onOpenTable:r,onToggleTable:T,onFilterChange:D},e.id))})]},e)})})}var sl=`ppm-recent-paths`,cl=5,ll=[{name:`Home`,path:`~`,icon:Ht},{name:`Desktop`,path:`~/Desktop`,icon:rn},{name:`Documents`,path:`~/Documents`,icon:Ot},{name:`Downloads`,path:`~/Downloads`,icon:Ee}];function ul(){try{return JSON.parse(localStorage.getItem(sl)??`[]`)}catch{return[]}}function dl(e){let t=[e,...ul().filter(t=>t!==e)].slice(0,cl);localStorage.setItem(sl,JSON.stringify(t))}function fl(e){return e==null?``:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function pl(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4);if(n<1)return`now`;if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function ml(e){if(e.type===`directory`)return(0,q.jsx)(Lt,{className:`size-4 text-blue-500`});let t=e.name.split(`.`).pop()?.toLowerCase();return t&&[`db`,`sqlite`,`sqlite3`].includes(t)?(0,q.jsx)(fe,{className:`size-4 text-amber-500`}):(0,q.jsx)(At,{className:`size-4 text-text-subtle`})}function hl(e,t){if(!t?.length)return!0;let n=`.`+e.split(`.`).pop()?.toLowerCase();return t.includes(n)}function gl({open:e,mode:t,accept:n,root:r,title:i,onSelect:a,onCancel:o}){let[s,c]=(0,K.useState)([]),[l,u]=(0,K.useState)(``),[d,f]=(0,K.useState)(null),[p,m]=(0,K.useState)([]),[h,g]=(0,K.useState)(null),[_,v]=(0,K.useState)(!1),[y,b]=(0,K.useState)(null),[x,S]=(0,K.useState)(``),[C,w]=(0,K.useState)(``),[T,E]=(0,K.useState)(!1),[D,O]=(0,K.useState)([]),[k,te]=(0,K.useState)(null),[ne,re]=(0,K.useState)(!1),[j,M]=(0,K.useState)(null),N=(0,K.useRef)(null),ie=(0,K.useRef)(null),ae=typeof window<`u`&&window.innerWidth<768,P=t===`folder`?`Select Folder`:t===`file`?`Select File`:`Select File or Folder`,F=(0,K.useCallback)(async(e,t)=>{v(!0),b(null),g(null),S(``);try{let n=new URLSearchParams;e&&n.set(`path`,e),t&&n.set(`showHidden`,`true`);let r=await V.get(`/api/fs/browse?${n}`);c(r.entries),u(r.current),f(r.parent),m(r.breadcrumbs),w(r.current)}catch(e){b(e.message||`Failed to browse directory`)}finally{v(!1)}},[]);(0,K.useEffect)(()=>{e&&(F(r??`~`,T),O(ul()))},[e,r,F,T]);let I=e=>F(e,T),oe=()=>{let e=!T;E(e),F(l||(r??`~`),e)},L=e=>{e.key===`Enter`&&C.trim()&&F(C.trim())},se=e=>{e.type===`directory`?t===`file`?I(e.path):g(e.path):t!==`folder`&&g(e.path)},ce=e=>{e.type===`directory`&&I(e.path)},le=()=>{h&&(dl(l),a(h))},ue=async()=>{if(!k?.trim()||!l)return;let e=`${l}/${k.trim()}`;re(!0),M(null);try{await V.post(`/api/fs/mkdir`,{path:e}),te(null),M(null),await F(l,T),g(e)}catch(e){M(e.message||`Failed to create folder`)}finally{re(!1)}},de=async()=>{if(!h)return;let e=s.find(e=>e.path===h);if(!(!e||e.type!==`directory`)&&window.confirm(`Delete folder "${e.name}"? This cannot be undone.`))try{await V.del(`/api/fs/rmdir`,{path:h}),g(null),await F(l,T)}catch(e){b(e.message||`Failed to delete folder`)}},fe=h?s.some(e=>e.path===h&&e.type===`directory`):!1,me=s.filter(e=>!(x&&!e.name.toLowerCase().includes(x.toLowerCase())||e.type===`file`&&n?.length&&!hl(e.name,n))),he=e=>e.type===`directory`?t!==`file`:t!==`folder`,ge=(0,q.jsxs)(`div`,{className:`flex flex-col flex-1 min-h-0`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 px-3 py-2 border-b border-border`,children:[d&&(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0`,onClick:()=>I(d),children:(0,q.jsx)(ee,{className:`size-4`})}),(0,q.jsx)(z,{value:C,onChange:e=>w(e.target.value),onKeyDown:L,placeholder:`Type path and press Enter`,className:`h-7 text-xs font-mono flex-1`})]}),(0,q.jsx)(`div`,{className:`flex items-center gap-0.5 px-3 py-1.5 border-b border-border overflow-x-auto text-xs`,children:p.map((e,t)=>(0,q.jsxs)(`span`,{className:`flex items-center shrink-0`,children:[t>0&&(0,q.jsx)(pe,{className:`size-3 text-text-subtle mx-0.5`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>I(e.path),className:`hover:text-primary hover:underline text-text-secondary`,children:e.name})]},e.path))}),(0,q.jsxs)(`div`,{className:`flex flex-1 min-h-0 overflow-hidden`,children:[!ae&&(0,q.jsxs)(`div`,{className:`w-36 border-r border-border py-2 px-1 shrink-0 overflow-y-auto`,children:[ll.map(e=>(0,q.jsxs)(`button`,{type:`button`,onClick:()=>I(e.path),className:H(`flex items-center gap-2 w-full px-2 py-1 text-xs rounded-md hover:bg-surface-hover text-left`,l.endsWith(e.name)&&`bg-primary/10 text-primary`),children:[(0,q.jsx)(e.icon,{className:`size-3.5`}),e.name]},e.path)),D.length>0&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`text-[10px] text-text-subtle px-2 mt-3 mb-1 font-medium`,children:`Recent`}),D.map(e=>(0,q.jsxs)(`button`,{type:`button`,onClick:()=>I(e),className:`flex items-center gap-2 w-full px-2 py-1 text-xs rounded-md hover:bg-surface-hover text-left truncate`,children:[(0,q.jsx)(xe,{className:`size-3 shrink-0`}),(0,q.jsx)(`span`,{className:`truncate`,children:e.split(`/`).pop()})]},e))]})]}),(0,q.jsx)(gs,{className:`flex-1 min-h-0`,children:_?(0,q.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,q.jsx)(G,{className:`size-5 animate-spin text-text-subtle`})}):y?(0,q.jsx)(`div`,{className:`text-center py-8 text-xs text-red-500`,children:y}):me.length===0?(0,q.jsx)(`div`,{className:`text-center py-8 text-xs text-text-subtle`,children:x?`No matching entries`:`Empty directory`}):(0,q.jsxs)(`div`,{ref:ie,className:`py-1`,children:[k!=null&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1.5 bg-primary/5 border-b border-border`,children:[(0,q.jsx)(Nt,{className:`size-4 text-primary shrink-0`}),(0,q.jsx)(z,{ref:N,value:k,onChange:e=>te(e.target.value),onKeyDown:e=>{e.key===`Enter`&&ue(),e.key===`Escape`&&te(null)},placeholder:`Folder name`,className:`h-6 text-xs flex-1`,disabled:ne,autoFocus:!0}),ne&&(0,q.jsx)(G,{className:`size-3.5 animate-spin text-primary shrink-0`})]}),j&&(0,q.jsx)(`div`,{className:`px-3 py-1 text-[11px] text-destructive bg-destructive/5 border-b border-border`,children:j})]}),me.map(e=>{let t=he(e);return(0,q.jsxs)(`button`,{type:`button`,onClick:()=>se(e),onDoubleClick:()=>ce(e),className:H(`flex items-center gap-2 w-full px-3 py-1.5 text-left text-xs transition-colors`,h===e.path?`bg-primary/10 text-primary`:t?`hover:bg-surface-hover text-text-primary`:`opacity-40 cursor-default`),disabled:!t&&e.type===`file`,children:[ml(e),(0,q.jsx)(`span`,{className:H(`flex-1 truncate`,e.type===`directory`&&`font-medium`),children:e.name}),(0,q.jsx)(`span`,{className:`text-text-subtle text-[10px] shrink-0 w-14 text-right`,children:fl(e.size)}),(0,q.jsx)(`span`,{className:`text-text-subtle text-[10px] shrink-0 w-14 text-right`,children:pl(e.modified)})]},e.path)})]})})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 border-t border-border shrink-0`,children:[(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0`,onClick:()=>{te(``),M(null),setTimeout(()=>N.current?.focus(),50)},title:`New Folder`,children:(0,q.jsx)(Nt,{className:`size-3.5`})}),(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0 text-destructive/70 hover:text-destructive disabled:opacity-30`,onClick:de,disabled:!fe,title:`Delete selected folder`,children:(0,q.jsx)(Oe,{className:`size-3.5`})}),(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:H(`size-7 shrink-0`,T&&`text-primary`),onClick:oe,title:T?`Hide hidden files`:`Show hidden files`,children:T?(0,q.jsx)(De,{className:`size-3.5`}):(0,q.jsx)(A,{className:`size-3.5`})}),n?.length?(0,q.jsx)(`span`,{className:`text-[10px] text-text-subtle bg-surface-hover px-1.5 py-0.5 rounded`,children:n.join(`, `)}):null,(0,q.jsx)(`div`,{className:`flex-1 max-w-48`,children:(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(Te,{className:`absolute left-2 top-1/2 -translate-y-1/2 size-3 text-text-subtle`}),(0,q.jsx)(z,{value:x,onChange:e=>S(e.target.value),placeholder:`Filter...`,className:`h-6 text-[11px] pl-6`})]})}),(0,q.jsx)(`div`,{className:`flex-1`}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,onClick:o,className:`h-7 text-xs`,children:`Cancel`}),(0,q.jsx)(R,{size:`sm`,onClick:le,disabled:!h,className:`h-7 text-xs`,children:`Select`})]})]});return(0,q.jsx)(_e,{open:e,onOpenChange:e=>{e||o()},children:(0,q.jsxs)(ye,{className:H(`p-0 gap-0 overflow-hidden flex flex-col`,ae?`max-w-[95vw] h-[85vh]`:`max-w-2xl h-[70vh]`),children:[(0,q.jsx)(ve,{className:`px-3 py-2 border-b border-border`,children:(0,q.jsx)(be,{className:`text-sm`,children:i??P})}),ge]})})}function _l({mode:e,accept:t,root:n,title:r,onSelect:i,className:a}){let[o,s]=(0,K.useState)(!1);return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(R,{type:`button`,variant:`ghost`,size:`icon`,className:H(`size-8 shrink-0`,a),onClick:()=>s(!0),title:r??`Browse...`,children:(0,q.jsx)(Mt,{className:`size-4`})}),(0,q.jsx)(gl,{open:o,mode:e,accept:t,root:n,title:r,onSelect:e=>{i(e),s(!1)},onCancel:()=>s(!1)})]})}var vl=[`#ef4444`,`#f97316`,`#eab308`,`#22c55e`,`#06b6d4`,`#3b82f6`,`#8b5cf6`,`#ec4899`,`#6b7280`,`#000000`];function yl({value:e,onChange:t}){return(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,q.jsx)(`button`,{type:`button`,onClick:()=>t(null),className:H(`size-6 rounded-full border-2 transition-all`,e?`border-border hover:scale-105`:`border-primary scale-110`,`bg-transparent relative`),title:`No color`,children:(0,q.jsx)(`span`,{className:`absolute inset-0 flex items-center justify-center text-[8px] text-text-subtle`,children:`×`})}),vl.map(n=>(0,q.jsx)(`button`,{type:`button`,onClick:()=>t(n),className:H(`size-6 rounded-full border-2 transition-all hover:scale-105`,e===n?`border-primary scale-110`:`border-transparent`),style:{backgroundColor:n},title:n},n))]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`div`,{className:`size-6 rounded-full border border-border shrink-0`,style:{backgroundColor:e??`transparent`}}),(0,q.jsx)(`input`,{type:`text`,value:e??``,onChange:e=>{let n=e.target.value.trim();if(n===``){t(null);return}/^#[0-9a-fA-F]{6}$/.test(n),t(n)},placeholder:`#3b82f6`,className:`flex-1 h-7 text-xs px-2 rounded-md border border-border bg-background focus:outline-none focus:border-primary font-mono`})]})]})}function bl({open:e,onClose:t,connection:n,onSave:r,onUpdate:i,onTest:a,onTestRaw:o}){let s=!!n,[c,l]=(0,K.useState)({name:``,type:`postgres`,path:``,connectionString:``,groupName:``,color:null,readonly:!0}),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(null),[m,h]=(0,K.useState)(!1),[g,_]=(0,K.useState)(null);(0,K.useEffect)(()=>{if(!e){p(null),_(null);return}l(n?{name:n.name,type:n.type,path:``,connectionString:``,groupName:n.group_name??``,color:n.color,readonly:n.readonly===1}:{name:``,type:`postgres`,path:``,connectionString:``,groupName:``,color:null,readonly:!0})},[e,n]);let v=(e,t)=>{l(n=>({...n,[e]:t})),p(null)};return(0,q.jsx)(_e,{open:e,onOpenChange:e=>{e||t()},children:(0,q.jsxs)(ye,{className:`max-w-md`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:s?`Edit Connection`:`Add Connection`})}),(0,q.jsxs)(`div`,{className:`space-y-3 py-1`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Name *`}),(0,q.jsx)(`input`,{value:c.name,onChange:e=>v(`name`,e.target.value),placeholder:`my-database`,className:`w-full h-8 text-sm px-2.5 rounded-md border border-border bg-background focus:outline-none focus:border-primary`})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Type`}),(0,q.jsxs)(`select`,{value:c.type,onChange:e=>v(`type`,e.target.value),className:`w-full h-8 text-sm px-2 rounded-md border border-border bg-background focus:outline-none focus:border-primary`,children:[(0,q.jsx)(`option`,{value:`postgres`,children:`PostgreSQL`}),(0,q.jsx)(`option`,{value:`sqlite`,children:`SQLite`})]})]}),c.type===`postgres`?(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Connection String *`}),(0,q.jsx)(`input`,{type:`password`,value:c.connectionString,onChange:e=>v(`connectionString`,e.target.value),placeholder:`postgresql://user:pass@host:5432/db`,className:`w-full h-8 text-sm px-2.5 rounded-md border border-border bg-background focus:outline-none focus:border-primary font-mono`})]}):(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`File Path *`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5 items-center`,children:[(0,q.jsx)(`input`,{value:c.path,onChange:e=>v(`path`,e.target.value),placeholder:`/path/to/database.db`,className:`flex-1 h-8 text-sm px-2.5 rounded-md border border-border bg-background focus:outline-none focus:border-primary font-mono`}),(0,q.jsx)(_l,{mode:`file`,accept:[`.db`,`.sqlite`,`.sqlite3`],title:`Browse for SQLite database`,onSelect:e=>v(`path`,e)})]})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Group`}),(0,q.jsx)(`input`,{value:c.groupName,onChange:e=>v(`groupName`,e.target.value),placeholder:`Production`,className:`w-full h-8 text-sm px-2.5 rounded-md border border-border bg-background focus:outline-none focus:border-primary`})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Tab Color`}),(0,q.jsx)(yl,{value:c.color,onChange:e=>v(`color`,e)})]}),s&&(0,q.jsxs)(`div`,{className:`flex items-center justify-between py-1`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`p`,{className:`text-xs font-medium`,children:`Readonly`}),(0,q.jsx)(`p`,{className:`text-[10px] text-text-subtle`,children:`Block non-SELECT queries (AI protection)`})]}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>v(`readonly`,!c.readonly),className:`relative w-9 h-5 rounded-full transition-colors ${c.readonly?`bg-primary`:`bg-border`}`,children:(0,q.jsx)(`span`,{className:`absolute top-0.5 left-0.5 size-4 rounded-full bg-white transition-transform ${c.readonly?`translate-x-4`:``}`})})]}),f&&(0,q.jsx)(`p`,{className:`text-xs ${f.ok?`text-green-500`:`text-red-500`}`,children:f.ok?`✓ Connection successful`:`✗ ${f.error}`}),g&&(0,q.jsx)(`p`,{className:`text-xs text-red-500`,children:g})]}),(0,q.jsxs)(me,{children:[(0,q.jsx)(R,{variant:`outline`,size:`sm`,onClick:async()=>{d(!0),p(null);try{let e;if(s)e=await a(n.id);else if(o){let t=c.type===`postgres`?{type:`postgres`,connectionString:c.connectionString}:{type:`sqlite`,path:c.path};e=await o(c.type,t)}else e={ok:!1,error:`Save connection first`};p(e)}finally{d(!1)}},disabled:u,className:`mr-auto`,children:u?`Testing…`:`Test Connection`}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,onClick:t,children:`Cancel`}),(0,q.jsx)(R,{size:`sm`,onClick:async()=>{if(_(null),!c.name.trim()){_(`Name is required`);return}h(!0);try{if(s&&i){let e=(c.type===`postgres`?c.connectionString.trim():c.path.trim())?c.type===`postgres`?{type:`postgres`,connectionString:c.connectionString}:{type:`sqlite`,path:c.path}:void 0;await i(n.id,{name:c.name.trim(),...e!==void 0&&{connectionConfig:e},groupName:c.groupName.trim()||null,color:c.color,readonly:c.readonly?1:0})}else if(r){let e=c.type===`postgres`?{type:`postgres`,connectionString:c.connectionString}:{type:`sqlite`,path:c.path};await r({type:c.type,name:c.name.trim(),connectionConfig:e,groupName:c.groupName.trim()||void 0,color:c.color??void 0})}t()}catch(e){_(e.message)}finally{h(!1)}},disabled:m,children:m?`Saving…`:s?`Save`:`Add`})]})]})})}function xl({onExport:e,onImport:t}){let[n,r]=(0,K.useState)(!1),i=(0,K.useRef)(null),a=()=>r(!1),o=async()=>{a();try{let t=await e(),n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`ppm-connections-${new Date().toISOString().slice(0,10)}.json`,i.click(),URL.revokeObjectURL(r)}catch(e){alert(`Export failed: ${e.message}`)}},s=async()=>{a();try{let t=await e();await navigator.clipboard.writeText(JSON.stringify(t,null,2)),alert(`Copied ${t.connections.length} connection(s) to clipboard`)}catch(e){alert(`Export failed: ${e.message}`)}},c=async e=>{try{let n=JSON.parse(e),r=n.connections??n;if(!Array.isArray(r)){alert(`Invalid format: expected connections array`);return}let i=await t({connections:r}),a=`Imported ${i.imported} connection(s)`;i.skipped>0&&(a+=`, ${i.skipped} skipped`),i.errors?.length>0&&(a+=`\n\nErrors:\n${i.errors.join(`
18
- `)}`),alert(a)}catch(e){alert(`Import failed: ${e.message}`)}};return(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(`button`,{onClick:()=>r(e=>!e),className:`flex items-center justify-center size-5 rounded hover:bg-surface-elevated transition-colors text-text-subtle hover:text-foreground`,title:`Import / Export`,children:(0,q.jsx)(gt,{className:`size-3.5`})}),n&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:a}),(0,q.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 z-50 w-44 bg-background border border-border rounded-md shadow-lg py-1 text-xs`,children:[(0,q.jsxs)(`button`,{onClick:o,className:`w-full flex items-center gap-2 px-3 py-1.5 hover:bg-surface-elevated transition-colors text-left`,children:[(0,q.jsx)(Ee,{className:`size-3`}),` Export to file`]}),(0,q.jsxs)(`button`,{onClick:s,className:`w-full flex items-center gap-2 px-3 py-1.5 hover:bg-surface-elevated transition-colors text-left`,children:[(0,q.jsx)(dt,{className:`size-3`}),` Export to clipboard`]}),(0,q.jsx)(`div`,{className:`border-t border-border my-1`}),(0,q.jsxs)(`button`,{onClick:()=>{a(),i.current?.click()},className:`w-full flex items-center gap-2 px-3 py-1.5 hover:bg-surface-elevated transition-colors text-left`,children:[(0,q.jsx)(Nn,{className:`size-3`}),` Import from file`]}),(0,q.jsxs)(`button`,{onClick:async()=>{a();try{let e=await navigator.clipboard.readText();if(!e.trim()){alert(`Clipboard is empty`);return}await c(e)}catch(e){alert(`Clipboard read failed: ${e.message}`)}},className:`w-full flex items-center gap-2 px-3 py-1.5 hover:bg-surface-elevated transition-colors text-left`,children:[(0,q.jsx)(ut,{className:`size-3`}),` Import from clipboard`]})]})]}),(0,q.jsx)(`input`,{ref:i,type:`file`,accept:`.json`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];if(!t)return;let n=new FileReader;n.onload=()=>c(n.result),n.readAsText(t),e.target.value=``}})]})}function Sl(){let[e,t]=(0,K.useState)([]),[n,r]=(0,K.useState)(!0),[i,a]=(0,K.useState)(new Map),[o,s]=(0,K.useState)(new Map),c=(0,K.useCallback)(async()=>{try{t(await V.get(`/api/db/connections`))}catch{}finally{r(!1)}},[]);(0,K.useEffect)(()=>{c()},[c]);let l=(0,K.useCallback)(async e=>{let n=await V.post(`/api/db/connections`,e);return t(e=>[...e,n]),n},[]),u=(0,K.useCallback)(async(e,n)=>{let r=await V.put(`/api/db/connections/${e}`,n);t(t=>t.map(t=>t.id===e?r:t))},[]),d=(0,K.useCallback)(async e=>{await V.del(`/api/db/connections/${e}`),t(t=>t.filter(t=>t.id!==e)),a(t=>{let n=new Map(t);return n.delete(e),n})},[]),f=(0,K.useCallback)(async e=>V.post(`/api/db/connections/${e}/test`),[]),p=(0,K.useCallback)(async(e,t)=>V.post(`/api/db/test`,{type:e,connectionConfig:t}),[]),m=(0,K.useCallback)(async e=>{s(t=>{let n=new Map(t);return n.delete(e),n});try{let t=(await V.get(`/api/db/connections/${e}/tables`)).map(t=>({connectionId:e,tableName:t.name,schemaName:t.schema,rowCount:t.rowCount,cachedAt:new Date().toISOString()}));a(n=>new Map(n).set(e,t))}catch(t){let n=t.message||`Connection failed`;throw s(t=>new Map(t).set(e,n)),t}},[]),[h,g]=(0,K.useState)(new Map),_=(0,K.useRef)(h);return _.current=h,{connections:e,loading:n,cachedTables:i,refreshErrors:o,columnCache:h,createConnection:l,updateConnection:u,deleteConnection:d,testConnection:f,testRawConnection:p,refreshTables:m,fetchColumns:(0,K.useCallback)(async(e,t,n)=>{let r=`${e}:${n??`main`}.${t}`,i=_.current.get(r);if(i)return i;let a=await V.get(`/api/db/connections/${e}/schema?table=${encodeURIComponent(t)}${n?`&schema=${encodeURIComponent(n)}`:``}`);return g(e=>new Map(e).set(r,a)),a},[]),exportConnections:(0,K.useCallback)(async()=>V.get(`/api/db/connections/export`),[]),importConnections:(0,K.useCallback)(async e=>{let t=await V.post(`/api/db/connections/import`,e);await c();let n=t.connections??[];return n.length>0&&Promise.all(n.map(e=>m(e.id).catch(()=>{}))),t},[c,m])}}function Cl(){let{connections:e,loading:t,cachedTables:n,refreshErrors:r,columnCache:i,createConnection:a,updateConnection:o,deleteConnection:s,testConnection:c,testRawConnection:l,refreshTables:u,fetchColumns:d,exportConnections:f,importConnections:p}=Sl(),m=W(e=>e.openTab),[h,g]=(0,K.useState)(!1),[_,v]=(0,K.useState)(null);return(0,q.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b border-border shrink-0`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-semibold text-text-subtle uppercase tracking-wider`,children:`Database`}),(0,q.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,q.jsx)(xl,{onExport:f,onImport:p}),(0,q.jsx)(`button`,{onClick:()=>g(!0),className:`flex items-center justify-center size-5 rounded hover:bg-surface-elevated transition-colors text-text-subtle hover:text-foreground`,title:`Add connection`,children:(0,q.jsx)(ke,{className:`size-3.5`})})]})]}),(0,q.jsx)(`div`,{className:`flex-1 overflow-y-auto min-h-0`,children:t?(0,q.jsx)(`p`,{className:`px-4 py-6 text-xs text-text-subtle text-center`,children:`Loading…`}):(0,q.jsx)(ol,{connections:e,cachedTables:n,refreshErrors:r,onOpenTable:(e,t,n)=>{m({type:`database`,title:`${e.name} · ${t}`,projectId:null,closable:!0,metadata:{connectionId:e.id,connectionName:e.name,dbType:e.type,tableName:t,schemaName:n,connectionColor:e.color}})},onRefreshTables:u,onEdit:v,onDelete:async e=>{if(confirm(`Delete this connection?`))try{await s(e)}catch{}},onFetchColumns:d,columnCache:i})}),(0,q.jsx)(bl,{open:h,onClose:()=>g(!1),onSave:async e=>{let t=await a(e);t&&u(t.id).catch(()=>{})},onTest:()=>Promise.resolve({ok:!1,error:`Save connection first`}),onTestRaw:l}),_&&(0,q.jsx)(bl,{open:!!_,onClose:()=>v(null),connection:_,onUpdate:async(e,t)=>{await o(e,t)},onTest:e=>c(e)})]})}function wl(e,t,n,r){if(!e)return null;try{let i=r?e:e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return n&&(i=`\\b${i}\\b`),RegExp(`(${i})`,t?`g`:`gi`)}catch{return null}}function Tl({text:e,re:t}){if(!t)return(0,q.jsx)(`span`,{children:e});try{t.lastIndex=0;let n=e.split(t);return t.lastIndex=0,(0,q.jsx)(`span`,{children:n.map((e,n)=>(t.lastIndex=0,t.test(e)?(0,q.jsx)(`mark`,{className:`bg-yellow-300/40 text-foreground rounded-sm`,children:e},n):e))})}catch{return(0,q.jsx)(`span`,{children:e})}}function El({active:e,onClick:t,title:n,children:r}){return(0,q.jsx)(`button`,{onClick:t,title:n,className:H(`flex items-center justify-center w-6 h-6 rounded border shrink-0`,e?`border-primary text-primary bg-primary/10`:`border-border text-text-subtle hover:text-foreground hover:border-border/80`),children:r})}function Dl(){let{activeProject:e}=We(hs(e=>({activeProject:e.activeProject}))),t=W(e=>e.openTab),[n,r]=(0,K.useState)(``),[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(!1),[c,l]=(0,K.useState)(!1),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(``),[m,h]=(0,K.useState)(``),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(null),[b,x]=(0,K.useState)([]),[S,C]=(0,K.useState)(0),[w,T]=(0,K.useState)(!1),[E,D]=(0,K.useState)(new Set),O=(0,K.useRef)(null),k=(0,K.useRef)(null),ee=(0,K.useCallback)(async(t,n,r,i,a)=>{if(d(!1),!e||!i&&t.length<2||i&&t.length<1){x([]),C(0);return}if(i)try{new RegExp(t)}catch{d(!0),x([]);return}T(!0);try{let o=new URLSearchParams({q:t,caseSensitive:String(n),wholeWord:String(r),regex:String(i)});a&&o.set(`include`,a);let s=await V.get(`${B(e.name)}/files/search?${o}`);x(s.results),C(s.total)}catch{x([])}finally{T(!1)}},[e]);(0,K.useEffect)(()=>(k.current&&clearTimeout(k.current),k.current=setTimeout(()=>ee(n,i,o,c,f),300),()=>{k.current&&clearTimeout(k.current)}),[n,i,o,c,f,ee]),(0,K.useEffect)(()=>{O.current?.focus()},[]);let A=wl(n,i,o,c);function te(n,r){e&&t({type:`editor`,title:n.split(`/`).pop()??n,metadata:{filePath:n,projectName:e.name,lineNumber:r},projectId:e.name,closable:!0})}function ne(e){D(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}async function re(){if(!e||!n||b.length===0||g)return;_(!0),y(null);let t=0;try{for(let r of b){let a=await V.get(`${B(e.name)}/files/read?path=${encodeURIComponent(r.file)}`),s=wl(n,i,o,c);if(!s)continue;s.lastIndex=0;let l=a.content.match(s)??[];if(!l.length)continue;t+=l.length,s.lastIndex=0;let u=a.content.replace(s,m);await V.put(`${B(e.name)}/files/write`,{path:r.file,content:u})}y(t),ee(n,i,o,c,f)}catch{}finally{_(!1)}}return(0,q.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,q.jsxs)(`div`,{className:`p-2 border-b border-border space-y-1.5`,children:[(0,q.jsx)(`div`,{className:`relative flex items-center gap-1`,children:(0,q.jsxs)(`div`,{className:`relative flex-1`,children:[(0,q.jsx)(Te,{className:`absolute left-2 top-1/2 -translate-y-1/2 size-3.5 text-text-subtle pointer-events-none`}),(0,q.jsx)(`input`,{ref:O,value:n,onChange:e=>{r(e.target.value),y(null)},placeholder:e?`Search files…`:`Select a project first`,disabled:!e,className:H(`w-full pl-7 pr-6 py-1 text-xs bg-input border rounded focus:outline-none focus:ring-1 focus:ring-primary/50 disabled:opacity-50`,u?`border-destructive`:`border-border`)}),n&&(0,q.jsx)(`button`,{onClick:()=>{r(``),x([]),C(0),d(!1),y(null)},className:`absolute right-1.5 top-1/2 -translate-y-1/2 text-text-subtle hover:text-foreground`,children:(0,q.jsx)(Ae,{className:`size-3`})})]})}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(El,{active:i,onClick:()=>a(e=>!e),title:`Match Case (Alt+C)`,children:(0,q.jsx)(it,{className:`size-3.5`})}),(0,q.jsx)(El,{active:o,onClick:()=>{s(e=>!e),c&&l(!1)},title:`Match Whole Word (Alt+W)`,children:(0,q.jsx)(Pn,{className:`size-3.5`})}),(0,q.jsx)(El,{active:c,onClick:()=>{l(e=>!e),o&&s(!1)},title:`Use Regular Expression (Alt+R)`,children:(0,q.jsx)(gn,{className:`size-3.5`})}),u&&(0,q.jsx)(`span`,{className:`text-[10px] text-destructive ml-1`,children:`Invalid regex`})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsxs)(`div`,{className:`relative flex-1`,children:[(0,q.jsx)(`input`,{value:m,onChange:e=>h(e.target.value),placeholder:`Replace…`,disabled:!e,className:`w-full pl-2 pr-6 py-1 text-xs bg-input border border-border rounded focus:outline-none focus:ring-1 focus:ring-primary/50 disabled:opacity-50`}),m&&(0,q.jsx)(`button`,{onClick:()=>h(``),className:`absolute right-1.5 top-1/2 -translate-y-1/2 text-text-subtle hover:text-foreground`,children:(0,q.jsx)(Ae,{className:`size-3`})})]}),(0,q.jsx)(`button`,{onClick:re,disabled:!n||b.length===0||g,title:`Replace All`,className:`flex items-center justify-center w-6 h-6 rounded border border-border text-text-subtle hover:text-foreground hover:border-border/80 disabled:opacity-40 shrink-0`,children:g?(0,q.jsx)(G,{className:`size-3.5 animate-spin`}):(0,q.jsx)(_n,{className:`size-3.5`})})]}),(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(`input`,{value:f,onChange:e=>p(e.target.value),placeholder:`Files to include (e.g. *.ts, src/**)`,disabled:!e,className:`w-full pl-2 pr-6 py-1 text-xs bg-input border border-border rounded focus:outline-none focus:ring-1 focus:ring-primary/50 disabled:opacity-50`}),f&&(0,q.jsx)(`button`,{onClick:()=>p(``),className:`absolute right-1.5 top-1/2 -translate-y-1/2 text-text-subtle hover:text-foreground`,children:(0,q.jsx)(Ae,{className:`size-3`})})]}),(0,q.jsxs)(`div`,{className:`text-[10px] text-text-subtle h-3`,children:[(w||g)&&(0,q.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(G,{className:`size-2.5 animate-spin`}),g?`Replacing…`:`Searching…`]}),!w&&!g&&v!==null&&(0,q.jsxs)(`span`,{className:`text-green-500`,children:[v,` replacement`,v===1?``:`s`,` made`]}),!w&&!g&&v===null&&!u&&n.length>=2&&b.length===0&&(0,q.jsx)(`span`,{children:`No results`}),!w&&!g&&v===null&&S>0&&(0,q.jsxs)(`span`,{children:[S,` result`,S===1?``:`s`,` in `,b.length,` file`,b.length===1?``:`s`]})]})]}),(0,q.jsx)(`div`,{className:`flex-1 overflow-y-auto min-h-0`,children:b.map(e=>{let t=E.has(e.file),n=e.file.split(`/`).pop()??e.file,r=e.file.includes(`/`)?e.file.slice(0,e.file.lastIndexOf(`/`)):``;return(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`button`,{onClick:()=>ne(e.file),className:`w-full flex items-center gap-1 px-2 py-1 hover:bg-muted/50 text-left`,children:[t?(0,q.jsx)(pe,{className:`size-3 shrink-0 text-text-subtle`}):(0,q.jsx)(ce,{className:`size-3 shrink-0 text-text-subtle`}),(0,q.jsx)(Ot,{className:`size-3 shrink-0 text-text-subtle`}),(0,q.jsx)(`span`,{className:`text-xs font-medium text-foreground truncate`,children:n}),(0,q.jsx)(`span`,{className:`text-[10px] text-text-subtle truncate flex-1 min-w-0 ml-1`,children:r}),(0,q.jsx)(`span`,{className:`text-[10px] text-text-subtle shrink-0 ml-1 bg-muted px-1 rounded`,children:e.matches.length})]}),!t&&e.matches.map(t=>(0,q.jsxs)(`button`,{onClick:()=>te(e.file,t.lineNum),className:`w-full flex items-start gap-2 pl-7 pr-2 py-0.5 hover:bg-primary/10 text-left`,children:[(0,q.jsx)(`span`,{className:`text-[10px] text-text-subtle shrink-0 w-7 text-right pt-px`,children:t.lineNum}),(0,q.jsx)(`span`,{className:`text-xs text-text-secondary truncate font-mono leading-4`,children:(0,q.jsx)(Tl,{text:t.content.trimStart(),re:A})})]},`${e.file}-${t.lineNum}`))]},e.file)})})]})}function Ol(e,t){window.dispatchEvent(new CustomEvent(`ext:tree:expand`,{detail:{viewId:e,itemId:t}}))}function kl(e,t){window.dispatchEvent(new CustomEvent(`ext:command:execute`,{detail:{command:e,args:t}}))}var Al={refresh:je,edit:re,trash:Oe,plus:ke,search:Te};function jl({viewId:e,className:t}){let n=No(t=>t.treeViews[e])??[],r=No(e=>e.contributions),i=(0,K.useMemo)(()=>{if(!r)return{name:e,headerActions:[]};let t=e,n=r.views;if(n)for(let r of Object.values(n)){let n=r.find(t=>t.id===e);if(n){t=n.name;break}}let i=[],a=r.menus?.[`view/title`];if(a)for(let t of a){if(t.when){let n=t.when.match(/view\s*==\s*(\S+)/);if(n&&n[1]!==e)continue}let n=r.commands?.find(e=>e.command===t.command);n&&i.push({command:n.command,title:n.title,icon:n.icon})}return{name:t,headerActions:i}},[r,e]);return(0,q.jsxs)(`div`,{className:H(`flex flex-col h-full`,t),children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b border-border shrink-0`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-semibold text-text-subtle uppercase tracking-wider`,children:i.name}),(0,q.jsx)(`div`,{className:`flex items-center gap-0.5`,children:i.headerActions.map(e=>{let t=Al[e.icon??Ml(e.command)]??je;return(0,q.jsx)(`button`,{onClick:()=>kl(e.command),className:`flex items-center justify-center size-5 rounded hover:bg-surface-elevated transition-colors text-text-subtle hover:text-foreground`,title:e.title,children:(0,q.jsx)(t,{className:`size-3.5`})},e.command)})})]}),(0,q.jsx)(`div`,{className:`flex-1 overflow-y-auto min-h-0 py-1`,role:`tree`,"aria-label":e,children:n.length===0?(0,q.jsx)(`p`,{className:`px-4 py-6 text-xs text-text-subtle text-center`,children:`No items`}):n.map(t=>(0,q.jsx)(Nl,{item:t,depth:0,viewId:e},t.id))})]})}function Ml(e){return e.includes(`refresh`)?`refresh`:e.includes(`add`)||e.includes(`create`)||e.includes(`new`)?`plus`:e.includes(`delete`)||e.includes(`remove`)?`trash`:e.includes(`edit`)||e.includes(`update`)?`edit`:e.includes(`search`)||e.includes(`find`)?`search`:`refresh`}function Nl({item:e,depth:t,viewId:n}){let[r,i]=(0,K.useState)(!1),a=e.collapsibleState!==`none`,o=(0,K.useRef)(!1);e.children&&e.children.length>0&&!o.current&&(o.current=!0,r||i(!0));let s=(0,K.useCallback)(()=>{if(!a)return;let t=!r;i(t),t&&(!e.children||e.children.length===0)&&Ol(n,e.id)},[a,r,e.id,e.children,n]),c=(0,K.useCallback)(()=>{s(),e.command&&kl(e.command,e.commandArgs)},[s,e.command,e.commandArgs]),l=8+t*16;return(0,q.jsxs)(`div`,{role:`treeitem`,"aria-expanded":a?r:void 0,children:[(0,q.jsxs)(`div`,{className:H(`group/node flex items-center gap-1 py-1 hover:bg-surface-elevated transition-colors`),style:{paddingLeft:l,paddingRight:8},children:[(0,q.jsx)(`button`,{onClick:s,className:`shrink-0 text-text-subtle hover:text-foreground transition-colors`,children:a?r?(0,q.jsx)(ce,{className:`size-3`}):(0,q.jsx)(pe,{className:`size-3`}):(0,q.jsx)(`span`,{className:`size-3`})}),e.color&&(0,q.jsx)(`span`,{className:`shrink-0 size-2 rounded-full border border-border`,style:{backgroundColor:e.color}}),(0,q.jsx)(`button`,{className:`flex-1 text-left text-xs truncate hover:text-primary transition-colors`,onClick:c,children:e.label}),e.description&&(0,q.jsx)(`span`,{className:`shrink-0 ml-1 text-text-subtle text-[10px]`,children:e.description}),e.badge&&(0,q.jsx)(`span`,{className:`shrink-0 text-[9px] text-text-subtle uppercase px-1 rounded bg-surface-elevated`,children:e.badge}),e.actions&&e.actions.length>0&&(0,q.jsx)(`div`,{className:`flex can-hover:hidden can-hover:group-hover/node:flex items-center gap-0.5 shrink-0`,children:e.actions.map(e=>(0,q.jsx)(Pl,{action:e},e.command))})]}),a&&r&&e.children&&(0,q.jsx)(`div`,{role:`group`,children:e.children.map(e=>(0,q.jsx)(Nl,{item:e,depth:t+1,viewId:n},e.id))})]})}function Pl({action:e}){let[t,n]=(0,K.useState)(!1),r=Al[e.icon]??je,i=e.icon===`trash`;return(0,q.jsx)(`button`,{onClick:(0,K.useCallback)(t=>{t.stopPropagation(),e.icon===`refresh`&&(n(!0),setTimeout(()=>n(!1),1e3)),kl(e.command,e.commandArgs)},[e]),className:H(`p-0.5 text-text-subtle transition-colors`,i?`hover:text-red-500`:`hover:text-foreground`),title:e.tooltip,children:(0,q.jsx)(r,{className:H(`size-3`,t&&`animate-spin`)})})}var X=Me((e,t)=>({projectsWithIds:[],configs:[],selectedProjectId:null,watchers:[],results:[],unreadCount:0,setSelectedProjectId:t=>e({selectedProjectId:t}),loadProjectsWithIds:async()=>{let t=await V.get(`/api/jira/config/projects`);e({projectsWithIds:Array.isArray(t)?t:[]})},loadConfigs:async()=>{e({configs:await V.get(`/api/jira/config`)})},saveConfig:async(e,n)=>{await V.put(`/api/jira/config/${e}`,n),await t().loadConfigs()},deleteConfig:async t=>{await V.del(`/api/jira/config/${t}`),e(e=>({configs:e.configs.filter(e=>e.projectId!==t),watchers:[]}))},testConnection:async e=>(await V.post(`/api/jira/config/${e}/test`)).connected,loadWatchers:async t=>{e({watchers:await V.get(`/api/jira/watchers?configId=${t}`)})},createWatcher:async e=>{await V.post(`/api/jira/watchers`,e),e.configId&&await t().loadWatchers(e.configId)},updateWatcher:async(e,n)=>{await V.put(`/api/jira/watchers/${e}`,n);let r=t().watchers.find(t=>t.id===e);r&&await t().loadWatchers(r.jiraConfigId)},deleteWatcher:async e=>{let n=t().watchers.find(t=>t.id===e);await V.del(`/api/jira/watchers/${e}`),n&&await t().loadWatchers(n.jiraConfigId)},toggleWatcher:async(t,n)=>{e(e=>({watchers:e.watchers.map(e=>e.id===t?{...e,enabled:n}:e)}));try{await V.put(`/api/jira/watchers/${t}`,{enabled:n})}catch{e(e=>({watchers:e.watchers.map(e=>e.id===t?{...e,enabled:!n}:e)}))}},pullWatcher:async e=>{let n=await V.post(`/api/jira/watchers/${e}/pull`);return await t().loadResults(),n},testJql:async(e,t)=>await V.post(`/api/jira/watchers/test-jql`,{configId:e,jql:t}),loadResults:async(t,n,r=50,i=0)=>{let a=new URLSearchParams;t!==void 0&&a.set(`watcherId`,String(t)),n&&a.set(`status`,n),a.set(`limit`,String(r)),a.set(`offset`,String(i));let o=await V.get(`/api/jira/results?${a}`);e(i>0?e=>({results:[...e.results,...o]}):{results:o})},softDeleteResult:async t=>{e(e=>({results:e.results.filter(e=>e.id!==t)}));try{await V.del(`/api/jira/results/${t}`)}catch{}},startDebug:async(n,r)=>{let i=t().results.find(e=>e.id===n)?.status;e(e=>({results:e.results.map(e=>e.id===n?{...e,status:`queued`}:e)}));try{await V.post(`/api/jira/results/${n}/debug`,r?{prompt:r}:{})}catch{e(e=>({results:e.results.map(e=>e.id===n?{...e,status:i??`pending`}:e)}))}},resumeDebug:async n=>{let r=t().results.find(e=>e.id===n)?.status;e(e=>({results:e.results.map(e=>e.id===n?{...e,status:`queued`}:e)}));try{await V.post(`/api/jira/results/${n}/resume`)}catch{e(e=>({results:e.results.map(e=>e.id===n?{...e,status:r??`failed`}:e)}))}},cancelDebug:async e=>{try{await V.post(`/api/jira/results/${e}/cancel`),await t().loadResults()}catch{}},markRead:async t=>{e(e=>({results:e.results.map(e=>e.id===t?{...e,readAt:new Date().toISOString()}:e),unreadCount:Math.max(0,e.unreadCount-1)}));try{await V.patch(`/api/jira/results/${t}/read`)}catch{}},loadUnreadCount:async()=>{try{e({unreadCount:(await V.get(`/api/jira/results/unread-count`)).count})}catch{}}})),Fl={pending:`bg-yellow-500`,queued:`bg-orange-500`,running:`bg-blue-500 animate-pulse`,done:`bg-green-500`,failed:`bg-red-500`};function Z(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4);if(n<1)return`now`;if(n<60)return`${n}m`;let r=Math.floor(n/60);return r<24?`${r}h`:`${Math.floor(r/24)}d`}function Q({result:e,onDebug:t,onResume:n,onCancel:r,onOpenSession:i,onDelete:a,onClick:o}){let s=e,c=s.status===`done`&&!s.readAt,l=!!s.sessionId,u=s.status===`failed`&&l,d=s.status===`pending`||s.status===`failed`&&!l,f=s.status===`queued`||s.status===`running`,p=s.status;return(0,q.jsxs)(`div`,{className:H(`group rounded bg-card shadow-sm hover:shadow-md hover:bg-accent/50 hover:-translate-y-px cursor-pointer transition-all duration-150`,`px-2.5 py-2 space-y-1`,c&&`ring-1 ring-primary/30`),onClick:()=>o(s),children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,q.jsx)(`span`,{className:`text-xs font-mono font-semibold text-foreground shrink-0`,children:s.issueKey}),c&&(0,q.jsx)(`span`,{className:`size-1.5 rounded-full bg-primary shrink-0`}),(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground truncate flex-1 min-w-0`,children:s.issueSummary||`No summary`}),(0,q.jsx)(`span`,{className:`text-[10px] text-muted-foreground/60 tabular-nums shrink-0`,children:Z(s.createdAt)})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between min-w-0`,children:[(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-[11px] text-muted-foreground`,children:[(0,q.jsx)(`span`,{className:H(`size-1.5 rounded-full shrink-0`,Fl[p])}),p]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-0.5 shrink-0`,onClick:e=>e.stopPropagation(),children:[u&&(0,q.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 h-6 px-1.5 rounded text-[10px] font-medium text-primary hover:bg-primary/10 active:scale-95 transition-colors`,onClick:()=>n(s),title:`Resume debug session`,children:[(0,q.jsx)(vn,{className:`size-3`}),(0,q.jsx)(`span`,{children:`Resume`})]}),d&&(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-6 rounded text-muted-foreground hover:text-primary active:scale-95 transition-colors`,onClick:()=>t(s),title:`Debug`,children:(0,q.jsx)(dn,{className:`size-3`})}),f&&(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-6 rounded text-muted-foreground hover:text-destructive active:scale-95 transition-colors`,onClick:()=>r(s),title:`Stop debug`,children:(0,q.jsx)(En,{className:`size-3`})}),s.status===`running`&&(0,q.jsx)(G,{className:`size-3 animate-spin text-primary`}),l&&(0,q.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 h-6 px-1.5 rounded text-[10px] font-medium text-primary hover:bg-primary/10 active:scale-95 transition-colors`,onClick:()=>i(s),title:`Open session`,children:[(0,q.jsx)(vt,{className:`size-3`}),(0,q.jsx)(`span`,{children:`Open`})]}),(0,q.jsxs)(ec,{children:[(0,q.jsx)(tc,{asChild:!0,children:(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-6 rounded text-muted-foreground hover:text-foreground active:scale-95 transition-colors`,children:(0,q.jsx)(_t,{className:`size-3`})})}),(0,q.jsx)(nc,{align:`end`,children:(0,q.jsxs)(rc,{className:`text-destructive`,onClick:()=>a(s.id),children:[(0,q.jsx)(Oe,{className:`size-3.5 mr-2`}),` Delete`]})})]})]})]})]})}function Il(e){let t=[];return e.project.length&&t.push(`project IN (${e.project.join(`, `)})`),e.issueType.length&&t.push(`issuetype IN (${e.issueType.map(e=>`"${e}"`).join(`, `)})`),e.priority.length&&t.push(`priority IN (${e.priority.map(e=>`"${e}"`).join(`, `)})`),e.status.length&&t.push(`status IN (${e.status.map(e=>`"${e}"`).join(`, `)})`),e.assignee.length&&t.push(`assignee IN (${e.assignee.map(e=>`"${e}"`).join(`, `)})`),(t.join(` AND `)||`ORDER BY updated DESC`)+(t.length?` ORDER BY updated DESC`:``)}var Ll={project:[],issueType:[],priority:[],status:[],assignee:[]};function Rl({value:e,onChange:t,configId:n}){let[r,i]=(0,K.useState)(e?`raw`:`builder`),[a,o]=(0,K.useState)(Ll),[s,c]=(0,K.useState)(e),[l,u]=(0,K.useState)([]),[d,f]=(0,K.useState)([]),[p,m]=(0,K.useState)([]),[h,g]=(0,K.useState)([]),[_,v]=(0,K.useState)([]),[y,b]=(0,K.useState)(!1);(0,K.useEffect)(()=>{n&&(b(!0),Promise.all([V.get(`/api/jira/metadata/${n}/projects`).catch(()=>[]),V.get(`/api/jira/metadata/${n}/issuetype`).catch(()=>[]),V.get(`/api/jira/metadata/${n}/priority`).catch(()=>[]),V.get(`/api/jira/metadata/${n}/status`).catch(()=>[]),V.get(`/api/jira/metadata/${n}/assignees`).catch(()=>[])]).then(([e,t,n,r,i])=>{u(e),f(t),m(n),g(r),v(i.map(e=>({id:e.accountId,name:e.displayName})))}).finally(()=>b(!1)))},[n]),(0,K.useEffect)(()=>{r===`builder`&&t(Il(a))},[a,r]);let x=(0,K.useCallback)(e=>{c(e),t(e)},[t]),S=(e,t)=>{!t||a[e].includes(t)||o(n=>({...n,[e]:[...n[e],t]}))},C=(e,t)=>{o(n=>({...n,[e]:n[e].filter(e=>e!==t)}))};return(0,q.jsxs)(`div`,{className:`space-y-2 min-w-0`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(R,{type:`button`,size:`sm`,variant:r===`builder`?`default`:`outline`,onClick:()=>i(`builder`),className:`min-h-[44px] text-xs`,children:`Builder`}),(0,q.jsx)(R,{type:`button`,size:`sm`,variant:r===`raw`?`default`:`outline`,onClick:()=>i(`raw`),className:`min-h-[44px] text-xs`,children:`Raw JQL`}),y&&(0,q.jsx)(G,{className:`size-3.5 animate-spin text-muted-foreground`})]}),r===`raw`?(0,q.jsx)(`textarea`,{value:s,onChange:e=>x(e.target.value),className:`w-full h-20 rounded-md border border-input bg-background px-3 py-2 text-sm font-mono resize-none focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,placeholder:`e.g. project = MYPROJ AND status = "In Progress"`}):(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsx)(zl,{label:`Project`,field:`project`,filters:a,onAdd:S,onRemove:C,options:l.map(e=>({value:e.key??e.name,label:`${e.key??e.name} — ${e.name}`})),placeholder:`Select project...`}),(0,q.jsx)(zl,{label:`Issue Type`,field:`issueType`,filters:a,onAdd:S,onRemove:C,options:d.map(e=>({value:e.name,label:e.name})),placeholder:`Select issue type...`}),(0,q.jsx)(zl,{label:`Priority`,field:`priority`,filters:a,onAdd:S,onRemove:C,options:p.map(e=>({value:e.name,label:e.name})),placeholder:`Select priority...`}),(0,q.jsx)(zl,{label:`Status`,field:`status`,filters:a,onAdd:S,onRemove:C,options:h.map(e=>({value:e.name,label:e.name})),placeholder:`Select status...`}),(0,q.jsx)(zl,{label:`Assignee`,field:`assignee`,filters:a,onAdd:S,onRemove:C,options:_.map(e=>({value:e.id??e.name,label:e.name})),placeholder:`Select assignee...`})]}),(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground bg-muted/50 rounded px-2 py-1 font-mono break-all`,children:r===`builder`?Il(a):s||`(empty)`})]})}function zl({label:e,field:t,filters:n,onAdd:r,onRemove:i,options:a,placeholder:o}){let s=a.filter(e=>!n[t].includes(e.value));return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:e}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1 flex-wrap`,children:[n[t].map(e=>(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 px-2 py-0.5 rounded-full bg-primary/10 text-xs`,children:[a.find(t=>t.value===e)?.label??e,(0,q.jsx)(`button`,{type:`button`,onClick:()=>i(t,e),className:`hover:text-destructive`,children:(0,q.jsx)(Ae,{className:`size-3`})})]},e)),s.length>0?(0,q.jsxs)(N,{onValueChange:e=>r(t,e),children:[(0,q.jsx)(I,{className:`h-7 w-auto min-w-[120px] text-xs`,children:(0,q.jsx)(ne,{placeholder:o})}),(0,q.jsx)(te,{children:s.map(e=>(0,q.jsx)(P,{value:e.value,children:e.label},e.value))})]}):a.length>0?(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground italic`,children:`All selected`}):(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground italic`,children:`Loading...`})]})]})}var Bl=[{label:`30s`,value:3e4},{label:`1m`,value:6e4},{label:`2m`,value:12e4},{label:`5m`,value:3e5},{label:`10m`,value:6e5},{label:`30m`,value:18e5},{label:`1h`,value:36e5}];function Vl({configId:e,existing:t,onDone:n}){let{createWatcher:r,updateWatcher:i,testJql:a}=X(),[o,s]=(0,K.useState)(t?.name??``),[c,l]=(0,K.useState)(t?.jql??``),[u,d]=(0,K.useState)(t?.intervalMs??12e4),[f,p]=(0,K.useState)(t?.mode??`debug`),[m,h]=(0,K.useState)(t?.promptTemplate??``),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(!1),[b,x]=(0,K.useState)(null),[S,C]=(0,K.useState)(0),[w,T]=(0,K.useState)(null),E=!!t;return(0,q.jsxs)(`form`,{onSubmit:async a=>{if(a.preventDefault(),!(!o||!c)){_(!0);try{E?await i(t.id,{name:o,jql:c,intervalMs:u,mode:f,promptTemplate:m||null}):await r({configId:e,name:o,jql:c,intervalMs:u,mode:f,promptTemplate:m||void 0}),n()}catch{}_(!1)}},className:`space-y-3 min-w-0`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Name`}),(0,q.jsx)(z,{value:o,onChange:e=>s(e.target.value),placeholder:`Bug watcher`,className:`h-9`})]}),(0,q.jsx)(Rl,{value:c,onChange:l,configId:e}),(0,q.jsxs)(R,{type:`button`,size:`sm`,variant:`outline`,className:`w-full min-h-[44px]`,disabled:!c||v,onClick:async()=>{if(c){y(!0),T(null),x(null);try{let t=await a(e,c);x(t.issues),C(t.total)}catch(e){T(e.message??`Test failed`)}y(!1)}},children:[v?(0,q.jsx)(G,{className:`size-4 animate-spin mr-1.5`}):(0,q.jsx)(Te,{className:`size-4 mr-1.5`}),`Test Filter`]}),w&&(0,q.jsx)(`p`,{className:`text-xs text-destructive bg-destructive/10 rounded-md px-3 py-2`,children:w}),b&&(0,q.jsxs)(`div`,{className:`border rounded-md max-h-48 overflow-hidden`,children:[(0,q.jsxs)(`div`,{className:`px-3 py-1.5 border-b bg-muted/50 text-xs text-muted-foreground font-medium`,children:[S,` ticket`,S===1?``:`s`,` found`,S>b.length&&` (showing ${b.length})`]}),(0,q.jsx)(`div`,{className:`overflow-y-auto max-h-[calc(12rem-30px)]`,children:b.length===0?(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground text-center py-4`,children:`No tickets match this filter.`}):b.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1.5 border-b last:border-b-0 text-xs min-w-0`,children:[(0,q.jsx)(`span`,{className:`font-mono font-medium shrink-0`,children:e.key}),(0,q.jsx)(`span`,{className:`truncate text-muted-foreground flex-1 min-w-0`,children:e.fields.summary}),(0,q.jsx)(`span`,{className:`shrink-0 text-[10px] text-muted-foreground px-1.5 py-0.5 bg-muted rounded whitespace-nowrap`,children:e.fields.status.name})]},e.key))})]}),(0,q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,q.jsxs)(`div`,{className:`flex-1`,children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Interval`}),(0,q.jsxs)(N,{value:String(u),onValueChange:e=>d(Number(e)),children:[(0,q.jsx)(I,{className:`h-9`,children:(0,q.jsx)(ne,{})}),(0,q.jsx)(te,{children:Bl.map(e=>(0,q.jsx)(P,{value:String(e.value),children:e.label},e.value))})]})]}),(0,q.jsxs)(`div`,{className:`flex-1`,children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Mode`}),(0,q.jsxs)(N,{value:f,onValueChange:e=>p(e),children:[(0,q.jsx)(I,{className:`h-9`,children:(0,q.jsx)(ne,{})}),(0,q.jsxs)(te,{children:[(0,q.jsx)(P,{value:`debug`,children:`Debug + Notify`}),(0,q.jsx)(P,{value:`notify`,children:`Notify only`})]})]})]})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Prompt template (optional)`}),(0,q.jsx)(`textarea`,{value:m,onChange:e=>h(e.target.value),className:`w-full h-16 rounded-md border border-input bg-background px-3 py-2 text-xs font-mono resize-none focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,placeholder:`Debug Jira issue {issue_key}: {summary}`})]}),(0,q.jsx)(R,{type:`submit`,size:`sm`,disabled:g||!o||!c,className:`min-h-[44px] w-full`,children:g?(0,q.jsx)(G,{className:`size-4 animate-spin`}):E?`Save Changes`:`Create Watcher`})]})}function Hl({configId:e}){let{watchers:t,deleteWatcher:n,toggleWatcher:r,pullWatcher:i}=X(),[a,o]=(0,K.useState)(!1),[s,c]=(0,K.useState)(null),[l,u]=(0,K.useState)(null),d=async e=>{u(e);try{let t=await i(e);tr.success(`Pulled ${t.newIssues} new issue${t.newIssues===1?``:`s`}`)}catch(e){tr.error(e.message??`Pull failed`)}u(null)};return(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`h4`,{className:`text-sm font-medium`,children:`Watchers`}),(0,q.jsxs)(_e,{open:a,onOpenChange:o,children:[(0,q.jsx)(he,{asChild:!0,children:(0,q.jsxs)(R,{size:`sm`,variant:`outline`,className:`min-h-[44px]`,children:[(0,q.jsx)(ke,{className:`size-4 mr-1`}),` Add`]})}),(0,q.jsxs)(ye,{className:`max-w-md overflow-hidden`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:`New Watcher`})}),(0,q.jsx)(Vl,{configId:e,onDone:()=>o(!1)})]})]})]}),t.length===0&&(0,q.jsx)(`p`,{className:`text-sm text-muted-foreground py-4 text-center`,children:`No watchers yet.`}),t.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center gap-2 p-2 rounded-md border text-sm`,children:[(0,q.jsx)(ie,{checked:e.enabled,onCheckedChange:t=>r(e.id,t),className:`shrink-0`}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,q.jsx)(`div`,{className:`font-medium truncate`,children:e.name}),(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground truncate font-mono`,children:e.jql})]}),(0,q.jsxs)(`span`,{className:`text-xs text-muted-foreground shrink-0`,children:[e.mode===`notify`?`notify`:`debug`,` · `,Ul(e.intervalMs)]}),(0,q.jsx)(R,{size:`icon`,variant:`ghost`,className:`size-8`,onClick:()=>c(e),children:(0,q.jsx)(re,{className:`size-3.5`})}),(0,q.jsx)(R,{size:`icon`,variant:`ghost`,className:`size-8`,onClick:()=>d(e.id),disabled:l===e.id,children:l===e.id?(0,q.jsx)(G,{className:`size-3.5 animate-spin`}):(0,q.jsx)(dn,{className:`size-3.5`})}),(0,q.jsx)(R,{size:`icon`,variant:`ghost`,className:`size-8 text-destructive`,onClick:()=>n(e.id),children:(0,q.jsx)(Oe,{className:`size-3.5`})})]},e.id)),(0,q.jsx)(_e,{open:!!s,onOpenChange:e=>{e||c(null)},children:(0,q.jsxs)(ye,{className:`max-w-md overflow-hidden`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:`Edit Watcher`})}),s&&(0,q.jsx)(Vl,{configId:e,existing:s,onDone:()=>c(null)})]})})]})}function Ul(e){return e>=36e5?`${e/36e5}h`:e>=6e4?`${e/6e4}m`:`${e/1e3}s`}function Wl({projectId:e,existing:t}){let{saveConfig:n,deleteConfig:r,testConnection:i}=X(),[a,o]=(0,K.useState)(t?.baseUrl??``),[s,c]=(0,K.useState)(t?.email??``),[l,u]=(0,K.useState)(``);(0,K.useEffect)(()=>{t&&(o(t.baseUrl),c(t.email))},[t?.baseUrl,t?.email]);let[d,f]=(0,K.useState)(!1),[p,m]=(0,K.useState)(!1),[h,g]=(0,K.useState)(null),[_,v]=(0,K.useState)(null);return(0,q.jsxs)(`form`,{onSubmit:async r=>{if(r.preventDefault(),!(!a||!s||!l&&!t?.hasToken)){f(!0);try{await n(e,{baseUrl:a,email:s,...l?{token:l}:{}}),u(``)}catch{}f(!1)}},className:`space-y-3`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Base URL`}),(0,q.jsx)(z,{value:a,onChange:e=>o(e.target.value),placeholder:`https://mysite.atlassian.net`,className:`h-9`})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Email`}),(0,q.jsx)(z,{value:s,onChange:e=>c(e.target.value),placeholder:`you@company.com`,className:`h-9`})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`label`,{className:`text-xs text-muted-foreground`,children:[`API Token `,t?.hasToken&&(0,q.jsx)(`span`,{className:`text-green-500`,children:`(saved)`})]}),(0,q.jsx)(z,{type:`password`,value:l,onChange:e=>u(e.target.value),placeholder:t?.hasToken?`Enter new token to replace`:`Your Jira API token`,className:`h-9`})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,q.jsx)(R,{type:`submit`,size:`sm`,disabled:d,className:`min-w-[44px] min-h-[44px]`,children:d?(0,q.jsx)(G,{className:`size-4 animate-spin`}):`Save`}),t&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(R,{type:`button`,size:`sm`,variant:`outline`,onClick:async()=>{m(!0),g(null),v(null);try{g(await i(e)?`ok`:`fail`)}catch(e){g(`fail`),v(e?.message??`Connection failed`)}m(!1)},disabled:p,className:`min-h-[44px]`,children:p?(0,q.jsx)(G,{className:`size-4 animate-spin`}):`Test Connection`}),(0,q.jsx)(R,{type:`button`,size:`sm`,variant:`destructive`,onClick:()=>r(e),className:`min-h-[44px]`,children:(0,q.jsx)(Oe,{className:`size-4`})})]}),h===`ok`&&(0,q.jsx)(st,{className:`size-4 text-green-500`}),h===`fail`&&(0,q.jsx)(ot,{className:`size-4 text-red-500`})]}),_&&(0,q.jsx)(`p`,{className:`text-xs text-red-500 break-all`,children:_})]})}function Gl({result:e,onClose:t}){let{watchers:n,startDebug:r}=X(),[i,a]=(0,K.useState)(``);return(0,K.useEffect)(()=>{e&&a((n.find(t=>t.id===e.watcherId)?.promptTemplate??`Debug Jira issue {issue_key}: {summary}`).replace(/\{issue_key\}/g,e.issueKey).replace(/\{summary\}/g,e.issueSummary??``))},[e,n]),(0,q.jsx)(_e,{open:!!e,onOpenChange:e=>{e||t()},children:(0,q.jsxs)(ye,{className:`max-w-md`,children:[(0,q.jsx)(ve,{children:(0,q.jsxs)(be,{children:[`Start Debug: `,e?.issueKey]})}),(0,q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e?.issueSummary}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Debug Prompt`}),(0,q.jsx)(`textarea`,{value:i,onChange:e=>a(e.target.value),className:`w-full h-24 rounded-md border border-input bg-background px-3 py-2 text-xs font-mono resize-none mt-1`,placeholder:`Debug Jira issue {issue_key}: {summary}`})]}),(0,q.jsx)(R,{size:`sm`,className:`w-full min-h-[44px]`,onClick:async()=>{if(e){try{await r(e.id,i)}catch{}t()}},children:`Start Debug Session`})]})})}function Kl(){let e=We(e=>e.activeProject),t=W(e=>e.openTab),{configs:n,watchers:r,results:i,loadConfigs:a,loadWatchers:o,loadResults:s,loadProjectsWithIds:c,projectsWithIds:l,softDeleteResult:u,resumeDebug:d,cancelDebug:f,markRead:p,unreadCount:m,loadUnreadCount:h}=X(),[g,_]=(0,K.useState)(`tickets`),[v,y]=(0,K.useState)(!1),[b,x]=(0,K.useState)(null),S=l.find(t=>t.name===e?.name),C=n.find(e=>e.projectId===S?.id);(0,K.useEffect)(()=>{a(),c()},[]),(0,K.useEffect)(()=>{C&&o(C.id)},[C?.id]);let w=(0,K.useCallback)(async()=>{y(!0);try{await s()}catch{}y(!1)},[s]);(0,K.useEffect)(()=>{w(),h()},[C?.id]),(0,K.useEffect)(()=>{let n=n=>{let r=n.detail;r&&(w(),r.status===`done`?(h(),tr.success(`Debug complete: ${r.issueKey}`,{action:r.sessionId?{label:`View`,onClick:()=>t({type:`chat`,title:`[Jira] ${r.issueKey}`,projectId:e?.name??null,metadata:{projectName:e?.name,sessionId:r.sessionId},closable:!0})}:void 0})):r.status===`failed`&&tr.error(`Debug failed: ${r.issueKey}`))};return window.addEventListener(`jira:status_change`,n),()=>window.removeEventListener(`jira:status_change`,n)},[w,h]);let T=(0,K.useCallback)(n=>{n.sessionId&&(n.status===`done`&&!n.readAt&&p(n.id),t({type:`chat`,title:`[Jira] ${n.issueKey}`,projectId:e?.name??null,metadata:{projectName:e?.name,sessionId:n.sessionId},closable:!0}))},[t,p,e]),E=e=>{e.sessionId&&T(e)};return e?g===`tickets`?(0,q.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,q.jsxs)(`div`,{className:`shrink-0 px-3 py-2 flex items-center gap-1.5 border-b border-border/50`,children:[(0,q.jsx)(`h2`,{className:`text-sm font-semibold flex-1 truncate`,children:`Jira`}),m>0&&(0,q.jsx)(`span`,{className:`inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full bg-primary text-primary-foreground text-[10px] font-bold`,children:m}),(0,q.jsx)(R,{size:`icon`,variant:`ghost`,className:`size-7`,onClick:w,disabled:v,title:`Refresh`,children:v?(0,q.jsx)(G,{className:`size-3.5 animate-spin`}):(0,q.jsx)(je,{className:`size-3.5`})}),(0,q.jsx)(R,{size:`icon`,variant:`ghost`,className:`size-7`,onClick:()=>_(`watchers`),title:`Watchers`,children:(0,q.jsx)(Xt,{className:`size-3.5`})}),(0,q.jsx)(R,{size:`icon`,variant:`ghost`,className:`size-7`,onClick:()=>_(`credentials`),title:`Credentials`,children:(0,q.jsx)(Sn,{className:`size-3.5`})})]}),(0,q.jsx)(gs,{className:`flex-1 min-h-0`,children:(0,q.jsx)(`div`,{className:`p-1.5 space-y-1.5`,children:C?i.length===0&&r.length===0?(0,q.jsx)(ql,{message:`No watchers yet`,action:`Add Watcher`,onAction:()=>_(`watchers`)}):i.length===0?(0,q.jsx)(ql,{message:`No tickets yet. Watchers will pick up new issues.`}):i.map(e=>(0,q.jsx)(Q,{result:e,onDebug:x,onResume:e=>d(e.id),onCancel:e=>f(e.id),onOpenSession:T,onDelete:u,onClick:E},e.id)):(0,q.jsx)(ql,{message:`No Jira credentials configured`,action:`Set up Jira`,onAction:()=>_(`credentials`)})})}),(0,q.jsx)(Gl,{result:b,onClose:()=>x(null)})]}):(0,q.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,q.jsxs)(`div`,{className:`shrink-0 px-2 py-2 flex items-center gap-1.5 border-b border-border/50`,children:[(0,q.jsx)(R,{size:`icon`,variant:`ghost`,className:`size-7`,onClick:()=>_(`tickets`),children:(0,q.jsx)(ee,{className:`size-4`})}),(0,q.jsx)(`h2`,{className:`text-sm font-semibold truncate`,children:g===`watchers`?`Watchers`:`Jira Credentials`})]}),(0,q.jsx)(gs,{className:`flex-1 min-h-0`,children:(0,q.jsx)(`div`,{className:`p-3`,children:g===`watchers`?C?(0,q.jsx)(Hl,{configId:C.id}):(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground text-center py-4`,children:`Configure Jira credentials first.`}):S?(0,q.jsx)(Wl,{projectId:S.id,existing:C?{baseUrl:C.baseUrl,email:C.email,hasToken:C.hasToken}:null}):(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground text-center py-4`,children:`Project not found in database.`})})})]}):(0,q.jsx)(`div`,{className:`flex items-center justify-center h-32 p-4`,children:(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground text-center`,children:`Select a project to use Jira`})})}function ql({message:e,action:t,onAction:n}){return(0,q.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 gap-3`,children:[(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground text-center`,children:e}),t&&n&&(0,q.jsxs)(R,{size:`sm`,variant:`outline`,className:`min-h-[44px]`,onClick:n,children:[(0,q.jsx)(ke,{className:`size-4 mr-1.5`}),` `,t]})]})}var Jl=600,Yl=null,Xl=0,Zl=null,Ql=[],$l=!1,eu=new Set;function tu(){for(let e of eu)e()}function nu(){if(Yl)return;let e=Pe(),t=e?`?token=${encodeURIComponent(e)}`:``,n=new EventSource(`/api/system/resources/stream${t}`);n.addEventListener(`snapshot`,e=>{try{let t=JSON.parse(e.data);Zl=t,Ql=[...Ql,t],Ql.length>Jl&&(Ql=Ql.slice(-Jl)),$l=!0,tu()}catch{}}),n.onerror=()=>{$l=!1,Yl&&=(Yl.close(),null),tu(),Xl>0&&setTimeout(()=>{!Yl&&Xl>0&&nu()},5e3)},n.onopen=()=>{$l=!0,tu()},Yl=n}function ru(){Yl&&(Yl.close(),Yl=null,$l=!1,tu())}function iu(){let[,e]=(0,K.useState)(0),t=(0,K.useRef)(!0),n=(0,K.useCallback)(()=>{t.current&&e(e=>e+1)},[]);return(0,K.useEffect)(()=>(t.current=!0,eu.add(n),Xl++,Xl===1&&nu(),()=>{t.current=!1,eu.delete(n),Xl--,Xl===0&&ru()}),[n]),{latest:Zl,history:Ql,isConnected:$l}}function au(e){return e>80?`text-red-500`:e>50?`text-yellow-500`:`text-green-500`}var ou=(0,K.memo)(function(){let{latest:e,isConnected:t}=iu(),n=W(e=>e.openTab),r=xs(),i=()=>{n({type:`system-monitor`,title:`System Monitor`,projectId:null,closable:!0})};if(!t||!e)return(0,q.jsxs)(`button`,{onClick:i,className:`flex items-center gap-1.5 px-2 py-1 text-[10px] text-text-subtle hover:text-text-secondary transition-colors w-full`,children:[(0,q.jsx)(mt,{className:`size-3 opacity-50`}),(0,q.jsx)(`span`,{className:`opacity-50`,children:`Connecting...`})]});let{cpu:a,ramMB:o,processCount:s}=e.total;return(0,q.jsxs)(`button`,{onClick:i,className:`flex items-center gap-1.5 px-2 py-1 text-[10px] hover:bg-surface-hover transition-colors w-full cursor-pointer`,title:`Open System Monitor`,children:[(0,q.jsx)(mt,{className:H(`size-3`,au(a))}),(0,q.jsx)(`span`,{className:au(a),children:r?`${a.toFixed(0)}%`:`CPU ${a.toFixed(1)}%`}),(0,q.jsx)(`span`,{className:`text-text-subtle`,children:`|`}),(0,q.jsx)(`span`,{className:`text-text-secondary`,children:o<1024?`${o.toFixed(0)}MB`:`${(o/1024).toFixed(1)}GB`}),!r&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`span`,{className:`text-text-subtle`,children:`|`}),(0,q.jsxs)(`span`,{className:`text-text-subtle`,children:[s,` proc`]})]})]})}),su=[{id:`explorer`,label:`Explorer`,icon:Mt},{id:`search`,label:`Search`,icon:Te},{id:`git`,label:`Git`,icon:Rt},{id:`database`,label:`Database`,icon:fe},{id:`settings`,label:`Settings`,icon:Cn}];function cu({onResize:e}){let t=(0,K.useRef)(!1);return(0,q.jsx)(`div`,{className:`absolute right-0 top-0 bottom-0 w-1 cursor-col-resize hover:bg-primary/30 active:bg-primary/50 transition-colors z-10`,onPointerDown:(0,K.useCallback)(e=>{e.preventDefault(),t.current=!0,e.currentTarget.setPointerCapture(e.pointerId),document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`},[]),onPointerMove:(0,K.useCallback)(n=>{t.current&&e(n.clientX-48)},[e]),onPointerUp:(0,K.useCallback)(e=>{t.current=!1,e.currentTarget.releasePointerCapture(e.pointerId),document.body.style.cursor=``,document.body.style.userSelect=``},[])})}var lu=(0,K.memo)(function(){let{activeProject:e}=We(hs(e=>({activeProject:e.activeProject}))),t=Fe(e=>e.sidebarCollapsed),n=Fe(e=>e.sidebarWidth),r=Fe(e=>e.toggleSidebar),i=Fe(e=>e.setSidebarWidth),a=Fe(e=>e.sidebarActiveTab),o=Fe(e=>e.setSidebarActiveTab),s=Fe(e=>e.jiraEnabled),c=No(e=>e.contributions),l=Rs(t=>e?.name?t.counts.get(e.name)??0:0),u=X(e=>e.unreadCount);zs(e?.name,a===`git`);let d=(0,K.useMemo)(()=>{let e=[...su];if(s){let t=e.findIndex(e=>e.id===`settings`);e.splice(t,0,{id:`jira`,label:`Jira`,icon:ae})}if(c?.views){let t=c.views.sidebar??c.views.explorer??[];for(let n of t)e.push({id:`ext:${n.id}`,label:n.name,icon:hn})}return e},[c,s]);return t?(0,q.jsx)(`aside`,{className:`hidden md:flex flex-col w-10 min-w-10 bg-background border-r border-border`,children:(0,q.jsx)(`button`,{onClick:r,title:`Expand sidebar (⌘B)`,className:`flex items-center justify-center h-[41px] border-b border-border text-text-secondary hover:text-foreground transition-colors`,children:(0,q.jsx)(un,{className:`size-4`})})}):(0,q.jsxs)(`aside`,{className:`hidden md:flex flex-col bg-background border-r border-border overflow-hidden relative`,style:{width:n,minWidth:200,maxWidth:600},children:[(0,q.jsxs)(`div`,{className:`flex items-center h-[41px] border-b border-border shrink-0`,children:[d.map(e=>{let t=e.icon;return(0,q.jsxs)(`button`,{onClick:()=>o(e.id),className:H(`flex-1 flex items-center justify-center gap-1.5 h-full text-xs transition-colors border-b-2 -mb-px relative`,a===e.id?`border-primary text-primary font-medium`:`border-transparent text-text-secondary hover:text-foreground`),children:[(0,q.jsx)(t,{className:`size-3.5`,title:e.label}),e.id===`git`&&l>0&&(0,q.jsx)(`span`,{className:`absolute top-1 right-1 min-w-[16px] h-4 px-1 flex items-center justify-center rounded-full bg-primary text-primary-foreground text-[10px] font-medium leading-none`,children:l>99?`99+`:l}),e.id===`jira`&&u>0&&(0,q.jsx)(`span`,{className:`absolute top-1 right-1 min-w-[16px] h-4 px-1 flex items-center justify-center rounded-full bg-primary text-primary-foreground text-[10px] font-medium leading-none`,children:u>99?`99+`:u})]},e.id)}),(0,q.jsx)(`button`,{onClick:r,title:`Collapse sidebar (⌘B)`,className:`flex items-center justify-center w-8 h-full text-text-subtle hover:text-text-secondary transition-colors shrink-0`,children:(0,q.jsx)(ln,{className:`size-3.5`})})]}),(0,q.jsxs)(`div`,{className:`flex-1 overflow-y-auto min-h-0`,children:[a===`explorer`&&(e?(0,q.jsx)(Xs,{}):(0,q.jsx)(`div`,{className:`flex items-center justify-center h-24 p-4`,children:(0,q.jsx)(`p`,{className:`text-xs text-text-subtle text-center`,children:`Select a project to browse files`})})),a===`git`&&(0,q.jsx)(uc,{metadata:{projectName:e?.name}}),a===`search`&&(0,q.jsx)(Dl,{}),a===`database`&&(0,q.jsx)(Cl,{}),a===`jira`&&(0,q.jsx)(Kl,{}),a===`settings`&&(0,q.jsx)(nl,{}),typeof a==`string`&&a.startsWith(`ext:`)&&(0,q.jsx)(jl,{viewId:a.slice(4),className:`h-full`})]}),(0,q.jsx)(`div`,{className:`shrink-0 border-t border-border`,children:(0,q.jsx)(ou,{})}),(0,q.jsx)(cu,{onResize:i})]})}),uu=Object.defineProperty,du=Object.getOwnPropertySymbols,fu=Object.prototype.hasOwnProperty,pu=Object.prototype.propertyIsEnumerable,mu=(e,t,n)=>t in e?uu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,hu=(e,t)=>{for(var n in t||={})fu.call(t,n)&&mu(e,n,t[n]);if(du)for(var n of du(t))pu.call(t,n)&&mu(e,n,t[n]);return e},gu=(e,t)=>{var n={};for(var r in e)fu.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&du)for(var r of du(e))t.indexOf(r)<0&&pu.call(e,r)&&(n[r]=e[r]);return n},_u;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+(t?1:0),n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(_u||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(_u||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(_u||={});var vu=_u,yu={L:vu.QrCode.Ecc.LOW,M:vu.QrCode.Ecc.MEDIUM,Q:vu.QrCode.Ecc.QUARTILE,H:vu.QrCode.Ecc.HIGH},bu=128,xu=`L`,Su=`#FFFFFF`,Cu=`#000000`,wu=!1,Tu=1,Eu=4,Du=0,Ou=.1;function ku(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function Au(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function ju(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*Ou),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function Mu(e,t){return t==null?e?Eu:Du:Math.max(Math.floor(t),0)}function Nu({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=K.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...vu.QrSegment.makeSegments(t)),e),[]);return vu.QrCode.encodeSegments(r,yu[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=K.useMemo(()=>{let e=c.getModules(),t=Mu(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:ju(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var Pu=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),Fu=K.forwardRef(function(e,t){let n=e,{value:r,size:i=bu,level:a=xu,bgColor:o=Su,fgColor:s=Cu,includeMargin:c=wu,minVersion:l=Tu,boostLevel:u,marginSize:d,imageSettings:f}=n,p=gu(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=gu(p,[`style`]),g=f?.src,_=K.useRef(null),v=K.useRef(null),y=K.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=K.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=Nu({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});K.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=Au(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,Pu?t.fill(new Path2D(ku(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),K.useEffect(()=>{x(!1)},[g]);let E=hu({height:i,width:i},m),D=null;return g!=null&&(D=K.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),K.createElement(K.Fragment,null,K.createElement(`canvas`,hu({style:E,height:i,width:i,ref:y,role:`img`},h)),D)});Fu.displayName=`QRCodeCanvas`;var Iu=K.forwardRef(function(e,t){let n=e,{value:r,size:i=bu,level:a=xu,bgColor:o=Su,fgColor:s=Cu,includeMargin:c=wu,minVersion:l=Tu,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=gu(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=Nu({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=Au(g,v.excavation)),b=K.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=ku(y,h);return K.createElement(`svg`,hu({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&K.createElement(`title`,null,d),K.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),K.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});Iu.displayName=`QRCodeSVG`;function Lu({onClose:e}){let[t,n]=(0,K.useState)(null),[r,i]=(0,K.useState)(null),[a,o]=(0,K.useState)(!0),[s,c]=(0,K.useState)(!1),[l,u]=(0,K.useState)(!1),[d,f]=(0,K.useState)(!1),[p,m]=(0,K.useState)(null),[h,g]=(0,K.useState)(null),[_,v]=(0,K.useState)(null),[y,b]=(0,K.useState)(!1);(0,K.useEffect)(()=>{(async()=>{try{let[e,t]=await Promise.all([V.get(`/api/cloud/status`),V.get(`/api/tunnel`)]);n(e),i(t)}catch{}o(!1)})()},[]);let x=(0,K.useCallback)(e=>{navigator.clipboard.writeText(e),g(e),setTimeout(()=>g(null),2e3)},[]),S=(0,K.useCallback)(async()=>{c(!0),m(null);try{i({active:!0,url:(await V.post(`/api/tunnel/start`,{})).url,localUrl:r?.localUrl??null}),n(await V.get(`/api/cloud/status`))}catch(e){m(e instanceof Error?e.message:`Failed to start tunnel`)}finally{c(!1)}},[r]),C=(0,K.useCallback)(async()=>{m(null);try{let{cloud_url:e}=await V.get(`/api/cloud/login-url`),t=await fetch(`${e}/auth/device-code`,{method:`POST`,headers:{"Content-Type":`application/json`}});if(!t.ok)throw Error(`Failed to get device code`);let r=await t.json();v({userCode:r.user_code,verifyUrl:r.verification_uri}),b(!0);let i=(r.interval||5)*1e3,a=Date.now()+r.expires_in*1e3,o=setInterval(async()=>{if(Date.now()>a){clearInterval(o),b(!1),v(null),m(`Login expired. Try again.`);return}try{let t=await fetch(`${e}/auth/device-code/poll`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({device_code:r.device_code})});if(!t.ok)return;let i=await t.json();i.status===`approved`&&i.access_token&&i.email&&(clearInterval(o),b(!1),v(null),await V.post(`/api/cloud/login`,{access_token:i.access_token,email:i.email,cloud_url:e}),n(await V.get(`/api/cloud/status`)))}catch{}},i)}catch(e){m(e instanceof Error?e.message:`Failed to start login`),b(!1),v(null)}},[]),w=(0,K.useCallback)(async()=>{u(!0),m(null);try{r?.active||i({active:!0,url:(await V.post(`/api/tunnel/start`,{})).url,localUrl:r?.localUrl??null}),await V.post(`/api/cloud/link`,{}),n(await V.get(`/api/cloud/status`))}catch(e){m(e instanceof Error?e.message:`Failed to link device`)}finally{u(!1)}},[r]),T=(0,K.useCallback)(async()=>{if(confirm(`Unlink this device from PPM Cloud? It will no longer appear on your cloud dashboard.`)){f(!0);try{await V.post(`/api/cloud/unlink`,{}),n(await V.get(`/api/cloud/status`))}catch{}f(!1)}},[]),E=(0,K.useCallback)(async()=>{let e=t?.linked?`Sign out from PPM Cloud? This will also unlink your device.`:`Sign out from PPM Cloud?`;if(confirm(e)){if(t?.linked)try{await V.post(`/api/cloud/unlink`,{})}catch{}await V.post(`/api/cloud/logout`,{}),n(e=>e?{...e,logged_in:!1,email:null,linked:!1,device_name:null,device_id:null}:null)}},[t?.linked]),D=r?.url||t?.tunnel_url;return(0,q.jsxs)(`div`,{className:`w-72 bg-background border border-border rounded-lg shadow-lg p-3 space-y-3`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(ft,{className:`size-4 text-primary`}),(0,q.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:`PPM Cloud`})]}),(0,q.jsx)(`button`,{onClick:e,className:`text-text-subtle hover:text-foreground`,children:(0,q.jsx)(Ae,{className:`size-3.5`})})]}),a&&(0,q.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground text-xs py-2`,children:[(0,q.jsx)(G,{className:`size-4 animate-spin`}),(0,q.jsx)(`span`,{children:`Loading...`})]}),!a&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`space-y-1.5`,children:t?.logged_in?(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,q.jsx)(`div`,{className:`size-2 rounded-full bg-green-500 shrink-0`}),(0,q.jsx)(`span`,{className:`text-xs text-foreground truncate`,children:t.email})]}),(0,q.jsx)(`button`,{onClick:E,className:`text-text-subtle hover:text-foreground p-1 rounded hover:bg-muted transition-colors shrink-0`,title:`Sign out`,children:(0,q.jsx)(Qt,{className:`size-3`})})]}):_?(0,q.jsxs)(`div`,{className:`space-y-2 text-center`,children:[(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Open the link below and enter the code:`}),(0,q.jsx)(`div`,{className:`font-mono text-2xl font-bold tracking-[0.3em] text-primary`,children:_.userCode}),(0,q.jsx)(`a`,{href:_.verifyUrl,target:`_blank`,rel:`noopener noreferrer`,className:`text-xs text-primary hover:underline`,children:_.verifyUrl}),y&&(0,q.jsxs)(`div`,{className:`flex items-center justify-center gap-1.5 text-xs text-muted-foreground`,children:[(0,q.jsx)(G,{className:`size-3 animate-spin`}),(0,q.jsx)(`span`,{children:`Waiting for verification...`})]})]}):(0,q.jsxs)(`button`,{onClick:C,className:`w-full flex items-center justify-center gap-1.5 px-3 py-2 text-xs font-medium rounded-md border border-border hover:bg-muted transition-colors`,children:[(0,q.jsx)(ft,{className:`size-3.5`}),`Sign in to PPM Cloud`]})}),t?.logged_in&&(0,q.jsx)(`div`,{className:`space-y-1.5`,children:t.linked?(0,q.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,q.jsx)(Yt,{className:`size-3 text-primary shrink-0`}),(0,q.jsx)(`span`,{className:`text-foreground truncate`,children:t.device_name})]}),(0,q.jsx)(`button`,{onClick:T,disabled:d,className:`text-text-subtle hover:text-destructive p-1 rounded hover:bg-muted transition-colors shrink-0`,title:`Unlink device`,children:d?(0,q.jsx)(G,{className:`size-3 animate-spin`}):(0,q.jsx)(Mn,{className:`size-3`})})]}):(0,q.jsx)(`button`,{onClick:w,disabled:l,className:`w-full flex items-center justify-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90 transition-colors disabled:opacity-50`,children:l?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(G,{className:`size-3.5 animate-spin`}),` Linking...`]}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Yt,{className:`size-3.5`}),` Link this machine`]})})}),(0,q.jsx)(`div`,{className:`border-t border-border`}),r?.localUrl&&(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:`Local Network`}),(0,q.jsx)(Ru,{url:r.localUrl,copied:h,onCopy:x})]}),!D&&!s&&(0,q.jsxs)(`button`,{onClick:S,className:`w-full flex items-center justify-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90 transition-colors`,children:[(0,q.jsx)(wn,{className:`size-3.5`}),`Start Sharing`]}),s&&(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-2`,children:[(0,q.jsx)(G,{className:`size-5 animate-spin text-primary`}),(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Starting tunnel...`})]}),D&&(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:`Public URL`}),(0,q.jsx)(`div`,{className:`flex justify-center`,children:(0,q.jsx)(`div`,{className:`p-3 rounded-lg`,style:{backgroundColor:`#ffffff`,colorScheme:`light`},children:(0,q.jsx)(Iu,{value:D,size:180,bgColor:`#ffffff`,fgColor:`#000000`,level:`L`,style:{display:`block`}})})}),(0,q.jsx)(Ru,{url:D,copied:h,onCopy:x})]}),t?.logged_in&&t.linked&&(0,q.jsxs)(`a`,{href:t.cloud_url+`/dashboard`,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center justify-center gap-1.5 w-full px-3 py-1.5 text-xs text-muted-foreground hover:text-foreground rounded-md border border-border hover:bg-muted transition-colors`,children:[(0,q.jsx)(vt,{className:`size-3`}),`Open Cloud Dashboard`]}),p&&(0,q.jsx)(`p`,{className:`text-xs text-destructive`,children:p})]})]})}function Ru({url:e,copied:t,onCopy:n}){return(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(`input`,{readOnly:!0,value:e,className:`flex-1 text-xs font-mono text-foreground bg-muted px-2 py-1.5 rounded border border-border truncate`,onClick:e=>e.target.select()}),(0,q.jsx)(`button`,{onClick:()=>n(e),className:`flex items-center justify-center size-7 rounded border border-border text-muted-foreground bg-muted hover:bg-accent hover:text-foreground transition-colors shrink-0`,title:`Copy URL`,children:t===e?(0,q.jsx)(le,{className:`size-3.5 text-primary`}):(0,q.jsx)(pt,{className:`size-3.5`})})]})}var zu=[`linear-gradient(135deg, #667eea, #764ba2)`,`linear-gradient(135deg, #f5576c, #f093fb)`,`linear-gradient(135deg, #4facfe, #00c6ff)`,`linear-gradient(135deg, #43e97b, #38f9d7)`,`linear-gradient(135deg, #fa709a, #fee140)`,`linear-gradient(135deg, #a18cd1, #6a3de8)`,`linear-gradient(135deg, #fd7043, #ff8a65)`,`linear-gradient(135deg, #26c6da, #0097a7)`,`linear-gradient(135deg, #ab47bc, #7b1fa2)`,`linear-gradient(135deg, #ef5350, #b71c1c)`,`linear-gradient(135deg, #1976d2, #42a5f5)`,`linear-gradient(135deg, #2e7d32, #66bb6a)`];function Bu(e,t){return e??zu[t%zu.length]}function Vu({expanded:e}){let t=Aa(e=>e.notifications),n=Aa(e=>e.clearAll),r=Aa(ja),{projects:i,setActiveProject:a,customOrder:o}=We(hs(e=>({projects:e.projects,setActiveProject:e.setActiveProject,customOrder:e.customOrder}))),s=Ge(i,o),c=W(e=>e.openTab),[l,u]=(0,K.useState)(!1),d=(0,K.useRef)(null),[f,p]=(0,K.useState)(null),m=()=>{if(!l&&d.current){let e=d.current.getBoundingClientRect();p({left:e.right+6,bottom:window.innerHeight-e.bottom})}u(!l)},h=(e,t)=>{let n=i.find(e=>e.name===t);n&&a(n),c({type:`chat`,title:`Chat`,projectId:t,metadata:{projectName:t,sessionId:e,providerId:`claude`},closable:!0}),u(!1)},g=e=>{let t=s.findIndex(t=>t.name===e);if(t!==-1)return Bu(s[t].color,t)},_=new Map;for(let[e,n]of t){let t=n.projectName||`Unknown`;_.has(t)||_.set(t,[]),_.get(t).push({sessionId:e,count:n.count,type:n.type,sessionTitle:n.sessionTitle})}return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`button`,{ref:d,onClick:m,className:H(`relative flex items-center rounded-md transition-colors`,e?`w-full h-8 gap-2 px-2 justify-start`:`justify-center size-8`,l?`text-primary bg-primary/10`:`text-text-subtle hover:text-foreground hover:bg-surface-elevated`),children:[(0,q.jsx)(nt,{className:`size-4 shrink-0`}),e&&(0,q.jsx)(`span`,{className:`text-xs whitespace-nowrap`,children:`Notifications`}),r>0&&(0,q.jsx)(`span`,{className:H(`absolute flex items-center justify-center text-[9px] font-bold text-white bg-red-500 rounded-full min-w-[16px] h-4 px-1`,e?`right-1.5`:`-top-1 -right-1`),children:r})]}),l&&f&&(0,zn.createPortal)((0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>u(!1)}),(0,q.jsxs)(`div`,{className:`fixed z-50 w-72 max-h-80 overflow-y-auto rounded-lg border border-border bg-background shadow-lg`,style:{left:f.left,bottom:f.bottom},children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b border-border`,children:[(0,q.jsx)(`span`,{className:`text-xs font-medium text-foreground`,children:r>0?`${r} unread session${r>1?`s`:``}`:`No unread`}),r>0&&(0,q.jsxs)(`button`,{onClick:()=>{n(),u(!1)},className:`text-[10px] text-text-subtle hover:text-foreground transition-colors flex items-center gap-1`,children:[(0,q.jsx)(M,{className:`size-3`}),`Clear all`]})]}),r===0?(0,q.jsx)(`div`,{className:`px-3 py-4 text-center text-xs text-text-subtle`,children:`All caught up`}):(0,q.jsx)(`div`,{className:`py-1`,children:[..._.entries()].map(([e,t])=>(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:`px-3 py-1 text-[10px] font-medium text-text-subtle uppercase tracking-wider flex items-center gap-1.5`,children:[(0,q.jsx)(`span`,{className:`size-2 rounded-full shrink-0`,style:{background:g(e)||`currentColor`}}),e]}),t.map(({sessionId:t,type:n,sessionTitle:r})=>(0,q.jsx)(`button`,{onClick:()=>h(t,e),className:H(`w-full px-3 py-1.5 text-left text-[11px] text-foreground truncate hover:bg-surface-elevated transition-colors`,ka(n)),children:r||`${t.slice(0,12)}...`},t))]},e))})]})]}),document.body)]})}var Hu=`hienlh/ppm`;async function Uu(e,t){let n=`(could not fetch)`;try{let e=Pe(),t=await(await fetch(`/api/logs/recent`,e?{headers:{Authorization:`Bearer ${e}`}}:{})).json();t.ok&&(n=t.data.logs||`(empty)`)}catch{}let r=``;if(t?.sessionId&&t?.projectName)try{let e=await V.get(`${B(t.projectName)}/chat/sessions/${t.sessionId}/logs?tail=100`);e.logs&&(r=e.logs)}catch{}return[`## Environment`,`- PPM: v${e??`unknown`}`,`- Browser: ${navigator.userAgent}`,``,`## Description`,`<!-- Describe the bug -->`,``,`## Steps to Reproduce`,`1. `,``,`## Expected Behavior`,``,...r?[`## Chat Session Logs (${t?.sessionId?.slice(0,8)})`,"```",r,"```",``]:[],`## Server Logs (last 30 lines)`,"```",n,"```"].join(`
19
- `)}function Wu(e){let t=`https://github.com/${Hu}/issues/new?title=bug%3A%20&body=${encodeURIComponent(e)}`;window.open(t,`_blank`)}async function Gu(e){try{return await navigator.clipboard.writeText(e),!0}catch{return!1}}function Ku(e,t){Uu(e,t).then(e=>{window.dispatchEvent(new CustomEvent(`open-bug-report`,{detail:e}))})}function qu(e,t){let n=e.split(/[-_.\s]+/).filter(Boolean),r=(n[0]?.[0]??e[0]??`?`).toUpperCase(),i=n.length>1?r+(n[1][0]??``).toUpperCase():r,a=t.filter(t=>t!==e);if(!a.map(e=>(e.split(/[-_.\s]+/).filter(Boolean)[0]?.[0]??e[0]??``).toUpperCase()).includes(r))return r;if(!a.map(e=>{let t=e.split(/[-_.\s]+/).filter(Boolean),n=(t[0]?.[0]??e[0]??``).toUpperCase(),r=t.length>1?(t[1][0]??``).toUpperCase():n;return t.length>1?n+r:n}).includes(i))return i;let o=t.indexOf(e);return String(o>=0?o+1:`?`)}function Ju({onSuccess:e,onCancel:t,footerClassName:n}){let{addProject:r}=We(hs(e=>({addProject:e.addProject}))),[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(``),[c,l]=(0,K.useState)([]),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(!1),[m,h]=(0,K.useState)(!1),[g,_]=(0,K.useState)(``),v=(0,K.useRef)(null),y=(0,K.useRef)(null);(0,K.useEffect)(()=>{if(v.current&&clearTimeout(v.current),!i.trim()){l([]),d(!1);return}v.current=setTimeout(async()=>{p(!0);try{l(await V.get(`/api/projects/suggest-dirs?q=${encodeURIComponent(i)}`)??[]),d(!0)}catch{l([])}finally{p(!1)}},250)},[i]),(0,K.useEffect)(()=>{function e(e){y.current&&!y.current.contains(e.target)&&d(!1)}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);function b(e){a(e.path),o||s(e.name),d(!1)}async function x(t){if(t?.preventDefault(),!i.trim()){_(`Path is required`);return}_(``),h(!0);try{await r(i.trim(),o.trim()||void 0),e()}catch(e){_(e instanceof Error?e.message:`Failed to add project`)}finally{h(!1)}}return(0,q.jsxs)(`form`,{onSubmit:x,className:`flex flex-col gap-3`,children:[(0,q.jsxs)(`div`,{ref:y,className:`relative`,children:[(0,q.jsx)(`label`,{className:`block text-xs font-medium text-foreground mb-1`,children:`Project path`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5 items-center`,children:[(0,q.jsxs)(`div`,{className:`relative flex items-center flex-1`,children:[(0,q.jsx)(Mt,{className:`absolute left-2.5 size-3.5 text-text-subtle pointer-events-none`}),(0,q.jsx)(`input`,{type:`text`,value:i,onChange:e=>{a(e.target.value),_(``)},onFocus:()=>c.length>0&&d(!0),placeholder:`/path/to/project`,className:`w-full pl-8 pr-3 py-2 rounded-md border border-border bg-background text-sm focus:outline-none focus:ring-1 focus:ring-primary`,autoFocus:!0,autoComplete:`off`}),f&&(0,q.jsx)(G,{className:`absolute right-2.5 size-3.5 text-text-subtle animate-spin`})]}),(0,q.jsx)(_l,{mode:`folder`,onSelect:e=>{a(e),o||s(e.split(`/`).pop()??``),_(``)}})]}),u&&c.length>0&&(0,q.jsx)(`div`,{className:`absolute top-full left-0 right-0 mt-1 z-10 bg-popover border border-border rounded-md shadow-md max-h-48 overflow-y-auto`,children:c.map(e=>(0,q.jsxs)(`button`,{type:`button`,onMouseDown:()=>b(e),className:`w-full flex flex-col items-start px-3 py-2 text-left hover:bg-accent/50 transition-colors`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium truncate w-full`,children:e.name}),(0,q.jsx)(`span`,{className:`text-xs text-text-subtle truncate w-full`,children:e.path})]},e.path))})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`label`,{className:`block text-xs font-medium text-foreground mb-1`,children:[`Display name `,(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:`(optional)`})]}),(0,q.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),placeholder:`my-project`,className:`w-full px-3 py-2 rounded-md border border-border bg-background text-sm focus:outline-none focus:ring-1 focus:ring-primary`})]}),g&&(0,q.jsx)(`p`,{className:`text-xs text-destructive`,children:g}),(0,q.jsxs)(`div`,{className:H(`flex justify-end gap-2 pt-1`,n),children:[(0,q.jsx)(`button`,{type:`button`,onClick:t,className:`px-3 py-1.5 text-sm text-text-secondary hover:text-foreground transition-colors`,children:`Cancel`}),(0,q.jsx)(`button`,{type:`submit`,disabled:m||!i.trim(),className:`px-3 py-1.5 text-sm bg-primary text-white rounded-md hover:bg-primary/90 transition-colors disabled:opacity-50`,children:m?`Adding…`:`Add Project`})]})]})}var Yu=(0,K.memo)(function({name:e,color:t,active:n,allNames:r}){let i=qu(e,r),a=Aa((0,K.useMemo)(()=>Ma(e),[e]));return(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(`div`,{className:H(`size-10 rounded-full flex items-center justify-center text-xs font-bold text-white select-none shrink-0`,n&&`ring-2 ring-primary ring-offset-2 ring-offset-background`),style:{background:t},children:i}),a&&(0,q.jsx)(`div`,{className:H(`absolute -top-0.5 -right-0.5 size-2.5 rounded-full border-2 border-background`,Da(a))})]})});function Xu({current:e,onChange:t}){return(0,q.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:zu.map(n=>(0,q.jsx)(`button`,{type:`button`,onClick:()=>t(n),className:H(`size-8 rounded-full border-2 transition-all`,e===n?`border-primary scale-110`:`border-transparent hover:scale-105`),style:{background:n}},n))})}var Zu=(0,K.memo)(function(){let{projects:e,activeProject:t,setActiveProject:n,setProjectColor:r,reorderProjects:i,renameProject:a,deleteProject:o,customOrder:s}=We(hs(e=>({projects:e.projects,activeProject:e.activeProject,setActiveProject:e.setActiveProject,setProjectColor:e.setProjectColor,reorderProjects:e.reorderProjects,renameProject:e.renameProject,deleteProject:e.deleteProject,customOrder:e.customOrder})));W(e=>e.openTab);let c=Fe(e=>e.version),l=(0,K.useCallback)(()=>Ku(c),[c]),[u,d]=(0,K.useState)(null),[f,p]=(0,K.useState)(null),m=Ge(e,s),h=m.map(e=>e.name),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(``),[b,x]=(0,K.useState)(``),[S,C]=(0,K.useState)(!1),[w,T]=(0,K.useState)(``),[E,D]=(0,K.useState)(!1),[O,k]=(0,K.useState)(!1),[ee,A]=(0,K.useState)(``),[te,ne]=(0,K.useState)(``),[j,M]=(0,K.useState)(!1),[N,ie]=(0,K.useState)(!1),P=(0,K.useRef)(null),F=(0,K.useRef)(null),I=(0,K.useRef)(!1),oe=(0,K.useRef)(!1),L=(0,K.useRef)(typeof window<`u`&&window.matchMedia(`(hover: hover) and (pointer: fine)`).matches);(0,K.useEffect)(()=>()=>{P.current&&clearTimeout(P.current),F.current&&clearTimeout(F.current)},[]);let se=(0,K.useCallback)(()=>{L.current&&(I.current=!0,F.current&&=(clearTimeout(F.current),null),P.current=setTimeout(()=>ie(!0),150))},[]),ce=(0,K.useCallback)(()=>{L.current&&(I.current=!1,P.current&&=(clearTimeout(P.current),null),!oe.current&&(F.current=setTimeout(()=>ie(!1),300)))},[]),le=(0,K.useCallback)(e=>{oe.current=e,!e&&!I.current&&(F.current=setTimeout(()=>ie(!1),300))},[]),ue=(0,K.useCallback)(e=>{y(e),x(e),_(!0)},[]),de=(0,K.useCallback)(e=>{T(e),C(!0)},[]),fe=(0,K.useCallback)((e,t)=>{A(e),ne(t),k(!0)},[]);async function pe(){if(!b.trim()||b===v){_(!1);return}try{await a(v,b.trim())}catch{}_(!1)}async function he(){try{await o(w)}catch{}C(!1)}async function ge(){M(!0);try{await r(ee,te),k(!1)}catch(e){console.error(`Failed to save color:`,e)}finally{M(!1)}}function R(){D(!0)}let[z,xe]=(0,K.useState)(!1),Se=(0,K.useRef)(null),[Ce,we]=(0,K.useState)(null);(0,K.useEffect)(()=>{if(!z||!Se.current){we(null);return}let e=Se.current.getBoundingClientRect();we({left:e.right+6,bottom:window.innerHeight-e.bottom})},[z]);function Te(){let{sidebarCollapsed:e,toggleSidebar:t,setSidebarActiveTab:n}=Fe.getState();e&&t(),n(`settings`)}return(0,q.jsx)(`div`,{className:`hidden md:block relative w-[52px] min-w-[52px]`,onMouseEnter:se,onMouseLeave:ce,children:(0,q.jsxs)(`aside`,{className:H(`absolute inset-y-0 left-0 flex flex-col bg-background border-r border-border overflow-hidden transition-[width] duration-200 ease-out`,N?`w-[240px] shadow-lg z-30`:`w-[52px]`),children:[(0,q.jsxs)(`div`,{className:`shrink-0 flex flex-col items-center justify-center h-[41px] border-b border-border gap-0.5`,children:[(0,q.jsx)(`span`,{className:`text-[11px] font-bold text-primary leading-none`,children:`PPM`}),c&&(0,q.jsxs)(`span`,{className:`text-[8px] text-text-subtle leading-none`,children:[`v`,c]})]}),(0,q.jsxs)(`div`,{className:H(`flex-1 overflow-y-auto py-2 flex flex-col gap-2 min-h-0`,N?`items-stretch px-1.5`:`items-center`),children:[m.map((e,r)=>{let a=Bu(e.color,r),o=t?.name===e.name;return(0,q.jsxs)(ga,{onOpenChange:le,children:[(0,q.jsx)(_a,{asChild:!0,children:(0,q.jsxs)(`button`,{draggable:!0,onDragStart:()=>d(r),onDragOver:e=>{e.preventDefault(),p(r)},onDragLeave:()=>p(null),onDragEnd:()=>{d(null),p(null)},onDrop:()=>{if(u!=null&&u!==r){let e=m.map(e=>e.name),[t]=e.splice(u,1);e.splice(r,0,t),i(e)}d(null),p(null)},onClick:()=>n(e),className:H(`p-1 rounded-lg transition-all`,!N&&`hover:bg-surface-elevated`,u===r&&`opacity-40 scale-90`,f===r&&u!==r&&`ring-2 ring-accent`,N&&`w-full flex items-center gap-2 px-2 hover:bg-muted/50`),children:[(0,q.jsx)(Yu,{name:e.name,color:a,active:o,allNames:h}),N&&(0,q.jsxs)(`div`,{className:`min-w-0 text-left`,children:[(0,q.jsx)(`p`,{className:`text-sm font-medium truncate`,children:e.name}),(0,q.jsx)(`p`,{className:`text-[11px] text-text-subtle truncate [direction:rtl] text-left`,children:e.path})]})]})}),(0,q.jsxs)(xa,{children:[(0,q.jsxs)(Sa,{onClick:()=>ue(e.name),children:[(0,q.jsx)(re,{className:`size-3.5 mr-2`}),` Rename`]}),(0,q.jsxs)(Sa,{onClick:()=>fe(e.name,a),children:[(0,q.jsx)(cn,{className:`size-3.5 mr-2`}),` Change Color`]}),(0,q.jsxs)(Sa,{onClick:()=>navigator.clipboard.writeText(e.path),children:[(0,q.jsx)(pt,{className:`size-3.5 mr-2`}),` Copy Path`]}),(0,q.jsx)(Ca,{}),(0,q.jsxs)(Sa,{className:`text-destructive focus:text-destructive`,onClick:()=>de(e.name),children:[(0,q.jsx)(Oe,{className:`size-3.5 mr-2`}),` Delete`]})]})]},e.name)}),(0,q.jsxs)(`button`,{onClick:R,className:H(`border-2 border-dashed border-border flex items-center justify-center text-text-subtle hover:border-primary hover:text-primary transition-colors`,N?`w-full h-10 gap-2 rounded-lg px-2`:`size-10 rounded-full`),children:[(0,q.jsx)(ke,{className:`size-4 shrink-0`}),N&&(0,q.jsx)(`span`,{className:`text-sm whitespace-nowrap`,children:`Add Project`})]})]}),(0,q.jsxs)(`div`,{className:H(`shrink-0 flex flex-col gap-1 py-2 border-t border-border`,N?`items-stretch px-1.5`:`items-center`),children:[(0,q.jsx)(Vu,{expanded:N}),(0,q.jsxs)(`button`,{ref:Se,onClick:()=>xe(!z),className:H(`flex items-center rounded-md transition-colors`,N?`w-full h-8 gap-2 px-2 justify-start`:`justify-center size-8`,z?`text-primary bg-primary/10`:`text-text-subtle hover:text-foreground hover:bg-surface-elevated`),children:[(0,q.jsx)(ft,{className:`size-4 shrink-0`}),N&&(0,q.jsx)(`span`,{className:`text-xs whitespace-nowrap`,children:`Cloud & Share`})]}),z&&Ce&&(0,zn.createPortal)((0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>xe(!1)}),(0,q.jsx)(`div`,{className:`fixed z-50`,style:{left:Ce.left,bottom:Ce.bottom},children:(0,q.jsx)(Lu,{onClose:()=>xe(!1)})})]}),document.body),(0,q.jsxs)(`button`,{onClick:l,className:H(`flex items-center rounded-md text-text-subtle hover:text-foreground hover:bg-surface-elevated transition-colors`,N?`w-full h-8 gap-2 px-2 justify-start`:`justify-center size-8`),children:[(0,q.jsx)(ae,{className:`size-4 shrink-0`}),N&&(0,q.jsx)(`span`,{className:`text-xs whitespace-nowrap`,children:`Report Bug`})]}),(0,q.jsxs)(`button`,{onClick:Te,className:H(`flex items-center rounded-md text-text-subtle hover:text-foreground hover:bg-surface-elevated transition-colors`,N?`w-full h-8 gap-2 px-2 justify-start`:`justify-center size-8`),children:[(0,q.jsx)(Cn,{className:`size-4 shrink-0`}),N&&(0,q.jsx)(`span`,{className:`text-xs whitespace-nowrap`,children:`Settings`})]})]}),(0,q.jsx)(_e,{open:E,onOpenChange:D,children:(0,q.jsxs)(ye,{className:`sm:max-w-sm`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:`Add Project`})}),(0,q.jsx)(Ju,{onSuccess:()=>D(!1),onCancel:()=>D(!1)})]})}),(0,q.jsx)(_e,{open:g,onOpenChange:_,children:(0,q.jsxs)(ye,{className:`sm:max-w-sm`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:`Rename Project`})}),(0,q.jsx)(`input`,{type:`text`,value:b,onChange:e=>x(e.target.value),onKeyDown:e=>{e.key===`Enter`&&pe()},className:`w-full px-3 py-2 rounded-md border border-border bg-background text-sm focus:outline-none focus:ring-1 focus:ring-primary`,autoFocus:!0}),(0,q.jsxs)(me,{children:[(0,q.jsx)(`button`,{onClick:()=>_(!1),className:`px-3 py-1.5 text-sm text-text-secondary hover:text-foreground transition-colors`,children:`Cancel`}),(0,q.jsx)(`button`,{onClick:pe,className:`px-3 py-1.5 text-sm bg-primary text-white rounded-md hover:bg-primary/90 transition-colors`,children:`Rename`})]})]})}),(0,q.jsx)(_e,{open:S,onOpenChange:C,children:(0,q.jsxs)(ye,{className:`sm:max-w-sm`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:`Delete Project`})}),(0,q.jsxs)(`p`,{className:`text-sm text-text-secondary`,children:[`Remove `,(0,q.jsx)(`strong`,{className:`text-foreground`,children:w}),` from PPM? The files on disk won't be deleted.`]}),(0,q.jsxs)(me,{children:[(0,q.jsx)(`button`,{onClick:()=>C(!1),className:`px-3 py-1.5 text-sm text-text-secondary hover:text-foreground transition-colors`,children:`Cancel`}),(0,q.jsx)(`button`,{onClick:he,className:`px-3 py-1.5 text-sm bg-destructive text-white rounded-md hover:bg-destructive/90 transition-colors`,children:`Delete`})]})]})}),(0,q.jsx)(_e,{open:O,onOpenChange:k,children:(0,q.jsxs)(ye,{className:`sm:max-w-sm`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:`Change Color`})}),(0,q.jsx)(Xu,{current:te,onChange:ne}),(0,q.jsxs)(me,{children:[(0,q.jsx)(`button`,{onClick:()=>k(!1),className:`px-3 py-1.5 text-sm text-text-secondary hover:text-foreground transition-colors`,children:`Cancel`}),(0,q.jsx)(`button`,{onClick:ge,disabled:j,className:`px-3 py-1.5 text-sm bg-primary text-white rounded-md hover:bg-primary/90 transition-colors disabled:opacity-50`,children:j?`Saving…`:`Save`})]})]})})]})})}),Qu=[{type:`terminal`,label:`Terminal`},{type:`chat`,label:`AI Chat`},{type:`settings`,label:`Settings`}],$u=Object.fromEntries(Qu.map(e=>[e.type,e.label])),ed={terminal:kn,chat:en,editor:xt,database:fe,sqlite:fe,postgres:fe,"git-diff":St,settings:Cn,ports:ue,extension:hn,"extension-webview":hn,"conflict-editor":St,"system-monitor":Cn,"git-log":xt};function td({onMenuPress:e,onProjectsPress:t}){let n=U(e=>e.focusedPanelId),r=U(e=>e.panels),i=U(e=>e.grid),a=U(e=>e.currentProject),{tabs:o,tabPanelMap:s}=(0,K.useMemo)(()=>{let e=i.flat(),t=[],n={};for(let i of e){let e=r[i];if(e)for(let r of e.tabs)r.projectId&&a&&r.projectId!==a||(t.push(r),n[r.id]=i)}return{tabs:t,tabPanelMap:n}},[r,i,a]),c=r[n]?.activeTabId??null,l=(0,K.useRef)(new Map),u=(0,K.useRef)(null),d=(0,K.useRef)(o.length),f=Aa(e=>e.notifications),p=Io(e=>e.sessions),[m,h]=(0,K.useState)({}),{canScrollLeft:g,canScrollRight:_,scrollRight:v}=Ro(u),y=Bo(u.current,l.current,o,f),[b,x]=(0,K.useState)(null),[S,C]=(0,K.useState)(!1),w=(0,K.useRef)(null);(0,K.useEffect)(()=>{o.length>d.current&&c&&l.current.get(c)?.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`nearest`}),d.current=o.length},[o.length,c]);let T=(0,K.useCallback)(e=>{w.current=setTimeout(()=>x(e),400)},[]),E=(0,K.useCallback)(()=>{w.current&&=(clearTimeout(w.current),null)},[]),D=b?o.find(e=>e.id===b):null,O=b?s[b]??n:n,k=r[O]?.tabs??[],A=b?k.findIndex(e=>e.id===b):-1,te=ze(i,O)?i.length<3:!1,ne=i.flat().filter(e=>e!==O);function j(e){let t=s[e]??n,r=(U.getState().panels[t]?.tabs??[]).findIndex(t=>t.id===e);r>0&&U.getState().reorderTab(e,t,r-1)}function M(e){let t=s[e]??n,r=U.getState().panels[t]?.tabs??[],i=r.findIndex(t=>t.id===e);i<r.length-1&&U.getState().reorderTab(e,t,i+1)}function N(e){let t=s[e]??n;U.getState().splitPanel(`down`,e,t)}function ie(e,t){let r=s[e]??n;U.getState().moveTab(e,r,t)}let[ae,P]=(0,K.useState)(null);function F(e,t){let n=e.metadata?.filePath,r=e.metadata?.projectName;switch(t){case`copy-path`:n&&navigator.clipboard.writeText(n).catch(()=>{});break;case`download`:n&&r&&Go(r,n);break;case`rename`:case`delete`:n&&P({action:t,tabId:e.id,node:{name:e.title,path:n,type:`file`}});break}x(null)}let{activeProject:I}=We.getState();function oe(e){let t=U.getState(),n=t.grid[0]?.[0]??t.focusedPanelId,r=e===`git-diff`||e===`terminal`||e===`chat`?{projectName:I?.name}:void 0;t.openTab({type:e,title:$u[e]??e,metadata:r,projectId:I?.name??null,closable:!0},n),C(!1)}let{activeProject:L,projects:se,customOrder:ce}=We(hs(e=>({activeProject:e.activeProject,projects:e.projects,customOrder:e.customOrder}))),le=o.filter(e=>e.type===`chat`&&e.metadata?.sessionId).map(e=>e.metadata.sessionId);(0,K.useEffect)(()=>{!L?.name||le.length===0||V.get(`${B(L.name)}/chat/sessions?limit=50`).then(e=>{let t={};for(let n of e.sessions)n.tag&&(t[n.id]=n.tag);h(t)}).catch(()=>{})},[L?.name,le.join(`,`)]);let ue=Ge(se,ce??null),de=ue.map(e=>e.name),fe=ue.findIndex(e=>e.name===L?.name),me=L?Bu(L.color,fe>=0?fe:0):`#4f86c6`,he=L?qu(L.name,de):null;return(0,q.jsxs)(`nav`,{className:`fixed bottom-0 left-0 right-0 md:hidden bg-background border-t border-border z-40 select-none`,children:[(0,q.jsxs)(`div`,{className:`flex items-center h-12`,children:[(0,q.jsxs)(`div`,{className:H(`flex items-center shrink-0 bg-background relative z-10 transition-all duration-200`,g?`rounded-r-2xl shadow-[6px_0_12px_-4px_rgba(0,0,0,0.12)]`:`border-r border-border`),children:[(0,q.jsx)(`button`,{onClick:e,className:`flex items-center justify-center size-12 shrink-0 text-text-secondary`,children:(0,q.jsx)($t,{className:`size-5`})}),(0,q.jsx)(`div`,{className:`w-px self-stretch bg-border shrink-0`}),(0,q.jsx)(`button`,{onClick:t,className:`flex items-center justify-center size-12 shrink-0 text-text-secondary`,title:`Switch project`,children:he?(0,q.jsx)(`div`,{className:`size-7 rounded-full flex items-center justify-center text-[10px] font-bold text-white`,style:{background:me},children:he}):(0,q.jsx)(qt,{className:`size-5`})}),(0,q.jsx)(`div`,{className:`w-px self-stretch bg-border shrink-0`}),(0,q.jsxs)(`button`,{onClick:()=>Po(),className:H(`flex items-center justify-center shrink-0 text-text-secondary gap-1.5 h-12`,o.length===0?`px-4`:`w-12`),children:[(0,q.jsx)(ke,{className:`size-4`}),o.length===0&&(0,q.jsx)(`span`,{className:`text-xs`,children:`New Tab`})]})]}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0 relative flex items-center h-12 -ml-4`,children:[(0,q.jsx)(`div`,{ref:u,className:`flex-1 min-w-0 flex items-center h-12 overflow-x-auto scrollbar-none pl-4`,children:o.map(e=>{let t=ed[e.type]||hn,n=e.id===c,r=e.type===`chat`?e.metadata?.sessionId:void 0,i=r?f.get(r):void 0,a=i&&i.count>0?i.type:null,o=r?m[r]?.color:void 0,s=r?p.has(r):!1;return(0,q.jsxs)(`button`,{ref:t=>{t?l.current.set(e.id,t):l.current.delete(e.id)},onClick:()=>{U.getState().setActiveTab(e.id),r&&Aa.getState().clearForSession(r)},onTouchStart:()=>T(e.id),onTouchEnd:E,onTouchMove:E,onContextMenu:e=>e.preventDefault(),className:H(`relative flex items-center gap-1 px-3 h-12 whitespace-nowrap text-xs shrink-0 border-t-2 transition-colors`,n?`border-primary bg-surface text-primary`:`border-transparent text-text-secondary`),children:[o&&(0,q.jsx)(`span`,{"aria-hidden":!0,className:`absolute left-0 top-2 bottom-2 w-[3px] rounded-r-full pointer-events-none`,style:{backgroundColor:o}}),(0,q.jsxs)(`span`,{className:H(`relative`,s&&`text-amber-500`),children:[(0,q.jsx)(t,{className:`size-4`}),s?(0,q.jsxs)(`span`,{"aria-hidden":!0,className:`absolute inset-0 flex items-center justify-center gap-[1.5px]`,children:[(0,q.jsx)(`span`,{className:`tab-typing-dot size-[2px] rounded-full bg-current`}),(0,q.jsx)(`span`,{className:`tab-typing-dot size-[2px] rounded-full bg-current`,style:{animationDelay:`0.15s`}}),(0,q.jsx)(`span`,{className:`tab-typing-dot size-[2px] rounded-full bg-current`,style:{animationDelay:`0.3s`}})]}):a&&!n?(0,q.jsx)(`span`,{className:H(`absolute -top-1 -right-1 size-2 rounded-full`,Da(a))}):null]}),(0,q.jsx)(`span`,{className:`max-w-[80px] truncate`,children:e.title}),e.closable&&(0,q.jsx)(`span`,{role:`button`,tabIndex:0,onClick:t=>{t.stopPropagation(),U.getState().closeTab(e.id)},className:`ml-0.5 p-0.5 rounded hover:bg-surface-elevated`,children:(0,q.jsx)(Ae,{className:`size-3`})})]},e.id)})}),_&&(0,q.jsx)(`button`,{onClick:v,className:`absolute right-0 z-10 flex items-center justify-center size-8 bg-gradient-to-l from-background via-background to-transparent`,children:(0,q.jsxs)(`span`,{className:`relative`,children:[(0,q.jsx)(pe,{className:`size-3.5 text-text-secondary`}),y.right&&(0,q.jsx)(`span`,{className:H(`absolute -top-1 -left-0.5 size-1.5 rounded-full`,Da(y.right))})]})})]})]}),(0,q.jsxs)(ws,{open:S,onClose:()=>C(!1),children:[(0,q.jsx)(`div`,{className:`px-3 py-2 text-xs text-text-secondary border-b border-border`,children:`New Tab`}),Qu.map(e=>{let t=ed[e.type];return(0,q.jsxs)(`button`,{onClick:()=>oe(e.type),className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(t,{className:`size-4`}),` `,e.label]},e.type)})]}),(0,q.jsxs)(ws,{open:!!D,onClose:()=>x(null),children:[(0,q.jsx)(`div`,{className:`px-3 py-2 text-xs text-text-secondary border-b border-border truncate`,children:D?.title}),D?.type===`editor`&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`button`,{onClick:()=>F(D,`copy-path`),className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(pt,{className:`size-4`}),` Copy Path`]}),(0,q.jsxs)(`button`,{onClick:()=>F(D,`download`),className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(Ee,{className:`size-4`}),` Download`]}),(0,q.jsxs)(`button`,{onClick:()=>F(D,`rename`),className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(re,{className:`size-4`}),` Rename`]}),(0,q.jsxs)(`button`,{onClick:()=>F(D,`delete`),className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-error active:bg-surface-elevated`,children:[(0,q.jsx)(Oe,{className:`size-4`}),` Delete`]}),(0,q.jsx)(`div`,{className:`h-px bg-border mx-2`})]}),D?.closable&&(0,q.jsxs)(`button`,{onClick:()=>{U.getState().closeTab(b),x(null)},className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(Ae,{className:`size-4`}),` Close`]}),A>0&&(0,q.jsxs)(`button`,{onClick:()=>{j(b),x(null)},className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(ee,{className:`size-4`}),` Move Left`]}),A<k.length-1&&(0,q.jsxs)(`button`,{onClick:()=>{M(b),x(null)},className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)($e,{className:`size-4`}),` Move Right`]}),te&&k.length>1&&(0,q.jsxs)(`button`,{onClick:()=>{N(b),x(null)},className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(Tn,{className:`size-4`}),` Split to Bottom`]}),ne.map((e,t)=>(0,q.jsxs)(`button`,{onClick:()=>{ie(b,e),x(null)},className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(on,{className:`size-4`}),` Move to Panel `,t+1===1?`Top`:`Bottom`]},e))]}),ae&&(0,q.jsx)(Jo,{action:ae.action,node:ae.node,projectName:I?.name??``,onClose:()=>P(null),onRefresh:()=>{I&&Ba.getState().fetchTree(I.name),ae.action===`delete`&&U.getState().closeTab(ae.tabId)}})]})}var nd=[{id:`explorer`,label:`Explorer`,icon:Mt},{id:`git`,label:`Git`,icon:Rt},{id:`database`,label:`Database`,icon:fe},{id:`settings`,label:`Settings`,icon:Cn}];function rd({isOpen:e,onClose:t,initialTab:n}){let{activeProject:r}=We(hs(e=>({activeProject:e.activeProject}))),i=Fe(e=>e.version),a=Fe(e=>e.jiraEnabled),[o,s]=(0,K.useState)(n??`explorer`),c=(0,K.useMemo)(()=>{if(!a)return nd;let e=[...nd],t=e.findIndex(e=>e.id===`settings`);return e.splice(t,0,{id:`jira`,label:`Jira`,icon:ae}),e},[a]);(0,K.useEffect)(()=>{n&&s(n)},[n]);let l=(0,K.useCallback)(()=>Ku(i),[i]);return(0,q.jsxs)(`div`,{className:H(`fixed inset-0 z-50 md:hidden transition-opacity duration-200`,e?`opacity-100`:`opacity-0 pointer-events-none`),children:[(0,q.jsx)(`div`,{className:`absolute inset-0 bg-black/50`,onClick:t,"aria-label":`Close drawer`}),(0,q.jsxs)(`div`,{className:H(`fixed left-0 top-0 bottom-0 w-[90vw] bg-background border-r border-border`,`z-50 flex flex-col transition-transform duration-300 ease-out`,e?`translate-x-0`:`-translate-x-full`),children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b border-border shrink-0`,children:[(0,q.jsx)(`span`,{className:`text-sm font-bold text-primary tracking-tight`,children:r?.name??`PPM`}),(0,q.jsx)(`button`,{onClick:t,className:`flex items-center justify-center size-8 rounded-md hover:bg-surface-elevated transition-colors`,children:(0,q.jsx)(Ae,{className:`size-4`})})]}),(0,q.jsxs)(`div`,{className:`flex-1 overflow-y-auto min-h-0`,children:[o===`explorer`&&(r?(0,q.jsx)(Xs,{onFileOpen:t}):(0,q.jsx)(`p`,{className:`px-4 py-6 text-xs text-text-secondary text-center`,children:`Select a project from the bottom nav bar`})),o===`git`&&(0,q.jsx)(uc,{metadata:{projectName:r?.name},onNavigate:t}),o===`database`&&(0,q.jsx)(Cl,{}),o===`jira`&&(0,q.jsx)(Kl,{}),o===`settings`&&(0,q.jsx)(nl,{})]}),(0,q.jsxs)(`div`,{className:`shrink-0 border-t border-border`,children:[(0,q.jsx)(`div`,{className:`flex items-center`,children:c.map(e=>{let t=e.icon;return(0,q.jsxs)(`button`,{onClick:()=>s(e.id),className:H(`flex-1 flex flex-col items-center gap-0.5 py-2.5 text-[10px] transition-colors`,o===e.id?`text-primary`:`text-text-secondary`),children:[(0,q.jsx)(t,{className:`size-4`}),(0,q.jsx)(`span`,{children:e.label})]},e.id)})}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-t border-border`,children:[i&&(0,q.jsxs)(`span`,{className:`text-[10px] text-text-subtle`,children:[`v`,i]}),(0,q.jsxs)(`button`,{onClick:l,className:`flex items-center gap-1 text-[10px] text-text-subtle hover:text-text-secondary transition-colors`,children:[(0,q.jsx)(ae,{className:`size-3`}),(0,q.jsx)(`span`,{children:`Report Bug`})]})]})]})]})]})}function id({name:e,color:t,allNames:n}){let r=qu(e,n);return(0,q.jsx)(`div`,{className:`size-10 rounded-full flex items-center justify-center text-xs font-bold text-white shrink-0`,style:{background:t},children:r})}function ad({isOpen:e,onClose:t}){let{projects:n,activeProject:r,setActiveProject:i,setProjectColor:a,reorderProjects:o,renameProject:s,deleteProject:c,customOrder:l}=We(hs(e=>({projects:e.projects,activeProject:e.activeProject,setActiveProject:e.setActiveProject,setProjectColor:e.setProjectColor,reorderProjects:e.reorderProjects,renameProject:e.renameProject,deleteProject:e.deleteProject,customOrder:e.customOrder})));W(e=>e.openTab);let u=Fe(e=>e.version),d=Ge(n,l),f=d.map(e=>e.name),[p,m]=(0,K.useState)(`list`),[h,g]=(0,K.useState)(null),[_,v]=(0,K.useState)(``),[y,b]=(0,K.useState)(!1),x=(0,K.useRef)(null),[S,C]=(0,K.useState)(null),[w,T]=(0,K.useState)(``),E=(0,K.useCallback)(e=>{x.current=setTimeout(()=>g(e),400)},[]),D=(0,K.useCallback)(()=>{x.current&&=(clearTimeout(x.current),null)},[]);function O(){m(`list`),t()}function k(e){let t=n.find(t=>t.name===e);t&&(i(t),O())}function A(){m(`add`)}function te(){if(O(),window.innerWidth<768){window.dispatchEvent(new Event(`open-mobile-settings`));return}let{sidebarCollapsed:e,toggleSidebar:t,setSidebarActiveTab:n}=Fe.getState();e&&t(),n(`settings`)}async function ne(){if(!S||!w.trim()||w===S){C(null);return}try{await s(S,w.trim())}catch{}C(null)}async function j(e){g(null);try{await c(e)}catch{}}async function M(e,t){try{await a(e,t),b(!1),g(null)}catch(e){console.error(`Failed to save color:`,e)}}h&&d.find(e=>e.name===h);let N=h?d.findIndex(e=>e.name===h):-1,ie=h?[{label:`Rename`,icon:re,onClick:()=>{T(h),C(h),g(null)}},{label:`Change Color`,icon:cn,onClick:()=>{let e=d.findIndex(e=>e.name===h),t=d[e];v(Bu(t?.color,e)),b(!0)}},...N>0?[{label:`Move Up`,icon:F,onClick:()=>{let e=d.map(e=>e.name),[t]=e.splice(N,1);e.splice(N-1,0,t),o(e),g(null)}}]:[],...N<d.length-1?[{label:`Move Down`,icon:ce,onClick:()=>{let e=d.map(e=>e.name),[t]=e.splice(N,1);e.splice(N+1,0,t),o(e),g(null)}}]:[],{label:`Delete`,icon:Oe,destructive:!0,onClick:()=>j(h)}]:[];return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(ws,{open:e,onClose:O,className:`bg-background`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-border`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p===`add`&&(0,q.jsx)(`button`,{onClick:()=>m(`list`),className:`flex items-center justify-center size-7 rounded-md hover:bg-surface-elevated transition-colors`,children:(0,q.jsx)(ee,{className:`size-4`})}),(0,q.jsx)(`span`,{className:`text-sm font-semibold`,children:p===`add`?`Add Project`:`Projects`})]}),(0,q.jsx)(`button`,{onClick:O,className:`flex items-center justify-center size-7 rounded-md hover:bg-surface-elevated transition-colors`,children:(0,q.jsx)(Ae,{className:`size-4`})})]}),p===`add`&&(0,q.jsx)(`div`,{className:`px-4 py-4`,children:(0,q.jsx)(Ju,{onSuccess:()=>{m(`list`),t()},onCancel:()=>m(`list`),footerClassName:`pt-2`})}),(0,q.jsx)(`div`,{className:p===`add`?`hidden`:`max-h-[60vh] overflow-y-auto`,children:d.map((e,t)=>{let n=Bu(e.color,t),i=r?.name===e.name,a=S===e.name;return(0,q.jsxs)(`div`,{className:H(`flex items-center gap-3 px-4 py-3 transition-colors active:bg-surface-elevated`,i&&`bg-accent/10`),onClick:()=>!a&&k(e.name),onTouchStart:()=>E(e.name),onTouchEnd:D,onTouchMove:D,children:[(0,q.jsx)(id,{name:e.name,color:n,allNames:f}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[a?(0,q.jsx)(`input`,{type:`text`,value:w,onChange:e=>T(e.target.value),onKeyDown:e=>{e.key===`Enter`&&ne(),e.key===`Escape`&&C(null)},onBlur:ne,onClick:e=>e.stopPropagation(),className:`w-full bg-transparent border-b border-primary text-sm outline-none`,autoFocus:!0}):(0,q.jsx)(`p`,{className:`text-sm font-medium truncate`,children:e.name}),(0,q.jsx)(`p`,{className:`text-xs text-text-subtle truncate`,children:e.path})]}),i&&(0,q.jsx)(le,{className:`size-4 text-primary shrink-0`})]},e.name)})}),(0,q.jsx)(`div`,{className:`border-t border-border`,children:(0,q.jsxs)(`button`,{onClick:A,className:`w-full flex items-center gap-3 px-4 py-3 text-text-secondary hover:bg-surface-elevated transition-colors`,children:[(0,q.jsx)(ke,{className:`size-4 shrink-0`}),(0,q.jsx)(`span`,{className:`text-sm`,children:`Add Project`})]})}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-t border-border`,children:[(0,q.jsxs)(`button`,{onClick:te,className:`flex items-center gap-2 text-text-secondary hover:text-foreground transition-colors`,children:[(0,q.jsx)(Cn,{className:`size-4`}),(0,q.jsx)(`span`,{className:`text-sm`,children:`Settings`})]}),u&&(0,q.jsxs)(`span`,{className:`text-xs text-text-subtle`,children:[`v`,u]})]})]}),(0,q.jsxs)(ws,{open:!!h&&!y,onClose:()=>g(null),zIndex:60,children:[(0,q.jsx)(`div`,{className:`px-4 py-2 border-b border-border`,children:(0,q.jsx)(`p`,{className:`text-xs font-medium text-text-secondary`,children:h})}),ie.map(e=>{let t=e.icon;return(0,q.jsxs)(`button`,{onClick:e.onClick,className:H(`w-full flex items-center gap-3 px-4 py-3 text-sm transition-colors active:bg-surface-elevated`,e.destructive?`text-destructive`:`text-foreground`),children:[(0,q.jsx)(t,{className:`size-4 shrink-0`}),e.label]},e.label)})]}),(0,q.jsxs)(ws,{open:y&&!!h,onClose:()=>{b(!1),g(null)},zIndex:60,className:`p-4 space-y-4`,children:[(0,q.jsx)(`p`,{className:`text-sm font-medium`,children:`Change Color`}),(0,q.jsx)(`div`,{className:`flex flex-wrap gap-3`,children:zu.map(e=>(0,q.jsx)(`button`,{type:`button`,onClick:()=>v(e),className:H(`size-9 rounded-full border-2 transition-all`,_===e?`border-primary scale-110`:`border-transparent`),style:{background:e}},e))}),(0,q.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,q.jsx)(`button`,{onClick:()=>{b(!1),g(null)},className:`flex-1 py-2 text-sm text-text-secondary border border-border rounded-md`,children:`Cancel`}),(0,q.jsx)(`button`,{onClick:()=>M(h,_),className:`flex-1 py-2 text-sm bg-primary text-white rounded-md`,children:`Save`})]})]})]})}function od({onSuccess:e}){let[t,n]=(0,K.useState)(``),r=Fe(e=>e.deviceName),[i,a]=(0,K.useState)(null),[o,s]=(0,K.useState)(!1);async function c(n){if(n.preventDefault(),t.trim()){s(!0),a(null);try{Ne(t.trim());let n=await(await fetch(`/api/auth/check`,{headers:{Authorization:`Bearer ${t.trim()}`}})).json();if(!n.ok)throw Error(n.error??`Invalid token`);e()}catch(e){a(e instanceof Error?e.message:`Authentication failed`),localStorage.removeItem(`ppm-auth-token`)}finally{s(!1)}}}return(0,q.jsx)(`div`,{className:`min-h-dvh flex items-center justify-center bg-background p-4`,children:(0,q.jsxs)(`div`,{className:`w-full max-w-sm bg-surface rounded-lg border border-border p-6 space-y-6`,children:[(0,q.jsxs)(`div`,{className:`text-center space-y-2`,children:[(0,q.jsx)(`div`,{className:`flex items-center justify-center size-12 mx-auto rounded-full bg-surface-elevated`,children:(0,q.jsx)(j,{className:`size-6 text-primary`})}),(0,q.jsx)(`h1`,{className:`text-xl font-semibold text-foreground`,children:`PPM`}),r&&(0,q.jsx)(`p`,{className:`text-xs text-text-subtle bg-surface-elevated inline-block px-2 py-0.5 rounded-full`,children:r}),(0,q.jsx)(`p`,{className:`text-sm text-text-secondary`,children:`Enter your access password to unlock`})]}),(0,q.jsxs)(`form`,{onSubmit:c,className:`space-y-4`,children:[(0,q.jsx)(`div`,{children:(0,q.jsx)(z,{type:`password`,placeholder:`Auth token`,value:t,onChange:e=>n(e.target.value),className:`h-11 bg-background border-border`,autoFocus:!0})}),i&&(0,q.jsxs)(`div`,{className:`flex items-center gap-2 text-error text-sm`,children:[(0,q.jsx)(ot,{className:`size-4 shrink-0`}),(0,q.jsx)(`span`,{children:i})]}),(0,q.jsx)(R,{type:`submit`,disabled:o||!t.trim(),className:`w-full h-11`,children:o?`Checking...`:`Unlock`})]})]})})}var sd=[`terminal`,`chat`,`editor`,`database`,`sqlite`,`postgres`,`git-diff`,`settings`,`ports`,`extension`];function cd(){let e=window.location.pathname,t=new URLSearchParams(window.location.search).get(`openChat`),n=e.match(/^\/project\/([^/]+)(?:\/([^/]+)(\/.*)?)?/);if(!n)return{projectName:null,tabType:null,tabIdentifier:null,openChat:t};let r=decodeURIComponent(n[1]),i=n[2]??null,a=n[3]?n[3].slice(1):null;return i===`tab`?{projectName:r,tabType:null,tabIdentifier:null,openChat:t}:{projectName:r,tabType:sd.includes(i)?i:null,tabIdentifier:a,openChat:t}}function ld(e,t){if(!e||e===`__global__`)return`/`;let n=`/project/${encodeURIComponent(e)}`;if(!t)return n;let r=t.indexOf(`@`),i=r===-1?t:t.slice(0,r),a=i.indexOf(`:`);if(a===-1)n+=`/${i}`;else{let e=i.slice(0,a),t=i.slice(a+1);n+=`/${e}/${t.replace(/[?#]/g,encodeURIComponent)}`}return n}function ud(e,t){return t?`${e}:${t}`:e}function dd(e,t,n){switch(e){case`editor`:return t?{filePath:t,projectName:n}:null;case`chat`:{if(!t)return null;let e=t.indexOf(`/`),r=e===-1?t:t.slice(e+1),i=e===-1?void 0:t.slice(0,e),a=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r)?r:void 0;return{...a&&{sessionId:a},...i&&{providerId:i},projectName:n}}case`terminal`:return{terminalIndex:parseInt(t??`1`,10),projectName:n};case`git-diff`:return t?{filePath:t,projectName:n}:null;case`settings`:return{};case`database`:{let[e,n]=(t??``).split(`:`);return e?{connectionId:e,tableName:n??``}:null}case`sqlite`:return t?{filePath:t,projectName:n}:null;case`postgres`:{let[e,n]=(t??``).split(`:`);return e?{connectionId:e,tableName:n??``}:null}case`ports`:return null;case`extension`:return t?{viewType:t,projectName:n}:null;default:return null}}function fd(e,t){switch(e){case`editor`:return t?.split(`/`).pop()??`File`;case`chat`:return`Chat`;case`terminal`:return`Terminal ${t??`1`}`;case`git-diff`:return t?.split(`/`).pop()??`Diff`;case`settings`:return`Settings`;case`database`:return t??`Database`;case`sqlite`:return t?.split(`/`).pop()??`SQLite`;case`postgres`:return t??`PostgreSQL`;case`ports`:return`Ports`;case`extension`:return t?t.split(`-`).map(e=>(e[0]?.toUpperCase()??``)+e.slice(1)).join(` `):`Extension`;default:return e}}function pd(e,t,n){let{tabs:r,setActiveTab:i,openTab:a}=W.getState(),o=ud(e,t),s=r.find(e=>e.id===o);if(s){i(s.id);return}let c=dd(e,t,n);c&&a({type:e,title:fd(e,t),projectId:n,closable:!0,metadata:c})}function md(){let e=W(e=>e.activeTabId),t=W(e=>e.currentProject),n=(0,K.useRef)(!1);(0,K.useEffect)(()=>{if(n.current){n.current=!1;return}let r=ld(t,e);window.location.pathname!==r&&window.history.pushState(null,``,r)},[e,t]),(0,K.useEffect)(()=>{function e(){let{tabType:e,tabIdentifier:t}=cd();if(!e)return;n.current=!0;let{tabs:r,setActiveTab:i}=W.getState(),a=ud(e,t),o=r.find(e=>e.id===a);if(o)i(o.id);else{let n=W.getState().currentProject;n&&pd(e,t,n)}}return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[])}var hd=`#3b82f6`,gd=`#f59e0b`,_d=`#ef4444`;function vd(e){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
17
+ OPENAI_API_KEY=${e.authKey}`}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`absolute top-1 right-1 h-5 px-1 cursor-pointer`,onClick:()=>d(`OPENAI_BASE_URL=${p?e.tunnelUrl+`/proxy/v1`:h+`/proxy/v1`}\nOPENAI_API_KEY=${e.authKey}`,`openai-env`),children:c===`openai-env`?`Copied!`:(0,q.jsx)(pt,{className:`size-2.5`})})]})]}),(0,q.jsx)(`div`,{className:`flex items-center gap-3 pt-1`,children:(0,q.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,children:[`Requests served: `,(0,q.jsx)(`span`,{className:`font-mono`,children:e.requestCount})]})})]}),i&&(0,q.jsx)(`p`,{className:`text-[11px] text-text-subtle`,children:`Saving...`}),o&&(0,q.jsx)(`p`,{className:`text-[11px] text-red-500`,children:o})]})}function Dc(){return V.get(`/api/settings/mcp`)}function Oc(e,t){return V.post(`/api/settings/mcp`,{name:e,config:t})}function kc(e,t){return V.put(`/api/settings/mcp/${encodeURIComponent(e)}`,t)}function Ac(e){return V.del(`/api/settings/mcp/${encodeURIComponent(e)}`)}function jc(){return V.post(`/api/settings/mcp/import`,{})}function Mc(e){return!e||!/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(e)?`Name must start with a letter/digit, then alphanumeric, hyphens, or underscores`:e.length>50?`Name max 50 chars`:null}function Nc(e){let t=[];if(!e||typeof e!=`object`)return[`Config must be an object`];let n=e,r=n.type??`stdio`;return r===`stdio`?(!n.command||typeof n.command!=`string`)&&t.push(`command is required for stdio`):r===`http`||r===`sse`?((!n.url||typeof n.url!=`string`)&&t.push(`url is required for `+r),n.url&&typeof n.url==`string`&&!/^https?:\/\/.+/.test(n.url)&&t.push(`url must be HTTP(S)`)):t.push(`type must be stdio, http, or sse`),t}var Pc=[`stdio`,`http`,`sse`];function Fc({open:e,onClose:t,editServer:n}){let r=!!n,[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(`stdio`),[c,l]=(0,K.useState)(``),[u,d]=(0,K.useState)(``),[f,p]=(0,K.useState)(``),[m,h]=(0,K.useState)([]),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(null);(0,K.useEffect)(()=>{if(e)if(y(null),_(!1),n){a(n.name),s(n.transport||`stdio`);let e=n.config;`command`in e?(l(e.command||``),d((e.args??[]).join(` `)),h(Ic(e.env))):`url`in e&&(p(e.url||``),h(Ic(e.headers)))}else a(``),s(`stdio`),l(``),d(``),p(``),h([])},[e,n]);let b=()=>{let e=Lc(m);return o===`stdio`?{type:`stdio`,command:c,...u.trim()&&{args:u.trim().split(/\s+/)},...Object.keys(e).length>0&&{env:e}}:{type:o,url:f,...Object.keys(e).length>0&&{headers:e}}},x=async()=>{if(y(null),!r){let e=Mc(i);if(e){y(e);return}}let e=b(),n=Nc(e);if(n.length){y(n.join(`; `));return}_(!0);try{r?await kc(i,e):await Oc(i,e),t(!0)}catch(e){y(e.message||`Save failed`)}finally{_(!1)}},S=()=>h([...m,{key:``,value:``}]),C=e=>h(m.filter((t,n)=>n!==e)),w=(e,t,n)=>{h(m.map((r,i)=>i===e?{key:t===`key`?n:r.key,value:t===`value`?n:r.value}:r))},T=o===`stdio`,E=T?`Environment Variables`:`Headers`;return(0,q.jsx)(_e,{open:e,onOpenChange:e=>{e||t()},children:(0,q.jsxs)(ye,{className:`max-h-[85vh] overflow-y-auto sm:max-w-md`,children:[(0,q.jsxs)(ve,{children:[(0,q.jsx)(be,{className:`text-sm`,children:r?`Edit MCP Server`:`Add MCP Server`}),(0,q.jsx)(ge,{className:`text-[11px]`,children:`Configure a Model Context Protocol server connection.`})]}),(0,q.jsxs)(`div`,{className:`space-y-3`,children:[(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`label`,{className:`text-[11px] font-medium text-muted-foreground`,children:`Name`}),(0,q.jsx)(z,{value:i,onChange:e=>a(e.target.value),placeholder:`my-mcp-server`,className:`h-8 text-xs`,disabled:r})]}),(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`label`,{className:`text-[11px] font-medium text-muted-foreground`,children:`Transport`}),(0,q.jsx)(`div`,{className:`flex gap-1`,children:Pc.map(e=>(0,q.jsx)(R,{variant:o===e?`default`:`outline`,size:`sm`,className:`flex-1 h-7 text-xs cursor-pointer`,onClick:()=>{s(e),h([]),l(``),d(``),p(``)},children:e},e))})]}),T?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`label`,{className:`text-[11px] font-medium text-muted-foreground`,children:`Command *`}),(0,q.jsx)(z,{value:c,onChange:e=>l(e.target.value),placeholder:`npx`,className:`h-8 text-xs`})]}),(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`label`,{className:`text-[11px] font-medium text-muted-foreground`,children:`Arguments (space-separated)`}),(0,q.jsx)(z,{value:u,onChange:e=>d(e.target.value),placeholder:`@playwright/mcp@latest`,className:`h-8 text-xs`})]})]}):(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`label`,{className:`text-[11px] font-medium text-muted-foreground`,children:`URL *`}),(0,q.jsx)(z,{value:f,onChange:e=>p(e.target.value),placeholder:`https://mcp.example.com`,className:`h-8 text-xs`})]}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(`label`,{className:`text-[11px] font-medium text-muted-foreground`,children:E}),m.map((e,t)=>(0,q.jsxs)(`div`,{className:`flex gap-1 items-center`,children:[(0,q.jsx)(z,{value:e.key,onChange:e=>w(t,`key`,e.target.value),placeholder:`KEY`,className:`h-7 text-xs flex-1`}),(0,q.jsx)(z,{value:e.value,onChange:e=>w(t,`value`,e.target.value),placeholder:`value`,className:`h-7 text-xs flex-1`}),(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0 cursor-pointer`,onClick:()=>C(t),children:(0,q.jsx)(je,{className:`size-3`})})]},t)),(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`h-7 text-xs gap-1 cursor-pointer`,onClick:S,children:[(0,q.jsx)(De,{className:`size-3`}),` Add `,T?`Variable`:`Header`]})]}),v&&(0,q.jsx)(`p`,{className:`text-[11px] text-destructive`,children:v})]}),(0,q.jsxs)(me,{children:[(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-8 text-xs cursor-pointer`,onClick:()=>t(),children:`Cancel`}),(0,q.jsx)(R,{size:`sm`,className:`h-8 text-xs cursor-pointer`,onClick:x,disabled:g,children:g?`Saving...`:`Save`})]})]})})}function Ic(e){return e?Object.entries(e).map(([e,t])=>({key:e,value:t})):[]}function Lc(e){let t={};for(let{key:n,value:r}of e)n.trim()&&(t[n.trim()]=r);return t}function Rc(){let[e,t]=(0,K.useState)([]),[n,r]=(0,K.useState)(!0),[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(null),[c,l]=(0,K.useState)(null),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(null),m=(0,K.useCallback)(async()=>{try{t(await Dc())}catch(e){console.error(`Failed to load MCP servers:`,e)}finally{r(!1)}},[]);(0,K.useEffect)(()=>{m()},[m]);let h=async e=>{try{await Ac(e),l(null),m()}catch(e){console.error(`Failed to delete:`,e)}},g=async()=>{d(!0),p(null);try{let e=await jc();p(`Imported ${e.imported}, skipped ${e.skipped}`),m()}catch(e){p(e.message||`Import failed`)}finally{d(!1)}},_=e=>{a(!1),s(null),e&&m()},v=()=>{s(null),a(!0)},y=e=>{s(e),a(!0)};return n?(0,q.jsx)(`div`,{className:`space-y-3`,children:[1,2,3].map(e=>(0,q.jsx)(`div`,{className:`h-16 rounded-lg bg-muted animate-pulse`},e))}):(0,q.jsxs)(`div`,{className:`space-y-3`,children:[e.length===0?(0,q.jsxs)(`div`,{className:`text-center py-8 space-y-2`,children:[(0,q.jsx)(xn,{className:`size-8 mx-auto text-muted-foreground`}),(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No MCP servers configured. Add one or import from Claude Code.`})]}):(0,q.jsx)(`div`,{className:`space-y-2`,children:e.map(e=>(0,q.jsxs)(`div`,{className:`rounded-lg border bg-card p-3 space-y-1.5`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{className:`text-xs font-medium truncate flex-1`,children:e.name}),(0,q.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded bg-muted text-muted-foreground shrink-0`,children:e.transport})]}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground truncate`,children:zc(e)}),(0,q.jsx)(`div`,{className:`flex justify-end gap-1.5`,children:c===e.name?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`span`,{className:`text-[11px] text-destructive self-center mr-1`,children:`Delete?`}),(0,q.jsx)(R,{variant:`destructive`,size:`sm`,className:`h-8 min-w-[44px] text-xs cursor-pointer`,onClick:()=>h(e.name),children:`Yes`}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-8 min-w-[44px] text-xs cursor-pointer`,onClick:()=>l(null),children:`No`})]}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(R,{variant:`ghost`,size:`sm`,className:`h-7 text-xs gap-1 cursor-pointer`,onClick:()=>y(e),children:[(0,q.jsx)(re,{className:`size-3`}),` Edit`]}),(0,q.jsxs)(R,{variant:`ghost`,size:`sm`,className:`h-7 text-xs gap-1 text-destructive hover:text-destructive cursor-pointer`,onClick:()=>l(e.name),children:[(0,q.jsx)(ke,{className:`size-3`}),` Delete`]})]})})]},e.name))}),(0,q.jsxs)(`div`,{className:`space-y-2 pt-1`,children:[(0,q.jsxs)(R,{className:`w-full h-10 text-xs gap-1.5 cursor-pointer`,onClick:v,children:[(0,q.jsx)(De,{className:`size-3.5`}),` Add MCP Server`]}),(0,q.jsxs)(R,{variant:`outline`,className:`w-full h-10 text-xs gap-1.5 cursor-pointer`,onClick:g,disabled:u,children:[(0,q.jsx)(Ee,{className:`size-3.5`}),` `,u?`Importing...`:`Import from Claude Code`]}),f&&(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground text-center`,children:f})]}),(0,q.jsx)(Fc,{open:i,onClose:_,editServer:o})]})}function zc(e){let t=e.config;if(e.transport===`stdio`||!(`url`in t)){let e=t;return[e.command,...e.args??[]].join(` `)}return t.url??``}function Bc(){let[e,t]=(0,K.useState)([]),[n,r]=(0,K.useState)(!0),[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(!1),[c,l]=(0,K.useState)(``),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(null),[m,h]=(0,K.useState)(null),g=(0,K.useCallback)(async()=>{try{t(await V.get(`/api/extensions`))}catch(e){console.error(`Failed to load extensions:`,e)}finally{r(!1)}},[]);(0,K.useEffect)(()=>{g()},[g]);let _=async()=>{let e=i.trim();if(e){s(!0);try{await V.post(`/api/extensions/install`,{name:e}),tr.success(`Installed ${e}`),a(``),g()}catch(e){tr.error(e.message||`Install failed`)}finally{s(!1)}}},v=async e=>{p(e.id);try{await V.patch(`/api/extensions/${e.id}`,{enabled:!e.enabled}),g()}catch(e){tr.error(e.message||`Toggle failed`)}finally{p(null)}},y=async e=>{h(e);try{await V.del(`/api/extensions/${e}`),tr.success(`Removed ${e}`),g()}catch(e){tr.error(e.message||`Remove failed`)}finally{h(null)}};return n?(0,q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,q.jsx)(G,{className:`size-4 animate-spin text-muted-foreground`})}):(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Install Extension`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(z,{value:i,onChange:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&_()},placeholder:`npm package name (e.g. @ppm/ext-myext)`,className:`h-8 text-xs flex-1`}),(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`h-8 text-xs px-3 gap-1 cursor-pointer`,disabled:!i.trim()||o,onClick:_,children:[o?(0,q.jsx)(G,{className:`size-3 animate-spin`}):(0,q.jsx)(De,{className:`size-3`}),`Install`]})]}),(0,q.jsx)(`button`,{onClick:()=>d(!u),className:`text-[11px] text-muted-foreground hover:text-foreground transition-colors cursor-pointer`,children:u?`Hide`:`Dev link local extension...`}),u&&(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(z,{value:c,onChange:e=>l(e.target.value),placeholder:`Local path (e.g. ./packages/ext-myext)`,className:`h-8 text-xs flex-1`}),(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`h-8 text-xs px-3 gap-1 cursor-pointer`,disabled:!c.trim(),onClick:async()=>{try{await V.post(`/api/extensions/dev-link`,{path:c.trim()}),tr.success(`Dev-linked successfully`),l(``),g()}catch(e){tr.error(e.message||`Dev link failed`)}},children:[(0,q.jsx)(Ft,{className:`size-3`}),`Link`]})]})]}),(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsxs)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:[`Installed (`,e.length,`)`]}),e.length===0?(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground py-4 text-center`,children:`No extensions installed`}):(0,q.jsx)(`div`,{className:`space-y-1`,children:e.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-2.5 py-2 rounded-lg bg-muted/50 hover:bg-muted transition-colors`,children:[(0,q.jsx)(`div`,{className:`size-8 rounded-md bg-background flex items-center justify-center shrink-0`,children:(0,q.jsx)(hn,{className:`size-4 text-muted-foreground`})}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,q.jsx)(`p`,{className:`text-xs font-medium truncate`,children:e.displayName||e.id}),(0,q.jsxs)(`p`,{className:`text-[11px] text-muted-foreground truncate`,children:[e.id,` v`,e.version,e.activated&&(0,q.jsx)(`span`,{className:`ml-1 text-green-500`,children:`active`})]})]}),(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0 cursor-pointer`,title:e.enabled?`Disable`:`Enable`,disabled:f===e.id,onClick:()=>v(e),children:f===e.id?(0,q.jsx)(G,{className:`size-3.5 animate-spin`}):e.enabled?(0,q.jsx)(mn,{className:`size-3.5 text-green-500`}):(0,q.jsx)(pn,{className:`size-3.5 text-muted-foreground`})}),(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0 cursor-pointer text-destructive hover:text-destructive`,title:`Remove`,disabled:m===e.id,onClick:()=>y(e.id),children:m===e.id?(0,q.jsx)(G,{className:`size-3.5 animate-spin`}):(0,q.jsx)(ke,{className:`size-3.5`})})]},e.id))})]})]})}function Vc(){let[e,t]=(0,K.useState)(null),[n,r]=(0,K.useState)(!1),[i,a]=(0,K.useState)(null),[o,s]=(0,K.useState)(``),[c,l]=(0,K.useState)(!1),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(!1),[m,h]=(0,K.useState)(``),[g,_]=(0,K.useState)(!0),[v,y]=(0,K.useState)(!1),[b,x]=(0,K.useState)(2e3),[S,C]=(0,K.useState)([]),[w,T]=(0,K.useState)(``),[E,D]=(0,K.useState)(!1),[O,k]=(0,K.useState)(!1),[ee,A]=(0,K.useState)([]),[te,ne]=(0,K.useState)(`_global`),[re,j]=(0,K.useState)([]),M=(0,K.useRef)(void 0),N=(0,K.useCallback)(async()=>{try{C(await V.get(`/api/settings/clawbot/paired`))}catch{}},[]),ae=(0,K.useCallback)(async(e=te)=>{try{A(await V.get(`/api/settings/clawbot/memories?project=${encodeURIComponent(e)}`))}catch{}},[te]),P=(0,K.useCallback)(async()=>{try{j(await V.get(`/api/settings/clawbot/tasks?limit=20`))}catch{}},[]),F=async e=>{try{await V.del(`/api/settings/clawbot/memories/${e}`),A(t=>t.filter(t=>t.id!==e))}catch{}};(0,K.useEffect)(()=>(V.get(`/api/settings/clawbot`).then(e=>{t(e),p(e.enabled),h(e.system_prompt),_(e.show_tool_calls),y(e.show_thinking),x(e.debounce_ms)}).catch(()=>{}),V.get(`/api/settings/telegram`).then(e=>{l(!!e.bot_token)}).catch(()=>{}),N(),ae(`_global`),P(),M.current=setInterval(P,1e4),()=>{M.current&&clearInterval(M.current)}),[N,ae,P]);let I=async()=>{if(o.trim()){d(!0),a(null);try{await V.put(`/api/settings/telegram`,{bot_token:o}),l(!0),s(``),a({type:`ok`,msg:`Bot token saved`})}catch(e){a({type:`err`,msg:e.message})}finally{d(!1)}}},oe=async()=>{r(!0),a(null);try{let e={enabled:f,system_prompt:m,show_tool_calls:g,show_thinking:v,debounce_ms:b};t(await V.put(`/api/settings/clawbot`,e)),a({type:`ok`,msg:f?`Saved — bot started`:`Saved — bot stopped`})}catch(e){a({type:`err`,msg:e.message})}finally{r(!1)}},L=async()=>{if(w.trim()){D(!0);try{await V.post(`/api/settings/clawbot/paired/approve`,{code:w.trim().toUpperCase()}),T(``),await N(),a({type:`ok`,msg:`Device approved`})}catch(e){a({type:`err`,msg:e.message})}finally{D(!1)}}},se=async e=>{try{await V.del(`/api/settings/clawbot/paired/${e}`),await N(),a({type:`ok`,msg:`Device revoked`})}catch(e){a({type:`err`,msg:e.message})}},ce=async()=>{k(!0),a(null);try{await V.post(`/api/settings/telegram/test`,{}),a({type:`ok`,msg:`Test notification sent to all paired devices!`})}catch(e){a({type:`err`,msg:e.message})}finally{k(!1)}};if(!e)return(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Loading...`});let le=S.filter(e=>e.status===`approved`).length,ue={pending:`⏳`,running:`🔄`,completed:`✅`,failed:`❌`,timeout:`⏱`},de={running:`text-blue-500`,completed:`text-green-500`,failed:`text-destructive`,timeout:`text-yellow-500`};return(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(`label`,{className:`text-[11px] text-muted-foreground`,children:`Telegram Bot Token`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(z,{type:`password`,placeholder:c?`•••••• (saved)`:`123456:ABC-DEF...`,value:o,onChange:e=>s(e.target.value),className:`h-7 text-xs flex-1`}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-7 text-xs shrink-0 cursor-pointer`,disabled:u||!o.trim(),onClick:I,children:u?`...`:`Save`})]}),(0,q.jsxs)(`p`,{className:`text-[10px] text-muted-foreground`,children:[`Create a bot via `,(0,q.jsx)(`b`,{children:`@BotFather`}),` on Telegram. Used for both chat and notifications.`]})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`p`,{className:`text-xs font-medium`,children:`Enable PPMBot`}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`AI coordinator on Telegram — delegates tasks to your projects`})]}),(0,q.jsx)(ie,{checked:f,onCheckedChange:p})]}),(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsx)(`p`,{className:`text-xs font-medium`,children:`Paired Devices`}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Send any message to the bot on Telegram to get a pairing code. Enter it below to approve. Notifications are sent to all approved devices.`}),(0,q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,q.jsx)(z,{placeholder:`Enter pairing code (e.g. A3K7WR)`,value:w,onChange:e=>T(e.target.value.toUpperCase()),className:`h-8 text-xs font-mono tracking-wider uppercase`,maxLength:6}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-8 text-xs shrink-0 cursor-pointer`,disabled:E||w.length<6,onClick:L,children:E?`...`:`Approve`})]}),S.length===0?(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground italic`,children:`No paired devices yet.`}):(0,q.jsx)(`div`,{className:`space-y-1`,children:S.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[e.status===`approved`?(0,q.jsx)(st,{className:`size-3.5 text-green-500 shrink-0`}):(0,q.jsx)(xe,{className:`size-3.5 text-yellow-500 shrink-0`}),(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsx)(`p`,{className:`text-xs truncate`,children:e.display_name||`Chat ${e.telegram_chat_id}`}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:e.status===`pending`&&e.pairing_code?`Code: ${e.pairing_code}`:e.status})]})]}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`h-7 w-7 p-0 text-destructive hover:text-destructive cursor-pointer`,onClick:()=>se(e.telegram_chat_id),children:(0,q.jsx)(ke,{className:`size-3.5`})})]},e.id))}),c&&le>0&&(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`h-7 text-xs gap-1 w-full cursor-pointer`,disabled:O,onClick:ce,children:[(0,q.jsx)(yn,{className:`size-3`}),O?`Sending...`:`Test Notification`]})]}),(0,q.jsx)(_c,{}),(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`p`,{className:`text-xs font-medium`,children:`Delegated Tasks`}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 cursor-pointer`,onClick:P,children:(0,q.jsx)(Ae,{className:`size-3`})})]}),re.length===0?(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground italic`,children:`No delegated tasks yet. The coordinator will create tasks when you ask it to work on a project.`}):(0,q.jsx)(`div`,{className:`space-y-1 max-h-[200px] overflow-y-auto`,children:re.map(e=>{let t=e.completed_at?`${Math.round((e.completed_at-e.created_at)/60)}m`:`${Math.round((Date.now()/1e3-e.created_at)/60)}m`;return(0,q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border p-2 text-[11px]`,children:[(0,q.jsx)(`span`,{className:de[e.status]??``,children:ue[e.status]??`?`}),(0,q.jsx)(`span`,{className:`font-medium shrink-0`,children:e.project_name}),(0,q.jsx)(`span`,{className:`truncate text-muted-foreground flex-1`,children:e.prompt.slice(0,60)}),(0,q.jsx)(`span`,{className:`text-[10px] text-muted-foreground shrink-0`,children:t})]},e.id)})})]}),(0,q.jsx)(_c,{}),(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(rt,{className:`size-3.5 text-muted-foreground`}),(0,q.jsx)(`p`,{className:`text-xs font-medium`,children:`Memory & Identity`})]}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 cursor-pointer`,onClick:()=>ae(te),children:(0,q.jsx)(Ae,{className:`size-3`})})]}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Facts the bot remembers across sessions. Use /remember on Telegram to add, or delete here.`}),ee.length===0?(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground italic`,children:`No memories stored yet. Send /start on Telegram and introduce yourself.`}):(0,q.jsx)(`div`,{className:`space-y-1 max-h-[200px] overflow-y-auto`,children:ee.map(e=>(0,q.jsxs)(`div`,{className:`flex items-start justify-between rounded-md border p-2 gap-1`,children:[(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`p`,{className:`text-[11px] break-words`,children:e.content}),(0,q.jsxs)(`p`,{className:`text-[10px] text-muted-foreground`,children:[e.category,` · `,e.project]})]}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 text-destructive hover:text-destructive cursor-pointer shrink-0`,onClick:()=>F(e.id),children:(0,q.jsx)(ke,{className:`size-3`})})]},e.id))})]}),(0,q.jsx)(_c,{}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(`label`,{className:`text-[11px] text-muted-foreground`,children:`Custom Instructions`}),(0,q.jsx)(`textarea`,{placeholder:`Additional instructions for the coordinator (optional)...`,value:m,onChange:e=>h(e.target.value),className:`flex w-full rounded-md border border-input bg-background px-3 py-2 text-xs min-h-[60px] resize-y ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,rows:3}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Extra instructions added to the coordinator identity. Leave empty to use defaults from coordinator.md.`})]}),(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`p`,{className:`text-xs`,children:`Show tool calls`}),(0,q.jsx)(ie,{checked:g,onCheckedChange:_})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`p`,{className:`text-xs`,children:`Show thinking`}),(0,q.jsx)(ie,{checked:v,onCheckedChange:y})]})]}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(`label`,{className:`text-[11px] text-muted-foreground`,children:`Debounce (ms)`}),(0,q.jsx)(z,{type:`number`,min:0,max:3e4,step:500,value:b,onChange:e=>x(Number(e.target.value)),className:`h-7 text-xs w-24`}),(0,q.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:`Merge rapid messages within this window. 0 = no debounce.`})]}),(0,q.jsx)(R,{variant:`default`,size:`sm`,className:`h-8 text-xs w-full cursor-pointer`,disabled:n,onClick:oe,children:n?`Saving...`:`Save`}),i&&(0,q.jsx)(`p`,{className:`text-[11px] ${i.type===`ok`?`text-green-600 dark:text-green-400`:`text-destructive`}`,children:i.msg})]})}function Hc(){let[e,t]=(0,K.useState)(!1),[n,r]=(0,K.useState)(``),[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(!1),[c,l]=(0,K.useState)(!1),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(null),m=i.length>0&&n!==i,h=n.trim().length>=4&&n===i&&!c,g=(0,K.useCallback)(async()=>{if(h){l(!0),p(null);try{let{token:e}=await V.put(`/api/settings/auth/password`,{password:n.trim(),confirm:i.trim()});Ne(e),d(!0),r(``),a(``),setTimeout(()=>{d(!1),t(!1)},1500)}catch(e){p(e instanceof Error?e.message:`Failed to change password`)}finally{l(!1)}}},[h,n,i]);return e?(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Change Password`}),(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(z,{type:o?`text`:`password`,placeholder:`New password`,value:n,onChange:e=>r(e.target.value),className:`h-8 text-xs pr-8`,autoFocus:!0}),(0,q.jsx)(`button`,{type:`button`,className:`absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground cursor-pointer`,onClick:()=>s(!o),tabIndex:-1,children:o?(0,q.jsx)(A,{className:`size-3.5`}):(0,q.jsx)(Oe,{className:`size-3.5`})})]}),(0,q.jsx)(z,{type:o?`text`:`password`,placeholder:`Confirm password`,value:i,onChange:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&g()},className:`h-8 text-xs`}),m&&(0,q.jsx)(`p`,{className:`text-[11px] text-destructive`,children:`Passwords do not match`}),f&&(0,q.jsx)(`p`,{className:`text-[11px] text-destructive`,children:f}),(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-8 text-xs flex-1 cursor-pointer`,onClick:()=>{t(!1),r(``),a(``),p(null)},children:`Cancel`}),(0,q.jsx)(R,{variant:u?`default`:`outline`,size:`sm`,className:`h-8 text-xs flex-1 cursor-pointer`,disabled:!h,onClick:g,children:c?`...`:u?(0,q.jsx)(le,{className:`size-3.5`}):`Save`})]}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Min 4 characters. You'll stay logged in on this device.`})]})]}):(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Security`}),(0,q.jsxs)(R,{variant:`outline`,size:`sm`,className:`h-8 text-xs gap-1.5 cursor-pointer`,onClick:()=>t(!0),children:[(0,q.jsx)(Wt,{className:`size-3.5`}),`Change Password`]})]})}function Uc(){return V.get(`/api/settings/files`)}function Wc(e){return V.patch(`/api/settings/files`,e)}function Gc(e){return V.get(`/api/projects/${encodeURIComponent(e)}/settings`)}function Kc(e,t){return V.patch(`/api/projects/${encodeURIComponent(e)}/settings`,t)}function qc({value:e,onChange:t,placeholder:n=`e.g. **/*.log`,disabled:r=!1}){let i=(0,K.useRef)([]);function a(n,r){let i=[...e];i[n]=r,t(i)}function o(n){t(e.filter((e,t)=>t!==n)),setTimeout(()=>{let e=Math.max(n-1,0);i.current[e]?.focus()},0)}function s(){t([...e,``]),setTimeout(()=>{i.current[e.length]?.focus()},0)}function c(t,n){n.key===`Enter`?(n.preventDefault(),e[t]?.trim()&&s()):n.key===`Backspace`&&e[t]===``&&(n.preventDefault(),o(t))}return(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[e.length===0&&(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground py-1`,children:`No patterns. Click "Add pattern" to start.`}),e.map((e,t)=>(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(z,{ref:e=>{i.current[t]=e},value:e,onChange:e=>a(t,e.target.value),onKeyDown:e=>c(t,e),placeholder:n,disabled:r,className:`h-8 text-xs flex-1 font-mono`,"aria-label":`Pattern ${t+1}`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>o(t),disabled:r,"aria-label":`Remove pattern ${t+1}`,className:`shrink-0 flex items-center justify-center p-2.5 rounded-md text-muted-foreground hover:text-destructive hover:bg-destructive/10 transition-colors disabled:opacity-40 disabled:pointer-events-none`,children:(0,q.jsx)(je,{className:`size-3.5`})})]},t)),(0,q.jsxs)(R,{type:`button`,variant:`outline`,size:`sm`,onClick:s,disabled:r,className:`h-8 text-xs gap-1.5 w-full cursor-pointer`,children:[(0,q.jsx)(De,{className:`size-3.5`}),`Add pattern`]})]})}var Jc={filesExclude:[],searchExclude:[],useIgnoreFiles:!0};function Yc(){let e=We(e=>e.activeProject),[t,n]=(0,K.useState)(`global`),[r,i]=(0,K.useState)([]),[a,o]=(0,K.useState)([]),[s,c]=(0,K.useState)(!0),[l,u]=(0,K.useState)(!1),[d,f]=(0,K.useState)(!1),[p,m]=(0,K.useState)(null),[h,g]=(0,K.useState)(!1),_=(0,K.useRef)(null);(0,K.useEffect)(()=>{_.current?.abort();let n=new AbortController;return _.current=n,g(!0),m(null),(async()=>{try{if(t===`global`){let e=await Uc();if(n.signal.aborted)return;i(e.filesExclude),o(e.searchExclude),c(e.useIgnoreFiles)}else{if(!e)return;let t=await Gc(e.name);if(n.signal.aborted)return;let r=t.files??{};i(r.filesExclude??Jc.filesExclude),o(r.searchExclude??Jc.searchExclude),c(r.useIgnoreFiles??Jc.useIgnoreFiles)}}catch(e){if(n.signal.aborted)return;m(e.message)}finally{n.signal.aborted||g(!1)}})(),()=>n.abort()},[t,e?.name]);let v=async()=>{u(!0),f(!1),m(null);try{let n={filesExclude:r.filter(e=>e.trim()!==``),searchExclude:a.filter(e=>e.trim()!==``),useIgnoreFiles:s};if(t===`global`)await Wc(n);else{if(!e)throw Error(`No active project`);await Kc(e.name,{files:n})}let i=Ba.getState();i.invalidateIndex(),e&&i.loadIndex(e.name),f(!0),setTimeout(()=>f(!1),2e3)}catch(e){m(e.message)}finally{u(!1)}},y=!!e;return(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`File Filters`}),(0,q.jsxs)(`div`,{className:`flex gap-1`,children:[(0,q.jsx)(`button`,{type:`button`,onClick:()=>n(`global`),className:`flex-1 py-1.5 rounded-md text-xs font-medium transition-colors cursor-pointer ${t===`global`?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground hover:bg-accent`}`,children:`Global`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>y&&n(`project`),disabled:!y,title:y?void 0:`Open a project to edit per-project overrides`,className:`flex-1 py-1.5 rounded-md text-xs font-medium transition-colors cursor-pointer disabled:opacity-40 disabled:cursor-not-allowed ${t===`project`?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground hover:bg-accent`}`,children:e?e.name:`Per-project`})]}),t===`project`&&e&&(0,q.jsxs)(`p`,{className:`text-[11px] text-muted-foreground -mt-2`,children:[`Overrides for `,(0,q.jsx)(`span`,{className:`font-medium`,children:e.name}),`. Leave empty to use global settings.`]}),h?(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Loading...`}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(L,{className:`text-xs`,children:`Files to Exclude`}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Glob patterns hidden from the file tree and palette.`}),(0,q.jsx)(qc,{value:r,onChange:i,placeholder:`e.g. **/*.log or node_modules/**`,disabled:l})]}),(0,q.jsx)(_c,{}),(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(L,{className:`text-xs`,children:`Search to Exclude`}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Glob patterns excluded from file index / palette search.`}),(0,q.jsx)(qc,{value:a,onChange:o,placeholder:`e.g. dist/** or **/*.min.js`,disabled:l})]}),(0,q.jsx)(_c,{}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(L,{className:`text-xs`,children:`Use .gitignore rules`}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Respect .gitignore when filtering the file tree and index.`})]}),(0,q.jsx)(ie,{checked:s,onCheckedChange:c,disabled:l})]}),p&&(0,q.jsx)(`p`,{className:`text-[11px] text-destructive`,children:p}),(0,q.jsx)(R,{onClick:v,disabled:l||h,size:`sm`,className:`h-8 text-xs w-full cursor-pointer`,children:l?`Saving...`:d?`Saved`:`Save`})]})]})}function Xc(e){let t=(e+`=`.repeat((4-e.length%4)%4)).replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t);return Uint8Array.from(n,e=>e.charCodeAt(0))}function Zc(){let[e,t]=(0,K.useState)(`default`),[n,r]=(0,K.useState)(!1),[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(null);return(0,K.useEffect)(()=>{`Notification`in window&&t(Notification.permission),r(localStorage.getItem(`ppm-push-subscribed`)===`true`)},[]),{permission:e,isSubscribed:n,loading:i,error:o,subscribe:(0,K.useCallback)(async()=>{a(!0),s(null);try{let e=await Notification.requestPermission();if(t(e),e!==`granted`){s(`Permission denied`);return}if(!navigator.serviceWorker?.controller&&!navigator.serviceWorker?.ready){s(`Service worker not available (dev mode?)`);return}let n=await Promise.race([navigator.serviceWorker.ready,new Promise((e,t)=>setTimeout(()=>t(Error(`Service worker timeout`)),5e3))]);if(!n)throw Error(`Service worker not ready`);let i={},a=Pe();a&&(i.Authorization=`Bearer ${a}`);let o=await(await fetch(`/api/push/vapid-key`,{headers:i})).json();if(!o.ok)throw Error(o.error||`Failed to get VAPID key`);let c=await n.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:Xc(o.data.publicKey).buffer});await fetch(`/api/push/subscribe`,{method:`POST`,headers:{...i,"Content-Type":`application/json`},body:JSON.stringify(c.toJSON())}),r(!0),localStorage.setItem(`ppm-push-subscribed`,`true`)}catch(e){s(e instanceof Error?e.message:`Subscribe failed`),console.error(`[push] Subscribe failed:`,e)}finally{a(!1)}},[]),unsubscribe:(0,K.useCallback)(async()=>{a(!0);try{let e=await(await navigator.serviceWorker.ready).pushManager.getSubscription();if(e){let t={"Content-Type":`application/json`},n=Pe();n&&(t.Authorization=`Bearer ${n}`),await fetch(`/api/push/subscribe`,{method:`DELETE`,headers:t,body:JSON.stringify({endpoint:e.endpoint})}),await e.unsubscribe()}r(!1),localStorage.removeItem(`ppm-push-subscribed`)}catch(e){console.error(`[push] Unsubscribe failed:`,e)}finally{a(!1)}},[])}}var Qc=[{value:`light`,label:`Light`,icon:Dn},{value:`dark`,label:`Dark`,icon:an},{value:`system`,label:`System`,icon:rn}],$c=`PushManager`in window&&`serviceWorker`in navigator,el=/iPhone|iPad/.test(navigator.userAgent)&&!window.matchMedia(`(display-mode: standalone)`).matches,tl=[{value:`ai`,label:`AI Provider`,subtitle:`Model, execution mode, limits`,icon:se},{value:`notifications`,label:`Notifications`,subtitle:`Push & Telegram alerts`,icon:tt},{value:`clawbot`,label:`PPMBot`,subtitle:`Telegram AI bot`,icon:se},{value:`proxy`,label:`API Proxy`,subtitle:`Expose accounts as Anthropic API`,icon:ue},{value:`shortcuts`,label:`Keyboard Shortcuts`,subtitle:`Customize key bindings`,icon:Kt},{value:`mcp`,label:`MCP Servers`,subtitle:`Model Context Protocol tools`,icon:fn},{value:`extensions`,label:`Extensions`,subtitle:`Install and manage extensions`,icon:hn},{value:`files`,label:`File Filters`,subtitle:`Exclude patterns, ignore files`,icon:Pt}];function nl(){let{theme:e,setTheme:t,deviceName:n,setDeviceName:r,version:i,jiraEnabled:a,setJiraEnabled:o}=Fe(hs(e=>({theme:e.theme,setTheme:e.setTheme,deviceName:e.deviceName,setDeviceName:e.setDeviceName,version:e.version,jiraEnabled:e.jiraEnabled,setJiraEnabled:e.setJiraEnabled}))),{permission:s,isSubscribed:c,loading:l,error:u,subscribe:d,unsubscribe:f}=Zc(),[p,m]=(0,K.useState)(null),[h,g]=(0,K.useState)(n??``),[_,v]=(0,K.useState)(!1),[y,b]=(0,K.useState)(!1),x=(0,K.useRef)(void 0),S=h.trim()!==(n??``),C=(0,K.useCallback)(async()=>{if(S){v(!0);try{await r(h),b(!0),clearTimeout(x.current),x.current=setTimeout(()=>b(!1),2e3)}finally{v(!1)}}},[h,S,r]);if(p){let e=tl.find(e=>e.value===p),t=e.icon;return(0,q.jsxs)(`div`,{className:`h-full w-full flex flex-col`,children:[(0,q.jsxs)(`div`,{className:`shrink-0 px-2 pt-3 pb-1 flex items-center gap-1`,children:[(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:`size-8 cursor-pointer shrink-0`,onClick:()=>m(null),children:(0,q.jsx)(ee,{className:`size-4`})}),(0,q.jsx)(t,{className:`size-4 text-muted-foreground shrink-0`}),(0,q.jsx)(`h2`,{className:`text-sm font-semibold truncate`,children:e.label})]}),(0,q.jsx)(_c,{}),(0,q.jsx)(gs,{className:`flex-1 min-h-0`,children:(0,q.jsxs)(`div`,{className:`p-3`,children:[p===`ai`&&(0,q.jsx)(oe,{compact:!0}),p===`notifications`&&(0,q.jsx)(rl,{isSubscribed:c,loading:l,permission:s,pushError:u,subscribe:d,unsubscribe:f}),p===`clawbot`&&(0,q.jsx)(Vc,{}),p===`proxy`&&(0,q.jsx)(Ec,{}),p===`shortcuts`&&(0,q.jsx)(xc,{}),p===`mcp`&&(0,q.jsx)(Rc,{}),p===`extensions`&&(0,q.jsx)(Bc,{}),p===`files`&&(0,q.jsx)(Yc,{})]})})]})}return(0,q.jsxs)(`div`,{className:`h-full w-full flex flex-col`,children:[(0,q.jsx)(`div`,{className:`shrink-0 px-3 pt-3 pb-1`,children:(0,q.jsx)(`h2`,{className:`text-sm font-semibold`,children:`Settings`})}),(0,q.jsx)(gs,{className:`flex-1 min-h-0`,children:(0,q.jsxs)(`div`,{className:`p-3 space-y-4`,children:[(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Device Name`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(z,{value:h,onChange:e=>g(e.target.value),onKeyDown:e=>{e.key===`Enter`&&C()},placeholder:`My Device`,className:`h-8 text-xs flex-1`,maxLength:100}),(0,q.jsx)(R,{variant:y?`default`:`outline`,size:`sm`,className:`h-8 text-xs px-3 cursor-pointer`,disabled:!S||_,onClick:C,children:_?`...`:y?(0,q.jsx)(le,{className:`size-3.5`}):`Save`})]}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Shown in page title and synced to PPM Cloud.`})]}),(0,q.jsx)(Hc,{}),(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Theme`}),(0,q.jsx)(`div`,{className:`flex gap-1.5`,children:Qc.map(n=>{let r=n.icon;return(0,q.jsxs)(R,{variant:e===n.value?`default`:`outline`,size:`sm`,onClick:()=>t(n.value),className:H(`flex-1 gap-1.5 text-xs h-8 cursor-pointer`,e===n.value&&`ring-2 ring-primary`),children:[(0,q.jsx)(r,{className:`size-3.5`}),n.label]},n.value)})})]}),(0,q.jsx)(`section`,{className:`space-y-1`,children:(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(ae,{className:`size-4 text-muted-foreground`}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`p`,{className:`text-xs font-medium`,children:`Jira Watcher`}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Auto-debug Jira tickets`})]})]}),(0,q.jsx)(ie,{checked:a,onCheckedChange:o})]})}),(0,q.jsx)(_c,{}),(0,q.jsx)(`nav`,{className:`space-y-1`,"aria-label":`Settings categories`,children:tl.map(e=>{let t=e.icon;return(0,q.jsxs)(`button`,{onClick:()=>m(e.value),className:`w-full flex items-center gap-3 px-2.5 py-2.5 rounded-lg hover:bg-accent/50 active:bg-accent transition-colors cursor-pointer text-left group`,children:[(0,q.jsx)(`div`,{className:`size-8 rounded-md bg-muted flex items-center justify-center shrink-0 group-hover:bg-accent`,children:(0,q.jsx)(t,{className:`size-4 text-muted-foreground`})}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,q.jsx)(`p`,{className:`text-xs font-medium text-foreground truncate`,children:e.label}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground truncate`,children:e.subtitle})]}),(0,q.jsx)(pe,{className:`size-4 text-muted-foreground shrink-0`})]},e.value)})}),(0,q.jsx)(_c,{}),(0,q.jsxs)(`section`,{className:`space-y-1 pb-2`,children:[(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`PPM — Personal Project Manager`}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`A mobile-first web IDE for managing your projects.`}),i&&(0,q.jsxs)(`p`,{className:`text-[11px] text-muted-foreground tabular-nums`,children:[`Version `,i]})]})]})})]})}function rl({isSubscribed:e,loading:t,permission:n,pushError:r,subscribe:i,unsubscribe:a}){return(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Push Notifications`}),$c?(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[e?(0,q.jsx)(nt,{className:`size-3.5`}):(0,q.jsx)(M,{className:`size-3.5`}),(0,q.jsx)(`span`,{className:`text-xs`,children:`Push notifications`})]}),(0,q.jsx)(R,{variant:e?`default`:`outline`,size:`sm`,className:`h-7 text-xs cursor-pointer`,disabled:t||n===`denied`,onClick:()=>e?a():i(),children:t?`...`:e?`On`:`Off`})]}),e&&(0,q.jsx)(R,{variant:`outline`,size:`sm`,className:`h-7 text-xs w-full cursor-pointer`,onClick:()=>{new Notification(`PPM Test`,{body:`Push notifications are working!`})},children:`Test notification`}),r&&(0,q.jsx)(`p`,{className:`text-[11px] text-destructive`,children:r}),n===`denied`&&(0,q.jsx)(`p`,{className:`text-[11px] text-destructive`,children:`Notifications blocked. Enable in browser settings.`}),el&&(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`On iOS, install PPM to Home Screen for push notifications.`})]}):(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Push notifications not supported in this browser.`})]}),(0,q.jsx)(_c,{}),(0,q.jsxs)(`section`,{className:`space-y-1`,children:[(0,q.jsx)(`h3`,{className:`text-xs font-medium text-muted-foreground`,children:`Telegram`}),(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Telegram notifications are sent to all approved devices in PPMBot settings. Configure your bot token and pair devices there.`})]})]})}function il({connId:e,schemas:t,isSingleSchema:n,filter:r,expandedTables:i,loadingColumns:a,columnCache:o,columnErrors:s,onToggleTable:c,onOpenTable:l}){let u=r.toLowerCase();return(0,q.jsxs)(`div`,{className:`overflow-y-auto max-h-[40vh]`,children:[Array.from(t.entries()).map(([t,r])=>{let d=u?r.filter(e=>e.tableName.toLowerCase().includes(u)):r;return d.length===0?null:(0,q.jsxs)(`div`,{children:[!n&&(0,q.jsx)(`p`,{className:`px-2 py-0.5 text-[9px] font-semibold text-text-subtle uppercase tracking-wider`,children:t}),d.map(t=>{let n=`${e}:${t.schemaName}.${t.tableName}`,r=i.has(n),u=a.has(n),d=o?.get(n),f=s?.has(n);return(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1 pl-2 pr-2 py-0.5 hover:bg-surface-elevated transition-colors group/table`,children:[(0,q.jsx)(`button`,{onClick:()=>c(e,t.tableName,t.schemaName),className:`shrink-0 text-text-subtle hover:text-foreground transition-colors`,children:r?(0,q.jsx)(ce,{className:`size-2.5`}):(0,q.jsx)(pe,{className:`size-2.5`})}),(0,q.jsx)(fe,{className:`size-2.5 shrink-0 text-text-subtle`}),(0,q.jsx)(`button`,{onClick:()=>l(t.tableName,t.schemaName),className:`flex-1 text-left text-[11px] text-text-secondary hover:text-foreground transition-colors truncate`,children:t.tableName}),(0,q.jsx)(`span`,{className:`text-[9px] text-text-subtle`,children:t.rowCount})]}),r&&(0,q.jsxs)(`div`,{className:`ml-[18px] border-l border-dotted border-border pl-2`,children:[u&&(0,q.jsx)(`p`,{className:`text-[9px] text-text-subtle px-1 py-0.5`,children:`Loading…`}),f&&(0,q.jsx)(`p`,{className:`text-[9px] text-red-500 px-1 py-0.5`,children:`Failed to load columns`}),d&&d.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center gap-1 px-1 py-px text-[10px] text-text-subtle`,title:e.fk?`FK → ${e.fk.table}.${e.fk.column}`:void 0,children:[e.pk&&(0,q.jsx)(Gt,{className:`size-2.5 text-amber-500 shrink-0`}),e.fk&&(0,q.jsx)(Jt,{className:`size-2.5 text-blue-400 shrink-0`}),!e.pk&&!e.fk&&(0,q.jsx)(`span`,{className:`size-2.5 shrink-0`}),(0,q.jsxs)(`span`,{className:`truncate`,children:[e.name,e.nullable?`?`:``]}),(0,q.jsx)(`span`,{className:`ml-auto text-[9px] text-text-subtle/60 shrink-0`,children:e.type})]},e.name)),!u&&!f&&!d&&(0,q.jsx)(`p`,{className:`text-[9px] text-text-subtle px-1 py-0.5`,children:`No columns`})]})]},n)})]},t)}),r&&Array.from(t.values()).every(e=>!e.some(e=>e.tableName.toLowerCase().includes(u)))&&(0,q.jsx)(`p`,{className:`text-[10px] text-text-subtle px-2 py-1`,children:`No match`})]})}function al({conn:e,isExpanded:t,isRefreshing:n,tables:r,schemas:i,isSingleSchema:a,filter:o,expandedTables:s,loadingColumns:c,columnCache:l,columnErrors:u,refreshError:d,hasGroup:f,onToggle:p,onRefresh:m,onEdit:h,onDelete:g,onOpenTable:_,onToggleTable:v,onFilterChange:y}){let b=()=>p(e.id,!t&&r.length===0);return(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:H(`group flex items-center gap-1 py-1 hover:bg-surface-elevated transition-colors`,f?`pl-3 pr-2`:`px-2`),children:[(0,q.jsx)(`button`,{onClick:b,className:`shrink-0 text-text-subtle hover:text-foreground transition-colors`,children:t?(0,q.jsx)(ce,{className:`size-3`}):(0,q.jsx)(pe,{className:`size-3`})}),(0,q.jsx)(`span`,{className:`shrink-0 size-2 rounded-full border border-border`,style:{backgroundColor:e.color??`transparent`}}),(0,q.jsx)(`button`,{className:`flex-1 text-left text-xs truncate hover:text-primary transition-colors`,onClick:b,children:e.name}),(0,q.jsx)(`span`,{className:`shrink-0 text-[9px] text-text-subtle uppercase px-1 rounded bg-surface-elevated`,children:e.type===`postgres`?`PG`:`DB`}),e.readonly===1&&(0,q.jsx)(`span`,{title:`Readonly`,children:(0,q.jsx)(j,{className:`shrink-0 size-2.5 text-text-subtle`})}),(0,q.jsxs)(`div`,{className:`flex can-hover:hidden can-hover:group-hover:flex items-center gap-0.5 shrink-0`,children:[(0,q.jsx)(`button`,{onClick:()=>m(e.id),disabled:n,className:`p-0.5 text-text-subtle hover:text-foreground transition-colors`,title:`Refresh tables`,children:(0,q.jsx)(Ae,{className:H(`size-3`,n&&`animate-spin`)})}),(0,q.jsx)(`button`,{onClick:()=>h(e),className:`p-0.5 text-text-subtle hover:text-foreground transition-colors`,title:`Edit`,children:(0,q.jsx)(re,{className:`size-3`})}),(0,q.jsx)(`button`,{onClick:()=>g(e.id),className:`p-0.5 text-text-subtle hover:text-red-500 transition-colors`,title:`Delete`,children:(0,q.jsx)(ke,{className:`size-3`})})]})]}),t&&(0,q.jsxs)(`div`,{className:`ml-[11px] border-l border-dashed border-border pl-1`,children:[n&&r.length===0&&(0,q.jsx)(`p`,{className:`text-[10px] text-text-subtle px-2 py-1`,children:`Loading…`}),!n&&r.length===0&&(d?(0,q.jsx)(`p`,{className:`text-[10px] text-red-500 px-2 py-1 break-all`,children:d}):(0,q.jsx)(`p`,{className:`text-[10px] text-text-subtle px-2 py-1`,children:`No tables cached`})),r.length>0&&(0,q.jsxs)(q.Fragment,{children:[r.length>5&&(0,q.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-0.5`,children:[(0,q.jsx)(Te,{className:`size-2.5 text-text-subtle shrink-0`}),(0,q.jsx)(`input`,{type:`text`,value:o,onChange:t=>y(e.id,t.target.value),placeholder:`Filter tables…`,className:`w-full text-[10px] bg-transparent border-none outline-none text-foreground placeholder:text-text-subtle`})]}),(0,q.jsx)(il,{connId:e.id,schemas:i,isSingleSchema:a,filter:o,expandedTables:s,loadingColumns:c,columnCache:l,columnErrors:u,onToggleTable:v,onOpenTable:(t,n)=>_(e,t,n)})]})]})]})}function ol({connections:e,cachedTables:t,refreshErrors:n,onOpenTable:r,onRefreshTables:i,onEdit:a,onDelete:o,onFetchColumns:s,columnCache:c}){let[l,u]=(0,K.useState)(new Set),[d,f]=(0,K.useState)(new Set([`__ungrouped__`])),[p,m]=(0,K.useState)(new Set),[h,g]=(0,K.useState)(new Set),[_,v]=(0,K.useState)(new Map),[y,b]=(0,K.useState)(new Set),[x,S]=(0,K.useState)(new Set),C=(e,t)=>{u(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),t&&E(e)},w=e=>{f(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},T=async(e,t,n)=>{let r=`${e}:${n}.${t}`;if(p.has(r)){m(e=>{let t=new Set(e);return t.delete(r),t});return}if(m(e=>new Set(e).add(r)),s&&!c?.has(r)){b(e=>new Set(e).add(r)),S(e=>{let t=new Set(e);return t.delete(r),t});try{await s(e,t,n)}catch{S(e=>new Set(e).add(r))}b(e=>{let t=new Set(e);return t.delete(r),t})}},E=async e=>{g(t=>new Set(t).add(e));try{await i(e)}finally{g(t=>{let n=new Set(t);return n.delete(e),n})}},D=(e,t)=>{v(n=>new Map(n).set(e,t))},{groups:O,groupKeys:k}=(0,K.useMemo)(()=>{let t={};for(let n of e){let e=n.group_name??`__ungrouped__`;(t[e]??=[]).push(n)}return{groups:t,groupKeys:Object.keys(t).sort((e,t)=>e===`__ungrouped__`?1:t===`__ungrouped__`?-1:e.localeCompare(t))}},[e]),ee=(0,K.useMemo)(()=>{let n=new Map;for(let r of e){let e=t.get(r.id)??[],i=new Map;for(let t of e){let e=t.schemaName;(i.get(e)??i.set(e,[]).get(e)).push(t)}n.set(r.id,i)}return n},[e,t]);return e.length===0?(0,q.jsxs)(`p`,{className:`px-4 py-6 text-xs text-text-subtle text-center`,children:[`No connections yet.`,(0,q.jsx)(`br`,{}),`Click + to add one.`]}):(0,q.jsx)(`div`,{className:`py-1`,children:k.map(e=>{let i=d.has(e),s=e===`__ungrouped__`?`Ungrouped`:e,u=O[e],f=k.length>1||e!==`__ungrouped__`;return(0,q.jsxs)(`div`,{children:[f&&(0,q.jsxs)(`button`,{onClick:()=>w(e),className:`w-full flex items-center gap-1 px-2 py-1 text-[10px] font-semibold text-text-subtle uppercase tracking-wider hover:text-text-secondary transition-colors`,children:[i?(0,q.jsx)(ce,{className:`size-3`}):(0,q.jsx)(pe,{className:`size-3`}),s]}),i&&(0,q.jsx)(`div`,{className:f?`ml-[11px] border-l border-dashed border-border`:``,children:u.map(e=>(0,q.jsx)(al,{conn:e,isExpanded:l.has(e.id),isRefreshing:h.has(e.id),tables:t.get(e.id)??[],schemas:ee.get(e.id)??new Map,isSingleSchema:(ee.get(e.id)?.size??0)<=1,filter:_.get(e.id)??``,expandedTables:p,loadingColumns:y,columnCache:c,columnErrors:x,refreshError:n?.get(e.id),hasGroup:f,onToggle:C,onRefresh:E,onEdit:a,onDelete:o,onOpenTable:r,onToggleTable:T,onFilterChange:D},e.id))})]},e)})})}var sl=`ppm-recent-paths`,cl=5,ll=[{name:`Home`,path:`~`,icon:Ht},{name:`Desktop`,path:`~/Desktop`,icon:rn},{name:`Documents`,path:`~/Documents`,icon:Ot},{name:`Downloads`,path:`~/Downloads`,icon:Ee}];function ul(){try{return JSON.parse(localStorage.getItem(sl)??`[]`)}catch{return[]}}function dl(e){let t=[e,...ul().filter(t=>t!==e)].slice(0,cl);localStorage.setItem(sl,JSON.stringify(t))}function fl(e){return e==null?``:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function pl(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4);if(n<1)return`now`;if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function ml(e){if(e.type===`directory`)return(0,q.jsx)(Lt,{className:`size-4 text-blue-500`});let t=e.name.split(`.`).pop()?.toLowerCase();return t&&[`db`,`sqlite`,`sqlite3`].includes(t)?(0,q.jsx)(fe,{className:`size-4 text-amber-500`}):(0,q.jsx)(At,{className:`size-4 text-text-subtle`})}function hl(e,t){if(!t?.length)return!0;let n=`.`+e.split(`.`).pop()?.toLowerCase();return t.includes(n)}function gl({open:e,mode:t,accept:n,root:r,title:i,onSelect:a,onCancel:o}){let[s,c]=(0,K.useState)([]),[l,u]=(0,K.useState)(``),[d,f]=(0,K.useState)(null),[p,m]=(0,K.useState)([]),[h,g]=(0,K.useState)(null),[_,v]=(0,K.useState)(!1),[y,b]=(0,K.useState)(null),[x,S]=(0,K.useState)(``),[C,w]=(0,K.useState)(``),[T,E]=(0,K.useState)(!1),[D,O]=(0,K.useState)([]),[k,te]=(0,K.useState)(null),[ne,re]=(0,K.useState)(!1),[j,M]=(0,K.useState)(null),N=(0,K.useRef)(null),ie=(0,K.useRef)(null),ae=typeof window<`u`&&window.innerWidth<768,P=t===`folder`?`Select Folder`:t===`file`?`Select File`:`Select File or Folder`,F=(0,K.useCallback)(async(e,t)=>{v(!0),b(null),g(null),S(``);try{let n=new URLSearchParams;e&&n.set(`path`,e),t&&n.set(`showHidden`,`true`);let r=await V.get(`/api/fs/browse?${n}`);c(r.entries),u(r.current),f(r.parent),m(r.breadcrumbs),w(r.current)}catch(e){b(e.message||`Failed to browse directory`)}finally{v(!1)}},[]);(0,K.useEffect)(()=>{e&&(F(r??`~`,T),O(ul()))},[e,r,F,T]);let I=e=>F(e,T),oe=()=>{let e=!T;E(e),F(l||(r??`~`),e)},L=e=>{e.key===`Enter`&&C.trim()&&F(C.trim())},se=e=>{e.type===`directory`?t===`file`?I(e.path):g(e.path):t!==`folder`&&g(e.path)},ce=e=>{e.type===`directory`&&I(e.path)},le=()=>{h&&(dl(l),a(h))},ue=async()=>{if(!k?.trim()||!l)return;let e=`${l}/${k.trim()}`;re(!0),M(null);try{await V.post(`/api/fs/mkdir`,{path:e}),te(null),M(null),await F(l,T),g(e)}catch(e){M(e.message||`Failed to create folder`)}finally{re(!1)}},de=async()=>{if(!h)return;let e=s.find(e=>e.path===h);if(!(!e||e.type!==`directory`)&&window.confirm(`Delete folder "${e.name}"? This cannot be undone.`))try{await V.del(`/api/fs/rmdir`,{path:h}),g(null),await F(l,T)}catch(e){b(e.message||`Failed to delete folder`)}},fe=h?s.some(e=>e.path===h&&e.type===`directory`):!1,me=s.filter(e=>!(x&&!e.name.toLowerCase().includes(x.toLowerCase())||e.type===`file`&&n?.length&&!hl(e.name,n))),he=e=>e.type===`directory`?t!==`file`:t!==`folder`,ge=(0,q.jsxs)(`div`,{className:`flex flex-col flex-1 min-h-0`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 px-3 py-2 border-b border-border`,children:[d&&(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0`,onClick:()=>I(d),children:(0,q.jsx)(ee,{className:`size-4`})}),(0,q.jsx)(z,{value:C,onChange:e=>w(e.target.value),onKeyDown:L,placeholder:`Type path and press Enter`,className:`h-7 text-xs font-mono flex-1`})]}),(0,q.jsx)(`div`,{className:`flex items-center gap-0.5 px-3 py-1.5 border-b border-border overflow-x-auto text-xs`,children:p.map((e,t)=>(0,q.jsxs)(`span`,{className:`flex items-center shrink-0`,children:[t>0&&(0,q.jsx)(pe,{className:`size-3 text-text-subtle mx-0.5`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>I(e.path),className:`hover:text-primary hover:underline text-text-secondary`,children:e.name})]},e.path))}),(0,q.jsxs)(`div`,{className:`flex flex-1 min-h-0 overflow-hidden`,children:[!ae&&(0,q.jsxs)(`div`,{className:`w-36 border-r border-border py-2 px-1 shrink-0 overflow-y-auto`,children:[ll.map(e=>(0,q.jsxs)(`button`,{type:`button`,onClick:()=>I(e.path),className:H(`flex items-center gap-2 w-full px-2 py-1 text-xs rounded-md hover:bg-surface-hover text-left`,l.endsWith(e.name)&&`bg-primary/10 text-primary`),children:[(0,q.jsx)(e.icon,{className:`size-3.5`}),e.name]},e.path)),D.length>0&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`text-[10px] text-text-subtle px-2 mt-3 mb-1 font-medium`,children:`Recent`}),D.map(e=>(0,q.jsxs)(`button`,{type:`button`,onClick:()=>I(e),className:`flex items-center gap-2 w-full px-2 py-1 text-xs rounded-md hover:bg-surface-hover text-left truncate`,children:[(0,q.jsx)(xe,{className:`size-3 shrink-0`}),(0,q.jsx)(`span`,{className:`truncate`,children:e.split(`/`).pop()})]},e))]})]}),(0,q.jsx)(gs,{className:`flex-1 min-h-0`,children:_?(0,q.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,q.jsx)(G,{className:`size-5 animate-spin text-text-subtle`})}):y?(0,q.jsx)(`div`,{className:`text-center py-8 text-xs text-red-500`,children:y}):me.length===0?(0,q.jsx)(`div`,{className:`text-center py-8 text-xs text-text-subtle`,children:x?`No matching entries`:`Empty directory`}):(0,q.jsxs)(`div`,{ref:ie,className:`py-1`,children:[k!=null&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1.5 bg-primary/5 border-b border-border`,children:[(0,q.jsx)(Nt,{className:`size-4 text-primary shrink-0`}),(0,q.jsx)(z,{ref:N,value:k,onChange:e=>te(e.target.value),onKeyDown:e=>{e.key===`Enter`&&ue(),e.key===`Escape`&&te(null)},placeholder:`Folder name`,className:`h-6 text-xs flex-1`,disabled:ne,autoFocus:!0}),ne&&(0,q.jsx)(G,{className:`size-3.5 animate-spin text-primary shrink-0`})]}),j&&(0,q.jsx)(`div`,{className:`px-3 py-1 text-[11px] text-destructive bg-destructive/5 border-b border-border`,children:j})]}),me.map(e=>{let t=he(e);return(0,q.jsxs)(`button`,{type:`button`,onClick:()=>se(e),onDoubleClick:()=>ce(e),className:H(`flex items-center gap-2 w-full px-3 py-1.5 text-left text-xs transition-colors`,h===e.path?`bg-primary/10 text-primary`:t?`hover:bg-surface-hover text-text-primary`:`opacity-40 cursor-default`),disabled:!t&&e.type===`file`,children:[ml(e),(0,q.jsx)(`span`,{className:H(`flex-1 truncate`,e.type===`directory`&&`font-medium`),children:e.name}),(0,q.jsx)(`span`,{className:`text-text-subtle text-[10px] shrink-0 w-14 text-right`,children:fl(e.size)}),(0,q.jsx)(`span`,{className:`text-text-subtle text-[10px] shrink-0 w-14 text-right`,children:pl(e.modified)})]},e.path)})]})})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 border-t border-border shrink-0`,children:[(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0`,onClick:()=>{te(``),M(null),setTimeout(()=>N.current?.focus(),50)},title:`New Folder`,children:(0,q.jsx)(Nt,{className:`size-3.5`})}),(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:`size-7 shrink-0 text-destructive/70 hover:text-destructive disabled:opacity-30`,onClick:de,disabled:!fe,title:`Delete selected folder`,children:(0,q.jsx)(ke,{className:`size-3.5`})}),(0,q.jsx)(R,{variant:`ghost`,size:`icon`,className:H(`size-7 shrink-0`,T&&`text-primary`),onClick:oe,title:T?`Hide hidden files`:`Show hidden files`,children:T?(0,q.jsx)(Oe,{className:`size-3.5`}):(0,q.jsx)(A,{className:`size-3.5`})}),n?.length?(0,q.jsx)(`span`,{className:`text-[10px] text-text-subtle bg-surface-hover px-1.5 py-0.5 rounded`,children:n.join(`, `)}):null,(0,q.jsx)(`div`,{className:`flex-1 max-w-48`,children:(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(Te,{className:`absolute left-2 top-1/2 -translate-y-1/2 size-3 text-text-subtle`}),(0,q.jsx)(z,{value:x,onChange:e=>S(e.target.value),placeholder:`Filter...`,className:`h-6 text-[11px] pl-6`})]})}),(0,q.jsx)(`div`,{className:`flex-1`}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,onClick:o,className:`h-7 text-xs`,children:`Cancel`}),(0,q.jsx)(R,{size:`sm`,onClick:le,disabled:!h,className:`h-7 text-xs`,children:`Select`})]})]});return(0,q.jsx)(_e,{open:e,onOpenChange:e=>{e||o()},children:(0,q.jsxs)(ye,{className:H(`p-0 gap-0 overflow-hidden flex flex-col`,ae?`max-w-[95vw] h-[85vh]`:`max-w-2xl h-[70vh]`),children:[(0,q.jsx)(ve,{className:`px-3 py-2 border-b border-border`,children:(0,q.jsx)(be,{className:`text-sm`,children:i??P})}),ge]})})}function _l({mode:e,accept:t,root:n,title:r,onSelect:i,className:a}){let[o,s]=(0,K.useState)(!1);return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(R,{type:`button`,variant:`ghost`,size:`icon`,className:H(`size-8 shrink-0`,a),onClick:()=>s(!0),title:r??`Browse...`,children:(0,q.jsx)(Mt,{className:`size-4`})}),(0,q.jsx)(gl,{open:o,mode:e,accept:t,root:n,title:r,onSelect:e=>{i(e),s(!1)},onCancel:()=>s(!1)})]})}var vl=[`#ef4444`,`#f97316`,`#eab308`,`#22c55e`,`#06b6d4`,`#3b82f6`,`#8b5cf6`,`#ec4899`,`#6b7280`,`#000000`];function yl({value:e,onChange:t}){return(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,q.jsx)(`button`,{type:`button`,onClick:()=>t(null),className:H(`size-6 rounded-full border-2 transition-all`,e?`border-border hover:scale-105`:`border-primary scale-110`,`bg-transparent relative`),title:`No color`,children:(0,q.jsx)(`span`,{className:`absolute inset-0 flex items-center justify-center text-[8px] text-text-subtle`,children:`×`})}),vl.map(n=>(0,q.jsx)(`button`,{type:`button`,onClick:()=>t(n),className:H(`size-6 rounded-full border-2 transition-all hover:scale-105`,e===n?`border-primary scale-110`:`border-transparent`),style:{backgroundColor:n},title:n},n))]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`div`,{className:`size-6 rounded-full border border-border shrink-0`,style:{backgroundColor:e??`transparent`}}),(0,q.jsx)(`input`,{type:`text`,value:e??``,onChange:e=>{let n=e.target.value.trim();if(n===``){t(null);return}/^#[0-9a-fA-F]{6}$/.test(n),t(n)},placeholder:`#3b82f6`,className:`flex-1 h-7 text-xs px-2 rounded-md border border-border bg-background focus:outline-none focus:border-primary font-mono`})]})]})}function bl({open:e,onClose:t,connection:n,onSave:r,onUpdate:i,onTest:a,onTestRaw:o}){let s=!!n,[c,l]=(0,K.useState)({name:``,type:`postgres`,path:``,connectionString:``,groupName:``,color:null,readonly:!0}),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(null),[m,h]=(0,K.useState)(!1),[g,_]=(0,K.useState)(null);(0,K.useEffect)(()=>{if(!e){p(null),_(null);return}l(n?{name:n.name,type:n.type,path:``,connectionString:``,groupName:n.group_name??``,color:n.color,readonly:n.readonly===1}:{name:``,type:`postgres`,path:``,connectionString:``,groupName:``,color:null,readonly:!0})},[e,n]);let v=(e,t)=>{l(n=>({...n,[e]:t})),p(null)};return(0,q.jsx)(_e,{open:e,onOpenChange:e=>{e||t()},children:(0,q.jsxs)(ye,{className:`max-w-md`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:s?`Edit Connection`:`Add Connection`})}),(0,q.jsxs)(`div`,{className:`space-y-3 py-1`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Name *`}),(0,q.jsx)(`input`,{value:c.name,onChange:e=>v(`name`,e.target.value),placeholder:`my-database`,className:`w-full h-8 text-sm px-2.5 rounded-md border border-border bg-background focus:outline-none focus:border-primary`})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Type`}),(0,q.jsxs)(`select`,{value:c.type,onChange:e=>v(`type`,e.target.value),className:`w-full h-8 text-sm px-2 rounded-md border border-border bg-background focus:outline-none focus:border-primary`,children:[(0,q.jsx)(`option`,{value:`postgres`,children:`PostgreSQL`}),(0,q.jsx)(`option`,{value:`sqlite`,children:`SQLite`})]})]}),c.type===`postgres`?(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Connection String *`}),(0,q.jsx)(`input`,{type:`password`,value:c.connectionString,onChange:e=>v(`connectionString`,e.target.value),placeholder:`postgresql://user:pass@host:5432/db`,className:`w-full h-8 text-sm px-2.5 rounded-md border border-border bg-background focus:outline-none focus:border-primary font-mono`})]}):(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`File Path *`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5 items-center`,children:[(0,q.jsx)(`input`,{value:c.path,onChange:e=>v(`path`,e.target.value),placeholder:`/path/to/database.db`,className:`flex-1 h-8 text-sm px-2.5 rounded-md border border-border bg-background focus:outline-none focus:border-primary font-mono`}),(0,q.jsx)(_l,{mode:`file`,accept:[`.db`,`.sqlite`,`.sqlite3`],title:`Browse for SQLite database`,onSelect:e=>v(`path`,e)})]})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Group`}),(0,q.jsx)(`input`,{value:c.groupName,onChange:e=>v(`groupName`,e.target.value),placeholder:`Production`,className:`w-full h-8 text-sm px-2.5 rounded-md border border-border bg-background focus:outline-none focus:border-primary`})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Tab Color`}),(0,q.jsx)(yl,{value:c.color,onChange:e=>v(`color`,e)})]}),s&&(0,q.jsxs)(`div`,{className:`flex items-center justify-between py-1`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`p`,{className:`text-xs font-medium`,children:`Readonly`}),(0,q.jsx)(`p`,{className:`text-[10px] text-text-subtle`,children:`Block non-SELECT queries (AI protection)`})]}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>v(`readonly`,!c.readonly),className:`relative w-9 h-5 rounded-full transition-colors ${c.readonly?`bg-primary`:`bg-border`}`,children:(0,q.jsx)(`span`,{className:`absolute top-0.5 left-0.5 size-4 rounded-full bg-white transition-transform ${c.readonly?`translate-x-4`:``}`})})]}),f&&(0,q.jsx)(`p`,{className:`text-xs ${f.ok?`text-green-500`:`text-red-500`}`,children:f.ok?`✓ Connection successful`:`✗ ${f.error}`}),g&&(0,q.jsx)(`p`,{className:`text-xs text-red-500`,children:g})]}),(0,q.jsxs)(me,{children:[(0,q.jsx)(R,{variant:`outline`,size:`sm`,onClick:async()=>{d(!0),p(null);try{let e;if(s)e=await a(n.id);else if(o){let t=c.type===`postgres`?{type:`postgres`,connectionString:c.connectionString}:{type:`sqlite`,path:c.path};e=await o(c.type,t)}else e={ok:!1,error:`Save connection first`};p(e)}finally{d(!1)}},disabled:u,className:`mr-auto`,children:u?`Testing…`:`Test Connection`}),(0,q.jsx)(R,{variant:`outline`,size:`sm`,onClick:t,children:`Cancel`}),(0,q.jsx)(R,{size:`sm`,onClick:async()=>{if(_(null),!c.name.trim()){_(`Name is required`);return}h(!0);try{if(s&&i){let e=(c.type===`postgres`?c.connectionString.trim():c.path.trim())?c.type===`postgres`?{type:`postgres`,connectionString:c.connectionString}:{type:`sqlite`,path:c.path}:void 0;await i(n.id,{name:c.name.trim(),...e!==void 0&&{connectionConfig:e},groupName:c.groupName.trim()||null,color:c.color,readonly:c.readonly?1:0})}else if(r){let e=c.type===`postgres`?{type:`postgres`,connectionString:c.connectionString}:{type:`sqlite`,path:c.path};await r({type:c.type,name:c.name.trim(),connectionConfig:e,groupName:c.groupName.trim()||void 0,color:c.color??void 0})}t()}catch(e){_(e.message)}finally{h(!1)}},disabled:m,children:m?`Saving…`:s?`Save`:`Add`})]})]})})}function xl({onExport:e,onImport:t}){let[n,r]=(0,K.useState)(!1),i=(0,K.useRef)(null),a=()=>r(!1),o=async()=>{a();try{let t=await e(),n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`ppm-connections-${new Date().toISOString().slice(0,10)}.json`,i.click(),URL.revokeObjectURL(r)}catch(e){alert(`Export failed: ${e.message}`)}},s=async()=>{a();try{let t=await e();await navigator.clipboard.writeText(JSON.stringify(t,null,2)),alert(`Copied ${t.connections.length} connection(s) to clipboard`)}catch(e){alert(`Export failed: ${e.message}`)}},c=async e=>{try{let n=JSON.parse(e),r=n.connections??n;if(!Array.isArray(r)){alert(`Invalid format: expected connections array`);return}let i=await t({connections:r}),a=`Imported ${i.imported} connection(s)`;i.skipped>0&&(a+=`, ${i.skipped} skipped`),i.errors?.length>0&&(a+=`\n\nErrors:\n${i.errors.join(`
18
+ `)}`),alert(a)}catch(e){alert(`Import failed: ${e.message}`)}};return(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(`button`,{onClick:()=>r(e=>!e),className:`flex items-center justify-center size-5 rounded hover:bg-surface-elevated transition-colors text-text-subtle hover:text-foreground`,title:`Import / Export`,children:(0,q.jsx)(gt,{className:`size-3.5`})}),n&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:a}),(0,q.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 z-50 w-44 bg-background border border-border rounded-md shadow-lg py-1 text-xs`,children:[(0,q.jsxs)(`button`,{onClick:o,className:`w-full flex items-center gap-2 px-3 py-1.5 hover:bg-surface-elevated transition-colors text-left`,children:[(0,q.jsx)(Ee,{className:`size-3`}),` Export to file`]}),(0,q.jsxs)(`button`,{onClick:s,className:`w-full flex items-center gap-2 px-3 py-1.5 hover:bg-surface-elevated transition-colors text-left`,children:[(0,q.jsx)(dt,{className:`size-3`}),` Export to clipboard`]}),(0,q.jsx)(`div`,{className:`border-t border-border my-1`}),(0,q.jsxs)(`button`,{onClick:()=>{a(),i.current?.click()},className:`w-full flex items-center gap-2 px-3 py-1.5 hover:bg-surface-elevated transition-colors text-left`,children:[(0,q.jsx)(Nn,{className:`size-3`}),` Import from file`]}),(0,q.jsxs)(`button`,{onClick:async()=>{a();try{let e=await navigator.clipboard.readText();if(!e.trim()){alert(`Clipboard is empty`);return}await c(e)}catch(e){alert(`Clipboard read failed: ${e.message}`)}},className:`w-full flex items-center gap-2 px-3 py-1.5 hover:bg-surface-elevated transition-colors text-left`,children:[(0,q.jsx)(ut,{className:`size-3`}),` Import from clipboard`]})]})]}),(0,q.jsx)(`input`,{ref:i,type:`file`,accept:`.json`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];if(!t)return;let n=new FileReader;n.onload=()=>c(n.result),n.readAsText(t),e.target.value=``}})]})}function Sl(){let[e,t]=(0,K.useState)([]),[n,r]=(0,K.useState)(!0),[i,a]=(0,K.useState)(new Map),[o,s]=(0,K.useState)(new Map),c=(0,K.useCallback)(async()=>{try{t(await V.get(`/api/db/connections`))}catch{}finally{r(!1)}},[]);(0,K.useEffect)(()=>{c()},[c]);let l=(0,K.useCallback)(async e=>{let n=await V.post(`/api/db/connections`,e);return t(e=>[...e,n]),n},[]),u=(0,K.useCallback)(async(e,n)=>{let r=await V.put(`/api/db/connections/${e}`,n);t(t=>t.map(t=>t.id===e?r:t))},[]),d=(0,K.useCallback)(async e=>{await V.del(`/api/db/connections/${e}`),t(t=>t.filter(t=>t.id!==e)),a(t=>{let n=new Map(t);return n.delete(e),n})},[]),f=(0,K.useCallback)(async e=>V.post(`/api/db/connections/${e}/test`),[]),p=(0,K.useCallback)(async(e,t)=>V.post(`/api/db/test`,{type:e,connectionConfig:t}),[]),m=(0,K.useCallback)(async e=>{s(t=>{let n=new Map(t);return n.delete(e),n});try{let t=(await V.get(`/api/db/connections/${e}/tables`)).map(t=>({connectionId:e,tableName:t.name,schemaName:t.schema,rowCount:t.rowCount,cachedAt:new Date().toISOString()}));a(n=>new Map(n).set(e,t))}catch(t){let n=t.message||`Connection failed`;throw s(t=>new Map(t).set(e,n)),t}},[]),[h,g]=(0,K.useState)(new Map),_=(0,K.useRef)(h);return _.current=h,{connections:e,loading:n,cachedTables:i,refreshErrors:o,columnCache:h,createConnection:l,updateConnection:u,deleteConnection:d,testConnection:f,testRawConnection:p,refreshTables:m,fetchColumns:(0,K.useCallback)(async(e,t,n)=>{let r=`${e}:${n??`main`}.${t}`,i=_.current.get(r);if(i)return i;let a=await V.get(`/api/db/connections/${e}/schema?table=${encodeURIComponent(t)}${n?`&schema=${encodeURIComponent(n)}`:``}`);return g(e=>new Map(e).set(r,a)),a},[]),exportConnections:(0,K.useCallback)(async()=>V.get(`/api/db/connections/export`),[]),importConnections:(0,K.useCallback)(async e=>{let t=await V.post(`/api/db/connections/import`,e);await c();let n=t.connections??[];return n.length>0&&Promise.all(n.map(e=>m(e.id).catch(()=>{}))),t},[c,m])}}function Cl(){let{connections:e,loading:t,cachedTables:n,refreshErrors:r,columnCache:i,createConnection:a,updateConnection:o,deleteConnection:s,testConnection:c,testRawConnection:l,refreshTables:u,fetchColumns:d,exportConnections:f,importConnections:p}=Sl(),m=W(e=>e.openTab),[h,g]=(0,K.useState)(!1),[_,v]=(0,K.useState)(null);return(0,q.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b border-border shrink-0`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-semibold text-text-subtle uppercase tracking-wider`,children:`Database`}),(0,q.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,q.jsx)(xl,{onExport:f,onImport:p}),(0,q.jsx)(`button`,{onClick:()=>g(!0),className:`flex items-center justify-center size-5 rounded hover:bg-surface-elevated transition-colors text-text-subtle hover:text-foreground`,title:`Add connection`,children:(0,q.jsx)(De,{className:`size-3.5`})})]})]}),(0,q.jsx)(`div`,{className:`flex-1 overflow-y-auto min-h-0`,children:t?(0,q.jsx)(`p`,{className:`px-4 py-6 text-xs text-text-subtle text-center`,children:`Loading…`}):(0,q.jsx)(ol,{connections:e,cachedTables:n,refreshErrors:r,onOpenTable:(e,t,n)=>{m({type:`database`,title:`${e.name} · ${t}`,projectId:null,closable:!0,metadata:{connectionId:e.id,connectionName:e.name,dbType:e.type,tableName:t,schemaName:n,connectionColor:e.color}})},onRefreshTables:u,onEdit:v,onDelete:async e=>{if(confirm(`Delete this connection?`))try{await s(e)}catch{}},onFetchColumns:d,columnCache:i})}),(0,q.jsx)(bl,{open:h,onClose:()=>g(!1),onSave:async e=>{let t=await a(e);t&&u(t.id).catch(()=>{})},onTest:()=>Promise.resolve({ok:!1,error:`Save connection first`}),onTestRaw:l}),_&&(0,q.jsx)(bl,{open:!!_,onClose:()=>v(null),connection:_,onUpdate:async(e,t)=>{await o(e,t)},onTest:e=>c(e)})]})}function wl(e,t,n,r){if(!e)return null;try{let i=r?e:e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return n&&(i=`\\b${i}\\b`),RegExp(`(${i})`,t?`g`:`gi`)}catch{return null}}function Tl({text:e,re:t}){if(!t)return(0,q.jsx)(`span`,{children:e});try{t.lastIndex=0;let n=e.split(t);return t.lastIndex=0,(0,q.jsx)(`span`,{children:n.map((e,n)=>(t.lastIndex=0,t.test(e)?(0,q.jsx)(`mark`,{className:`bg-yellow-300/40 text-foreground rounded-sm`,children:e},n):e))})}catch{return(0,q.jsx)(`span`,{children:e})}}function El({active:e,onClick:t,title:n,children:r}){return(0,q.jsx)(`button`,{onClick:t,title:n,className:H(`flex items-center justify-center w-6 h-6 rounded border shrink-0`,e?`border-primary text-primary bg-primary/10`:`border-border text-text-subtle hover:text-foreground hover:border-border/80`),children:r})}function Dl(){let{activeProject:e}=We(hs(e=>({activeProject:e.activeProject}))),t=W(e=>e.openTab),[n,r]=(0,K.useState)(``),[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(!1),[c,l]=(0,K.useState)(!1),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(``),[m,h]=(0,K.useState)(``),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(null),[b,x]=(0,K.useState)([]),[S,C]=(0,K.useState)(0),[w,T]=(0,K.useState)(!1),[E,D]=(0,K.useState)(new Set),O=(0,K.useRef)(null),k=(0,K.useRef)(null),ee=(0,K.useCallback)(async(t,n,r,i,a)=>{if(d(!1),!e||!i&&t.length<2||i&&t.length<1){x([]),C(0);return}if(i)try{new RegExp(t)}catch{d(!0),x([]);return}T(!0);try{let o=new URLSearchParams({q:t,caseSensitive:String(n),wholeWord:String(r),regex:String(i)});a&&o.set(`include`,a);let s=await V.get(`${B(e.name)}/files/search?${o}`);x(s.results),C(s.total)}catch{x([])}finally{T(!1)}},[e]);(0,K.useEffect)(()=>(k.current&&clearTimeout(k.current),k.current=setTimeout(()=>ee(n,i,o,c,f),300),()=>{k.current&&clearTimeout(k.current)}),[n,i,o,c,f,ee]),(0,K.useEffect)(()=>{O.current?.focus()},[]);let A=wl(n,i,o,c);function te(n,r){e&&t({type:`editor`,title:n.split(`/`).pop()??n,metadata:{filePath:n,projectName:e.name,lineNumber:r},projectId:e.name,closable:!0})}function ne(e){D(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}async function re(){if(!e||!n||b.length===0||g)return;_(!0),y(null);let t=0;try{for(let r of b){let a=await V.get(`${B(e.name)}/files/read?path=${encodeURIComponent(r.file)}`),s=wl(n,i,o,c);if(!s)continue;s.lastIndex=0;let l=a.content.match(s)??[];if(!l.length)continue;t+=l.length,s.lastIndex=0;let u=a.content.replace(s,m);await V.put(`${B(e.name)}/files/write`,{path:r.file,content:u})}y(t),ee(n,i,o,c,f)}catch{}finally{_(!1)}}return(0,q.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,q.jsxs)(`div`,{className:`p-2 border-b border-border space-y-1.5`,children:[(0,q.jsx)(`div`,{className:`relative flex items-center gap-1`,children:(0,q.jsxs)(`div`,{className:`relative flex-1`,children:[(0,q.jsx)(Te,{className:`absolute left-2 top-1/2 -translate-y-1/2 size-3.5 text-text-subtle pointer-events-none`}),(0,q.jsx)(`input`,{ref:O,value:n,onChange:e=>{r(e.target.value),y(null)},placeholder:e?`Search files…`:`Select a project first`,disabled:!e,className:H(`w-full pl-7 pr-6 py-1 text-xs bg-input border rounded focus:outline-none focus:ring-1 focus:ring-primary/50 disabled:opacity-50`,u?`border-destructive`:`border-border`)}),n&&(0,q.jsx)(`button`,{onClick:()=>{r(``),x([]),C(0),d(!1),y(null)},className:`absolute right-1.5 top-1/2 -translate-y-1/2 text-text-subtle hover:text-foreground`,children:(0,q.jsx)(je,{className:`size-3`})})]})}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(El,{active:i,onClick:()=>a(e=>!e),title:`Match Case (Alt+C)`,children:(0,q.jsx)(it,{className:`size-3.5`})}),(0,q.jsx)(El,{active:o,onClick:()=>{s(e=>!e),c&&l(!1)},title:`Match Whole Word (Alt+W)`,children:(0,q.jsx)(Pn,{className:`size-3.5`})}),(0,q.jsx)(El,{active:c,onClick:()=>{l(e=>!e),o&&s(!1)},title:`Use Regular Expression (Alt+R)`,children:(0,q.jsx)(gn,{className:`size-3.5`})}),u&&(0,q.jsx)(`span`,{className:`text-[10px] text-destructive ml-1`,children:`Invalid regex`})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsxs)(`div`,{className:`relative flex-1`,children:[(0,q.jsx)(`input`,{value:m,onChange:e=>h(e.target.value),placeholder:`Replace…`,disabled:!e,className:`w-full pl-2 pr-6 py-1 text-xs bg-input border border-border rounded focus:outline-none focus:ring-1 focus:ring-primary/50 disabled:opacity-50`}),m&&(0,q.jsx)(`button`,{onClick:()=>h(``),className:`absolute right-1.5 top-1/2 -translate-y-1/2 text-text-subtle hover:text-foreground`,children:(0,q.jsx)(je,{className:`size-3`})})]}),(0,q.jsx)(`button`,{onClick:re,disabled:!n||b.length===0||g,title:`Replace All`,className:`flex items-center justify-center w-6 h-6 rounded border border-border text-text-subtle hover:text-foreground hover:border-border/80 disabled:opacity-40 shrink-0`,children:g?(0,q.jsx)(G,{className:`size-3.5 animate-spin`}):(0,q.jsx)(_n,{className:`size-3.5`})})]}),(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(`input`,{value:f,onChange:e=>p(e.target.value),placeholder:`Files to include (e.g. *.ts, src/**)`,disabled:!e,className:`w-full pl-2 pr-6 py-1 text-xs bg-input border border-border rounded focus:outline-none focus:ring-1 focus:ring-primary/50 disabled:opacity-50`}),f&&(0,q.jsx)(`button`,{onClick:()=>p(``),className:`absolute right-1.5 top-1/2 -translate-y-1/2 text-text-subtle hover:text-foreground`,children:(0,q.jsx)(je,{className:`size-3`})})]}),(0,q.jsxs)(`div`,{className:`text-[10px] text-text-subtle h-3`,children:[(w||g)&&(0,q.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(G,{className:`size-2.5 animate-spin`}),g?`Replacing…`:`Searching…`]}),!w&&!g&&v!==null&&(0,q.jsxs)(`span`,{className:`text-green-500`,children:[v,` replacement`,v===1?``:`s`,` made`]}),!w&&!g&&v===null&&!u&&n.length>=2&&b.length===0&&(0,q.jsx)(`span`,{children:`No results`}),!w&&!g&&v===null&&S>0&&(0,q.jsxs)(`span`,{children:[S,` result`,S===1?``:`s`,` in `,b.length,` file`,b.length===1?``:`s`]})]})]}),(0,q.jsx)(`div`,{className:`flex-1 overflow-y-auto min-h-0`,children:b.map(e=>{let t=E.has(e.file),n=e.file.split(`/`).pop()??e.file,r=e.file.includes(`/`)?e.file.slice(0,e.file.lastIndexOf(`/`)):``;return(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`button`,{onClick:()=>ne(e.file),className:`w-full flex items-center gap-1 px-2 py-1 hover:bg-muted/50 text-left`,children:[t?(0,q.jsx)(pe,{className:`size-3 shrink-0 text-text-subtle`}):(0,q.jsx)(ce,{className:`size-3 shrink-0 text-text-subtle`}),(0,q.jsx)(Ot,{className:`size-3 shrink-0 text-text-subtle`}),(0,q.jsx)(`span`,{className:`text-xs font-medium text-foreground truncate`,children:n}),(0,q.jsx)(`span`,{className:`text-[10px] text-text-subtle truncate flex-1 min-w-0 ml-1`,children:r}),(0,q.jsx)(`span`,{className:`text-[10px] text-text-subtle shrink-0 ml-1 bg-muted px-1 rounded`,children:e.matches.length})]}),!t&&e.matches.map(t=>(0,q.jsxs)(`button`,{onClick:()=>te(e.file,t.lineNum),className:`w-full flex items-start gap-2 pl-7 pr-2 py-0.5 hover:bg-primary/10 text-left`,children:[(0,q.jsx)(`span`,{className:`text-[10px] text-text-subtle shrink-0 w-7 text-right pt-px`,children:t.lineNum}),(0,q.jsx)(`span`,{className:`text-xs text-text-secondary truncate font-mono leading-4`,children:(0,q.jsx)(Tl,{text:t.content.trimStart(),re:A})})]},`${e.file}-${t.lineNum}`))]},e.file)})})]})}function Ol(e,t){window.dispatchEvent(new CustomEvent(`ext:tree:expand`,{detail:{viewId:e,itemId:t}}))}function kl(e,t){window.dispatchEvent(new CustomEvent(`ext:command:execute`,{detail:{command:e,args:t}}))}var Al={refresh:Ae,edit:re,trash:ke,plus:De,search:Te};function jl({viewId:e,className:t}){let n=No(t=>t.treeViews[e])??[],r=No(e=>e.contributions),i=(0,K.useMemo)(()=>{if(!r)return{name:e,headerActions:[]};let t=e,n=r.views;if(n)for(let r of Object.values(n)){let n=r.find(t=>t.id===e);if(n){t=n.name;break}}let i=[],a=r.menus?.[`view/title`];if(a)for(let t of a){if(t.when){let n=t.when.match(/view\s*==\s*(\S+)/);if(n&&n[1]!==e)continue}let n=r.commands?.find(e=>e.command===t.command);n&&i.push({command:n.command,title:n.title,icon:n.icon})}return{name:t,headerActions:i}},[r,e]);return(0,q.jsxs)(`div`,{className:H(`flex flex-col h-full`,t),children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b border-border shrink-0`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-semibold text-text-subtle uppercase tracking-wider`,children:i.name}),(0,q.jsx)(`div`,{className:`flex items-center gap-0.5`,children:i.headerActions.map(e=>{let t=Al[e.icon??Ml(e.command)]??Ae;return(0,q.jsx)(`button`,{onClick:()=>kl(e.command),className:`flex items-center justify-center size-5 rounded hover:bg-surface-elevated transition-colors text-text-subtle hover:text-foreground`,title:e.title,children:(0,q.jsx)(t,{className:`size-3.5`})},e.command)})})]}),(0,q.jsx)(`div`,{className:`flex-1 overflow-y-auto min-h-0 py-1`,role:`tree`,"aria-label":e,children:n.length===0?(0,q.jsx)(`p`,{className:`px-4 py-6 text-xs text-text-subtle text-center`,children:`No items`}):n.map(t=>(0,q.jsx)(Nl,{item:t,depth:0,viewId:e},t.id))})]})}function Ml(e){return e.includes(`refresh`)?`refresh`:e.includes(`add`)||e.includes(`create`)||e.includes(`new`)?`plus`:e.includes(`delete`)||e.includes(`remove`)?`trash`:e.includes(`edit`)||e.includes(`update`)?`edit`:e.includes(`search`)||e.includes(`find`)?`search`:`refresh`}function Nl({item:e,depth:t,viewId:n}){let[r,i]=(0,K.useState)(!1),a=e.collapsibleState!==`none`,o=(0,K.useRef)(!1);e.children&&e.children.length>0&&!o.current&&(o.current=!0,r||i(!0));let s=(0,K.useCallback)(()=>{if(!a)return;let t=!r;i(t),t&&(!e.children||e.children.length===0)&&Ol(n,e.id)},[a,r,e.id,e.children,n]),c=(0,K.useCallback)(()=>{s(),e.command&&kl(e.command,e.commandArgs)},[s,e.command,e.commandArgs]),l=8+t*16;return(0,q.jsxs)(`div`,{role:`treeitem`,"aria-expanded":a?r:void 0,children:[(0,q.jsxs)(`div`,{className:H(`group/node flex items-center gap-1 py-1 hover:bg-surface-elevated transition-colors`),style:{paddingLeft:l,paddingRight:8},children:[(0,q.jsx)(`button`,{onClick:s,className:`shrink-0 text-text-subtle hover:text-foreground transition-colors`,children:a?r?(0,q.jsx)(ce,{className:`size-3`}):(0,q.jsx)(pe,{className:`size-3`}):(0,q.jsx)(`span`,{className:`size-3`})}),e.color&&(0,q.jsx)(`span`,{className:`shrink-0 size-2 rounded-full border border-border`,style:{backgroundColor:e.color}}),(0,q.jsx)(`button`,{className:`flex-1 text-left text-xs truncate hover:text-primary transition-colors`,onClick:c,children:e.label}),e.description&&(0,q.jsx)(`span`,{className:`shrink-0 ml-1 text-text-subtle text-[10px]`,children:e.description}),e.badge&&(0,q.jsx)(`span`,{className:`shrink-0 text-[9px] text-text-subtle uppercase px-1 rounded bg-surface-elevated`,children:e.badge}),e.actions&&e.actions.length>0&&(0,q.jsx)(`div`,{className:`flex can-hover:hidden can-hover:group-hover/node:flex items-center gap-0.5 shrink-0`,children:e.actions.map(e=>(0,q.jsx)(Pl,{action:e},e.command))})]}),a&&r&&e.children&&(0,q.jsx)(`div`,{role:`group`,children:e.children.map(e=>(0,q.jsx)(Nl,{item:e,depth:t+1,viewId:n},e.id))})]})}function Pl({action:e}){let[t,n]=(0,K.useState)(!1),r=Al[e.icon]??Ae,i=e.icon===`trash`;return(0,q.jsx)(`button`,{onClick:(0,K.useCallback)(t=>{t.stopPropagation(),e.icon===`refresh`&&(n(!0),setTimeout(()=>n(!1),1e3)),kl(e.command,e.commandArgs)},[e]),className:H(`p-0.5 text-text-subtle transition-colors`,i?`hover:text-red-500`:`hover:text-foreground`),title:e.tooltip,children:(0,q.jsx)(r,{className:H(`size-3`,t&&`animate-spin`)})})}var X=Me((e,t)=>({projectsWithIds:[],configs:[],selectedProjectId:null,watchers:[],results:[],unreadCount:0,setSelectedProjectId:t=>e({selectedProjectId:t}),loadProjectsWithIds:async()=>{let t=await V.get(`/api/jira/config/projects`);e({projectsWithIds:Array.isArray(t)?t:[]})},loadConfigs:async()=>{e({configs:await V.get(`/api/jira/config`)})},saveConfig:async(e,n)=>{await V.put(`/api/jira/config/${e}`,n),await t().loadConfigs()},deleteConfig:async t=>{await V.del(`/api/jira/config/${t}`),e(e=>({configs:e.configs.filter(e=>e.projectId!==t),watchers:[]}))},testConnection:async e=>(await V.post(`/api/jira/config/${e}/test`)).connected,loadWatchers:async t=>{e({watchers:await V.get(`/api/jira/watchers?configId=${t}`)})},createWatcher:async e=>{await V.post(`/api/jira/watchers`,e),e.configId&&await t().loadWatchers(e.configId)},updateWatcher:async(e,n)=>{await V.put(`/api/jira/watchers/${e}`,n);let r=t().watchers.find(t=>t.id===e);r&&await t().loadWatchers(r.jiraConfigId)},deleteWatcher:async e=>{let n=t().watchers.find(t=>t.id===e);await V.del(`/api/jira/watchers/${e}`),n&&await t().loadWatchers(n.jiraConfigId)},toggleWatcher:async(t,n)=>{e(e=>({watchers:e.watchers.map(e=>e.id===t?{...e,enabled:n}:e)}));try{await V.put(`/api/jira/watchers/${t}`,{enabled:n})}catch{e(e=>({watchers:e.watchers.map(e=>e.id===t?{...e,enabled:!n}:e)}))}},pullWatcher:async e=>{let n=await V.post(`/api/jira/watchers/${e}/pull`);return await t().loadResults(),n},testJql:async(e,t)=>await V.post(`/api/jira/watchers/test-jql`,{configId:e,jql:t}),loadResults:async(t,n,r=50,i=0)=>{let a=new URLSearchParams;t!==void 0&&a.set(`watcherId`,String(t)),n&&a.set(`status`,n),a.set(`limit`,String(r)),a.set(`offset`,String(i));let o=await V.get(`/api/jira/results?${a}`);e(i>0?e=>({results:[...e.results,...o]}):{results:o})},softDeleteResult:async t=>{e(e=>({results:e.results.filter(e=>e.id!==t)}));try{await V.del(`/api/jira/results/${t}`)}catch{}},startDebug:async(n,r)=>{let i=t().results.find(e=>e.id===n)?.status;e(e=>({results:e.results.map(e=>e.id===n?{...e,status:`queued`}:e)}));try{await V.post(`/api/jira/results/${n}/debug`,r?{prompt:r}:{})}catch{e(e=>({results:e.results.map(e=>e.id===n?{...e,status:i??`pending`}:e)}))}},resumeDebug:async n=>{let r=t().results.find(e=>e.id===n)?.status;e(e=>({results:e.results.map(e=>e.id===n?{...e,status:`queued`}:e)}));try{await V.post(`/api/jira/results/${n}/resume`)}catch{e(e=>({results:e.results.map(e=>e.id===n?{...e,status:r??`failed`}:e)}))}},cancelDebug:async e=>{try{await V.post(`/api/jira/results/${e}/cancel`),await t().loadResults()}catch{}},markRead:async t=>{e(e=>({results:e.results.map(e=>e.id===t?{...e,readAt:new Date().toISOString()}:e),unreadCount:Math.max(0,e.unreadCount-1)}));try{await V.patch(`/api/jira/results/${t}/read`)}catch{}},loadUnreadCount:async()=>{try{e({unreadCount:(await V.get(`/api/jira/results/unread-count`)).count})}catch{}}})),Fl={pending:`bg-yellow-500`,queued:`bg-orange-500`,running:`bg-blue-500 animate-pulse`,done:`bg-green-500`,failed:`bg-red-500`};function Z(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4);if(n<1)return`now`;if(n<60)return`${n}m`;let r=Math.floor(n/60);return r<24?`${r}h`:`${Math.floor(r/24)}d`}function Q({result:e,onDebug:t,onResume:n,onCancel:r,onOpenSession:i,onDelete:a,onClick:o}){let s=e,c=s.status===`done`&&!s.readAt,l=!!s.sessionId,u=s.status===`failed`&&l,d=s.status===`pending`||s.status===`failed`&&!l,f=s.status===`queued`||s.status===`running`,p=s.status;return(0,q.jsxs)(`div`,{className:H(`group rounded bg-card shadow-sm hover:shadow-md hover:bg-accent/50 hover:-translate-y-px cursor-pointer transition-all duration-150`,`px-2.5 py-2 space-y-1`,c&&`ring-1 ring-primary/30`),onClick:()=>o(s),children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,q.jsx)(`span`,{className:`text-xs font-mono font-semibold text-foreground shrink-0`,children:s.issueKey}),c&&(0,q.jsx)(`span`,{className:`size-1.5 rounded-full bg-primary shrink-0`}),(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground truncate flex-1 min-w-0`,children:s.issueSummary||`No summary`}),(0,q.jsx)(`span`,{className:`text-[10px] text-muted-foreground/60 tabular-nums shrink-0`,children:Z(s.createdAt)})]}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between min-w-0`,children:[(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-[11px] text-muted-foreground`,children:[(0,q.jsx)(`span`,{className:H(`size-1.5 rounded-full shrink-0`,Fl[p])}),p]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-0.5 shrink-0`,onClick:e=>e.stopPropagation(),children:[u&&(0,q.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 h-6 px-1.5 rounded text-[10px] font-medium text-primary hover:bg-primary/10 active:scale-95 transition-colors`,onClick:()=>n(s),title:`Resume debug session`,children:[(0,q.jsx)(vn,{className:`size-3`}),(0,q.jsx)(`span`,{children:`Resume`})]}),d&&(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-6 rounded text-muted-foreground hover:text-primary active:scale-95 transition-colors`,onClick:()=>t(s),title:`Debug`,children:(0,q.jsx)(dn,{className:`size-3`})}),f&&(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-6 rounded text-muted-foreground hover:text-destructive active:scale-95 transition-colors`,onClick:()=>r(s),title:`Stop debug`,children:(0,q.jsx)(En,{className:`size-3`})}),s.status===`running`&&(0,q.jsx)(G,{className:`size-3 animate-spin text-primary`}),l&&(0,q.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 h-6 px-1.5 rounded text-[10px] font-medium text-primary hover:bg-primary/10 active:scale-95 transition-colors`,onClick:()=>i(s),title:`Open session`,children:[(0,q.jsx)(vt,{className:`size-3`}),(0,q.jsx)(`span`,{children:`Open`})]}),(0,q.jsxs)(ec,{children:[(0,q.jsx)(tc,{asChild:!0,children:(0,q.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-6 rounded text-muted-foreground hover:text-foreground active:scale-95 transition-colors`,children:(0,q.jsx)(_t,{className:`size-3`})})}),(0,q.jsx)(nc,{align:`end`,children:(0,q.jsxs)(rc,{className:`text-destructive`,onClick:()=>a(s.id),children:[(0,q.jsx)(ke,{className:`size-3.5 mr-2`}),` Delete`]})})]})]})]})]})}function Il(e){let t=[];return e.project.length&&t.push(`project IN (${e.project.join(`, `)})`),e.issueType.length&&t.push(`issuetype IN (${e.issueType.map(e=>`"${e}"`).join(`, `)})`),e.priority.length&&t.push(`priority IN (${e.priority.map(e=>`"${e}"`).join(`, `)})`),e.status.length&&t.push(`status IN (${e.status.map(e=>`"${e}"`).join(`, `)})`),e.assignee.length&&t.push(`assignee IN (${e.assignee.map(e=>`"${e}"`).join(`, `)})`),(t.join(` AND `)||`ORDER BY updated DESC`)+(t.length?` ORDER BY updated DESC`:``)}var Ll={project:[],issueType:[],priority:[],status:[],assignee:[]};function Rl({value:e,onChange:t,configId:n}){let[r,i]=(0,K.useState)(e?`raw`:`builder`),[a,o]=(0,K.useState)(Ll),[s,c]=(0,K.useState)(e),[l,u]=(0,K.useState)([]),[d,f]=(0,K.useState)([]),[p,m]=(0,K.useState)([]),[h,g]=(0,K.useState)([]),[_,v]=(0,K.useState)([]),[y,b]=(0,K.useState)(!1);(0,K.useEffect)(()=>{n&&(b(!0),Promise.all([V.get(`/api/jira/metadata/${n}/projects`).catch(()=>[]),V.get(`/api/jira/metadata/${n}/issuetype`).catch(()=>[]),V.get(`/api/jira/metadata/${n}/priority`).catch(()=>[]),V.get(`/api/jira/metadata/${n}/status`).catch(()=>[]),V.get(`/api/jira/metadata/${n}/assignees`).catch(()=>[])]).then(([e,t,n,r,i])=>{u(e),f(t),m(n),g(r),v(i.map(e=>({id:e.accountId,name:e.displayName})))}).finally(()=>b(!1)))},[n]),(0,K.useEffect)(()=>{r===`builder`&&t(Il(a))},[a,r]);let x=(0,K.useCallback)(e=>{c(e),t(e)},[t]),S=(e,t)=>{!t||a[e].includes(t)||o(n=>({...n,[e]:[...n[e],t]}))},C=(e,t)=>{o(n=>({...n,[e]:n[e].filter(e=>e!==t)}))};return(0,q.jsxs)(`div`,{className:`space-y-2 min-w-0`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(R,{type:`button`,size:`sm`,variant:r===`builder`?`default`:`outline`,onClick:()=>i(`builder`),className:`min-h-[44px] text-xs`,children:`Builder`}),(0,q.jsx)(R,{type:`button`,size:`sm`,variant:r===`raw`?`default`:`outline`,onClick:()=>i(`raw`),className:`min-h-[44px] text-xs`,children:`Raw JQL`}),y&&(0,q.jsx)(G,{className:`size-3.5 animate-spin text-muted-foreground`})]}),r===`raw`?(0,q.jsx)(`textarea`,{value:s,onChange:e=>x(e.target.value),className:`w-full h-20 rounded-md border border-input bg-background px-3 py-2 text-sm font-mono resize-none focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,placeholder:`e.g. project = MYPROJ AND status = "In Progress"`}):(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsx)(zl,{label:`Project`,field:`project`,filters:a,onAdd:S,onRemove:C,options:l.map(e=>({value:e.key??e.name,label:`${e.key??e.name} — ${e.name}`})),placeholder:`Select project...`}),(0,q.jsx)(zl,{label:`Issue Type`,field:`issueType`,filters:a,onAdd:S,onRemove:C,options:d.map(e=>({value:e.name,label:e.name})),placeholder:`Select issue type...`}),(0,q.jsx)(zl,{label:`Priority`,field:`priority`,filters:a,onAdd:S,onRemove:C,options:p.map(e=>({value:e.name,label:e.name})),placeholder:`Select priority...`}),(0,q.jsx)(zl,{label:`Status`,field:`status`,filters:a,onAdd:S,onRemove:C,options:h.map(e=>({value:e.name,label:e.name})),placeholder:`Select status...`}),(0,q.jsx)(zl,{label:`Assignee`,field:`assignee`,filters:a,onAdd:S,onRemove:C,options:_.map(e=>({value:e.id??e.name,label:e.name})),placeholder:`Select assignee...`})]}),(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground bg-muted/50 rounded px-2 py-1 font-mono break-all`,children:r===`builder`?Il(a):s||`(empty)`})]})}function zl({label:e,field:t,filters:n,onAdd:r,onRemove:i,options:a,placeholder:o}){let s=a.filter(e=>!n[t].includes(e.value));return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:e}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1 flex-wrap`,children:[n[t].map(e=>(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 px-2 py-0.5 rounded-full bg-primary/10 text-xs`,children:[a.find(t=>t.value===e)?.label??e,(0,q.jsx)(`button`,{type:`button`,onClick:()=>i(t,e),className:`hover:text-destructive`,children:(0,q.jsx)(je,{className:`size-3`})})]},e)),s.length>0?(0,q.jsxs)(N,{onValueChange:e=>r(t,e),children:[(0,q.jsx)(I,{className:`h-7 w-auto min-w-[120px] text-xs`,children:(0,q.jsx)(ne,{placeholder:o})}),(0,q.jsx)(te,{children:s.map(e=>(0,q.jsx)(P,{value:e.value,children:e.label},e.value))})]}):a.length>0?(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground italic`,children:`All selected`}):(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground italic`,children:`Loading...`})]})]})}var Bl=[{label:`30s`,value:3e4},{label:`1m`,value:6e4},{label:`2m`,value:12e4},{label:`5m`,value:3e5},{label:`10m`,value:6e5},{label:`30m`,value:18e5},{label:`1h`,value:36e5}];function Vl({configId:e,existing:t,onDone:n}){let{createWatcher:r,updateWatcher:i,testJql:a}=X(),[o,s]=(0,K.useState)(t?.name??``),[c,l]=(0,K.useState)(t?.jql??``),[u,d]=(0,K.useState)(t?.intervalMs??12e4),[f,p]=(0,K.useState)(t?.mode??`debug`),[m,h]=(0,K.useState)(t?.promptTemplate??``),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(!1),[b,x]=(0,K.useState)(null),[S,C]=(0,K.useState)(0),[w,T]=(0,K.useState)(null),E=!!t;return(0,q.jsxs)(`form`,{onSubmit:async a=>{if(a.preventDefault(),!(!o||!c)){_(!0);try{E?await i(t.id,{name:o,jql:c,intervalMs:u,mode:f,promptTemplate:m||null}):await r({configId:e,name:o,jql:c,intervalMs:u,mode:f,promptTemplate:m||void 0}),n()}catch{}_(!1)}},className:`space-y-3 min-w-0`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Name`}),(0,q.jsx)(z,{value:o,onChange:e=>s(e.target.value),placeholder:`Bug watcher`,className:`h-9`})]}),(0,q.jsx)(Rl,{value:c,onChange:l,configId:e}),(0,q.jsxs)(R,{type:`button`,size:`sm`,variant:`outline`,className:`w-full min-h-[44px]`,disabled:!c||v,onClick:async()=>{if(c){y(!0),T(null),x(null);try{let t=await a(e,c);x(t.issues),C(t.total)}catch(e){T(e.message??`Test failed`)}y(!1)}},children:[v?(0,q.jsx)(G,{className:`size-4 animate-spin mr-1.5`}):(0,q.jsx)(Te,{className:`size-4 mr-1.5`}),`Test Filter`]}),w&&(0,q.jsx)(`p`,{className:`text-xs text-destructive bg-destructive/10 rounded-md px-3 py-2`,children:w}),b&&(0,q.jsxs)(`div`,{className:`border rounded-md max-h-48 overflow-hidden`,children:[(0,q.jsxs)(`div`,{className:`px-3 py-1.5 border-b bg-muted/50 text-xs text-muted-foreground font-medium`,children:[S,` ticket`,S===1?``:`s`,` found`,S>b.length&&` (showing ${b.length})`]}),(0,q.jsx)(`div`,{className:`overflow-y-auto max-h-[calc(12rem-30px)]`,children:b.length===0?(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground text-center py-4`,children:`No tickets match this filter.`}):b.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1.5 border-b last:border-b-0 text-xs min-w-0`,children:[(0,q.jsx)(`span`,{className:`font-mono font-medium shrink-0`,children:e.key}),(0,q.jsx)(`span`,{className:`truncate text-muted-foreground flex-1 min-w-0`,children:e.fields.summary}),(0,q.jsx)(`span`,{className:`shrink-0 text-[10px] text-muted-foreground px-1.5 py-0.5 bg-muted rounded whitespace-nowrap`,children:e.fields.status.name})]},e.key))})]}),(0,q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,q.jsxs)(`div`,{className:`flex-1`,children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Interval`}),(0,q.jsxs)(N,{value:String(u),onValueChange:e=>d(Number(e)),children:[(0,q.jsx)(I,{className:`h-9`,children:(0,q.jsx)(ne,{})}),(0,q.jsx)(te,{children:Bl.map(e=>(0,q.jsx)(P,{value:String(e.value),children:e.label},e.value))})]})]}),(0,q.jsxs)(`div`,{className:`flex-1`,children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Mode`}),(0,q.jsxs)(N,{value:f,onValueChange:e=>p(e),children:[(0,q.jsx)(I,{className:`h-9`,children:(0,q.jsx)(ne,{})}),(0,q.jsxs)(te,{children:[(0,q.jsx)(P,{value:`debug`,children:`Debug + Notify`}),(0,q.jsx)(P,{value:`notify`,children:`Notify only`})]})]})]})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Prompt template (optional)`}),(0,q.jsx)(`textarea`,{value:m,onChange:e=>h(e.target.value),className:`w-full h-16 rounded-md border border-input bg-background px-3 py-2 text-xs font-mono resize-none focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,placeholder:`Debug Jira issue {issue_key}: {summary}`})]}),(0,q.jsx)(R,{type:`submit`,size:`sm`,disabled:g||!o||!c,className:`min-h-[44px] w-full`,children:g?(0,q.jsx)(G,{className:`size-4 animate-spin`}):E?`Save Changes`:`Create Watcher`})]})}function Hl({configId:e}){let{watchers:t,deleteWatcher:n,toggleWatcher:r,pullWatcher:i}=X(),[a,o]=(0,K.useState)(!1),[s,c]=(0,K.useState)(null),[l,u]=(0,K.useState)(null),d=async e=>{u(e);try{let t=await i(e);tr.success(`Pulled ${t.newIssues} new issue${t.newIssues===1?``:`s`}`)}catch(e){tr.error(e.message??`Pull failed`)}u(null)};return(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`h4`,{className:`text-sm font-medium`,children:`Watchers`}),(0,q.jsxs)(_e,{open:a,onOpenChange:o,children:[(0,q.jsx)(he,{asChild:!0,children:(0,q.jsxs)(R,{size:`sm`,variant:`outline`,className:`min-h-[44px]`,children:[(0,q.jsx)(De,{className:`size-4 mr-1`}),` Add`]})}),(0,q.jsxs)(ye,{className:`max-w-md overflow-hidden`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:`New Watcher`})}),(0,q.jsx)(Vl,{configId:e,onDone:()=>o(!1)})]})]})]}),t.length===0&&(0,q.jsx)(`p`,{className:`text-sm text-muted-foreground py-4 text-center`,children:`No watchers yet.`}),t.map(e=>(0,q.jsxs)(`div`,{className:`flex items-center gap-2 p-2 rounded-md border text-sm`,children:[(0,q.jsx)(ie,{checked:e.enabled,onCheckedChange:t=>r(e.id,t),className:`shrink-0`}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,q.jsx)(`div`,{className:`font-medium truncate`,children:e.name}),(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground truncate font-mono`,children:e.jql})]}),(0,q.jsxs)(`span`,{className:`text-xs text-muted-foreground shrink-0`,children:[e.mode===`notify`?`notify`:`debug`,` · `,Ul(e.intervalMs)]}),(0,q.jsx)(R,{size:`icon`,variant:`ghost`,className:`size-8`,onClick:()=>c(e),children:(0,q.jsx)(re,{className:`size-3.5`})}),(0,q.jsx)(R,{size:`icon`,variant:`ghost`,className:`size-8`,onClick:()=>d(e.id),disabled:l===e.id,children:l===e.id?(0,q.jsx)(G,{className:`size-3.5 animate-spin`}):(0,q.jsx)(dn,{className:`size-3.5`})}),(0,q.jsx)(R,{size:`icon`,variant:`ghost`,className:`size-8 text-destructive`,onClick:()=>n(e.id),children:(0,q.jsx)(ke,{className:`size-3.5`})})]},e.id)),(0,q.jsx)(_e,{open:!!s,onOpenChange:e=>{e||c(null)},children:(0,q.jsxs)(ye,{className:`max-w-md overflow-hidden`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:`Edit Watcher`})}),s&&(0,q.jsx)(Vl,{configId:e,existing:s,onDone:()=>c(null)})]})})]})}function Ul(e){return e>=36e5?`${e/36e5}h`:e>=6e4?`${e/6e4}m`:`${e/1e3}s`}function Wl({projectId:e,existing:t}){let{saveConfig:n,deleteConfig:r,testConnection:i}=X(),[a,o]=(0,K.useState)(t?.baseUrl??``),[s,c]=(0,K.useState)(t?.email??``),[l,u]=(0,K.useState)(``);(0,K.useEffect)(()=>{t&&(o(t.baseUrl),c(t.email))},[t?.baseUrl,t?.email]);let[d,f]=(0,K.useState)(!1),[p,m]=(0,K.useState)(!1),[h,g]=(0,K.useState)(null),[_,v]=(0,K.useState)(null);return(0,q.jsxs)(`form`,{onSubmit:async r=>{if(r.preventDefault(),!(!a||!s||!l&&!t?.hasToken)){f(!0);try{await n(e,{baseUrl:a,email:s,...l?{token:l}:{}}),u(``)}catch{}f(!1)}},className:`space-y-3`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Base URL`}),(0,q.jsx)(z,{value:a,onChange:e=>o(e.target.value),placeholder:`https://mysite.atlassian.net`,className:`h-9`})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Email`}),(0,q.jsx)(z,{value:s,onChange:e=>c(e.target.value),placeholder:`you@company.com`,className:`h-9`})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`label`,{className:`text-xs text-muted-foreground`,children:[`API Token `,t?.hasToken&&(0,q.jsx)(`span`,{className:`text-green-500`,children:`(saved)`})]}),(0,q.jsx)(z,{type:`password`,value:l,onChange:e=>u(e.target.value),placeholder:t?.hasToken?`Enter new token to replace`:`Your Jira API token`,className:`h-9`})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,q.jsx)(R,{type:`submit`,size:`sm`,disabled:d,className:`min-w-[44px] min-h-[44px]`,children:d?(0,q.jsx)(G,{className:`size-4 animate-spin`}):`Save`}),t&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(R,{type:`button`,size:`sm`,variant:`outline`,onClick:async()=>{m(!0),g(null),v(null);try{g(await i(e)?`ok`:`fail`)}catch(e){g(`fail`),v(e?.message??`Connection failed`)}m(!1)},disabled:p,className:`min-h-[44px]`,children:p?(0,q.jsx)(G,{className:`size-4 animate-spin`}):`Test Connection`}),(0,q.jsx)(R,{type:`button`,size:`sm`,variant:`destructive`,onClick:()=>r(e),className:`min-h-[44px]`,children:(0,q.jsx)(ke,{className:`size-4`})})]}),h===`ok`&&(0,q.jsx)(st,{className:`size-4 text-green-500`}),h===`fail`&&(0,q.jsx)(ot,{className:`size-4 text-red-500`})]}),_&&(0,q.jsx)(`p`,{className:`text-xs text-red-500 break-all`,children:_})]})}function Gl({result:e,onClose:t}){let{watchers:n,startDebug:r}=X(),[i,a]=(0,K.useState)(``);return(0,K.useEffect)(()=>{e&&a((n.find(t=>t.id===e.watcherId)?.promptTemplate??`Debug Jira issue {issue_key}: {summary}`).replace(/\{issue_key\}/g,e.issueKey).replace(/\{summary\}/g,e.issueSummary??``))},[e,n]),(0,q.jsx)(_e,{open:!!e,onOpenChange:e=>{e||t()},children:(0,q.jsxs)(ye,{className:`max-w-md`,children:[(0,q.jsx)(ve,{children:(0,q.jsxs)(be,{children:[`Start Debug: `,e?.issueKey]})}),(0,q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e?.issueSummary}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:`Debug Prompt`}),(0,q.jsx)(`textarea`,{value:i,onChange:e=>a(e.target.value),className:`w-full h-24 rounded-md border border-input bg-background px-3 py-2 text-xs font-mono resize-none mt-1`,placeholder:`Debug Jira issue {issue_key}: {summary}`})]}),(0,q.jsx)(R,{size:`sm`,className:`w-full min-h-[44px]`,onClick:async()=>{if(e){try{await r(e.id,i)}catch{}t()}},children:`Start Debug Session`})]})})}function Kl(){let e=We(e=>e.activeProject),t=W(e=>e.openTab),{configs:n,watchers:r,results:i,loadConfigs:a,loadWatchers:o,loadResults:s,loadProjectsWithIds:c,projectsWithIds:l,softDeleteResult:u,resumeDebug:d,cancelDebug:f,markRead:p,unreadCount:m,loadUnreadCount:h}=X(),[g,_]=(0,K.useState)(`tickets`),[v,y]=(0,K.useState)(!1),[b,x]=(0,K.useState)(null),S=l.find(t=>t.name===e?.name),C=n.find(e=>e.projectId===S?.id);(0,K.useEffect)(()=>{a(),c()},[]),(0,K.useEffect)(()=>{C&&o(C.id)},[C?.id]);let w=(0,K.useCallback)(async()=>{y(!0);try{await s()}catch{}y(!1)},[s]);(0,K.useEffect)(()=>{w(),h()},[C?.id]),(0,K.useEffect)(()=>{let n=n=>{let r=n.detail;r&&(w(),r.status===`done`?(h(),tr.success(`Debug complete: ${r.issueKey}`,{action:r.sessionId?{label:`View`,onClick:()=>t({type:`chat`,title:`[Jira] ${r.issueKey}`,projectId:e?.name??null,metadata:{projectName:e?.name,sessionId:r.sessionId},closable:!0})}:void 0})):r.status===`failed`&&tr.error(`Debug failed: ${r.issueKey}`))};return window.addEventListener(`jira:status_change`,n),()=>window.removeEventListener(`jira:status_change`,n)},[w,h]);let T=(0,K.useCallback)(n=>{n.sessionId&&(n.status===`done`&&!n.readAt&&p(n.id),t({type:`chat`,title:`[Jira] ${n.issueKey}`,projectId:e?.name??null,metadata:{projectName:e?.name,sessionId:n.sessionId},closable:!0}))},[t,p,e]),E=e=>{e.sessionId&&T(e)};return e?g===`tickets`?(0,q.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,q.jsxs)(`div`,{className:`shrink-0 px-3 py-2 flex items-center gap-1.5 border-b border-border/50`,children:[(0,q.jsx)(`h2`,{className:`text-sm font-semibold flex-1 truncate`,children:`Jira`}),m>0&&(0,q.jsx)(`span`,{className:`inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full bg-primary text-primary-foreground text-[10px] font-bold`,children:m}),(0,q.jsx)(R,{size:`icon`,variant:`ghost`,className:`size-7`,onClick:w,disabled:v,title:`Refresh`,children:v?(0,q.jsx)(G,{className:`size-3.5 animate-spin`}):(0,q.jsx)(Ae,{className:`size-3.5`})}),(0,q.jsx)(R,{size:`icon`,variant:`ghost`,className:`size-7`,onClick:()=>_(`watchers`),title:`Watchers`,children:(0,q.jsx)(Xt,{className:`size-3.5`})}),(0,q.jsx)(R,{size:`icon`,variant:`ghost`,className:`size-7`,onClick:()=>_(`credentials`),title:`Credentials`,children:(0,q.jsx)(Sn,{className:`size-3.5`})})]}),(0,q.jsx)(gs,{className:`flex-1 min-h-0`,children:(0,q.jsx)(`div`,{className:`p-1.5 space-y-1.5`,children:C?i.length===0&&r.length===0?(0,q.jsx)(ql,{message:`No watchers yet`,action:`Add Watcher`,onAction:()=>_(`watchers`)}):i.length===0?(0,q.jsx)(ql,{message:`No tickets yet. Watchers will pick up new issues.`}):i.map(e=>(0,q.jsx)(Q,{result:e,onDebug:x,onResume:e=>d(e.id),onCancel:e=>f(e.id),onOpenSession:T,onDelete:u,onClick:E},e.id)):(0,q.jsx)(ql,{message:`No Jira credentials configured`,action:`Set up Jira`,onAction:()=>_(`credentials`)})})}),(0,q.jsx)(Gl,{result:b,onClose:()=>x(null)})]}):(0,q.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,q.jsxs)(`div`,{className:`shrink-0 px-2 py-2 flex items-center gap-1.5 border-b border-border/50`,children:[(0,q.jsx)(R,{size:`icon`,variant:`ghost`,className:`size-7`,onClick:()=>_(`tickets`),children:(0,q.jsx)(ee,{className:`size-4`})}),(0,q.jsx)(`h2`,{className:`text-sm font-semibold truncate`,children:g===`watchers`?`Watchers`:`Jira Credentials`})]}),(0,q.jsx)(gs,{className:`flex-1 min-h-0`,children:(0,q.jsx)(`div`,{className:`p-3`,children:g===`watchers`?C?(0,q.jsx)(Hl,{configId:C.id}):(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground text-center py-4`,children:`Configure Jira credentials first.`}):S?(0,q.jsx)(Wl,{projectId:S.id,existing:C?{baseUrl:C.baseUrl,email:C.email,hasToken:C.hasToken}:null}):(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground text-center py-4`,children:`Project not found in database.`})})})]}):(0,q.jsx)(`div`,{className:`flex items-center justify-center h-32 p-4`,children:(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground text-center`,children:`Select a project to use Jira`})})}function ql({message:e,action:t,onAction:n}){return(0,q.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 gap-3`,children:[(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground text-center`,children:e}),t&&n&&(0,q.jsxs)(R,{size:`sm`,variant:`outline`,className:`min-h-[44px]`,onClick:n,children:[(0,q.jsx)(De,{className:`size-4 mr-1.5`}),` `,t]})]})}var Jl=600,Yl=null,Xl=0,Zl=null,Ql=[],$l=!1,eu=new Set;function tu(){for(let e of eu)e()}function nu(){if(Yl)return;let e=Pe(),t=e?`?token=${encodeURIComponent(e)}`:``,n=new EventSource(`/api/system/resources/stream${t}`);n.addEventListener(`snapshot`,e=>{try{let t=JSON.parse(e.data);Zl=t,Ql=[...Ql,t],Ql.length>Jl&&(Ql=Ql.slice(-Jl)),$l=!0,tu()}catch{}}),n.onerror=()=>{$l=!1,Yl&&=(Yl.close(),null),tu(),Xl>0&&setTimeout(()=>{!Yl&&Xl>0&&nu()},5e3)},n.onopen=()=>{$l=!0,tu()},Yl=n}function ru(){Yl&&(Yl.close(),Yl=null,$l=!1,tu())}function iu(){let[,e]=(0,K.useState)(0),t=(0,K.useRef)(!0),n=(0,K.useCallback)(()=>{t.current&&e(e=>e+1)},[]);return(0,K.useEffect)(()=>(t.current=!0,eu.add(n),Xl++,Xl===1&&nu(),()=>{t.current=!1,eu.delete(n),Xl--,Xl===0&&ru()}),[n]),{latest:Zl,history:Ql,isConnected:$l}}function au(e){return e>80?`text-red-500`:e>50?`text-yellow-500`:`text-green-500`}var ou=(0,K.memo)(function(){let{latest:e,isConnected:t}=iu(),n=W(e=>e.openTab),r=xs(),i=()=>{n({type:`system-monitor`,title:`System Monitor`,projectId:null,closable:!0})};if(!t||!e)return(0,q.jsxs)(`button`,{onClick:i,className:`flex items-center gap-1.5 px-2 py-1 text-[10px] text-text-subtle hover:text-text-secondary transition-colors w-full`,children:[(0,q.jsx)(mt,{className:`size-3 opacity-50`}),(0,q.jsx)(`span`,{className:`opacity-50`,children:`Connecting...`})]});let{cpu:a,ramMB:o,processCount:s}=e.total;return(0,q.jsxs)(`button`,{onClick:i,className:`flex items-center gap-1.5 px-2 py-1 text-[10px] hover:bg-surface-hover transition-colors w-full cursor-pointer`,title:`Open System Monitor`,children:[(0,q.jsx)(mt,{className:H(`size-3`,au(a))}),(0,q.jsx)(`span`,{className:au(a),children:r?`${a.toFixed(0)}%`:`CPU ${a.toFixed(1)}%`}),(0,q.jsx)(`span`,{className:`text-text-subtle`,children:`|`}),(0,q.jsx)(`span`,{className:`text-text-secondary`,children:o<1024?`${o.toFixed(0)}MB`:`${(o/1024).toFixed(1)}GB`}),!r&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`span`,{className:`text-text-subtle`,children:`|`}),(0,q.jsxs)(`span`,{className:`text-text-subtle`,children:[s,` proc`]})]})]})}),su=[{id:`explorer`,label:`Explorer`,icon:Mt},{id:`search`,label:`Search`,icon:Te},{id:`git`,label:`Git`,icon:Rt},{id:`database`,label:`Database`,icon:fe},{id:`settings`,label:`Settings`,icon:Cn}];function cu({onResize:e}){let t=(0,K.useRef)(!1);return(0,q.jsx)(`div`,{className:`absolute right-0 top-0 bottom-0 w-1 cursor-col-resize hover:bg-primary/30 active:bg-primary/50 transition-colors z-10`,onPointerDown:(0,K.useCallback)(e=>{e.preventDefault(),t.current=!0,e.currentTarget.setPointerCapture(e.pointerId),document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`},[]),onPointerMove:(0,K.useCallback)(n=>{t.current&&e(n.clientX-48)},[e]),onPointerUp:(0,K.useCallback)(e=>{t.current=!1,e.currentTarget.releasePointerCapture(e.pointerId),document.body.style.cursor=``,document.body.style.userSelect=``},[])})}var lu=(0,K.memo)(function(){let{activeProject:e}=We(hs(e=>({activeProject:e.activeProject}))),t=Fe(e=>e.sidebarCollapsed),n=Fe(e=>e.sidebarWidth),r=Fe(e=>e.toggleSidebar),i=Fe(e=>e.setSidebarWidth),a=Fe(e=>e.sidebarActiveTab),o=Fe(e=>e.setSidebarActiveTab),s=Fe(e=>e.jiraEnabled),c=No(e=>e.contributions),l=Rs(t=>e?.name?t.counts.get(e.name)??0:0),u=X(e=>e.unreadCount);zs(e?.name,a===`git`);let d=(0,K.useMemo)(()=>{let e=[...su];if(s){let t=e.findIndex(e=>e.id===`settings`);e.splice(t,0,{id:`jira`,label:`Jira`,icon:ae})}if(c?.views){let t=c.views.sidebar??c.views.explorer??[];for(let n of t)e.push({id:`ext:${n.id}`,label:n.name,icon:hn})}return e},[c,s]);return t?(0,q.jsx)(`aside`,{className:`hidden md:flex flex-col w-10 min-w-10 bg-background border-r border-border`,children:(0,q.jsx)(`button`,{onClick:r,title:`Expand sidebar (⌘B)`,className:`flex items-center justify-center h-[41px] border-b border-border text-text-secondary hover:text-foreground transition-colors`,children:(0,q.jsx)(un,{className:`size-4`})})}):(0,q.jsxs)(`aside`,{className:`hidden md:flex flex-col bg-background border-r border-border overflow-hidden relative`,style:{width:n,minWidth:200,maxWidth:600},children:[(0,q.jsxs)(`div`,{className:`flex items-center h-[41px] border-b border-border shrink-0`,children:[d.map(e=>{let t=e.icon;return(0,q.jsxs)(`button`,{onClick:()=>o(e.id),className:H(`flex-1 flex items-center justify-center gap-1.5 h-full text-xs transition-colors border-b-2 -mb-px relative`,a===e.id?`border-primary text-primary font-medium`:`border-transparent text-text-secondary hover:text-foreground`),children:[(0,q.jsx)(t,{className:`size-3.5`,title:e.label}),e.id===`git`&&l>0&&(0,q.jsx)(`span`,{className:`absolute top-1 right-1 min-w-[16px] h-4 px-1 flex items-center justify-center rounded-full bg-primary text-primary-foreground text-[10px] font-medium leading-none`,children:l>99?`99+`:l}),e.id===`jira`&&u>0&&(0,q.jsx)(`span`,{className:`absolute top-1 right-1 min-w-[16px] h-4 px-1 flex items-center justify-center rounded-full bg-primary text-primary-foreground text-[10px] font-medium leading-none`,children:u>99?`99+`:u})]},e.id)}),(0,q.jsx)(`button`,{onClick:r,title:`Collapse sidebar (⌘B)`,className:`flex items-center justify-center w-8 h-full text-text-subtle hover:text-text-secondary transition-colors shrink-0`,children:(0,q.jsx)(ln,{className:`size-3.5`})})]}),(0,q.jsxs)(`div`,{className:`flex-1 overflow-y-auto min-h-0`,children:[a===`explorer`&&(e?(0,q.jsx)(Xs,{}):(0,q.jsx)(`div`,{className:`flex items-center justify-center h-24 p-4`,children:(0,q.jsx)(`p`,{className:`text-xs text-text-subtle text-center`,children:`Select a project to browse files`})})),a===`git`&&(0,q.jsx)(uc,{metadata:{projectName:e?.name}}),a===`search`&&(0,q.jsx)(Dl,{}),a===`database`&&(0,q.jsx)(Cl,{}),a===`jira`&&(0,q.jsx)(Kl,{}),a===`settings`&&(0,q.jsx)(nl,{}),typeof a==`string`&&a.startsWith(`ext:`)&&(0,q.jsx)(jl,{viewId:a.slice(4),className:`h-full`})]}),(0,q.jsx)(`div`,{className:`shrink-0 border-t border-border`,children:(0,q.jsx)(ou,{})}),(0,q.jsx)(cu,{onResize:i})]})}),uu=Object.defineProperty,du=Object.getOwnPropertySymbols,fu=Object.prototype.hasOwnProperty,pu=Object.prototype.propertyIsEnumerable,mu=(e,t,n)=>t in e?uu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,hu=(e,t)=>{for(var n in t||={})fu.call(t,n)&&mu(e,n,t[n]);if(du)for(var n of du(t))pu.call(t,n)&&mu(e,n,t[n]);return e},gu=(e,t)=>{var n={};for(var r in e)fu.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&du)for(var r of du(e))t.indexOf(r)<0&&pu.call(e,r)&&(n[r]=e[r]);return n},_u;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+(t?1:0),n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(_u||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(_u||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(_u||={});var vu=_u,yu={L:vu.QrCode.Ecc.LOW,M:vu.QrCode.Ecc.MEDIUM,Q:vu.QrCode.Ecc.QUARTILE,H:vu.QrCode.Ecc.HIGH},bu=128,xu=`L`,Su=`#FFFFFF`,Cu=`#000000`,wu=!1,Tu=1,Eu=4,Du=0,Ou=.1;function ku(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function Au(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function ju(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*Ou),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function Mu(e,t){return t==null?e?Eu:Du:Math.max(Math.floor(t),0)}function Nu({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=K.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...vu.QrSegment.makeSegments(t)),e),[]);return vu.QrCode.encodeSegments(r,yu[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=K.useMemo(()=>{let e=c.getModules(),t=Mu(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:ju(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var Pu=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),Fu=K.forwardRef(function(e,t){let n=e,{value:r,size:i=bu,level:a=xu,bgColor:o=Su,fgColor:s=Cu,includeMargin:c=wu,minVersion:l=Tu,boostLevel:u,marginSize:d,imageSettings:f}=n,p=gu(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=gu(p,[`style`]),g=f?.src,_=K.useRef(null),v=K.useRef(null),y=K.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=K.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=Nu({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});K.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=Au(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,Pu?t.fill(new Path2D(ku(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),K.useEffect(()=>{x(!1)},[g]);let E=hu({height:i,width:i},m),D=null;return g!=null&&(D=K.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),K.createElement(K.Fragment,null,K.createElement(`canvas`,hu({style:E,height:i,width:i,ref:y,role:`img`},h)),D)});Fu.displayName=`QRCodeCanvas`;var Iu=K.forwardRef(function(e,t){let n=e,{value:r,size:i=bu,level:a=xu,bgColor:o=Su,fgColor:s=Cu,includeMargin:c=wu,minVersion:l=Tu,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=gu(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=Nu({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=Au(g,v.excavation)),b=K.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=ku(y,h);return K.createElement(`svg`,hu({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&K.createElement(`title`,null,d),K.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),K.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});Iu.displayName=`QRCodeSVG`;function Lu({onClose:e}){let[t,n]=(0,K.useState)(null),[r,i]=(0,K.useState)(null),[a,o]=(0,K.useState)(!0),[s,c]=(0,K.useState)(!1),[l,u]=(0,K.useState)(!1),[d,f]=(0,K.useState)(!1),[p,m]=(0,K.useState)(null),[h,g]=(0,K.useState)(null),[_,v]=(0,K.useState)(null),[y,b]=(0,K.useState)(!1);(0,K.useEffect)(()=>{(async()=>{try{let[e,t]=await Promise.all([V.get(`/api/cloud/status`),V.get(`/api/tunnel`)]);n(e),i(t)}catch{}o(!1)})()},[]);let x=(0,K.useCallback)(e=>{navigator.clipboard.writeText(e),g(e),setTimeout(()=>g(null),2e3)},[]),S=(0,K.useCallback)(async()=>{c(!0),m(null);try{i({active:!0,url:(await V.post(`/api/tunnel/start`,{})).url,localUrl:r?.localUrl??null}),n(await V.get(`/api/cloud/status`))}catch(e){m(e instanceof Error?e.message:`Failed to start tunnel`)}finally{c(!1)}},[r]),C=(0,K.useCallback)(async()=>{m(null);try{let{cloud_url:e}=await V.get(`/api/cloud/login-url`),t=await fetch(`${e}/auth/device-code`,{method:`POST`,headers:{"Content-Type":`application/json`}});if(!t.ok)throw Error(`Failed to get device code`);let r=await t.json();v({userCode:r.user_code,verifyUrl:r.verification_uri}),b(!0);let i=(r.interval||5)*1e3,a=Date.now()+r.expires_in*1e3,o=setInterval(async()=>{if(Date.now()>a){clearInterval(o),b(!1),v(null),m(`Login expired. Try again.`);return}try{let t=await fetch(`${e}/auth/device-code/poll`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({device_code:r.device_code})});if(!t.ok)return;let i=await t.json();i.status===`approved`&&i.access_token&&i.email&&(clearInterval(o),b(!1),v(null),await V.post(`/api/cloud/login`,{access_token:i.access_token,email:i.email,cloud_url:e}),n(await V.get(`/api/cloud/status`)))}catch{}},i)}catch(e){m(e instanceof Error?e.message:`Failed to start login`),b(!1),v(null)}},[]),w=(0,K.useCallback)(async()=>{u(!0),m(null);try{r?.active||i({active:!0,url:(await V.post(`/api/tunnel/start`,{})).url,localUrl:r?.localUrl??null}),await V.post(`/api/cloud/link`,{}),n(await V.get(`/api/cloud/status`))}catch(e){m(e instanceof Error?e.message:`Failed to link device`)}finally{u(!1)}},[r]),T=(0,K.useCallback)(async()=>{if(confirm(`Unlink this device from PPM Cloud? It will no longer appear on your cloud dashboard.`)){f(!0);try{await V.post(`/api/cloud/unlink`,{}),n(await V.get(`/api/cloud/status`))}catch{}f(!1)}},[]),E=(0,K.useCallback)(async()=>{let e=t?.linked?`Sign out from PPM Cloud? This will also unlink your device.`:`Sign out from PPM Cloud?`;if(confirm(e)){if(t?.linked)try{await V.post(`/api/cloud/unlink`,{})}catch{}await V.post(`/api/cloud/logout`,{}),n(e=>e?{...e,logged_in:!1,email:null,linked:!1,device_name:null,device_id:null}:null)}},[t?.linked]),D=r?.url||t?.tunnel_url;return(0,q.jsxs)(`div`,{className:`w-72 bg-background border border-border rounded-lg shadow-lg p-3 space-y-3`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(ft,{className:`size-4 text-primary`}),(0,q.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:`PPM Cloud`})]}),(0,q.jsx)(`button`,{onClick:e,className:`text-text-subtle hover:text-foreground`,children:(0,q.jsx)(je,{className:`size-3.5`})})]}),a&&(0,q.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground text-xs py-2`,children:[(0,q.jsx)(G,{className:`size-4 animate-spin`}),(0,q.jsx)(`span`,{children:`Loading...`})]}),!a&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`space-y-1.5`,children:t?.logged_in?(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,q.jsx)(`div`,{className:`size-2 rounded-full bg-green-500 shrink-0`}),(0,q.jsx)(`span`,{className:`text-xs text-foreground truncate`,children:t.email})]}),(0,q.jsx)(`button`,{onClick:E,className:`text-text-subtle hover:text-foreground p-1 rounded hover:bg-muted transition-colors shrink-0`,title:`Sign out`,children:(0,q.jsx)(Qt,{className:`size-3`})})]}):_?(0,q.jsxs)(`div`,{className:`space-y-2 text-center`,children:[(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Open the link below and enter the code:`}),(0,q.jsx)(`div`,{className:`font-mono text-2xl font-bold tracking-[0.3em] text-primary`,children:_.userCode}),(0,q.jsx)(`a`,{href:_.verifyUrl,target:`_blank`,rel:`noopener noreferrer`,className:`text-xs text-primary hover:underline`,children:_.verifyUrl}),y&&(0,q.jsxs)(`div`,{className:`flex items-center justify-center gap-1.5 text-xs text-muted-foreground`,children:[(0,q.jsx)(G,{className:`size-3 animate-spin`}),(0,q.jsx)(`span`,{children:`Waiting for verification...`})]})]}):(0,q.jsxs)(`button`,{onClick:C,className:`w-full flex items-center justify-center gap-1.5 px-3 py-2 text-xs font-medium rounded-md border border-border hover:bg-muted transition-colors`,children:[(0,q.jsx)(ft,{className:`size-3.5`}),`Sign in to PPM Cloud`]})}),t?.logged_in&&(0,q.jsx)(`div`,{className:`space-y-1.5`,children:t.linked?(0,q.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-0`,children:[(0,q.jsx)(Yt,{className:`size-3 text-primary shrink-0`}),(0,q.jsx)(`span`,{className:`text-foreground truncate`,children:t.device_name})]}),(0,q.jsx)(`button`,{onClick:T,disabled:d,className:`text-text-subtle hover:text-destructive p-1 rounded hover:bg-muted transition-colors shrink-0`,title:`Unlink device`,children:d?(0,q.jsx)(G,{className:`size-3 animate-spin`}):(0,q.jsx)(Mn,{className:`size-3`})})]}):(0,q.jsx)(`button`,{onClick:w,disabled:l,className:`w-full flex items-center justify-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90 transition-colors disabled:opacity-50`,children:l?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(G,{className:`size-3.5 animate-spin`}),` Linking...`]}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Yt,{className:`size-3.5`}),` Link this machine`]})})}),(0,q.jsx)(`div`,{className:`border-t border-border`}),r?.localUrl&&(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:`Local Network`}),(0,q.jsx)(Ru,{url:r.localUrl,copied:h,onCopy:x})]}),!D&&!s&&(0,q.jsxs)(`button`,{onClick:S,className:`w-full flex items-center justify-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90 transition-colors`,children:[(0,q.jsx)(wn,{className:`size-3.5`}),`Start Sharing`]}),s&&(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-2`,children:[(0,q.jsx)(G,{className:`size-5 animate-spin text-primary`}),(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Starting tunnel...`})]}),D&&(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:`Public URL`}),(0,q.jsx)(`div`,{className:`flex justify-center`,children:(0,q.jsx)(`div`,{className:`p-3 rounded-lg`,style:{backgroundColor:`#ffffff`,colorScheme:`light`},children:(0,q.jsx)(Iu,{value:D,size:180,bgColor:`#ffffff`,fgColor:`#000000`,level:`L`,style:{display:`block`}})})}),(0,q.jsx)(Ru,{url:D,copied:h,onCopy:x})]}),t?.logged_in&&t.linked&&(0,q.jsxs)(`a`,{href:t.cloud_url+`/dashboard`,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center justify-center gap-1.5 w-full px-3 py-1.5 text-xs text-muted-foreground hover:text-foreground rounded-md border border-border hover:bg-muted transition-colors`,children:[(0,q.jsx)(vt,{className:`size-3`}),`Open Cloud Dashboard`]}),p&&(0,q.jsx)(`p`,{className:`text-xs text-destructive`,children:p})]})]})}function Ru({url:e,copied:t,onCopy:n}){return(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(`input`,{readOnly:!0,value:e,className:`flex-1 text-xs font-mono text-foreground bg-muted px-2 py-1.5 rounded border border-border truncate`,onClick:e=>e.target.select()}),(0,q.jsx)(`button`,{onClick:()=>n(e),className:`flex items-center justify-center size-7 rounded border border-border text-muted-foreground bg-muted hover:bg-accent hover:text-foreground transition-colors shrink-0`,title:`Copy URL`,children:t===e?(0,q.jsx)(le,{className:`size-3.5 text-primary`}):(0,q.jsx)(pt,{className:`size-3.5`})})]})}var zu=[`linear-gradient(135deg, #667eea, #764ba2)`,`linear-gradient(135deg, #f5576c, #f093fb)`,`linear-gradient(135deg, #4facfe, #00c6ff)`,`linear-gradient(135deg, #43e97b, #38f9d7)`,`linear-gradient(135deg, #fa709a, #fee140)`,`linear-gradient(135deg, #a18cd1, #6a3de8)`,`linear-gradient(135deg, #fd7043, #ff8a65)`,`linear-gradient(135deg, #26c6da, #0097a7)`,`linear-gradient(135deg, #ab47bc, #7b1fa2)`,`linear-gradient(135deg, #ef5350, #b71c1c)`,`linear-gradient(135deg, #1976d2, #42a5f5)`,`linear-gradient(135deg, #2e7d32, #66bb6a)`];function Bu(e,t){return e??zu[t%zu.length]}function Vu({expanded:e}){let t=Aa(e=>e.notifications),n=Aa(e=>e.clearAll),r=Aa(ja),{projects:i,setActiveProject:a,customOrder:o}=We(hs(e=>({projects:e.projects,setActiveProject:e.setActiveProject,customOrder:e.customOrder}))),s=Ge(i,o),c=W(e=>e.openTab),[l,u]=(0,K.useState)(!1),d=(0,K.useRef)(null),[f,p]=(0,K.useState)(null),m=()=>{if(!l&&d.current){let e=d.current.getBoundingClientRect();p({left:e.right+6,bottom:window.innerHeight-e.bottom})}u(!l)},h=(e,t)=>{let n=i.find(e=>e.name===t);n&&a(n),c({type:`chat`,title:`Chat`,projectId:t,metadata:{projectName:t,sessionId:e,providerId:`claude`},closable:!0}),u(!1)},g=e=>{let t=s.findIndex(t=>t.name===e);if(t!==-1)return Bu(s[t].color,t)},_=new Map;for(let[e,n]of t){let t=n.projectName||`Unknown`;_.has(t)||_.set(t,[]),_.get(t).push({sessionId:e,count:n.count,type:n.type,sessionTitle:n.sessionTitle})}return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`button`,{ref:d,onClick:m,className:H(`relative flex items-center rounded-md transition-colors`,e?`w-full h-8 gap-2 px-2 justify-start`:`justify-center size-8`,l?`text-primary bg-primary/10`:`text-text-subtle hover:text-foreground hover:bg-surface-elevated`),children:[(0,q.jsx)(nt,{className:`size-4 shrink-0`}),e&&(0,q.jsx)(`span`,{className:`text-xs whitespace-nowrap`,children:`Notifications`}),r>0&&(0,q.jsx)(`span`,{className:H(`absolute flex items-center justify-center text-[9px] font-bold text-white bg-red-500 rounded-full min-w-[16px] h-4 px-1`,e?`right-1.5`:`-top-1 -right-1`),children:r})]}),l&&f&&(0,zn.createPortal)((0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>u(!1)}),(0,q.jsxs)(`div`,{className:`fixed z-50 w-72 max-h-80 overflow-y-auto rounded-lg border border-border bg-background shadow-lg`,style:{left:f.left,bottom:f.bottom},children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b border-border`,children:[(0,q.jsx)(`span`,{className:`text-xs font-medium text-foreground`,children:r>0?`${r} unread session${r>1?`s`:``}`:`No unread`}),r>0&&(0,q.jsxs)(`button`,{onClick:()=>{n(),u(!1)},className:`text-[10px] text-text-subtle hover:text-foreground transition-colors flex items-center gap-1`,children:[(0,q.jsx)(M,{className:`size-3`}),`Clear all`]})]}),r===0?(0,q.jsx)(`div`,{className:`px-3 py-4 text-center text-xs text-text-subtle`,children:`All caught up`}):(0,q.jsx)(`div`,{className:`py-1`,children:[..._.entries()].map(([e,t])=>(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:`px-3 py-1 text-[10px] font-medium text-text-subtle uppercase tracking-wider flex items-center gap-1.5`,children:[(0,q.jsx)(`span`,{className:`size-2 rounded-full shrink-0`,style:{background:g(e)||`currentColor`}}),e]}),t.map(({sessionId:t,type:n,sessionTitle:r})=>(0,q.jsx)(`button`,{onClick:()=>h(t,e),className:H(`w-full px-3 py-1.5 text-left text-[11px] text-foreground truncate hover:bg-surface-elevated transition-colors`,ka(n)),children:r||`${t.slice(0,12)}...`},t))]},e))})]})]}),document.body)]})}var Hu=`hienlh/ppm`;async function Uu(e,t){let n=`(could not fetch)`;try{let e=Pe(),t=await(await fetch(`/api/logs/recent`,e?{headers:{Authorization:`Bearer ${e}`}}:{})).json();t.ok&&(n=t.data.logs||`(empty)`)}catch{}let r=``;if(t?.sessionId&&t?.projectName)try{let e=await V.get(`${B(t.projectName)}/chat/sessions/${t.sessionId}/logs?tail=100`);e.logs&&(r=e.logs)}catch{}return[`## Environment`,`- PPM: v${e??`unknown`}`,`- Browser: ${navigator.userAgent}`,``,`## Description`,`<!-- Describe the bug -->`,``,`## Steps to Reproduce`,`1. `,``,`## Expected Behavior`,``,...r?[`## Chat Session Logs (${t?.sessionId?.slice(0,8)})`,"```",r,"```",``]:[],`## Server Logs (last 30 lines)`,"```",n,"```"].join(`
19
+ `)}function Wu(e){let t=`https://github.com/${Hu}/issues/new?title=bug%3A%20&body=${encodeURIComponent(e)}`;window.open(t,`_blank`)}async function Gu(e){try{return await navigator.clipboard.writeText(e),!0}catch{return!1}}function Ku(e,t){Uu(e,t).then(e=>{window.dispatchEvent(new CustomEvent(`open-bug-report`,{detail:e}))})}function qu(e,t){let n=e.split(/[-_.\s]+/).filter(Boolean),r=(n[0]?.[0]??e[0]??`?`).toUpperCase(),i=n.length>1?r+(n[1][0]??``).toUpperCase():r,a=t.filter(t=>t!==e);if(!a.map(e=>(e.split(/[-_.\s]+/).filter(Boolean)[0]?.[0]??e[0]??``).toUpperCase()).includes(r))return r;if(!a.map(e=>{let t=e.split(/[-_.\s]+/).filter(Boolean),n=(t[0]?.[0]??e[0]??``).toUpperCase(),r=t.length>1?(t[1][0]??``).toUpperCase():n;return t.length>1?n+r:n}).includes(i))return i;let o=t.indexOf(e);return String(o>=0?o+1:`?`)}function Ju({onSuccess:e,onCancel:t,footerClassName:n}){let{addProject:r}=We(hs(e=>({addProject:e.addProject}))),[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(``),[c,l]=(0,K.useState)([]),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(!1),[m,h]=(0,K.useState)(!1),[g,_]=(0,K.useState)(``),v=(0,K.useRef)(null),y=(0,K.useRef)(null);(0,K.useEffect)(()=>{if(v.current&&clearTimeout(v.current),!i.trim()){l([]),d(!1);return}v.current=setTimeout(async()=>{p(!0);try{l(await V.get(`/api/projects/suggest-dirs?q=${encodeURIComponent(i)}`)??[]),d(!0)}catch{l([])}finally{p(!1)}},250)},[i]),(0,K.useEffect)(()=>{function e(e){y.current&&!y.current.contains(e.target)&&d(!1)}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);function b(e){a(e.path),o||s(e.name),d(!1)}async function x(t){if(t?.preventDefault(),!i.trim()){_(`Path is required`);return}_(``),h(!0);try{await r(i.trim(),o.trim()||void 0),e()}catch(e){_(e instanceof Error?e.message:`Failed to add project`)}finally{h(!1)}}return(0,q.jsxs)(`form`,{onSubmit:x,className:`flex flex-col gap-3`,children:[(0,q.jsxs)(`div`,{ref:y,className:`relative`,children:[(0,q.jsx)(`label`,{className:`block text-xs font-medium text-foreground mb-1`,children:`Project path`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5 items-center`,children:[(0,q.jsxs)(`div`,{className:`relative flex items-center flex-1`,children:[(0,q.jsx)(Mt,{className:`absolute left-2.5 size-3.5 text-text-subtle pointer-events-none`}),(0,q.jsx)(`input`,{type:`text`,value:i,onChange:e=>{a(e.target.value),_(``)},onFocus:()=>c.length>0&&d(!0),placeholder:`/path/to/project`,className:`w-full pl-8 pr-3 py-2 rounded-md border border-border bg-background text-sm focus:outline-none focus:ring-1 focus:ring-primary`,autoFocus:!0,autoComplete:`off`}),f&&(0,q.jsx)(G,{className:`absolute right-2.5 size-3.5 text-text-subtle animate-spin`})]}),(0,q.jsx)(_l,{mode:`folder`,onSelect:e=>{a(e),o||s(e.split(`/`).pop()??``),_(``)}})]}),u&&c.length>0&&(0,q.jsx)(`div`,{className:`absolute top-full left-0 right-0 mt-1 z-10 bg-popover border border-border rounded-md shadow-md max-h-48 overflow-y-auto`,children:c.map(e=>(0,q.jsxs)(`button`,{type:`button`,onMouseDown:()=>b(e),className:`w-full flex flex-col items-start px-3 py-2 text-left hover:bg-accent/50 transition-colors`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium truncate w-full`,children:e.name}),(0,q.jsx)(`span`,{className:`text-xs text-text-subtle truncate w-full`,children:e.path})]},e.path))})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`label`,{className:`block text-xs font-medium text-foreground mb-1`,children:[`Display name `,(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:`(optional)`})]}),(0,q.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),placeholder:`my-project`,className:`w-full px-3 py-2 rounded-md border border-border bg-background text-sm focus:outline-none focus:ring-1 focus:ring-primary`})]}),g&&(0,q.jsx)(`p`,{className:`text-xs text-destructive`,children:g}),(0,q.jsxs)(`div`,{className:H(`flex justify-end gap-2 pt-1`,n),children:[(0,q.jsx)(`button`,{type:`button`,onClick:t,className:`px-3 py-1.5 text-sm text-text-secondary hover:text-foreground transition-colors`,children:`Cancel`}),(0,q.jsx)(`button`,{type:`submit`,disabled:m||!i.trim(),className:`px-3 py-1.5 text-sm bg-primary text-white rounded-md hover:bg-primary/90 transition-colors disabled:opacity-50`,children:m?`Adding…`:`Add Project`})]})]})}var Yu=(0,K.memo)(function({name:e,color:t,active:n,allNames:r}){let i=qu(e,r),a=Aa((0,K.useMemo)(()=>Ma(e),[e]));return(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(`div`,{className:H(`size-10 rounded-full flex items-center justify-center text-xs font-bold text-white select-none shrink-0`,n&&`ring-2 ring-primary ring-offset-2 ring-offset-background`),style:{background:t},children:i}),a&&(0,q.jsx)(`div`,{className:H(`absolute -top-0.5 -right-0.5 size-2.5 rounded-full border-2 border-background`,Da(a))})]})});function Xu({current:e,onChange:t}){return(0,q.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:zu.map(n=>(0,q.jsx)(`button`,{type:`button`,onClick:()=>t(n),className:H(`size-8 rounded-full border-2 transition-all`,e===n?`border-primary scale-110`:`border-transparent hover:scale-105`),style:{background:n}},n))})}var Zu=(0,K.memo)(function(){let{projects:e,activeProject:t,setActiveProject:n,setProjectColor:r,reorderProjects:i,renameProject:a,deleteProject:o,customOrder:s}=We(hs(e=>({projects:e.projects,activeProject:e.activeProject,setActiveProject:e.setActiveProject,setProjectColor:e.setProjectColor,reorderProjects:e.reorderProjects,renameProject:e.renameProject,deleteProject:e.deleteProject,customOrder:e.customOrder})));W(e=>e.openTab);let c=Fe(e=>e.version),l=(0,K.useCallback)(()=>Ku(c),[c]),[u,d]=(0,K.useState)(null),[f,p]=(0,K.useState)(null),m=Ge(e,s),h=m.map(e=>e.name),[g,_]=(0,K.useState)(!1),[v,y]=(0,K.useState)(``),[b,x]=(0,K.useState)(``),[S,C]=(0,K.useState)(!1),[w,T]=(0,K.useState)(``),[E,D]=(0,K.useState)(!1),[O,k]=(0,K.useState)(!1),[ee,A]=(0,K.useState)(``),[te,ne]=(0,K.useState)(``),[j,M]=(0,K.useState)(!1),[N,ie]=(0,K.useState)(!1),P=(0,K.useRef)(null),F=(0,K.useRef)(null),I=(0,K.useRef)(!1),oe=(0,K.useRef)(!1),L=(0,K.useRef)(typeof window<`u`&&window.matchMedia(`(hover: hover) and (pointer: fine)`).matches);(0,K.useEffect)(()=>()=>{P.current&&clearTimeout(P.current),F.current&&clearTimeout(F.current)},[]);let se=(0,K.useCallback)(()=>{L.current&&(I.current=!0,F.current&&=(clearTimeout(F.current),null),P.current=setTimeout(()=>ie(!0),150))},[]),ce=(0,K.useCallback)(()=>{L.current&&(I.current=!1,P.current&&=(clearTimeout(P.current),null),!oe.current&&(F.current=setTimeout(()=>ie(!1),300)))},[]),le=(0,K.useCallback)(e=>{oe.current=e,!e&&!I.current&&(F.current=setTimeout(()=>ie(!1),300))},[]),ue=(0,K.useCallback)(e=>{y(e),x(e),_(!0)},[]),de=(0,K.useCallback)(e=>{T(e),C(!0)},[]),fe=(0,K.useCallback)((e,t)=>{A(e),ne(t),k(!0)},[]);async function pe(){if(!b.trim()||b===v){_(!1);return}try{await a(v,b.trim())}catch{}_(!1)}async function he(){try{await o(w)}catch{}C(!1)}async function ge(){M(!0);try{await r(ee,te),k(!1)}catch(e){console.error(`Failed to save color:`,e)}finally{M(!1)}}function R(){D(!0)}let[z,xe]=(0,K.useState)(!1),Se=(0,K.useRef)(null),[Ce,we]=(0,K.useState)(null);(0,K.useEffect)(()=>{if(!z||!Se.current){we(null);return}let e=Se.current.getBoundingClientRect();we({left:e.right+6,bottom:window.innerHeight-e.bottom})},[z]);function Te(){let{sidebarCollapsed:e,toggleSidebar:t,setSidebarActiveTab:n}=Fe.getState();e&&t(),n(`settings`)}return(0,q.jsx)(`div`,{className:`hidden md:block relative w-[52px] min-w-[52px]`,onMouseEnter:se,onMouseLeave:ce,children:(0,q.jsxs)(`aside`,{className:H(`absolute inset-y-0 left-0 flex flex-col bg-background border-r border-border overflow-hidden transition-[width] duration-200 ease-out`,N?`w-[240px] shadow-lg z-30`:`w-[52px]`),children:[(0,q.jsxs)(`div`,{className:`shrink-0 flex flex-col items-center justify-center h-[41px] border-b border-border gap-0.5`,children:[(0,q.jsx)(`span`,{className:`text-[11px] font-bold text-primary leading-none`,children:`PPM`}),c&&(0,q.jsxs)(`span`,{className:`text-[8px] text-text-subtle leading-none`,children:[`v`,c]})]}),(0,q.jsxs)(`div`,{className:H(`flex-1 overflow-y-auto py-2 flex flex-col gap-2 min-h-0`,N?`items-stretch px-1.5`:`items-center`),children:[m.map((e,r)=>{let a=Bu(e.color,r),o=t?.name===e.name;return(0,q.jsxs)(ga,{onOpenChange:le,children:[(0,q.jsx)(_a,{asChild:!0,children:(0,q.jsxs)(`button`,{draggable:!0,onDragStart:()=>d(r),onDragOver:e=>{e.preventDefault(),p(r)},onDragLeave:()=>p(null),onDragEnd:()=>{d(null),p(null)},onDrop:()=>{if(u!=null&&u!==r){let e=m.map(e=>e.name),[t]=e.splice(u,1);e.splice(r,0,t),i(e)}d(null),p(null)},onClick:()=>n(e),className:H(`p-1 rounded-lg transition-all`,!N&&`hover:bg-surface-elevated`,u===r&&`opacity-40 scale-90`,f===r&&u!==r&&`ring-2 ring-accent`,N&&`w-full flex items-center gap-2 px-2 hover:bg-muted/50`),children:[(0,q.jsx)(Yu,{name:e.name,color:a,active:o,allNames:h}),N&&(0,q.jsxs)(`div`,{className:`min-w-0 text-left`,children:[(0,q.jsx)(`p`,{className:`text-sm font-medium truncate`,children:e.name}),(0,q.jsx)(`p`,{className:`text-[11px] text-text-subtle truncate [direction:rtl] text-left`,children:e.path})]})]})}),(0,q.jsxs)(xa,{children:[(0,q.jsxs)(Sa,{onClick:()=>ue(e.name),children:[(0,q.jsx)(re,{className:`size-3.5 mr-2`}),` Rename`]}),(0,q.jsxs)(Sa,{onClick:()=>fe(e.name,a),children:[(0,q.jsx)(cn,{className:`size-3.5 mr-2`}),` Change Color`]}),(0,q.jsxs)(Sa,{onClick:()=>navigator.clipboard.writeText(e.path),children:[(0,q.jsx)(pt,{className:`size-3.5 mr-2`}),` Copy Path`]}),(0,q.jsx)(Ca,{}),(0,q.jsxs)(Sa,{className:`text-destructive focus:text-destructive`,onClick:()=>de(e.name),children:[(0,q.jsx)(ke,{className:`size-3.5 mr-2`}),` Delete`]})]})]},e.name)}),(0,q.jsxs)(`button`,{onClick:R,className:H(`border-2 border-dashed border-border flex items-center justify-center text-text-subtle hover:border-primary hover:text-primary transition-colors`,N?`w-full h-10 gap-2 rounded-lg px-2`:`size-10 rounded-full`),children:[(0,q.jsx)(De,{className:`size-4 shrink-0`}),N&&(0,q.jsx)(`span`,{className:`text-sm whitespace-nowrap`,children:`Add Project`})]})]}),(0,q.jsxs)(`div`,{className:H(`shrink-0 flex flex-col gap-1 py-2 border-t border-border`,N?`items-stretch px-1.5`:`items-center`),children:[(0,q.jsx)(Vu,{expanded:N}),(0,q.jsxs)(`button`,{ref:Se,onClick:()=>xe(!z),className:H(`flex items-center rounded-md transition-colors`,N?`w-full h-8 gap-2 px-2 justify-start`:`justify-center size-8`,z?`text-primary bg-primary/10`:`text-text-subtle hover:text-foreground hover:bg-surface-elevated`),children:[(0,q.jsx)(ft,{className:`size-4 shrink-0`}),N&&(0,q.jsx)(`span`,{className:`text-xs whitespace-nowrap`,children:`Cloud & Share`})]}),z&&Ce&&(0,zn.createPortal)((0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>xe(!1)}),(0,q.jsx)(`div`,{className:`fixed z-50`,style:{left:Ce.left,bottom:Ce.bottom},children:(0,q.jsx)(Lu,{onClose:()=>xe(!1)})})]}),document.body),(0,q.jsxs)(`button`,{onClick:l,className:H(`flex items-center rounded-md text-text-subtle hover:text-foreground hover:bg-surface-elevated transition-colors`,N?`w-full h-8 gap-2 px-2 justify-start`:`justify-center size-8`),children:[(0,q.jsx)(ae,{className:`size-4 shrink-0`}),N&&(0,q.jsx)(`span`,{className:`text-xs whitespace-nowrap`,children:`Report Bug`})]}),(0,q.jsxs)(`button`,{onClick:Te,className:H(`flex items-center rounded-md text-text-subtle hover:text-foreground hover:bg-surface-elevated transition-colors`,N?`w-full h-8 gap-2 px-2 justify-start`:`justify-center size-8`),children:[(0,q.jsx)(Cn,{className:`size-4 shrink-0`}),N&&(0,q.jsx)(`span`,{className:`text-xs whitespace-nowrap`,children:`Settings`})]})]}),(0,q.jsx)(_e,{open:E,onOpenChange:D,children:(0,q.jsxs)(ye,{className:`sm:max-w-sm`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:`Add Project`})}),(0,q.jsx)(Ju,{onSuccess:()=>D(!1),onCancel:()=>D(!1)})]})}),(0,q.jsx)(_e,{open:g,onOpenChange:_,children:(0,q.jsxs)(ye,{className:`sm:max-w-sm`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:`Rename Project`})}),(0,q.jsx)(`input`,{type:`text`,value:b,onChange:e=>x(e.target.value),onKeyDown:e=>{e.key===`Enter`&&pe()},className:`w-full px-3 py-2 rounded-md border border-border bg-background text-sm focus:outline-none focus:ring-1 focus:ring-primary`,autoFocus:!0}),(0,q.jsxs)(me,{children:[(0,q.jsx)(`button`,{onClick:()=>_(!1),className:`px-3 py-1.5 text-sm text-text-secondary hover:text-foreground transition-colors`,children:`Cancel`}),(0,q.jsx)(`button`,{onClick:pe,className:`px-3 py-1.5 text-sm bg-primary text-white rounded-md hover:bg-primary/90 transition-colors`,children:`Rename`})]})]})}),(0,q.jsx)(_e,{open:S,onOpenChange:C,children:(0,q.jsxs)(ye,{className:`sm:max-w-sm`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:`Delete Project`})}),(0,q.jsxs)(`p`,{className:`text-sm text-text-secondary`,children:[`Remove `,(0,q.jsx)(`strong`,{className:`text-foreground`,children:w}),` from PPM? The files on disk won't be deleted.`]}),(0,q.jsxs)(me,{children:[(0,q.jsx)(`button`,{onClick:()=>C(!1),className:`px-3 py-1.5 text-sm text-text-secondary hover:text-foreground transition-colors`,children:`Cancel`}),(0,q.jsx)(`button`,{onClick:he,className:`px-3 py-1.5 text-sm bg-destructive text-white rounded-md hover:bg-destructive/90 transition-colors`,children:`Delete`})]})]})}),(0,q.jsx)(_e,{open:O,onOpenChange:k,children:(0,q.jsxs)(ye,{className:`sm:max-w-sm`,children:[(0,q.jsx)(ve,{children:(0,q.jsx)(be,{children:`Change Color`})}),(0,q.jsx)(Xu,{current:te,onChange:ne}),(0,q.jsxs)(me,{children:[(0,q.jsx)(`button`,{onClick:()=>k(!1),className:`px-3 py-1.5 text-sm text-text-secondary hover:text-foreground transition-colors`,children:`Cancel`}),(0,q.jsx)(`button`,{onClick:ge,disabled:j,className:`px-3 py-1.5 text-sm bg-primary text-white rounded-md hover:bg-primary/90 transition-colors disabled:opacity-50`,children:j?`Saving…`:`Save`})]})]})})]})})}),Qu=[{type:`terminal`,label:`Terminal`},{type:`chat`,label:`AI Chat`},{type:`settings`,label:`Settings`}],$u=Object.fromEntries(Qu.map(e=>[e.type,e.label])),ed={terminal:kn,chat:en,editor:xt,database:fe,sqlite:fe,postgres:fe,"git-diff":St,settings:Cn,ports:ue,extension:hn,"extension-webview":hn,"conflict-editor":St,"system-monitor":Cn,"git-log":xt};function td({onMenuPress:e,onProjectsPress:t}){let n=U(e=>e.focusedPanelId),r=U(e=>e.panels),i=U(e=>e.grid),a=U(e=>e.currentProject),{tabs:o,tabPanelMap:s}=(0,K.useMemo)(()=>{let e=i.flat(),t=[],n={};for(let i of e){let e=r[i];if(e)for(let r of e.tabs)r.projectId&&a&&r.projectId!==a||(t.push(r),n[r.id]=i)}return{tabs:t,tabPanelMap:n}},[r,i,a]),c=r[n]?.activeTabId??null,l=(0,K.useRef)(new Map),u=(0,K.useRef)(null),d=(0,K.useRef)(o.length),f=Aa(e=>e.notifications),p=Io(e=>e.sessions),[m,h]=(0,K.useState)({}),{canScrollLeft:g,canScrollRight:_,scrollRight:v}=Ro(u),y=Bo(u.current,l.current,o,f),[b,x]=(0,K.useState)(null),[S,C]=(0,K.useState)(!1),w=(0,K.useRef)(null);(0,K.useEffect)(()=>{o.length>d.current&&c&&l.current.get(c)?.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`nearest`}),d.current=o.length},[o.length,c]);let T=(0,K.useCallback)(e=>{w.current=setTimeout(()=>x(e),400)},[]),E=(0,K.useCallback)(()=>{w.current&&=(clearTimeout(w.current),null)},[]),D=b?o.find(e=>e.id===b):null,O=b?s[b]??n:n,k=r[O]?.tabs??[],A=b?k.findIndex(e=>e.id===b):-1,te=ze(i,O)?i.length<3:!1,ne=i.flat().filter(e=>e!==O);function j(e){let t=s[e]??n,r=(U.getState().panels[t]?.tabs??[]).findIndex(t=>t.id===e);r>0&&U.getState().reorderTab(e,t,r-1)}function M(e){let t=s[e]??n,r=U.getState().panels[t]?.tabs??[],i=r.findIndex(t=>t.id===e);i<r.length-1&&U.getState().reorderTab(e,t,i+1)}function N(e){let t=s[e]??n;U.getState().splitPanel(`down`,e,t)}function ie(e,t){let r=s[e]??n;U.getState().moveTab(e,r,t)}let[ae,P]=(0,K.useState)(null);function F(e,t){let n=e.metadata?.filePath,r=e.metadata?.projectName;switch(t){case`copy-path`:n&&navigator.clipboard.writeText(n).catch(()=>{});break;case`download`:n&&r&&Go(r,n);break;case`rename`:case`delete`:n&&P({action:t,tabId:e.id,node:{name:e.title,path:n,type:`file`}});break}x(null)}let{activeProject:I}=We.getState();function oe(e){let t=U.getState(),n=t.grid[0]?.[0]??t.focusedPanelId,r=e===`git-diff`||e===`terminal`||e===`chat`?{projectName:I?.name}:void 0;t.openTab({type:e,title:$u[e]??e,metadata:r,projectId:I?.name??null,closable:!0},n),C(!1)}let{activeProject:L,projects:se,customOrder:ce}=We(hs(e=>({activeProject:e.activeProject,projects:e.projects,customOrder:e.customOrder}))),le=o.filter(e=>e.type===`chat`&&e.metadata?.sessionId).map(e=>e.metadata.sessionId);(0,K.useEffect)(()=>{!L?.name||le.length===0||V.get(`${B(L.name)}/chat/sessions?limit=50`).then(e=>{let t={};for(let n of e.sessions)n.tag&&(t[n.id]=n.tag);h(t)}).catch(()=>{})},[L?.name,le.join(`,`)]);let ue=Ge(se,ce??null),de=ue.map(e=>e.name),fe=ue.findIndex(e=>e.name===L?.name),me=L?Bu(L.color,fe>=0?fe:0):`#4f86c6`,he=L?qu(L.name,de):null;return(0,q.jsxs)(`nav`,{className:`fixed bottom-0 left-0 right-0 md:hidden bg-background border-t border-border z-40 select-none`,children:[(0,q.jsxs)(`div`,{className:`flex items-center h-12`,children:[(0,q.jsxs)(`div`,{className:H(`flex items-center shrink-0 bg-background relative z-10 transition-all duration-200`,g?`rounded-r-2xl shadow-[6px_0_12px_-4px_rgba(0,0,0,0.12)]`:`border-r border-border`),children:[(0,q.jsx)(`button`,{onClick:e,className:`flex items-center justify-center size-12 shrink-0 text-text-secondary`,children:(0,q.jsx)($t,{className:`size-5`})}),(0,q.jsx)(`div`,{className:`w-px self-stretch bg-border shrink-0`}),(0,q.jsx)(`button`,{onClick:t,className:`flex items-center justify-center size-12 shrink-0 text-text-secondary`,title:`Switch project`,children:he?(0,q.jsx)(`div`,{className:`size-7 rounded-full flex items-center justify-center text-[10px] font-bold text-white`,style:{background:me},children:he}):(0,q.jsx)(qt,{className:`size-5`})}),(0,q.jsx)(`div`,{className:`w-px self-stretch bg-border shrink-0`}),(0,q.jsxs)(`button`,{onClick:()=>Po(),className:H(`flex items-center justify-center shrink-0 text-text-secondary gap-1.5 h-12`,o.length===0?`px-4`:`w-12`),children:[(0,q.jsx)(De,{className:`size-4`}),o.length===0&&(0,q.jsx)(`span`,{className:`text-xs`,children:`New Tab`})]})]}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0 relative flex items-center h-12 -ml-4`,children:[(0,q.jsx)(`div`,{ref:u,className:`flex-1 min-w-0 flex items-center h-12 overflow-x-auto scrollbar-none pl-4`,children:o.map(e=>{let t=ed[e.type]||hn,n=e.id===c,r=e.type===`chat`?e.metadata?.sessionId:void 0,i=r?f.get(r):void 0,a=i&&i.count>0?i.type:null,o=r?m[r]?.color:void 0,s=r?p.has(r):!1;return(0,q.jsxs)(`button`,{ref:t=>{t?l.current.set(e.id,t):l.current.delete(e.id)},onClick:()=>{U.getState().setActiveTab(e.id),r&&Aa.getState().clearForSession(r)},onTouchStart:()=>T(e.id),onTouchEnd:E,onTouchMove:E,onContextMenu:e=>e.preventDefault(),className:H(`relative flex items-center gap-1 px-3 h-12 whitespace-nowrap text-xs shrink-0 border-t-2 transition-colors`,n?`border-primary bg-surface text-primary`:`border-transparent text-text-secondary`),children:[o&&(0,q.jsx)(`span`,{"aria-hidden":!0,className:`absolute left-0 top-2 bottom-2 w-[3px] rounded-r-full pointer-events-none`,style:{backgroundColor:o}}),(0,q.jsxs)(`span`,{className:H(`relative`,s&&`text-amber-500`),children:[(0,q.jsx)(t,{className:`size-4`}),s?(0,q.jsxs)(`span`,{"aria-hidden":!0,className:`absolute inset-0 flex items-center justify-center gap-[1.5px]`,children:[(0,q.jsx)(`span`,{className:`tab-typing-dot size-[2px] rounded-full bg-current`}),(0,q.jsx)(`span`,{className:`tab-typing-dot size-[2px] rounded-full bg-current`,style:{animationDelay:`0.15s`}}),(0,q.jsx)(`span`,{className:`tab-typing-dot size-[2px] rounded-full bg-current`,style:{animationDelay:`0.3s`}})]}):a&&!n?(0,q.jsx)(`span`,{className:H(`absolute -top-1 -right-1 size-2 rounded-full`,Da(a))}):null]}),(0,q.jsx)(`span`,{className:`max-w-[80px] truncate`,children:e.title}),e.closable&&(0,q.jsx)(`span`,{role:`button`,tabIndex:0,onClick:t=>{t.stopPropagation(),U.getState().closeTab(e.id)},className:`ml-0.5 p-0.5 rounded hover:bg-surface-elevated`,children:(0,q.jsx)(je,{className:`size-3`})})]},e.id)})}),_&&(0,q.jsx)(`button`,{onClick:v,className:`absolute right-0 z-10 flex items-center justify-center size-8 bg-gradient-to-l from-background via-background to-transparent`,children:(0,q.jsxs)(`span`,{className:`relative`,children:[(0,q.jsx)(pe,{className:`size-3.5 text-text-secondary`}),y.right&&(0,q.jsx)(`span`,{className:H(`absolute -top-1 -left-0.5 size-1.5 rounded-full`,Da(y.right))})]})})]})]}),(0,q.jsxs)(ws,{open:S,onClose:()=>C(!1),children:[(0,q.jsx)(`div`,{className:`px-3 py-2 text-xs text-text-secondary border-b border-border`,children:`New Tab`}),Qu.map(e=>{let t=ed[e.type];return(0,q.jsxs)(`button`,{onClick:()=>oe(e.type),className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(t,{className:`size-4`}),` `,e.label]},e.type)})]}),(0,q.jsxs)(ws,{open:!!D,onClose:()=>x(null),children:[(0,q.jsx)(`div`,{className:`px-3 py-2 text-xs text-text-secondary border-b border-border truncate`,children:D?.title}),D?.type===`editor`&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`button`,{onClick:()=>F(D,`copy-path`),className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(pt,{className:`size-4`}),` Copy Path`]}),(0,q.jsxs)(`button`,{onClick:()=>F(D,`download`),className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(Ee,{className:`size-4`}),` Download`]}),(0,q.jsxs)(`button`,{onClick:()=>F(D,`rename`),className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(re,{className:`size-4`}),` Rename`]}),(0,q.jsxs)(`button`,{onClick:()=>F(D,`delete`),className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-error active:bg-surface-elevated`,children:[(0,q.jsx)(ke,{className:`size-4`}),` Delete`]}),(0,q.jsx)(`div`,{className:`h-px bg-border mx-2`})]}),D?.closable&&(0,q.jsxs)(`button`,{onClick:()=>{U.getState().closeTab(b),x(null)},className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(je,{className:`size-4`}),` Close`]}),A>0&&(0,q.jsxs)(`button`,{onClick:()=>{j(b),x(null)},className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(ee,{className:`size-4`}),` Move Left`]}),A<k.length-1&&(0,q.jsxs)(`button`,{onClick:()=>{M(b),x(null)},className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)($e,{className:`size-4`}),` Move Right`]}),te&&k.length>1&&(0,q.jsxs)(`button`,{onClick:()=>{N(b),x(null)},className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(Tn,{className:`size-4`}),` Split to Bottom`]}),ne.map((e,t)=>(0,q.jsxs)(`button`,{onClick:()=>{ie(b,e),x(null)},className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,q.jsx)(on,{className:`size-4`}),` Move to Panel `,t+1===1?`Top`:`Bottom`]},e))]}),ae&&(0,q.jsx)(Jo,{action:ae.action,node:ae.node,projectName:I?.name??``,onClose:()=>P(null),onRefresh:()=>{I&&Ba.getState().fetchTree(I.name),ae.action===`delete`&&U.getState().closeTab(ae.tabId)}})]})}var nd=[{id:`explorer`,label:`Explorer`,icon:Mt},{id:`git`,label:`Git`,icon:Rt},{id:`database`,label:`Database`,icon:fe},{id:`settings`,label:`Settings`,icon:Cn}];function rd({isOpen:e,onClose:t,initialTab:n}){let{activeProject:r}=We(hs(e=>({activeProject:e.activeProject}))),i=Fe(e=>e.version),a=Fe(e=>e.jiraEnabled),[o,s]=(0,K.useState)(n??`explorer`),c=(0,K.useMemo)(()=>{if(!a)return nd;let e=[...nd],t=e.findIndex(e=>e.id===`settings`);return e.splice(t,0,{id:`jira`,label:`Jira`,icon:ae}),e},[a]);(0,K.useEffect)(()=>{n&&s(n)},[n]);let l=(0,K.useCallback)(()=>Ku(i),[i]);return(0,q.jsxs)(`div`,{className:H(`fixed inset-0 z-50 md:hidden transition-opacity duration-200`,e?`opacity-100`:`opacity-0 pointer-events-none`),children:[(0,q.jsx)(`div`,{className:`absolute inset-0 bg-black/50`,onClick:t,"aria-label":`Close drawer`}),(0,q.jsxs)(`div`,{className:H(`fixed left-0 top-0 bottom-0 w-[90vw] bg-background border-r border-border`,`z-50 flex flex-col transition-transform duration-300 ease-out`,e?`translate-x-0`:`-translate-x-full`),children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b border-border shrink-0`,children:[(0,q.jsx)(`span`,{className:`text-sm font-bold text-primary tracking-tight`,children:r?.name??`PPM`}),(0,q.jsx)(`button`,{onClick:t,className:`flex items-center justify-center size-8 rounded-md hover:bg-surface-elevated transition-colors`,children:(0,q.jsx)(je,{className:`size-4`})})]}),(0,q.jsxs)(`div`,{className:`flex-1 overflow-y-auto min-h-0`,children:[o===`explorer`&&(r?(0,q.jsx)(Xs,{onFileOpen:t}):(0,q.jsx)(`p`,{className:`px-4 py-6 text-xs text-text-secondary text-center`,children:`Select a project from the bottom nav bar`})),o===`git`&&(0,q.jsx)(uc,{metadata:{projectName:r?.name},onNavigate:t}),o===`database`&&(0,q.jsx)(Cl,{}),o===`jira`&&(0,q.jsx)(Kl,{}),o===`settings`&&(0,q.jsx)(nl,{})]}),(0,q.jsxs)(`div`,{className:`shrink-0 border-t border-border`,children:[(0,q.jsx)(`div`,{className:`flex items-center`,children:c.map(e=>{let t=e.icon;return(0,q.jsxs)(`button`,{onClick:()=>s(e.id),className:H(`flex-1 flex flex-col items-center gap-0.5 py-2.5 text-[10px] transition-colors`,o===e.id?`text-primary`:`text-text-secondary`),children:[(0,q.jsx)(t,{className:`size-4`}),(0,q.jsx)(`span`,{children:e.label})]},e.id)})}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-t border-border`,children:[i&&(0,q.jsxs)(`span`,{className:`text-[10px] text-text-subtle`,children:[`v`,i]}),(0,q.jsxs)(`button`,{onClick:l,className:`flex items-center gap-1 text-[10px] text-text-subtle hover:text-text-secondary transition-colors`,children:[(0,q.jsx)(ae,{className:`size-3`}),(0,q.jsx)(`span`,{children:`Report Bug`})]})]})]})]})]})}function id({name:e,color:t,allNames:n}){let r=qu(e,n);return(0,q.jsx)(`div`,{className:`size-10 rounded-full flex items-center justify-center text-xs font-bold text-white shrink-0`,style:{background:t},children:r})}function ad({isOpen:e,onClose:t}){let{projects:n,activeProject:r,setActiveProject:i,setProjectColor:a,reorderProjects:o,renameProject:s,deleteProject:c,customOrder:l}=We(hs(e=>({projects:e.projects,activeProject:e.activeProject,setActiveProject:e.setActiveProject,setProjectColor:e.setProjectColor,reorderProjects:e.reorderProjects,renameProject:e.renameProject,deleteProject:e.deleteProject,customOrder:e.customOrder})));W(e=>e.openTab);let u=Fe(e=>e.version),d=Ge(n,l),f=d.map(e=>e.name),[p,m]=(0,K.useState)(`list`),[h,g]=(0,K.useState)(null),[_,v]=(0,K.useState)(``),[y,b]=(0,K.useState)(!1),x=(0,K.useRef)(null),[S,C]=(0,K.useState)(null),[w,T]=(0,K.useState)(``),E=(0,K.useCallback)(e=>{x.current=setTimeout(()=>g(e),400)},[]),D=(0,K.useCallback)(()=>{x.current&&=(clearTimeout(x.current),null)},[]);function O(){m(`list`),t()}function k(e){let t=n.find(t=>t.name===e);t&&(i(t),O())}function A(){m(`add`)}function te(){if(O(),window.innerWidth<768){window.dispatchEvent(new Event(`open-mobile-settings`));return}let{sidebarCollapsed:e,toggleSidebar:t,setSidebarActiveTab:n}=Fe.getState();e&&t(),n(`settings`)}async function ne(){if(!S||!w.trim()||w===S){C(null);return}try{await s(S,w.trim())}catch{}C(null)}async function j(e){g(null);try{await c(e)}catch{}}async function M(e,t){try{await a(e,t),b(!1),g(null)}catch(e){console.error(`Failed to save color:`,e)}}h&&d.find(e=>e.name===h);let N=h?d.findIndex(e=>e.name===h):-1,ie=h?[{label:`Rename`,icon:re,onClick:()=>{T(h),C(h),g(null)}},{label:`Change Color`,icon:cn,onClick:()=>{let e=d.findIndex(e=>e.name===h),t=d[e];v(Bu(t?.color,e)),b(!0)}},...N>0?[{label:`Move Up`,icon:F,onClick:()=>{let e=d.map(e=>e.name),[t]=e.splice(N,1);e.splice(N-1,0,t),o(e),g(null)}}]:[],...N<d.length-1?[{label:`Move Down`,icon:ce,onClick:()=>{let e=d.map(e=>e.name),[t]=e.splice(N,1);e.splice(N+1,0,t),o(e),g(null)}}]:[],{label:`Delete`,icon:ke,destructive:!0,onClick:()=>j(h)}]:[];return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(ws,{open:e,onClose:O,className:`bg-background`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-border`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p===`add`&&(0,q.jsx)(`button`,{onClick:()=>m(`list`),className:`flex items-center justify-center size-7 rounded-md hover:bg-surface-elevated transition-colors`,children:(0,q.jsx)(ee,{className:`size-4`})}),(0,q.jsx)(`span`,{className:`text-sm font-semibold`,children:p===`add`?`Add Project`:`Projects`})]}),(0,q.jsx)(`button`,{onClick:O,className:`flex items-center justify-center size-7 rounded-md hover:bg-surface-elevated transition-colors`,children:(0,q.jsx)(je,{className:`size-4`})})]}),p===`add`&&(0,q.jsx)(`div`,{className:`px-4 py-4`,children:(0,q.jsx)(Ju,{onSuccess:()=>{m(`list`),t()},onCancel:()=>m(`list`),footerClassName:`pt-2`})}),(0,q.jsx)(`div`,{className:p===`add`?`hidden`:`max-h-[60vh] overflow-y-auto`,children:d.map((e,t)=>{let n=Bu(e.color,t),i=r?.name===e.name,a=S===e.name;return(0,q.jsxs)(`div`,{className:H(`flex items-center gap-3 px-4 py-3 transition-colors active:bg-surface-elevated`,i&&`bg-accent/10`),onClick:()=>!a&&k(e.name),onTouchStart:()=>E(e.name),onTouchEnd:D,onTouchMove:D,children:[(0,q.jsx)(id,{name:e.name,color:n,allNames:f}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[a?(0,q.jsx)(`input`,{type:`text`,value:w,onChange:e=>T(e.target.value),onKeyDown:e=>{e.key===`Enter`&&ne(),e.key===`Escape`&&C(null)},onBlur:ne,onClick:e=>e.stopPropagation(),className:`w-full bg-transparent border-b border-primary text-sm outline-none`,autoFocus:!0}):(0,q.jsx)(`p`,{className:`text-sm font-medium truncate`,children:e.name}),(0,q.jsx)(`p`,{className:`text-xs text-text-subtle truncate`,children:e.path})]}),i&&(0,q.jsx)(le,{className:`size-4 text-primary shrink-0`})]},e.name)})}),(0,q.jsx)(`div`,{className:`border-t border-border`,children:(0,q.jsxs)(`button`,{onClick:A,className:`w-full flex items-center gap-3 px-4 py-3 text-text-secondary hover:bg-surface-elevated transition-colors`,children:[(0,q.jsx)(De,{className:`size-4 shrink-0`}),(0,q.jsx)(`span`,{className:`text-sm`,children:`Add Project`})]})}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-t border-border`,children:[(0,q.jsxs)(`button`,{onClick:te,className:`flex items-center gap-2 text-text-secondary hover:text-foreground transition-colors`,children:[(0,q.jsx)(Cn,{className:`size-4`}),(0,q.jsx)(`span`,{className:`text-sm`,children:`Settings`})]}),u&&(0,q.jsxs)(`span`,{className:`text-xs text-text-subtle`,children:[`v`,u]})]})]}),(0,q.jsxs)(ws,{open:!!h&&!y,onClose:()=>g(null),zIndex:60,children:[(0,q.jsx)(`div`,{className:`px-4 py-2 border-b border-border`,children:(0,q.jsx)(`p`,{className:`text-xs font-medium text-text-secondary`,children:h})}),ie.map(e=>{let t=e.icon;return(0,q.jsxs)(`button`,{onClick:e.onClick,className:H(`w-full flex items-center gap-3 px-4 py-3 text-sm transition-colors active:bg-surface-elevated`,e.destructive?`text-destructive`:`text-foreground`),children:[(0,q.jsx)(t,{className:`size-4 shrink-0`}),e.label]},e.label)})]}),(0,q.jsxs)(ws,{open:y&&!!h,onClose:()=>{b(!1),g(null)},zIndex:60,className:`p-4 space-y-4`,children:[(0,q.jsx)(`p`,{className:`text-sm font-medium`,children:`Change Color`}),(0,q.jsx)(`div`,{className:`flex flex-wrap gap-3`,children:zu.map(e=>(0,q.jsx)(`button`,{type:`button`,onClick:()=>v(e),className:H(`size-9 rounded-full border-2 transition-all`,_===e?`border-primary scale-110`:`border-transparent`),style:{background:e}},e))}),(0,q.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,q.jsx)(`button`,{onClick:()=>{b(!1),g(null)},className:`flex-1 py-2 text-sm text-text-secondary border border-border rounded-md`,children:`Cancel`}),(0,q.jsx)(`button`,{onClick:()=>M(h,_),className:`flex-1 py-2 text-sm bg-primary text-white rounded-md`,children:`Save`})]})]})]})}function od({onSuccess:e}){let[t,n]=(0,K.useState)(``),r=Fe(e=>e.deviceName),[i,a]=(0,K.useState)(null),[o,s]=(0,K.useState)(!1);async function c(n){if(n.preventDefault(),t.trim()){s(!0),a(null);try{Ne(t.trim());let n=await(await fetch(`/api/auth/check`,{headers:{Authorization:`Bearer ${t.trim()}`}})).json();if(!n.ok)throw Error(n.error??`Invalid token`);e()}catch(e){a(e instanceof Error?e.message:`Authentication failed`),localStorage.removeItem(`ppm-auth-token`)}finally{s(!1)}}}return(0,q.jsx)(`div`,{className:`min-h-dvh flex items-center justify-center bg-background p-4`,children:(0,q.jsxs)(`div`,{className:`w-full max-w-sm bg-surface rounded-lg border border-border p-6 space-y-6`,children:[(0,q.jsxs)(`div`,{className:`text-center space-y-2`,children:[(0,q.jsx)(`div`,{className:`flex items-center justify-center size-12 mx-auto rounded-full bg-surface-elevated`,children:(0,q.jsx)(j,{className:`size-6 text-primary`})}),(0,q.jsx)(`h1`,{className:`text-xl font-semibold text-foreground`,children:`PPM`}),r&&(0,q.jsx)(`p`,{className:`text-xs text-text-subtle bg-surface-elevated inline-block px-2 py-0.5 rounded-full`,children:r}),(0,q.jsx)(`p`,{className:`text-sm text-text-secondary`,children:`Enter your access password to unlock`})]}),(0,q.jsxs)(`form`,{onSubmit:c,className:`space-y-4`,children:[(0,q.jsx)(`div`,{children:(0,q.jsx)(z,{type:`password`,placeholder:`Auth token`,value:t,onChange:e=>n(e.target.value),className:`h-11 bg-background border-border`,autoFocus:!0})}),i&&(0,q.jsxs)(`div`,{className:`flex items-center gap-2 text-error text-sm`,children:[(0,q.jsx)(ot,{className:`size-4 shrink-0`}),(0,q.jsx)(`span`,{children:i})]}),(0,q.jsx)(R,{type:`submit`,disabled:o||!t.trim(),className:`w-full h-11`,children:o?`Checking...`:`Unlock`})]})]})})}var sd=[`terminal`,`chat`,`editor`,`database`,`sqlite`,`postgres`,`git-diff`,`settings`,`ports`,`extension`];function cd(){let e=window.location.pathname,t=new URLSearchParams(window.location.search).get(`openChat`),n=e.match(/^\/project\/([^/]+)(?:\/([^/]+)(\/.*)?)?/);if(!n)return{projectName:null,tabType:null,tabIdentifier:null,openChat:t};let r=decodeURIComponent(n[1]),i=n[2]??null,a=n[3]?n[3].slice(1):null;return i===`tab`?{projectName:r,tabType:null,tabIdentifier:null,openChat:t}:{projectName:r,tabType:sd.includes(i)?i:null,tabIdentifier:a,openChat:t}}function ld(e,t){if(!e||e===`__global__`)return`/`;let n=`/project/${encodeURIComponent(e)}`;if(!t)return n;let r=t.indexOf(`@`),i=r===-1?t:t.slice(0,r),a=i.indexOf(`:`);if(a===-1)n+=`/${i}`;else{let e=i.slice(0,a),t=i.slice(a+1);n+=`/${e}/${t.replace(/[?#]/g,encodeURIComponent)}`}return n}function ud(e,t){return t?`${e}:${t}`:e}function dd(e,t,n){switch(e){case`editor`:return t?{filePath:t,projectName:n}:null;case`chat`:{if(!t)return null;let e=t.indexOf(`/`),r=e===-1?t:t.slice(e+1),i=e===-1?void 0:t.slice(0,e),a=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r)?r:void 0;return{...a&&{sessionId:a},...i&&{providerId:i},projectName:n}}case`terminal`:return{terminalIndex:parseInt(t??`1`,10),projectName:n};case`git-diff`:return t?{filePath:t,projectName:n}:null;case`settings`:return{};case`database`:{let[e,n]=(t??``).split(`:`);return e?{connectionId:e,tableName:n??``}:null}case`sqlite`:return t?{filePath:t,projectName:n}:null;case`postgres`:{let[e,n]=(t??``).split(`:`);return e?{connectionId:e,tableName:n??``}:null}case`ports`:return null;case`extension`:return t?{viewType:t,projectName:n}:null;default:return null}}function fd(e,t){switch(e){case`editor`:return t?.split(`/`).pop()??`File`;case`chat`:return`Chat`;case`terminal`:return`Terminal ${t??`1`}`;case`git-diff`:return t?.split(`/`).pop()??`Diff`;case`settings`:return`Settings`;case`database`:return t??`Database`;case`sqlite`:return t?.split(`/`).pop()??`SQLite`;case`postgres`:return t??`PostgreSQL`;case`ports`:return`Ports`;case`extension`:return t?t.split(`-`).map(e=>(e[0]?.toUpperCase()??``)+e.slice(1)).join(` `):`Extension`;default:return e}}function pd(e,t,n){let{tabs:r,setActiveTab:i,openTab:a}=W.getState(),o=ud(e,t),s=r.find(e=>e.id===o);if(s){i(s.id);return}let c=dd(e,t,n);c&&a({type:e,title:fd(e,t),projectId:n,closable:!0,metadata:c})}function md(){let e=W(e=>e.activeTabId),t=W(e=>e.currentProject),n=(0,K.useRef)(!1);(0,K.useEffect)(()=>{if(n.current){n.current=!1;return}let r=ld(t,e);window.location.pathname!==r&&window.history.pushState(null,``,r)},[e,t]),(0,K.useEffect)(()=>{function e(){let{tabType:e,tabIdentifier:t}=cd();if(!e)return;n.current=!0;let{tabs:r,setActiveTab:i}=W.getState(),a=ud(e,t),o=r.find(e=>e.id===a);if(o)i(o.id);else{let n=W.getState().currentProject;n&&pd(e,t,n)}}return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[])}var hd=`#3b82f6`,gd=`#f59e0b`,_d=`#ef4444`;function vd(e){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
20
20
  <rect width="32" height="32" rx="6" fill="${hd}"/>
21
21
  <text x="16" y="22" text-anchor="middle" font-family="system-ui,sans-serif" font-weight="700" font-size="11" fill="white">PPM</text>
22
22
  ${e?`<circle cx="26" cy="6" r="5" fill="${_d}"/>`:``}
@@ -24,4 +24,4 @@ OPENAI_API_KEY=${e.authKey}`}),(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:
24
24
  <rect width="32" height="32" rx="6" fill="${gd}"/>
25
25
  ${[10,16,22].map((t,n)=>`<circle cx="${t}" cy="${n===e?13:17}" r="3" fill="white"/>`).join(``)}
26
26
  ${t?`<circle cx="26" cy="6" r="5" fill="${_d}"/>`:``}
27
- </svg>`}var yd=e=>`data:image/svg+xml,${encodeURIComponent(e)}`,bd=[yd(vd(!1)),yd(vd(!0))],xd=[0,1,2,-1].map(e=>[yd($(e,!1)),yd($(e,!0))]),Sd=xd.length;function Cd(e,t=null){let n=document.getElementById(`ppm-favicon`);if(!n)return;let r=e?1:0;t===null?n.href=bd[r]:n.href=xd[(t%Sd+Sd)%Sd][r]}function wd(e,t,n){let r=[t,n||null,`PPM`].filter(Boolean).join(` - `);return e>0?`(${e}) ${r}`:r}function Td(){let e=We(e=>e.activeProject),t=Fe(e=>e.deviceName),n=Io(Lo),r=(0,K.useRef)(null);(0,K.useEffect)(()=>{let i=()=>ja(Aa.getState())>0,a=()=>{let n=ja(Aa.getState());document.title=wd(n,e?.name,t??void 0)};if(a(),n){let e=0;Cd(i(),e),r.current=setInterval(()=>{e=(e+1)%Sd,Cd(i(),e)},300)}else Cd(i());let o=Aa.subscribe(()=>{a(),n||Cd(i())});return()=>{o(),r.current&&=(clearInterval(r.current),null)}},[e?.name,t,n])}var Ed=15e3,Dd=Me((e,t)=>({isDown:!1,downSince:null,showOverlay:!1,markDown:()=>{let{downSince:n}=t(),r=Date.now(),i=n??r;e({isDown:!0,downSince:i,showOverlay:r-i>=Ed})},markUp:()=>{e({isDown:!1,downSince:null,showOverlay:!1})}})),Od=1e4,kd=2e3;function Ad(){(0,K.useEffect)(()=>{let e=!1,t,{markDown:n,markUp:r}=Dd.getState();async function i(){try{let t=await fetch(`/api/health`,{cache:`no-store`});if(t.ok&&e){if(r(),`caches`in window){let e=await caches.keys();await Promise.all(e.map(e=>caches.delete(e)))}window.location.reload();return}t.ok&&r(),e=!1}catch{e=!0,n()}t=setTimeout(i,e?kd:Od)}return t=setTimeout(i,Od),()=>clearTimeout(t)},[])}function jd(e){let t=Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`));return t>=0?e.slice(t+1):e}function Md(e,t){let n=0,r=0,i=-1;for(let a=0;a<e.length;a++){if(n=t.indexOf(e[a],n),n===-1)return-1;i>=0&&(r+=n-i-1),i=n,n++}return r}function Nd(e,t,n,r,i){if(t===e)return{tier:0,offset:0,nameLen:r,depth:i};if(t.startsWith(e))return{tier:1,offset:0,nameLen:r,depth:i};let a=t.indexOf(e);if(a>=0)return{tier:2,offset:a,nameLen:r,depth:i};let o=n.indexOf(e);if(o>=0)return{tier:3,offset:o,nameLen:r,depth:i};let s=Md(e,t);if(s>=0)return{tier:4,offset:s,nameLen:r,depth:i};let c=Md(e,n);return c>=0?{tier:5,offset:c,nameLen:r,depth:i}:null}function Pd(e,t,n){let r=n.toLowerCase();return Nd(e.toLowerCase(),jd(r),r,t.length,n.split(`/`).length)}function Fd(e,t){return e.tier-t.tier||e.offset-t.offset||e.nameLen-t.nameLen||e.depth-t.depth}var Id=100,Ld=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),Rd={"git-branch":Rt,database:fe,refresh:je,plus:ke,terminal:kn,settings:Cn,search:Te,"file-code":xt,globe:ue};function zd(e){return e?e.replace(/Mod\+/g,Ld?`⌘`:`Ctrl+`).replace(/Alt\+/g,Ld?`⌥`:`Alt+`).replace(/Shift\+/g,Ld?`⇧`:`Shift+`).replace(/Meta\+/g,`⌘`).replace(/Ctrl\+/g,Ld?`⌃`:`Ctrl+`):``}function Bd(e){let t=[];for(let n of e)n.type===`file`&&t.push({name:n.name,path:n.path}),n.children&&t.push(...Bd(n.children));return t}function Vd(e){return e?e.startsWith(`/`)||e.startsWith(`~/`)||e.startsWith(`~\\`)||/^[A-Za-z]:[/\\]/.test(e):!1}function Hd(e){let t=e.replace(/\\/g,`/`);if(t.endsWith(`/`))return e;let n=Math.max(t.lastIndexOf(`/`),e.lastIndexOf(`\\`));return n>0?e.slice(0,n+1):e}var Ud=new Map;function Wd({open:e,onClose:t,initialQuery:n=``}){let[r,i]=(0,K.useState)(``),a=(0,K.useDeferredValue)(r),[o,s]=(0,K.useState)(0),[c,l]=(0,K.useState)([]),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)([]),m=(0,K.useRef)(null),h=(0,K.useRef)(null),g=W(e=>e.openTab),_=We(e=>e.activeProject),v=Ba(e=>e.fileIndex),y=Ba(e=>e.indexStatus),b=Ba(e=>e.loadIndex),x=Ba(e=>e.tree),S=Fe(e=>e.setSidebarActiveTab),C=Fe(e=>e.sidebarCollapsed),w=Fe(e=>e.toggleSidebar),T=Mo(e=>e.getBinding),E=No(e=>e.contributions),D=(0,K.useCallback)(async e=>{if(Ud.has(e)){l(Ud.get(e));return}d(!0);try{let t=await V.get(`/api/fs/list?dir=${encodeURIComponent(e)}`);Ud.set(e,t),l(t)}catch{l([])}finally{d(!1)}},[]);(0,K.useEffect)(()=>{if(!Vd(r)){l([]);return}D(Hd(r))},[r,D]),(0,K.useEffect)(()=>{if(Vd(r)||r.trim().length<2){p([]);return}let e=setTimeout(async()=>{try{p(await V.get(`/api/db/search?q=${encodeURIComponent(r.trim())}`)??[])}catch{p([])}},300);return()=>clearTimeout(e)},[r]);let O=(0,K.useMemo)(()=>{let e=_?.name??null,n=_?{projectName:_.name}:void 0,r=(r,i)=>()=>{g({type:r,title:i,projectId:e,metadata:n,closable:!0}),t()},i=[{id:`chat`,label:`New AI Chat`,icon:en,action:r(`chat`,`AI Chat`),keywords:`ai assistant claude`,group:`action`,shortcut:zd(T(`open-chat`))},{id:`new-file`,label:`New File`,icon:Et,action:()=>{W.getState().openNewFile(),t()},keywords:`create untitled blank empty`,group:`action`,shortcut:zd(T(`new-file`))},{id:`terminal`,label:`New Terminal`,icon:kn,action:r(`terminal`,`Terminal`),keywords:`bash shell console`,group:`action`,shortcut:zd(T(`open-terminal`))},{id:`ports`,label:`Port Forwarding`,icon:ue,action:r(`ports`,`Ports`),keywords:`web preview localhost port forward tunnel url`,group:`action`},{id:`postgres`,label:`PostgreSQL`,icon:fe,action:r(`postgres`,`PostgreSQL`),keywords:`database pg sql query`,group:`action`},{id:`voice-input`,label:`Voice Input`,icon:tn,action:()=>{window.dispatchEvent(new CustomEvent(`toggle-voice-input`)),t()},keywords:`speech microphone dictate voice`,group:`action`,shortcut:zd(T(`voice-input`))},{id:`git-status`,label:`Git Status`,icon:zt,action:()=>{S(`git`),t()},keywords:`changes diff staged`,group:`action`,shortcut:zd(T(`open-git-status`))},{id:`compare-files`,label:`Compare Files...`,icon:Se,group:`action`,keywords:`diff compare two files select`,shortcut:zd(T(`compare-files`)),action:()=>{let{activeTabId:e,tabs:n}=W.getState(),r=n.find(t=>t.id===e),i=r?.metadata;r?.type===`editor`&&i?.filePath&&i?.projectName&&Ka.getState().setSelection({filePath:i.filePath,projectName:i.projectName,dirtyContent:i.unsavedContent,label:Re(i.filePath)}),window.dispatchEvent(new CustomEvent(`open-compare-picker`)),t()}},{id:`settings`,label:`Settings`,icon:Cn,action:()=>{C&&w(),S(`settings`),t()},keywords:`config preferences theme`,group:`action`,shortcut:zd(T(`open-settings`))}],a=E?.keybindings??[],o=(E?.commands??[]).map(e=>{let n=a.find(t=>t.command===e.command),r=(n?T(`ext:${n.command}`):``)||(n?Ld&&n.mac?n.mac:n.key:``);return{id:`ext:${e.command}`,label:e.title,hint:e.category,icon:e.icon&&Rd[e.icon]||hn,group:`action`,keywords:`extension ${e.command} ${e.category??``}`,shortcut:r?zd(r):void 0,action:()=>{let n=[];_?.path&&n.push(_.path),window.dispatchEvent(new CustomEvent(`ext:command:execute`,{detail:{command:e.command,args:n}})),t()}}});return[...i,...o]},[_,g,t,S,C,w,T,E]),k=(0,K.useMemo)(()=>{let e=_?.name??null,n=_?{projectName:_.name}:void 0;return(y===`ready`?v.filter(e=>e.type===`file`):Bd(x)).map(r=>({id:`file:${r.path}`,label:r.name,hint:r.path,icon:xt,group:`file`,keywords:r.path,isIgnored:`isIgnored`in r?r.isIgnored:void 0,action:()=>{g({type:`editor`,title:r.name,projectId:e,metadata:{...n,filePath:r.path},closable:!0}),t()}}))},[y,v,x,_,g,t]),ee=(0,K.useMemo)(()=>{let e=_?.name??null,n=_?{projectName:_.name}:void 0;return c.map(r=>{let i=Re(r);return{id:`fs:${r}`,label:i,hint:r,icon:Mt,group:`fs`,keywords:r,action:()=>{g({type:`editor`,title:i,projectId:e,metadata:{...n,filePath:r},closable:!0}),t()}}})},[c,_,g,t]),A=(0,K.useMemo)(()=>f.map(e=>({id:`db:${e.connectionId}:${e.schemaName}.${e.tableName}`,label:e.tableName,hint:`${e.connectionName} (${e.connectionType===`postgres`?`PG`:`SQLite`})`,icon:fe,group:`db`,connectionColor:e.connectionColor,action:()=>{g({type:`database`,title:`${e.connectionName} · ${e.tableName}`,projectId:null,closable:!0,metadata:{connectionId:e.connectionId,connectionName:e.connectionName,dbType:e.connectionType,tableName:e.tableName,schemaName:e.schemaName,connectionColor:e.connectionColor}}),t()}})),[f,g,t]),te=(0,K.useMemo)(()=>[...O,...k],[O,k]),ne=(0,K.useMemo)(()=>te.map(e=>{let t=e.keywords??e.label,n=t.toLowerCase();return{cmd:e,filenameLower:jd(n),pathLower:n,labelLen:e.label.length,depth:t.split(`/`).length}}),[te]),re=(0,K.useMemo)(()=>{if(Vd(a)){let e=a.lastIndexOf(`/`),t=e>=0?a.slice(e+1).toLowerCase():``;return t?ee.filter(e=>{let n=e.label.toLowerCase(),r=(e.keywords??``).toLowerCase();return n.includes(t)||r.includes(t)}).slice(0,50):ee.slice(0,50)}if(!a.trim())return O;let e=a.toLowerCase().replace(/^\.\.?\//,``),t=[];for(let n of ne){let r=Nd(e,n.filenameLower,n.pathLower,n.labelLen,n.depth);r&&t.push({cmd:n.cmd,score:r})}t.sort((e,t)=>Fd(e.score,t.score));let n=t.slice(0,Id).map(e=>e.cmd);return a.trim().length>=2?[...A,...n]:n},[ne,O,ee,A,a]);(0,K.useEffect)(()=>{e&&y===`idle`&&_&&b(_.name)},[e,y,_,b]),(0,K.useEffect)(()=>{e&&(i(n||``),s(0),l([]),p([]),requestAnimationFrame(()=>m.current?.focus()))},[e]),(0,K.useEffect)(()=>{s(e=>Math.min(e,Math.max(re.length-1,0)))},[re.length]),(0,K.useEffect)(()=>{let e=h.current;e&&e.children[o]?.scrollIntoView({block:`nearest`})},[o]);let j=(0,K.useCallback)(()=>{r.trim()&&(g({type:`chat`,title:`AI Chat`,projectId:_?.name??null,metadata:{projectName:_?.name,pendingMessage:r.trim()},closable:!0}),t())},[r,_,g,t]);function M(e){let n=re.length;switch(e.key){case`ArrowDown`:e.preventDefault(),n>0&&s(e=>(e+1)%n);break;case`ArrowUp`:e.preventDefault(),n>0&&s(e=>(e-1+n)%n);break;case`Enter`:e.preventDefault(),n>0?re[o]?.action():r.trim()&&j();break;case`Escape`:e.preventDefault(),t();break}}if(!e)return null;let N=Vd(r);return(0,q.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:t,children:[(0,q.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,q.jsxs)(`div`,{className:`relative z-10 w-full max-w-md rounded-t-xl md:rounded-xl border border-border bg-background shadow-2xl overflow-hidden max-h-[80vh] md:max-h-none`,onClick:e=>e.stopPropagation(),onKeyDown:M,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-3 py-2.5`,children:[(0,q.jsx)(Te,{className:`size-4 text-text-subtle shrink-0`}),(0,q.jsx)(`input`,{ref:m,type:`text`,value:r,onChange:e=>i(e.target.value),placeholder:`Search actions & files... (type / or ~/ for filesystem)`,className:`flex-1 bg-transparent text-sm text-text-primary outline-none placeholder:text-text-subtle`}),u&&(0,q.jsx)(G,{className:`size-3.5 animate-spin text-text-subtle shrink-0`}),(0,q.jsx)(`kbd`,{className:`hidden sm:inline-flex items-center rounded border border-border bg-surface px-1.5 py-0.5 text-[10px] text-text-subtle font-mono`,children:`ESC`})]}),N&&!u&&c.length===0&&r.length<4&&(0,q.jsx)(`div`,{className:`px-3 py-2 text-xs text-text-subtle border-b border-border/50`,children:`Type a directory path to browse files (e.g. ~/Projects/)`}),!N&&(y===`loading`||y===`idle`)&&(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 px-3 py-1.5 border-b border-border/50`,children:[(0,q.jsx)(G,{className:`size-3 animate-spin text-text-subtle shrink-0`}),(0,q.jsx)(`span`,{className:`text-[11px] text-text-subtle italic`,children:`Indexing project…`})]}),!N&&y===`error`&&(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1.5 border-b border-border/50`,children:[(0,q.jsx)(`span`,{className:`text-[11px] text-text-subtle`,children:`Failed to build file index —`}),(0,q.jsx)(`button`,{onClick:()=>_&&b(_.name),className:`text-[11px] text-accent hover:underline`,children:`retry`})]}),(0,q.jsx)(`div`,{ref:h,className:`max-h-72 overflow-y-auto py-1`,children:re.length===0?u?(0,q.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`Searching...`}):r.trim()?(0,q.jsxs)(`button`,{onClick:j,className:`flex items-center gap-3 w-full px-3 py-3 text-sm text-left text-text-secondary hover:bg-accent/15 hover:text-text-primary transition-colors`,children:[(0,q.jsx)(en,{className:`size-4 shrink-0 text-accent`}),(0,q.jsxs)(`span`,{children:[`Ask AI: `,(0,q.jsx)(`span`,{className:`text-text-primary font-medium`,children:r.trim().slice(0,60)})]})]}):(0,q.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`No results`}):re.map((e,t)=>{let n=e.icon;return(0,q.jsxs)(`button`,{onClick:e.action,className:`flex items-center gap-3 w-full px-3 py-2 text-sm text-left transition-colors ${t===o?`bg-accent/15 text-text-primary`:`text-text-secondary hover:bg-surface-elevated`} ${e.isIgnored?`opacity-60`:``}`,title:e.isIgnored?`Gitignored file`:void 0,children:[(0,q.jsx)(n,{className:`size-4 shrink-0`}),(0,q.jsx)(`span`,{className:`truncate`,children:e.label}),e.hint&&(0,q.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 text-xs text-text-subtle truncate max-w-[200px]`,children:[e.connectionColor&&(0,q.jsx)(`span`,{className:`shrink-0 size-2 rounded-full`,style:{backgroundColor:e.connectionColor}}),e.hint]}),e.shortcut&&(0,q.jsx)(`kbd`,{className:`ml-auto shrink-0 rounded border border-border bg-surface px-1.5 py-0.5 text-[10px] text-text-subtle font-mono`,children:e.shortcut})]},e.id)})}),(0,q.jsxs)(`div`,{className:`flex items-center justify-center gap-1.5 border-t border-border px-3 py-1.5`,children:[(0,q.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`Press`}),(0,q.jsx)(`kbd`,{className:`inline-flex items-center rounded border border-border bg-surface px-1 py-0.5 text-[10px] text-text-subtle font-mono`,children:`Shift`}),(0,q.jsx)(`kbd`,{className:`inline-flex items-center rounded border border-border bg-surface px-1 py-0.5 text-[10px] text-text-subtle font-mono`,children:`Shift`}),(0,q.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`to open this palette`})]})]})]})}var Gd=50;function Kd({open:e,onOpenChange:t,initialA:n}={}){let r=e!==void 0,[i,a]=(0,K.useState)(!1),o=r?e:i,s=e=>{r?t?.(e):a(e)},[c,l]=(0,K.useState)(n??null);(0,K.useEffect)(()=>{if(r)return;function e(){l(Ka.getState().selection),a(!0)}return window.addEventListener(`open-compare-picker`,e),()=>window.removeEventListener(`open-compare-picker`,e)},[r]);let[u,d]=(0,K.useState)(``),[f,p]=(0,K.useState)(0),[m,h]=(0,K.useState)(null),g=(0,K.useRef)(null),_=W(e=>e.tabs),v=Ba(e=>e.fileIndex),y=We(e=>e.activeProject);(0,K.useEffect)(()=>{o&&(r&&l(n??null),d(``),p(0),h(null),setTimeout(()=>g.current?.focus(),50))},[o,n,r]);let b=(0,K.useMemo)(()=>{let e=_.filter(e=>e.type===`editor`&&e.metadata?.filePath).map(e=>({id:`tab:${e.id}`,path:e.metadata.filePath,label:Re(e.metadata.filePath),source:`tab`,dirtyContent:e.metadata.unsavedContent})),t=new Set(e.map(e=>e.path)),n=v.filter(e=>e.type===`file`&&!t.has(e.path)).map(e=>({id:`file:${e.path}`,path:e.path,label:e.name,source:`file`}));return[...e,...n]},[_,v]),x=(0,K.useMemo)(()=>u.trim()?b.map(e=>{let t=Pd(u,e.label,e.path);return t?{c:e,score:t}:null}).filter(e=>e!==null).sort((e,t)=>Fd(e.score,t.score)).slice(0,Gd).map(e=>e.c):b.slice(0,Gd),[b,u]);(0,K.useEffect)(()=>{f>=x.length&&p(Math.max(0,x.length-1))},[x,f]);let S=(0,K.useRef)(!1);async function C(e){if(y){if(!c){l({filePath:e.path,projectName:y.name,dirtyContent:e.dirtyContent,label:e.label}),d(``),p(0),g.current?.focus();return}if(!S.current){S.current=!0;try{await Ja({path:c.filePath,dirtyContent:c.dirtyContent},{path:e.path,dirtyContent:e.dirtyContent},y.name),Ka.getState().clearSelection(),s(!1)}catch(e){h(e instanceof Error?e.message:`Compare failed`)}finally{S.current=!1}}}}function w(e){if(e.key===`ArrowDown`)e.preventDefault(),p(e=>Math.min(x.length-1,e+1));else if(e.key===`ArrowUp`)e.preventDefault(),p(e=>Math.max(0,e-1));else if(e.key===`Enter`){e.preventDefault();let t=x[f];t&&C(t)}}return(0,q.jsx)(_e,{open:o,onOpenChange:s,children:(0,q.jsxs)(ye,{className:`max-w-lg p-0 gap-0 overflow-hidden`,children:[(0,q.jsx)(ve,{className:`px-4 pt-4 pb-2`,children:(0,q.jsxs)(be,{className:`flex items-center gap-2 text-sm`,children:[(0,q.jsx)(Se,{className:`size-4`}),`Compare Files`]})}),(0,q.jsx)(`div`,{className:`px-4 pb-2`,children:c?(0,q.jsxs)(`div`,{className:`flex items-center gap-2 text-xs bg-muted rounded px-2 py-1 w-fit max-w-full`,children:[(0,q.jsx)(xt,{className:`size-3.5 shrink-0`}),(0,q.jsx)(`span`,{className:`truncate`,title:c.filePath,children:c.label}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>l(null),className:`hover:bg-surface-elevated rounded p-0.5`,"aria-label":`Clear first file`,children:(0,q.jsx)(Ae,{className:`size-3`})})]}):(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Pick first file, then second.`})}),(0,q.jsx)(`input`,{ref:g,type:`text`,value:u,onChange:e=>{d(e.target.value),p(0)},onKeyDown:w,placeholder:c?`Search for file B...`:`Search for file A...`,className:`w-full px-4 py-2 bg-transparent border-y border-border text-sm outline-none`}),m&&(0,q.jsx)(`div`,{className:`px-4 py-2 text-xs text-destructive border-b border-border`,children:m}),(0,q.jsx)(`div`,{className:`max-h-[50vh] md:max-h-80 overflow-y-auto`,children:x.length===0?(0,q.jsx)(`div`,{className:`px-4 py-6 text-center text-xs text-muted-foreground`,children:b.length===0?`No files available`:`No matches`}):x.map((e,t)=>(0,q.jsxs)(`button`,{type:`button`,onClick:()=>C(e),onMouseEnter:()=>p(t),className:H(`w-full flex items-center gap-2 px-4 py-1.5 text-left text-sm`,`hover:bg-surface-elevated transition-colors`,t===f&&`bg-surface-elevated`),children:[(0,q.jsx)(xt,{className:`size-3.5 shrink-0 text-text-secondary`}),(0,q.jsx)(`span`,{className:`truncate`,children:e.label}),(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground truncate ml-auto`,title:e.path,children:e.source===`tab`?`open`:e.path})]},e.id))})]})})}function qd(){let[e,t]=(0,K.useState)(null),[n,r]=(0,K.useState)(!1);(0,K.useEffect)(()=>{function e(e){let n=e.detail;n&&(t(n),r(!1))}return window.addEventListener(`open-bug-report`,e),()=>window.removeEventListener(`open-bug-report`,e)},[]);let i=(0,K.useCallback)(()=>t(null),[]);return e?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/50`,onClick:i}),(0,q.jsxs)(`div`,{className:`fixed inset-4 md:inset-auto md:top-[15%] md:left-1/2 md:-translate-x-1/2 md:w-full md:max-w-lg md:max-h-[70vh] z-50 flex flex-col bg-background border border-border rounded-lg shadow-2xl overflow-hidden`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-border`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium`,children:`Bug Report`}),(0,q.jsx)(`button`,{onClick:i,className:`p-1 rounded hover:bg-surface-elevated`,children:(0,q.jsx)(Ae,{className:`size-4`})})]}),(0,q.jsx)(`pre`,{className:`flex-1 overflow-auto px-4 py-2 text-xs font-mono whitespace-pre-wrap break-all`,children:e}),(0,q.jsxs)(`div`,{className:`flex gap-2 p-3 border-t border-border`,children:[(0,q.jsxs)(`button`,{onClick:async()=>{await Gu(e)&&r(!0)},className:`flex items-center gap-1.5 px-3 py-1.5 rounded-md bg-surface-elevated text-xs text-foreground hover:bg-surface transition-colors`,children:[n?(0,q.jsx)(le,{className:`size-3`}):(0,q.jsx)(pt,{className:`size-3`}),n?`Copied`:`Copy`]}),(0,q.jsxs)(`button`,{onClick:()=>{Wu(e),i()},className:`flex items-center gap-1.5 px-3 py-1.5 rounded-md bg-primary text-primary-foreground text-xs hover:bg-primary/90 transition-colors`,children:[(0,q.jsx)(vt,{className:`size-3`}),`Open GitHub Issue`]})]})]})]}):null}var Jd=6e4,Yd=`ppm-upgrade-dismissed-`;async function Xd(){if(`caches`in window){let e=await caches.keys();await Promise.all(e.map(e=>caches.delete(e)))}window.location.reload()}function Zd({onVisibilityChange:e}){let[t,n]=(0,K.useState)(null),[r,i]=(0,K.useState)(!1),[a,o]=(0,K.useState)(!1),[s,c]=(0,K.useState)(!1);(0,K.useEffect)(()=>{let e;async function t(){try{let e=await V.get(`/api/upgrade`);if(e.availableVersion){n(e.availableVersion);let t=Yd+e.availableVersion;sessionStorage.getItem(t)?c(!0):c(!1)}else n(null)}catch{}}return t(),e=setInterval(t,Jd),()=>clearInterval(e)},[]);let l=(0,K.useCallback)(async()=>{i(!0);try{let e=await V.post(`/api/upgrade/apply`);e.restart?(i(!1),o(!0)):(tr.info(e.message||`Upgrade installed. Restart PPM manually.`),i(!1),t&&sessionStorage.setItem(Yd+t,`1`),c(!0))}catch(e){e instanceof TypeError||e.message?.includes(`fetch`)||e.message?.includes(`network`)?(i(!1),o(!0)):(tr.error(`Upgrade failed: ${e.message}`),i(!1))}},[t]),u=(0,K.useCallback)(()=>{t&&sessionStorage.setItem(Yd+t,`1`),c(!0)},[t]),d=!!t&&!s||a;return(0,K.useEffect)(()=>{e?.(d)},[d,e]),d?(0,q.jsx)(`div`,{className:`w-full text-white px-3 py-1 flex items-center justify-between gap-2 z-50 text-sm shrink-0 ${a?`bg-green-600 dark:bg-green-700`:`bg-blue-600 dark:bg-blue-700`}`,children:a?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[(0,q.jsx)(lt,{className:`size-4 shrink-0`}),(0,q.jsxs)(`span`,{className:`truncate`,children:[`Upgrade to v`,t,` installed! Reload to apply.`]})]}),(0,q.jsxs)(`button`,{onClick:Xd,className:`bg-white text-green-600 font-medium rounded-full px-3 py-0.5 text-xs min-h-[28px] min-w-[28px] flex items-center gap-1.5 justify-center hover:bg-green-50 active:bg-green-100 transition-colors shrink-0`,children:[(0,q.jsx)(je,{className:`size-3`}),`Reload`]})]}):r?(0,q.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[(0,q.jsx)(G,{className:`size-4 animate-spin shrink-0`}),(0,q.jsxs)(`span`,{className:`truncate`,children:[`Upgrading to v`,t,`...`]})]}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[(0,q.jsx)(ct,{className:`size-4 shrink-0`}),(0,q.jsxs)(`span`,{className:`truncate`,children:[`PPM v`,t,` available`]})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,q.jsx)(`button`,{onClick:l,className:`bg-white text-blue-600 font-medium rounded-full px-3 py-0.5 text-xs min-h-[28px] min-w-[28px] flex items-center justify-center hover:bg-blue-50 active:bg-blue-100 transition-colors`,children:`Upgrade`}),(0,q.jsx)(`button`,{onClick:u,className:`min-h-[28px] min-w-[28px] flex items-center justify-center rounded-full hover:bg-blue-500 active:bg-blue-800 transition-colors`,"aria-label":`Dismiss upgrade notification`,children:(0,q.jsx)(Ae,{className:`size-4`})})]})]})}):null}var Qd=Me(e=>({src:null,alt:``,open:(t,n=``)=>e({src:t,alt:n}),close:()=>e({src:null,alt:``})}));function $d(){let{src:e,alt:t,close:n}=Qd(),r=(0,K.useCallback)(e=>{e.key===`Escape`&&n()},[n]);return(0,K.useEffect)(()=>{if(e)return document.addEventListener(`keydown`,r),()=>document.removeEventListener(`keydown`,r)},[e,r]),e?(0,q.jsxs)(`div`,{className:`fixed inset-0 z-[100] flex items-center justify-center bg-black/80 backdrop-blur-sm animate-in fade-in duration-150`,onClick:n,children:[(0,q.jsx)(`button`,{onClick:n,className:`absolute top-4 right-4 z-10 flex items-center justify-center size-8 rounded-full bg-white/10 hover:bg-white/20 text-white transition-colors`,"aria-label":`Close`,children:(0,q.jsx)(Ae,{className:`size-5`})}),(0,q.jsx)(`img`,{src:e,alt:t,className:`max-w-[90vw] max-h-[90vh] object-contain rounded-lg shadow-2xl`,onClick:e=>e.stopPropagation()})]}):null}var ef=Me(e=>({svg:null,open:t=>e({svg:t}),close:()=>e({svg:null})})),tf=.25,nf=4,rf=.25;function af(){let{svg:e,close:t}=ef(),n=(0,K.useRef)(null),[r,i]=(0,K.useState)(1),[a,o]=(0,K.useState)({x:0,y:0}),s=(0,K.useRef)(!1),c=(0,K.useRef)({x:0,y:0});(0,K.useEffect)(()=>{e&&(i(1),o({x:0,y:0}))},[e]);let l=(0,K.useCallback)(e=>{e.key===`Escape`&&t(),(e.key===`=`||e.key===`+`)&&i(e=>Math.min(nf,e+rf)),e.key===`-`&&i(e=>Math.max(tf,e-rf)),e.key===`0`&&(i(1),o({x:0,y:0}))},[t]);(0,K.useEffect)(()=>{if(e)return document.addEventListener(`keydown`,l),()=>document.removeEventListener(`keydown`,l)},[e,l]);let u=(0,K.useCallback)(e=>{e.preventDefault();let t=e.deltaY>0?-rf:rf;i(e=>Math.min(nf,Math.max(tf,e+t)))},[]),d=(0,K.useCallback)(e=>{e.button===0&&(s.current=!0,c.current={x:e.clientX,y:e.clientY},e.target.setPointerCapture(e.pointerId))},[]),f=(0,K.useCallback)(e=>{if(!s.current)return;let t=e.clientX-c.current.x,n=e.clientY-c.current.y;c.current={x:e.clientX,y:e.clientY},o(e=>({x:e.x+t,y:e.y+n}))},[]),p=(0,K.useCallback)(()=>{s.current=!1},[]);return e?(0,q.jsxs)(`div`,{className:`fixed inset-0 z-[100] flex flex-col bg-black/85 backdrop-blur-sm animate-in fade-in duration-150`,onClick:t,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 bg-black/40`,onClick:e=>e.stopPropagation(),children:[(0,q.jsxs)(`span`,{className:`text-sm text-white/70`,children:[Math.round(r*100),`% — Scroll to zoom, drag to pan, 0 to reset`]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(`button`,{onClick:()=>i(e=>Math.max(tf,e-rf)),className:`flex items-center justify-center size-8 rounded bg-white/10 hover:bg-white/20 text-white transition-colors`,"aria-label":`Zoom out`,children:(0,q.jsx)(Ln,{className:`size-4`})}),(0,q.jsx)(`button`,{onClick:()=>i(e=>Math.min(nf,e+rf)),className:`flex items-center justify-center size-8 rounded bg-white/10 hover:bg-white/20 text-white transition-colors`,"aria-label":`Zoom in`,children:(0,q.jsx)(In,{className:`size-4`})}),(0,q.jsx)(`button`,{onClick:()=>{i(1),o({x:0,y:0})},className:`flex items-center justify-center size-8 rounded bg-white/10 hover:bg-white/20 text-white transition-colors`,"aria-label":`Reset zoom`,children:(0,q.jsx)(vn,{className:`size-4`})}),(0,q.jsx)(`button`,{onClick:t,className:`flex items-center justify-center size-8 rounded bg-white/10 hover:bg-white/20 text-white transition-colors ml-2`,"aria-label":`Close`,children:(0,q.jsx)(Ae,{className:`size-5`})})]})]}),(0,q.jsx)(`div`,{ref:n,className:`flex-1 overflow-hidden cursor-grab active:cursor-grabbing`,onClick:e=>e.stopPropagation(),onWheel:u,onPointerDown:d,onPointerMove:f,onPointerUp:p,children:(0,q.jsx)(`div`,{className:`w-full h-full flex items-center justify-center`,style:{transform:`translate(${a.x}px, ${a.y}px) scale(${r})`,transformOrigin:`center center`},children:(0,q.jsx)(`div`,{className:`mermaid-overlay-content bg-white rounded-lg p-6 shadow-2xl [&_svg]:max-w-full [&_svg]:h-auto`,dangerouslySetInnerHTML:{__html:e}})})})]}):null}var of=`https://ppm.hienle.tech`;function sf(){return window.location.hostname.endsWith(`.trycloudflare.com`)}function cf(){let e=Dd(e=>e.showOverlay),[t,n]=(0,K.useState)(!1);if(!e)return null;let r=sf();async function i(){n(!0);try{if((await fetch(`/api/health`,{cache:`no-store`})).ok){if(Dd.getState().markUp(),`caches`in window){let e=await caches.keys();await Promise.all(e.map(e=>caches.delete(e)))}window.location.reload();return}}catch{}n(!1)}return(0,q.jsx)(`div`,{className:`fixed inset-0 z-[200] bg-background/95 backdrop-blur-sm flex items-center justify-center p-4`,children:(0,q.jsxs)(`div`,{className:`max-w-sm w-full text-center space-y-6`,children:[(0,q.jsx)(`div`,{className:`flex justify-center`,children:(0,q.jsx)(`div`,{className:`rounded-full bg-destructive/10 p-4`,children:(0,q.jsx)(r?Fn:bn,{className:`h-10 w-10 text-destructive`})})}),(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsx)(`h2`,{className:`text-xl font-semibold text-foreground`,children:r?`Connection Lost`:`Server Unreachable`}),(0,q.jsx)(`p`,{className:`text-sm text-muted-foreground leading-relaxed`,children:r?`The tunnel appears to have closed. The server may have restarted with a new URL.`:`Cannot connect to the PPM server. It may have stopped or is restarting.`})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[r&&(0,q.jsx)(`a`,{href:of,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center justify-center rounded-md bg-primary px-4 py-2.5 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors`,children:`Open PPM Cloud`}),(0,q.jsxs)(`button`,{onClick:i,disabled:t,className:`inline-flex items-center justify-center gap-2 rounded-md border border-border px-4 py-2.5 text-sm font-medium text-foreground hover:bg-accent transition-colors disabled:opacity-50`,children:[(0,q.jsx)(je,{className:`h-4 w-4 ${t?`animate-spin`:``}`}),t?`Retrying…`:`Retry Connection`]})]}),!r&&(0,q.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`If the server was stopped, run `,(0,q.jsx)(`code`,{className:`bg-muted px-1 py-0.5 rounded text-[11px]`,children:`ppm start`}),` to restart it.`]})]})})}function lf(){let e=No(e=>e.quickPick),t=No(e=>e.resolveQuickPick);return e?(0,q.jsx)(uf,{items:e.items,options:e.options,onSelect:e=>t(e),onCancel:()=>t(void 0)}):null}function uf({items:e,options:t,onSelect:n,onCancel:r}){let[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(0),[c,l]=(0,K.useState)(()=>{let t=new Set;return e.forEach((e,n)=>{e.picked&&t.add(n)}),t}),u=(0,K.useRef)(null),d=(0,K.useRef)(null),f=t.canPickMany??!1;(0,K.useEffect)(()=>{requestAnimationFrame(()=>u.current?.focus())},[]);let p=(0,K.useMemo)(()=>{if(!i.trim())return e.map((e,t)=>({item:e,originalIdx:t}));let t=i.toLowerCase();return e.map((e,t)=>({item:e,originalIdx:t})).filter(({item:e})=>e.label.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)||e.detail?.toLowerCase().includes(t))},[e,i]);(0,K.useEffect)(()=>{s(e=>Math.min(e,Math.max(p.length-1,0)))},[p.length]),(0,K.useEffect)(()=>{(d.current?.children[o])?.scrollIntoView({block:`nearest`})},[o]);let m=(0,K.useCallback)(()=>{f?n(e.filter((e,t)=>c.has(t))):p[o]&&n([p[o].item])},[f,c,e,p,o,n]);function h(e){switch(e.key){case`ArrowDown`:e.preventDefault(),p.length>0&&s(e=>(e+1)%p.length);break;case`ArrowUp`:e.preventDefault(),p.length>0&&s(e=>(e-1+p.length)%p.length);break;case` `:if(f&&p[o]){e.preventDefault();let t=p[o].originalIdx;l(e=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n})}break;case`Enter`:e.preventDefault(),m();break;case`Escape`:e.preventDefault(),r();break}}return(0,q.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:r,children:[(0,q.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,q.jsxs)(`div`,{className:`relative z-10 w-full max-w-md rounded-t-xl md:rounded-xl border border-border bg-background shadow-2xl overflow-hidden max-h-[80vh] md:max-h-none`,onClick:e=>e.stopPropagation(),onKeyDown:h,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-3 py-2.5`,children:[(0,q.jsx)(Te,{className:`size-4 text-text-subtle shrink-0`}),(0,q.jsx)(`input`,{ref:u,type:`text`,value:i,onChange:e=>a(e.target.value),placeholder:t.placeholder??`Select an item...`,className:`flex-1 bg-transparent text-sm text-text-primary outline-none placeholder:text-text-subtle`}),(0,q.jsx)(`kbd`,{className:`hidden sm:inline-flex items-center rounded border border-border bg-surface px-1.5 py-0.5 text-[10px] text-text-subtle font-mono`,children:`ESC`})]}),(0,q.jsx)(`div`,{ref:d,className:`max-h-72 overflow-y-auto py-1`,children:p.length===0?(0,q.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`No matching items`}):p.map(({item:e,originalIdx:t},r)=>(0,q.jsxs)(`button`,{onClick:()=>{f?l(e=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n}):n([e])},className:H(`flex items-center gap-3 w-full px-3 py-2 text-sm text-left transition-colors`,r===o?`bg-accent/15 text-text-primary`:`text-text-secondary hover:bg-surface-elevated`),children:[f&&(0,q.jsx)(`span`,{className:H(`size-4 shrink-0 rounded border flex items-center justify-center`,c.has(t)?`bg-primary border-primary text-primary-foreground`:`border-border`),children:c.has(t)&&(0,q.jsx)(le,{className:`size-3`})}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,q.jsx)(`div`,{className:`truncate`,children:e.label}),e.description&&(0,q.jsx)(`span`,{className:`text-xs text-text-subtle ml-2`,children:e.description}),e.detail&&(0,q.jsx)(`div`,{className:`text-xs text-text-subtle truncate mt-0.5`,children:e.detail})]})]},t))}),f&&(0,q.jsxs)(`div`,{className:`flex items-center justify-between border-t border-border px-3 py-1.5`,children:[(0,q.jsxs)(`span`,{className:`text-[10px] text-text-subtle`,children:[c.size,` selected`]}),(0,q.jsx)(`button`,{onClick:m,className:`text-xs text-primary hover:text-primary/80 font-medium`,children:`Confirm`})]})]})]})}function df(){let e=No(e=>e.inputBox),t=No(e=>e.resolveInputBox);return e?(0,q.jsx)(ff,{options:e.options,onConfirm:e=>t(e),onCancel:()=>t(void 0)}):null}function ff({options:e,onConfirm:t,onCancel:n}){let[r,i]=(0,K.useState)(e.value??``),a=(0,K.useRef)(null);(0,K.useEffect)(()=>{requestAnimationFrame(()=>{a.current?.focus(),a.current?.select()})},[]);function o(e){e.key===`Enter`?(e.preventDefault(),t(r)):e.key===`Escape`&&(e.preventDefault(),n())}return(0,q.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:n,children:[(0,q.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,q.jsxs)(`div`,{className:`relative z-10 w-full max-w-md rounded-t-xl md:rounded-xl border border-border bg-background shadow-2xl overflow-hidden`,onClick:e=>e.stopPropagation(),children:[e.prompt&&(0,q.jsx)(`div`,{className:`px-3 pt-3 pb-1 text-sm text-text-primary`,children:e.prompt}),(0,q.jsx)(`div`,{className:`flex items-center gap-2 px-3 py-2.5`,children:(0,q.jsx)(`input`,{ref:a,type:e.password?`password`:`text`,value:r,onChange:e=>i(e.target.value),onKeyDown:o,placeholder:e.placeholder??``,className:`flex-1 bg-surface border border-border rounded px-2 py-1.5 text-sm text-text-primary outline-none focus:border-primary placeholder:text-text-subtle`})}),(0,q.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t border-border px-3 py-2`,children:[(0,q.jsx)(`button`,{onClick:n,className:`px-3 py-1.5 text-xs text-text-secondary hover:text-text-primary transition-colors rounded`,children:`Cancel`}),(0,q.jsx)(`button`,{onClick:()=>t(r),className:`px-3 py-1.5 text-xs bg-primary text-primary-foreground rounded hover:bg-primary/90 transition-colors font-medium`,children:`OK`})]})]})]})}var pf=3e4,mf=1e3,hf=class{ws=null;url;handlers=[];reconnectAttempts=0;reconnectTimer=null;intentionalClose=!1;pendingMessages=[];visibilityHandler=null;constructor(e){this.url=e,this.visibilityHandler=()=>{document.visibilityState===`visible`&&!this.intentionalClose&&this.ws?.readyState!==WebSocket.OPEN&&(this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectTimer=null,this.reconnectAttempts=0,this.connect())},document.addEventListener(`visibilitychange`,this.visibilityHandler)}connect(){this.intentionalClose=!1,this.cleanup();let e=window.location.protocol===`https:`?`wss:`:`ws:`,t;t=this.url.startsWith(`ws`)?this.url:`${e}//${window.location.host}${this.url}`,this.ws=new WebSocket(t),this.ws.onopen=()=>{this.reconnectAttempts=0;try{this.ws?.send(JSON.stringify({type:`ready`}))}catch{}if(this.pendingMessages.length>0){console.log(`[ws] flushing ${this.pendingMessages.length} queued message(s)`);for(let e of this.pendingMessages)try{this.ws?.send(e)}catch{}this.pendingMessages=[]}},this.ws.onmessage=e=>{for(let t of this.handlers)t(e)},this.ws.onclose=()=>{this.intentionalClose||this.scheduleReconnect()},this.ws.onerror=()=>{this.ws?.close()}}disconnect(){this.intentionalClose=!0,this.pendingMessages=[],this.cleanup(),this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.visibilityHandler&&=(document.removeEventListener(`visibilitychange`,this.visibilityHandler),null)}send(e){this.ws?.readyState===WebSocket.OPEN?this.ws.send(e):this.intentionalClose?console.warn(`[ws] message dropped — WS intentionally closed`):(console.warn(`[ws] WS not open (readyState=${this.ws?.readyState??`no-ws`}) — queuing message`),this.pendingMessages.push(e))}onMessage(e){return this.handlers.push(e),()=>{this.handlers=this.handlers.filter(t=>t!==e)}}get isConnected(){return this.ws?.readyState===WebSocket.OPEN}cleanup(){this.ws&&=(this.ws.onopen=null,this.ws.onclose=null,this.ws.onmessage=null,this.ws.onerror=null,(this.ws.readyState===WebSocket.OPEN||this.ws.readyState===WebSocket.CONNECTING)&&this.ws.close(),null)}scheduleReconnect(){let e=Math.min(mf*2**this.reconnectAttempts,pf);this.reconnectAttempts++,this.reconnectTimer=setTimeout(()=>this.connect(),e)}},gf=new Set;function _f(e=!0){let t=(0,K.useRef)(null),n=(0,K.useCallback)(e=>{t.current?.send(JSON.stringify(e))},[]);return(0,K.useEffect)(()=>{if(!e)return;let r=Pe(),i=new hf(r?`/ws/extensions?token=${encodeURIComponent(r)}`:`/ws/extensions`);t.current=i,i.onMessage(e=>{let t;try{t=JSON.parse(e.data)}catch{return}let r=No.getState();switch(t.type){case`contributions:update`:if(r.setContributions(t.contributions),t.activationErrors){let e=r.activationErrors;r.setActivationErrors(t.activationErrors);for(let[n,r]of Object.entries(t.activationErrors))e[n]||tr.error(`Extension "${n}" failed to activate: ${r}`)}break;case`statusbar:update`:r.addStatusBarItem(t.item);break;case`statusbar:remove`:r.removeStatusBarItem(t.itemId);break;case`tree:update`:t.parentId?r.updateTreeChildren(t.viewId,t.parentId,t.items):r.updateTree(t.viewId,t.items);break;case`tree:refresh`:r.removeTree(t.viewId);break;case`notification`:{let e=t.level===`error`?tr.error:t.level===`warn`?tr.warning:tr.info;if(t.actions&&t.actions.length>0){let r={action:{label:t.actions[0],onClick:()=>n({type:`notification:action`,id:t.id,action:t.actions[0]??null})},onDismiss:()=>n({type:`notification:action`,id:t.id,action:null})};t.actions.length>1&&(r.cancel={label:t.actions[1],onClick:()=>n({type:`notification:action`,id:t.id,action:t.actions[1]??null})}),e(t.message,r)}else e(t.message);break}case`quickpick:show`:r.showQuickPick(t.items,t.options).then(e=>{n({type:`quickpick:resolve`,requestId:t.requestId,selected:e??null})});break;case`inputbox:show`:r.showInputBox(t.options).then(e=>{n({type:`inputbox:resolve`,requestId:t.requestId,value:e??null})});break;case`webview:create`:{let e=t.viewType.replace(/\.view$/,``);r.addWebviewPanel({id:t.panelId,extensionId:t.extensionId,viewType:t.viewType,title:t.title,html:``});let n=`extension:${e}`,i=U.getState(),a=new Set(i.grid.flat()),o=null;for(let e of a){let t=i.panels[e];if(!t)continue;let r=t.tabs.find(e=>e.id===n||e.id.startsWith(`${n}@`));if(r){o=r.id;break}}if(o){let n=i.grid.flat().reduce((e,t)=>e||i.panels[t]?.tabs.find(e=>e.id===o)?.metadata,void 0);W.getState().updateTab(o,{title:t.title,metadata:{...n,viewType:e,panelId:t.panelId,extensionId:t.extensionId}}),W.getState().setActiveTab(o)}else if(!gf.has(e)){let n=W.getState().currentProject;W.getState().openTab({type:`extension`,title:t.title,projectId:null,closable:!0,metadata:{viewType:e,panelId:t.panelId,extensionId:t.extensionId,...n&&{projectName:n}}})}break}case`webview:html`:r.updateWebviewPanel(t.panelId,{html:t.html});break;case`webview:dispose`:r.removeWebviewPanel(t.panelId);break;case`webview:postMessage`:window.dispatchEvent(new CustomEvent(`ext:webview:message`,{detail:{panelId:t.panelId,message:t.message}}));break;case`tab:open`:W.getState().openTab({type:t.tabType,title:t.title,projectId:t.projectId??null,closable:t.closable??!0,metadata:t.metadata});break;case`project:switch`:W.getState().switchProject(t.projectName);break}});let a=e=>{let{panelId:t,message:n}=e.detail;i.send(JSON.stringify({type:`webview:message`,panelId:t,message:n}))};window.addEventListener(`ext:webview:send`,a);let o=e=>{let{viewId:t,itemId:n}=e.detail;i.send(JSON.stringify({type:`tree:expand`,viewId:t,itemId:n}))};window.addEventListener(`ext:tree:expand`,o);let s=e=>{let{command:t,args:n}=e.detail,r=t.replace(/\.view$/,``);gf.delete(r),i.send(JSON.stringify({type:`command:execute`,command:t,args:n}))};window.addEventListener(`ext:command:execute`,s);let c=e=>{let{panelId:t,viewType:n}=e.detail;if(i.send(JSON.stringify({type:`webview:close`,panelId:t})),n){let e=n.replace(/\.view$/,``);gf.add(e),setTimeout(()=>gf.delete(e),5e3)}};return window.addEventListener(`ext:webview:close`,c),i.connect(),()=>{window.removeEventListener(`ext:webview:send`,a),window.removeEventListener(`ext:tree:expand`,o),window.removeEventListener(`ext:command:execute`,s),window.removeEventListener(`ext:webview:close`,c),i.disconnect(),t.current=null}},[n,e]),{send:n}}function vf(){let[e,t]=(0,K.useState)(`checking`),[n,r]=(0,K.useState)(!1),[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(),[c,l]=(0,K.useState)(!1);(0,K.useEffect)(()=>{let e=()=>{s(`settings`),a(!0)};return window.addEventListener(`open-mobile-settings`,e),()=>window.removeEventListener(`open-mobile-settings`,e)},[]);let[u,d]=(0,K.useState)(()=>new Set([`__global__`])),f=Fe(e=>e.theme),p=Fe(e=>e.deviceName),m=We(e=>e.fetchProjects),h=Fe(e=>e.fetchServerInfo),g=We(e=>e.activeProject),_=(0,K.useRef)(cd());(0,K.useEffect)(()=>{if(Ie(f),f===`system`){let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>Ie(`system`);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)}},[f]),(0,K.useEffect)(()=>{h()},[h]),(0,K.useEffect)(()=>{async function e(){let e=Pe();try{let n={};e&&(n.Authorization=`Bearer ${e}`),(await(await fetch(`/api/auth/check`,{headers:n})).json()).ok?t(`authenticated`):t(`unauthenticated`)}catch{t(`unauthenticated`)}}e()},[]),md();let{paletteOpen:v,paletteInitialQuery:y,closePalette:b}=Fo();Td(),Ad(),_f(e===`authenticated`),(0,K.useEffect)(()=>{if(e!==`authenticated`)return;let t=e=>{e.preventDefault()};return window.addEventListener(`beforeunload`,t),()=>window.removeEventListener(`beforeunload`,t)},[e]),(0,K.useEffect)(()=>{e===`authenticated`&&Le(async()=>{let{useKeybindingsStore:e}=await import(`./keybindings-store-BicDU0b1.js`);return{useKeybindingsStore:e}},__vite__mapDeps([54,4,1,10])).then(({useKeybindingsStore:e})=>{e.getState().loadFromServer()})},[e]),(0,K.useEffect)(()=>{e===`authenticated`&&m().then(async()=>{let e=_.current,{projects:t,customOrder:n}=We.getState();if(t.length===0)return;let r=e.projectName?t.find(t=>t.name===e.projectName):void 0;if(r||=Ge(t,n)[0],!r)return;let i=await He(r.name);if(i){let e=localStorage.getItem(`ppm-panels-${r.name}`),t=Ue(e?JSON.parse(e):null,i);t&&t===i&&localStorage.setItem(`ppm-panels-${r.name}`,JSON.stringify(i))}if(We.getState().setActiveProject(r),W.getState().switchProject(r.name),e.tabType&&pd(e.tabType,e.tabIdentifier,r.name),e.openChat){pd(`chat`,e.openChat,r.name);let t=new URL(window.location.href);t.searchParams.delete(`openChat`),window.history.replaceState(null,``,t.pathname)}})},[e,m]),(0,K.useEffect)(()=>{let e=g?.name??`__global__`;W.getState().switchProject(e)},[g?.name]),(0,K.useEffect)(()=>{e!==`authenticated`||!g?.name||Le(async()=>{let{useNotificationStore:e}=await import(`./notification-store-D_2wCv0z.js`);return{useNotificationStore:e}},__vite__mapDeps([55,4,1,10])).then(({useNotificationStore:e})=>{e.getState().loadFromServer(g.name)})},[e,g?.name]),(0,K.useEffect)(()=>{let e=g?.name??`__global__`;d(t=>t.has(e)?t:new Set([...t,e]))},[g?.name]),(0,K.useEffect)(()=>{e===`authenticated`&&!g&&W.getState().switchProject(`__global__`)},[e,g]);let x=(0,K.useCallback)(()=>{t(`authenticated`)},[]);if(e===`checking`)return(0,q.jsx)(`div`,{className:`min-h-dvh flex items-center justify-center bg-background`,children:(0,q.jsx)(`div`,{className:`animate-pulse text-text-secondary text-sm`,children:`Loading...`})});if(e===`unauthenticated`)return(0,q.jsx)(od,{onSuccess:x});let S=g?.name??`__global__`;return(0,q.jsx)(vr,{children:(0,q.jsxs)(`div`,{className:`h-dvh flex flex-col bg-background text-foreground overflow-hidden relative`,children:[(0,q.jsx)(Zd,{onVisibilityChange:r}),(0,q.jsx)(`div`,{className:`fixed z-50 overflow-hidden pointer-events-none max-md:right-0 max-md:top-0 md:left-0 md:top-0 w-10 h-10`,children:(0,q.jsx)(`div`,{className:`absolute flex items-center justify-center max-md:rotate-45 max-md:right-[-18px] max-md:top-[4px] md:-rotate-45 md:left-[-18px] md:top-[4px] w-[60px] bg-amber-500 text-white text-[6px] font-bold leading-none py-[2.5px] shadow-sm`,children:`BETA`})}),p&&(0,q.jsx)(`div`,{className:H(`md:hidden fixed left-0 z-50 px-2 py-0.5 bg-primary/80 text-primary-foreground text-[10px] font-medium rounded-br transition-[top]`,n?`top-7`:`top-0`),children:p}),(0,q.jsxs)(`div`,{className:`flex flex-1 overflow-hidden`,children:[(0,q.jsx)(Zu,{}),(0,q.jsx)(lu,{}),(0,q.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden`,children:[[...u].map(e=>(0,q.jsx)(`div`,{className:H(`flex-1 overflow-hidden pb-12 md:pb-0`,S!==e&&`hidden`),children:(0,q.jsx)(os,{projectName:e})},e)),(0,q.jsx)(ts,{})]})]}),(0,q.jsx)(td,{onMenuPress:()=>a(!0),onProjectsPress:()=>l(!0)}),(0,q.jsx)(rd,{isOpen:i,onClose:()=>{a(!1),s(void 0)},initialTab:o}),(0,q.jsx)(ad,{isOpen:c,onClose:()=>l(!1)}),(0,q.jsx)(Wd,{open:v,onClose:b,initialQuery:y}),(0,q.jsx)(Kd,{}),(0,q.jsx)(qd,{}),(0,q.jsx)($d,{}),(0,q.jsx)(af,{}),(0,q.jsx)(lf,{}),(0,q.jsx)(df,{}),(0,q.jsx)(cf,{}),(0,q.jsx)(_r,{position:`bottom-left`,closeButton:!0,toastOptions:{className:`bg-surface border-border text-foreground`}})]})})}if(typeof Node<`u`){let e=Node.prototype.removeChild;Node.prototype.removeChild=function(t){try{return e.call(this,t)}catch(e){if(e instanceof DOMException&&e.name===`NotFoundError`)return t;throw e}};let t=Node.prototype.insertBefore;Node.prototype.insertBefore=function(e,n){try{return t.call(this,e,n)}catch(t){if(t instanceof DOMException&&t.name===`NotFoundError`)return e;throw t}}}(0,Rn.createRoot)(document.getElementById(`root`)).render((0,q.jsx)(K.StrictMode,{children:(0,q.jsx)(vf,{})}));export{G as $,Da as A,Nn as B,ko as C,Mo as D,Eo as E,wa as F,Cn as G,kn as H,pa as I,vn as J,Sn as K,fa as L,Ma as M,ja as N,Ba as O,Aa as P,en as Q,tr as R,wo as S,Oo as T,On as U,jn as V,En as W,rn as X,dn as Y,tn as Z,hs as _,iu as a,Ot as at,Po as b,nl as c,vt as ct,rc as d,ut as dt,Bt as et,ic as f,lt as ft,xs as g,tc as h,Ku as i,kt as it,ka as j,Fa as k,ec as l,pt as lt,ac as m,ef as n,Lt as nt,Sl as o,xt as ot,oc as p,ot as pt,xn as q,Qd as r,At as rt,gl as s,bt as st,hf as t,zt as tt,nc as u,ft as ut,Go as v,Do as w,No as x,Io as y,Fn as z};
27
+ </svg>`}var yd=e=>`data:image/svg+xml,${encodeURIComponent(e)}`,bd=[yd(vd(!1)),yd(vd(!0))],xd=[0,1,2,-1].map(e=>[yd($(e,!1)),yd($(e,!0))]),Sd=xd.length;function Cd(e,t=null){let n=document.getElementById(`ppm-favicon`);if(!n)return;let r=e?1:0;t===null?n.href=bd[r]:n.href=xd[(t%Sd+Sd)%Sd][r]}function wd(e,t,n){let r=[t,n||null,`PPM`].filter(Boolean).join(` - `);return e>0?`(${e}) ${r}`:r}function Td(){let e=We(e=>e.activeProject),t=Fe(e=>e.deviceName),n=Io(Lo),r=(0,K.useRef)(null);(0,K.useEffect)(()=>{let i=()=>ja(Aa.getState())>0,a=()=>{let n=ja(Aa.getState());document.title=wd(n,e?.name,t??void 0)};if(a(),n){let e=0;Cd(i(),e),r.current=setInterval(()=>{e=(e+1)%Sd,Cd(i(),e)},300)}else Cd(i());let o=Aa.subscribe(()=>{a(),n||Cd(i())});return()=>{o(),r.current&&=(clearInterval(r.current),null)}},[e?.name,t,n])}var Ed=15e3,Dd=Me((e,t)=>({isDown:!1,downSince:null,showOverlay:!1,markDown:()=>{let{downSince:n}=t(),r=Date.now(),i=n??r;e({isDown:!0,downSince:i,showOverlay:r-i>=Ed})},markUp:()=>{e({isDown:!1,downSince:null,showOverlay:!1})}})),Od=1e4,kd=2e3;function Ad(){(0,K.useEffect)(()=>{let e=!1,t,{markDown:n,markUp:r}=Dd.getState();async function i(){try{let t=await fetch(`/api/health`,{cache:`no-store`});if(t.ok&&e){if(r(),`caches`in window){let e=await caches.keys();await Promise.all(e.map(e=>caches.delete(e)))}window.location.reload();return}t.ok&&r(),e=!1}catch{e=!0,n()}t=setTimeout(i,e?kd:Od)}return t=setTimeout(i,Od),()=>clearTimeout(t)},[])}function jd(e){let t=Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`));return t>=0?e.slice(t+1):e}function Md(e,t){let n=0,r=0,i=-1;for(let a=0;a<e.length;a++){if(n=t.indexOf(e[a],n),n===-1)return-1;i>=0&&(r+=n-i-1),i=n,n++}return r}function Nd(e,t,n,r,i){if(t===e)return{tier:0,offset:0,nameLen:r,depth:i};if(t.startsWith(e))return{tier:1,offset:0,nameLen:r,depth:i};let a=t.indexOf(e);if(a>=0)return{tier:2,offset:a,nameLen:r,depth:i};let o=n.indexOf(e);if(o>=0)return{tier:3,offset:o,nameLen:r,depth:i};let s=Md(e,t);if(s>=0)return{tier:4,offset:s,nameLen:r,depth:i};let c=Md(e,n);return c>=0?{tier:5,offset:c,nameLen:r,depth:i}:null}function Pd(e,t,n){let r=n.toLowerCase();return Nd(e.toLowerCase(),jd(r),r,t.length,n.split(`/`).length)}function Fd(e,t){return e.tier-t.tier||e.offset-t.offset||e.nameLen-t.nameLen||e.depth-t.depth}var Id=100,Ld=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),Rd={"git-branch":Rt,database:fe,refresh:Ae,plus:De,terminal:kn,settings:Cn,search:Te,"file-code":xt,globe:ue};function zd(e){return e?e.replace(/Mod\+/g,Ld?`⌘`:`Ctrl+`).replace(/Alt\+/g,Ld?`⌥`:`Alt+`).replace(/Shift\+/g,Ld?`⇧`:`Shift+`).replace(/Meta\+/g,`⌘`).replace(/Ctrl\+/g,Ld?`⌃`:`Ctrl+`):``}function Bd(e){let t=[];for(let n of e)n.type===`file`&&t.push({name:n.name,path:n.path}),n.children&&t.push(...Bd(n.children));return t}function Vd(e){return e?e.startsWith(`/`)||e.startsWith(`~/`)||e.startsWith(`~\\`)||/^[A-Za-z]:[/\\]/.test(e):!1}function Hd(e){let t=e.replace(/\\/g,`/`);if(t.endsWith(`/`))return e;let n=Math.max(t.lastIndexOf(`/`),e.lastIndexOf(`\\`));return n>0?e.slice(0,n+1):e}var Ud=new Map;function Wd({open:e,onClose:t,initialQuery:n=``}){let[r,i]=(0,K.useState)(``),a=(0,K.useDeferredValue)(r),[o,s]=(0,K.useState)(0),[c,l]=(0,K.useState)([]),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)([]),m=(0,K.useRef)(null),h=(0,K.useRef)(null),g=W(e=>e.openTab),_=We(e=>e.activeProject),v=Ba(e=>e.fileIndex),y=Ba(e=>e.indexStatus),b=Ba(e=>e.loadIndex),x=Ba(e=>e.tree),S=Fe(e=>e.setSidebarActiveTab),C=Fe(e=>e.sidebarCollapsed),w=Fe(e=>e.toggleSidebar),T=Mo(e=>e.getBinding),E=No(e=>e.contributions),D=(0,K.useCallback)(async e=>{if(Ud.has(e)){l(Ud.get(e));return}d(!0);try{let t=await V.get(`/api/fs/list?dir=${encodeURIComponent(e)}`);Ud.set(e,t),l(t)}catch{l([])}finally{d(!1)}},[]);(0,K.useEffect)(()=>{if(!Vd(r)){l([]);return}D(Hd(r))},[r,D]),(0,K.useEffect)(()=>{if(Vd(r)||r.trim().length<2){p([]);return}let e=setTimeout(async()=>{try{p(await V.get(`/api/db/search?q=${encodeURIComponent(r.trim())}`)??[])}catch{p([])}},300);return()=>clearTimeout(e)},[r]);let O=(0,K.useMemo)(()=>{let e=_?.name??null,n=_?{projectName:_.name}:void 0,r=(r,i)=>()=>{g({type:r,title:i,projectId:e,metadata:n,closable:!0}),t()},i=[{id:`chat`,label:`New AI Chat`,icon:en,action:r(`chat`,`AI Chat`),keywords:`ai assistant claude`,group:`action`,shortcut:zd(T(`open-chat`))},{id:`new-file`,label:`New File`,icon:Et,action:()=>{W.getState().openNewFile(),t()},keywords:`create untitled blank empty`,group:`action`,shortcut:zd(T(`new-file`))},{id:`terminal`,label:`New Terminal`,icon:kn,action:r(`terminal`,`Terminal`),keywords:`bash shell console`,group:`action`,shortcut:zd(T(`open-terminal`))},{id:`ports`,label:`Port Forwarding`,icon:ue,action:r(`ports`,`Ports`),keywords:`web preview localhost port forward tunnel url`,group:`action`},{id:`postgres`,label:`PostgreSQL`,icon:fe,action:r(`postgres`,`PostgreSQL`),keywords:`database pg sql query`,group:`action`},{id:`voice-input`,label:`Voice Input`,icon:tn,action:()=>{window.dispatchEvent(new CustomEvent(`toggle-voice-input`)),t()},keywords:`speech microphone dictate voice`,group:`action`,shortcut:zd(T(`voice-input`))},{id:`git-status`,label:`Git Status`,icon:zt,action:()=>{S(`git`),t()},keywords:`changes diff staged`,group:`action`,shortcut:zd(T(`open-git-status`))},{id:`compare-files`,label:`Compare Files...`,icon:Se,group:`action`,keywords:`diff compare two files select`,shortcut:zd(T(`compare-files`)),action:()=>{let{activeTabId:e,tabs:n}=W.getState(),r=n.find(t=>t.id===e),i=r?.metadata;r?.type===`editor`&&i?.filePath&&i?.projectName&&Ka.getState().setSelection({filePath:i.filePath,projectName:i.projectName,dirtyContent:i.unsavedContent,label:Re(i.filePath)}),window.dispatchEvent(new CustomEvent(`open-compare-picker`)),t()}},{id:`settings`,label:`Settings`,icon:Cn,action:()=>{C&&w(),S(`settings`),t()},keywords:`config preferences theme`,group:`action`,shortcut:zd(T(`open-settings`))}],a=E?.keybindings??[],o=(E?.commands??[]).map(e=>{let n=a.find(t=>t.command===e.command),r=(n?T(`ext:${n.command}`):``)||(n?Ld&&n.mac?n.mac:n.key:``);return{id:`ext:${e.command}`,label:e.title,hint:e.category,icon:e.icon&&Rd[e.icon]||hn,group:`action`,keywords:`extension ${e.command} ${e.category??``}`,shortcut:r?zd(r):void 0,action:()=>{let n=[];_?.path&&n.push(_.path),window.dispatchEvent(new CustomEvent(`ext:command:execute`,{detail:{command:e.command,args:n}})),t()}}});return[...i,...o]},[_,g,t,S,C,w,T,E]),k=(0,K.useMemo)(()=>{let e=_?.name??null,n=_?{projectName:_.name}:void 0;return(y===`ready`?v.filter(e=>e.type===`file`):Bd(x)).map(r=>({id:`file:${r.path}`,label:r.name,hint:r.path,icon:xt,group:`file`,keywords:r.path,isIgnored:`isIgnored`in r?r.isIgnored:void 0,action:()=>{g({type:`editor`,title:r.name,projectId:e,metadata:{...n,filePath:r.path},closable:!0}),t()}}))},[y,v,x,_,g,t]),ee=(0,K.useMemo)(()=>{let e=_?.name??null,n=_?{projectName:_.name}:void 0;return c.map(r=>{let i=Re(r);return{id:`fs:${r}`,label:i,hint:r,icon:Mt,group:`fs`,keywords:r,action:()=>{g({type:`editor`,title:i,projectId:e,metadata:{...n,filePath:r},closable:!0}),t()}}})},[c,_,g,t]),A=(0,K.useMemo)(()=>f.map(e=>({id:`db:${e.connectionId}:${e.schemaName}.${e.tableName}`,label:e.tableName,hint:`${e.connectionName} (${e.connectionType===`postgres`?`PG`:`SQLite`})`,icon:fe,group:`db`,connectionColor:e.connectionColor,action:()=>{g({type:`database`,title:`${e.connectionName} · ${e.tableName}`,projectId:null,closable:!0,metadata:{connectionId:e.connectionId,connectionName:e.connectionName,dbType:e.connectionType,tableName:e.tableName,schemaName:e.schemaName,connectionColor:e.connectionColor}}),t()}})),[f,g,t]),te=(0,K.useMemo)(()=>[...O,...k],[O,k]),ne=(0,K.useMemo)(()=>te.map(e=>{let t=e.keywords??e.label,n=t.toLowerCase();return{cmd:e,filenameLower:jd(n),pathLower:n,labelLen:e.label.length,depth:t.split(`/`).length}}),[te]),re=(0,K.useMemo)(()=>{if(Vd(a)){let e=a.lastIndexOf(`/`),t=e>=0?a.slice(e+1).toLowerCase():``;return t?ee.filter(e=>{let n=e.label.toLowerCase(),r=(e.keywords??``).toLowerCase();return n.includes(t)||r.includes(t)}).slice(0,50):ee.slice(0,50)}if(!a.trim())return O;let e=a.toLowerCase().replace(/^\.\.?\//,``),t=[];for(let n of ne){let r=Nd(e,n.filenameLower,n.pathLower,n.labelLen,n.depth);r&&t.push({cmd:n.cmd,score:r})}t.sort((e,t)=>Fd(e.score,t.score));let n=t.slice(0,Id).map(e=>e.cmd);return a.trim().length>=2?[...A,...n]:n},[ne,O,ee,A,a]);(0,K.useEffect)(()=>{e&&y===`idle`&&_&&b(_.name)},[e,y,_,b]),(0,K.useEffect)(()=>{e&&(i(n||``),s(0),l([]),p([]),requestAnimationFrame(()=>m.current?.focus()))},[e]),(0,K.useEffect)(()=>{s(e=>Math.min(e,Math.max(re.length-1,0)))},[re.length]),(0,K.useEffect)(()=>{let e=h.current;e&&e.children[o]?.scrollIntoView({block:`nearest`})},[o]);let j=(0,K.useCallback)(()=>{r.trim()&&(g({type:`chat`,title:`AI Chat`,projectId:_?.name??null,metadata:{projectName:_?.name,pendingMessage:r.trim()},closable:!0}),t())},[r,_,g,t]);function M(e){let n=re.length;switch(e.key){case`ArrowDown`:e.preventDefault(),n>0&&s(e=>(e+1)%n);break;case`ArrowUp`:e.preventDefault(),n>0&&s(e=>(e-1+n)%n);break;case`Enter`:e.preventDefault(),n>0?re[o]?.action():r.trim()&&j();break;case`Escape`:e.preventDefault(),t();break}}if(!e)return null;let N=Vd(r);return(0,q.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:t,children:[(0,q.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,q.jsxs)(`div`,{className:`relative z-10 w-full max-w-md rounded-t-xl md:rounded-xl border border-border bg-background shadow-2xl overflow-hidden max-h-[80vh] md:max-h-none`,onClick:e=>e.stopPropagation(),onKeyDown:M,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-3 py-2.5`,children:[(0,q.jsx)(Te,{className:`size-4 text-text-subtle shrink-0`}),(0,q.jsx)(`input`,{ref:m,type:`text`,value:r,onChange:e=>i(e.target.value),placeholder:`Search actions & files... (type / or ~/ for filesystem)`,className:`flex-1 bg-transparent text-sm text-text-primary outline-none placeholder:text-text-subtle`}),u&&(0,q.jsx)(G,{className:`size-3.5 animate-spin text-text-subtle shrink-0`}),(0,q.jsx)(`kbd`,{className:`hidden sm:inline-flex items-center rounded border border-border bg-surface px-1.5 py-0.5 text-[10px] text-text-subtle font-mono`,children:`ESC`})]}),N&&!u&&c.length===0&&r.length<4&&(0,q.jsx)(`div`,{className:`px-3 py-2 text-xs text-text-subtle border-b border-border/50`,children:`Type a directory path to browse files (e.g. ~/Projects/)`}),!N&&(y===`loading`||y===`idle`)&&(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 px-3 py-1.5 border-b border-border/50`,children:[(0,q.jsx)(G,{className:`size-3 animate-spin text-text-subtle shrink-0`}),(0,q.jsx)(`span`,{className:`text-[11px] text-text-subtle italic`,children:`Indexing project…`})]}),!N&&y===`error`&&(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1.5 border-b border-border/50`,children:[(0,q.jsx)(`span`,{className:`text-[11px] text-text-subtle`,children:`Failed to build file index —`}),(0,q.jsx)(`button`,{onClick:()=>_&&b(_.name),className:`text-[11px] text-accent hover:underline`,children:`retry`})]}),(0,q.jsx)(`div`,{ref:h,className:`max-h-72 overflow-y-auto py-1`,children:re.length===0?u?(0,q.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`Searching...`}):r.trim()?(0,q.jsxs)(`button`,{onClick:j,className:`flex items-center gap-3 w-full px-3 py-3 text-sm text-left text-text-secondary hover:bg-accent/15 hover:text-text-primary transition-colors`,children:[(0,q.jsx)(en,{className:`size-4 shrink-0 text-accent`}),(0,q.jsxs)(`span`,{children:[`Ask AI: `,(0,q.jsx)(`span`,{className:`text-text-primary font-medium`,children:r.trim().slice(0,60)})]})]}):(0,q.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`No results`}):re.map((e,t)=>{let n=e.icon;return(0,q.jsxs)(`button`,{onClick:e.action,className:`flex items-center gap-3 w-full px-3 py-2 text-sm text-left transition-colors ${t===o?`bg-accent/15 text-text-primary`:`text-text-secondary hover:bg-surface-elevated`} ${e.isIgnored?`opacity-60`:``}`,title:e.isIgnored?`Gitignored file`:void 0,children:[(0,q.jsx)(n,{className:`size-4 shrink-0`}),(0,q.jsx)(`span`,{className:`truncate`,children:e.label}),e.hint&&(0,q.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 text-xs text-text-subtle truncate max-w-[200px]`,children:[e.connectionColor&&(0,q.jsx)(`span`,{className:`shrink-0 size-2 rounded-full`,style:{backgroundColor:e.connectionColor}}),e.hint]}),e.shortcut&&(0,q.jsx)(`kbd`,{className:`ml-auto shrink-0 rounded border border-border bg-surface px-1.5 py-0.5 text-[10px] text-text-subtle font-mono`,children:e.shortcut})]},e.id)})}),(0,q.jsxs)(`div`,{className:`flex items-center justify-center gap-1.5 border-t border-border px-3 py-1.5`,children:[(0,q.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`Press`}),(0,q.jsx)(`kbd`,{className:`inline-flex items-center rounded border border-border bg-surface px-1 py-0.5 text-[10px] text-text-subtle font-mono`,children:`Shift`}),(0,q.jsx)(`kbd`,{className:`inline-flex items-center rounded border border-border bg-surface px-1 py-0.5 text-[10px] text-text-subtle font-mono`,children:`Shift`}),(0,q.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`to open this palette`})]})]})]})}var Gd=50;function Kd({open:e,onOpenChange:t,initialA:n}={}){let r=e!==void 0,[i,a]=(0,K.useState)(!1),o=r?e:i,s=e=>{r?t?.(e):a(e)},[c,l]=(0,K.useState)(n??null);(0,K.useEffect)(()=>{if(r)return;function e(){l(Ka.getState().selection),a(!0)}return window.addEventListener(`open-compare-picker`,e),()=>window.removeEventListener(`open-compare-picker`,e)},[r]);let[u,d]=(0,K.useState)(``),[f,p]=(0,K.useState)(0),[m,h]=(0,K.useState)(null),g=(0,K.useRef)(null),_=W(e=>e.tabs),v=Ba(e=>e.fileIndex),y=We(e=>e.activeProject);(0,K.useEffect)(()=>{o&&(r&&l(n??null),d(``),p(0),h(null),setTimeout(()=>g.current?.focus(),50))},[o,n,r]);let b=(0,K.useMemo)(()=>{let e=_.filter(e=>e.type===`editor`&&e.metadata?.filePath).map(e=>({id:`tab:${e.id}`,path:e.metadata.filePath,label:Re(e.metadata.filePath),source:`tab`,dirtyContent:e.metadata.unsavedContent})),t=new Set(e.map(e=>e.path)),n=v.filter(e=>e.type===`file`&&!t.has(e.path)).map(e=>({id:`file:${e.path}`,path:e.path,label:e.name,source:`file`}));return[...e,...n]},[_,v]),x=(0,K.useMemo)(()=>u.trim()?b.map(e=>{let t=Pd(u,e.label,e.path);return t?{c:e,score:t}:null}).filter(e=>e!==null).sort((e,t)=>Fd(e.score,t.score)).slice(0,Gd).map(e=>e.c):b.slice(0,Gd),[b,u]);(0,K.useEffect)(()=>{f>=x.length&&p(Math.max(0,x.length-1))},[x,f]);let S=(0,K.useRef)(!1);async function C(e){if(y){if(!c){l({filePath:e.path,projectName:y.name,dirtyContent:e.dirtyContent,label:e.label}),d(``),p(0),g.current?.focus();return}if(!S.current){S.current=!0;try{await Ja({path:c.filePath,dirtyContent:c.dirtyContent},{path:e.path,dirtyContent:e.dirtyContent},y.name),Ka.getState().clearSelection(),s(!1)}catch(e){h(e instanceof Error?e.message:`Compare failed`)}finally{S.current=!1}}}}function w(e){if(e.key===`ArrowDown`)e.preventDefault(),p(e=>Math.min(x.length-1,e+1));else if(e.key===`ArrowUp`)e.preventDefault(),p(e=>Math.max(0,e-1));else if(e.key===`Enter`){e.preventDefault();let t=x[f];t&&C(t)}}return(0,q.jsx)(_e,{open:o,onOpenChange:s,children:(0,q.jsxs)(ye,{className:`max-w-lg p-0 gap-0 overflow-hidden`,children:[(0,q.jsx)(ve,{className:`px-4 pt-4 pb-2`,children:(0,q.jsxs)(be,{className:`flex items-center gap-2 text-sm`,children:[(0,q.jsx)(Se,{className:`size-4`}),`Compare Files`]})}),(0,q.jsx)(`div`,{className:`px-4 pb-2`,children:c?(0,q.jsxs)(`div`,{className:`flex items-center gap-2 text-xs bg-muted rounded px-2 py-1 w-fit max-w-full`,children:[(0,q.jsx)(xt,{className:`size-3.5 shrink-0`}),(0,q.jsx)(`span`,{className:`truncate`,title:c.filePath,children:c.label}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>l(null),className:`hover:bg-surface-elevated rounded p-0.5`,"aria-label":`Clear first file`,children:(0,q.jsx)(je,{className:`size-3`})})]}):(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Pick first file, then second.`})}),(0,q.jsx)(`input`,{ref:g,type:`text`,value:u,onChange:e=>{d(e.target.value),p(0)},onKeyDown:w,placeholder:c?`Search for file B...`:`Search for file A...`,className:`w-full px-4 py-2 bg-transparent border-y border-border text-sm outline-none`}),m&&(0,q.jsx)(`div`,{className:`px-4 py-2 text-xs text-destructive border-b border-border`,children:m}),(0,q.jsx)(`div`,{className:`max-h-[50vh] md:max-h-80 overflow-y-auto`,children:x.length===0?(0,q.jsx)(`div`,{className:`px-4 py-6 text-center text-xs text-muted-foreground`,children:b.length===0?`No files available`:`No matches`}):x.map((e,t)=>(0,q.jsxs)(`button`,{type:`button`,onClick:()=>C(e),onMouseEnter:()=>p(t),className:H(`w-full flex items-center gap-2 px-4 py-1.5 text-left text-sm`,`hover:bg-surface-elevated transition-colors`,t===f&&`bg-surface-elevated`),children:[(0,q.jsx)(xt,{className:`size-3.5 shrink-0 text-text-secondary`}),(0,q.jsx)(`span`,{className:`truncate`,children:e.label}),(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground truncate ml-auto`,title:e.path,children:e.source===`tab`?`open`:e.path})]},e.id))})]})})}function qd(){let[e,t]=(0,K.useState)(null),[n,r]=(0,K.useState)(!1);(0,K.useEffect)(()=>{function e(e){let n=e.detail;n&&(t(n),r(!1))}return window.addEventListener(`open-bug-report`,e),()=>window.removeEventListener(`open-bug-report`,e)},[]);let i=(0,K.useCallback)(()=>t(null),[]);return e?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/50`,onClick:i}),(0,q.jsxs)(`div`,{className:`fixed inset-4 md:inset-auto md:top-[15%] md:left-1/2 md:-translate-x-1/2 md:w-full md:max-w-lg md:max-h-[70vh] z-50 flex flex-col bg-background border border-border rounded-lg shadow-2xl overflow-hidden`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-border`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium`,children:`Bug Report`}),(0,q.jsx)(`button`,{onClick:i,className:`p-1 rounded hover:bg-surface-elevated`,children:(0,q.jsx)(je,{className:`size-4`})})]}),(0,q.jsx)(`pre`,{className:`flex-1 overflow-auto px-4 py-2 text-xs font-mono whitespace-pre-wrap break-all`,children:e}),(0,q.jsxs)(`div`,{className:`flex gap-2 p-3 border-t border-border`,children:[(0,q.jsxs)(`button`,{onClick:async()=>{await Gu(e)&&r(!0)},className:`flex items-center gap-1.5 px-3 py-1.5 rounded-md bg-surface-elevated text-xs text-foreground hover:bg-surface transition-colors`,children:[n?(0,q.jsx)(le,{className:`size-3`}):(0,q.jsx)(pt,{className:`size-3`}),n?`Copied`:`Copy`]}),(0,q.jsxs)(`button`,{onClick:()=>{Wu(e),i()},className:`flex items-center gap-1.5 px-3 py-1.5 rounded-md bg-primary text-primary-foreground text-xs hover:bg-primary/90 transition-colors`,children:[(0,q.jsx)(vt,{className:`size-3`}),`Open GitHub Issue`]})]})]})]}):null}var Jd=6e4,Yd=`ppm-upgrade-dismissed-`;async function Xd(){if(`caches`in window){let e=await caches.keys();await Promise.all(e.map(e=>caches.delete(e)))}window.location.reload()}function Zd({onVisibilityChange:e}){let[t,n]=(0,K.useState)(null),[r,i]=(0,K.useState)(!1),[a,o]=(0,K.useState)(!1),[s,c]=(0,K.useState)(!1);(0,K.useEffect)(()=>{let e;async function t(){try{let e=await V.get(`/api/upgrade`);if(e.availableVersion){n(e.availableVersion);let t=Yd+e.availableVersion;sessionStorage.getItem(t)?c(!0):c(!1)}else n(null)}catch{}}return t(),e=setInterval(t,Jd),()=>clearInterval(e)},[]);let l=(0,K.useCallback)(async()=>{i(!0);try{let e=await V.post(`/api/upgrade/apply`);e.restart?(i(!1),o(!0)):(tr.info(e.message||`Upgrade installed. Restart PPM manually.`),i(!1),t&&sessionStorage.setItem(Yd+t,`1`),c(!0))}catch(e){e instanceof TypeError||e.message?.includes(`fetch`)||e.message?.includes(`network`)?(i(!1),o(!0)):(tr.error(`Upgrade failed: ${e.message}`),i(!1))}},[t]),u=(0,K.useCallback)(()=>{t&&sessionStorage.setItem(Yd+t,`1`),c(!0)},[t]),d=!!t&&!s||a;return(0,K.useEffect)(()=>{e?.(d)},[d,e]),d?(0,q.jsx)(`div`,{className:`w-full text-white px-3 py-1 flex items-center justify-between gap-2 z-50 text-sm shrink-0 ${a?`bg-green-600 dark:bg-green-700`:`bg-blue-600 dark:bg-blue-700`}`,children:a?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[(0,q.jsx)(lt,{className:`size-4 shrink-0`}),(0,q.jsxs)(`span`,{className:`truncate`,children:[`Upgrade to v`,t,` installed! Reload to apply.`]})]}),(0,q.jsxs)(`button`,{onClick:Xd,className:`bg-white text-green-600 font-medium rounded-full px-3 py-0.5 text-xs min-h-[28px] min-w-[28px] flex items-center gap-1.5 justify-center hover:bg-green-50 active:bg-green-100 transition-colors shrink-0`,children:[(0,q.jsx)(Ae,{className:`size-3`}),`Reload`]})]}):r?(0,q.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[(0,q.jsx)(G,{className:`size-4 animate-spin shrink-0`}),(0,q.jsxs)(`span`,{className:`truncate`,children:[`Upgrading to v`,t,`...`]})]}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[(0,q.jsx)(ct,{className:`size-4 shrink-0`}),(0,q.jsxs)(`span`,{className:`truncate`,children:[`PPM v`,t,` available`]})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,q.jsx)(`button`,{onClick:l,className:`bg-white text-blue-600 font-medium rounded-full px-3 py-0.5 text-xs min-h-[28px] min-w-[28px] flex items-center justify-center hover:bg-blue-50 active:bg-blue-100 transition-colors`,children:`Upgrade`}),(0,q.jsx)(`button`,{onClick:u,className:`min-h-[28px] min-w-[28px] flex items-center justify-center rounded-full hover:bg-blue-500 active:bg-blue-800 transition-colors`,"aria-label":`Dismiss upgrade notification`,children:(0,q.jsx)(je,{className:`size-4`})})]})]})}):null}var Qd=Me(e=>({src:null,alt:``,open:(t,n=``)=>e({src:t,alt:n}),close:()=>e({src:null,alt:``})}));function $d(){let{src:e,alt:t,close:n}=Qd(),r=(0,K.useCallback)(e=>{e.key===`Escape`&&n()},[n]);return(0,K.useEffect)(()=>{if(e)return document.addEventListener(`keydown`,r),()=>document.removeEventListener(`keydown`,r)},[e,r]),e?(0,q.jsxs)(`div`,{className:`fixed inset-0 z-[100] flex items-center justify-center bg-black/80 backdrop-blur-sm animate-in fade-in duration-150`,onClick:n,children:[(0,q.jsx)(`button`,{onClick:n,className:`absolute top-4 right-4 z-10 flex items-center justify-center size-8 rounded-full bg-white/10 hover:bg-white/20 text-white transition-colors`,"aria-label":`Close`,children:(0,q.jsx)(je,{className:`size-5`})}),(0,q.jsx)(`img`,{src:e,alt:t,className:`max-w-[90vw] max-h-[90vh] object-contain rounded-lg shadow-2xl`,onClick:e=>e.stopPropagation()})]}):null}var ef=Me(e=>({svg:null,open:t=>e({svg:t}),close:()=>e({svg:null})})),tf=.25,nf=4,rf=.25;function af(){let{svg:e,close:t}=ef(),n=(0,K.useRef)(null),[r,i]=(0,K.useState)(1),[a,o]=(0,K.useState)({x:0,y:0}),s=(0,K.useRef)(!1),c=(0,K.useRef)({x:0,y:0});(0,K.useEffect)(()=>{e&&(i(1),o({x:0,y:0}))},[e]);let l=(0,K.useCallback)(e=>{e.key===`Escape`&&t(),(e.key===`=`||e.key===`+`)&&i(e=>Math.min(nf,e+rf)),e.key===`-`&&i(e=>Math.max(tf,e-rf)),e.key===`0`&&(i(1),o({x:0,y:0}))},[t]);(0,K.useEffect)(()=>{if(e)return document.addEventListener(`keydown`,l),()=>document.removeEventListener(`keydown`,l)},[e,l]);let u=(0,K.useCallback)(e=>{e.preventDefault();let t=e.deltaY>0?-rf:rf;i(e=>Math.min(nf,Math.max(tf,e+t)))},[]),d=(0,K.useCallback)(e=>{e.button===0&&(s.current=!0,c.current={x:e.clientX,y:e.clientY},e.target.setPointerCapture(e.pointerId))},[]),f=(0,K.useCallback)(e=>{if(!s.current)return;let t=e.clientX-c.current.x,n=e.clientY-c.current.y;c.current={x:e.clientX,y:e.clientY},o(e=>({x:e.x+t,y:e.y+n}))},[]),p=(0,K.useCallback)(()=>{s.current=!1},[]);return e?(0,q.jsxs)(`div`,{className:`fixed inset-0 z-[100] flex flex-col bg-black/85 backdrop-blur-sm animate-in fade-in duration-150`,onClick:t,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 bg-black/40`,onClick:e=>e.stopPropagation(),children:[(0,q.jsxs)(`span`,{className:`text-sm text-white/70`,children:[Math.round(r*100),`% — Scroll to zoom, drag to pan, 0 to reset`]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(`button`,{onClick:()=>i(e=>Math.max(tf,e-rf)),className:`flex items-center justify-center size-8 rounded bg-white/10 hover:bg-white/20 text-white transition-colors`,"aria-label":`Zoom out`,children:(0,q.jsx)(Ln,{className:`size-4`})}),(0,q.jsx)(`button`,{onClick:()=>i(e=>Math.min(nf,e+rf)),className:`flex items-center justify-center size-8 rounded bg-white/10 hover:bg-white/20 text-white transition-colors`,"aria-label":`Zoom in`,children:(0,q.jsx)(In,{className:`size-4`})}),(0,q.jsx)(`button`,{onClick:()=>{i(1),o({x:0,y:0})},className:`flex items-center justify-center size-8 rounded bg-white/10 hover:bg-white/20 text-white transition-colors`,"aria-label":`Reset zoom`,children:(0,q.jsx)(vn,{className:`size-4`})}),(0,q.jsx)(`button`,{onClick:t,className:`flex items-center justify-center size-8 rounded bg-white/10 hover:bg-white/20 text-white transition-colors ml-2`,"aria-label":`Close`,children:(0,q.jsx)(je,{className:`size-5`})})]})]}),(0,q.jsx)(`div`,{ref:n,className:`flex-1 overflow-hidden cursor-grab active:cursor-grabbing`,onClick:e=>e.stopPropagation(),onWheel:u,onPointerDown:d,onPointerMove:f,onPointerUp:p,children:(0,q.jsx)(`div`,{className:`w-full h-full flex items-center justify-center`,style:{transform:`translate(${a.x}px, ${a.y}px) scale(${r})`,transformOrigin:`center center`},children:(0,q.jsx)(`div`,{className:`mermaid-overlay-content bg-white rounded-lg p-6 shadow-2xl [&_svg]:max-w-full [&_svg]:h-auto`,dangerouslySetInnerHTML:{__html:e}})})})]}):null}var of=`https://ppm.hienle.tech`;function sf(){return window.location.hostname.endsWith(`.trycloudflare.com`)}function cf(){let e=Dd(e=>e.showOverlay),[t,n]=(0,K.useState)(!1);if(!e)return null;let r=sf();async function i(){n(!0);try{if((await fetch(`/api/health`,{cache:`no-store`})).ok){if(Dd.getState().markUp(),`caches`in window){let e=await caches.keys();await Promise.all(e.map(e=>caches.delete(e)))}window.location.reload();return}}catch{}n(!1)}return(0,q.jsx)(`div`,{className:`fixed inset-0 z-[200] bg-background/95 backdrop-blur-sm flex items-center justify-center p-4`,children:(0,q.jsxs)(`div`,{className:`max-w-sm w-full text-center space-y-6`,children:[(0,q.jsx)(`div`,{className:`flex justify-center`,children:(0,q.jsx)(`div`,{className:`rounded-full bg-destructive/10 p-4`,children:(0,q.jsx)(r?Fn:bn,{className:`h-10 w-10 text-destructive`})})}),(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsx)(`h2`,{className:`text-xl font-semibold text-foreground`,children:r?`Connection Lost`:`Server Unreachable`}),(0,q.jsx)(`p`,{className:`text-sm text-muted-foreground leading-relaxed`,children:r?`The tunnel appears to have closed. The server may have restarted with a new URL.`:`Cannot connect to the PPM server. It may have stopped or is restarting.`})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[r&&(0,q.jsx)(`a`,{href:of,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center justify-center rounded-md bg-primary px-4 py-2.5 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors`,children:`Open PPM Cloud`}),(0,q.jsxs)(`button`,{onClick:i,disabled:t,className:`inline-flex items-center justify-center gap-2 rounded-md border border-border px-4 py-2.5 text-sm font-medium text-foreground hover:bg-accent transition-colors disabled:opacity-50`,children:[(0,q.jsx)(Ae,{className:`h-4 w-4 ${t?`animate-spin`:``}`}),t?`Retrying…`:`Retry Connection`]})]}),!r&&(0,q.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`If the server was stopped, run `,(0,q.jsx)(`code`,{className:`bg-muted px-1 py-0.5 rounded text-[11px]`,children:`ppm start`}),` to restart it.`]})]})})}function lf(){let e=No(e=>e.quickPick),t=No(e=>e.resolveQuickPick);return e?(0,q.jsx)(uf,{items:e.items,options:e.options,onSelect:e=>t(e),onCancel:()=>t(void 0)}):null}function uf({items:e,options:t,onSelect:n,onCancel:r}){let[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(0),[c,l]=(0,K.useState)(()=>{let t=new Set;return e.forEach((e,n)=>{e.picked&&t.add(n)}),t}),u=(0,K.useRef)(null),d=(0,K.useRef)(null),f=t.canPickMany??!1;(0,K.useEffect)(()=>{requestAnimationFrame(()=>u.current?.focus())},[]);let p=(0,K.useMemo)(()=>{if(!i.trim())return e.map((e,t)=>({item:e,originalIdx:t}));let t=i.toLowerCase();return e.map((e,t)=>({item:e,originalIdx:t})).filter(({item:e})=>e.label.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)||e.detail?.toLowerCase().includes(t))},[e,i]);(0,K.useEffect)(()=>{s(e=>Math.min(e,Math.max(p.length-1,0)))},[p.length]),(0,K.useEffect)(()=>{(d.current?.children[o])?.scrollIntoView({block:`nearest`})},[o]);let m=(0,K.useCallback)(()=>{f?n(e.filter((e,t)=>c.has(t))):p[o]&&n([p[o].item])},[f,c,e,p,o,n]);function h(e){switch(e.key){case`ArrowDown`:e.preventDefault(),p.length>0&&s(e=>(e+1)%p.length);break;case`ArrowUp`:e.preventDefault(),p.length>0&&s(e=>(e-1+p.length)%p.length);break;case` `:if(f&&p[o]){e.preventDefault();let t=p[o].originalIdx;l(e=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n})}break;case`Enter`:e.preventDefault(),m();break;case`Escape`:e.preventDefault(),r();break}}return(0,q.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:r,children:[(0,q.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,q.jsxs)(`div`,{className:`relative z-10 w-full max-w-md rounded-t-xl md:rounded-xl border border-border bg-background shadow-2xl overflow-hidden max-h-[80vh] md:max-h-none`,onClick:e=>e.stopPropagation(),onKeyDown:h,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-3 py-2.5`,children:[(0,q.jsx)(Te,{className:`size-4 text-text-subtle shrink-0`}),(0,q.jsx)(`input`,{ref:u,type:`text`,value:i,onChange:e=>a(e.target.value),placeholder:t.placeholder??`Select an item...`,className:`flex-1 bg-transparent text-sm text-text-primary outline-none placeholder:text-text-subtle`}),(0,q.jsx)(`kbd`,{className:`hidden sm:inline-flex items-center rounded border border-border bg-surface px-1.5 py-0.5 text-[10px] text-text-subtle font-mono`,children:`ESC`})]}),(0,q.jsx)(`div`,{ref:d,className:`max-h-72 overflow-y-auto py-1`,children:p.length===0?(0,q.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`No matching items`}):p.map(({item:e,originalIdx:t},r)=>(0,q.jsxs)(`button`,{onClick:()=>{f?l(e=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n}):n([e])},className:H(`flex items-center gap-3 w-full px-3 py-2 text-sm text-left transition-colors`,r===o?`bg-accent/15 text-text-primary`:`text-text-secondary hover:bg-surface-elevated`),children:[f&&(0,q.jsx)(`span`,{className:H(`size-4 shrink-0 rounded border flex items-center justify-center`,c.has(t)?`bg-primary border-primary text-primary-foreground`:`border-border`),children:c.has(t)&&(0,q.jsx)(le,{className:`size-3`})}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,q.jsx)(`div`,{className:`truncate`,children:e.label}),e.description&&(0,q.jsx)(`span`,{className:`text-xs text-text-subtle ml-2`,children:e.description}),e.detail&&(0,q.jsx)(`div`,{className:`text-xs text-text-subtle truncate mt-0.5`,children:e.detail})]})]},t))}),f&&(0,q.jsxs)(`div`,{className:`flex items-center justify-between border-t border-border px-3 py-1.5`,children:[(0,q.jsxs)(`span`,{className:`text-[10px] text-text-subtle`,children:[c.size,` selected`]}),(0,q.jsx)(`button`,{onClick:m,className:`text-xs text-primary hover:text-primary/80 font-medium`,children:`Confirm`})]})]})]})}function df(){let e=No(e=>e.inputBox),t=No(e=>e.resolveInputBox);return e?(0,q.jsx)(ff,{options:e.options,onConfirm:e=>t(e),onCancel:()=>t(void 0)}):null}function ff({options:e,onConfirm:t,onCancel:n}){let[r,i]=(0,K.useState)(e.value??``),a=(0,K.useRef)(null);(0,K.useEffect)(()=>{requestAnimationFrame(()=>{a.current?.focus(),a.current?.select()})},[]);function o(e){e.key===`Enter`?(e.preventDefault(),t(r)):e.key===`Escape`&&(e.preventDefault(),n())}return(0,q.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:n,children:[(0,q.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,q.jsxs)(`div`,{className:`relative z-10 w-full max-w-md rounded-t-xl md:rounded-xl border border-border bg-background shadow-2xl overflow-hidden`,onClick:e=>e.stopPropagation(),children:[e.prompt&&(0,q.jsx)(`div`,{className:`px-3 pt-3 pb-1 text-sm text-text-primary`,children:e.prompt}),(0,q.jsx)(`div`,{className:`flex items-center gap-2 px-3 py-2.5`,children:(0,q.jsx)(`input`,{ref:a,type:e.password?`password`:`text`,value:r,onChange:e=>i(e.target.value),onKeyDown:o,placeholder:e.placeholder??``,className:`flex-1 bg-surface border border-border rounded px-2 py-1.5 text-sm text-text-primary outline-none focus:border-primary placeholder:text-text-subtle`})}),(0,q.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t border-border px-3 py-2`,children:[(0,q.jsx)(`button`,{onClick:n,className:`px-3 py-1.5 text-xs text-text-secondary hover:text-text-primary transition-colors rounded`,children:`Cancel`}),(0,q.jsx)(`button`,{onClick:()=>t(r),className:`px-3 py-1.5 text-xs bg-primary text-primary-foreground rounded hover:bg-primary/90 transition-colors font-medium`,children:`OK`})]})]})]})}var pf=3e4,mf=1e3,hf=class{ws=null;url;handlers=[];reconnectAttempts=0;reconnectTimer=null;intentionalClose=!1;pendingMessages=[];visibilityHandler=null;constructor(e){this.url=e,this.visibilityHandler=()=>{document.visibilityState===`visible`&&!this.intentionalClose&&this.ws?.readyState!==WebSocket.OPEN&&(this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectTimer=null,this.reconnectAttempts=0,this.connect())},document.addEventListener(`visibilitychange`,this.visibilityHandler)}connect(){this.intentionalClose=!1,this.cleanup();let e=window.location.protocol===`https:`?`wss:`:`ws:`,t;t=this.url.startsWith(`ws`)?this.url:`${e}//${window.location.host}${this.url}`,this.ws=new WebSocket(t),this.ws.onopen=()=>{this.reconnectAttempts=0;try{this.ws?.send(JSON.stringify({type:`ready`}))}catch{}if(this.pendingMessages.length>0){console.log(`[ws] flushing ${this.pendingMessages.length} queued message(s)`);for(let e of this.pendingMessages)try{this.ws?.send(e)}catch{}this.pendingMessages=[]}},this.ws.onmessage=e=>{for(let t of this.handlers)t(e)},this.ws.onclose=()=>{this.intentionalClose||this.scheduleReconnect()},this.ws.onerror=()=>{this.ws?.close()}}disconnect(){this.intentionalClose=!0,this.pendingMessages=[],this.cleanup(),this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.visibilityHandler&&=(document.removeEventListener(`visibilitychange`,this.visibilityHandler),null)}send(e){this.ws?.readyState===WebSocket.OPEN?this.ws.send(e):this.intentionalClose?console.warn(`[ws] message dropped — WS intentionally closed`):(console.warn(`[ws] WS not open (readyState=${this.ws?.readyState??`no-ws`}) — queuing message`),this.pendingMessages.push(e))}onMessage(e){return this.handlers.push(e),()=>{this.handlers=this.handlers.filter(t=>t!==e)}}get isConnected(){return this.ws?.readyState===WebSocket.OPEN}cleanup(){this.ws&&=(this.ws.onopen=null,this.ws.onclose=null,this.ws.onmessage=null,this.ws.onerror=null,(this.ws.readyState===WebSocket.OPEN||this.ws.readyState===WebSocket.CONNECTING)&&this.ws.close(),null)}scheduleReconnect(){let e=Math.min(mf*2**this.reconnectAttempts,pf);this.reconnectAttempts++,this.reconnectTimer=setTimeout(()=>this.connect(),e)}},gf=new Set;function _f(e=!0){let t=(0,K.useRef)(null),n=(0,K.useCallback)(e=>{t.current?.send(JSON.stringify(e))},[]);return(0,K.useEffect)(()=>{if(!e)return;let r=Pe(),i=new hf(r?`/ws/extensions?token=${encodeURIComponent(r)}`:`/ws/extensions`);t.current=i,i.onMessage(e=>{let t;try{t=JSON.parse(e.data)}catch{return}let r=No.getState();switch(t.type){case`contributions:update`:if(r.setContributions(t.contributions),t.activationErrors){let e=r.activationErrors;r.setActivationErrors(t.activationErrors);for(let[n,r]of Object.entries(t.activationErrors))e[n]||tr.error(`Extension "${n}" failed to activate: ${r}`)}break;case`statusbar:update`:r.addStatusBarItem(t.item);break;case`statusbar:remove`:r.removeStatusBarItem(t.itemId);break;case`tree:update`:t.parentId?r.updateTreeChildren(t.viewId,t.parentId,t.items):r.updateTree(t.viewId,t.items);break;case`tree:refresh`:r.removeTree(t.viewId);break;case`notification`:{let e=t.level===`error`?tr.error:t.level===`warn`?tr.warning:tr.info;if(t.actions&&t.actions.length>0){let r={action:{label:t.actions[0],onClick:()=>n({type:`notification:action`,id:t.id,action:t.actions[0]??null})},onDismiss:()=>n({type:`notification:action`,id:t.id,action:null})};t.actions.length>1&&(r.cancel={label:t.actions[1],onClick:()=>n({type:`notification:action`,id:t.id,action:t.actions[1]??null})}),e(t.message,r)}else e(t.message);break}case`quickpick:show`:r.showQuickPick(t.items,t.options).then(e=>{n({type:`quickpick:resolve`,requestId:t.requestId,selected:e??null})});break;case`inputbox:show`:r.showInputBox(t.options).then(e=>{n({type:`inputbox:resolve`,requestId:t.requestId,value:e??null})});break;case`webview:create`:{let e=t.viewType.replace(/\.view$/,``);r.addWebviewPanel({id:t.panelId,extensionId:t.extensionId,viewType:t.viewType,title:t.title,html:``});let n=`extension:${e}`,i=U.getState(),a=new Set(i.grid.flat()),o=null;for(let e of a){let t=i.panels[e];if(!t)continue;let r=t.tabs.find(e=>e.id===n||e.id.startsWith(`${n}@`));if(r){o=r.id;break}}if(o){let n=i.grid.flat().reduce((e,t)=>e||i.panels[t]?.tabs.find(e=>e.id===o)?.metadata,void 0);W.getState().updateTab(o,{title:t.title,metadata:{...n,viewType:e,panelId:t.panelId,extensionId:t.extensionId}}),W.getState().setActiveTab(o)}else if(!gf.has(e)){let n=W.getState().currentProject;W.getState().openTab({type:`extension`,title:t.title,projectId:null,closable:!0,metadata:{viewType:e,panelId:t.panelId,extensionId:t.extensionId,...n&&{projectName:n}}})}break}case`webview:html`:r.updateWebviewPanel(t.panelId,{html:t.html});break;case`webview:dispose`:r.removeWebviewPanel(t.panelId);break;case`webview:postMessage`:window.dispatchEvent(new CustomEvent(`ext:webview:message`,{detail:{panelId:t.panelId,message:t.message}}));break;case`tab:open`:W.getState().openTab({type:t.tabType,title:t.title,projectId:t.projectId??null,closable:t.closable??!0,metadata:t.metadata});break;case`project:switch`:W.getState().switchProject(t.projectName);break}});let a=e=>{let{panelId:t,message:n}=e.detail;i.send(JSON.stringify({type:`webview:message`,panelId:t,message:n}))};window.addEventListener(`ext:webview:send`,a);let o=e=>{let{viewId:t,itemId:n}=e.detail;i.send(JSON.stringify({type:`tree:expand`,viewId:t,itemId:n}))};window.addEventListener(`ext:tree:expand`,o);let s=e=>{let{command:t,args:n}=e.detail,r=t.replace(/\.view$/,``);gf.delete(r),i.send(JSON.stringify({type:`command:execute`,command:t,args:n}))};window.addEventListener(`ext:command:execute`,s);let c=e=>{let{panelId:t,viewType:n}=e.detail;if(i.send(JSON.stringify({type:`webview:close`,panelId:t})),n){let e=n.replace(/\.view$/,``);gf.add(e),setTimeout(()=>gf.delete(e),5e3)}};return window.addEventListener(`ext:webview:close`,c),i.connect(),()=>{window.removeEventListener(`ext:webview:send`,a),window.removeEventListener(`ext:tree:expand`,o),window.removeEventListener(`ext:command:execute`,s),window.removeEventListener(`ext:webview:close`,c),i.disconnect(),t.current=null}},[n,e]),{send:n}}function vf(){let[e,t]=(0,K.useState)(`checking`),[n,r]=(0,K.useState)(!1),[i,a]=(0,K.useState)(!1),[o,s]=(0,K.useState)(),[c,l]=(0,K.useState)(!1);(0,K.useEffect)(()=>{let e=()=>{s(`settings`),a(!0)};return window.addEventListener(`open-mobile-settings`,e),()=>window.removeEventListener(`open-mobile-settings`,e)},[]);let[u,d]=(0,K.useState)(()=>new Set([`__global__`])),f=Fe(e=>e.theme),p=Fe(e=>e.deviceName),m=We(e=>e.fetchProjects),h=Fe(e=>e.fetchServerInfo),g=We(e=>e.activeProject),_=(0,K.useRef)(cd());(0,K.useEffect)(()=>{if(Ie(f),f===`system`){let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>Ie(`system`);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)}},[f]),(0,K.useEffect)(()=>{h()},[h]),(0,K.useEffect)(()=>{async function e(){let e=Pe();try{let n={};e&&(n.Authorization=`Bearer ${e}`),(await(await fetch(`/api/auth/check`,{headers:n})).json()).ok?t(`authenticated`):t(`unauthenticated`)}catch{t(`unauthenticated`)}}e()},[]),md();let{paletteOpen:v,paletteInitialQuery:y,closePalette:b}=Fo();Td(),Ad(),_f(e===`authenticated`),(0,K.useEffect)(()=>{if(e!==`authenticated`)return;let t=e=>{e.preventDefault()};return window.addEventListener(`beforeunload`,t),()=>window.removeEventListener(`beforeunload`,t)},[e]),(0,K.useEffect)(()=>{e===`authenticated`&&Le(async()=>{let{useKeybindingsStore:e}=await import(`./keybindings-store-Rf9YKWAp.js`);return{useKeybindingsStore:e}},__vite__mapDeps([55,4,1,10])).then(({useKeybindingsStore:e})=>{e.getState().loadFromServer()})},[e]),(0,K.useEffect)(()=>{e===`authenticated`&&m().then(async()=>{let e=_.current,{projects:t,customOrder:n}=We.getState();if(t.length===0)return;let r=e.projectName?t.find(t=>t.name===e.projectName):void 0;if(r||=Ge(t,n)[0],!r)return;let i=await He(r.name);if(i){let e=localStorage.getItem(`ppm-panels-${r.name}`),t=Ue(e?JSON.parse(e):null,i);t&&t===i&&localStorage.setItem(`ppm-panels-${r.name}`,JSON.stringify(i))}if(We.getState().setActiveProject(r),W.getState().switchProject(r.name),e.tabType&&pd(e.tabType,e.tabIdentifier,r.name),e.openChat){pd(`chat`,e.openChat,r.name);let t=new URL(window.location.href);t.searchParams.delete(`openChat`),window.history.replaceState(null,``,t.pathname)}})},[e,m]),(0,K.useEffect)(()=>{let e=g?.name??`__global__`;W.getState().switchProject(e)},[g?.name]),(0,K.useEffect)(()=>{e!==`authenticated`||!g?.name||Le(async()=>{let{useNotificationStore:e}=await import(`./notification-store-C3tg-ZXm.js`);return{useNotificationStore:e}},__vite__mapDeps([56,4,1,10])).then(({useNotificationStore:e})=>{e.getState().loadFromServer(g.name)})},[e,g?.name]),(0,K.useEffect)(()=>{let e=g?.name??`__global__`;d(t=>t.has(e)?t:new Set([...t,e]))},[g?.name]),(0,K.useEffect)(()=>{e===`authenticated`&&!g&&W.getState().switchProject(`__global__`)},[e,g]);let x=(0,K.useCallback)(()=>{t(`authenticated`)},[]);if(e===`checking`)return(0,q.jsx)(`div`,{className:`min-h-dvh flex items-center justify-center bg-background`,children:(0,q.jsx)(`div`,{className:`animate-pulse text-text-secondary text-sm`,children:`Loading...`})});if(e===`unauthenticated`)return(0,q.jsx)(od,{onSuccess:x});let S=g?.name??`__global__`;return(0,q.jsx)(vr,{children:(0,q.jsxs)(`div`,{className:`h-dvh flex flex-col bg-background text-foreground overflow-hidden relative`,children:[(0,q.jsx)(Zd,{onVisibilityChange:r}),(0,q.jsx)(`div`,{className:`fixed z-50 overflow-hidden pointer-events-none max-md:right-0 max-md:top-0 md:left-0 md:top-0 w-10 h-10`,children:(0,q.jsx)(`div`,{className:`absolute flex items-center justify-center max-md:rotate-45 max-md:right-[-18px] max-md:top-[4px] md:-rotate-45 md:left-[-18px] md:top-[4px] w-[60px] bg-amber-500 text-white text-[6px] font-bold leading-none py-[2.5px] shadow-sm`,children:`BETA`})}),p&&(0,q.jsx)(`div`,{className:H(`md:hidden fixed left-0 z-50 px-2 py-0.5 bg-primary/80 text-primary-foreground text-[10px] font-medium rounded-br transition-[top]`,n?`top-7`:`top-0`),children:p}),(0,q.jsxs)(`div`,{className:`flex flex-1 overflow-hidden`,children:[(0,q.jsx)(Zu,{}),(0,q.jsx)(lu,{}),(0,q.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden`,children:[[...u].map(e=>(0,q.jsx)(`div`,{className:H(`flex-1 overflow-hidden pb-12 md:pb-0`,S!==e&&`hidden`),children:(0,q.jsx)(os,{projectName:e})},e)),(0,q.jsx)(ts,{})]})]}),(0,q.jsx)(td,{onMenuPress:()=>a(!0),onProjectsPress:()=>l(!0)}),(0,q.jsx)(rd,{isOpen:i,onClose:()=>{a(!1),s(void 0)},initialTab:o}),(0,q.jsx)(ad,{isOpen:c,onClose:()=>l(!1)}),(0,q.jsx)(Wd,{open:v,onClose:b,initialQuery:y}),(0,q.jsx)(Kd,{}),(0,q.jsx)(qd,{}),(0,q.jsx)($d,{}),(0,q.jsx)(af,{}),(0,q.jsx)(lf,{}),(0,q.jsx)(df,{}),(0,q.jsx)(cf,{}),(0,q.jsx)(_r,{position:`bottom-left`,closeButton:!0,toastOptions:{className:`bg-surface border-border text-foreground`}})]})})}if(typeof Node<`u`){let e=Node.prototype.removeChild;Node.prototype.removeChild=function(t){try{return e.call(this,t)}catch(e){if(e instanceof DOMException&&e.name===`NotFoundError`)return t;throw e}};let t=Node.prototype.insertBefore;Node.prototype.insertBefore=function(e,n){try{return t.call(this,e,n)}catch(t){if(t instanceof DOMException&&t.name===`NotFoundError`)return e;throw t}}}(0,Rn.createRoot)(document.getElementById(`root`)).render((0,q.jsx)(K.StrictMode,{children:(0,q.jsx)(vf,{})}));export{G as $,Da as A,Nn as B,ko as C,Mo as D,Eo as E,wa as F,Cn as G,kn as H,pa as I,vn as J,Sn as K,fa as L,Ma as M,ja as N,Ba as O,Aa as P,en as Q,tr as R,wo as S,Oo as T,On as U,jn as V,En as W,rn as X,dn as Y,tn as Z,hs as _,iu as a,Ot as at,Po as b,nl as c,vt as ct,rc as d,ut as dt,Bt as et,ic as f,lt as ft,xs as g,tc as h,Ku as i,kt as it,ka as j,Fa as k,ec as l,pt as lt,ac as m,ef as n,Lt as nt,Sl as o,xt as ot,oc as p,ot as pt,xn as q,Qd as r,At as rt,gl as s,bt as st,hf as t,zt as tt,nc as u,ft as ut,Go as v,Do as w,No as x,Io as y,Fn as z};