@hienlh/ppm 0.9.73 → 0.9.74

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 (25) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/web/assets/chat-tab-Balv7WLR.js +10 -0
  3. package/dist/web/assets/{code-editor-D8VveTUt.js → code-editor--iQ3p6pv.js} +1 -1
  4. package/dist/web/assets/{database-viewer-CcTlsR2D.js → database-viewer-j_rE2HtW.js} +1 -1
  5. package/dist/web/assets/{diff-viewer-CXU5BvCX.js → diff-viewer-BsNNXZOH.js} +1 -1
  6. package/dist/web/assets/{extension-webview-Dzkyl-2t.js → extension-webview-DBFlb9vJ.js} +1 -1
  7. package/dist/web/assets/{git-graph-Ce8pbmQX.js → git-graph-4T0UY_11.js} +1 -1
  8. package/dist/web/assets/{index-Y-Kfye7A.js → index-BEWc9Jna.js} +3 -3
  9. package/dist/web/assets/keybindings-store-jU8-zEoI.js +1 -0
  10. package/dist/web/assets/{markdown-renderer-BinWj98E.js → markdown-renderer-DoHfaBus.js} +1 -1
  11. package/dist/web/assets/{port-forwarding-tab-D15vANLc.js → port-forwarding-tab-zP7tA3ms.js} +1 -1
  12. package/dist/web/assets/{postgres-viewer-Nlg7DV9i.js → postgres-viewer-h6eod6pQ.js} +1 -1
  13. package/dist/web/assets/{settings-tab-BY9LX5Du.js → settings-tab-c_CRbliY.js} +1 -1
  14. package/dist/web/assets/{sql-query-editor-njmHoOsX.js → sql-query-editor-DhuulOCp.js} +1 -1
  15. package/dist/web/assets/{sqlite-viewer-jSYguEYD.js → sqlite-viewer-FTb_sKqq.js} +1 -1
  16. package/dist/web/assets/{terminal-tab-DUz3dmkj.js → terminal-tab--DxApS1a.js} +1 -1
  17. package/dist/web/assets/{use-monaco-theme-Dl6w9X-L.js → use-monaco-theme-CHzQ7wm2.js} +1 -1
  18. package/dist/web/index.html +1 -1
  19. package/dist/web/sw.js +1 -1
  20. package/package.json +1 -1
  21. package/src/web/components/chat/chat-tab.tsx +2 -0
  22. package/src/web/components/chat/message-list.tsx +9 -9
  23. package/src/web/hooks/use-chat.ts +7 -3
  24. package/dist/web/assets/chat-tab-ByDDO6Pl.js +0 -10
  25. package/dist/web/assets/keybindings-store-DoRbfX4Q.js +0 -1
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/api-settings-Bn-bIxD1.js","assets/chunk-CFjPhJqf.js","assets/api-client-BfBM3I7n.js","assets/terminal-tab-DUz3dmkj.js","assets/utils-BNytJOb1.js","assets/jsx-runtime-kMwlnEGE.js","assets/react-nm2Ru1Pt.js","assets/terminal-tab-BrP-ENHg.css","assets/chat-tab-ByDDO6Pl.js","assets/preload-helper-Bf_JiD2A.js","assets/dist-CSJdAyA9.js","assets/dist-DIV6WgAG.js","assets/react-dom-Bpkvzu3U.js","assets/chunk-PU5JKC2W-ek7k4QVB.js","assets/src-BqX54PbV.js","assets/chunk-GEFDOKGD-D-pKjlVd.js","assets/math-069Z4SuC.js","assets/chunk-7R4GIKGN-Dv-4cAYn.js","assets/isArrayLikeObject-B_v2FtYn.js","assets/createLucideIcon-PuMiQgHl.js","assets/arrow-up-BYhx9ckd.js","assets/x-D2_KzIET.js","assets/chevron-right-4zq1jPv6.js","assets/markdown-renderer-BinWj98E.js","assets/isEmpty-bnrF3Qbc.js","assets/chunk-GLR3WWYH-DKikpoJM.js","assets/chunk-KYZI473N-Bb0MCaIO.js","assets/chunk-PQ6SQG4A-TF58UVMU.js","assets/chunk-YBOYWFTD-rQG3QH5s.js","assets/rough.esm-JX0wREDd.js","assets/chunk-O4XLMI2P-nDhi_cVu.js","assets/line-CVvo3dRu.js","assets/path-6uRLdFF7.js","assets/array-B9UHiPd-.js","assets/chunk-MX3YWQON-BpS_PtKp.js","assets/chunk-HHEYEP7N-C7vxA5i9.js","assets/chunk-XPW4576I-BPQQBakK.js","assets/columns-2-BoZAN-iw.js","assets/square-oPKIkJiw.js","assets/tag-CXMT0QB6.js","assets/code-editor-D8VveTUt.js","assets/use-monaco-theme-Dl6w9X-L.js","assets/table-DFevCOMd.js","assets/text-wrap-BWNOVswA.js","assets/sql-completion-provider-DM9Qov6L.js","assets/database-viewer-CcTlsR2D.js","assets/sql-query-editor-njmHoOsX.js","assets/csv-parser-CNNw2RVA.js","assets/sqlite-viewer-jSYguEYD.js","assets/lib-DurwGtQO.js","assets/postgres-viewer-Nlg7DV9i.js","assets/git-graph-Ce8pbmQX.js","assets/diff-viewer-CXU5BvCX.js","assets/settings-tab-BY9LX5Du.js","assets/port-forwarding-tab-D15vANLc.js","assets/extension-webview-Dzkyl-2t.js","assets/keybindings-store-DoRbfX4Q.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/api-settings-Bn-bIxD1.js","assets/chunk-CFjPhJqf.js","assets/api-client-BfBM3I7n.js","assets/terminal-tab--DxApS1a.js","assets/utils-BNytJOb1.js","assets/jsx-runtime-kMwlnEGE.js","assets/react-nm2Ru1Pt.js","assets/terminal-tab-BrP-ENHg.css","assets/chat-tab-Balv7WLR.js","assets/preload-helper-Bf_JiD2A.js","assets/dist-CSJdAyA9.js","assets/dist-DIV6WgAG.js","assets/react-dom-Bpkvzu3U.js","assets/chunk-PU5JKC2W-ek7k4QVB.js","assets/src-BqX54PbV.js","assets/chunk-GEFDOKGD-D-pKjlVd.js","assets/math-069Z4SuC.js","assets/chunk-7R4GIKGN-Dv-4cAYn.js","assets/isArrayLikeObject-B_v2FtYn.js","assets/createLucideIcon-PuMiQgHl.js","assets/arrow-up-BYhx9ckd.js","assets/x-D2_KzIET.js","assets/chevron-right-4zq1jPv6.js","assets/markdown-renderer-DoHfaBus.js","assets/isEmpty-bnrF3Qbc.js","assets/chunk-GLR3WWYH-DKikpoJM.js","assets/chunk-KYZI473N-Bb0MCaIO.js","assets/chunk-PQ6SQG4A-TF58UVMU.js","assets/chunk-YBOYWFTD-rQG3QH5s.js","assets/rough.esm-JX0wREDd.js","assets/chunk-O4XLMI2P-nDhi_cVu.js","assets/line-CVvo3dRu.js","assets/path-6uRLdFF7.js","assets/array-B9UHiPd-.js","assets/chunk-MX3YWQON-BpS_PtKp.js","assets/chunk-HHEYEP7N-C7vxA5i9.js","assets/chunk-XPW4576I-BPQQBakK.js","assets/columns-2-BoZAN-iw.js","assets/square-oPKIkJiw.js","assets/tag-CXMT0QB6.js","assets/code-editor--iQ3p6pv.js","assets/use-monaco-theme-CHzQ7wm2.js","assets/table-DFevCOMd.js","assets/text-wrap-BWNOVswA.js","assets/sql-completion-provider-DM9Qov6L.js","assets/database-viewer-j_rE2HtW.js","assets/sql-query-editor-DhuulOCp.js","assets/csv-parser-CNNw2RVA.js","assets/sqlite-viewer-FTb_sKqq.js","assets/lib-DurwGtQO.js","assets/postgres-viewer-h6eod6pQ.js","assets/git-graph-4T0UY_11.js","assets/diff-viewer-BsNNXZOH.js","assets/settings-tab-c_CRbliY.js","assets/port-forwarding-tab-zP7tA3ms.js","assets/extension-webview-DBFlb9vJ.js","assets/keybindings-store-jU8-zEoI.js"])))=>i.map(i=>d[i]);
2
2
  import{o as e,t}from"./chunk-CFjPhJqf.js";import{t as n}from"./react-nm2Ru1Pt.js";import{t as r}from"./react-dom-Bpkvzu3U.js";import{t as i}from"./createLucideIcon-PuMiQgHl.js";import{n as a,t as o}from"./x-D2_KzIET.js";import{t as s}from"./chevron-right-4zq1jPv6.js";import{t as c}from"./react-SKk5z-bm.js";import{t as l}from"./preload-helper-Bf_JiD2A.js";import{t as u}from"./jsx-runtime-kMwlnEGE.js";import{C as d,D as f,E as p,O as m,S as h,T as g,_,a as v,b as y,c as b,d as x,f as S,g as C,h as w,i as T,k as E,l as D,m as O,n as k,o as A,p as j,r as ee,s as te,t as M,u as N,v as P,w as ne,x as re,y as F}from"./dist-DIV6WgAG.js";import{i as ie,n as I,r as L,t as ae}from"./utils-BNytJOb1.js";import{a as oe,i as R,r as se,t as z}from"./api-client-BfBM3I7n.js";import{_ as ce,a as le,d as ue,h as de}from"./api-settings-Bn-bIxD1.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 fe=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&&j(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&&j(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,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(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,j(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}}}})),pe=t(((e,t)=>{t.exports=fe()})),me=t((e=>{var t=pe(),i=n(),a=r();function o(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 s(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function c(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 l(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 u(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 d(e){if(c(e)!==e)throw Error(o(188))}function f(e){var t=e.alternate;if(!t){if(t=c(e),t===null)throw Error(o(188));return t===e?e:null}for(var n=e,r=t;;){var i=n.return;if(i===null)break;var a=i.alternate;if(a===null){if(r=i.return,r!==null){n=r;continue}break}if(i.child===a.child){for(a=i.child;a;){if(a===n)return d(i),e;if(a===r)return d(i),t;a=a.sibling}throw Error(o(188))}if(n.return!==r.return)n=i,r=a;else{for(var s=!1,l=i.child;l;){if(l===n){s=!0,n=i,r=a;break}if(l===r){s=!0,r=i,n=a;break}l=l.sibling}if(!s){for(l=a.child;l;){if(l===n){s=!0,n=a,r=i;break}if(l===r){s=!0,r=a,n=i;break}l=l.sibling}if(!s)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(n.tag!==3)throw Error(o(188));return n.stateNode.current===n?e:t}function p(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=p(e),t!==null)return t;e=e.sibling}return null}var m=Object.assign,h=Symbol.for(`react.element`),g=Symbol.for(`react.transitional.element`),_=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`),A=Symbol.iterator;function j(e){return typeof e!=`object`||!e?null:(e=A&&e[A]||e[`@@iterator`],typeof e==`function`?e:null)}var ee=Symbol.for(`react.client.reference`);function te(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===ee?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 _: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?te(e.type)||`Memo`:t;case D:t=e._payload,e=e._init;try{return te(e(t))}catch{}}return null}var M=Array.isArray,N=i.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,P=a.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ne={pending:!1,data:null,method:null,action:null},re=[],F=-1;function ie(e){return{current:e}}function I(e){0>F||(e.current=re[F],re[F]=null,F--)}function L(e,t){F++,re[F]=e.current,e.current=t}var ae=ie(null),oe=ie(null),R=ie(null),se=ie(null);function z(e,t){switch(L(R,t),L(oe,e),L(ae,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Ud(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Ud(t),e=Wd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}I(ae),L(ae,e)}function ce(){I(ae),I(oe),I(R)}function le(e){e.memoizedState!==null&&L(se,e);var t=ae.current,n=Wd(t,e.type);t!==n&&(L(oe,e),L(ae,n))}function ue(e){oe.current===e&&(I(ae),I(oe)),se.current===e&&(I(se),Q._currentValue=ne)}var de,fe;function me(e){if(de===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);de=t&&t[1]||``,fe=-1<e.stack.indexOf(`
3
3
  at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
4
4
  `+de+e+fe}var he=!1;function ge(e,t){if(!e||he)return``;he=!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(`
@@ -11,7 +11,7 @@ Error generating stack: `+e.message+`
11
11
 
12
12
  If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
13
13
 
14
- For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return V.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},kr=`DialogDescriptionWarning`,Ar=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Dr(kr).contentName}}.`;return V.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},jr=nr,Mr=ir,Nr=cr,Pr=ur,Fr=mr,Ir=yr,Lr=xr,Rr=Cr;function zr(e){let t=V.useRef({value:e,previous:e});return V.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var Br=`rovingFocusGroup.onEntryFocus`,Vr={bubbles:!1,cancelable:!0},Hr=`RovingFocusGroup`,[Ur,Wr,Gr]=y(Hr),[Kr,qr]=h(Hr,[Gr]),[Jr,Yr]=Kr(Hr),Xr=V.forwardRef((e,t)=>(0,U.jsx)(Ur.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,U.jsx)(Ur.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,U.jsx)(Zr,{...e,ref:t})})}));Xr.displayName=Hr;var Zr=V.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:o,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:l,preventScrollOnEntryFocus:u=!1,...f}=e,p=V.useRef(null),m=E(t,p),h=O(a),[g,v]=_({prop:o,defaultProp:s??null,onChange:c,caller:Hr}),[y,b]=V.useState(!1),x=j(l),S=Wr(n),C=V.useRef(!1),[w,T]=V.useState(0);return V.useEffect(()=>{let e=p.current;if(e)return e.addEventListener(Br,x),()=>e.removeEventListener(Br,x)},[x]),(0,U.jsx)(Jr,{scope:n,orientation:r,dir:h,loop:i,currentTabStopId:g,onItemFocus:V.useCallback(e=>v(e),[v]),onItemShiftTab:V.useCallback(()=>b(!0),[]),onFocusableItemAdd:V.useCallback(()=>T(e=>e+1),[]),onFocusableItemRemove:V.useCallback(()=>T(e=>e-1),[]),children:(0,U.jsx)(d.div,{tabIndex:y||w===0?-1:0,"data-orientation":r,...f,ref:m,style:{outline:`none`,...e.style},onMouseDown:F(e.onMouseDown,()=>{C.current=!0}),onFocus:F(e.onFocus,e=>{let t=!C.current;if(e.target===e.currentTarget&&t&&!y){let t=new CustomEvent(Br,Vr);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=S().filter(e=>e.focusable);ri([e.find(e=>e.active),e.find(e=>e.id===g),...e].filter(Boolean).map(e=>e.ref.current),u)}}C.current=!1}),onBlur:F(e.onBlur,()=>b(!1))})})}),Qr=`RovingFocusGroupItem`,$r=V.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=w(),l=a||c,u=Yr(Qr,n),f=u.currentTabStopId===l,p=Wr(n),{onFocusableItemAdd:m,onFocusableItemRemove:h,currentTabStopId:g}=u;return V.useEffect(()=>{if(r)return m(),()=>h()},[r,m,h]),(0,U.jsx)(Ur.ItemSlot,{scope:n,id:l,focusable:r,active:i,children:(0,U.jsx)(d.span,{tabIndex:f?0:-1,"data-orientation":u.orientation,...s,ref:t,onMouseDown:F(e.onMouseDown,e=>{r?u.onItemFocus(l):e.preventDefault()}),onFocus:F(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:F(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){u.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=ni(e,u.orientation,u.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=p().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=u.loop?ii(n,r+1):n.slice(r+1)}setTimeout(()=>ri(n))}}),children:typeof o==`function`?o({isCurrentTabStop:f,hasTabStop:g!=null}):o})})});$r.displayName=Qr;var ei={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function ti(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function ni(e,t,n){let r=ti(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return ei[r]}function ri(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function ii(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var ai=Xr,oi=$r,si=[`Enter`,` `],ci=[`ArrowDown`,`PageUp`,`Home`],li=[`ArrowUp`,`PageDown`,`End`],ui=[...ci,...li],di={ltr:[...si,`ArrowRight`],rtl:[...si,`ArrowLeft`]},fi={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]},pi=`Menu`,[mi,hi,gi]=y(pi),[_i,vi]=h(pi,[gi,v,qr]),yi=v(),bi=qr(),[xi,Si]=_i(pi),[Ci,wi]=_i(pi),Ti=e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:a,modal:o=!0}=e,s=yi(t),[c,l]=V.useState(null),u=V.useRef(!1),d=j(a),f=O(i);return V.useEffect(()=>{let e=()=>{u.current=!0,document.addEventListener(`pointerdown`,t,{capture:!0,once:!0}),document.addEventListener(`pointermove`,t,{capture:!0,once:!0})},t=()=>u.current=!1;return document.addEventListener(`keydown`,e,{capture:!0}),()=>{document.removeEventListener(`keydown`,e,{capture:!0}),document.removeEventListener(`pointerdown`,t,{capture:!0}),document.removeEventListener(`pointermove`,t,{capture:!0})}},[]),(0,U.jsx)(T,{...s,children:(0,U.jsx)(xi,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:l,children:(0,U.jsx)(Ci,{scope:t,onClose:V.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:u,dir:f,modal:o,children:r})})})};Ti.displayName=pi;var Ei=`MenuAnchor`,Di=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=yi(n);return(0,U.jsx)(M,{...i,...r,ref:t})});Di.displayName=Ei;var Oi=`MenuPortal`,[ki,W]=_i(Oi,{forceMount:void 0}),Ai=e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=Si(Oi,t);return(0,U.jsx)(ki,{scope:t,forceMount:n,children:(0,U.jsx)(C,{present:n||a.open,children:(0,U.jsx)(N,{asChild:!0,container:i,children:r})})})};Ai.displayName=Oi;var ji=`MenuContent`,[Mi,Ni]=_i(ji),Pi=V.forwardRef((e,t)=>{let n=W(ji,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Si(ji,e.__scopeMenu),o=wi(ji,e.__scopeMenu);return(0,U.jsx)(mi.Provider,{scope:e.__scopeMenu,children:(0,U.jsx)(C,{present:r||a.open,children:(0,U.jsx)(mi.Slot,{scope:e.__scopeMenu,children:o.modal?(0,U.jsx)(Fi,{...i,ref:t}):(0,U.jsx)(Ii,{...i,ref:t})})})})}),Fi=V.forwardRef((e,t)=>{let n=Si(ji,e.__scopeMenu),r=V.useRef(null),i=E(t,r);return V.useEffect(()=>{let e=r.current;if(e)return te(e)},[]),(0,U.jsx)(Ri,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:F(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),Ii=V.forwardRef((e,t)=>{let n=Si(ji,e.__scopeMenu);return(0,U.jsx)(Ri,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),Li=p(`MenuContent.ScrollLock`),Ri=V.forwardRef((e,t)=>{let{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:o,disableOutsidePointerEvents:s,onEntryFocus:c,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,disableOutsideScroll:m,...h}=e,g=Si(ji,n),_=wi(ji,n),v=yi(n),y=bi(n),C=hi(n),[w,T]=V.useState(null),O=V.useRef(null),k=E(t,O,g.onContentChange),A=V.useRef(0),j=V.useRef(``),te=V.useRef(0),M=V.useRef(null),N=V.useRef(`right`),P=V.useRef(0),ne=m?b:V.Fragment,re=m?{as:Li,allowPinchZoom:!0}:void 0,ie=e=>{let t=j.current+e,n=C().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=Sa(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;(function e(t){j.current=t,window.clearTimeout(A.current),t!==``&&(A.current=window.setTimeout(()=>e(``),1e3))})(t),o&&setTimeout(()=>o.focus())};V.useEffect(()=>()=>window.clearTimeout(A.current),[]),D();let I=V.useCallback(e=>N.current===M.current?.side&&wa(e,M.current?.area),[]);return(0,U.jsx)(Mi,{scope:n,searchRef:j,onItemEnter:V.useCallback(e=>{I(e)&&e.preventDefault()},[I]),onItemLeave:V.useCallback(e=>{I(e)||(O.current?.focus(),T(null))},[I]),onTriggerLeave:V.useCallback(e=>{I(e)&&e.preventDefault()},[I]),pointerGraceTimerRef:te,onPointerGraceIntentChange:V.useCallback(e=>{M.current=e},[]),children:(0,U.jsx)(ne,{...re,children:(0,U.jsx)(x,{asChild:!0,trapped:i,onMountAutoFocus:F(a,e=>{e.preventDefault(),O.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:o,children:(0,U.jsx)(S,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,children:(0,U.jsx)(ai,{asChild:!0,...y,dir:_.dir,orientation:`vertical`,loop:r,currentTabStopId:w,onCurrentTabStopIdChange:T,onEntryFocus:F(c,e=>{_.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,U.jsx)(ee,{role:`menu`,"aria-orientation":`vertical`,"data-state":_a(g.open),"data-radix-menu-content":``,dir:_.dir,...v,...h,ref:k,style:{outline:`none`,...h.style},onKeyDown:F(h.onKeyDown,e=>{let t=e.target.closest(`[data-radix-menu-content]`)===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=e.key.length===1;t&&(e.key===`Tab`&&e.preventDefault(),!n&&r&&ie(e.key));let i=O.current;if(e.target!==i||!ui.includes(e.key))return;e.preventDefault();let a=C().filter(e=>!e.disabled).map(e=>e.ref.current);li.includes(e.key)&&a.reverse(),ba(a)}),onBlur:F(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(A.current),j.current=``)}),onPointerMove:F(e.onPointerMove,Ta(e=>{let t=e.target,n=P.current!==e.clientX;e.currentTarget.contains(t)&&n&&(N.current=e.clientX>P.current?`right`:`left`,P.current=e.clientX)}))})})})})})})});Pi.displayName=ji;var zi=`MenuGroup`,Bi=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,U.jsx)(d.div,{role:`group`,...r,ref:t})});Bi.displayName=zi;var Vi=`MenuLabel`,Hi=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,U.jsx)(d.div,{...r,ref:t})});Hi.displayName=Vi;var Ui=`MenuItem`,Wi=`menu.itemSelect`,Gi=V.forwardRef((e,t)=>{let{disabled:n=!1,onSelect:r,...i}=e,a=V.useRef(null),o=wi(Ui,e.__scopeMenu),s=Ni(Ui,e.__scopeMenu),c=E(t,a),l=V.useRef(!1),u=()=>{let e=a.current;if(!n&&e){let t=new CustomEvent(Wi,{bubbles:!0,cancelable:!0});e.addEventListener(Wi,e=>r?.(e),{once:!0}),ne(e,t),t.defaultPrevented?l.current=!1:o.onClose()}};return(0,U.jsx)(Ki,{...i,ref:c,disabled:n,onClick:F(e.onClick,u),onPointerDown:t=>{e.onPointerDown?.(t),l.current=!0},onPointerUp:F(e.onPointerUp,e=>{l.current||e.currentTarget?.click()}),onKeyDown:F(e.onKeyDown,e=>{let t=s.searchRef.current!==``;n||t&&e.key===` `||si.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});Gi.displayName=Ui;var Ki=V.forwardRef((e,t)=>{let{__scopeMenu:n,disabled:r=!1,textValue:i,...a}=e,o=Ni(Ui,n),s=bi(n),c=V.useRef(null),l=E(t,c),[u,f]=V.useState(!1),[p,m]=V.useState(``);return V.useEffect(()=>{let e=c.current;e&&m((e.textContent??``).trim())},[a.children]),(0,U.jsx)(mi.ItemSlot,{scope:n,disabled:r,textValue:i??p,children:(0,U.jsx)(oi,{asChild:!0,...s,focusable:!r,children:(0,U.jsx)(d.div,{role:`menuitem`,"data-highlighted":u?``:void 0,"aria-disabled":r||void 0,"data-disabled":r?``:void 0,...a,ref:l,onPointerMove:F(e.onPointerMove,Ta(e=>{r?o.onItemLeave(e):(o.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:F(e.onPointerLeave,Ta(e=>o.onItemLeave(e))),onFocus:F(e.onFocus,()=>f(!0)),onBlur:F(e.onBlur,()=>f(!1))})})})}),qi=`MenuCheckboxItem`,Ji=V.forwardRef((e,t)=>{let{checked:n=!1,onCheckedChange:r,...i}=e;return(0,U.jsx)(na,{scope:e.__scopeMenu,checked:n,children:(0,U.jsx)(Gi,{role:`menuitemcheckbox`,"aria-checked":va(n)?`mixed`:n,...i,ref:t,"data-state":ya(n),onSelect:F(i.onSelect,()=>r?.(va(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Ji.displayName=qi;var Yi=`MenuRadioGroup`,[Xi,Zi]=_i(Yi,{value:void 0,onValueChange:()=>{}}),Qi=V.forwardRef((e,t)=>{let{value:n,onValueChange:r,...i}=e,a=j(r);return(0,U.jsx)(Xi,{scope:e.__scopeMenu,value:n,onValueChange:a,children:(0,U.jsx)(Bi,{...i,ref:t})})});Qi.displayName=Yi;var $i=`MenuRadioItem`,ea=V.forwardRef((e,t)=>{let{value:n,...r}=e,i=Zi($i,e.__scopeMenu),a=n===i.value;return(0,U.jsx)(na,{scope:e.__scopeMenu,checked:a,children:(0,U.jsx)(Gi,{role:`menuitemradio`,"aria-checked":a,...r,ref:t,"data-state":ya(a),onSelect:F(r.onSelect,()=>i.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});ea.displayName=$i;var ta=`MenuItemIndicator`,[na,ra]=_i(ta,{checked:!1}),ia=V.forwardRef((e,t)=>{let{__scopeMenu:n,forceMount:r,...i}=e,a=ra(ta,n);return(0,U.jsx)(C,{present:r||va(a.checked)||a.checked===!0,children:(0,U.jsx)(d.span,{...i,ref:t,"data-state":ya(a.checked)})})});ia.displayName=ta;var aa=`MenuSeparator`,oa=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,U.jsx)(d.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})});oa.displayName=aa;var sa=`MenuArrow`,ca=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=yi(n);return(0,U.jsx)(k,{...i,...r,ref:t})});ca.displayName=sa;var la=`MenuSub`,[ua,da]=_i(la),fa=e=>{let{__scopeMenu:t,children:n,open:r=!1,onOpenChange:i}=e,a=Si(la,t),o=yi(t),[s,c]=V.useState(null),[l,u]=V.useState(null),d=j(i);return V.useEffect(()=>(a.open===!1&&d(!1),()=>d(!1)),[a.open,d]),(0,U.jsx)(T,{...o,children:(0,U.jsx)(xi,{scope:t,open:r,onOpenChange:d,content:l,onContentChange:u,children:(0,U.jsx)(ua,{scope:t,contentId:w(),triggerId:w(),trigger:s,onTriggerChange:c,children:n})})})};fa.displayName=la;var pa=`MenuSubTrigger`,ma=V.forwardRef((e,t)=>{let n=Si(pa,e.__scopeMenu),r=wi(pa,e.__scopeMenu),i=da(pa,e.__scopeMenu),a=Ni(pa,e.__scopeMenu),o=V.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:c}=a,l={__scopeMenu:e.__scopeMenu},u=V.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=null},[]);return V.useEffect(()=>u,[u]),V.useEffect(()=>{let e=s.current;return()=>{window.clearTimeout(e),c(null)}},[s,c]),(0,U.jsx)(Di,{asChild:!0,...l,children:(0,U.jsx)(Ki,{id:i.triggerId,"aria-haspopup":`menu`,"aria-expanded":n.open,"aria-controls":i.contentId,"data-state":_a(n.open),...e,ref:m(t,i.onTriggerChange),onClick:t=>{e.onClick?.(t),!(e.disabled||t.defaultPrevented)&&(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:F(e.onPointerMove,Ta(t=>{a.onItemEnter(t),!t.defaultPrevented&&!e.disabled&&!n.open&&!o.current&&(a.onPointerGraceIntentChange(null),o.current=window.setTimeout(()=>{n.onOpenChange(!0),u()},100))})),onPointerLeave:F(e.onPointerLeave,Ta(e=>{u();let t=n.content?.getBoundingClientRect();if(t){let r=n.content?.dataset.side,i=r===`right`,o=i?-5:5,c=t[i?`left`:`right`],l=t[i?`right`:`left`];a.onPointerGraceIntentChange({area:[{x:e.clientX+o,y:e.clientY},{x:c,y:t.top},{x:l,y:t.top},{x:l,y:t.bottom},{x:c,y:t.bottom}],side:r}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(e),e.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:F(e.onKeyDown,t=>{let i=a.searchRef.current!==``;e.disabled||i&&t.key===` `||di[r.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())})})})});ma.displayName=pa;var ha=`MenuSubContent`,ga=V.forwardRef((e,t)=>{let n=W(ji,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Si(ji,e.__scopeMenu),o=wi(ji,e.__scopeMenu),s=da(ha,e.__scopeMenu),c=V.useRef(null),l=E(t,c);return(0,U.jsx)(mi.Provider,{scope:e.__scopeMenu,children:(0,U.jsx)(C,{present:r||a.open,children:(0,U.jsx)(mi.Slot,{scope:e.__scopeMenu,children:(0,U.jsx)(Ri,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:l,align:`start`,side:o.dir===`rtl`?`left`:`right`,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{o.isUsingKeyboardRef.current&&c.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:F(e.onFocusOutside,e=>{e.target!==s.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:F(e.onEscapeKeyDown,e=>{o.onClose(),e.preventDefault()}),onKeyDown:F(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=fi[o.dir].includes(e.key);t&&n&&(a.onOpenChange(!1),s.trigger?.focus(),e.preventDefault())})})})})})});ga.displayName=ha;function _a(e){return e?`open`:`closed`}function va(e){return e===`indeterminate`}function ya(e){return va(e)?`indeterminate`:e?`checked`:`unchecked`}function ba(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function xa(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Sa(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=xa(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function Ca(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function wa(e,t){return t?Ca({x:e.clientX,y:e.clientY},t):!1}function Ta(e){return t=>t.pointerType===`mouse`?e(t):void 0}var Ea=Ti,Da=Di,Oa=Ai,ka=Pi,Aa=Bi,ja=Hi,Ma=Gi,Na=Ji,Pa=Qi,Fa=ea,Ia=ia,La=oa,Ra=ca,za=fa,Ba=ma,Va=ga,Ha=`ContextMenu`,[Ua,Wa]=h(Ha,[vi]),Ga=vi(),[Ka,qa]=Ua(Ha),Ja=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:a=!0}=e,[o,s]=V.useState(!1),c=Ga(t),l=j(r),u=V.useCallback(e=>{s(e),l(e)},[l]);return(0,U.jsx)(Ka,{scope:t,open:o,onOpenChange:u,modal:a,children:(0,U.jsx)(Ea,{...c,dir:i,open:o,onOpenChange:u,modal:a,children:n})})};Ja.displayName=Ha;var Ya=`ContextMenuTrigger`,Xa=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,disabled:r=!1,...i}=e,a=qa(Ya,n),o=Ga(n),s=V.useRef({x:0,y:0}),c=V.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...s.current})}),l=V.useRef(0),u=V.useCallback(()=>window.clearTimeout(l.current),[]),f=e=>{s.current={x:e.clientX,y:e.clientY},a.onOpenChange(!0)};return V.useEffect(()=>u,[u]),V.useEffect(()=>void(r&&u()),[r,u]),(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Da,{...o,virtualRef:c}),(0,U.jsx)(d.span,{"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,...i,ref:t,style:{WebkitTouchCallout:`none`,...e.style},onContextMenu:r?e.onContextMenu:F(e.onContextMenu,e=>{u(),f(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:F(e.onPointerDown,To(e=>{u(),l.current=window.setTimeout(()=>f(e),700)})),onPointerMove:r?e.onPointerMove:F(e.onPointerMove,To(u)),onPointerCancel:r?e.onPointerCancel:F(e.onPointerCancel,To(u)),onPointerUp:r?e.onPointerUp:F(e.onPointerUp,To(u))})]})});Xa.displayName=Ya;var Za=`ContextMenuPortal`,Qa=e=>{let{__scopeContextMenu:t,...n}=e,r=Ga(t);return(0,U.jsx)(Oa,{...r,...n})};Qa.displayName=Za;var $a=`ContextMenuContent`,eo=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=qa($a,n),a=Ga(n),o=V.useRef(!1);return(0,U.jsx)(ka,{...a,...r,ref:t,side:`right`,sideOffset:2,align:`start`,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),!t.defaultPrevented&&o.current&&t.preventDefault(),o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),!t.defaultPrevented&&!i.modal&&(o.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-context-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-context-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-context-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-context-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});eo.displayName=$a;var to=`ContextMenuGroup`,no=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Aa,{...i,...r,ref:t})});no.displayName=to;var ro=`ContextMenuLabel`,io=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(ja,{...i,...r,ref:t})});io.displayName=ro;var ao=`ContextMenuItem`,oo=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Ma,{...i,...r,ref:t})});oo.displayName=ao;var so=`ContextMenuCheckboxItem`,G=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Na,{...i,...r,ref:t})});G.displayName=so;var co=`ContextMenuRadioGroup`,lo=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Pa,{...i,...r,ref:t})});lo.displayName=co;var uo=`ContextMenuRadioItem`,fo=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Fa,{...i,...r,ref:t})});fo.displayName=uo;var po=`ContextMenuItemIndicator`,mo=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Ia,{...i,...r,ref:t})});mo.displayName=po;var ho=`ContextMenuSeparator`,go=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(La,{...i,...r,ref:t})});go.displayName=ho;var _o=`ContextMenuArrow`,vo=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Ra,{...i,...r,ref:t})});vo.displayName=_o;var yo=`ContextMenuSub`,bo=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,defaultOpen:a}=e,o=Ga(t),[s,c]=_({prop:i,defaultProp:a??!1,onChange:r,caller:yo});return(0,U.jsx)(za,{...o,open:s,onOpenChange:c,children:n})};bo.displayName=yo;var xo=`ContextMenuSubTrigger`,So=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Ba,{...i,...r,ref:t})});So.displayName=xo;var Co=`ContextMenuSubContent`,wo=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Va,{...i,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-context-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-context-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-context-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-context-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});wo.displayName=Co;function To(e){return t=>t.pointerType===`mouse`?void 0:e(t)}var Eo=Ja,Do=Xa,Oo=Qa,ko=eo,Ao=oo,jo=go,Mo=`DropdownMenu`,[No,Po]=h(Mo,[vi]),Fo=vi(),[Io,Lo]=No(Mo),Ro=e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:s=!0}=e,c=Fo(t),l=V.useRef(null),[u,d]=_({prop:i,defaultProp:a??!1,onChange:o,caller:Mo});return(0,U.jsx)(Io,{scope:t,triggerId:w(),triggerRef:l,contentId:w(),open:u,onOpenChange:d,onOpenToggle:V.useCallback(()=>d(e=>!e),[d]),modal:s,children:(0,U.jsx)(Ea,{...c,open:u,onOpenChange:d,dir:r,modal:s,children:n})})};Ro.displayName=Mo;var zo=`DropdownMenuTrigger`,Bo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,a=Lo(zo,n),o=Fo(n);return(0,U.jsx)(Da,{asChild:!0,...o,children:(0,U.jsx)(d.button,{type:`button`,id:a.triggerId,"aria-haspopup":`menu`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...i,ref:m(t,a.triggerRef),onPointerDown:F(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:F(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&a.onOpenToggle(),e.key===`ArrowDown`&&a.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})});Bo.displayName=zo;var Vo=`DropdownMenuPortal`,Ho=e=>{let{__scopeDropdownMenu:t,...n}=e,r=Fo(t);return(0,U.jsx)(Oa,{...r,...n})};Ho.displayName=Vo;var Uo=`DropdownMenuContent`,Wo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Lo(Uo,n),a=Fo(n),o=V.useRef(!1);return(0,U.jsx)(ka,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:F(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:F(e.onInteractOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;(!i.modal||r)&&(o.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});Wo.displayName=Uo;var Go=`DropdownMenuGroup`,Ko=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Aa,{...i,...r,ref:t})});Ko.displayName=Go;var qo=`DropdownMenuLabel`,Jo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(ja,{...i,...r,ref:t})});Jo.displayName=qo;var Yo=`DropdownMenuItem`,Xo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Ma,{...i,...r,ref:t})});Xo.displayName=Yo;var Zo=`DropdownMenuCheckboxItem`,Qo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Na,{...i,...r,ref:t})});Qo.displayName=Zo;var $o=`DropdownMenuRadioGroup`,es=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Pa,{...i,...r,ref:t})});es.displayName=$o;var ts=`DropdownMenuRadioItem`,ns=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Fa,{...i,...r,ref:t})});ns.displayName=ts;var rs=`DropdownMenuItemIndicator`,is=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Ia,{...i,...r,ref:t})});is.displayName=rs;var as=`DropdownMenuSeparator`,os=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(La,{...i,...r,ref:t})});os.displayName=as;var ss=`DropdownMenuArrow`,cs=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Ra,{...i,...r,ref:t})});cs.displayName=ss;var ls=e=>{let{__scopeDropdownMenu:t,children:n,open:r,onOpenChange:i,defaultOpen:a}=e,o=Fo(t),[s,c]=_({prop:r,defaultProp:a??!1,onChange:i,caller:`DropdownMenuSub`});return(0,U.jsx)(za,{...o,open:s,onOpenChange:c,children:n})},us=`DropdownMenuSubTrigger`,ds=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Ba,{...i,...r,ref:t})});ds.displayName=us;var fs=`DropdownMenuSubContent`,ps=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Va,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});ps.displayName=fs;var ms=Ro,hs=Bo,gs=Ho,_s=Wo,vs=Xo,ys=ls,bs=ds,xs=ps,Ss=`Label`,Cs=V.forwardRef((e,t)=>(0,U.jsx)(d.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));Cs.displayName=Ss;var ws=Cs;function Ts(e,[t,n]){return Math.min(n,Math.max(t,e))}function Es(e,t){return V.useReducer((e,n)=>t[e][n]??e,e)}var Ds=`ScrollArea`,[Os,ks]=h(Ds),[As,js]=Os(Ds),Ms=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:a=600,...o}=e,[s,c]=V.useState(null),[l,u]=V.useState(null),[f,p]=V.useState(null),[m,h]=V.useState(null),[g,_]=V.useState(null),[v,y]=V.useState(0),[b,x]=V.useState(0),[S,C]=V.useState(!1),[w,T]=V.useState(!1),D=E(t,e=>c(e)),k=O(i);return(0,U.jsx)(As,{scope:n,type:r,dir:k,scrollHideDelay:a,scrollArea:s,viewport:l,onViewportChange:u,content:f,onContentChange:p,scrollbarX:m,onScrollbarXChange:h,scrollbarXEnabled:S,onScrollbarXEnabledChange:C,scrollbarY:g,onScrollbarYChange:_,scrollbarYEnabled:w,onScrollbarYEnabledChange:T,onCornerWidthChange:y,onCornerHeightChange:x,children:(0,U.jsx)(d.div,{dir:k,...o,ref:D,style:{position:`relative`,"--radix-scroll-area-corner-width":v+`px`,"--radix-scroll-area-corner-height":b+`px`,...e.style}})})});Ms.displayName=Ds;var Ns=`ScrollAreaViewport`,Ps=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:i,...a}=e,o=js(Ns,n),s=E(t,V.useRef(null),o.onViewportChange);return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:i}),(0,U.jsx)(d.div,{"data-radix-scroll-area-viewport":``,...a,ref:s,style:{overflowX:o.scrollbarXEnabled?`scroll`:`hidden`,overflowY:o.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,U.jsx)(`div`,{ref:o.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});Ps.displayName=Ns;var Fs=`ScrollAreaScrollbar`,Is=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=js(Fs,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return V.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,U.jsx)(Ls,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,U.jsx)(Rs,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,U.jsx)(zs,{...r,ref:t,forceMount:n}):i.type===`always`?(0,U.jsx)(Bs,{...r,ref:t}):null});Is.displayName=Fs;var Ls=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=js(Fs,e.__scopeScrollArea),[a,o]=V.useState(!1);return V.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,U.jsx)(C,{present:n||a,children:(0,U.jsx)(zs,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),Rs=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=js(Fs,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=oc(()=>c(`SCROLL_END`),100),[s,c]=Es(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return V.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),V.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(c(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,c,o]),(0,U.jsx)(C,{present:n||s!==`hidden`,children:(0,U.jsx)(Bs,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:F(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:F(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})}),zs=V.forwardRef((e,t)=>{let n=js(Fs,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=V.useState(!1),s=e.orientation===`horizontal`,c=oc(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return sc(n.viewport,c),sc(n.content,c),(0,U.jsx)(C,{present:r||a,children:(0,U.jsx)(Bs,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),Bs=V.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=js(Fs,e.__scopeScrollArea),a=V.useRef(null),o=V.useRef(0),[s,c]=V.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=$s(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function d(e,t){return tc(e,o.current,s,t)}return n===`horizontal`?(0,U.jsx)(Vs,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=nc(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,U.jsx)(Hs,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=nc(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null}),Vs=V.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=js(Fs,e.__scopeScrollArea),[o,s]=V.useState(),c=V.useRef(null),l=E(t,c,a.onScrollbarXChange);return V.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,U.jsx)(Gs,{"data-orientation":`horizontal`,...i,ref:l,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":ec(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),ic(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:Qs(o.paddingLeft),paddingEnd:Qs(o.paddingRight)}})}})}),Hs=V.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=js(Fs,e.__scopeScrollArea),[o,s]=V.useState(),c=V.useRef(null),l=E(t,c,a.onScrollbarYChange);return V.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,U.jsx)(Gs,{"data-orientation":`vertical`,...i,ref:l,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":ec(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),ic(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:Qs(o.paddingTop),paddingEnd:Qs(o.paddingBottom)}})}})}),[Us,Ws]=Os(Fs),Gs=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:a,onThumbPointerUp:o,onThumbPointerDown:s,onThumbPositionChange:c,onDragScroll:l,onWheelScroll:u,onResize:f,...p}=e,m=js(Fs,n),[h,g]=V.useState(null),_=E(t,e=>g(e)),v=V.useRef(null),y=V.useRef(``),b=m.viewport,x=r.content-r.viewport,S=j(u),C=j(c),w=oc(f,10);function T(e){v.current&&l({x:e.clientX-v.current.left,y:e.clientY-v.current.top})}return V.useEffect(()=>{let e=e=>{let t=e.target;h?.contains(t)&&S(e,x)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[b,h,x,S]),V.useEffect(C,[r,C]),sc(h,w),sc(m.content,w),(0,U.jsx)(Us,{scope:n,scrollbar:h,hasThumb:i,onThumbChange:j(a),onThumbPointerUp:j(o),onThumbPositionChange:C,onThumbPointerDown:j(s),children:(0,U.jsx)(d.div,{...p,ref:_,style:{position:`absolute`,...p.style},onPointerDown:F(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),v.current=h.getBoundingClientRect(),y.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,m.viewport&&(m.viewport.style.scrollBehavior=`auto`),T(e))}),onPointerMove:F(e.onPointerMove,T),onPointerUp:F(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=y.current,m.viewport&&(m.viewport.style.scrollBehavior=``),v.current=null})})})}),Ks=`ScrollAreaThumb`,qs=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Ws(Ks,e.__scopeScrollArea);return(0,U.jsx)(C,{present:n||i.hasThumb,children:(0,U.jsx)(Js,{ref:t,...r})})}),Js=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...i}=e,a=js(Ks,n),o=Ws(Ks,n),{onThumbPositionChange:s}=o,c=E(t,e=>o.onThumbChange(e)),l=V.useRef(void 0),u=oc(()=>{l.current&&=(l.current(),void 0)},100);return V.useEffect(()=>{let e=a.viewport;if(e){let t=()=>{u(),l.current||(l.current=ac(e,s),s())};return s(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[a.viewport,u,s]),(0,U.jsx)(d.div,{"data-state":o.hasThumb?`visible`:`hidden`,...i,ref:c,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:F(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;o.onThumbPointerDown({x:n,y:r})}),onPointerUp:F(e.onPointerUp,o.onThumbPointerUp)})});qs.displayName=Ks;var Ys=`ScrollAreaCorner`,Xs=V.forwardRef((e,t)=>{let n=js(Ys,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,U.jsx)(Zs,{...e,ref:t}):null});Xs.displayName=Ys;var Zs=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=js(Ys,n),[a,o]=V.useState(0),[s,c]=V.useState(0),l=!!(a&&s);return sc(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),sc(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,U.jsx)(d.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function Qs(e){return e?parseInt(e,10):0}function $s(e,t){let n=e/t;return isNaN(n)?0:n}function ec(e){let t=$s(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function tc(e,t,n,r=`ltr`){let i=ec(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return rc([c,l],d)(e)}function nc(e,t,n=`ltr`){let r=ec(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=Ts(e,n===`ltr`?[0,o]:[o*-1,0]);return rc([0,o],[0,s])(c)}function rc(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function ic(e,t){return e>0&&e<t}var ac=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function oc(e,t){let n=j(e),r=V.useRef(0);return V.useEffect(()=>()=>window.clearTimeout(r.current),[]),V.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function sc(e,t){let n=j(t);P(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var cc=Ms,lc=Ps,uc=Xs,dc=[` `,`Enter`,`ArrowUp`,`ArrowDown`],fc=[` `,`Enter`],pc=`Select`,[mc,hc,gc]=y(pc),[_c,vc]=h(pc,[gc,v]),yc=v(),[bc,xc]=_c(pc),[Sc,Cc]=_c(pc),wc=e=>{let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m}=e,h=yc(t),[g,v]=V.useState(null),[y,b]=V.useState(null),[x,S]=V.useState(!1),C=O(l),[E,D]=_({prop:r,defaultProp:i??!1,onChange:a,caller:pc}),[k,A]=_({prop:o,defaultProp:s,onChange:c,caller:pc}),j=V.useRef(null),ee=g?m||!!g.closest(`form`):!0,[te,M]=V.useState(new Set),N=Array.from(te).map(e=>e.props.value).join(`;`);return(0,U.jsx)(T,{...h,children:(0,U.jsxs)(bc,{required:p,scope:t,trigger:g,onTriggerChange:v,valueNode:y,onValueNodeChange:b,valueNodeHasChildren:x,onValueNodeHasChildrenChange:S,contentId:w(),value:k,onValueChange:A,open:E,onOpenChange:D,dir:C,triggerPointerDownPosRef:j,disabled:f,children:[(0,U.jsx)(mc.Provider,{scope:t,children:(0,U.jsx)(Sc,{scope:e.__scopeSelect,onNativeOptionAdd:V.useCallback(e=>{M(t=>new Set(t).add(e))},[]),onNativeOptionRemove:V.useCallback(e=>{M(t=>{let n=new Set(t);return n.delete(e),n})},[]),children:n})}),ee?(0,U.jsxs)(yl,{"aria-hidden":!0,required:p,tabIndex:-1,name:u,autoComplete:d,value:k,onChange:e=>A(e.target.value),disabled:f,form:m,children:[k===void 0?(0,U.jsx)(`option`,{value:``}):null,Array.from(te)]},N):null]})})};wc.displayName=pc;var Tc=`SelectTrigger`,Ec=V.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...i}=e,a=yc(n),o=xc(Tc,n),s=o.disabled||r,c=E(t,o.onTriggerChange),l=hc(n),u=V.useRef(`touch`),[f,p,m]=xl(e=>{let t=l().filter(e=>!e.disabled),n=Sl(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),h=e=>{s||(o.onOpenChange(!0),m()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,U.jsx)(M,{asChild:!0,...a,children:(0,U.jsx)(d.button,{type:`button`,role:`combobox`,"aria-controls":o.contentId,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":bl(o.value)?``:void 0,...i,ref:c,onClick:F(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&h(e)}),onPointerDown:F(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(h(e),e.preventDefault())}),onKeyDown:F(i.onKeyDown,e=>{let t=f.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&p(e.key),!(t&&e.key===` `)&&dc.includes(e.key)&&(h(),e.preventDefault())})})})});Ec.displayName=Tc;var Dc=`SelectValue`,Oc=V.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=xc(Dc,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,f=E(t,c.onValueNodeChange);return P(()=>{l(u)},[l,u]),(0,U.jsx)(d.span,{...s,ref:f,style:{pointerEvents:`none`},children:bl(c.value)?(0,U.jsx)(U.Fragment,{children:o}):a})});Oc.displayName=Dc;var kc=`SelectIcon`,Ac=V.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...i}=e;return(0,U.jsx)(d.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})});Ac.displayName=kc;var jc=`SelectPortal`,Mc=e=>(0,U.jsx)(N,{asChild:!0,...e});Mc.displayName=jc;var Nc=`SelectContent`,Pc=V.forwardRef((e,t)=>{let n=xc(Nc,e.__scopeSelect),[r,i]=V.useState();if(P(()=>{i(new DocumentFragment)},[]),!n.open){let t=r;return t?cn.createPortal((0,U.jsx)(Ic,{scope:e.__scopeSelect,children:(0,U.jsx)(mc.Slot,{scope:e.__scopeSelect,children:(0,U.jsx)(`div`,{children:e.children})})}),t):null}return(0,U.jsx)(Bc,{...e,ref:t})});Pc.displayName=Nc;var Fc=10,[Ic,Lc]=_c(Nc),Rc=`SelectContentImpl`,zc=p(`SelectContent.RemoveScroll`),Bc=V.forwardRef((e,t)=>{let{__scopeSelect:n,position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g,..._}=e,v=xc(Nc,n),[y,C]=V.useState(null),[w,T]=V.useState(null),O=E(t,e=>C(e)),[k,A]=V.useState(null),[j,ee]=V.useState(null),M=hc(n),[N,P]=V.useState(!1),ne=V.useRef(!1);V.useEffect(()=>{if(y)return te(y)},[y]),D();let re=V.useCallback(e=>{let[t,...n]=M().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&w&&(w.scrollTop=0),n===r&&w&&(w.scrollTop=w.scrollHeight),n?.focus(),document.activeElement!==i))return},[M,w]),ie=V.useCallback(()=>re([k,y]),[re,k,y]);V.useEffect(()=>{N&&ie()},[N,ie]);let{onOpenChange:I,triggerPointerDownPosRef:L}=v;V.useEffect(()=>{if(y){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(L.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(L.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():y.contains(n.target)||I(!1),document.removeEventListener(`pointermove`,t),L.current=null};return L.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[y,I,L]),V.useEffect(()=>{let e=()=>I(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[I]);let[ae,oe]=xl(e=>{let t=M().filter(e=>!e.disabled),n=Sl(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current.focus())}),R=V.useCallback((e,t,n)=>{let r=!ne.current&&!n;(v.value!==void 0&&v.value===t||r)&&(A(e),r&&(ne.current=!0))},[v.value]),se=V.useCallback(()=>y?.focus(),[y]),z=V.useCallback((e,t,n)=>{let r=!ne.current&&!n;(v.value!==void 0&&v.value===t||r)&&ee(e)},[v.value]),ce=r===`popper`?Wc:Hc,le=ce===Wc?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g}:{};return(0,U.jsx)(Ic,{scope:n,content:y,viewport:w,onViewportChange:T,itemRefCallback:R,selectedItem:k,onItemLeave:se,itemTextRefCallback:z,focusSelectedItem:ie,selectedItemText:j,position:r,isPositioned:N,searchRef:ae,children:(0,U.jsx)(b,{as:zc,allowPinchZoom:!0,children:(0,U.jsx)(x,{asChild:!0,trapped:v.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:F(i,e=>{v.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,U.jsx)(S,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>v.onOpenChange(!1),children:(0,U.jsx)(ce,{role:`listbox`,id:v.contentId,"data-state":v.open?`open`:`closed`,dir:v.dir,onContextMenu:e=>e.preventDefault(),..._,...le,onPlaced:()=>P(!0),ref:O,style:{display:`flex`,flexDirection:`column`,outline:`none`,..._.style},onKeyDown:F(_.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&oe(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=M().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>re(t)),e.preventDefault()}})})})})})})});Bc.displayName=Rc;var Vc=`SelectItemAlignedPosition`,Hc=V.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...i}=e,a=xc(Nc,n),o=Lc(Nc,n),[s,c]=V.useState(null),[l,u]=V.useState(null),f=E(t,e=>u(e)),p=hc(n),m=V.useRef(!1),h=V.useRef(!0),{viewport:g,selectedItem:_,selectedItemText:v,focusSelectedItem:y}=o,b=V.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&g&&_&&v){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=v.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Fc,d=Ts(a,[Fc,Math.max(Fc,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Fc,d=Ts(a,[Fc,Math.max(Fc,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=p(),c=window.innerHeight-Fc*2,u=g.scrollHeight,d=window.getComputedStyle(l),f=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=f+h+u+b+y,S=Math.min(_.offsetHeight*5,x),C=window.getComputedStyle(g),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-Fc,D=c-E,O=_.offsetHeight/2,k=_.offsetTop+O,A=f+h+k,j=x-A;if(A<=E){let e=o.length>0&&_===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-g.offsetTop-g.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+y);s.style.height=n+`px`}else{let e=o.length>0&&_===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,f+g.offsetTop+(e?w:0)+O)+j;s.style.height=t+`px`,g.scrollTop=A-E+g.offsetTop}s.style.margin=`${Fc}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>m.current=!0)}},[p,a.trigger,a.valueNode,s,l,g,_,v,a.dir,r]);P(()=>b(),[b]);let[x,S]=V.useState();return P(()=>{l&&S(window.getComputedStyle(l).zIndex)},[l]),(0,U.jsx)(Gc,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:m,onScrollButtonChange:V.useCallback(e=>{e&&h.current===!0&&(b(),y?.(),h.current=!1)},[b,y]),children:(0,U.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:x},children:(0,U.jsx)(d.div,{...i,ref:f,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})});Hc.displayName=Vc;var Uc=`SelectPopperPosition`,Wc=V.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=Fc,...a}=e,o=yc(n);return(0,U.jsx)(ee,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})});Wc.displayName=Uc;var[Gc,Kc]=_c(Nc,{}),qc=`SelectViewport`,Jc=V.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...i}=e,a=Lc(qc,n),o=Kc(qc,n),s=E(t,a.onViewportChange),c=V.useRef(0);return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,U.jsx)(mc.Slot,{scope:n,children:(0,U.jsx)(d.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:F(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-Fc*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})});Jc.displayName=qc;var Yc=`SelectGroup`,[Xc,Zc]=_c(Yc),Qc=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=w();return(0,U.jsx)(Xc,{scope:n,id:i,children:(0,U.jsx)(d.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})});Qc.displayName=Yc;var $c=`SelectLabel`,el=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=Zc($c,n);return(0,U.jsx)(d.div,{id:i.id,...r,ref:t})});el.displayName=$c;var tl=`SelectItem`,[nl,rl]=_c(tl),il=V.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=xc(tl,n),c=Lc(tl,n),l=s.value===r,[u,f]=V.useState(a??``),[p,m]=V.useState(!1),h=E(t,e=>c.itemRefCallback?.(e,r,i)),g=w(),_=V.useRef(`touch`),v=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r===``)throw Error(`A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return(0,U.jsx)(nl,{scope:n,value:r,disabled:i,textId:g,isSelected:l,onItemTextChange:V.useCallback(e=>{f(t=>t||(e?.textContent??``).trim())},[]),children:(0,U.jsx)(mc.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,U.jsx)(d.div,{role:`option`,"aria-labelledby":g,"data-highlighted":p?``:void 0,"aria-selected":l&&p,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:h,onFocus:F(o.onFocus,()=>m(!0)),onBlur:F(o.onBlur,()=>m(!1)),onClick:F(o.onClick,()=>{_.current!==`mouse`&&v()}),onPointerUp:F(o.onPointerUp,()=>{_.current===`mouse`&&v()}),onPointerDown:F(o.onPointerDown,e=>{_.current=e.pointerType}),onPointerMove:F(o.onPointerMove,e=>{_.current=e.pointerType,i?c.onItemLeave?.():_.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:F(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:F(o.onKeyDown,e=>{c.searchRef?.current!==``&&e.key===` `||(fc.includes(e.key)&&v(),e.key===` `&&e.preventDefault())})})})})});il.displayName=tl;var al=`SelectItemText`,ol=V.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,...a}=e,o=xc(al,n),s=Lc(al,n),c=rl(al,n),l=Cc(al,n),[u,f]=V.useState(null),p=E(t,e=>f(e),c.onItemTextChange,e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),m=u?.textContent,h=V.useMemo(()=>(0,U.jsx)(`option`,{value:c.value,disabled:c.disabled,children:m},c.value),[c.disabled,c.value,m]),{onNativeOptionAdd:g,onNativeOptionRemove:_}=l;return P(()=>(g(h),()=>_(h)),[g,_,h]),(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(d.span,{id:c.textId,...a,ref:p}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren?cn.createPortal(a.children,o.valueNode):null]})});ol.displayName=al;var sl=`SelectItemIndicator`,cl=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return rl(sl,n).isSelected?(0,U.jsx)(d.span,{"aria-hidden":!0,...r,ref:t}):null});cl.displayName=sl;var ll=`SelectScrollUpButton`,ul=V.forwardRef((e,t)=>{let n=Lc(ll,e.__scopeSelect),r=Kc(ll,e.__scopeSelect),[i,a]=V.useState(!1),o=E(t,r.onScrollButtonChange);return P(()=>{if(n.viewport&&n.isPositioned){let e=function(){a(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,U.jsx)(pl,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});ul.displayName=ll;var dl=`SelectScrollDownButton`,fl=V.forwardRef((e,t)=>{let n=Lc(dl,e.__scopeSelect),r=Kc(dl,e.__scopeSelect),[i,a]=V.useState(!1),o=E(t,r.onScrollButtonChange);return P(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,U.jsx)(pl,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});fl.displayName=dl;var pl=V.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=Lc(`SelectScrollButton`,n),o=V.useRef(null),s=hc(n),c=V.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return V.useEffect(()=>()=>c(),[c]),P(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,U.jsx)(d.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:F(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:F(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:F(i.onPointerLeave,()=>{c()})})}),ml=`SelectSeparator`,hl=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,U.jsx)(d.div,{"aria-hidden":!0,...r,ref:t})});hl.displayName=ml;var gl=`SelectArrow`,_l=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=yc(n),a=xc(gl,n),o=Lc(gl,n);return a.open&&o.position===`popper`?(0,U.jsx)(k,{...i,...r,ref:t}):null});_l.displayName=gl;var vl=`SelectBubbleInput`,yl=V.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{let i=V.useRef(null),a=E(r,i),o=zr(t);return V.useEffect(()=>{let e=i.current;if(!e)return;let n=window.HTMLSelectElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(o!==t&&r){let n=new Event(`change`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[o,t]),(0,U.jsx)(d.select,{...n,style:{...qn,...n.style},ref:a,defaultValue:t})});yl.displayName=vl;function bl(e){return e===``||e===void 0}function xl(e){let t=j(e),n=V.useRef(``),r=V.useRef(0),i=V.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=V.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return V.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function Sl(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Cl(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function Cl(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var wl=wc,Tl=Ec,El=Oc,Dl=Ac,Ol=Mc,kl=Pc,Al=Jc,jl=il,Ml=ol,Nl=cl,Pl=ul,Fl=fl,Il=`Separator`,Ll=`horizontal`,Rl=[`horizontal`,`vertical`],K=V.forwardRef((e,t)=>{let{decorative:n,orientation:r=Ll,...i}=e,a=zl(r)?r:Ll,o=a===`vertical`?a:void 0,s=n?{role:`none`}:{"aria-orientation":o,role:`separator`};return(0,U.jsx)(d.div,{"data-orientation":a,...s,...i,ref:t})});K.displayName=Il;function zl(e){return Rl.includes(e)}var q=K,J=`Switch`,[Y,Bl]=h(J),[Vl,Hl]=Y(J),Ul=V.forwardRef((e,t)=>{let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c=`on`,onCheckedChange:l,form:u,...f}=e,[p,m]=V.useState(null),h=E(t,e=>m(e)),g=V.useRef(!1),v=p?u||!!p.closest(`form`):!0,[y,b]=_({prop:i,defaultProp:a??!1,onChange:l,caller:J});return(0,U.jsxs)(Vl,{scope:n,checked:y,disabled:s,children:[(0,U.jsx)(d.button,{type:`button`,role:`switch`,"aria-checked":y,"aria-required":o,"data-state":Jl(y),"data-disabled":s?``:void 0,disabled:s,value:c,...f,ref:h,onClick:F(e.onClick,e=>{b(e=>!e),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())})}),v&&(0,U.jsx)(ql,{control:p,bubbles:!g.current,name:r,value:c,checked:y,required:o,disabled:s,form:u,style:{transform:`translateX(-100%)`}})]})});Ul.displayName=J;var Wl=`SwitchThumb`,Gl=V.forwardRef((e,t)=>{let{__scopeSwitch:n,...r}=e,i=Hl(Wl,n);return(0,U.jsx)(d.span,{"data-state":Jl(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})});Gl.displayName=Wl;var Kl=`SwitchBubbleInput`,ql=V.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},a)=>{let o=V.useRef(null),s=E(o,a),c=zr(n),l=A(t);return V.useEffect(()=>{let e=o.current;if(!e)return;let t=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(t,`checked`).set;if(c!==n&&i){let t=new Event(`click`,{bubbles:r});i.call(e,n),e.dispatchEvent(t)}},[c,n,r]),(0,U.jsx)(`input`,{type:`checkbox`,"aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...l,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});ql.displayName=Kl;function Jl(e){return e?`checked`:`unchecked`}var Yl=Ul,Xl=Gl,[Zl,Ql]=h(`Tooltip`,[v]),$l=v(),eu=`TooltipProvider`,tu=700,nu=`tooltip.open`,[ru,iu]=Zl(eu),au=e=>{let{__scopeTooltip:t,delayDuration:n=tu,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=V.useRef(!0),s=V.useRef(!1),c=V.useRef(0);return V.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,U.jsx)(ru,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:V.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:V.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:V.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};au.displayName=eu;var ou=`Tooltip`,[su,cu]=Zl(ou),lu=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=iu(ou,e.__scopeTooltip),l=$l(t),[u,d]=V.useState(null),f=w(),p=V.useRef(0),m=o??c.disableHoverableContent,h=s??c.delayDuration,g=V.useRef(!1),[v,y]=_({prop:r,defaultProp:i??!1,onChange:e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(nu))):c.onClose(),a?.(e)},caller:ou}),b=V.useMemo(()=>v?g.current?`delayed-open`:`instant-open`:`closed`,[v]),x=V.useCallback(()=>{window.clearTimeout(p.current),p.current=0,g.current=!1,y(!0)},[y]),S=V.useCallback(()=>{window.clearTimeout(p.current),p.current=0,y(!1)},[y]),C=V.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>{g.current=!0,y(!0),p.current=0},h)},[h,y]);return V.useEffect(()=>()=>{p.current&&=(window.clearTimeout(p.current),0)},[]),(0,U.jsx)(T,{...l,children:(0,U.jsx)(su,{scope:t,contentId:f,open:v,stateAttribute:b,trigger:u,onTriggerChange:d,onTriggerEnter:V.useCallback(()=>{c.isOpenDelayedRef.current?C():x()},[c.isOpenDelayedRef,C,x]),onTriggerLeave:V.useCallback(()=>{m?S():(window.clearTimeout(p.current),p.current=0)},[S,m]),onOpen:x,onClose:S,disableHoverableContent:m,children:n})})};lu.displayName=ou;var uu=`TooltipTrigger`,du=V.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=cu(uu,n),a=iu(uu,n),o=$l(n),s=E(t,V.useRef(null),i.onTriggerChange),c=V.useRef(!1),l=V.useRef(!1),u=V.useCallback(()=>c.current=!1,[]);return V.useEffect(()=>()=>document.removeEventListener(`pointerup`,u),[u]),(0,U.jsx)(M,{asChild:!0,...o,children:(0,U.jsx)(d.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:s,onPointerMove:F(e.onPointerMove,e=>{e.pointerType!==`touch`&&!l.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),l.current=!0)}),onPointerLeave:F(e.onPointerLeave,()=>{i.onTriggerLeave(),l.current=!1}),onPointerDown:F(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener(`pointerup`,u,{once:!0})}),onFocus:F(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:F(e.onBlur,i.onClose),onClick:F(e.onClick,i.onClose)})})});du.displayName=uu;var fu=`TooltipPortal`,[pu,mu]=Zl(fu,{forceMount:void 0}),hu=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=cu(fu,t);return(0,U.jsx)(pu,{scope:t,forceMount:n,children:(0,U.jsx)(C,{present:n||a.open,children:(0,U.jsx)(N,{asChild:!0,container:i,children:r})})})};hu.displayName=fu;var gu=`TooltipContent`,_u=V.forwardRef((e,t)=>{let n=mu(gu,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=cu(gu,e.__scopeTooltip);return(0,U.jsx)(C,{present:r||o.open,children:o.disableHoverableContent?(0,U.jsx)(Su,{side:i,...a,ref:t}):(0,U.jsx)(vu,{side:i,...a,ref:t})})}),vu=V.forwardRef((e,t)=>{let n=cu(gu,e.__scopeTooltip),r=iu(gu,e.__scopeTooltip),i=V.useRef(null),a=E(t,i),[o,s]=V.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=V.useCallback(()=>{s(null),d(!1)},[d]),p=V.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=Eu(r,Tu(r,n.getBoundingClientRect())),a=Du(t.getBoundingClientRect());s(ku([...i,...a])),d(!0)},[d]);return V.useEffect(()=>()=>f(),[f]),V.useEffect(()=>{if(c&&u){let e=e=>p(e,u),t=e=>p(e,c);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),V.useEffect(()=>{if(o){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!Ou(n,o);r?f():i&&(f(),l())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,U.jsx)(Su,{...e,ref:a})}),[yu,bu]=Zl(ou,{isInside:!1}),xu=f(`TooltipContent`),Su=V.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=cu(gu,n),l=$l(n),{onClose:u}=c;return V.useEffect(()=>(document.addEventListener(nu,u),()=>document.removeEventListener(nu,u)),[u]),V.useEffect(()=>{if(c.trigger){let e=e=>{e.target?.contains(c.trigger)&&u()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[c.trigger,u]),(0,U.jsx)(S,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:(0,U.jsxs)(ee,{"data-state":c.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,U.jsx)(xu,{children:r}),(0,U.jsx)(yu,{scope:n,isInside:!0,children:(0,U.jsx)(Xn,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});_u.displayName=gu;var Cu=`TooltipArrow`,wu=V.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=$l(n);return bu(Cu,n).isInside?null:(0,U.jsx)(k,{...i,...r,ref:t})});wu.displayName=Cu;function Tu(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function Eu(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function Du(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function Ou(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function ku(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0),Au(t)}function Au(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var ju=au,Mu=lu,Nu=du,Pu=hu,Fu=_u,Iu=wu;function Lu({delayDuration:e=0,...t}){return(0,U.jsx)(ju,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function Ru({...e}){return(0,U.jsx)(Mu,{"data-slot":`tooltip`,...e})}function zu({...e}){return(0,U.jsx)(Nu,{"data-slot":`tooltip-trigger`,...e})}function Bu({className:e,sideOffset:t=0,children:n,...r}){return(0,U.jsx)(Pu,{children:(0,U.jsxs)(Fu,{"data-slot":`tooltip-content`,sideOffset:t,className:I(`z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-3 py-1.5 text-xs text-balance text-background fade-in-0 zoom-in-95 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`,e),...r,children:[n,(0,U.jsx)(Iu,{className:`z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground`})]})})}function Vu(e,t){let n=getComputedStyle(e);return t*parseFloat(n.fontSize)}function Hu(e,t){let n=getComputedStyle(e.ownerDocument.body);return t*parseFloat(n.fontSize)}function Uu(e){return e/100*window.innerHeight}function Wu(e){return e/100*window.innerWidth}function Gu(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 X({groupSize:e,panelElement:t,styleProp:n}){let r,[i,a]=Gu(n);switch(a){case`%`:r=i/100*e;break;case`px`:r=i;break;case`rem`:r=Hu(t,i);break;case`em`:r=Vu(t,i);break;case`vh`:r=Uu(i);break;case`vw`:r=Wu(i);break}return r}function Ku(e){return parseFloat(e.toFixed(3))}function qu({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 Ju(e){let{panels:t}=e,n=qu({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=Ku(X({groupSize:n,panelElement:t,styleProp:r.collapsedSize})/n*100));let a;r.defaultSize!==void 0&&(a=Ku(X({groupSize:n,panelElement:t,styleProp:r.defaultSize})/n*100));let o=0;r.minSize!==void 0&&(o=Ku(X({groupSize:n,panelElement:t,styleProp:r.minSize})/n*100));let s=100;return r.maxSize!==void 0&&(s=Ku(X({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 Yu(e,t=`Assertion error`){if(!e)throw Error(t)}function Xu(e,t){return Array.from(t).sort(e===`horizontal`?Zu:Qu)}function Zu(e,t){let n=e.element.offsetLeft-t.element.offsetLeft;return n===0?e.element.offsetWidth-t.element.offsetWidth:n}function Qu(e,t){let n=e.element.offsetTop-t.element.offsetTop;return n===0?e.element.offsetHeight-t.element.offsetHeight:n}function $u(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.ELEMENT_NODE}function ed(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 td({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}=ed(r,n),s=e===`horizontal`?t:o;s<a&&(a=s,i=n)}return Yu(i,`No rect found`),i}var nd;function rd(){return nd===void 0&&(nd=typeof matchMedia==`function`?!!matchMedia(`(pointer:coarse)`).matches:!1),nd}function id(e){let{element:t,orientation:n,panels:r,separators:i}=e,a=Xu(n,Array.from(t.children).filter($u).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,td({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=rd()?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:qu({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 ad=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)}}},od=new Map,sd=new ad;function cd(e){od=new Map(od),od.delete(e)}function ld(e,t){for(let[t]of od)if(t.id===e)return t}function ud(e,t){for(let[t,n]of od)if(t.id===e)return n;if(t)throw Error(`Could not find data for Group with id ${e}`)}function dd(){return od}function fd(e,t){return sd.addListener(`groupChange`,n=>{n.group.id===e&&t(n)})}function pd(e,t){let n=od.get(e);od=new Map(od),od.set(e,t),sd.emit(`groupChange`,{group:e,prev:n,next:t})}function md(e,t,n){let r,i={x:1/0,y:1/0};for(let a of t){let t=ed(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 hd(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function gd(e,t){if(e===t)throw Error(`Cannot compare node with itself`);let n={a:xd(e),b:xd(t)},r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();Yu(r,`Stacking order can only be calculated for elements with a common ancestor`);let i={a:Z(bd(n.a)),b:Z(bd(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 _d=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function vd(e){let t=getComputedStyle(Sd(e)??e).display;return t===`flex`||t===`inline-flex`}function yd(e){let t=getComputedStyle(e);return!!(t.position===`fixed`||t.zIndex!==`auto`&&(t.position!==`static`||vd(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`||_d.test(t.willChange)||t.webkitOverflowScrolling===`touch`)}function bd(e){let t=e.length;for(;t--;){let n=e[t];if(Yu(n,`Missing node`),yd(n))return n}return null}function Z(e){return e&&Number(getComputedStyle(e).zIndex)||0}function xd(e){let t=[];for(;e;)t.push(e),e=Sd(e);return t}function Sd(e){let{parentNode:t}=e;return hd(t)?t.host:t}function Cd(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 wd({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!$u(n)||n.contains(e)||e.contains(n))return!0;if(gd(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(Cd(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function Td(e,t){let n=[];return t.forEach((t,r)=>{if(r.disabled)return;let i=id(r),a=md(r.orientation,i,{x:e.clientX,y:e.clientY});a&&a.distance.x<=0&&a.distance.y<=0&&wd({groupElement:r.element,hitRegion:a.hitRegion.rect,pointerEventTarget:e.target})&&n.push(a.hitRegion)}),n}function Ed(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 Dd(e,t,n=0){return Math.abs(Ku(e)-Ku(t))<=n}function Od(e,t){return Dd(e,t)?0:e>t?1:-1}function kd({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(Od(r,c)<0)if(a){let e=(i+c)/2;r=Od(r,e)<0?i:c}else r=c;return r=Math.min(s,r),r=Ku(r),r}function Ad({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:i,trigger:a}){if(Dd(e,0))return t;let o=a===`imperative-api`,s=Object.values(t),c=Object.values(i),l=[...s],[u,d]=r;Yu(u!=null,`Invalid first pivot index`),Yu(d!=null,`Invalid second pivot index`);let f=0;switch(a){case`keyboard`:{let t=e<0?d:u,r=n[t];Yu(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(Yu(n!=null,`Previous layout not found for panel index ${t}`),Dd(n,i)){let t=o-n;Od(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?u:d,r=n[t];Yu(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(Yu(n!=null,`Previous layout not found for panel index ${t}`),Dd(n,o)){let t=n-i;Od(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}break;default:{let t=e<0?d:u,r=n[t];Yu(r,`Panel constraints not found for index ${t}`);let i=s[t],{collapsible:a,collapsedSize:o,minSize:c}=r;if(a&&Od(i,c)<0)if(e>0){let t=c-o,n=t/2;Od(i+e,c)<0&&(e=Od(e,n)<=0?0:t)}else{let t=c-o,n=100-t/2;Od(i-e,c)<0&&(e=Od(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];Yu(e!=null,`Previous layout not found for panel index ${r}`);let a=kd({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];Yu(i!=null,`Previous layout not found for panel index ${t}`);let a=i-r,c=kd({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:i,size:a});if(!Dd(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(Ed(c,l))return i;{let t=e<0?d:u,r=s[t];Yu(r!=null,`Previous layout not found for panel index ${t}`);let i=r+f,a=kd({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:r,size:i});if(l[t]=a,!Dd(a,i)){let t=i-a,r=e<0?d:u;for(;r>=0&&r<n.length;){let i=l[r];Yu(i!=null,`Previous layout not found for panel index ${r}`);let a=i+t,s=kd({overrideDisabledPanels:o,panelConstraints:n[r],prevSize:i,size:a});if(Dd(i,s)||(t-=s-i,l[r]=s),Dd(t,0))break;e>0?r--:r++}}}if(!Dd(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 jd(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(t[n]===void 0||Od(e[n],t[n])!==0)return!1;return!0}function Md({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(!Dd(i,100)&&r.length>0)for(let e=0;e<t.length;e++){let t=r[e];Yu(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];Yu(i!=null,`No layout data found for index ${e}`);let o=r[e];Yu(o!=null,`No layout data found for index ${e}`);let s=kd({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:i,size:o});o!=s&&(a+=o-s,r[e]=s)}if(!Dd(a,0))for(let e=0;e<t.length;e++){let n=r[e];Yu(n!=null,`No layout data found for index ${e}`);let i=n+a,o=kd({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:n,size:i});if(n!==o&&(a-=o-n,r[e]=o,Dd(a,0)))break}let o=Object.keys(e);return r.reduce((e,t,n)=>(e[o[n]]=t,e),{})}function Nd({groupId:e,panelId:t}){let n=()=>{let t=dd();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=Md({layout:Ad({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});jd(l,p)||pd(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&&Dd(t,n)},resize:e=>{let{group:t}=n(),{element:r}=i(),a=qu({group:t});o(Ku(X({groupSize:a,panelElement:r,styleProp:e})/a*100))}}}function Pd(e){e.defaultPrevented||Td(e,dd()).forEach(t=>{if(t.separator){let n=t.panels.find(e=>e.panelConstraints.defaultSize!==void 0);if(n){let r=n.panelConstraints.defaultSize,i=Nd({groupId:t.group.id,panelId:n.id});i&&r!==void 0&&(i.resize(r),e.preventDefault())}}})}function Fd(e){let t=dd();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 Id({groupId:e}){let t=()=>{let t=dd();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=Md({layout:e,panelConstraints:r});return n?o:(jd(o,c)||pd(i,{defaultLayoutDeferred:n,derivedPanelConstraints:r,groupSize:a,layout:c,separatorToPanels:s}),c)}}}function Ld(e,t){let n=Fd(e),r=ud(n.id,!0),i=n.separators.find(t=>t.element===e);Yu(i,`Matching separator not found`);let a=r.separatorToPanels.get(i);Yu(a,`Matching panels not found`);let o=a.map(e=>n.panels.indexOf(e)),s=Id({groupId:n.id}).getLayout(),c=Md({layout:Ad({delta:t,initialLayout:s,panelConstraints:r.derivedPanelConstraints,pivotIndices:o,prevLayout:s,trigger:`keyboard`}),panelConstraints:r.derivedPanelConstraints});jd(s,c)||pd(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedPanelConstraints:r.derivedPanelConstraints,groupSize:r.groupSize,layout:c,separatorToPanels:r.separatorToPanels})}function Rd(e){if(e.defaultPrevented)return;let t=e.currentTarget,n=Fd(t);if(!n.disabled)switch(e.key){case`ArrowDown`:e.preventDefault(),n.orientation===`vertical`&&Ld(t,5);break;case`ArrowLeft`:e.preventDefault(),n.orientation===`horizontal`&&Ld(t,-5);break;case`ArrowRight`:e.preventDefault(),n.orientation===`horizontal`&&Ld(t,5);break;case`ArrowUp`:e.preventDefault(),n.orientation===`vertical`&&Ld(t,-5);break;case`End`:e.preventDefault(),Ld(t,100);break;case`Enter`:{e.preventDefault();let n=Fd(t),{derivedPanelConstraints:r,layout:i,separatorToPanels:a}=ud(n.id,!0),o=n.separators.find(e=>e.element===t);Yu(o,`Matching separator not found`);let s=a.get(o);Yu(s,`Matching panels not found`);let c=s[0],l=r.find(e=>e.panelId===c.id);if(Yu(l,`Panel metadata not found`),l.collapsible){let e=i[c.id];Ld(t,(l.collapsedSize===e?n.mutableState.expandedPanelSizes[c.id]??l.minSize:l.collapsedSize)-e)}break}case`F6`:{e.preventDefault();let n=Fd(t).separators.map(e=>e.element),r=Array.from(n).findIndex(t=>t===e.currentTarget);Yu(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(),Ld(t,-100);break}}var zd={cursorFlags:0,state:`inactive`},Bd=new ad;function Vd(){return zd}function Hd(e){return Bd.addListener(`change`,e)}function Ud(e){let t=zd,n={...zd};n.cursorFlags=e,zd=n,Bd.emit(`change`,{prev:t,next:n})}function Wd(e){let t=zd;zd=e,Bd.emit(`change`,{prev:t,next:e})}function Gd(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=dd(),n=Td(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)}),Wd({cursorFlags:0,hitRegions:n,initialLayoutMap:r,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:`active`}),n.length&&e.preventDefault()}var Kd=e=>e,qd=()=>{},Jd=1,Yd=2,Xd=4,Zd=8,Qd=3,$d=12,ef;function tf(){return ef===void 0&&(ef=!1,typeof window<`u`&&(window.navigator.userAgent.includes(`Chrome`)||window.navigator.userAgent.includes(`Firefox`))&&(ef=!0)),ef}function nf({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&&tf()){let t=(e&Jd)!==0,n=(e&Yd)!==0,r=(e&Xd)!==0,i=(e&Zd)!==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 tf()?r>0&&i>0?`move`:r>0?`ew-resize`:`ns-resize`:r>0&&i>0?`grab`:r>0?`col-resize`:`row-resize`}}var rf=new WeakMap;function af(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=rf.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));let r=Vd();switch(r.state){case`active`:case`hover`:{let e=nf({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}rf.set(e,{prevStyle:t,styleSheet:n})}function of({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=Ad({delta:d,initialLayout:f,panelConstraints:h,pivotIndices:e.panels.map(e=>l.indexOf(e)),prevLayout:_,trigger:`mouse-or-touch`});if(jd(t,_)){if(d!==0&&!u)switch(c){case`horizontal`:s|=d<0?Jd:Yd;break;case`vertical`:s|=d<0?Xd:Zd;break}}else pd(e.group,{defaultLayoutDeferred:m,derivedPanelConstraints:h,groupSize:g,layout:t,separatorToPanels:v})}});let c=0;t.movementX===0?c|=o&Qd:c|=s&Qd,t.movementY===0?c|=o&$d:c|=s&$d,Ud(c),af(e)}function sf(e){let t=dd(),n=Vd();switch(n.state){case`active`:of({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function cf(e){if(e.defaultPrevented)return;let t=Vd(),n=dd();switch(t.state){case`active`:if(e.buttons===0){Wd({cursorFlags:0,state:`inactive`}),t.hitRegions.forEach(e=>{let t=ud(e.group.id,!0);pd(e.group,t)});return}of({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break;default:{let r=Td(e,n);r.length===0?t.state!==`inactive`&&Wd({cursorFlags:0,state:`inactive`}):Wd({cursorFlags:0,hitRegions:r,state:`hover`}),af(e.currentTarget);break}}}function lf(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(Vd().state){case`hover`:Wd({cursorFlags:0,state:`inactive`})}}function uf(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=Vd();switch(t.state){case`active`:Wd({cursorFlags:0,state:`inactive`}),t.hitRegions.length>0&&(af(e.currentTarget),t.hitRegions.forEach(e=>{let t=ud(e.group.id,!0);pd(e.group,t)}),e.preventDefault())}}function df(e){let t=0,n=0,r={};for(let i of e)if(i.defaultSize!==void 0){t++;let e=Ku(i.defaultSize);n+=e,r[i.panelId]=e}else r[i.panelId]=void 0;let i=e.length-t;if(i!==0){let t=Ku((100-n)/i);for(let n of e)n.defaultSize===void 0&&(r[n.panelId]=t)}return r}function ff(e,t,n){if(!n[0])return;let r=e.panels.find(e=>e.element===t);if(!r||!r.onResize)return;let i=qu({group:e}),a=e.orientation===`horizontal`?r.element.offsetWidth:r.element.offsetHeight,o=r.mutableValues.prevSize,s={asPercentage:Ku(a/i*100),inPixels:a};r.mutableValues.prevSize=s,r.onResize(s,r.id,o)}function pf(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 mf({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=Ku(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]=Ku((r[e]??0)/a*l);else{let e=Ku(l/c.length);for(let t of c)u[t]=e}return u}function hf(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 gf=new Map;function _f(e){let t=!0;Yu(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=qu({group:e});if(t===0)return;let n=ud(e.id);if(!n)return;let r=Ju(e),i=n.defaultLayoutDeferred?df(r):n.layout,a=Md({layout:mf({group:e,nextGroupSize:t,prevGroupSize:n.groupSize,prevLayout:i}),panelConstraints:r});if(!n.defaultLayoutDeferred&&jd(n.layout,a)&&pf(n.derivedPanelConstraints,r)&&n.groupSize===t)return;pd(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,groupSize:t,layout:a,separatorToPanels:n.separatorToPanels})}}else ff(e,i,n)}});a.observe(e.element),e.panels.forEach(e=>{Yu(!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=qu({group:e}),s=Ju(e),c=e.panels.map(({id:e})=>e).join(`,`),l=e.mutableState.defaultLayout;l&&(hf(e.panels,l)||(l=void 0));let u=Md({layout:e.mutableState.layouts[c]??l??df(s),panelConstraints:s}),d=e.element.ownerDocument;gf.set(d,(gf.get(d)??0)+1);let f=new Map;return id(e).forEach(e=>{e.separator&&f.set(e.separator,e.panels)}),pd(e,{defaultLayoutDeferred:o===0,derivedPanelConstraints:s,groupSize:o,layout:u,separatorToPanels:f}),e.separators.forEach(e=>{Yu(!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`,Rd)}),gf.get(d)===1&&(d.addEventListener(`dblclick`,Pd,!0),d.addEventListener(`pointerdown`,Gd,!0),d.addEventListener(`pointerleave`,sf),d.addEventListener(`pointermove`,cf),d.addEventListener(`pointerout`,lf),d.addEventListener(`pointerup`,uf,!0)),function(){t=!1,gf.set(d,Math.max(0,(gf.get(d)??0)-1)),cd(e),e.separators.forEach(e=>{e.element.removeEventListener(`keydown`,Rd)}),gf.get(d)||(d.removeEventListener(`dblclick`,Pd,!0),d.removeEventListener(`pointerdown`,Gd,!0),d.removeEventListener(`pointerleave`,sf),d.removeEventListener(`pointermove`,cf),d.removeEventListener(`pointerout`,lf),d.removeEventListener(`pointerup`,uf,!0)),a.disconnect()}}function vf(){let[e,t]=(0,V.useState)({});return[e,(0,V.useCallback)(()=>t({}),[])]}function yf(e){let t=(0,V.useId)();return`${e??t}`}var bf=typeof window<`u`?V.useLayoutEffect:V.useEffect;function xf(e){let t=(0,V.useRef)(e);return bf(()=>{t.current=e},[e]),(0,V.useCallback)((...e)=>t.current?.(...e),[t])}function Sf(...e){return xf(t=>{e.forEach(e=>{if(e)switch(typeof e){case`function`:e(t);break;case`object`:e.current=t;break}})})}function Cf(e){let t=(0,V.useRef)({...e});return bf(()=>{for(let n in e)t.current[n]=e[n]},[e]),t.current}var wf=(0,V.createContext)(null);function Tf(e,t){let n=(0,V.useRef)({getLayout:()=>({}),setLayout:Kd});(0,V.useImperativeHandle)(t,()=>n.current,[]),bf(()=>{Object.assign(n.current,Id({groupId:e}))})}function Ef({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,V.useRef)({onLayoutChange:{},onLayoutChanged:{}}),h=xf(e=>{jd(m.current.onLayoutChange,e)||(m.current.onLayoutChange=e,c?.(e))}),g=xf(e=>{jd(m.current.onLayoutChanged,e)||(m.current.onLayoutChanged=e,l?.(e))}),_=yf(s),v=(0,V.useRef)(null),[y,b]=vf(),x=(0,V.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:d,separators:[]}),S=Sf(v,a);Tf(_,o);let C=xf((e,t)=>{let r=Vd(),i=ld(e),a=ud(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=Cf({defaultLayout:n,disableCursor:r}),T=(0,V.useMemo)(()=>({get disableCursor(){return!!w.disableCursor},getPanelStyles:C,id:_,orientation:u,registerPanel:e=>{let t=x.current;return t.panels=Xu(u,[...t.panels,e]),b(),()=>{t.panels=t.panels.filter(t=>t!==e),b()}},registerSeparator:e=>{let t=x.current;return t.separators=Xu(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=ld(_),i=ud(_);r&&i&&pd(r,{...i,derivedPanelConstraints:Ju(r)})},toggleSeparatorDisabled:(e,t)=>{let n=x.current.separators.find(t=>t.id===e);n&&(n.disabled=t)}}),[C,_,b,u,w]),E=(0,V.useRef)(null);return bf(()=>{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=_f(r),{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:c}=ud(r.id,!0);!o&&s.length>0&&(h(c),g(c));let l=fd(_,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=Dd(t.collapsedSize,i[t.panelId]),a=Dd(t.collapsedSize,n[t.panelId]);e&&!a&&(r.mutableState.expandedPanelSizes[t.panelId]=n[t.panelId])}}});let o=Vd().state!==`active`;h(i),o&&g(i)});return()=>{E.current=null,a(),l()}},[i,_,g,h,u,y,w]),(0,V.useEffect)(()=>{let e=E.current;e&&(e.mutableState.defaultLayout=n,e.mutableState.disableCursor=!!r)}),(0,U.jsx)(wf.Provider,{value:T,children:(0,U.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})})}Ef.displayName=`Group`;function Df(){let e=(0,V.useContext)(wf);return Yu(e,`Group Context not found; did you render a Panel or Separator outside of a Group?`),e}function Of(e,t){let{id:n}=Df(),r=(0,V.useRef)({collapse:qd,expand:qd,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:qd});(0,V.useImperativeHandle)(t,()=>r.current,[]),bf(()=>{Object.assign(r.current,Nd({groupId:n,panelId:e}))})}function kf({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=yf(c),_=Cf({disabled:a}),v=(0,V.useRef)(null),y=Sf(v,o),{getPanelStyles:b,id:x,orientation:S,registerPanel:C,togglePanelDisabled:w}=Df(),T=d!==null,E=xf((e,t,n)=>{d?.(e,c,n)});bf(()=>{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,V.useEffect)(()=>{w(g,!!a)},[a,g,w]),Of(g,f);let D=(0,V.useSyncExternalStore)(e=>fd(x,e),()=>JSON.stringify(b(x,g)),()=>JSON.stringify(b(x,g)));return(0,U.jsx)(`div`,{...m,"aria-disabled":a||void 0,"data-panel":!0,"data-testid":g,id:g,ref:y,style:{...Af,display:`flex`,flexBasis:0,flexShrink:1,overflow:`visible`,...JSON.parse(D)},children:(0,U.jsx)(`div`,{className:t,style:{maxHeight:`100%`,maxWidth:`100%`,flexGrow:1,overflow:`auto`,...p,touchAction:S===`horizontal`?`pan-y`:`pan-x`},children:e})})}kf.displayName=`Panel`;var Af={minHeight:0,maxHeight:`100%`,height:`auto`,minWidth:0,maxWidth:`100%`,width:`auto`,border:`none`,borderWidth:0,padding:0,margin:0};function jf({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=Md({layout:Ad({delta:l-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n],i=Md({layout:Ad({delta:c-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:a,valueNow:o}}function Mf({children:e,className:t,disabled:n,elementRef:r,id:i,style:a,...o}){let s=yf(i),c=Cf({disabled:n}),[l,u]=(0,V.useState)({}),[d,f]=(0,V.useState)(`inactive`),p=(0,V.useRef)(null),m=Sf(p,r),{disableCursor:h,id:g,orientation:_,registerSeparator:v,toggleSeparatorDisabled:y}=Df(),b=_===`horizontal`?`vertical`:`horizontal`;bf(()=>{let e=p.current;if(e!==null){let t={disabled:c.disabled,element:e,id:s},n=v(t),r=Hd(e=>{f(e.next.state!==`inactive`&&e.next.hitRegions.some(e=>e.separator===t)?e.next.state:`inactive`)}),i=fd(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(jf({layout:r,panelConstraints:n,panelId:e.id,panelIndex:t}))}});return()=>{r(),i(),n()}}},[g,s,v,c]),(0,V.useEffect)(()=>{y(s,!!n)},[n,s,y]);let x;return n&&!h&&(x=`not-allowed`),(0,U.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})}Mf.displayName=`Separator`;function Nf(){return`panel-${L()}`}function Pf(e=[],t=null){return{id:Nf(),tabs:e,activeTabId:t,tabHistory:t?[t]:[]}}function Ff(e){return e?1:3}function If(e,t){return e.map(e=>e.filter(e=>e!==t)).filter(e=>e.length>0)}function Lf(e,t){for(let n=0;n<e.length;n++){let r=e[n].indexOf(t);if(r!==-1)return{row:n,col:r}}return null}function Rf(e,t){switch(e){case`editor`:return`editor:${t?.filePath??`untitled`}`;case`chat`:return`chat:${t?.providerId??`default`}/${t?.sessionId??L()}`;case`terminal`:return`terminal:${t?.terminalIndex??1}`;case`database`:return`database:${t?.connectionId??`default`}:${t?.tableName??``}`;case`sqlite`:return`sqlite:${t?.filePath??`default`}`;case`postgres`:return`postgres:${t?.connectionId??`default`}:${t?.tableName??``}`;case`git-graph`:return`git-graph`;case`git-diff`:return`git-diff:${t?.filePath??`unknown`}`;case`settings`:return`settings`;case`ports`:return`ports`;default:return`${e}:${L()}`}}function zf(e){let t={...e,panels:{...e.panels}};for(let[e,n]of Object.entries(t.panels)){let r=n.tabs.map(e=>{if(e.id.startsWith(`tab-`)){let t=Rf(e.type,e.metadata);return{...e,id:t}}return e}),i=new Map;n.tabs.forEach((e,t)=>{e.id!==r[t].id&&i.set(e.id,r[t].id)});let a=i.get(n.activeTabId??``)??n.activeTabId,o=n.tabHistory.map(e=>i.get(e)??e);t.panels[e]={...n,tabs:r,activeTabId:a,tabHistory:o}}return t}var Bf=`ppm-panels-`,Vf=`ppm-tabs-`;function Hf(e){return`${Bf}${e}`}function Uf(e,t){try{let n={...t,updatedAt:new Date().toISOString()};localStorage.setItem(Hf(e),JSON.stringify(n)),qf(e,t)}catch{}}function Wf(e){try{let t=localStorage.getItem(Hf(e));if(t)return zf(JSON.parse(t))}catch{}return Yf(e)}async function Gf(e){try{let t={},n=localStorage.getItem(`ppm-auth-token`);n&&(t.Authorization=`Bearer ${n}`);let r=await fetch(`/api/project/${encodeURIComponent(e)}/workspace`,{headers:t});if(!r.ok)return null;let i=await r.json();return!i.ok||!i.data?null:{...i.data.layout,updatedAt:i.data.updatedAt}}catch{return null}}var Kf=new Map;function qf(e,t){let n=Kf.get(e);n&&clearTimeout(n),Kf.set(e,setTimeout(async()=>{Kf.delete(e);try{let n={"Content-Type":`application/json`},r=localStorage.getItem(`ppm-auth-token`);r&&(n.Authorization=`Bearer ${r}`);let i=await fetch(`/api/project/${encodeURIComponent(e)}/workspace`,{method:`PUT`,headers:n,body:JSON.stringify({layout:t})});if(i.ok){let t=await i.json();if(t.data?.updatedAt){let n=`${Bf}${e}`,r=localStorage.getItem(n);if(r){let e=JSON.parse(r);e.updatedAt=t.data.updatedAt,localStorage.setItem(n,JSON.stringify(e))}}}}catch{}},1500))}function Jf(e,t){if(!e&&!t)return null;if(!e)return t;if(!t)return e;let n=new Date(e.updatedAt).getTime();return new Date(t.updatedAt).getTime()>=n?t:e}function Yf(e){try{let t=localStorage.getItem(`${Vf}${e}`);if(!t)return null;let n=JSON.parse(t);if(!n.tabs?.length)return null;let r=Pf(n.tabs,n.activeTabId),i={panels:{[r.id]:r},grid:[[r.id]],focusedPanelId:r.id};return Uf(e,i),localStorage.removeItem(`${Vf}${e}`),i}catch{return null}}var Xf=new Set([`git-graph`,`settings`]),Zf=new Set([`projects`,`git-status`]);function Qf(e,t){let n=e.filter(e=>e!==t);return n.push(t),n.length>50&&n.shift(),n}function $f(){let e=Pf();return{panels:{[e.id]:e},grid:[[e.id]],focusedPanelId:e.id}}var Q=c()((e,t)=>{function n(){let{currentProject:e,panels:n,grid:r,focusedPanelId:i}=t();if(!e)return;let a=new Set(r.flat()),o={};for(let[e,t]of Object.entries(n))a.has(e)&&(o[e]=t);Uf(e,{panels:o,grid:r,focusedPanelId:i})}function r(e){return Object.values(t().panels).find(t=>t.tabs.some(t=>t.id===e))}function i(e){return e??t().focusedPanelId}return{...$f(),currentProject:null,projectGrids:{},projectFocused:{},switchProject:n=>{let{currentProject:r,panels:i,grid:a,focusedPanelId:o,projectGrids:s,projectFocused:c}=t();if(r===n)return;let l={...s},u={...c};if(r){l[r]=a,u[r]=o;let e=new Set(a.flat()),t={};for(let[n,r]of Object.entries(i))e.has(n)&&(t[n]=r);Uf(r,{panels:t,grid:a,focusedPanelId:o})}if(l[n]){let t=l[n];e({currentProject:n,grid:t,focusedPanelId:u[n]??t[0]?.[0]??``,projectGrids:l,projectFocused:u});return}let d=Wf(n);if(d&&Object.keys(d.panels).length>0){let t={};for(let[e,n]of Object.entries(d.panels)){let r=n.tabs.filter(e=>!Zf.has(e.type)),i=n.tabHistory.filter(e=>r.some(t=>t.id===e)),a=n.activeTabId&&r.some(e=>e.id===n.activeTabId)?n.activeTabId:i[i.length-1]??r[0]?.id??null;t[e]={...n,tabs:r,tabHistory:i,activeTabId:a}}let r={...i,...t};l[n]=d.grid,u[n]=d.focusedPanelId,e({currentProject:n,panels:r,grid:d.grid,focusedPanelId:d.focusedPanelId,projectGrids:l,projectFocused:u})}else{let t=Pf(),r=[[t.id]],a={...i,[t.id]:t};l[n]=r,u[n]=t.id,Uf(n,{panels:{[t.id]:t},grid:r,focusedPanelId:t.id}),e({currentProject:n,panels:a,grid:r,focusedPanelId:t.id,projectGrids:l,projectFocused:u})}},reloadProject:n=>{let{projectGrids:r,projectFocused:i,panels:a}=t(),o={...r},s={...i};delete o[n],delete s[n];let c=r[n],l=c?new Set(c.flat()):new Set,u={...a};for(let e of l)delete u[e];e({projectGrids:o,projectFocused:s,panels:u,currentProject:null}),t().switchProject(n)},setFocusedPanel:n=>{t().panels[n]&&e({focusedPanelId:n})},openTab:(r,a)=>{let o=i(a);if(!t().panels[o])return``;if(r.type===`terminal`&&!r.metadata?.terminalIndex){let e=Object.values(t().panels).flatMap(e=>e.tabs).filter(e=>e.type===`terminal`).map(e=>{let t=e.id.match(/^terminal:(\d+)/);return t?parseInt(t[1],10):0}),n=e.length>0?Math.max(...e)+1:1;r={...r,metadata:{...r.metadata,terminalIndex:n}}}let s=Rf(r.type,r.metadata);if(Xf.has(r.type))for(let r of Object.values(t().panels)){let t=r.tabs.find(e=>e.id===s);if(t)return e(e=>({focusedPanelId:r.id,panels:{...e.panels,[r.id]:{...r,activeTabId:t.id,tabHistory:Qf(r.tabHistory,t.id)}}})),n(),t.id}let c=t().panels[o],l=c.tabs.find(e=>e.id===s);if(l)return e(e=>({panels:{...e.panels,[o]:{...c,activeTabId:l.id,tabHistory:Qf(c.tabHistory,l.id)}}})),n(),l.id;let u=Object.values(t().panels).some(e=>e.id!==o&&e.tabs.some(e=>e.id===s))?`${s}@${o}`:s,d={...r,id:u};return e(e=>{let t=e.panels[o];return{focusedPanelId:o,panels:{...e.panels,[o]:{...t,tabs:[...t.tabs,d],activeTabId:u,tabHistory:Qf(t.tabHistory,u)}}}}),n(),u},closeTab:(i,a)=>{let o=a?t().panels[a]:r(i);if(!o)return;let s=o.id;e(e=>{let t=e.panels[s],n=t.tabs.filter(e=>e.id!==i),r=t.tabHistory.filter(e=>e!==i),a=t.activeTabId;if(t.activeTabId===i){let e=r.length>0?r[r.length-1]:null;a=e&&n.some(t=>t.id===e)?e:n[n.length-1]?.id??null}let o=e.grid.flat().length;if(n.length===0&&o>1){let{[s]:t,...n}=e.panels;return{panels:n,grid:If(e.grid,s),focusedPanelId:e.focusedPanelId===s?Object.keys(n)[0]:e.focusedPanelId}}return{panels:{...e.panels,[s]:{...t,tabs:n,activeTabId:a,tabHistory:r}}}}),n()},setActiveTab:(i,a)=>{let o=a?t().panels[a]:r(i);if(!o)return;let s=o.id;e(e=>{let t=e.panels[s];return{focusedPanelId:s,panels:{...e.panels,[s]:{...t,activeTabId:i,tabHistory:Qf(t.tabHistory,i)}}}}),n()},updateTab:(t,i)=>{let a=r(t);a&&(e(e=>({panels:{...e.panels,[a.id]:{...a,tabs:a.tabs.map(e=>e.id===t?{...e,...i}:e)}}})),n())},reorderTab:(r,i,a)=>{let o=t().panels[i];if(!o)return;let s=o.tabs.findIndex(e=>e.id===r);if(s===-1||s===a)return;let c=[...o.tabs],[l]=c.splice(s,1);c.splice(a,0,l),e(e=>({panels:{...e.panels,[i]:{...o,tabs:c}}})),n()},moveTab:(r,i,a,o)=>{if(i===a)return;let s=t().panels[i],c=t().panels[a];if(!s||!c)return;let l=s.tabs.find(e=>e.id===r);if(!l)return;let u=s.tabs.filter(e=>e.id!==r),d=s.tabHistory.filter(e=>e!==r),f=s.activeTabId===r?d[d.length-1]??u[u.length-1]?.id??null:s.activeTabId,p=[...c.tabs];o===void 0?p.push(l):p.splice(o,0,l),e(e=>{let t=e.grid.flat().length;if(u.length===0&&t>1){let{[i]:t,...n}=e.panels;return{panels:{...n,[a]:{...c,tabs:p,activeTabId:r,tabHistory:Qf(c.tabHistory,r)}},grid:If(e.grid,i),focusedPanelId:a}}return{focusedPanelId:a,panels:{...e.panels,[i]:{...s,tabs:u,activeTabId:f,tabHistory:d},[a]:{...c,tabs:p,activeTabId:r,tabHistory:Qf(c.tabHistory,r)}}}}),n()},splitPanel:(r,i,a,o)=>{let{grid:s,panels:c}=t(),l=t().isMobile(),u=c[a];if(!u)return!1;let d=u.tabs.find(e=>e.id===i);if(!d)return!1;let f=Lf(s,o??a);if(!f)return!1;let p=r===`left`||r===`right`,m=r===`up`||r===`down`;if(p&&(s[f.row]?.length??0)>=Ff(l)||m&&s.length>=3)return!1;let h=Pf([d],d.id);h.tabHistory=[d.id];let g=u.tabs.filter(e=>e.id!==i),_=u.tabHistory.filter(e=>e!==i),v=u.activeTabId===i?_[_.length-1]??g[g.length-1]?.id??null:u.activeTabId,y;if(p)y=s.map((e,t)=>{if(t!==f.row)return e;let n=[...e],i=r===`right`?f.col+1:f.col;return n.splice(i,0,h.id),n});else{y=[...s];let e=r===`down`?f.row+1:f.row;y.splice(e,0,[h.id])}return e(e=>{let t=e.grid.flat().length,n={...e.panels,[h.id]:h};if(g.length===0&&t>1){let{[a]:e,...t}=n;n=t,y=If(y,a)}else n[a]={...u,tabs:g,activeTabId:v,tabHistory:_};return{panels:n,grid:y,focusedPanelId:h.id}}),n(),!0},closePanel:r=>{let{panels:i,grid:a}=t();if(a.flat().length<=1)return;let o=i[r];if(!o)return;Lf(a,r);let s=a.flat(),c=s.indexOf(r),l=c>0?s[c-1]:s[1],u=i[l];u&&(e(e=>{let{[r]:t,...n}=e.panels,i=[...u.tabs,...o.tabs],a=u.activeTabId??o.activeTabId;return{panels:{...n,[l]:{...u,tabs:i,activeTabId:a,tabHistory:[...u.tabHistory,...o.tabHistory]}},grid:If(e.grid,r),focusedPanelId:l}}),n())},getPanelForTab:e=>r(e),isMobile:()=>typeof window<`u`&&window.innerWidth<768}}),ep=`ppm-custom-order`;function tp(){try{let e=localStorage.getItem(ep);return e?JSON.parse(e):null}catch{return null}}function np(e){try{localStorage.setItem(ep,JSON.stringify(e))}catch{}}function rp(e,t){if(!t)return[...e];let n=new Map(t.map((e,t)=>[e,t]));return[...e].sort((e,t)=>(n.get(e.name)??1/0)-(n.get(t.name)??1/0))}var ip=c((e,t)=>({projects:[],activeProject:null,customOrder:tp(),loading:!1,error:null,fetchProjects:async()=>{e({loading:!0,error:null});try{e({projects:await z.get(`/api/projects`),loading:!1})}catch(t){e({error:t instanceof Error?t.message:`Failed to fetch projects`,loading:!1})}},setActiveProject:t=>{e({activeProject:t})},addProject:async(n,r)=>{let i=await z.post(`/api/projects`,{path:n,name:r});await t().fetchProjects();let a=t().projects.find(e=>e.name===(r??i.name)||e.path===n);return a&&e({activeProject:a}),i},setProjectColor:async(e,n)=>{await z.patch(`/api/projects/${encodeURIComponent(e)}/color`,{color:n}),await t().fetchProjects()},moveProject:async(n,r)=>{let{projects:i,customOrder:a}=t(),o=rp(i,a),s=o.findIndex(e=>e.name===n);if(s===-1)return;let c=r===`up`?s-1:s+1;if(c<0||c>=o.length)return;let l=o.map(e=>e.name);[l[s],l[c]]=[l[c],l[s]],np(l),await z.patch(`/api/projects/reorder`,{order:l}),e({customOrder:l})},reorderProjects:async t=>{np(t),e({customOrder:t}),await z.patch(`/api/projects/reorder`,{order:t}).catch(()=>{})},renameProject:async(e,n)=>{await z.patch(`/api/projects/${encodeURIComponent(e)}`,{name:n}),await t().fetchProjects()},deleteProject:async t=>{await z.del(`/api/projects/${encodeURIComponent(t)}`),e(e=>{let n=e.projects.filter(e=>e.name!==t),r=e.customOrder?e.customOrder.filter(e=>e!==t):null;return r&&np(r),{projects:n,customOrder:r,activeProject:e.activeProject?.name===t?n[0]??null:e.activeProject}})}})),ap=c()(()=>({tabs:[],activeTabId:null,tabHistory:[],currentProject:null,switchProject:e=>{Q.getState().switchProject(e),op()},openTab:e=>{let t=Q.getState().openTab(e);return op(),t},closeTab:e=>{Q.getState().closeTab(e),op()},setActiveTab:e=>{Q.getState().setActiveTab(e),op()},updateTab:(e,t)=>{Q.getState().updateTab(e,t),op()}}));function op(){let e=Q.getState(),t=e.panels[e.focusedPanelId];ap.setState({tabs:t?.tabs??[],activeTabId:t?.activeTabId??null,tabHistory:t?.tabHistory??[],currentProject:e.currentProject})}Q.subscribe(()=>op());var sp=`application/ppm-tab`,cp=!1,lp=new Set;function up(e){cp!==e&&(cp=e,lp.forEach(e=>e()))}function dp(){return(0,V.useSyncExternalStore)(e=>(lp.add(e),()=>lp.delete(e)),()=>cp)}function fp(){up(!1)}function pp(e){let[t,n]=(0,V.useState)(null),r=(0,V.useRef)(null);return{dropIndex:t,handleDragStart:(0,V.useCallback)((t,n)=>{let r={tabId:n,panelId:e};t.dataTransfer.setData(sp,JSON.stringify(r)),t.dataTransfer.effectAllowed=`move`,requestAnimationFrame(()=>up(!0))},[e]),handleDragOver:(0,V.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,V.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`)},[]),handleDrop:(0,V.useCallback)(i=>{i.preventDefault(),up(!1);let a=i.dataTransfer.getData(sp);if(a){try{let n=JSON.parse(a),r=Q.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,V.useCallback)(()=>{up(!1),n(null),r.current=null},[])}}var mp=null,hp=null,gp=0,_p=new Set;function vp(){_p.forEach(e=>e())}function yp(){return(0,V.useSyncExternalStore)(e=>(_p.add(e),()=>_p.delete(e)),()=>hp)}function bp(){return Date.now()-gp<300}var xp=null;function Sp(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),xp=r}function Cp(e,t){xp&&(xp.style.left=`${e}px`,xp.style.top=`${t}px`)}function wp(){xp?.remove(),xp=null}function Tp(e,t){xp&&(xp.style.display=`none`);let n=document.elementFromPoint(e,t);xp&&(xp.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}=Q.getState(),u=window.innerWidth<768,d=Lf(l,i),f=d?!u&&(l[d.row]?.length??0)<Ff(!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 Ep(e){if(!mp)return;e.preventDefault();let t=e.touches[0];if(!t)return;Cp(t.clientX,t.clientY);let n=Tp(t.clientX,t.clientY);(n?.panelId!==hp?.panelId||n?.zone!==hp?.zone)&&(hp=n,vp())}function Dp(){mp=null,hp=null,vp(),wp(),fp(),document.removeEventListener(`touchmove`,Ep),document.removeEventListener(`touchend`,Op),document.removeEventListener(`touchcancel`,kp)}function Op(){let e=mp,t=hp;if(Dp(),gp=Date.now(),!e||!t)return;let n=Q.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 kp(){Dp(),gp=Date.now()}function Ap(e,t,n,r){mp=e,up(!0),Sp(t,n,r),document.addEventListener(`touchmove`,Ep,{passive:!1}),document.addEventListener(`touchend`,Op),document.addEventListener(`touchcancel`,kp)}var jp=200,Mp=10;function Np(e){let t=(0,V.useRef)(null),n=(0,V.useRef)(null),r=(0,V.useRef)(!1);return{handleTouchStart:(0,V.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,Ap({tabId:a,panelId:e},o,n.current.x,n.current.y)},jp))},[e]),handleTouchMove:(0,V.useCallback)(e=>{if(r.current||!n.current||!t.current)return;let i=e.touches[0];i&&(Math.abs(i.clientX-n.current.x)>Mp||Math.abs(i.clientY-n.current.y)>Mp)&&(clearTimeout(t.current),t.current=null)},[]),handleTouchEnd:(0,V.useCallback)(()=>{t.current&&=(clearTimeout(t.current),null)},[])}}var Pp=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),Fp=[{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:`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-graph`,label:`Git Graph`,category:`tabs`,defaultKey:`Mod+G`},{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`},...Array.from({length:9},(e,t)=>({id:`switch-project-${t+1}`,label:`Switch to Project ${t+1}`,category:`projects`,defaultKey:`Mod+${t+1}`}))],Ip=new Map(Fp.map(e=>[e.id,e.defaultKey]));function Lp(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`:Pp?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 Rp(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 zp(e){return e.replace(/Mod/g,Pp?`⌘`:`Ctrl`).replace(/Shift/g,Pp?`⇧`:`Shift`).replace(/Alt/g,Pp?`⌥`:`Alt`).replace(/Meta|Cmd/g,`⌘`).replace(/Ctrl/g,Pp?`⌃`:`Ctrl`)}function Bp(e){if([`Control`,`Meta`,`Alt`,`Shift`].includes(e.key))return null;let t=[];e.ctrlKey&&!e.metaKey&&t.push(Pp?`Ctrl`:`Mod`),e.metaKey&&t.push(Pp?`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(`+`)}var Vp=c((e,t)=>({overrides:{},loaded:!1,getBinding:e=>t().overrides[e]??Ip.get(e)??``,matchesEvent:(e,n)=>{let r=t().getBinding(n);return r?Rp(e,Lp(r)):!1},setBinding:(n,r)=>{e({overrides:{...t().overrides,[n]:r}}),z.put(`/api/settings/keybindings`,{[n]:r}).catch(()=>{})},resetBinding:n=>{let r={...t().overrides};delete r[n],e({overrides:r}),z.put(`/api/settings/keybindings`,{[n]:null}).catch(()=>{})},resetAll:()=>{e({overrides:{}});let n={};for(let e of Object.keys(t().overrides))n[e]=null;Object.keys(n).length>0&&z.put(`/api/settings/keybindings`,n).catch(()=>{})},loadFromServer:async()=>{try{e({overrides:await z.get(`/api/settings/keybindings`),loaded:!0})}catch{e({loaded:!0})}}}));function Hp(e){window.dispatchEvent(new CustomEvent(`open-command-palette`,{detail:e}))}function Up(){let[e,t]=(0,V.useState)(!1),[n,r]=(0,V.useState)(``);return(0,V.useEffect)(()=>{let e=0,n=!1,{matchesEvent:i}=Vp.getState(),a=!1;function o(){a=!0}function s(){a=!1}function c(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&&!a&&!i.isComposing){let n=Date.now();if(n-e<400){e=0,r(``),t(!0);return}e=n;return}if(i.type!==`keydown`||a||i.isComposing)return;let{matchesEvent:o}=Vp.getState();if(o(i,`save-prevent`)){i.preventDefault();return}if(o(i,`command-palette`)){i.preventDefault(),r(``),t(!0);return}if(o(i,`toggle-sidebar`)){i.preventDefault(),H.getState().toggleSidebar();return}if(o(i,`next-tab`)||o(i,`prev-tab`)){i.preventDefault();let{tabs:e,activeTabId:t,setActiveTab:n}=ap.getState();if(e.length<2)return;let r=e.findIndex(e=>e.id===t);n(e[o(i,`next-tab`)?(r+1)%e.length:(r-1+e.length)%e.length].id);return}for(let e of[{action:`open-chat`,type:`chat`,title:`AI Chat`},{action:`open-terminal`,type:`terminal`,title:`Terminal`},{action:`open-git-graph`,type:`git-graph`,title:`Git Graph`}])if(o(i,e.action)){i.preventDefault();let t=ip.getState().activeProject;ap.getState().openTab({type:e.type,title:e.title,projectId:t?.name??null,metadata:t?{projectName:t.name}:void 0,closable:!0});return}if(o(i,`open-settings`)){i.preventDefault();let e=H.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`settings`);return}if(o(i,`open-git-status`)){i.preventDefault();let e=H.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`git`);return}if(o(i,`voice-input`)){i.preventDefault(),window.dispatchEvent(new CustomEvent(`toggle-voice-input`));return}if(o(i,`open-search`)){i.preventDefault();let e=H.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`search`);return}for(let e=1;e<=9;e++)if(o(i,`switch-project-${e}`)){i.preventDefault();let t=ip.getState().projects[e-1];t&&(ip.getState().setActiveProject(t),ap.getState().switchProject(t.name));return}}function l(e){let n=e.detail;r(typeof n==`string`?n:``),t(!0)}return window.addEventListener(`keydown`,c),window.addEventListener(`keyup`,c),window.addEventListener(`compositionstart`,o),window.addEventListener(`compositionend`,s),window.addEventListener(`open-command-palette`,l),()=>{window.removeEventListener(`keydown`,c),window.removeEventListener(`keyup`,c),window.removeEventListener(`compositionstart`,o),window.removeEventListener(`compositionend`,s),window.removeEventListener(`open-command-palette`,l)}},[]),{paletteOpen:e,paletteInitialQuery:n,closePalette:(0,V.useCallback)(()=>{t(!1),r(``)},[])}}var Wp={approval_request:`bg-red-500`,question:`bg-amber-500`,done:`bg-blue-500`},Gp={done:0,question:1,approval_request:2};function Kp(e){return e&&Wp[e]||`bg-red-500`}var qp=c()(e=>({notifications:new Map,addNotification:(t,n,r)=>{e(e=>{let i=new Map(e.notifications),a=i.get(t);return i.set(t,{count:(a?.count??0)+1,type:n,projectName:r}),{notifications:i}})},clearForSession:t=>{e(e=>{if(!e.notifications.has(t))return e;let n=new Map(e.notifications);return n.delete(t),{notifications:n}})},clearAll:()=>e({notifications:new Map})}));function Jp(e){let t=0;for(let[,n]of e.notifications)t+=n.count;return t}function Yp(e){return t=>{let n=null,r=-1;for(let[,i]of t.notifications){if(i.projectName!==e)continue;let t=Gp[i.type]??0;t>r&&(r=t,n=i.type)}return n}}function Xp(e){let[t,n]=(0,V.useState)(!1),[r,i]=(0,V.useState)(!1),a=(0,V.useCallback)(()=>{let t=e.current;t&&(n(t.scrollLeft>1),i(t.scrollLeft+t.clientWidth<t.scrollWidth-1))},[e]);return(0,V.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,V.useCallback)(()=>{e.current?.scrollBy({left:-150,behavior:`smooth`})},[e]),scrollRight:(0,V.useCallback)(()=>{e.current?.scrollBy({left:150,behavior:`smooth`})},[e])}}var Zp={done:0,question:1,approval_request:2};function Qp(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,_=Zp[f.type]??0;g<=i&&_>s&&(s=_,o=f.type),h>=a&&_>l&&(l=_,c=f.type)}return{left:o,right:c}}function $p(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 em(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 tm(e){let t=$p(e);return t?em(t.r,t.g,t.b)<.4:!1}function nm({tab:e,isActive:t,icon:n,showDropBefore:r,notificationType:i,onSelect:a,onClose:s,onDragStart:c,onDragOver:l,onDragEnd:u,onTouchStart:d,onTouchMove:f,onTouchEnd:p,tabRef:m,onRename:h}){let[g,_]=(0,V.useState)(!1),[v,y]=(0,V.useState)(e.title),b=(0,V.useRef)(null);(0,V.useEffect)(()=>{g&&(y(e.title),setTimeout(()=>b.current?.select(),0))},[g]);let x=()=>{_(!1);let t=v.trim();t&&t!==e.title&&h&&h(t)},S=e.metadata?.connectionColor,C=S?{backgroundColor:t?S:`${S}33`,color:t&&tm(S)?`#fff`:void 0}:void 0;return(0,U.jsxs)(`div`,{className:`relative flex items-center`,children:[r&&(0,U.jsx)(`div`,{className:`absolute left-0 top-1 bottom-1 w-0.5 bg-primary rounded-full z-10`}),(0,U.jsxs)(`button`,{ref:m,"data-tab-item":!0,draggable:!g,onClick:a,onAuxClick:t=>{t.button===1&&e.closable&&(t.preventDefault(),s())},onDragStart:c,onDragOver:l,onDragEnd:u,onTouchStart:d,onTouchMove:f,onTouchEnd:p,style:C,className:I(`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`,!C&&(t?`border-primary text-primary`:`border-transparent text-text-secondary hover:text-foreground`),C&&`border-transparent`),children:[(0,U.jsxs)(`span`,{className:`relative`,children:[(0,U.jsx)(n,{className:`size-4`}),i&&!t&&(0,U.jsx)(`span`,{className:I(`absolute -top-1 -right-1 size-2 rounded-full`,Kp(i))})]}),g?(0,U.jsx)(`input`,{ref:b,value:v,onChange:e=>y(e.target.value),onBlur:x,onKeyDown:e=>{e.key===`Enter`&&x(),e.key===`Escape`&&_(!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,U.jsx)(`span`,{className:`max-w-[120px] truncate`,onDoubleClick:e=>{h&&(e.stopPropagation(),_(!0))},children:e.title}),e.closable&&!g&&(0,U.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,U.jsx)(o,{className:`size-3`})})]})]})}var rm={terminal:Xt,chat:yt,editor:Ke,database:ze,sqlite:ze,postgres:ze,"git-graph":nt,"git-diff":qe,settings:Kt,ports:it,"extension-webview":Lt};function im({panelId:e}){ip(e=>e.activeProject);let t=(0,V.useRef)(new Map),n=(0,V.useRef)(null),r=(0,V.useRef)(0),i=Q(t=>e?t.panels[e]:t.panels[t.focusedPanelId]),a=i?.tabs??[],o=i?.activeTabId??null,c=i?.id??Q.getState().focusedPanelId,{dropIndex:l,handleDragStart:u,handleDragOver:d,handleDragOverBar:f,handleDrop:p,handleDragEnd:m}=pp(c),{handleTouchStart:h,handleTouchMove:g,handleTouchEnd:_}=Np(c),v=qp(e=>e.notifications),{canScrollLeft:y,canScrollRight:b,scrollLeft:x,scrollRight:S}=Xp(n),C=Qp(n.current,t.current,a,v);(0,V.useEffect)(()=>{if(a.length>r.current&&o){let e=t.current.get(o);e&&e.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`nearest`})}r.current=a.length},[a.length,o]);let w=(0,V.useCallback)((e,t)=>{ap.getState().updateTab(e.id,{title:t});let n=e.metadata?.projectName,r=e.metadata?.sessionId;n&&r&&z.patch(`${R(n)}/chat/sessions/${r}`,{title:t}).catch(()=>{})},[]);function T(e){e.target.closest(`[data-tab-item]`)||Hp()}function E(e){e.target.closest(`[data-tab-item]`)||(e.preventDefault(),Hp())}return(0,U.jsxs)(`div`,{className:`hidden md:flex items-center h-10 border-b border-border bg-background relative`,onDragOver:f,onDrop:p,onDoubleClick:T,onContextMenu:E,children:[y&&(0,U.jsx)(`button`,{onClick:x,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,U.jsxs)(`span`,{className:`relative`,children:[(0,U.jsx)(Oe,{className:`size-4 text-text-secondary`}),C.left&&(0,U.jsx)(`span`,{className:I(`absolute -top-1 -right-0.5 size-2 rounded-full`,Kp(C.left))})]})}),(0,U.jsx)(`div`,{ref:n,className:`flex-1 overflow-x-auto overflow-y-hidden min-w-0 scrollbar-none`,children:(0,U.jsxs)(`div`,{className:`flex items-center h-10`,children:[a.map((e,n)=>{let r=e.type===`chat`?e.metadata?.sessionId:void 0,i=r?v.get(r):void 0,a=i&&i.count>0?i.type:null;return(0,U.jsx)(nm,{tab:e,isActive:e.id===o,icon:rm[e.type],showDropBefore:l===n,notificationType:a,onSelect:()=>{bp()||(Q.getState().setActiveTab(e.id,c),r&&qp.getState().clearForSession(r))},onClose:()=>Q.getState().closeTab(e.id,c),onDragStart:t=>u(t,e.id),onDragOver:t=>d(t,e.id,n),onDragEnd:m,onTouchStart:t=>h(t,e.id,e.title),onTouchMove:g,onTouchEnd:_,tabRef:n=>{n?t.current.set(e.id,n):t.current.delete(e.id)},onRename:e.type===`chat`?t=>w(e,t):void 0},e.id)}),l!==null&&l>=a.length&&(0,U.jsx)(`div`,{className:`w-0.5 h-6 bg-primary rounded-full`}),(0,U.jsx)(`button`,{onClick:()=>Hp(),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,U.jsx)(Pt,{className:`size-4`})})]})}),b&&(0,U.jsx)(`button`,{onClick:S,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,U.jsxs)(`span`,{className:`relative`,children:[(0,U.jsx)(s,{className:`size-4 text-text-secondary`}),C.right&&(0,U.jsx)(`span`,{className:I(`absolute -top-1 -left-0.5 size-2 rounded-full`,Kp(C.right))})]})})]})}function am({panelId:e}){let[t,n]=(0,V.useState)(null),r=dp(),i=yp(),a=(i?.panelId===e?i.zone:null)??t,o=Q(e=>e.grid),s=Q(e=>e.isMobile()),c=Lf(o,e),l=!s&&o.length<3,u=c?!s&&(o[c.row]?.length??0)<Ff(!1):!1,d=(0,V.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,V.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.stopPropagation(),n(d(e)))},[d]),p=(0,V.useCallback)(e=>{e.currentTarget.contains(e.relatedTarget)||n(null)},[]),m=(0,V.useCallback)(t=>{t.preventDefault(),t.stopPropagation();let r=d(t);if(n(null),fp(),!r)return;let i=t.dataTransfer.getData(sp);if(i)try{let t=JSON.parse(i),n=Q.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,U.jsxs)(`div`,{className:`absolute inset-0 z-20`,onDragOver:f,onDragLeave:p,onDrop:m,children:[a===`left`&&(0,U.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,U.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,U.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,U.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,U.jsx)(`div`,{className:`absolute inset-0 bg-primary/5 border-2 border-dashed border-primary/30 rounded-md`})]}):null}var om=[{type:`terminal`,label:`Terminal`,icon:Xt},{type:`chat`,label:`AI Chat`,icon:yt},{type:`git-graph`,label:`Git Graph`,icon:nt}],sm={terminal:(0,V.lazy)(()=>l(()=>import(`./terminal-tab-DUz3dmkj.js`).then(e=>({default:e.TerminalTab})),__vite__mapDeps([3,1,4,5,6,7]))),chat:(0,V.lazy)(()=>l(()=>import(`./chat-tab-ByDDO6Pl.js`).then(e=>({default:e.ChatTab})),__vite__mapDeps([8,1,9,10,11,12,6,5,13,14,15,16,17,18,4,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,2,37,38,39,0]))),editor:(0,V.lazy)(()=>l(()=>import(`./code-editor-D8VveTUt.js`).then(e=>({default:e.CodeEditor})),__vite__mapDeps([40,1,9,10,11,12,6,5,13,14,15,16,17,18,41,4,19,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,2,42,43,44]))),database:(0,V.lazy)(()=>l(()=>import(`./database-viewer-CcTlsR2D.js`).then(e=>({default:e.DatabaseViewer})),__vite__mapDeps([45,1,41,6,19,21,22,5,46,44,2,47]))),sqlite:(0,V.lazy)(()=>l(()=>import(`./sqlite-viewer-jSYguEYD.js`).then(e=>({default:e.SqliteViewer})),__vite__mapDeps([48,1,41,6,49,22,19,42,5,46,44,2]))),postgres:(0,V.lazy)(()=>l(()=>import(`./postgres-viewer-Nlg7DV9i.js`).then(e=>({default:e.PostgresViewer})),__vite__mapDeps([50,1,49,6,22,19,42,5,2]))),"git-graph":(0,V.lazy)(()=>l(()=>import(`./git-graph-Ce8pbmQX.js`).then(e=>({default:e.GitGraph})),__vite__mapDeps([51,1,11,12,6,5,4,19,21,39,2]))),"git-diff":(0,V.lazy)(()=>l(()=>import(`./diff-viewer-CXU5BvCX.js`).then(e=>({default:e.DiffViewer})),__vite__mapDeps([52,1,41,6,19,37,43,5,2]))),settings:(0,V.lazy)(()=>l(()=>import(`./settings-tab-BY9LX5Du.js`).then(e=>({default:e.SettingsTab})),__vite__mapDeps([53,11,1,12,6,5,2,0]))),ports:(0,V.lazy)(()=>l(()=>import(`./port-forwarding-tab-D15vANLc.js`).then(e=>({default:e.PortForwardingTab})),__vite__mapDeps([54,1,19,6,38,12,5,2]))),"extension-webview":(0,V.lazy)(()=>l(()=>import(`./extension-webview-Dzkyl-2t.js`).then(e=>({default:e.ExtensionWebview})),__vite__mapDeps([55,1,5,6])))};function cm({panelId:e,projectName:t}){let n=Q(t=>t.panels[e]),r=Q(t=>t.focusedPanelId===e),i=Q(e=>(e.currentProject===t?e.grid:e.projectGrids[t]??[[]]).flat().length);return n?(0,U.jsxs)(`div`,{className:I(`flex flex-col h-full overflow-hidden`,i>1&&`border border-transparent`,i>1&&r&&`border-primary/30`),onMouseDown:()=>{Q.getState().focusedPanelId!==e&&Q.getState().setFocusedPanel(e)},children:[(0,U.jsx)(im,{panelId:e}),(0,U.jsxs)(`div`,{className:`flex-1 overflow-hidden relative`,"data-panel-drop-zone":e,children:[n.tabs.length===0?(0,U.jsx)(fm,{panelId:e}):n.tabs.map(e=>{let t=sm[e.type];return(0,U.jsx)(`div`,{className:e.id===n.activeTabId?`h-full w-full`:`hidden`,children:(0,U.jsx)(V.Suspense,{fallback:(0,U.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,U.jsx)(B,{className:`size-6 animate-spin text-primary`})}),children:(0,U.jsx)(t,{metadata:e.metadata,tabId:e.id})})},e.id)}),(0,U.jsx)(am,{panelId:e})]})]}):null}function lm(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``}}var um=5,dm=20;function fm({panelId:e}){let t=ip(e=>e.activeProject),[n,r]=(0,V.useState)([]),[i,o]=(0,V.useState)(!1),[s,c]=(0,V.useState)(!1),l=(0,V.useCallback)(async()=>{if(t?.name){o(!0);try{r((await z.get(`${R(t.name)}/chat/sessions?limit=${dm}`)).sessions.slice(0,dm))}catch{}finally{o(!1)}}},[t?.name]);(0,V.useEffect)(()=>{l()},[l]);let u=(0,V.useCallback)(async(e,n)=>{if(e.stopPropagation(),!t?.name)return;let i=`${R(t.name)}/chat/sessions/${n.id}/pin`;try{n.pinned?await z.del(i):await z.put(i),r(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{}},[t?.name]);function d(n){let r=n!==`settings`&&t?{projectName:t.name}:void 0;Q.getState().openTab({type:n,title:om.find(e=>e.type===n)?.label??n,metadata:r,projectId:t?.name??null,closable:!0},e)}function f(n){Q.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)}let p=n.filter(e=>e.pinned),m=n.filter(e=>!e.pinned),h=s?m:m.slice(0,um),g=m.length>um;function _(e){return(0,U.jsxs)(`button`,{onClick:()=>f(e),className:`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`,children:[(0,U.jsx)(yt,{className:`size-3.5 shrink-0 text-text-subtle`}),(0,U.jsx)(`span`,{className:`flex-1 min-w-0 text-xs font-medium truncate text-text-primary`,children:e.title||`Untitled`}),e.updatedAt&&(0,U.jsx)(`span`,{className:`text-[10px] text-text-subtle shrink-0`,children:lm(e.updatedAt)}),(0,U.jsx)(`span`,{role:`button`,tabIndex:0,onClick:t=>u(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,U.jsx)(At,{className:`size-3`}):(0,U.jsx)(jt,{className:`size-3`})})]},e.id)}return(0,U.jsx)(`div`,{className:`flex flex-col h-full overflow-y-auto text-text-secondary`,children:(0,U.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-6 px-4 flex-1`,children:[(0,U.jsx)(`p`,{className:`text-sm`,children:`Open a tab to get started`}),(0,U.jsx)(`div`,{className:`grid grid-cols-3 gap-2 w-full max-w-sm`,children:om.map(e=>{let t=e.icon;return(0,U.jsxs)(`button`,{onClick:()=>d(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,U.jsx)(t,{className:`size-5`}),e.label]},e.type)})}),t&&!i&&p.length>0&&(0,U.jsxs)(`div`,{className:`flex flex-col gap-2 w-full max-w-sm`,children:[(0,U.jsx)(`p`,{className:`text-xs text-text-subtle text-center`,children:`Pinned`}),(0,U.jsx)(`div`,{className:`w-full rounded-md border border-border bg-surface overflow-hidden`,children:p.map(_)})]}),t&&!i&&h.length>0&&(0,U.jsxs)(`div`,{className:`flex flex-col gap-2 w-full max-w-sm`,children:[(0,U.jsx)(`p`,{className:`text-xs text-text-subtle text-center`,children:`Recent chats`}),(0,U.jsx)(`div`,{className:`w-full rounded-md border border-border bg-surface overflow-hidden`,children:h.map(_)}),g&&(0,U.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,U.jsx)(ke,{className:`size-3`}):(0,U.jsx)(a,{className:`size-3`}),s?`Show less`:`Show more (${m.length-um})`]})]})]})})}function pm({projectName:e}){let t=Q(t=>t.currentProject===e?t.grid:t.projectGrids[e]??[[]]),n=t.flat().length;return(0,V.useEffect)(()=>{if(n===0){let e=Pf();Q.setState(t=>({panels:{...t.panels,[e.id]:e},grid:[[e.id]],focusedPanelId:e.id}))}},[n]),n===0?null:n===1&&t[0]?.[0]?(0,U.jsx)(cm,{panelId:t[0][0],projectName:e}):(0,U.jsx)(Ef,{orientation:`vertical`,style:{height:`100%`},children:t.map((n,r)=>(0,U.jsx)(mm,{row:n,rowIdx:r,totalRows:t.length,projectName:e},`row-${r}`))})}function mm({row:e,rowIdx:t,totalRows:n,projectName:r}){return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(kf,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:e.length===1?(0,U.jsx)(cm,{panelId:e[0],projectName:r}):(0,U.jsx)(Ef,{orientation:`horizontal`,children:e.map((t,n)=>(0,U.jsx)(hm,{panelId:t,colIdx:n,totalCols:e.length,projectName:r},t))})}),t<n-1&&(0,U.jsx)(gm,{orientation:`horizontal`})]})}function hm({panelId:e,colIdx:t,totalCols:n,projectName:r}){return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(kf,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:(0,U.jsx)(cm,{panelId:e,projectName:r})}),t<n-1&&(0,U.jsx)(gm,{orientation:`vertical`})]})}function gm({orientation:e}){let t=e===`vertical`;return(0,U.jsx)(Mf,{className:`
14
+ For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return V.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},kr=`DialogDescriptionWarning`,Ar=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Dr(kr).contentName}}.`;return V.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},jr=nr,Mr=ir,Nr=cr,Pr=ur,Fr=mr,Ir=yr,Lr=xr,Rr=Cr;function zr(e){let t=V.useRef({value:e,previous:e});return V.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var Br=`rovingFocusGroup.onEntryFocus`,Vr={bubbles:!1,cancelable:!0},Hr=`RovingFocusGroup`,[Ur,Wr,Gr]=y(Hr),[Kr,qr]=h(Hr,[Gr]),[Jr,Yr]=Kr(Hr),Xr=V.forwardRef((e,t)=>(0,U.jsx)(Ur.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,U.jsx)(Ur.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,U.jsx)(Zr,{...e,ref:t})})}));Xr.displayName=Hr;var Zr=V.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:o,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:l,preventScrollOnEntryFocus:u=!1,...f}=e,p=V.useRef(null),m=E(t,p),h=O(a),[g,v]=_({prop:o,defaultProp:s??null,onChange:c,caller:Hr}),[y,b]=V.useState(!1),x=j(l),S=Wr(n),C=V.useRef(!1),[w,T]=V.useState(0);return V.useEffect(()=>{let e=p.current;if(e)return e.addEventListener(Br,x),()=>e.removeEventListener(Br,x)},[x]),(0,U.jsx)(Jr,{scope:n,orientation:r,dir:h,loop:i,currentTabStopId:g,onItemFocus:V.useCallback(e=>v(e),[v]),onItemShiftTab:V.useCallback(()=>b(!0),[]),onFocusableItemAdd:V.useCallback(()=>T(e=>e+1),[]),onFocusableItemRemove:V.useCallback(()=>T(e=>e-1),[]),children:(0,U.jsx)(d.div,{tabIndex:y||w===0?-1:0,"data-orientation":r,...f,ref:m,style:{outline:`none`,...e.style},onMouseDown:F(e.onMouseDown,()=>{C.current=!0}),onFocus:F(e.onFocus,e=>{let t=!C.current;if(e.target===e.currentTarget&&t&&!y){let t=new CustomEvent(Br,Vr);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=S().filter(e=>e.focusable);ri([e.find(e=>e.active),e.find(e=>e.id===g),...e].filter(Boolean).map(e=>e.ref.current),u)}}C.current=!1}),onBlur:F(e.onBlur,()=>b(!1))})})}),Qr=`RovingFocusGroupItem`,$r=V.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=w(),l=a||c,u=Yr(Qr,n),f=u.currentTabStopId===l,p=Wr(n),{onFocusableItemAdd:m,onFocusableItemRemove:h,currentTabStopId:g}=u;return V.useEffect(()=>{if(r)return m(),()=>h()},[r,m,h]),(0,U.jsx)(Ur.ItemSlot,{scope:n,id:l,focusable:r,active:i,children:(0,U.jsx)(d.span,{tabIndex:f?0:-1,"data-orientation":u.orientation,...s,ref:t,onMouseDown:F(e.onMouseDown,e=>{r?u.onItemFocus(l):e.preventDefault()}),onFocus:F(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:F(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){u.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=ni(e,u.orientation,u.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=p().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=u.loop?ii(n,r+1):n.slice(r+1)}setTimeout(()=>ri(n))}}),children:typeof o==`function`?o({isCurrentTabStop:f,hasTabStop:g!=null}):o})})});$r.displayName=Qr;var ei={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function ti(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function ni(e,t,n){let r=ti(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return ei[r]}function ri(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function ii(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var ai=Xr,oi=$r,si=[`Enter`,` `],ci=[`ArrowDown`,`PageUp`,`Home`],li=[`ArrowUp`,`PageDown`,`End`],ui=[...ci,...li],di={ltr:[...si,`ArrowRight`],rtl:[...si,`ArrowLeft`]},fi={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]},pi=`Menu`,[mi,hi,gi]=y(pi),[_i,vi]=h(pi,[gi,v,qr]),yi=v(),bi=qr(),[xi,Si]=_i(pi),[Ci,wi]=_i(pi),Ti=e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:a,modal:o=!0}=e,s=yi(t),[c,l]=V.useState(null),u=V.useRef(!1),d=j(a),f=O(i);return V.useEffect(()=>{let e=()=>{u.current=!0,document.addEventListener(`pointerdown`,t,{capture:!0,once:!0}),document.addEventListener(`pointermove`,t,{capture:!0,once:!0})},t=()=>u.current=!1;return document.addEventListener(`keydown`,e,{capture:!0}),()=>{document.removeEventListener(`keydown`,e,{capture:!0}),document.removeEventListener(`pointerdown`,t,{capture:!0}),document.removeEventListener(`pointermove`,t,{capture:!0})}},[]),(0,U.jsx)(T,{...s,children:(0,U.jsx)(xi,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:l,children:(0,U.jsx)(Ci,{scope:t,onClose:V.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:u,dir:f,modal:o,children:r})})})};Ti.displayName=pi;var Ei=`MenuAnchor`,Di=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=yi(n);return(0,U.jsx)(M,{...i,...r,ref:t})});Di.displayName=Ei;var Oi=`MenuPortal`,[ki,W]=_i(Oi,{forceMount:void 0}),Ai=e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=Si(Oi,t);return(0,U.jsx)(ki,{scope:t,forceMount:n,children:(0,U.jsx)(C,{present:n||a.open,children:(0,U.jsx)(N,{asChild:!0,container:i,children:r})})})};Ai.displayName=Oi;var ji=`MenuContent`,[Mi,Ni]=_i(ji),Pi=V.forwardRef((e,t)=>{let n=W(ji,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Si(ji,e.__scopeMenu),o=wi(ji,e.__scopeMenu);return(0,U.jsx)(mi.Provider,{scope:e.__scopeMenu,children:(0,U.jsx)(C,{present:r||a.open,children:(0,U.jsx)(mi.Slot,{scope:e.__scopeMenu,children:o.modal?(0,U.jsx)(Fi,{...i,ref:t}):(0,U.jsx)(Ii,{...i,ref:t})})})})}),Fi=V.forwardRef((e,t)=>{let n=Si(ji,e.__scopeMenu),r=V.useRef(null),i=E(t,r);return V.useEffect(()=>{let e=r.current;if(e)return te(e)},[]),(0,U.jsx)(Ri,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:F(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),Ii=V.forwardRef((e,t)=>{let n=Si(ji,e.__scopeMenu);return(0,U.jsx)(Ri,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),Li=p(`MenuContent.ScrollLock`),Ri=V.forwardRef((e,t)=>{let{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:o,disableOutsidePointerEvents:s,onEntryFocus:c,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,disableOutsideScroll:m,...h}=e,g=Si(ji,n),_=wi(ji,n),v=yi(n),y=bi(n),C=hi(n),[w,T]=V.useState(null),O=V.useRef(null),k=E(t,O,g.onContentChange),A=V.useRef(0),j=V.useRef(``),te=V.useRef(0),M=V.useRef(null),N=V.useRef(`right`),P=V.useRef(0),ne=m?b:V.Fragment,re=m?{as:Li,allowPinchZoom:!0}:void 0,ie=e=>{let t=j.current+e,n=C().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=Sa(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;(function e(t){j.current=t,window.clearTimeout(A.current),t!==``&&(A.current=window.setTimeout(()=>e(``),1e3))})(t),o&&setTimeout(()=>o.focus())};V.useEffect(()=>()=>window.clearTimeout(A.current),[]),D();let I=V.useCallback(e=>N.current===M.current?.side&&wa(e,M.current?.area),[]);return(0,U.jsx)(Mi,{scope:n,searchRef:j,onItemEnter:V.useCallback(e=>{I(e)&&e.preventDefault()},[I]),onItemLeave:V.useCallback(e=>{I(e)||(O.current?.focus(),T(null))},[I]),onTriggerLeave:V.useCallback(e=>{I(e)&&e.preventDefault()},[I]),pointerGraceTimerRef:te,onPointerGraceIntentChange:V.useCallback(e=>{M.current=e},[]),children:(0,U.jsx)(ne,{...re,children:(0,U.jsx)(x,{asChild:!0,trapped:i,onMountAutoFocus:F(a,e=>{e.preventDefault(),O.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:o,children:(0,U.jsx)(S,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,children:(0,U.jsx)(ai,{asChild:!0,...y,dir:_.dir,orientation:`vertical`,loop:r,currentTabStopId:w,onCurrentTabStopIdChange:T,onEntryFocus:F(c,e=>{_.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,U.jsx)(ee,{role:`menu`,"aria-orientation":`vertical`,"data-state":_a(g.open),"data-radix-menu-content":``,dir:_.dir,...v,...h,ref:k,style:{outline:`none`,...h.style},onKeyDown:F(h.onKeyDown,e=>{let t=e.target.closest(`[data-radix-menu-content]`)===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=e.key.length===1;t&&(e.key===`Tab`&&e.preventDefault(),!n&&r&&ie(e.key));let i=O.current;if(e.target!==i||!ui.includes(e.key))return;e.preventDefault();let a=C().filter(e=>!e.disabled).map(e=>e.ref.current);li.includes(e.key)&&a.reverse(),ba(a)}),onBlur:F(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(A.current),j.current=``)}),onPointerMove:F(e.onPointerMove,Ta(e=>{let t=e.target,n=P.current!==e.clientX;e.currentTarget.contains(t)&&n&&(N.current=e.clientX>P.current?`right`:`left`,P.current=e.clientX)}))})})})})})})});Pi.displayName=ji;var zi=`MenuGroup`,Bi=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,U.jsx)(d.div,{role:`group`,...r,ref:t})});Bi.displayName=zi;var Vi=`MenuLabel`,Hi=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,U.jsx)(d.div,{...r,ref:t})});Hi.displayName=Vi;var Ui=`MenuItem`,Wi=`menu.itemSelect`,Gi=V.forwardRef((e,t)=>{let{disabled:n=!1,onSelect:r,...i}=e,a=V.useRef(null),o=wi(Ui,e.__scopeMenu),s=Ni(Ui,e.__scopeMenu),c=E(t,a),l=V.useRef(!1),u=()=>{let e=a.current;if(!n&&e){let t=new CustomEvent(Wi,{bubbles:!0,cancelable:!0});e.addEventListener(Wi,e=>r?.(e),{once:!0}),ne(e,t),t.defaultPrevented?l.current=!1:o.onClose()}};return(0,U.jsx)(Ki,{...i,ref:c,disabled:n,onClick:F(e.onClick,u),onPointerDown:t=>{e.onPointerDown?.(t),l.current=!0},onPointerUp:F(e.onPointerUp,e=>{l.current||e.currentTarget?.click()}),onKeyDown:F(e.onKeyDown,e=>{let t=s.searchRef.current!==``;n||t&&e.key===` `||si.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});Gi.displayName=Ui;var Ki=V.forwardRef((e,t)=>{let{__scopeMenu:n,disabled:r=!1,textValue:i,...a}=e,o=Ni(Ui,n),s=bi(n),c=V.useRef(null),l=E(t,c),[u,f]=V.useState(!1),[p,m]=V.useState(``);return V.useEffect(()=>{let e=c.current;e&&m((e.textContent??``).trim())},[a.children]),(0,U.jsx)(mi.ItemSlot,{scope:n,disabled:r,textValue:i??p,children:(0,U.jsx)(oi,{asChild:!0,...s,focusable:!r,children:(0,U.jsx)(d.div,{role:`menuitem`,"data-highlighted":u?``:void 0,"aria-disabled":r||void 0,"data-disabled":r?``:void 0,...a,ref:l,onPointerMove:F(e.onPointerMove,Ta(e=>{r?o.onItemLeave(e):(o.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:F(e.onPointerLeave,Ta(e=>o.onItemLeave(e))),onFocus:F(e.onFocus,()=>f(!0)),onBlur:F(e.onBlur,()=>f(!1))})})})}),qi=`MenuCheckboxItem`,Ji=V.forwardRef((e,t)=>{let{checked:n=!1,onCheckedChange:r,...i}=e;return(0,U.jsx)(na,{scope:e.__scopeMenu,checked:n,children:(0,U.jsx)(Gi,{role:`menuitemcheckbox`,"aria-checked":va(n)?`mixed`:n,...i,ref:t,"data-state":ya(n),onSelect:F(i.onSelect,()=>r?.(va(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Ji.displayName=qi;var Yi=`MenuRadioGroup`,[Xi,Zi]=_i(Yi,{value:void 0,onValueChange:()=>{}}),Qi=V.forwardRef((e,t)=>{let{value:n,onValueChange:r,...i}=e,a=j(r);return(0,U.jsx)(Xi,{scope:e.__scopeMenu,value:n,onValueChange:a,children:(0,U.jsx)(Bi,{...i,ref:t})})});Qi.displayName=Yi;var $i=`MenuRadioItem`,ea=V.forwardRef((e,t)=>{let{value:n,...r}=e,i=Zi($i,e.__scopeMenu),a=n===i.value;return(0,U.jsx)(na,{scope:e.__scopeMenu,checked:a,children:(0,U.jsx)(Gi,{role:`menuitemradio`,"aria-checked":a,...r,ref:t,"data-state":ya(a),onSelect:F(r.onSelect,()=>i.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});ea.displayName=$i;var ta=`MenuItemIndicator`,[na,ra]=_i(ta,{checked:!1}),ia=V.forwardRef((e,t)=>{let{__scopeMenu:n,forceMount:r,...i}=e,a=ra(ta,n);return(0,U.jsx)(C,{present:r||va(a.checked)||a.checked===!0,children:(0,U.jsx)(d.span,{...i,ref:t,"data-state":ya(a.checked)})})});ia.displayName=ta;var aa=`MenuSeparator`,oa=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,U.jsx)(d.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})});oa.displayName=aa;var sa=`MenuArrow`,ca=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=yi(n);return(0,U.jsx)(k,{...i,...r,ref:t})});ca.displayName=sa;var la=`MenuSub`,[ua,da]=_i(la),fa=e=>{let{__scopeMenu:t,children:n,open:r=!1,onOpenChange:i}=e,a=Si(la,t),o=yi(t),[s,c]=V.useState(null),[l,u]=V.useState(null),d=j(i);return V.useEffect(()=>(a.open===!1&&d(!1),()=>d(!1)),[a.open,d]),(0,U.jsx)(T,{...o,children:(0,U.jsx)(xi,{scope:t,open:r,onOpenChange:d,content:l,onContentChange:u,children:(0,U.jsx)(ua,{scope:t,contentId:w(),triggerId:w(),trigger:s,onTriggerChange:c,children:n})})})};fa.displayName=la;var pa=`MenuSubTrigger`,ma=V.forwardRef((e,t)=>{let n=Si(pa,e.__scopeMenu),r=wi(pa,e.__scopeMenu),i=da(pa,e.__scopeMenu),a=Ni(pa,e.__scopeMenu),o=V.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:c}=a,l={__scopeMenu:e.__scopeMenu},u=V.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=null},[]);return V.useEffect(()=>u,[u]),V.useEffect(()=>{let e=s.current;return()=>{window.clearTimeout(e),c(null)}},[s,c]),(0,U.jsx)(Di,{asChild:!0,...l,children:(0,U.jsx)(Ki,{id:i.triggerId,"aria-haspopup":`menu`,"aria-expanded":n.open,"aria-controls":i.contentId,"data-state":_a(n.open),...e,ref:m(t,i.onTriggerChange),onClick:t=>{e.onClick?.(t),!(e.disabled||t.defaultPrevented)&&(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:F(e.onPointerMove,Ta(t=>{a.onItemEnter(t),!t.defaultPrevented&&!e.disabled&&!n.open&&!o.current&&(a.onPointerGraceIntentChange(null),o.current=window.setTimeout(()=>{n.onOpenChange(!0),u()},100))})),onPointerLeave:F(e.onPointerLeave,Ta(e=>{u();let t=n.content?.getBoundingClientRect();if(t){let r=n.content?.dataset.side,i=r===`right`,o=i?-5:5,c=t[i?`left`:`right`],l=t[i?`right`:`left`];a.onPointerGraceIntentChange({area:[{x:e.clientX+o,y:e.clientY},{x:c,y:t.top},{x:l,y:t.top},{x:l,y:t.bottom},{x:c,y:t.bottom}],side:r}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(e),e.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:F(e.onKeyDown,t=>{let i=a.searchRef.current!==``;e.disabled||i&&t.key===` `||di[r.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())})})})});ma.displayName=pa;var ha=`MenuSubContent`,ga=V.forwardRef((e,t)=>{let n=W(ji,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Si(ji,e.__scopeMenu),o=wi(ji,e.__scopeMenu),s=da(ha,e.__scopeMenu),c=V.useRef(null),l=E(t,c);return(0,U.jsx)(mi.Provider,{scope:e.__scopeMenu,children:(0,U.jsx)(C,{present:r||a.open,children:(0,U.jsx)(mi.Slot,{scope:e.__scopeMenu,children:(0,U.jsx)(Ri,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:l,align:`start`,side:o.dir===`rtl`?`left`:`right`,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{o.isUsingKeyboardRef.current&&c.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:F(e.onFocusOutside,e=>{e.target!==s.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:F(e.onEscapeKeyDown,e=>{o.onClose(),e.preventDefault()}),onKeyDown:F(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=fi[o.dir].includes(e.key);t&&n&&(a.onOpenChange(!1),s.trigger?.focus(),e.preventDefault())})})})})})});ga.displayName=ha;function _a(e){return e?`open`:`closed`}function va(e){return e===`indeterminate`}function ya(e){return va(e)?`indeterminate`:e?`checked`:`unchecked`}function ba(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function xa(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Sa(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=xa(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function Ca(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function wa(e,t){return t?Ca({x:e.clientX,y:e.clientY},t):!1}function Ta(e){return t=>t.pointerType===`mouse`?e(t):void 0}var Ea=Ti,Da=Di,Oa=Ai,ka=Pi,Aa=Bi,ja=Hi,Ma=Gi,Na=Ji,Pa=Qi,Fa=ea,Ia=ia,La=oa,Ra=ca,za=fa,Ba=ma,Va=ga,Ha=`ContextMenu`,[Ua,Wa]=h(Ha,[vi]),Ga=vi(),[Ka,qa]=Ua(Ha),Ja=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:a=!0}=e,[o,s]=V.useState(!1),c=Ga(t),l=j(r),u=V.useCallback(e=>{s(e),l(e)},[l]);return(0,U.jsx)(Ka,{scope:t,open:o,onOpenChange:u,modal:a,children:(0,U.jsx)(Ea,{...c,dir:i,open:o,onOpenChange:u,modal:a,children:n})})};Ja.displayName=Ha;var Ya=`ContextMenuTrigger`,Xa=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,disabled:r=!1,...i}=e,a=qa(Ya,n),o=Ga(n),s=V.useRef({x:0,y:0}),c=V.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...s.current})}),l=V.useRef(0),u=V.useCallback(()=>window.clearTimeout(l.current),[]),f=e=>{s.current={x:e.clientX,y:e.clientY},a.onOpenChange(!0)};return V.useEffect(()=>u,[u]),V.useEffect(()=>void(r&&u()),[r,u]),(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Da,{...o,virtualRef:c}),(0,U.jsx)(d.span,{"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,...i,ref:t,style:{WebkitTouchCallout:`none`,...e.style},onContextMenu:r?e.onContextMenu:F(e.onContextMenu,e=>{u(),f(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:F(e.onPointerDown,To(e=>{u(),l.current=window.setTimeout(()=>f(e),700)})),onPointerMove:r?e.onPointerMove:F(e.onPointerMove,To(u)),onPointerCancel:r?e.onPointerCancel:F(e.onPointerCancel,To(u)),onPointerUp:r?e.onPointerUp:F(e.onPointerUp,To(u))})]})});Xa.displayName=Ya;var Za=`ContextMenuPortal`,Qa=e=>{let{__scopeContextMenu:t,...n}=e,r=Ga(t);return(0,U.jsx)(Oa,{...r,...n})};Qa.displayName=Za;var $a=`ContextMenuContent`,eo=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=qa($a,n),a=Ga(n),o=V.useRef(!1);return(0,U.jsx)(ka,{...a,...r,ref:t,side:`right`,sideOffset:2,align:`start`,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),!t.defaultPrevented&&o.current&&t.preventDefault(),o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),!t.defaultPrevented&&!i.modal&&(o.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-context-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-context-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-context-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-context-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});eo.displayName=$a;var to=`ContextMenuGroup`,no=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Aa,{...i,...r,ref:t})});no.displayName=to;var ro=`ContextMenuLabel`,io=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(ja,{...i,...r,ref:t})});io.displayName=ro;var ao=`ContextMenuItem`,oo=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Ma,{...i,...r,ref:t})});oo.displayName=ao;var so=`ContextMenuCheckboxItem`,G=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Na,{...i,...r,ref:t})});G.displayName=so;var co=`ContextMenuRadioGroup`,lo=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Pa,{...i,...r,ref:t})});lo.displayName=co;var uo=`ContextMenuRadioItem`,fo=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Fa,{...i,...r,ref:t})});fo.displayName=uo;var po=`ContextMenuItemIndicator`,mo=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Ia,{...i,...r,ref:t})});mo.displayName=po;var ho=`ContextMenuSeparator`,go=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(La,{...i,...r,ref:t})});go.displayName=ho;var _o=`ContextMenuArrow`,vo=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Ra,{...i,...r,ref:t})});vo.displayName=_o;var yo=`ContextMenuSub`,bo=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,defaultOpen:a}=e,o=Ga(t),[s,c]=_({prop:i,defaultProp:a??!1,onChange:r,caller:yo});return(0,U.jsx)(za,{...o,open:s,onOpenChange:c,children:n})};bo.displayName=yo;var xo=`ContextMenuSubTrigger`,So=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Ba,{...i,...r,ref:t})});So.displayName=xo;var Co=`ContextMenuSubContent`,wo=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Ga(n);return(0,U.jsx)(Va,{...i,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-context-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-context-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-context-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-context-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});wo.displayName=Co;function To(e){return t=>t.pointerType===`mouse`?void 0:e(t)}var Eo=Ja,Do=Xa,Oo=Qa,ko=eo,Ao=oo,jo=go,Mo=`DropdownMenu`,[No,Po]=h(Mo,[vi]),Fo=vi(),[Io,Lo]=No(Mo),Ro=e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:s=!0}=e,c=Fo(t),l=V.useRef(null),[u,d]=_({prop:i,defaultProp:a??!1,onChange:o,caller:Mo});return(0,U.jsx)(Io,{scope:t,triggerId:w(),triggerRef:l,contentId:w(),open:u,onOpenChange:d,onOpenToggle:V.useCallback(()=>d(e=>!e),[d]),modal:s,children:(0,U.jsx)(Ea,{...c,open:u,onOpenChange:d,dir:r,modal:s,children:n})})};Ro.displayName=Mo;var zo=`DropdownMenuTrigger`,Bo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,a=Lo(zo,n),o=Fo(n);return(0,U.jsx)(Da,{asChild:!0,...o,children:(0,U.jsx)(d.button,{type:`button`,id:a.triggerId,"aria-haspopup":`menu`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...i,ref:m(t,a.triggerRef),onPointerDown:F(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:F(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&a.onOpenToggle(),e.key===`ArrowDown`&&a.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})});Bo.displayName=zo;var Vo=`DropdownMenuPortal`,Ho=e=>{let{__scopeDropdownMenu:t,...n}=e,r=Fo(t);return(0,U.jsx)(Oa,{...r,...n})};Ho.displayName=Vo;var Uo=`DropdownMenuContent`,Wo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Lo(Uo,n),a=Fo(n),o=V.useRef(!1);return(0,U.jsx)(ka,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:F(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:F(e.onInteractOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;(!i.modal||r)&&(o.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});Wo.displayName=Uo;var Go=`DropdownMenuGroup`,Ko=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Aa,{...i,...r,ref:t})});Ko.displayName=Go;var qo=`DropdownMenuLabel`,Jo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(ja,{...i,...r,ref:t})});Jo.displayName=qo;var Yo=`DropdownMenuItem`,Xo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Ma,{...i,...r,ref:t})});Xo.displayName=Yo;var Zo=`DropdownMenuCheckboxItem`,Qo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Na,{...i,...r,ref:t})});Qo.displayName=Zo;var $o=`DropdownMenuRadioGroup`,es=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Pa,{...i,...r,ref:t})});es.displayName=$o;var ts=`DropdownMenuRadioItem`,ns=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Fa,{...i,...r,ref:t})});ns.displayName=ts;var rs=`DropdownMenuItemIndicator`,is=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Ia,{...i,...r,ref:t})});is.displayName=rs;var as=`DropdownMenuSeparator`,os=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(La,{...i,...r,ref:t})});os.displayName=as;var ss=`DropdownMenuArrow`,cs=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Ra,{...i,...r,ref:t})});cs.displayName=ss;var ls=e=>{let{__scopeDropdownMenu:t,children:n,open:r,onOpenChange:i,defaultOpen:a}=e,o=Fo(t),[s,c]=_({prop:r,defaultProp:a??!1,onChange:i,caller:`DropdownMenuSub`});return(0,U.jsx)(za,{...o,open:s,onOpenChange:c,children:n})},us=`DropdownMenuSubTrigger`,ds=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Ba,{...i,...r,ref:t})});ds.displayName=us;var fs=`DropdownMenuSubContent`,ps=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Fo(n);return(0,U.jsx)(Va,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});ps.displayName=fs;var ms=Ro,hs=Bo,gs=Ho,_s=Wo,vs=Xo,ys=ls,bs=ds,xs=ps,Ss=`Label`,Cs=V.forwardRef((e,t)=>(0,U.jsx)(d.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));Cs.displayName=Ss;var ws=Cs;function Ts(e,[t,n]){return Math.min(n,Math.max(t,e))}function Es(e,t){return V.useReducer((e,n)=>t[e][n]??e,e)}var Ds=`ScrollArea`,[Os,ks]=h(Ds),[As,js]=Os(Ds),Ms=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:a=600,...o}=e,[s,c]=V.useState(null),[l,u]=V.useState(null),[f,p]=V.useState(null),[m,h]=V.useState(null),[g,_]=V.useState(null),[v,y]=V.useState(0),[b,x]=V.useState(0),[S,C]=V.useState(!1),[w,T]=V.useState(!1),D=E(t,e=>c(e)),k=O(i);return(0,U.jsx)(As,{scope:n,type:r,dir:k,scrollHideDelay:a,scrollArea:s,viewport:l,onViewportChange:u,content:f,onContentChange:p,scrollbarX:m,onScrollbarXChange:h,scrollbarXEnabled:S,onScrollbarXEnabledChange:C,scrollbarY:g,onScrollbarYChange:_,scrollbarYEnabled:w,onScrollbarYEnabledChange:T,onCornerWidthChange:y,onCornerHeightChange:x,children:(0,U.jsx)(d.div,{dir:k,...o,ref:D,style:{position:`relative`,"--radix-scroll-area-corner-width":v+`px`,"--radix-scroll-area-corner-height":b+`px`,...e.style}})})});Ms.displayName=Ds;var Ns=`ScrollAreaViewport`,Ps=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:i,...a}=e,o=js(Ns,n),s=E(t,V.useRef(null),o.onViewportChange);return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:i}),(0,U.jsx)(d.div,{"data-radix-scroll-area-viewport":``,...a,ref:s,style:{overflowX:o.scrollbarXEnabled?`scroll`:`hidden`,overflowY:o.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,U.jsx)(`div`,{ref:o.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});Ps.displayName=Ns;var Fs=`ScrollAreaScrollbar`,Is=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=js(Fs,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return V.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,U.jsx)(Ls,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,U.jsx)(Rs,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,U.jsx)(zs,{...r,ref:t,forceMount:n}):i.type===`always`?(0,U.jsx)(Bs,{...r,ref:t}):null});Is.displayName=Fs;var Ls=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=js(Fs,e.__scopeScrollArea),[a,o]=V.useState(!1);return V.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,U.jsx)(C,{present:n||a,children:(0,U.jsx)(zs,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),Rs=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=js(Fs,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=oc(()=>c(`SCROLL_END`),100),[s,c]=Es(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return V.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),V.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(c(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,c,o]),(0,U.jsx)(C,{present:n||s!==`hidden`,children:(0,U.jsx)(Bs,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:F(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:F(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})}),zs=V.forwardRef((e,t)=>{let n=js(Fs,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=V.useState(!1),s=e.orientation===`horizontal`,c=oc(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return sc(n.viewport,c),sc(n.content,c),(0,U.jsx)(C,{present:r||a,children:(0,U.jsx)(Bs,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),Bs=V.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=js(Fs,e.__scopeScrollArea),a=V.useRef(null),o=V.useRef(0),[s,c]=V.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=$s(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function d(e,t){return tc(e,o.current,s,t)}return n===`horizontal`?(0,U.jsx)(Vs,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=nc(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,U.jsx)(Hs,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=nc(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null}),Vs=V.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=js(Fs,e.__scopeScrollArea),[o,s]=V.useState(),c=V.useRef(null),l=E(t,c,a.onScrollbarXChange);return V.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,U.jsx)(Gs,{"data-orientation":`horizontal`,...i,ref:l,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":ec(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),ic(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:Qs(o.paddingLeft),paddingEnd:Qs(o.paddingRight)}})}})}),Hs=V.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=js(Fs,e.__scopeScrollArea),[o,s]=V.useState(),c=V.useRef(null),l=E(t,c,a.onScrollbarYChange);return V.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,U.jsx)(Gs,{"data-orientation":`vertical`,...i,ref:l,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":ec(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),ic(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:Qs(o.paddingTop),paddingEnd:Qs(o.paddingBottom)}})}})}),[Us,Ws]=Os(Fs),Gs=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:a,onThumbPointerUp:o,onThumbPointerDown:s,onThumbPositionChange:c,onDragScroll:l,onWheelScroll:u,onResize:f,...p}=e,m=js(Fs,n),[h,g]=V.useState(null),_=E(t,e=>g(e)),v=V.useRef(null),y=V.useRef(``),b=m.viewport,x=r.content-r.viewport,S=j(u),C=j(c),w=oc(f,10);function T(e){v.current&&l({x:e.clientX-v.current.left,y:e.clientY-v.current.top})}return V.useEffect(()=>{let e=e=>{let t=e.target;h?.contains(t)&&S(e,x)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[b,h,x,S]),V.useEffect(C,[r,C]),sc(h,w),sc(m.content,w),(0,U.jsx)(Us,{scope:n,scrollbar:h,hasThumb:i,onThumbChange:j(a),onThumbPointerUp:j(o),onThumbPositionChange:C,onThumbPointerDown:j(s),children:(0,U.jsx)(d.div,{...p,ref:_,style:{position:`absolute`,...p.style},onPointerDown:F(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),v.current=h.getBoundingClientRect(),y.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,m.viewport&&(m.viewport.style.scrollBehavior=`auto`),T(e))}),onPointerMove:F(e.onPointerMove,T),onPointerUp:F(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=y.current,m.viewport&&(m.viewport.style.scrollBehavior=``),v.current=null})})})}),Ks=`ScrollAreaThumb`,qs=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Ws(Ks,e.__scopeScrollArea);return(0,U.jsx)(C,{present:n||i.hasThumb,children:(0,U.jsx)(Js,{ref:t,...r})})}),Js=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...i}=e,a=js(Ks,n),o=Ws(Ks,n),{onThumbPositionChange:s}=o,c=E(t,e=>o.onThumbChange(e)),l=V.useRef(void 0),u=oc(()=>{l.current&&=(l.current(),void 0)},100);return V.useEffect(()=>{let e=a.viewport;if(e){let t=()=>{u(),l.current||(l.current=ac(e,s),s())};return s(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[a.viewport,u,s]),(0,U.jsx)(d.div,{"data-state":o.hasThumb?`visible`:`hidden`,...i,ref:c,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:F(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;o.onThumbPointerDown({x:n,y:r})}),onPointerUp:F(e.onPointerUp,o.onThumbPointerUp)})});qs.displayName=Ks;var Ys=`ScrollAreaCorner`,Xs=V.forwardRef((e,t)=>{let n=js(Ys,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,U.jsx)(Zs,{...e,ref:t}):null});Xs.displayName=Ys;var Zs=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=js(Ys,n),[a,o]=V.useState(0),[s,c]=V.useState(0),l=!!(a&&s);return sc(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),sc(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,U.jsx)(d.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function Qs(e){return e?parseInt(e,10):0}function $s(e,t){let n=e/t;return isNaN(n)?0:n}function ec(e){let t=$s(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function tc(e,t,n,r=`ltr`){let i=ec(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return rc([c,l],d)(e)}function nc(e,t,n=`ltr`){let r=ec(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=Ts(e,n===`ltr`?[0,o]:[o*-1,0]);return rc([0,o],[0,s])(c)}function rc(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function ic(e,t){return e>0&&e<t}var ac=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function oc(e,t){let n=j(e),r=V.useRef(0);return V.useEffect(()=>()=>window.clearTimeout(r.current),[]),V.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function sc(e,t){let n=j(t);P(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var cc=Ms,lc=Ps,uc=Xs,dc=[` `,`Enter`,`ArrowUp`,`ArrowDown`],fc=[` `,`Enter`],pc=`Select`,[mc,hc,gc]=y(pc),[_c,vc]=h(pc,[gc,v]),yc=v(),[bc,xc]=_c(pc),[Sc,Cc]=_c(pc),wc=e=>{let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m}=e,h=yc(t),[g,v]=V.useState(null),[y,b]=V.useState(null),[x,S]=V.useState(!1),C=O(l),[E,D]=_({prop:r,defaultProp:i??!1,onChange:a,caller:pc}),[k,A]=_({prop:o,defaultProp:s,onChange:c,caller:pc}),j=V.useRef(null),ee=g?m||!!g.closest(`form`):!0,[te,M]=V.useState(new Set),N=Array.from(te).map(e=>e.props.value).join(`;`);return(0,U.jsx)(T,{...h,children:(0,U.jsxs)(bc,{required:p,scope:t,trigger:g,onTriggerChange:v,valueNode:y,onValueNodeChange:b,valueNodeHasChildren:x,onValueNodeHasChildrenChange:S,contentId:w(),value:k,onValueChange:A,open:E,onOpenChange:D,dir:C,triggerPointerDownPosRef:j,disabled:f,children:[(0,U.jsx)(mc.Provider,{scope:t,children:(0,U.jsx)(Sc,{scope:e.__scopeSelect,onNativeOptionAdd:V.useCallback(e=>{M(t=>new Set(t).add(e))},[]),onNativeOptionRemove:V.useCallback(e=>{M(t=>{let n=new Set(t);return n.delete(e),n})},[]),children:n})}),ee?(0,U.jsxs)(yl,{"aria-hidden":!0,required:p,tabIndex:-1,name:u,autoComplete:d,value:k,onChange:e=>A(e.target.value),disabled:f,form:m,children:[k===void 0?(0,U.jsx)(`option`,{value:``}):null,Array.from(te)]},N):null]})})};wc.displayName=pc;var Tc=`SelectTrigger`,Ec=V.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...i}=e,a=yc(n),o=xc(Tc,n),s=o.disabled||r,c=E(t,o.onTriggerChange),l=hc(n),u=V.useRef(`touch`),[f,p,m]=xl(e=>{let t=l().filter(e=>!e.disabled),n=Sl(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),h=e=>{s||(o.onOpenChange(!0),m()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,U.jsx)(M,{asChild:!0,...a,children:(0,U.jsx)(d.button,{type:`button`,role:`combobox`,"aria-controls":o.contentId,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":bl(o.value)?``:void 0,...i,ref:c,onClick:F(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&h(e)}),onPointerDown:F(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(h(e),e.preventDefault())}),onKeyDown:F(i.onKeyDown,e=>{let t=f.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&p(e.key),!(t&&e.key===` `)&&dc.includes(e.key)&&(h(),e.preventDefault())})})})});Ec.displayName=Tc;var Dc=`SelectValue`,Oc=V.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=xc(Dc,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,f=E(t,c.onValueNodeChange);return P(()=>{l(u)},[l,u]),(0,U.jsx)(d.span,{...s,ref:f,style:{pointerEvents:`none`},children:bl(c.value)?(0,U.jsx)(U.Fragment,{children:o}):a})});Oc.displayName=Dc;var kc=`SelectIcon`,Ac=V.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...i}=e;return(0,U.jsx)(d.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})});Ac.displayName=kc;var jc=`SelectPortal`,Mc=e=>(0,U.jsx)(N,{asChild:!0,...e});Mc.displayName=jc;var Nc=`SelectContent`,Pc=V.forwardRef((e,t)=>{let n=xc(Nc,e.__scopeSelect),[r,i]=V.useState();if(P(()=>{i(new DocumentFragment)},[]),!n.open){let t=r;return t?cn.createPortal((0,U.jsx)(Ic,{scope:e.__scopeSelect,children:(0,U.jsx)(mc.Slot,{scope:e.__scopeSelect,children:(0,U.jsx)(`div`,{children:e.children})})}),t):null}return(0,U.jsx)(Bc,{...e,ref:t})});Pc.displayName=Nc;var Fc=10,[Ic,Lc]=_c(Nc),Rc=`SelectContentImpl`,zc=p(`SelectContent.RemoveScroll`),Bc=V.forwardRef((e,t)=>{let{__scopeSelect:n,position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g,..._}=e,v=xc(Nc,n),[y,C]=V.useState(null),[w,T]=V.useState(null),O=E(t,e=>C(e)),[k,A]=V.useState(null),[j,ee]=V.useState(null),M=hc(n),[N,P]=V.useState(!1),ne=V.useRef(!1);V.useEffect(()=>{if(y)return te(y)},[y]),D();let re=V.useCallback(e=>{let[t,...n]=M().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&w&&(w.scrollTop=0),n===r&&w&&(w.scrollTop=w.scrollHeight),n?.focus(),document.activeElement!==i))return},[M,w]),ie=V.useCallback(()=>re([k,y]),[re,k,y]);V.useEffect(()=>{N&&ie()},[N,ie]);let{onOpenChange:I,triggerPointerDownPosRef:L}=v;V.useEffect(()=>{if(y){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(L.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(L.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():y.contains(n.target)||I(!1),document.removeEventListener(`pointermove`,t),L.current=null};return L.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[y,I,L]),V.useEffect(()=>{let e=()=>I(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[I]);let[ae,oe]=xl(e=>{let t=M().filter(e=>!e.disabled),n=Sl(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current.focus())}),R=V.useCallback((e,t,n)=>{let r=!ne.current&&!n;(v.value!==void 0&&v.value===t||r)&&(A(e),r&&(ne.current=!0))},[v.value]),se=V.useCallback(()=>y?.focus(),[y]),z=V.useCallback((e,t,n)=>{let r=!ne.current&&!n;(v.value!==void 0&&v.value===t||r)&&ee(e)},[v.value]),ce=r===`popper`?Wc:Hc,le=ce===Wc?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g}:{};return(0,U.jsx)(Ic,{scope:n,content:y,viewport:w,onViewportChange:T,itemRefCallback:R,selectedItem:k,onItemLeave:se,itemTextRefCallback:z,focusSelectedItem:ie,selectedItemText:j,position:r,isPositioned:N,searchRef:ae,children:(0,U.jsx)(b,{as:zc,allowPinchZoom:!0,children:(0,U.jsx)(x,{asChild:!0,trapped:v.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:F(i,e=>{v.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,U.jsx)(S,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>v.onOpenChange(!1),children:(0,U.jsx)(ce,{role:`listbox`,id:v.contentId,"data-state":v.open?`open`:`closed`,dir:v.dir,onContextMenu:e=>e.preventDefault(),..._,...le,onPlaced:()=>P(!0),ref:O,style:{display:`flex`,flexDirection:`column`,outline:`none`,..._.style},onKeyDown:F(_.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&oe(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=M().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>re(t)),e.preventDefault()}})})})})})})});Bc.displayName=Rc;var Vc=`SelectItemAlignedPosition`,Hc=V.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...i}=e,a=xc(Nc,n),o=Lc(Nc,n),[s,c]=V.useState(null),[l,u]=V.useState(null),f=E(t,e=>u(e)),p=hc(n),m=V.useRef(!1),h=V.useRef(!0),{viewport:g,selectedItem:_,selectedItemText:v,focusSelectedItem:y}=o,b=V.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&g&&_&&v){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=v.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Fc,d=Ts(a,[Fc,Math.max(Fc,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Fc,d=Ts(a,[Fc,Math.max(Fc,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=p(),c=window.innerHeight-Fc*2,u=g.scrollHeight,d=window.getComputedStyle(l),f=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=f+h+u+b+y,S=Math.min(_.offsetHeight*5,x),C=window.getComputedStyle(g),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-Fc,D=c-E,O=_.offsetHeight/2,k=_.offsetTop+O,A=f+h+k,j=x-A;if(A<=E){let e=o.length>0&&_===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-g.offsetTop-g.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+y);s.style.height=n+`px`}else{let e=o.length>0&&_===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,f+g.offsetTop+(e?w:0)+O)+j;s.style.height=t+`px`,g.scrollTop=A-E+g.offsetTop}s.style.margin=`${Fc}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>m.current=!0)}},[p,a.trigger,a.valueNode,s,l,g,_,v,a.dir,r]);P(()=>b(),[b]);let[x,S]=V.useState();return P(()=>{l&&S(window.getComputedStyle(l).zIndex)},[l]),(0,U.jsx)(Gc,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:m,onScrollButtonChange:V.useCallback(e=>{e&&h.current===!0&&(b(),y?.(),h.current=!1)},[b,y]),children:(0,U.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:x},children:(0,U.jsx)(d.div,{...i,ref:f,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})});Hc.displayName=Vc;var Uc=`SelectPopperPosition`,Wc=V.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=Fc,...a}=e,o=yc(n);return(0,U.jsx)(ee,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})});Wc.displayName=Uc;var[Gc,Kc]=_c(Nc,{}),qc=`SelectViewport`,Jc=V.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...i}=e,a=Lc(qc,n),o=Kc(qc,n),s=E(t,a.onViewportChange),c=V.useRef(0);return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,U.jsx)(mc.Slot,{scope:n,children:(0,U.jsx)(d.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:F(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-Fc*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})});Jc.displayName=qc;var Yc=`SelectGroup`,[Xc,Zc]=_c(Yc),Qc=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=w();return(0,U.jsx)(Xc,{scope:n,id:i,children:(0,U.jsx)(d.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})});Qc.displayName=Yc;var $c=`SelectLabel`,el=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=Zc($c,n);return(0,U.jsx)(d.div,{id:i.id,...r,ref:t})});el.displayName=$c;var tl=`SelectItem`,[nl,rl]=_c(tl),il=V.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=xc(tl,n),c=Lc(tl,n),l=s.value===r,[u,f]=V.useState(a??``),[p,m]=V.useState(!1),h=E(t,e=>c.itemRefCallback?.(e,r,i)),g=w(),_=V.useRef(`touch`),v=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r===``)throw Error(`A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return(0,U.jsx)(nl,{scope:n,value:r,disabled:i,textId:g,isSelected:l,onItemTextChange:V.useCallback(e=>{f(t=>t||(e?.textContent??``).trim())},[]),children:(0,U.jsx)(mc.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,U.jsx)(d.div,{role:`option`,"aria-labelledby":g,"data-highlighted":p?``:void 0,"aria-selected":l&&p,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:h,onFocus:F(o.onFocus,()=>m(!0)),onBlur:F(o.onBlur,()=>m(!1)),onClick:F(o.onClick,()=>{_.current!==`mouse`&&v()}),onPointerUp:F(o.onPointerUp,()=>{_.current===`mouse`&&v()}),onPointerDown:F(o.onPointerDown,e=>{_.current=e.pointerType}),onPointerMove:F(o.onPointerMove,e=>{_.current=e.pointerType,i?c.onItemLeave?.():_.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:F(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:F(o.onKeyDown,e=>{c.searchRef?.current!==``&&e.key===` `||(fc.includes(e.key)&&v(),e.key===` `&&e.preventDefault())})})})})});il.displayName=tl;var al=`SelectItemText`,ol=V.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,...a}=e,o=xc(al,n),s=Lc(al,n),c=rl(al,n),l=Cc(al,n),[u,f]=V.useState(null),p=E(t,e=>f(e),c.onItemTextChange,e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),m=u?.textContent,h=V.useMemo(()=>(0,U.jsx)(`option`,{value:c.value,disabled:c.disabled,children:m},c.value),[c.disabled,c.value,m]),{onNativeOptionAdd:g,onNativeOptionRemove:_}=l;return P(()=>(g(h),()=>_(h)),[g,_,h]),(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(d.span,{id:c.textId,...a,ref:p}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren?cn.createPortal(a.children,o.valueNode):null]})});ol.displayName=al;var sl=`SelectItemIndicator`,cl=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return rl(sl,n).isSelected?(0,U.jsx)(d.span,{"aria-hidden":!0,...r,ref:t}):null});cl.displayName=sl;var ll=`SelectScrollUpButton`,ul=V.forwardRef((e,t)=>{let n=Lc(ll,e.__scopeSelect),r=Kc(ll,e.__scopeSelect),[i,a]=V.useState(!1),o=E(t,r.onScrollButtonChange);return P(()=>{if(n.viewport&&n.isPositioned){let e=function(){a(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,U.jsx)(pl,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});ul.displayName=ll;var dl=`SelectScrollDownButton`,fl=V.forwardRef((e,t)=>{let n=Lc(dl,e.__scopeSelect),r=Kc(dl,e.__scopeSelect),[i,a]=V.useState(!1),o=E(t,r.onScrollButtonChange);return P(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,U.jsx)(pl,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});fl.displayName=dl;var pl=V.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=Lc(`SelectScrollButton`,n),o=V.useRef(null),s=hc(n),c=V.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return V.useEffect(()=>()=>c(),[c]),P(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,U.jsx)(d.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:F(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:F(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:F(i.onPointerLeave,()=>{c()})})}),ml=`SelectSeparator`,hl=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,U.jsx)(d.div,{"aria-hidden":!0,...r,ref:t})});hl.displayName=ml;var gl=`SelectArrow`,_l=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=yc(n),a=xc(gl,n),o=Lc(gl,n);return a.open&&o.position===`popper`?(0,U.jsx)(k,{...i,...r,ref:t}):null});_l.displayName=gl;var vl=`SelectBubbleInput`,yl=V.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{let i=V.useRef(null),a=E(r,i),o=zr(t);return V.useEffect(()=>{let e=i.current;if(!e)return;let n=window.HTMLSelectElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(o!==t&&r){let n=new Event(`change`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[o,t]),(0,U.jsx)(d.select,{...n,style:{...qn,...n.style},ref:a,defaultValue:t})});yl.displayName=vl;function bl(e){return e===``||e===void 0}function xl(e){let t=j(e),n=V.useRef(``),r=V.useRef(0),i=V.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=V.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return V.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function Sl(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Cl(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function Cl(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var wl=wc,Tl=Ec,El=Oc,Dl=Ac,Ol=Mc,kl=Pc,Al=Jc,jl=il,Ml=ol,Nl=cl,Pl=ul,Fl=fl,Il=`Separator`,Ll=`horizontal`,Rl=[`horizontal`,`vertical`],K=V.forwardRef((e,t)=>{let{decorative:n,orientation:r=Ll,...i}=e,a=zl(r)?r:Ll,o=a===`vertical`?a:void 0,s=n?{role:`none`}:{"aria-orientation":o,role:`separator`};return(0,U.jsx)(d.div,{"data-orientation":a,...s,...i,ref:t})});K.displayName=Il;function zl(e){return Rl.includes(e)}var q=K,J=`Switch`,[Y,Bl]=h(J),[Vl,Hl]=Y(J),Ul=V.forwardRef((e,t)=>{let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c=`on`,onCheckedChange:l,form:u,...f}=e,[p,m]=V.useState(null),h=E(t,e=>m(e)),g=V.useRef(!1),v=p?u||!!p.closest(`form`):!0,[y,b]=_({prop:i,defaultProp:a??!1,onChange:l,caller:J});return(0,U.jsxs)(Vl,{scope:n,checked:y,disabled:s,children:[(0,U.jsx)(d.button,{type:`button`,role:`switch`,"aria-checked":y,"aria-required":o,"data-state":Jl(y),"data-disabled":s?``:void 0,disabled:s,value:c,...f,ref:h,onClick:F(e.onClick,e=>{b(e=>!e),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())})}),v&&(0,U.jsx)(ql,{control:p,bubbles:!g.current,name:r,value:c,checked:y,required:o,disabled:s,form:u,style:{transform:`translateX(-100%)`}})]})});Ul.displayName=J;var Wl=`SwitchThumb`,Gl=V.forwardRef((e,t)=>{let{__scopeSwitch:n,...r}=e,i=Hl(Wl,n);return(0,U.jsx)(d.span,{"data-state":Jl(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})});Gl.displayName=Wl;var Kl=`SwitchBubbleInput`,ql=V.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},a)=>{let o=V.useRef(null),s=E(o,a),c=zr(n),l=A(t);return V.useEffect(()=>{let e=o.current;if(!e)return;let t=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(t,`checked`).set;if(c!==n&&i){let t=new Event(`click`,{bubbles:r});i.call(e,n),e.dispatchEvent(t)}},[c,n,r]),(0,U.jsx)(`input`,{type:`checkbox`,"aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...l,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});ql.displayName=Kl;function Jl(e){return e?`checked`:`unchecked`}var Yl=Ul,Xl=Gl,[Zl,Ql]=h(`Tooltip`,[v]),$l=v(),eu=`TooltipProvider`,tu=700,nu=`tooltip.open`,[ru,iu]=Zl(eu),au=e=>{let{__scopeTooltip:t,delayDuration:n=tu,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=V.useRef(!0),s=V.useRef(!1),c=V.useRef(0);return V.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,U.jsx)(ru,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:V.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:V.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:V.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};au.displayName=eu;var ou=`Tooltip`,[su,cu]=Zl(ou),lu=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=iu(ou,e.__scopeTooltip),l=$l(t),[u,d]=V.useState(null),f=w(),p=V.useRef(0),m=o??c.disableHoverableContent,h=s??c.delayDuration,g=V.useRef(!1),[v,y]=_({prop:r,defaultProp:i??!1,onChange:e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(nu))):c.onClose(),a?.(e)},caller:ou}),b=V.useMemo(()=>v?g.current?`delayed-open`:`instant-open`:`closed`,[v]),x=V.useCallback(()=>{window.clearTimeout(p.current),p.current=0,g.current=!1,y(!0)},[y]),S=V.useCallback(()=>{window.clearTimeout(p.current),p.current=0,y(!1)},[y]),C=V.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>{g.current=!0,y(!0),p.current=0},h)},[h,y]);return V.useEffect(()=>()=>{p.current&&=(window.clearTimeout(p.current),0)},[]),(0,U.jsx)(T,{...l,children:(0,U.jsx)(su,{scope:t,contentId:f,open:v,stateAttribute:b,trigger:u,onTriggerChange:d,onTriggerEnter:V.useCallback(()=>{c.isOpenDelayedRef.current?C():x()},[c.isOpenDelayedRef,C,x]),onTriggerLeave:V.useCallback(()=>{m?S():(window.clearTimeout(p.current),p.current=0)},[S,m]),onOpen:x,onClose:S,disableHoverableContent:m,children:n})})};lu.displayName=ou;var uu=`TooltipTrigger`,du=V.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=cu(uu,n),a=iu(uu,n),o=$l(n),s=E(t,V.useRef(null),i.onTriggerChange),c=V.useRef(!1),l=V.useRef(!1),u=V.useCallback(()=>c.current=!1,[]);return V.useEffect(()=>()=>document.removeEventListener(`pointerup`,u),[u]),(0,U.jsx)(M,{asChild:!0,...o,children:(0,U.jsx)(d.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:s,onPointerMove:F(e.onPointerMove,e=>{e.pointerType!==`touch`&&!l.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),l.current=!0)}),onPointerLeave:F(e.onPointerLeave,()=>{i.onTriggerLeave(),l.current=!1}),onPointerDown:F(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener(`pointerup`,u,{once:!0})}),onFocus:F(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:F(e.onBlur,i.onClose),onClick:F(e.onClick,i.onClose)})})});du.displayName=uu;var fu=`TooltipPortal`,[pu,mu]=Zl(fu,{forceMount:void 0}),hu=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=cu(fu,t);return(0,U.jsx)(pu,{scope:t,forceMount:n,children:(0,U.jsx)(C,{present:n||a.open,children:(0,U.jsx)(N,{asChild:!0,container:i,children:r})})})};hu.displayName=fu;var gu=`TooltipContent`,_u=V.forwardRef((e,t)=>{let n=mu(gu,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=cu(gu,e.__scopeTooltip);return(0,U.jsx)(C,{present:r||o.open,children:o.disableHoverableContent?(0,U.jsx)(Su,{side:i,...a,ref:t}):(0,U.jsx)(vu,{side:i,...a,ref:t})})}),vu=V.forwardRef((e,t)=>{let n=cu(gu,e.__scopeTooltip),r=iu(gu,e.__scopeTooltip),i=V.useRef(null),a=E(t,i),[o,s]=V.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=V.useCallback(()=>{s(null),d(!1)},[d]),p=V.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=Eu(r,Tu(r,n.getBoundingClientRect())),a=Du(t.getBoundingClientRect());s(ku([...i,...a])),d(!0)},[d]);return V.useEffect(()=>()=>f(),[f]),V.useEffect(()=>{if(c&&u){let e=e=>p(e,u),t=e=>p(e,c);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),V.useEffect(()=>{if(o){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!Ou(n,o);r?f():i&&(f(),l())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,U.jsx)(Su,{...e,ref:a})}),[yu,bu]=Zl(ou,{isInside:!1}),xu=f(`TooltipContent`),Su=V.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=cu(gu,n),l=$l(n),{onClose:u}=c;return V.useEffect(()=>(document.addEventListener(nu,u),()=>document.removeEventListener(nu,u)),[u]),V.useEffect(()=>{if(c.trigger){let e=e=>{e.target?.contains(c.trigger)&&u()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[c.trigger,u]),(0,U.jsx)(S,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:(0,U.jsxs)(ee,{"data-state":c.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,U.jsx)(xu,{children:r}),(0,U.jsx)(yu,{scope:n,isInside:!0,children:(0,U.jsx)(Xn,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});_u.displayName=gu;var Cu=`TooltipArrow`,wu=V.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=$l(n);return bu(Cu,n).isInside?null:(0,U.jsx)(k,{...i,...r,ref:t})});wu.displayName=Cu;function Tu(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function Eu(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function Du(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function Ou(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function ku(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0),Au(t)}function Au(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var ju=au,Mu=lu,Nu=du,Pu=hu,Fu=_u,Iu=wu;function Lu({delayDuration:e=0,...t}){return(0,U.jsx)(ju,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function Ru({...e}){return(0,U.jsx)(Mu,{"data-slot":`tooltip`,...e})}function zu({...e}){return(0,U.jsx)(Nu,{"data-slot":`tooltip-trigger`,...e})}function Bu({className:e,sideOffset:t=0,children:n,...r}){return(0,U.jsx)(Pu,{children:(0,U.jsxs)(Fu,{"data-slot":`tooltip-content`,sideOffset:t,className:I(`z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-3 py-1.5 text-xs text-balance text-background fade-in-0 zoom-in-95 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`,e),...r,children:[n,(0,U.jsx)(Iu,{className:`z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground`})]})})}function Vu(e,t){let n=getComputedStyle(e);return t*parseFloat(n.fontSize)}function Hu(e,t){let n=getComputedStyle(e.ownerDocument.body);return t*parseFloat(n.fontSize)}function Uu(e){return e/100*window.innerHeight}function Wu(e){return e/100*window.innerWidth}function Gu(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 X({groupSize:e,panelElement:t,styleProp:n}){let r,[i,a]=Gu(n);switch(a){case`%`:r=i/100*e;break;case`px`:r=i;break;case`rem`:r=Hu(t,i);break;case`em`:r=Vu(t,i);break;case`vh`:r=Uu(i);break;case`vw`:r=Wu(i);break}return r}function Ku(e){return parseFloat(e.toFixed(3))}function qu({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 Ju(e){let{panels:t}=e,n=qu({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=Ku(X({groupSize:n,panelElement:t,styleProp:r.collapsedSize})/n*100));let a;r.defaultSize!==void 0&&(a=Ku(X({groupSize:n,panelElement:t,styleProp:r.defaultSize})/n*100));let o=0;r.minSize!==void 0&&(o=Ku(X({groupSize:n,panelElement:t,styleProp:r.minSize})/n*100));let s=100;return r.maxSize!==void 0&&(s=Ku(X({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 Yu(e,t=`Assertion error`){if(!e)throw Error(t)}function Xu(e,t){return Array.from(t).sort(e===`horizontal`?Zu:Qu)}function Zu(e,t){let n=e.element.offsetLeft-t.element.offsetLeft;return n===0?e.element.offsetWidth-t.element.offsetWidth:n}function Qu(e,t){let n=e.element.offsetTop-t.element.offsetTop;return n===0?e.element.offsetHeight-t.element.offsetHeight:n}function $u(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.ELEMENT_NODE}function ed(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 td({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}=ed(r,n),s=e===`horizontal`?t:o;s<a&&(a=s,i=n)}return Yu(i,`No rect found`),i}var nd;function rd(){return nd===void 0&&(nd=typeof matchMedia==`function`?!!matchMedia(`(pointer:coarse)`).matches:!1),nd}function id(e){let{element:t,orientation:n,panels:r,separators:i}=e,a=Xu(n,Array.from(t.children).filter($u).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,td({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=rd()?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:qu({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 ad=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)}}},od=new Map,sd=new ad;function cd(e){od=new Map(od),od.delete(e)}function ld(e,t){for(let[t]of od)if(t.id===e)return t}function ud(e,t){for(let[t,n]of od)if(t.id===e)return n;if(t)throw Error(`Could not find data for Group with id ${e}`)}function dd(){return od}function fd(e,t){return sd.addListener(`groupChange`,n=>{n.group.id===e&&t(n)})}function pd(e,t){let n=od.get(e);od=new Map(od),od.set(e,t),sd.emit(`groupChange`,{group:e,prev:n,next:t})}function md(e,t,n){let r,i={x:1/0,y:1/0};for(let a of t){let t=ed(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 hd(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function gd(e,t){if(e===t)throw Error(`Cannot compare node with itself`);let n={a:xd(e),b:xd(t)},r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();Yu(r,`Stacking order can only be calculated for elements with a common ancestor`);let i={a:Z(bd(n.a)),b:Z(bd(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 _d=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function vd(e){let t=getComputedStyle(Sd(e)??e).display;return t===`flex`||t===`inline-flex`}function yd(e){let t=getComputedStyle(e);return!!(t.position===`fixed`||t.zIndex!==`auto`&&(t.position!==`static`||vd(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`||_d.test(t.willChange)||t.webkitOverflowScrolling===`touch`)}function bd(e){let t=e.length;for(;t--;){let n=e[t];if(Yu(n,`Missing node`),yd(n))return n}return null}function Z(e){return e&&Number(getComputedStyle(e).zIndex)||0}function xd(e){let t=[];for(;e;)t.push(e),e=Sd(e);return t}function Sd(e){let{parentNode:t}=e;return hd(t)?t.host:t}function Cd(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 wd({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!$u(n)||n.contains(e)||e.contains(n))return!0;if(gd(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(Cd(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function Td(e,t){let n=[];return t.forEach((t,r)=>{if(r.disabled)return;let i=id(r),a=md(r.orientation,i,{x:e.clientX,y:e.clientY});a&&a.distance.x<=0&&a.distance.y<=0&&wd({groupElement:r.element,hitRegion:a.hitRegion.rect,pointerEventTarget:e.target})&&n.push(a.hitRegion)}),n}function Ed(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 Dd(e,t,n=0){return Math.abs(Ku(e)-Ku(t))<=n}function Od(e,t){return Dd(e,t)?0:e>t?1:-1}function kd({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(Od(r,c)<0)if(a){let e=(i+c)/2;r=Od(r,e)<0?i:c}else r=c;return r=Math.min(s,r),r=Ku(r),r}function Ad({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:i,trigger:a}){if(Dd(e,0))return t;let o=a===`imperative-api`,s=Object.values(t),c=Object.values(i),l=[...s],[u,d]=r;Yu(u!=null,`Invalid first pivot index`),Yu(d!=null,`Invalid second pivot index`);let f=0;switch(a){case`keyboard`:{let t=e<0?d:u,r=n[t];Yu(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(Yu(n!=null,`Previous layout not found for panel index ${t}`),Dd(n,i)){let t=o-n;Od(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?u:d,r=n[t];Yu(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(Yu(n!=null,`Previous layout not found for panel index ${t}`),Dd(n,o)){let t=n-i;Od(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}break;default:{let t=e<0?d:u,r=n[t];Yu(r,`Panel constraints not found for index ${t}`);let i=s[t],{collapsible:a,collapsedSize:o,minSize:c}=r;if(a&&Od(i,c)<0)if(e>0){let t=c-o,n=t/2;Od(i+e,c)<0&&(e=Od(e,n)<=0?0:t)}else{let t=c-o,n=100-t/2;Od(i-e,c)<0&&(e=Od(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];Yu(e!=null,`Previous layout not found for panel index ${r}`);let a=kd({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];Yu(i!=null,`Previous layout not found for panel index ${t}`);let a=i-r,c=kd({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:i,size:a});if(!Dd(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(Ed(c,l))return i;{let t=e<0?d:u,r=s[t];Yu(r!=null,`Previous layout not found for panel index ${t}`);let i=r+f,a=kd({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:r,size:i});if(l[t]=a,!Dd(a,i)){let t=i-a,r=e<0?d:u;for(;r>=0&&r<n.length;){let i=l[r];Yu(i!=null,`Previous layout not found for panel index ${r}`);let a=i+t,s=kd({overrideDisabledPanels:o,panelConstraints:n[r],prevSize:i,size:a});if(Dd(i,s)||(t-=s-i,l[r]=s),Dd(t,0))break;e>0?r--:r++}}}if(!Dd(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 jd(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(t[n]===void 0||Od(e[n],t[n])!==0)return!1;return!0}function Md({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(!Dd(i,100)&&r.length>0)for(let e=0;e<t.length;e++){let t=r[e];Yu(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];Yu(i!=null,`No layout data found for index ${e}`);let o=r[e];Yu(o!=null,`No layout data found for index ${e}`);let s=kd({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:i,size:o});o!=s&&(a+=o-s,r[e]=s)}if(!Dd(a,0))for(let e=0;e<t.length;e++){let n=r[e];Yu(n!=null,`No layout data found for index ${e}`);let i=n+a,o=kd({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:n,size:i});if(n!==o&&(a-=o-n,r[e]=o,Dd(a,0)))break}let o=Object.keys(e);return r.reduce((e,t,n)=>(e[o[n]]=t,e),{})}function Nd({groupId:e,panelId:t}){let n=()=>{let t=dd();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=Md({layout:Ad({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});jd(l,p)||pd(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&&Dd(t,n)},resize:e=>{let{group:t}=n(),{element:r}=i(),a=qu({group:t});o(Ku(X({groupSize:a,panelElement:r,styleProp:e})/a*100))}}}function Pd(e){e.defaultPrevented||Td(e,dd()).forEach(t=>{if(t.separator){let n=t.panels.find(e=>e.panelConstraints.defaultSize!==void 0);if(n){let r=n.panelConstraints.defaultSize,i=Nd({groupId:t.group.id,panelId:n.id});i&&r!==void 0&&(i.resize(r),e.preventDefault())}}})}function Fd(e){let t=dd();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 Id({groupId:e}){let t=()=>{let t=dd();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=Md({layout:e,panelConstraints:r});return n?o:(jd(o,c)||pd(i,{defaultLayoutDeferred:n,derivedPanelConstraints:r,groupSize:a,layout:c,separatorToPanels:s}),c)}}}function Ld(e,t){let n=Fd(e),r=ud(n.id,!0),i=n.separators.find(t=>t.element===e);Yu(i,`Matching separator not found`);let a=r.separatorToPanels.get(i);Yu(a,`Matching panels not found`);let o=a.map(e=>n.panels.indexOf(e)),s=Id({groupId:n.id}).getLayout(),c=Md({layout:Ad({delta:t,initialLayout:s,panelConstraints:r.derivedPanelConstraints,pivotIndices:o,prevLayout:s,trigger:`keyboard`}),panelConstraints:r.derivedPanelConstraints});jd(s,c)||pd(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedPanelConstraints:r.derivedPanelConstraints,groupSize:r.groupSize,layout:c,separatorToPanels:r.separatorToPanels})}function Rd(e){if(e.defaultPrevented)return;let t=e.currentTarget,n=Fd(t);if(!n.disabled)switch(e.key){case`ArrowDown`:e.preventDefault(),n.orientation===`vertical`&&Ld(t,5);break;case`ArrowLeft`:e.preventDefault(),n.orientation===`horizontal`&&Ld(t,-5);break;case`ArrowRight`:e.preventDefault(),n.orientation===`horizontal`&&Ld(t,5);break;case`ArrowUp`:e.preventDefault(),n.orientation===`vertical`&&Ld(t,-5);break;case`End`:e.preventDefault(),Ld(t,100);break;case`Enter`:{e.preventDefault();let n=Fd(t),{derivedPanelConstraints:r,layout:i,separatorToPanels:a}=ud(n.id,!0),o=n.separators.find(e=>e.element===t);Yu(o,`Matching separator not found`);let s=a.get(o);Yu(s,`Matching panels not found`);let c=s[0],l=r.find(e=>e.panelId===c.id);if(Yu(l,`Panel metadata not found`),l.collapsible){let e=i[c.id];Ld(t,(l.collapsedSize===e?n.mutableState.expandedPanelSizes[c.id]??l.minSize:l.collapsedSize)-e)}break}case`F6`:{e.preventDefault();let n=Fd(t).separators.map(e=>e.element),r=Array.from(n).findIndex(t=>t===e.currentTarget);Yu(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(),Ld(t,-100);break}}var zd={cursorFlags:0,state:`inactive`},Bd=new ad;function Vd(){return zd}function Hd(e){return Bd.addListener(`change`,e)}function Ud(e){let t=zd,n={...zd};n.cursorFlags=e,zd=n,Bd.emit(`change`,{prev:t,next:n})}function Wd(e){let t=zd;zd=e,Bd.emit(`change`,{prev:t,next:e})}function Gd(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=dd(),n=Td(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)}),Wd({cursorFlags:0,hitRegions:n,initialLayoutMap:r,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:`active`}),n.length&&e.preventDefault()}var Kd=e=>e,qd=()=>{},Jd=1,Yd=2,Xd=4,Zd=8,Qd=3,$d=12,ef;function tf(){return ef===void 0&&(ef=!1,typeof window<`u`&&(window.navigator.userAgent.includes(`Chrome`)||window.navigator.userAgent.includes(`Firefox`))&&(ef=!0)),ef}function nf({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&&tf()){let t=(e&Jd)!==0,n=(e&Yd)!==0,r=(e&Xd)!==0,i=(e&Zd)!==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 tf()?r>0&&i>0?`move`:r>0?`ew-resize`:`ns-resize`:r>0&&i>0?`grab`:r>0?`col-resize`:`row-resize`}}var rf=new WeakMap;function af(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=rf.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));let r=Vd();switch(r.state){case`active`:case`hover`:{let e=nf({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}rf.set(e,{prevStyle:t,styleSheet:n})}function of({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=Ad({delta:d,initialLayout:f,panelConstraints:h,pivotIndices:e.panels.map(e=>l.indexOf(e)),prevLayout:_,trigger:`mouse-or-touch`});if(jd(t,_)){if(d!==0&&!u)switch(c){case`horizontal`:s|=d<0?Jd:Yd;break;case`vertical`:s|=d<0?Xd:Zd;break}}else pd(e.group,{defaultLayoutDeferred:m,derivedPanelConstraints:h,groupSize:g,layout:t,separatorToPanels:v})}});let c=0;t.movementX===0?c|=o&Qd:c|=s&Qd,t.movementY===0?c|=o&$d:c|=s&$d,Ud(c),af(e)}function sf(e){let t=dd(),n=Vd();switch(n.state){case`active`:of({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function cf(e){if(e.defaultPrevented)return;let t=Vd(),n=dd();switch(t.state){case`active`:if(e.buttons===0){Wd({cursorFlags:0,state:`inactive`}),t.hitRegions.forEach(e=>{let t=ud(e.group.id,!0);pd(e.group,t)});return}of({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break;default:{let r=Td(e,n);r.length===0?t.state!==`inactive`&&Wd({cursorFlags:0,state:`inactive`}):Wd({cursorFlags:0,hitRegions:r,state:`hover`}),af(e.currentTarget);break}}}function lf(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(Vd().state){case`hover`:Wd({cursorFlags:0,state:`inactive`})}}function uf(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=Vd();switch(t.state){case`active`:Wd({cursorFlags:0,state:`inactive`}),t.hitRegions.length>0&&(af(e.currentTarget),t.hitRegions.forEach(e=>{let t=ud(e.group.id,!0);pd(e.group,t)}),e.preventDefault())}}function df(e){let t=0,n=0,r={};for(let i of e)if(i.defaultSize!==void 0){t++;let e=Ku(i.defaultSize);n+=e,r[i.panelId]=e}else r[i.panelId]=void 0;let i=e.length-t;if(i!==0){let t=Ku((100-n)/i);for(let n of e)n.defaultSize===void 0&&(r[n.panelId]=t)}return r}function ff(e,t,n){if(!n[0])return;let r=e.panels.find(e=>e.element===t);if(!r||!r.onResize)return;let i=qu({group:e}),a=e.orientation===`horizontal`?r.element.offsetWidth:r.element.offsetHeight,o=r.mutableValues.prevSize,s={asPercentage:Ku(a/i*100),inPixels:a};r.mutableValues.prevSize=s,r.onResize(s,r.id,o)}function pf(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 mf({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=Ku(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]=Ku((r[e]??0)/a*l);else{let e=Ku(l/c.length);for(let t of c)u[t]=e}return u}function hf(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 gf=new Map;function _f(e){let t=!0;Yu(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=qu({group:e});if(t===0)return;let n=ud(e.id);if(!n)return;let r=Ju(e),i=n.defaultLayoutDeferred?df(r):n.layout,a=Md({layout:mf({group:e,nextGroupSize:t,prevGroupSize:n.groupSize,prevLayout:i}),panelConstraints:r});if(!n.defaultLayoutDeferred&&jd(n.layout,a)&&pf(n.derivedPanelConstraints,r)&&n.groupSize===t)return;pd(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,groupSize:t,layout:a,separatorToPanels:n.separatorToPanels})}}else ff(e,i,n)}});a.observe(e.element),e.panels.forEach(e=>{Yu(!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=qu({group:e}),s=Ju(e),c=e.panels.map(({id:e})=>e).join(`,`),l=e.mutableState.defaultLayout;l&&(hf(e.panels,l)||(l=void 0));let u=Md({layout:e.mutableState.layouts[c]??l??df(s),panelConstraints:s}),d=e.element.ownerDocument;gf.set(d,(gf.get(d)??0)+1);let f=new Map;return id(e).forEach(e=>{e.separator&&f.set(e.separator,e.panels)}),pd(e,{defaultLayoutDeferred:o===0,derivedPanelConstraints:s,groupSize:o,layout:u,separatorToPanels:f}),e.separators.forEach(e=>{Yu(!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`,Rd)}),gf.get(d)===1&&(d.addEventListener(`dblclick`,Pd,!0),d.addEventListener(`pointerdown`,Gd,!0),d.addEventListener(`pointerleave`,sf),d.addEventListener(`pointermove`,cf),d.addEventListener(`pointerout`,lf),d.addEventListener(`pointerup`,uf,!0)),function(){t=!1,gf.set(d,Math.max(0,(gf.get(d)??0)-1)),cd(e),e.separators.forEach(e=>{e.element.removeEventListener(`keydown`,Rd)}),gf.get(d)||(d.removeEventListener(`dblclick`,Pd,!0),d.removeEventListener(`pointerdown`,Gd,!0),d.removeEventListener(`pointerleave`,sf),d.removeEventListener(`pointermove`,cf),d.removeEventListener(`pointerout`,lf),d.removeEventListener(`pointerup`,uf,!0)),a.disconnect()}}function vf(){let[e,t]=(0,V.useState)({});return[e,(0,V.useCallback)(()=>t({}),[])]}function yf(e){let t=(0,V.useId)();return`${e??t}`}var bf=typeof window<`u`?V.useLayoutEffect:V.useEffect;function xf(e){let t=(0,V.useRef)(e);return bf(()=>{t.current=e},[e]),(0,V.useCallback)((...e)=>t.current?.(...e),[t])}function Sf(...e){return xf(t=>{e.forEach(e=>{if(e)switch(typeof e){case`function`:e(t);break;case`object`:e.current=t;break}})})}function Cf(e){let t=(0,V.useRef)({...e});return bf(()=>{for(let n in e)t.current[n]=e[n]},[e]),t.current}var wf=(0,V.createContext)(null);function Tf(e,t){let n=(0,V.useRef)({getLayout:()=>({}),setLayout:Kd});(0,V.useImperativeHandle)(t,()=>n.current,[]),bf(()=>{Object.assign(n.current,Id({groupId:e}))})}function Ef({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,V.useRef)({onLayoutChange:{},onLayoutChanged:{}}),h=xf(e=>{jd(m.current.onLayoutChange,e)||(m.current.onLayoutChange=e,c?.(e))}),g=xf(e=>{jd(m.current.onLayoutChanged,e)||(m.current.onLayoutChanged=e,l?.(e))}),_=yf(s),v=(0,V.useRef)(null),[y,b]=vf(),x=(0,V.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:d,separators:[]}),S=Sf(v,a);Tf(_,o);let C=xf((e,t)=>{let r=Vd(),i=ld(e),a=ud(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=Cf({defaultLayout:n,disableCursor:r}),T=(0,V.useMemo)(()=>({get disableCursor(){return!!w.disableCursor},getPanelStyles:C,id:_,orientation:u,registerPanel:e=>{let t=x.current;return t.panels=Xu(u,[...t.panels,e]),b(),()=>{t.panels=t.panels.filter(t=>t!==e),b()}},registerSeparator:e=>{let t=x.current;return t.separators=Xu(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=ld(_),i=ud(_);r&&i&&pd(r,{...i,derivedPanelConstraints:Ju(r)})},toggleSeparatorDisabled:(e,t)=>{let n=x.current.separators.find(t=>t.id===e);n&&(n.disabled=t)}}),[C,_,b,u,w]),E=(0,V.useRef)(null);return bf(()=>{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=_f(r),{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:c}=ud(r.id,!0);!o&&s.length>0&&(h(c),g(c));let l=fd(_,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=Dd(t.collapsedSize,i[t.panelId]),a=Dd(t.collapsedSize,n[t.panelId]);e&&!a&&(r.mutableState.expandedPanelSizes[t.panelId]=n[t.panelId])}}});let o=Vd().state!==`active`;h(i),o&&g(i)});return()=>{E.current=null,a(),l()}},[i,_,g,h,u,y,w]),(0,V.useEffect)(()=>{let e=E.current;e&&(e.mutableState.defaultLayout=n,e.mutableState.disableCursor=!!r)}),(0,U.jsx)(wf.Provider,{value:T,children:(0,U.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})})}Ef.displayName=`Group`;function Df(){let e=(0,V.useContext)(wf);return Yu(e,`Group Context not found; did you render a Panel or Separator outside of a Group?`),e}function Of(e,t){let{id:n}=Df(),r=(0,V.useRef)({collapse:qd,expand:qd,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:qd});(0,V.useImperativeHandle)(t,()=>r.current,[]),bf(()=>{Object.assign(r.current,Nd({groupId:n,panelId:e}))})}function kf({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=yf(c),_=Cf({disabled:a}),v=(0,V.useRef)(null),y=Sf(v,o),{getPanelStyles:b,id:x,orientation:S,registerPanel:C,togglePanelDisabled:w}=Df(),T=d!==null,E=xf((e,t,n)=>{d?.(e,c,n)});bf(()=>{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,V.useEffect)(()=>{w(g,!!a)},[a,g,w]),Of(g,f);let D=(0,V.useSyncExternalStore)(e=>fd(x,e),()=>JSON.stringify(b(x,g)),()=>JSON.stringify(b(x,g)));return(0,U.jsx)(`div`,{...m,"aria-disabled":a||void 0,"data-panel":!0,"data-testid":g,id:g,ref:y,style:{...Af,display:`flex`,flexBasis:0,flexShrink:1,overflow:`visible`,...JSON.parse(D)},children:(0,U.jsx)(`div`,{className:t,style:{maxHeight:`100%`,maxWidth:`100%`,flexGrow:1,overflow:`auto`,...p,touchAction:S===`horizontal`?`pan-y`:`pan-x`},children:e})})}kf.displayName=`Panel`;var Af={minHeight:0,maxHeight:`100%`,height:`auto`,minWidth:0,maxWidth:`100%`,width:`auto`,border:`none`,borderWidth:0,padding:0,margin:0};function jf({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=Md({layout:Ad({delta:l-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n],i=Md({layout:Ad({delta:c-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:a,valueNow:o}}function Mf({children:e,className:t,disabled:n,elementRef:r,id:i,style:a,...o}){let s=yf(i),c=Cf({disabled:n}),[l,u]=(0,V.useState)({}),[d,f]=(0,V.useState)(`inactive`),p=(0,V.useRef)(null),m=Sf(p,r),{disableCursor:h,id:g,orientation:_,registerSeparator:v,toggleSeparatorDisabled:y}=Df(),b=_===`horizontal`?`vertical`:`horizontal`;bf(()=>{let e=p.current;if(e!==null){let t={disabled:c.disabled,element:e,id:s},n=v(t),r=Hd(e=>{f(e.next.state!==`inactive`&&e.next.hitRegions.some(e=>e.separator===t)?e.next.state:`inactive`)}),i=fd(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(jf({layout:r,panelConstraints:n,panelId:e.id,panelIndex:t}))}});return()=>{r(),i(),n()}}},[g,s,v,c]),(0,V.useEffect)(()=>{y(s,!!n)},[n,s,y]);let x;return n&&!h&&(x=`not-allowed`),(0,U.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})}Mf.displayName=`Separator`;function Nf(){return`panel-${L()}`}function Pf(e=[],t=null){return{id:Nf(),tabs:e,activeTabId:t,tabHistory:t?[t]:[]}}function Ff(e){return e?1:3}function If(e,t){return e.map(e=>e.filter(e=>e!==t)).filter(e=>e.length>0)}function Lf(e,t){for(let n=0;n<e.length;n++){let r=e[n].indexOf(t);if(r!==-1)return{row:n,col:r}}return null}function Rf(e,t){switch(e){case`editor`:return`editor:${t?.filePath??`untitled`}`;case`chat`:return`chat:${t?.providerId??`default`}/${t?.sessionId??L()}`;case`terminal`:return`terminal:${t?.terminalIndex??1}`;case`database`:return`database:${t?.connectionId??`default`}:${t?.tableName??``}`;case`sqlite`:return`sqlite:${t?.filePath??`default`}`;case`postgres`:return`postgres:${t?.connectionId??`default`}:${t?.tableName??``}`;case`git-graph`:return`git-graph`;case`git-diff`:return`git-diff:${t?.filePath??`unknown`}`;case`settings`:return`settings`;case`ports`:return`ports`;default:return`${e}:${L()}`}}function zf(e){let t={...e,panels:{...e.panels}};for(let[e,n]of Object.entries(t.panels)){let r=n.tabs.map(e=>{if(e.id.startsWith(`tab-`)){let t=Rf(e.type,e.metadata);return{...e,id:t}}return e}),i=new Map;n.tabs.forEach((e,t)=>{e.id!==r[t].id&&i.set(e.id,r[t].id)});let a=i.get(n.activeTabId??``)??n.activeTabId,o=n.tabHistory.map(e=>i.get(e)??e);t.panels[e]={...n,tabs:r,activeTabId:a,tabHistory:o}}return t}var Bf=`ppm-panels-`,Vf=`ppm-tabs-`;function Hf(e){return`${Bf}${e}`}function Uf(e,t){try{let n={...t,updatedAt:new Date().toISOString()};localStorage.setItem(Hf(e),JSON.stringify(n)),qf(e,t)}catch{}}function Wf(e){try{let t=localStorage.getItem(Hf(e));if(t)return zf(JSON.parse(t))}catch{}return Yf(e)}async function Gf(e){try{let t={},n=localStorage.getItem(`ppm-auth-token`);n&&(t.Authorization=`Bearer ${n}`);let r=await fetch(`/api/project/${encodeURIComponent(e)}/workspace`,{headers:t});if(!r.ok)return null;let i=await r.json();return!i.ok||!i.data?null:{...i.data.layout,updatedAt:i.data.updatedAt}}catch{return null}}var Kf=new Map;function qf(e,t){let n=Kf.get(e);n&&clearTimeout(n),Kf.set(e,setTimeout(async()=>{Kf.delete(e);try{let n={"Content-Type":`application/json`},r=localStorage.getItem(`ppm-auth-token`);r&&(n.Authorization=`Bearer ${r}`);let i=await fetch(`/api/project/${encodeURIComponent(e)}/workspace`,{method:`PUT`,headers:n,body:JSON.stringify({layout:t})});if(i.ok){let t=await i.json();if(t.data?.updatedAt){let n=`${Bf}${e}`,r=localStorage.getItem(n);if(r){let e=JSON.parse(r);e.updatedAt=t.data.updatedAt,localStorage.setItem(n,JSON.stringify(e))}}}}catch{}},1500))}function Jf(e,t){if(!e&&!t)return null;if(!e)return t;if(!t)return e;let n=new Date(e.updatedAt).getTime();return new Date(t.updatedAt).getTime()>=n?t:e}function Yf(e){try{let t=localStorage.getItem(`${Vf}${e}`);if(!t)return null;let n=JSON.parse(t);if(!n.tabs?.length)return null;let r=Pf(n.tabs,n.activeTabId),i={panels:{[r.id]:r},grid:[[r.id]],focusedPanelId:r.id};return Uf(e,i),localStorage.removeItem(`${Vf}${e}`),i}catch{return null}}var Xf=new Set([`git-graph`,`settings`]),Zf=new Set([`projects`,`git-status`]);function Qf(e,t){let n=e.filter(e=>e!==t);return n.push(t),n.length>50&&n.shift(),n}function $f(){let e=Pf();return{panels:{[e.id]:e},grid:[[e.id]],focusedPanelId:e.id}}var Q=c()((e,t)=>{function n(){let{currentProject:e,panels:n,grid:r,focusedPanelId:i}=t();if(!e)return;let a=new Set(r.flat()),o={};for(let[e,t]of Object.entries(n))a.has(e)&&(o[e]=t);Uf(e,{panels:o,grid:r,focusedPanelId:i})}function r(e){return Object.values(t().panels).find(t=>t.tabs.some(t=>t.id===e))}function i(e){return e??t().focusedPanelId}return{...$f(),currentProject:null,projectGrids:{},projectFocused:{},switchProject:n=>{let{currentProject:r,panels:i,grid:a,focusedPanelId:o,projectGrids:s,projectFocused:c}=t();if(r===n)return;let l={...s},u={...c};if(r){l[r]=a,u[r]=o;let e=new Set(a.flat()),t={};for(let[n,r]of Object.entries(i))e.has(n)&&(t[n]=r);Uf(r,{panels:t,grid:a,focusedPanelId:o})}if(l[n]){let t=l[n];e({currentProject:n,grid:t,focusedPanelId:u[n]??t[0]?.[0]??``,projectGrids:l,projectFocused:u});return}let d=Wf(n);if(d&&Object.keys(d.panels).length>0){let t={};for(let[e,n]of Object.entries(d.panels)){let r=n.tabs.filter(e=>!Zf.has(e.type)),i=n.tabHistory.filter(e=>r.some(t=>t.id===e)),a=n.activeTabId&&r.some(e=>e.id===n.activeTabId)?n.activeTabId:i[i.length-1]??r[0]?.id??null;t[e]={...n,tabs:r,tabHistory:i,activeTabId:a}}let r={...i,...t};l[n]=d.grid,u[n]=d.focusedPanelId,e({currentProject:n,panels:r,grid:d.grid,focusedPanelId:d.focusedPanelId,projectGrids:l,projectFocused:u})}else{let t=Pf(),r=[[t.id]],a={...i,[t.id]:t};l[n]=r,u[n]=t.id,Uf(n,{panels:{[t.id]:t},grid:r,focusedPanelId:t.id}),e({currentProject:n,panels:a,grid:r,focusedPanelId:t.id,projectGrids:l,projectFocused:u})}},reloadProject:n=>{let{projectGrids:r,projectFocused:i,panels:a}=t(),o={...r},s={...i};delete o[n],delete s[n];let c=r[n],l=c?new Set(c.flat()):new Set,u={...a};for(let e of l)delete u[e];e({projectGrids:o,projectFocused:s,panels:u,currentProject:null}),t().switchProject(n)},setFocusedPanel:n=>{t().panels[n]&&e({focusedPanelId:n})},openTab:(r,a)=>{let o=i(a);if(!t().panels[o])return``;if(r.type===`terminal`&&!r.metadata?.terminalIndex){let e=Object.values(t().panels).flatMap(e=>e.tabs).filter(e=>e.type===`terminal`).map(e=>{let t=e.id.match(/^terminal:(\d+)/);return t?parseInt(t[1],10):0}),n=e.length>0?Math.max(...e)+1:1;r={...r,metadata:{...r.metadata,terminalIndex:n}}}let s=Rf(r.type,r.metadata);if(Xf.has(r.type))for(let r of Object.values(t().panels)){let t=r.tabs.find(e=>e.id===s);if(t)return e(e=>({focusedPanelId:r.id,panels:{...e.panels,[r.id]:{...r,activeTabId:t.id,tabHistory:Qf(r.tabHistory,t.id)}}})),n(),t.id}let c=t().panels[o],l=c.tabs.find(e=>e.id===s);if(l)return e(e=>({panels:{...e.panels,[o]:{...c,activeTabId:l.id,tabHistory:Qf(c.tabHistory,l.id)}}})),n(),l.id;let u=Object.values(t().panels).some(e=>e.id!==o&&e.tabs.some(e=>e.id===s))?`${s}@${o}`:s,d={...r,id:u};return e(e=>{let t=e.panels[o];return{focusedPanelId:o,panels:{...e.panels,[o]:{...t,tabs:[...t.tabs,d],activeTabId:u,tabHistory:Qf(t.tabHistory,u)}}}}),n(),u},closeTab:(i,a)=>{let o=a?t().panels[a]:r(i);if(!o)return;let s=o.id;e(e=>{let t=e.panels[s],n=t.tabs.filter(e=>e.id!==i),r=t.tabHistory.filter(e=>e!==i),a=t.activeTabId;if(t.activeTabId===i){let e=r.length>0?r[r.length-1]:null;a=e&&n.some(t=>t.id===e)?e:n[n.length-1]?.id??null}let o=e.grid.flat().length;if(n.length===0&&o>1){let{[s]:t,...n}=e.panels;return{panels:n,grid:If(e.grid,s),focusedPanelId:e.focusedPanelId===s?Object.keys(n)[0]:e.focusedPanelId}}return{panels:{...e.panels,[s]:{...t,tabs:n,activeTabId:a,tabHistory:r}}}}),n()},setActiveTab:(i,a)=>{let o=a?t().panels[a]:r(i);if(!o)return;let s=o.id;e(e=>{let t=e.panels[s];return{focusedPanelId:s,panels:{...e.panels,[s]:{...t,activeTabId:i,tabHistory:Qf(t.tabHistory,i)}}}}),n()},updateTab:(t,i)=>{let a=r(t);a&&(e(e=>({panels:{...e.panels,[a.id]:{...a,tabs:a.tabs.map(e=>e.id===t?{...e,...i}:e)}}})),n())},reorderTab:(r,i,a)=>{let o=t().panels[i];if(!o)return;let s=o.tabs.findIndex(e=>e.id===r);if(s===-1||s===a)return;let c=[...o.tabs],[l]=c.splice(s,1);c.splice(a,0,l),e(e=>({panels:{...e.panels,[i]:{...o,tabs:c}}})),n()},moveTab:(r,i,a,o)=>{if(i===a)return;let s=t().panels[i],c=t().panels[a];if(!s||!c)return;let l=s.tabs.find(e=>e.id===r);if(!l)return;let u=s.tabs.filter(e=>e.id!==r),d=s.tabHistory.filter(e=>e!==r),f=s.activeTabId===r?d[d.length-1]??u[u.length-1]?.id??null:s.activeTabId,p=[...c.tabs];o===void 0?p.push(l):p.splice(o,0,l),e(e=>{let t=e.grid.flat().length;if(u.length===0&&t>1){let{[i]:t,...n}=e.panels;return{panels:{...n,[a]:{...c,tabs:p,activeTabId:r,tabHistory:Qf(c.tabHistory,r)}},grid:If(e.grid,i),focusedPanelId:a}}return{focusedPanelId:a,panels:{...e.panels,[i]:{...s,tabs:u,activeTabId:f,tabHistory:d},[a]:{...c,tabs:p,activeTabId:r,tabHistory:Qf(c.tabHistory,r)}}}}),n()},splitPanel:(r,i,a,o)=>{let{grid:s,panels:c}=t(),l=t().isMobile(),u=c[a];if(!u)return!1;let d=u.tabs.find(e=>e.id===i);if(!d)return!1;let f=Lf(s,o??a);if(!f)return!1;let p=r===`left`||r===`right`,m=r===`up`||r===`down`;if(p&&(s[f.row]?.length??0)>=Ff(l)||m&&s.length>=3)return!1;let h=Pf([d],d.id);h.tabHistory=[d.id];let g=u.tabs.filter(e=>e.id!==i),_=u.tabHistory.filter(e=>e!==i),v=u.activeTabId===i?_[_.length-1]??g[g.length-1]?.id??null:u.activeTabId,y;if(p)y=s.map((e,t)=>{if(t!==f.row)return e;let n=[...e],i=r===`right`?f.col+1:f.col;return n.splice(i,0,h.id),n});else{y=[...s];let e=r===`down`?f.row+1:f.row;y.splice(e,0,[h.id])}return e(e=>{let t=e.grid.flat().length,n={...e.panels,[h.id]:h};if(g.length===0&&t>1){let{[a]:e,...t}=n;n=t,y=If(y,a)}else n[a]={...u,tabs:g,activeTabId:v,tabHistory:_};return{panels:n,grid:y,focusedPanelId:h.id}}),n(),!0},closePanel:r=>{let{panels:i,grid:a}=t();if(a.flat().length<=1)return;let o=i[r];if(!o)return;Lf(a,r);let s=a.flat(),c=s.indexOf(r),l=c>0?s[c-1]:s[1],u=i[l];u&&(e(e=>{let{[r]:t,...n}=e.panels,i=[...u.tabs,...o.tabs],a=u.activeTabId??o.activeTabId;return{panels:{...n,[l]:{...u,tabs:i,activeTabId:a,tabHistory:[...u.tabHistory,...o.tabHistory]}},grid:If(e.grid,r),focusedPanelId:l}}),n())},getPanelForTab:e=>r(e),isMobile:()=>typeof window<`u`&&window.innerWidth<768}}),ep=`ppm-custom-order`;function tp(){try{let e=localStorage.getItem(ep);return e?JSON.parse(e):null}catch{return null}}function np(e){try{localStorage.setItem(ep,JSON.stringify(e))}catch{}}function rp(e,t){if(!t)return[...e];let n=new Map(t.map((e,t)=>[e,t]));return[...e].sort((e,t)=>(n.get(e.name)??1/0)-(n.get(t.name)??1/0))}var ip=c((e,t)=>({projects:[],activeProject:null,customOrder:tp(),loading:!1,error:null,fetchProjects:async()=>{e({loading:!0,error:null});try{e({projects:await z.get(`/api/projects`),loading:!1})}catch(t){e({error:t instanceof Error?t.message:`Failed to fetch projects`,loading:!1})}},setActiveProject:t=>{e({activeProject:t})},addProject:async(n,r)=>{let i=await z.post(`/api/projects`,{path:n,name:r});await t().fetchProjects();let a=t().projects.find(e=>e.name===(r??i.name)||e.path===n);return a&&e({activeProject:a}),i},setProjectColor:async(e,n)=>{await z.patch(`/api/projects/${encodeURIComponent(e)}/color`,{color:n}),await t().fetchProjects()},moveProject:async(n,r)=>{let{projects:i,customOrder:a}=t(),o=rp(i,a),s=o.findIndex(e=>e.name===n);if(s===-1)return;let c=r===`up`?s-1:s+1;if(c<0||c>=o.length)return;let l=o.map(e=>e.name);[l[s],l[c]]=[l[c],l[s]],np(l),await z.patch(`/api/projects/reorder`,{order:l}),e({customOrder:l})},reorderProjects:async t=>{np(t),e({customOrder:t}),await z.patch(`/api/projects/reorder`,{order:t}).catch(()=>{})},renameProject:async(e,n)=>{await z.patch(`/api/projects/${encodeURIComponent(e)}`,{name:n}),await t().fetchProjects()},deleteProject:async t=>{await z.del(`/api/projects/${encodeURIComponent(t)}`),e(e=>{let n=e.projects.filter(e=>e.name!==t),r=e.customOrder?e.customOrder.filter(e=>e!==t):null;return r&&np(r),{projects:n,customOrder:r,activeProject:e.activeProject?.name===t?n[0]??null:e.activeProject}})}})),ap=c()(()=>({tabs:[],activeTabId:null,tabHistory:[],currentProject:null,switchProject:e=>{Q.getState().switchProject(e),op()},openTab:e=>{let t=Q.getState().openTab(e);return op(),t},closeTab:e=>{Q.getState().closeTab(e),op()},setActiveTab:e=>{Q.getState().setActiveTab(e),op()},updateTab:(e,t)=>{Q.getState().updateTab(e,t),op()}}));function op(){let e=Q.getState(),t=e.panels[e.focusedPanelId];ap.setState({tabs:t?.tabs??[],activeTabId:t?.activeTabId??null,tabHistory:t?.tabHistory??[],currentProject:e.currentProject})}Q.subscribe(()=>op());var sp=`application/ppm-tab`,cp=!1,lp=new Set;function up(e){cp!==e&&(cp=e,lp.forEach(e=>e()))}function dp(){return(0,V.useSyncExternalStore)(e=>(lp.add(e),()=>lp.delete(e)),()=>cp)}function fp(){up(!1)}function pp(e){let[t,n]=(0,V.useState)(null),r=(0,V.useRef)(null);return{dropIndex:t,handleDragStart:(0,V.useCallback)((t,n)=>{let r={tabId:n,panelId:e};t.dataTransfer.setData(sp,JSON.stringify(r)),t.dataTransfer.effectAllowed=`move`,requestAnimationFrame(()=>up(!0))},[e]),handleDragOver:(0,V.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,V.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`)},[]),handleDrop:(0,V.useCallback)(i=>{i.preventDefault(),up(!1);let a=i.dataTransfer.getData(sp);if(a){try{let n=JSON.parse(a),r=Q.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,V.useCallback)(()=>{up(!1),n(null),r.current=null},[])}}var mp=null,hp=null,gp=0,_p=new Set;function vp(){_p.forEach(e=>e())}function yp(){return(0,V.useSyncExternalStore)(e=>(_p.add(e),()=>_p.delete(e)),()=>hp)}function bp(){return Date.now()-gp<300}var xp=null;function Sp(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),xp=r}function Cp(e,t){xp&&(xp.style.left=`${e}px`,xp.style.top=`${t}px`)}function wp(){xp?.remove(),xp=null}function Tp(e,t){xp&&(xp.style.display=`none`);let n=document.elementFromPoint(e,t);xp&&(xp.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}=Q.getState(),u=window.innerWidth<768,d=Lf(l,i),f=d?!u&&(l[d.row]?.length??0)<Ff(!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 Ep(e){if(!mp)return;e.preventDefault();let t=e.touches[0];if(!t)return;Cp(t.clientX,t.clientY);let n=Tp(t.clientX,t.clientY);(n?.panelId!==hp?.panelId||n?.zone!==hp?.zone)&&(hp=n,vp())}function Dp(){mp=null,hp=null,vp(),wp(),fp(),document.removeEventListener(`touchmove`,Ep),document.removeEventListener(`touchend`,Op),document.removeEventListener(`touchcancel`,kp)}function Op(){let e=mp,t=hp;if(Dp(),gp=Date.now(),!e||!t)return;let n=Q.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 kp(){Dp(),gp=Date.now()}function Ap(e,t,n,r){mp=e,up(!0),Sp(t,n,r),document.addEventListener(`touchmove`,Ep,{passive:!1}),document.addEventListener(`touchend`,Op),document.addEventListener(`touchcancel`,kp)}var jp=200,Mp=10;function Np(e){let t=(0,V.useRef)(null),n=(0,V.useRef)(null),r=(0,V.useRef)(!1);return{handleTouchStart:(0,V.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,Ap({tabId:a,panelId:e},o,n.current.x,n.current.y)},jp))},[e]),handleTouchMove:(0,V.useCallback)(e=>{if(r.current||!n.current||!t.current)return;let i=e.touches[0];i&&(Math.abs(i.clientX-n.current.x)>Mp||Math.abs(i.clientY-n.current.y)>Mp)&&(clearTimeout(t.current),t.current=null)},[]),handleTouchEnd:(0,V.useCallback)(()=>{t.current&&=(clearTimeout(t.current),null)},[])}}var Pp=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),Fp=[{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:`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-graph`,label:`Git Graph`,category:`tabs`,defaultKey:`Mod+G`},{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`},...Array.from({length:9},(e,t)=>({id:`switch-project-${t+1}`,label:`Switch to Project ${t+1}`,category:`projects`,defaultKey:`Mod+${t+1}`}))],Ip=new Map(Fp.map(e=>[e.id,e.defaultKey]));function Lp(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`:Pp?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 Rp(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 zp(e){return e.replace(/Mod/g,Pp?`⌘`:`Ctrl`).replace(/Shift/g,Pp?`⇧`:`Shift`).replace(/Alt/g,Pp?`⌥`:`Alt`).replace(/Meta|Cmd/g,`⌘`).replace(/Ctrl/g,Pp?`⌃`:`Ctrl`)}function Bp(e){if([`Control`,`Meta`,`Alt`,`Shift`].includes(e.key))return null;let t=[];e.ctrlKey&&!e.metaKey&&t.push(Pp?`Ctrl`:`Mod`),e.metaKey&&t.push(Pp?`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(`+`)}var Vp=c((e,t)=>({overrides:{},loaded:!1,getBinding:e=>t().overrides[e]??Ip.get(e)??``,matchesEvent:(e,n)=>{let r=t().getBinding(n);return r?Rp(e,Lp(r)):!1},setBinding:(n,r)=>{e({overrides:{...t().overrides,[n]:r}}),z.put(`/api/settings/keybindings`,{[n]:r}).catch(()=>{})},resetBinding:n=>{let r={...t().overrides};delete r[n],e({overrides:r}),z.put(`/api/settings/keybindings`,{[n]:null}).catch(()=>{})},resetAll:()=>{e({overrides:{}});let n={};for(let e of Object.keys(t().overrides))n[e]=null;Object.keys(n).length>0&&z.put(`/api/settings/keybindings`,n).catch(()=>{})},loadFromServer:async()=>{try{e({overrides:await z.get(`/api/settings/keybindings`),loaded:!0})}catch{e({loaded:!0})}}}));function Hp(e){window.dispatchEvent(new CustomEvent(`open-command-palette`,{detail:e}))}function Up(){let[e,t]=(0,V.useState)(!1),[n,r]=(0,V.useState)(``);return(0,V.useEffect)(()=>{let e=0,n=!1,{matchesEvent:i}=Vp.getState(),a=!1;function o(){a=!0}function s(){a=!1}function c(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&&!a&&!i.isComposing){let n=Date.now();if(n-e<400){e=0,r(``),t(!0);return}e=n;return}if(i.type!==`keydown`||a||i.isComposing)return;let{matchesEvent:o}=Vp.getState();if(o(i,`save-prevent`)){i.preventDefault();return}if(o(i,`command-palette`)){i.preventDefault(),r(``),t(!0);return}if(o(i,`toggle-sidebar`)){i.preventDefault(),H.getState().toggleSidebar();return}if(o(i,`next-tab`)||o(i,`prev-tab`)){i.preventDefault();let{tabs:e,activeTabId:t,setActiveTab:n}=ap.getState();if(e.length<2)return;let r=e.findIndex(e=>e.id===t);n(e[o(i,`next-tab`)?(r+1)%e.length:(r-1+e.length)%e.length].id);return}for(let e of[{action:`open-chat`,type:`chat`,title:`AI Chat`},{action:`open-terminal`,type:`terminal`,title:`Terminal`},{action:`open-git-graph`,type:`git-graph`,title:`Git Graph`}])if(o(i,e.action)){i.preventDefault();let t=ip.getState().activeProject;ap.getState().openTab({type:e.type,title:e.title,projectId:t?.name??null,metadata:t?{projectName:t.name}:void 0,closable:!0});return}if(o(i,`open-settings`)){i.preventDefault();let e=H.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`settings`);return}if(o(i,`open-git-status`)){i.preventDefault();let e=H.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`git`);return}if(o(i,`voice-input`)){i.preventDefault(),window.dispatchEvent(new CustomEvent(`toggle-voice-input`));return}if(o(i,`open-search`)){i.preventDefault();let e=H.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`search`);return}for(let e=1;e<=9;e++)if(o(i,`switch-project-${e}`)){i.preventDefault();let t=ip.getState().projects[e-1];t&&(ip.getState().setActiveProject(t),ap.getState().switchProject(t.name));return}}function l(e){let n=e.detail;r(typeof n==`string`?n:``),t(!0)}return window.addEventListener(`keydown`,c),window.addEventListener(`keyup`,c),window.addEventListener(`compositionstart`,o),window.addEventListener(`compositionend`,s),window.addEventListener(`open-command-palette`,l),()=>{window.removeEventListener(`keydown`,c),window.removeEventListener(`keyup`,c),window.removeEventListener(`compositionstart`,o),window.removeEventListener(`compositionend`,s),window.removeEventListener(`open-command-palette`,l)}},[]),{paletteOpen:e,paletteInitialQuery:n,closePalette:(0,V.useCallback)(()=>{t(!1),r(``)},[])}}var Wp={approval_request:`bg-red-500`,question:`bg-amber-500`,done:`bg-blue-500`},Gp={done:0,question:1,approval_request:2};function Kp(e){return e&&Wp[e]||`bg-red-500`}var qp=c()(e=>({notifications:new Map,addNotification:(t,n,r)=>{e(e=>{let i=new Map(e.notifications),a=i.get(t);return i.set(t,{count:(a?.count??0)+1,type:n,projectName:r}),{notifications:i}})},clearForSession:t=>{e(e=>{if(!e.notifications.has(t))return e;let n=new Map(e.notifications);return n.delete(t),{notifications:n}})},clearAll:()=>e({notifications:new Map})}));function Jp(e){let t=0;for(let[,n]of e.notifications)t+=n.count;return t}function Yp(e){return t=>{let n=null,r=-1;for(let[,i]of t.notifications){if(i.projectName!==e)continue;let t=Gp[i.type]??0;t>r&&(r=t,n=i.type)}return n}}function Xp(e){let[t,n]=(0,V.useState)(!1),[r,i]=(0,V.useState)(!1),a=(0,V.useCallback)(()=>{let t=e.current;t&&(n(t.scrollLeft>1),i(t.scrollLeft+t.clientWidth<t.scrollWidth-1))},[e]);return(0,V.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,V.useCallback)(()=>{e.current?.scrollBy({left:-150,behavior:`smooth`})},[e]),scrollRight:(0,V.useCallback)(()=>{e.current?.scrollBy({left:150,behavior:`smooth`})},[e])}}var Zp={done:0,question:1,approval_request:2};function Qp(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,_=Zp[f.type]??0;g<=i&&_>s&&(s=_,o=f.type),h>=a&&_>l&&(l=_,c=f.type)}return{left:o,right:c}}function $p(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 em(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 tm(e){let t=$p(e);return t?em(t.r,t.g,t.b)<.4:!1}function nm({tab:e,isActive:t,icon:n,showDropBefore:r,notificationType:i,onSelect:a,onClose:s,onDragStart:c,onDragOver:l,onDragEnd:u,onTouchStart:d,onTouchMove:f,onTouchEnd:p,tabRef:m,onRename:h}){let[g,_]=(0,V.useState)(!1),[v,y]=(0,V.useState)(e.title),b=(0,V.useRef)(null);(0,V.useEffect)(()=>{g&&(y(e.title),setTimeout(()=>b.current?.select(),0))},[g]);let x=()=>{_(!1);let t=v.trim();t&&t!==e.title&&h&&h(t)},S=e.metadata?.connectionColor,C=S?{backgroundColor:t?S:`${S}33`,color:t&&tm(S)?`#fff`:void 0}:void 0;return(0,U.jsxs)(`div`,{className:`relative flex items-center`,children:[r&&(0,U.jsx)(`div`,{className:`absolute left-0 top-1 bottom-1 w-0.5 bg-primary rounded-full z-10`}),(0,U.jsxs)(`button`,{ref:m,"data-tab-item":!0,draggable:!g,onClick:a,onAuxClick:t=>{t.button===1&&e.closable&&(t.preventDefault(),s())},onDragStart:c,onDragOver:l,onDragEnd:u,onTouchStart:d,onTouchMove:f,onTouchEnd:p,style:C,className:I(`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`,!C&&(t?`border-primary text-primary`:`border-transparent text-text-secondary hover:text-foreground`),C&&`border-transparent`),children:[(0,U.jsxs)(`span`,{className:`relative`,children:[(0,U.jsx)(n,{className:`size-4`}),i&&!t&&(0,U.jsx)(`span`,{className:I(`absolute -top-1 -right-1 size-2 rounded-full`,Kp(i))})]}),g?(0,U.jsx)(`input`,{ref:b,value:v,onChange:e=>y(e.target.value),onBlur:x,onKeyDown:e=>{e.key===`Enter`&&x(),e.key===`Escape`&&_(!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,U.jsx)(`span`,{className:`max-w-[120px] truncate`,onDoubleClick:e=>{h&&(e.stopPropagation(),_(!0))},children:e.title}),e.closable&&!g&&(0,U.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,U.jsx)(o,{className:`size-3`})})]})]})}var rm={terminal:Xt,chat:yt,editor:Ke,database:ze,sqlite:ze,postgres:ze,"git-graph":nt,"git-diff":qe,settings:Kt,ports:it,"extension-webview":Lt};function im({panelId:e}){ip(e=>e.activeProject);let t=(0,V.useRef)(new Map),n=(0,V.useRef)(null),r=(0,V.useRef)(0),i=Q(t=>e?t.panels[e]:t.panels[t.focusedPanelId]),a=i?.tabs??[],o=i?.activeTabId??null,c=i?.id??Q.getState().focusedPanelId,{dropIndex:l,handleDragStart:u,handleDragOver:d,handleDragOverBar:f,handleDrop:p,handleDragEnd:m}=pp(c),{handleTouchStart:h,handleTouchMove:g,handleTouchEnd:_}=Np(c),v=qp(e=>e.notifications),{canScrollLeft:y,canScrollRight:b,scrollLeft:x,scrollRight:S}=Xp(n),C=Qp(n.current,t.current,a,v);(0,V.useEffect)(()=>{if(a.length>r.current&&o){let e=t.current.get(o);e&&e.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`nearest`})}r.current=a.length},[a.length,o]);let w=(0,V.useCallback)((e,t)=>{ap.getState().updateTab(e.id,{title:t});let n=e.metadata?.projectName,r=e.metadata?.sessionId;n&&r&&z.patch(`${R(n)}/chat/sessions/${r}`,{title:t}).catch(()=>{})},[]);function T(e){e.target.closest(`[data-tab-item]`)||Hp()}function E(e){e.target.closest(`[data-tab-item]`)||(e.preventDefault(),Hp())}return(0,U.jsxs)(`div`,{className:`hidden md:flex items-center h-10 border-b border-border bg-background relative`,onDragOver:f,onDrop:p,onDoubleClick:T,onContextMenu:E,children:[y&&(0,U.jsx)(`button`,{onClick:x,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,U.jsxs)(`span`,{className:`relative`,children:[(0,U.jsx)(Oe,{className:`size-4 text-text-secondary`}),C.left&&(0,U.jsx)(`span`,{className:I(`absolute -top-1 -right-0.5 size-2 rounded-full`,Kp(C.left))})]})}),(0,U.jsx)(`div`,{ref:n,className:`flex-1 overflow-x-auto overflow-y-hidden min-w-0 scrollbar-none`,children:(0,U.jsxs)(`div`,{className:`flex items-center h-10`,children:[a.map((e,n)=>{let r=e.type===`chat`?e.metadata?.sessionId:void 0,i=r?v.get(r):void 0,a=i&&i.count>0?i.type:null;return(0,U.jsx)(nm,{tab:e,isActive:e.id===o,icon:rm[e.type],showDropBefore:l===n,notificationType:a,onSelect:()=>{bp()||(Q.getState().setActiveTab(e.id,c),r&&qp.getState().clearForSession(r))},onClose:()=>Q.getState().closeTab(e.id,c),onDragStart:t=>u(t,e.id),onDragOver:t=>d(t,e.id,n),onDragEnd:m,onTouchStart:t=>h(t,e.id,e.title),onTouchMove:g,onTouchEnd:_,tabRef:n=>{n?t.current.set(e.id,n):t.current.delete(e.id)},onRename:e.type===`chat`?t=>w(e,t):void 0},e.id)}),l!==null&&l>=a.length&&(0,U.jsx)(`div`,{className:`w-0.5 h-6 bg-primary rounded-full`}),(0,U.jsx)(`button`,{onClick:()=>Hp(),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,U.jsx)(Pt,{className:`size-4`})})]})}),b&&(0,U.jsx)(`button`,{onClick:S,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,U.jsxs)(`span`,{className:`relative`,children:[(0,U.jsx)(s,{className:`size-4 text-text-secondary`}),C.right&&(0,U.jsx)(`span`,{className:I(`absolute -top-1 -left-0.5 size-2 rounded-full`,Kp(C.right))})]})})]})}function am({panelId:e}){let[t,n]=(0,V.useState)(null),r=dp(),i=yp(),a=(i?.panelId===e?i.zone:null)??t,o=Q(e=>e.grid),s=Q(e=>e.isMobile()),c=Lf(o,e),l=!s&&o.length<3,u=c?!s&&(o[c.row]?.length??0)<Ff(!1):!1,d=(0,V.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,V.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.stopPropagation(),n(d(e)))},[d]),p=(0,V.useCallback)(e=>{e.currentTarget.contains(e.relatedTarget)||n(null)},[]),m=(0,V.useCallback)(t=>{t.preventDefault(),t.stopPropagation();let r=d(t);if(n(null),fp(),!r)return;let i=t.dataTransfer.getData(sp);if(i)try{let t=JSON.parse(i),n=Q.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,U.jsxs)(`div`,{className:`absolute inset-0 z-20`,onDragOver:f,onDragLeave:p,onDrop:m,children:[a===`left`&&(0,U.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,U.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,U.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,U.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,U.jsx)(`div`,{className:`absolute inset-0 bg-primary/5 border-2 border-dashed border-primary/30 rounded-md`})]}):null}var om=[{type:`terminal`,label:`Terminal`,icon:Xt},{type:`chat`,label:`AI Chat`,icon:yt},{type:`git-graph`,label:`Git Graph`,icon:nt}],sm={terminal:(0,V.lazy)(()=>l(()=>import(`./terminal-tab--DxApS1a.js`).then(e=>({default:e.TerminalTab})),__vite__mapDeps([3,1,4,5,6,7]))),chat:(0,V.lazy)(()=>l(()=>import(`./chat-tab-Balv7WLR.js`).then(e=>({default:e.ChatTab})),__vite__mapDeps([8,1,9,10,11,12,6,5,13,14,15,16,17,18,4,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,2,37,38,39,0]))),editor:(0,V.lazy)(()=>l(()=>import(`./code-editor--iQ3p6pv.js`).then(e=>({default:e.CodeEditor})),__vite__mapDeps([40,1,9,10,11,12,6,5,13,14,15,16,17,18,41,4,19,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,2,42,43,44]))),database:(0,V.lazy)(()=>l(()=>import(`./database-viewer-j_rE2HtW.js`).then(e=>({default:e.DatabaseViewer})),__vite__mapDeps([45,1,41,6,19,21,22,5,46,44,2,47]))),sqlite:(0,V.lazy)(()=>l(()=>import(`./sqlite-viewer-FTb_sKqq.js`).then(e=>({default:e.SqliteViewer})),__vite__mapDeps([48,1,41,6,49,22,19,42,5,46,44,2]))),postgres:(0,V.lazy)(()=>l(()=>import(`./postgres-viewer-h6eod6pQ.js`).then(e=>({default:e.PostgresViewer})),__vite__mapDeps([50,1,49,6,22,19,42,5,2]))),"git-graph":(0,V.lazy)(()=>l(()=>import(`./git-graph-4T0UY_11.js`).then(e=>({default:e.GitGraph})),__vite__mapDeps([51,1,11,12,6,5,4,19,21,39,2]))),"git-diff":(0,V.lazy)(()=>l(()=>import(`./diff-viewer-BsNNXZOH.js`).then(e=>({default:e.DiffViewer})),__vite__mapDeps([52,1,41,6,19,37,43,5,2]))),settings:(0,V.lazy)(()=>l(()=>import(`./settings-tab-c_CRbliY.js`).then(e=>({default:e.SettingsTab})),__vite__mapDeps([53,11,1,12,6,5,2,0]))),ports:(0,V.lazy)(()=>l(()=>import(`./port-forwarding-tab-zP7tA3ms.js`).then(e=>({default:e.PortForwardingTab})),__vite__mapDeps([54,1,19,6,38,12,5,2]))),"extension-webview":(0,V.lazy)(()=>l(()=>import(`./extension-webview-DBFlb9vJ.js`).then(e=>({default:e.ExtensionWebview})),__vite__mapDeps([55,1,5,6])))};function cm({panelId:e,projectName:t}){let n=Q(t=>t.panels[e]),r=Q(t=>t.focusedPanelId===e),i=Q(e=>(e.currentProject===t?e.grid:e.projectGrids[t]??[[]]).flat().length);return n?(0,U.jsxs)(`div`,{className:I(`flex flex-col h-full overflow-hidden`,i>1&&`border border-transparent`,i>1&&r&&`border-primary/30`),onMouseDown:()=>{Q.getState().focusedPanelId!==e&&Q.getState().setFocusedPanel(e)},children:[(0,U.jsx)(im,{panelId:e}),(0,U.jsxs)(`div`,{className:`flex-1 overflow-hidden relative`,"data-panel-drop-zone":e,children:[n.tabs.length===0?(0,U.jsx)(fm,{panelId:e}):n.tabs.map(e=>{let t=sm[e.type];return(0,U.jsx)(`div`,{className:e.id===n.activeTabId?`h-full w-full`:`hidden`,children:(0,U.jsx)(V.Suspense,{fallback:(0,U.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,U.jsx)(B,{className:`size-6 animate-spin text-primary`})}),children:(0,U.jsx)(t,{metadata:e.metadata,tabId:e.id})})},e.id)}),(0,U.jsx)(am,{panelId:e})]})]}):null}function lm(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``}}var um=5,dm=20;function fm({panelId:e}){let t=ip(e=>e.activeProject),[n,r]=(0,V.useState)([]),[i,o]=(0,V.useState)(!1),[s,c]=(0,V.useState)(!1),l=(0,V.useCallback)(async()=>{if(t?.name){o(!0);try{r((await z.get(`${R(t.name)}/chat/sessions?limit=${dm}`)).sessions.slice(0,dm))}catch{}finally{o(!1)}}},[t?.name]);(0,V.useEffect)(()=>{l()},[l]);let u=(0,V.useCallback)(async(e,n)=>{if(e.stopPropagation(),!t?.name)return;let i=`${R(t.name)}/chat/sessions/${n.id}/pin`;try{n.pinned?await z.del(i):await z.put(i),r(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{}},[t?.name]);function d(n){let r=n!==`settings`&&t?{projectName:t.name}:void 0;Q.getState().openTab({type:n,title:om.find(e=>e.type===n)?.label??n,metadata:r,projectId:t?.name??null,closable:!0},e)}function f(n){Q.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)}let p=n.filter(e=>e.pinned),m=n.filter(e=>!e.pinned),h=s?m:m.slice(0,um),g=m.length>um;function _(e){return(0,U.jsxs)(`button`,{onClick:()=>f(e),className:`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`,children:[(0,U.jsx)(yt,{className:`size-3.5 shrink-0 text-text-subtle`}),(0,U.jsx)(`span`,{className:`flex-1 min-w-0 text-xs font-medium truncate text-text-primary`,children:e.title||`Untitled`}),e.updatedAt&&(0,U.jsx)(`span`,{className:`text-[10px] text-text-subtle shrink-0`,children:lm(e.updatedAt)}),(0,U.jsx)(`span`,{role:`button`,tabIndex:0,onClick:t=>u(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,U.jsx)(At,{className:`size-3`}):(0,U.jsx)(jt,{className:`size-3`})})]},e.id)}return(0,U.jsx)(`div`,{className:`flex flex-col h-full overflow-y-auto text-text-secondary`,children:(0,U.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-6 px-4 flex-1`,children:[(0,U.jsx)(`p`,{className:`text-sm`,children:`Open a tab to get started`}),(0,U.jsx)(`div`,{className:`grid grid-cols-3 gap-2 w-full max-w-sm`,children:om.map(e=>{let t=e.icon;return(0,U.jsxs)(`button`,{onClick:()=>d(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,U.jsx)(t,{className:`size-5`}),e.label]},e.type)})}),t&&!i&&p.length>0&&(0,U.jsxs)(`div`,{className:`flex flex-col gap-2 w-full max-w-sm`,children:[(0,U.jsx)(`p`,{className:`text-xs text-text-subtle text-center`,children:`Pinned`}),(0,U.jsx)(`div`,{className:`w-full rounded-md border border-border bg-surface overflow-hidden`,children:p.map(_)})]}),t&&!i&&h.length>0&&(0,U.jsxs)(`div`,{className:`flex flex-col gap-2 w-full max-w-sm`,children:[(0,U.jsx)(`p`,{className:`text-xs text-text-subtle text-center`,children:`Recent chats`}),(0,U.jsx)(`div`,{className:`w-full rounded-md border border-border bg-surface overflow-hidden`,children:h.map(_)}),g&&(0,U.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,U.jsx)(ke,{className:`size-3`}):(0,U.jsx)(a,{className:`size-3`}),s?`Show less`:`Show more (${m.length-um})`]})]})]})})}function pm({projectName:e}){let t=Q(t=>t.currentProject===e?t.grid:t.projectGrids[e]??[[]]),n=t.flat().length;return(0,V.useEffect)(()=>{if(n===0){let e=Pf();Q.setState(t=>({panels:{...t.panels,[e.id]:e},grid:[[e.id]],focusedPanelId:e.id}))}},[n]),n===0?null:n===1&&t[0]?.[0]?(0,U.jsx)(cm,{panelId:t[0][0],projectName:e}):(0,U.jsx)(Ef,{orientation:`vertical`,style:{height:`100%`},children:t.map((n,r)=>(0,U.jsx)(mm,{row:n,rowIdx:r,totalRows:t.length,projectName:e},`row-${r}`))})}function mm({row:e,rowIdx:t,totalRows:n,projectName:r}){return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(kf,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:e.length===1?(0,U.jsx)(cm,{panelId:e[0],projectName:r}):(0,U.jsx)(Ef,{orientation:`horizontal`,children:e.map((t,n)=>(0,U.jsx)(hm,{panelId:t,colIdx:n,totalCols:e.length,projectName:r},t))})}),t<n-1&&(0,U.jsx)(gm,{orientation:`horizontal`})]})}function hm({panelId:e,colIdx:t,totalCols:n,projectName:r}){return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(kf,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:(0,U.jsx)(cm,{panelId:e,projectName:r})}),t<n-1&&(0,U.jsx)(gm,{orientation:`vertical`})]})}function gm({orientation:e}){let t=e===`vertical`;return(0,U.jsx)(Mf,{className:`
15
15
  group/handle relative flex items-center justify-center
16
16
  ${t?`w-1 cursor-col-resize`:`h-1 cursor-row-resize`}
17
17
  bg-border/30 hover:bg-primary/30 active:bg-primary/50
@@ -27,4 +27,4 @@ OPENAI_API_KEY=${e.authKey}`}),(0,U.jsx)($,{variant:`ghost`,size:`sm`,className:
27
27
  <rect width="32" height="32" rx="6" fill="#3b82f6"/>
28
28
  <text x="16" y="22" text-anchor="middle" font-family="system-ui,sans-serif" font-weight="700" font-size="11" fill="white">PPM</text>
29
29
  <circle cx="26" cy="6" r="5" fill="#ef4444"/>
30
- </svg>`,Y_=`data:image/svg+xml,${encodeURIComponent(q_)}`,X_=`data:image/svg+xml,${encodeURIComponent(J_)}`;function Z_(e){let t=document.getElementById(`ppm-favicon`);t&&(t.href=e?X_:Y_)}function Q_(e,t,n){let r=[t,n||null,`PPM`].filter(Boolean).join(` - `);return e>0?`(${e}) ${r}`:r}function $_(){let e=ip(e=>e.activeProject),t=H(e=>e.deviceName);(0,V.useEffect)(()=>{let n=()=>{let n=Jp(qp.getState());document.title=Q_(n,e?.name,t??void 0),Z_(n>0)};return n(),qp.subscribe(n)},[e?.name,t])}var ev=15e3,tv=c((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>=ev})},markUp:()=>{e({isDown:!1,downSince:null,showOverlay:!1})}})),nv=1e4,rv=2e3;function iv(){(0,V.useEffect)(()=>{let e=!1,t,{markDown:n,markUp:r}=tv.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?rv:nv)}return t=setTimeout(i,nv),()=>clearTimeout(t)},[])}var av=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent);function ov(e){return e?e.replace(/Mod\+/g,av?`⌘`:`Ctrl+`).replace(/Alt\+/g,av?`⌥`:`Alt+`).replace(/Shift\+/g,av?`⇧`:`Shift+`).replace(/Meta\+/g,`⌘`).replace(/Ctrl\+/g,av?`⌃`:`Ctrl+`):``}function sv(e){let t=[];for(let n of e)n.type===`file`&&t.push({name:n.name,path:n.path}),n.children&&t.push(...sv(n.children));return t}function cv(e){return e?e.startsWith(`/`)||e.startsWith(`~/`)||e.startsWith(`~\\`)||/^[A-Za-z]:[/\\]/.test(e):!1}function lv(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 uv=new Map;function dv({open:e,onClose:t,initialQuery:n=``}){let[r,i]=(0,V.useState)(``),[a,o]=(0,V.useState)(0),[s,c]=(0,V.useState)([]),[l,u]=(0,V.useState)(!1),[d,f]=(0,V.useState)([]),p=(0,V.useRef)(null),m=(0,V.useRef)(null),h=ap(e=>e.openTab),g=ip(e=>e.activeProject),_=vm(e=>e.tree),v=H(e=>e.setSidebarActiveTab),y=H(e=>e.sidebarCollapsed),b=H(e=>e.toggleSidebar),x=Vp(e=>e.getBinding),S=_m(e=>e.contributions),C=(0,V.useCallback)(async e=>{if(uv.has(e)){c(uv.get(e));return}u(!0);try{let t=await z.get(`/api/fs/list?dir=${encodeURIComponent(e)}`);uv.set(e,t),c(t)}catch{c([])}finally{u(!1)}},[]);(0,V.useEffect)(()=>{if(!cv(r)){c([]);return}C(lv(r))},[r,C]),(0,V.useEffect)(()=>{if(cv(r)||r.trim().length<2){f([]);return}let e=setTimeout(async()=>{try{f(await z.get(`/api/db/search?q=${encodeURIComponent(r.trim())}`)??[])}catch{f([])}},300);return()=>clearTimeout(e)},[r]);let w=(0,V.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0,r=(r,i)=>()=>{h({type:r,title:i,projectId:e,metadata:n,closable:!0}),t()},i=[{id:`chat`,label:`New AI Chat`,icon:yt,action:r(`chat`,`AI Chat`),keywords:`ai assistant claude`,group:`action`,shortcut:ov(x(`open-chat`))},{id:`terminal`,label:`New Terminal`,icon:Xt,action:r(`terminal`,`Terminal`),keywords:`bash shell console`,group:`action`,shortcut:ov(x(`open-terminal`))},{id:`git-graph`,label:`Git Graph`,icon:nt,action:r(`git-graph`,`Git Graph`),keywords:`branch history log`,group:`action`,shortcut:ov(x(`open-git-graph`))},{id:`ports`,label:`Port Forwarding`,icon:it,action:r(`ports`,`Ports`),keywords:`web preview localhost port forward tunnel url`,group:`action`},{id:`postgres`,label:`PostgreSQL`,icon:ze,action:r(`postgres`,`PostgreSQL`),keywords:`database pg sql query`,group:`action`},{id:`voice-input`,label:`Voice Input`,icon:bt,action:()=>{window.dispatchEvent(new CustomEvent(`toggle-voice-input`)),t()},keywords:`speech microphone dictate voice`,group:`action`,shortcut:ov(x(`voice-input`))},{id:`git-status`,label:`Git Status`,icon:rt,action:()=>{v(`git`),t()},keywords:`changes diff staged`,group:`action`,shortcut:ov(x(`open-git-status`))},{id:`settings`,label:`Settings`,icon:Kt,action:()=>{y&&b(),v(`settings`),t()},keywords:`config preferences theme`,group:`action`,shortcut:ov(x(`open-settings`))}],a=(S?.commands??[]).map(e=>({id:`ext:${e.command}`,label:e.title,hint:e.category,icon:Lt,group:`action`,keywords:`extension ${e.command} ${e.category??``}`,action:()=>{console.log(`[CmdPalette] ext command:`,e.command),t()}}));return[...i,...a]},[g,h,t,v,y,b,x,S]),T=(0,V.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0;return sv(_).map(r=>({id:`file:${r.path}`,label:r.name,hint:r.path,icon:Ke,group:`file`,keywords:r.path,action:()=>{h({type:`editor`,title:r.name,projectId:e,metadata:{...n,filePath:r.path},closable:!0}),t()}}))},[_,g,h,t]),E=(0,V.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0;return s.map(r=>{let i=ae(r);return{id:`fs:${r}`,label:i,hint:r,icon:Qe,group:`fs`,keywords:r,action:()=>{h({type:`editor`,title:i,projectId:e,metadata:{...n,filePath:r},closable:!0}),t()}}})},[s,g,h,t]),D=(0,V.useMemo)(()=>d.map(e=>({id:`db:${e.connectionId}:${e.schemaName}.${e.tableName}`,label:e.tableName,hint:`${e.connectionName} (${e.connectionType===`postgres`?`PG`:`SQLite`})`,icon:ze,group:`db`,connectionColor:e.connectionColor,action:()=>{h({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()}})),[d,h,t]),O=(0,V.useMemo)(()=>[...w,...T],[w,T]),k=(0,V.useMemo)(()=>{if(cv(r)){let e=r.lastIndexOf(`/`),t=e>=0?r.slice(e+1).toLowerCase():``;return t?E.filter(e=>{let n=e.label.toLowerCase(),r=(e.keywords??``).toLowerCase();return n.includes(t)||r.includes(t)}).slice(0,50):E.slice(0,50)}if(!r.trim())return w;let e=r.toLowerCase(),t=t=>{let n=0;for(let r=0;r<e.length;r++){if(n=t.indexOf(e[r],n),n===-1)return!1;n++}return!0},n=O.filter(e=>t(e.label.toLowerCase())||e.keywords&&t(e.keywords.toLowerCase()));return r.trim().length>=2?[...D,...n]:n},[O,w,E,D,r]);(0,V.useEffect)(()=>{e&&(i(n||``),o(0),c([]),f([]),requestAnimationFrame(()=>p.current?.focus()))},[e]),(0,V.useEffect)(()=>{o(e=>Math.min(e,Math.max(k.length-1,0)))},[k.length]),(0,V.useEffect)(()=>{let e=m.current;e&&e.children[a]?.scrollIntoView({block:`nearest`})},[a]);let A=(0,V.useCallback)(()=>{r.trim()&&(h({type:`chat`,title:`AI Chat`,projectId:g?.name??null,metadata:{projectName:g?.name,pendingMessage:r.trim()},closable:!0}),t())},[r,g,h,t]);function j(e){let n=k.length;switch(e.key){case`ArrowDown`:e.preventDefault(),n>0&&o(e=>(e+1)%n);break;case`ArrowUp`:e.preventDefault(),n>0&&o(e=>(e-1+n)%n);break;case`Enter`:e.preventDefault(),n>0?k[a]?.action():r.trim()&&A();break;case`Escape`:e.preventDefault(),t();break}}if(!e)return null;let ee=cv(r);return(0,U.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:t,children:[(0,U.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,U.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:j,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-3 py-2.5`,children:[(0,U.jsx)(Ht,{className:`size-4 text-text-subtle shrink-0`}),(0,U.jsx)(`input`,{ref:p,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`}),l&&(0,U.jsx)(B,{className:`size-3.5 animate-spin text-text-subtle shrink-0`}),(0,U.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`})]}),ee&&!l&&s.length===0&&r.length<4&&(0,U.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/)`}),(0,U.jsx)(`div`,{ref:m,className:`max-h-72 overflow-y-auto py-1`,children:k.length===0?l?(0,U.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`Searching...`}):r.trim()?(0,U.jsxs)(`button`,{onClick:A,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,U.jsx)(yt,{className:`size-4 shrink-0 text-accent`}),(0,U.jsxs)(`span`,{children:[`Ask AI: `,(0,U.jsx)(`span`,{className:`text-text-primary font-medium`,children:r.trim().slice(0,60)})]})]}):(0,U.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`No results`}):k.map((e,t)=>{let n=e.icon;return(0,U.jsxs)(`button`,{onClick:e.action,className:`flex items-center gap-3 w-full px-3 py-2 text-sm text-left transition-colors ${t===a?`bg-accent/15 text-text-primary`:`text-text-secondary hover:bg-surface-elevated`}`,children:[(0,U.jsx)(n,{className:`size-4 shrink-0`}),(0,U.jsx)(`span`,{className:`truncate`,children:e.label}),e.hint&&(0,U.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 text-xs text-text-subtle truncate max-w-[200px]`,children:[e.connectionColor&&(0,U.jsx)(`span`,{className:`shrink-0 size-2 rounded-full`,style:{backgroundColor:e.connectionColor}}),e.hint]}),e.shortcut&&(0,U.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,U.jsxs)(`div`,{className:`flex items-center justify-center gap-1.5 border-t border-border px-3 py-1.5`,children:[(0,U.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`Press`}),(0,U.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,U.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,U.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`to open this palette`})]})]})]})}function fv(){let[e,t]=(0,V.useState)(null),[n,r]=(0,V.useState)(!1);(0,V.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,V.useCallback)(()=>t(null),[]);return e?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/50`,onClick:i}),(0,U.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,U.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-border`,children:[(0,U.jsx)(`span`,{className:`text-sm font-medium`,children:`Bug Report`}),(0,U.jsx)(`button`,{onClick:i,className:`p-1 rounded hover:bg-surface-elevated`,children:(0,U.jsx)(o,{className:`size-4`})})]}),(0,U.jsx)(`pre`,{className:`flex-1 overflow-auto px-4 py-2 text-xs font-mono whitespace-pre-wrap break-all`,children:e}),(0,U.jsxs)(`div`,{className:`flex gap-2 p-3 border-t border-border`,children:[(0,U.jsxs)(`button`,{onClick:async()=>{await x_(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,U.jsx)(De,{className:`size-3`}):(0,U.jsx)(Re,{className:`size-3`}),n?`Copied`:`Copy`]}),(0,U.jsxs)(`button`,{onClick:()=>{b_(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,U.jsx)(He,{className:`size-3`}),`Open GitHub Issue`]})]})]})]}):null}var pv=6e4,mv=`ppm-upgrade-dismissed-`;function hv({onVisibilityChange:e}){let[t,n]=(0,V.useState)(null),[r,i]=(0,V.useState)(!1),[a,s]=(0,V.useState)(!1);(0,V.useEffect)(()=>{let e;async function t(){try{let e=await z.get(`/api/upgrade`);if(e.availableVersion){n(e.availableVersion);let t=mv+e.availableVersion;sessionStorage.getItem(t)?s(!0):s(!1)}else n(null)}catch{}}return t(),e=setInterval(t,pv),()=>clearInterval(e)},[]);let c=(0,V.useCallback)(async()=>{i(!0);try{await z.post(`/api/upgrade/apply`)}catch(e){wn.error(`Upgrade failed: ${e.message}`),i(!1)}},[]),l=(0,V.useCallback)(()=>{t&&sessionStorage.setItem(mv+t,`1`),s(!0)},[t]),u=!!t&&!a;return(0,V.useEffect)(()=>{e?.(u)},[u,e]),u?(0,U.jsx)(`div`,{className:`w-full bg-blue-600 dark:bg-blue-700 text-white px-3 py-1 flex items-center justify-between gap-2 z-50 text-sm shrink-0`,children:r?(0,U.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[(0,U.jsx)(B,{className:`size-4 animate-spin shrink-0`}),(0,U.jsxs)(`span`,{className:`truncate`,children:[`Upgrading to v`,t,`... PPM will restart shortly`]})]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[(0,U.jsx)(Me,{className:`size-4 shrink-0`}),(0,U.jsxs)(`span`,{className:`truncate`,children:[`PPM v`,t,` available`]})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,U.jsx)(`button`,{onClick:c,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,U.jsx)(`button`,{onClick:l,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,U.jsx)(o,{className:`size-4`})})]})]})}):null}var gv=c(e=>({src:null,alt:``,open:(t,n=``)=>e({src:t,alt:n}),close:()=>e({src:null,alt:``})}));function _v(){let{src:e,alt:t,close:n}=gv(),r=(0,V.useCallback)(e=>{e.key===`Escape`&&n()},[n]);return(0,V.useEffect)(()=>{if(e)return document.addEventListener(`keydown`,r),()=>document.removeEventListener(`keydown`,r)},[e,r]),e?(0,U.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,U.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,U.jsx)(o,{className:`size-5`})}),(0,U.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 vv=c(e=>({svg:null,open:t=>e({svg:t}),close:()=>e({svg:null})})),yv=.25,bv=4,xv=.25;function Sv(){let{svg:e,close:t}=vv(),n=(0,V.useRef)(null),[r,i]=(0,V.useState)(1),[a,s]=(0,V.useState)({x:0,y:0}),c=(0,V.useRef)(!1),l=(0,V.useRef)({x:0,y:0});(0,V.useEffect)(()=>{e&&(i(1),s({x:0,y:0}))},[e]);let u=(0,V.useCallback)(e=>{e.key===`Escape`&&t(),(e.key===`=`||e.key===`+`)&&i(e=>Math.min(bv,e+xv)),e.key===`-`&&i(e=>Math.max(yv,e-xv)),e.key===`0`&&(i(1),s({x:0,y:0}))},[t]);(0,V.useEffect)(()=>{if(e)return document.addEventListener(`keydown`,u),()=>document.removeEventListener(`keydown`,u)},[e,u]);let d=(0,V.useCallback)(e=>{e.preventDefault();let t=e.deltaY>0?-xv:xv;i(e=>Math.min(bv,Math.max(yv,e+t)))},[]),f=(0,V.useCallback)(e=>{e.button===0&&(c.current=!0,l.current={x:e.clientX,y:e.clientY},e.target.setPointerCapture(e.pointerId))},[]),p=(0,V.useCallback)(e=>{if(!c.current)return;let t=e.clientX-l.current.x,n=e.clientY-l.current.y;l.current={x:e.clientX,y:e.clientY},s(e=>({x:e.x+t,y:e.y+n}))},[]),m=(0,V.useCallback)(()=>{c.current=!1},[]);return e?(0,U.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,U.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 bg-black/40`,onClick:e=>e.stopPropagation(),children:[(0,U.jsxs)(`span`,{className:`text-sm text-white/70`,children:[Math.round(r*100),`% — Scroll to zoom, drag to pan, 0 to reset`]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(`button`,{onClick:()=>i(e=>Math.max(yv,e-xv)),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,U.jsx)(on,{className:`size-4`})}),(0,U.jsx)(`button`,{onClick:()=>i(e=>Math.min(bv,e+xv)),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,U.jsx)(an,{className:`size-4`})}),(0,U.jsx)(`button`,{onClick:()=>{i(1),s({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,U.jsx)(Vt,{className:`size-4`})}),(0,U.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,U.jsx)(o,{className:`size-5`})})]})]}),(0,U.jsx)(`div`,{ref:n,className:`flex-1 overflow-hidden cursor-grab active:cursor-grabbing`,onClick:e=>e.stopPropagation(),onWheel:d,onPointerDown:f,onPointerMove:p,onPointerUp:m,children:(0,U.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,U.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 Cv=`https://ppm.hienle.tech`;function wv(){return window.location.hostname.endsWith(`.trycloudflare.com`)}function Tv(){let e=tv(e=>e.showOverlay),[t,n]=(0,V.useState)(!1);if(!e)return null;let r=wv();async function i(){n(!0);try{if((await fetch(`/api/health`,{cache:`no-store`})).ok){if(tv.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,U.jsx)(`div`,{className:`fixed inset-0 z-[200] bg-background/95 backdrop-blur-sm flex items-center justify-center p-4`,children:(0,U.jsxs)(`div`,{className:`max-w-sm w-full text-center space-y-6`,children:[(0,U.jsx)(`div`,{className:`flex justify-center`,children:(0,U.jsx)(`div`,{className:`rounded-full bg-destructive/10 p-4`,children:(0,U.jsx)(r?rn:Wt,{className:`h-10 w-10 text-destructive`})})}),(0,U.jsxs)(`div`,{className:`space-y-2`,children:[(0,U.jsx)(`h2`,{className:`text-xl font-semibold text-foreground`,children:r?`Connection Lost`:`Server Unreachable`}),(0,U.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,U.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[r&&(0,U.jsx)(`a`,{href:Cv,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,U.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,U.jsx)(Rt,{className:`h-4 w-4 ${t?`animate-spin`:``}`}),t?`Retrying…`:`Retry Connection`]})]}),!r&&(0,U.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`If the server was stopped, run `,(0,U.jsx)(`code`,{className:`bg-muted px-1 py-0.5 rounded text-[11px]`,children:`ppm start`}),` to restart it.`]})]})})}function Ev(){let e=_m(e=>e.statusBarItems),t=e.filter(e=>e.alignment===`left`).sort((e,t)=>t.priority-e.priority),n=e.filter(e=>e.alignment===`right`).sort((e,t)=>t.priority-e.priority);return(0,U.jsxs)(`div`,{className:`hidden md:flex items-center justify-between h-[22px] px-2 bg-surface border-t border-border text-[11px] text-text-subtle select-none shrink-0`,children:[(0,U.jsx)(`div`,{className:`flex items-center gap-2 min-w-0`,children:t.map(e=>(0,U.jsx)(Dv,{item:e},e.id))}),(0,U.jsx)(`div`,{className:`flex items-center gap-2 min-w-0`,children:n.map(e=>(0,U.jsx)(Dv,{item:e},e.id))})]})}function Dv({item:e}){let t=(0,U.jsx)(`button`,{className:`truncate px-1 rounded-sm transition-colors ${e.command?`hover:bg-accent/15 hover:text-text-primary cursor-pointer`:`cursor-default`}`,onClick:()=>{e.command&&window.dispatchEvent(new CustomEvent(`ext:command:execute`,{detail:{command:e.command}}))},children:e.text});return e.tooltip?(0,U.jsxs)(Ru,{children:[(0,U.jsx)(zu,{asChild:!0,children:t}),(0,U.jsx)(Bu,{side:`top`,className:`text-xs`,children:e.tooltip})]}):t}function Ov(){let e=_m(e=>e.quickPick),t=_m(e=>e.resolveQuickPick);return e?(0,U.jsx)(kv,{items:e.items,options:e.options,onSelect:e=>t(e),onCancel:()=>t(void 0)}):null}function kv({items:e,options:t,onSelect:n,onCancel:r}){let[i,a]=(0,V.useState)(``),[o,s]=(0,V.useState)(0),[c,l]=(0,V.useState)(()=>{let t=new Set;return e.forEach((e,n)=>{e.picked&&t.add(n)}),t}),u=(0,V.useRef)(null),d=(0,V.useRef)(null),f=t.canPickMany??!1;(0,V.useEffect)(()=>{requestAnimationFrame(()=>u.current?.focus())},[]);let p=(0,V.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,V.useEffect)(()=>{s(e=>Math.min(e,Math.max(p.length-1,0)))},[p.length]),(0,V.useEffect)(()=>{(d.current?.children[o])?.scrollIntoView({block:`nearest`})},[o]);let m=(0,V.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,U.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:r,children:[(0,U.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,U.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,U.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-3 py-2.5`,children:[(0,U.jsx)(Ht,{className:`size-4 text-text-subtle shrink-0`}),(0,U.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,U.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,U.jsx)(`div`,{ref:d,className:`max-h-72 overflow-y-auto py-1`,children:p.length===0?(0,U.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,U.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:I(`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,U.jsx)(`span`,{className:I(`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,U.jsx)(De,{className:`size-3`})}),(0,U.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,U.jsx)(`div`,{className:`truncate`,children:e.label}),e.description&&(0,U.jsx)(`span`,{className:`text-xs text-text-subtle ml-2`,children:e.description}),e.detail&&(0,U.jsx)(`div`,{className:`text-xs text-text-subtle truncate mt-0.5`,children:e.detail})]})]},t))}),f&&(0,U.jsxs)(`div`,{className:`flex items-center justify-between border-t border-border px-3 py-1.5`,children:[(0,U.jsxs)(`span`,{className:`text-[10px] text-text-subtle`,children:[c.size,` selected`]}),(0,U.jsx)(`button`,{onClick:m,className:`text-xs text-primary hover:text-primary/80 font-medium`,children:`Confirm`})]})]})]})}function Av(){let e=_m(e=>e.inputBox),t=_m(e=>e.resolveInputBox);return e?(0,U.jsx)(jv,{options:e.options,onConfirm:e=>t(e),onCancel:()=>t(void 0)}):null}function jv({options:e,onConfirm:t,onCancel:n}){let[r,i]=(0,V.useState)(e.value??``),a=(0,V.useRef)(null);(0,V.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,U.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:n,children:[(0,U.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,U.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,U.jsx)(`div`,{className:`px-3 pt-3 pb-1 text-sm text-text-primary`,children:e.prompt}),(0,U.jsx)(`div`,{className:`flex items-center gap-2 px-3 py-2.5`,children:(0,U.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,U.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t border-border px-3 py-2`,children:[(0,U.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,U.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 Mv=3e4,Nv=1e3,Pv=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=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.ws?.readyState===WebSocket.CONNECTING?(console.warn(`[ws] WS still CONNECTING — queuing message`),this.pendingMessages.push(e)):console.warn(`[ws] message dropped — readyState=${this.ws?.readyState??`no-ws`}`)}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(Nv*2**this.reconnectAttempts,Mv);this.reconnectAttempts++,this.reconnectTimer=setTimeout(()=>this.connect(),e)}};function Fv(e=!0){let t=(0,V.useRef)(null),n=(0,V.useCallback)(e=>{t.current?.send(JSON.stringify(e))},[]);return(0,V.useEffect)(()=>{if(!e)return;let r=se(),i=new Pv(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=_m.getState();switch(t.type){case`contributions:update`:r.setContributions(t.contributions);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`?wn.error:t.level===`warn`?wn.warning:wn.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`:r.addWebviewPanel({id:t.panelId,extensionId:t.extensionId,viewType:t.viewType,title:t.title,html:``}),ap.getState().openTab({type:`extension-webview`,title:t.title,projectId:null,closable:!0,metadata:{panelId:t.panelId,extensionId:t.extensionId}});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}});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;i.send(JSON.stringify({type:`command:execute`,command:t,args:n}))};return window.addEventListener(`ext:command:execute`,s),i.connect(),()=>{window.removeEventListener(`ext:webview:send`,a),window.removeEventListener(`ext:tree:expand`,o),window.removeEventListener(`ext:command:execute`,s),i.disconnect(),t.current=null}},[n,e]),{send:n}}function Iv(){let[e,t]=(0,V.useState)(`checking`),[n,r]=(0,V.useState)(!1),[i,a]=(0,V.useState)(!1),[o,s]=(0,V.useState)(),[c,u]=(0,V.useState)(!1);(0,V.useEffect)(()=>{let e=()=>{s(`settings`),a(!0)};return window.addEventListener(`open-mobile-settings`,e),()=>window.removeEventListener(`open-mobile-settings`,e)},[]);let[d,f]=(0,V.useState)(()=>new Set([`__global__`])),p=H(e=>e.theme),m=H(e=>e.deviceName),h=ip(e=>e.fetchProjects),g=H(e=>e.fetchServerInfo),_=ip(e=>e.activeProject),v=(0,V.useRef)(B_());(0,V.useEffect)(()=>{if(Wn(p),p===`system`){let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>Wn(`system`);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)}},[p]),(0,V.useEffect)(()=>{g()},[g]),(0,V.useEffect)(()=>{async function e(){let e=se();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()},[]),K_();let{paletteOpen:y,paletteInitialQuery:b,closePalette:x}=Up();$_(),iv(),Fv(e===`authenticated`),(0,V.useEffect)(()=>{if(e!==`authenticated`)return;let t=e=>{e.preventDefault()};return window.addEventListener(`beforeunload`,t),()=>window.removeEventListener(`beforeunload`,t)},[e]),(0,V.useEffect)(()=>{e===`authenticated`&&l(async()=>{let{useKeybindingsStore:e}=await import(`./keybindings-store-DoRbfX4Q.js`);return{useKeybindingsStore:e}},__vite__mapDeps([56,6,1,2])).then(({useKeybindingsStore:e})=>{e.getState().loadFromServer()})},[e]),(0,V.useEffect)(()=>{e===`authenticated`&&h().then(async()=>{let e=v.current,{projects:t,customOrder:n}=ip.getState();if(t.length===0)return;let r=e.projectName?t.find(t=>t.name===e.projectName):void 0;if(r||=rp(t,n)[0],!r)return;let i=await Gf(r.name);if(i){let e=localStorage.getItem(`ppm-panels-${r.name}`),t=Jf(e?JSON.parse(e):null,i);t&&t===i&&localStorage.setItem(`ppm-panels-${r.name}`,JSON.stringify(i))}ip.getState().setActiveProject(r),queueMicrotask(()=>{if(e.tabType&&G_(e.tabType,e.tabIdentifier,r.name),e.openChat){G_(`chat`,e.openChat,r.name);let t=new URL(window.location.href);t.searchParams.delete(`openChat`),window.history.replaceState(null,``,t.pathname)}})})},[e,h]),(0,V.useEffect)(()=>{let e=_?.name??`__global__`;ap.getState().switchProject(e)},[_?.name]),(0,V.useEffect)(()=>{let e=_?.name??`__global__`;f(t=>t.has(e)?t:new Set([...t,e]))},[_?.name]),(0,V.useEffect)(()=>{e===`authenticated`&&!_&&ap.getState().switchProject(`__global__`)},[e,_]);let S=(0,V.useCallback)(()=>{t(`authenticated`)},[]);if(e===`checking`)return(0,U.jsx)(`div`,{className:`min-h-dvh flex items-center justify-center bg-background`,children:(0,U.jsx)(`div`,{className:`animate-pulse text-text-secondary text-sm`,children:`Loading...`})});if(e===`unauthenticated`)return(0,U.jsx)(R_,{onSuccess:S});let C=_?.name??`__global__`;return(0,U.jsx)(Lu,{children:(0,U.jsxs)(`div`,{className:`h-dvh flex flex-col bg-background text-foreground overflow-hidden relative`,children:[(0,U.jsx)(hv,{onVisibilityChange:r}),m&&(0,U.jsx)(`div`,{className:I(`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:m}),(0,U.jsxs)(`div`,{className:`flex flex-1 overflow-hidden`,children:[(0,U.jsx)(k_,{}),(0,U.jsx)(Hg,{}),(0,U.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden`,children:[[...d].map(e=>(0,U.jsx)(`div`,{className:I(`flex-1 overflow-hidden pb-12 md:pb-0`,C!==e&&`hidden`),children:(0,U.jsx)(pm,{projectName:e})},e)),(0,U.jsx)(Ev,{})]})]}),(0,U.jsx)(N_,{onMenuPress:()=>a(!0),onProjectsPress:()=>u(!0)}),(0,U.jsx)(F_,{isOpen:i,onClose:()=>{a(!1),s(void 0)},initialTab:o}),(0,U.jsx)(L_,{isOpen:c,onClose:()=>u(!1)}),(0,U.jsx)(dv,{open:y,onClose:x,initialQuery:b}),(0,U.jsx)(fv,{}),(0,U.jsx)(_v,{}),(0,U.jsx)(Sv,{}),(0,U.jsx)(Ov,{}),(0,U.jsx)(Av,{}),(0,U.jsx)(Tv,{}),(0,U.jsx)(Kn,{position:`bottom-left`,closeButton:!0,toastOptions:{className:`bg-surface border-border text-foreground`}})]})})}(0,sn.createRoot)(document.getElementById(`root`)).render((0,U.jsx)(V.StrictMode,{children:(0,U.jsx)(Iv,{})}));export{Xt as $,Pm as A,Ne as At,qp as B,qm as C,We as Ct,Nm as D,Re as Dt,km as E,ze as Et,wm as F,Te as Ft,Vp as G,Fp as H,Tm as I,Ce as It,Q as J,ap as K,Sm as L,be as Lt,$ as M,ke as Mt,xm as N,Oe as Nt,Lm as O,Ie as Ot,Cm as P,De as Pt,Zt as Q,vm as R,ye as Rt,Qm as S,Ge as St,Rm as T,Be as Tt,Bp as U,Hp as V,zp as W,wn as X,H as Y,tn as Z,$m as _,tt as _t,Dg as a,Mt as at,rh as b,Je as bt,Th as c,kt as ct,hh as d,yt as dt,Kt as et,vh as f,gt as ft,Zm as g,nt as gt,gh as h,it as ht,S_ as i,Pt as it,Im as j,Ae as jt,Fm as k,Pe as kt,wh as l,Ot as lt,_h as m,at as mt,vv as n,Vt as nt,cg as o,jt as ot,yh as p,B as pt,ip as q,gv as r,Rt as rt,kh as s,At as st,Pv as t,Ht as tt,Sh as u,bt as ut,eh as v,Xe as vt,Bm as w,He as wt,nh as x,Ke as xt,th as y,Ye as yt,_m as z};
30
+ </svg>`,Y_=`data:image/svg+xml,${encodeURIComponent(q_)}`,X_=`data:image/svg+xml,${encodeURIComponent(J_)}`;function Z_(e){let t=document.getElementById(`ppm-favicon`);t&&(t.href=e?X_:Y_)}function Q_(e,t,n){let r=[t,n||null,`PPM`].filter(Boolean).join(` - `);return e>0?`(${e}) ${r}`:r}function $_(){let e=ip(e=>e.activeProject),t=H(e=>e.deviceName);(0,V.useEffect)(()=>{let n=()=>{let n=Jp(qp.getState());document.title=Q_(n,e?.name,t??void 0),Z_(n>0)};return n(),qp.subscribe(n)},[e?.name,t])}var ev=15e3,tv=c((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>=ev})},markUp:()=>{e({isDown:!1,downSince:null,showOverlay:!1})}})),nv=1e4,rv=2e3;function iv(){(0,V.useEffect)(()=>{let e=!1,t,{markDown:n,markUp:r}=tv.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?rv:nv)}return t=setTimeout(i,nv),()=>clearTimeout(t)},[])}var av=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent);function ov(e){return e?e.replace(/Mod\+/g,av?`⌘`:`Ctrl+`).replace(/Alt\+/g,av?`⌥`:`Alt+`).replace(/Shift\+/g,av?`⇧`:`Shift+`).replace(/Meta\+/g,`⌘`).replace(/Ctrl\+/g,av?`⌃`:`Ctrl+`):``}function sv(e){let t=[];for(let n of e)n.type===`file`&&t.push({name:n.name,path:n.path}),n.children&&t.push(...sv(n.children));return t}function cv(e){return e?e.startsWith(`/`)||e.startsWith(`~/`)||e.startsWith(`~\\`)||/^[A-Za-z]:[/\\]/.test(e):!1}function lv(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 uv=new Map;function dv({open:e,onClose:t,initialQuery:n=``}){let[r,i]=(0,V.useState)(``),[a,o]=(0,V.useState)(0),[s,c]=(0,V.useState)([]),[l,u]=(0,V.useState)(!1),[d,f]=(0,V.useState)([]),p=(0,V.useRef)(null),m=(0,V.useRef)(null),h=ap(e=>e.openTab),g=ip(e=>e.activeProject),_=vm(e=>e.tree),v=H(e=>e.setSidebarActiveTab),y=H(e=>e.sidebarCollapsed),b=H(e=>e.toggleSidebar),x=Vp(e=>e.getBinding),S=_m(e=>e.contributions),C=(0,V.useCallback)(async e=>{if(uv.has(e)){c(uv.get(e));return}u(!0);try{let t=await z.get(`/api/fs/list?dir=${encodeURIComponent(e)}`);uv.set(e,t),c(t)}catch{c([])}finally{u(!1)}},[]);(0,V.useEffect)(()=>{if(!cv(r)){c([]);return}C(lv(r))},[r,C]),(0,V.useEffect)(()=>{if(cv(r)||r.trim().length<2){f([]);return}let e=setTimeout(async()=>{try{f(await z.get(`/api/db/search?q=${encodeURIComponent(r.trim())}`)??[])}catch{f([])}},300);return()=>clearTimeout(e)},[r]);let w=(0,V.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0,r=(r,i)=>()=>{h({type:r,title:i,projectId:e,metadata:n,closable:!0}),t()},i=[{id:`chat`,label:`New AI Chat`,icon:yt,action:r(`chat`,`AI Chat`),keywords:`ai assistant claude`,group:`action`,shortcut:ov(x(`open-chat`))},{id:`terminal`,label:`New Terminal`,icon:Xt,action:r(`terminal`,`Terminal`),keywords:`bash shell console`,group:`action`,shortcut:ov(x(`open-terminal`))},{id:`git-graph`,label:`Git Graph`,icon:nt,action:r(`git-graph`,`Git Graph`),keywords:`branch history log`,group:`action`,shortcut:ov(x(`open-git-graph`))},{id:`ports`,label:`Port Forwarding`,icon:it,action:r(`ports`,`Ports`),keywords:`web preview localhost port forward tunnel url`,group:`action`},{id:`postgres`,label:`PostgreSQL`,icon:ze,action:r(`postgres`,`PostgreSQL`),keywords:`database pg sql query`,group:`action`},{id:`voice-input`,label:`Voice Input`,icon:bt,action:()=>{window.dispatchEvent(new CustomEvent(`toggle-voice-input`)),t()},keywords:`speech microphone dictate voice`,group:`action`,shortcut:ov(x(`voice-input`))},{id:`git-status`,label:`Git Status`,icon:rt,action:()=>{v(`git`),t()},keywords:`changes diff staged`,group:`action`,shortcut:ov(x(`open-git-status`))},{id:`settings`,label:`Settings`,icon:Kt,action:()=>{y&&b(),v(`settings`),t()},keywords:`config preferences theme`,group:`action`,shortcut:ov(x(`open-settings`))}],a=(S?.commands??[]).map(e=>({id:`ext:${e.command}`,label:e.title,hint:e.category,icon:Lt,group:`action`,keywords:`extension ${e.command} ${e.category??``}`,action:()=>{console.log(`[CmdPalette] ext command:`,e.command),t()}}));return[...i,...a]},[g,h,t,v,y,b,x,S]),T=(0,V.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0;return sv(_).map(r=>({id:`file:${r.path}`,label:r.name,hint:r.path,icon:Ke,group:`file`,keywords:r.path,action:()=>{h({type:`editor`,title:r.name,projectId:e,metadata:{...n,filePath:r.path},closable:!0}),t()}}))},[_,g,h,t]),E=(0,V.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0;return s.map(r=>{let i=ae(r);return{id:`fs:${r}`,label:i,hint:r,icon:Qe,group:`fs`,keywords:r,action:()=>{h({type:`editor`,title:i,projectId:e,metadata:{...n,filePath:r},closable:!0}),t()}}})},[s,g,h,t]),D=(0,V.useMemo)(()=>d.map(e=>({id:`db:${e.connectionId}:${e.schemaName}.${e.tableName}`,label:e.tableName,hint:`${e.connectionName} (${e.connectionType===`postgres`?`PG`:`SQLite`})`,icon:ze,group:`db`,connectionColor:e.connectionColor,action:()=>{h({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()}})),[d,h,t]),O=(0,V.useMemo)(()=>[...w,...T],[w,T]),k=(0,V.useMemo)(()=>{if(cv(r)){let e=r.lastIndexOf(`/`),t=e>=0?r.slice(e+1).toLowerCase():``;return t?E.filter(e=>{let n=e.label.toLowerCase(),r=(e.keywords??``).toLowerCase();return n.includes(t)||r.includes(t)}).slice(0,50):E.slice(0,50)}if(!r.trim())return w;let e=r.toLowerCase(),t=t=>{let n=0;for(let r=0;r<e.length;r++){if(n=t.indexOf(e[r],n),n===-1)return!1;n++}return!0},n=O.filter(e=>t(e.label.toLowerCase())||e.keywords&&t(e.keywords.toLowerCase()));return r.trim().length>=2?[...D,...n]:n},[O,w,E,D,r]);(0,V.useEffect)(()=>{e&&(i(n||``),o(0),c([]),f([]),requestAnimationFrame(()=>p.current?.focus()))},[e]),(0,V.useEffect)(()=>{o(e=>Math.min(e,Math.max(k.length-1,0)))},[k.length]),(0,V.useEffect)(()=>{let e=m.current;e&&e.children[a]?.scrollIntoView({block:`nearest`})},[a]);let A=(0,V.useCallback)(()=>{r.trim()&&(h({type:`chat`,title:`AI Chat`,projectId:g?.name??null,metadata:{projectName:g?.name,pendingMessage:r.trim()},closable:!0}),t())},[r,g,h,t]);function j(e){let n=k.length;switch(e.key){case`ArrowDown`:e.preventDefault(),n>0&&o(e=>(e+1)%n);break;case`ArrowUp`:e.preventDefault(),n>0&&o(e=>(e-1+n)%n);break;case`Enter`:e.preventDefault(),n>0?k[a]?.action():r.trim()&&A();break;case`Escape`:e.preventDefault(),t();break}}if(!e)return null;let ee=cv(r);return(0,U.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:t,children:[(0,U.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,U.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:j,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-3 py-2.5`,children:[(0,U.jsx)(Ht,{className:`size-4 text-text-subtle shrink-0`}),(0,U.jsx)(`input`,{ref:p,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`}),l&&(0,U.jsx)(B,{className:`size-3.5 animate-spin text-text-subtle shrink-0`}),(0,U.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`})]}),ee&&!l&&s.length===0&&r.length<4&&(0,U.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/)`}),(0,U.jsx)(`div`,{ref:m,className:`max-h-72 overflow-y-auto py-1`,children:k.length===0?l?(0,U.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`Searching...`}):r.trim()?(0,U.jsxs)(`button`,{onClick:A,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,U.jsx)(yt,{className:`size-4 shrink-0 text-accent`}),(0,U.jsxs)(`span`,{children:[`Ask AI: `,(0,U.jsx)(`span`,{className:`text-text-primary font-medium`,children:r.trim().slice(0,60)})]})]}):(0,U.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`No results`}):k.map((e,t)=>{let n=e.icon;return(0,U.jsxs)(`button`,{onClick:e.action,className:`flex items-center gap-3 w-full px-3 py-2 text-sm text-left transition-colors ${t===a?`bg-accent/15 text-text-primary`:`text-text-secondary hover:bg-surface-elevated`}`,children:[(0,U.jsx)(n,{className:`size-4 shrink-0`}),(0,U.jsx)(`span`,{className:`truncate`,children:e.label}),e.hint&&(0,U.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 text-xs text-text-subtle truncate max-w-[200px]`,children:[e.connectionColor&&(0,U.jsx)(`span`,{className:`shrink-0 size-2 rounded-full`,style:{backgroundColor:e.connectionColor}}),e.hint]}),e.shortcut&&(0,U.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,U.jsxs)(`div`,{className:`flex items-center justify-center gap-1.5 border-t border-border px-3 py-1.5`,children:[(0,U.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`Press`}),(0,U.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,U.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,U.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`to open this palette`})]})]})]})}function fv(){let[e,t]=(0,V.useState)(null),[n,r]=(0,V.useState)(!1);(0,V.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,V.useCallback)(()=>t(null),[]);return e?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/50`,onClick:i}),(0,U.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,U.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-border`,children:[(0,U.jsx)(`span`,{className:`text-sm font-medium`,children:`Bug Report`}),(0,U.jsx)(`button`,{onClick:i,className:`p-1 rounded hover:bg-surface-elevated`,children:(0,U.jsx)(o,{className:`size-4`})})]}),(0,U.jsx)(`pre`,{className:`flex-1 overflow-auto px-4 py-2 text-xs font-mono whitespace-pre-wrap break-all`,children:e}),(0,U.jsxs)(`div`,{className:`flex gap-2 p-3 border-t border-border`,children:[(0,U.jsxs)(`button`,{onClick:async()=>{await x_(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,U.jsx)(De,{className:`size-3`}):(0,U.jsx)(Re,{className:`size-3`}),n?`Copied`:`Copy`]}),(0,U.jsxs)(`button`,{onClick:()=>{b_(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,U.jsx)(He,{className:`size-3`}),`Open GitHub Issue`]})]})]})]}):null}var pv=6e4,mv=`ppm-upgrade-dismissed-`;function hv({onVisibilityChange:e}){let[t,n]=(0,V.useState)(null),[r,i]=(0,V.useState)(!1),[a,s]=(0,V.useState)(!1);(0,V.useEffect)(()=>{let e;async function t(){try{let e=await z.get(`/api/upgrade`);if(e.availableVersion){n(e.availableVersion);let t=mv+e.availableVersion;sessionStorage.getItem(t)?s(!0):s(!1)}else n(null)}catch{}}return t(),e=setInterval(t,pv),()=>clearInterval(e)},[]);let c=(0,V.useCallback)(async()=>{i(!0);try{await z.post(`/api/upgrade/apply`)}catch(e){wn.error(`Upgrade failed: ${e.message}`),i(!1)}},[]),l=(0,V.useCallback)(()=>{t&&sessionStorage.setItem(mv+t,`1`),s(!0)},[t]),u=!!t&&!a;return(0,V.useEffect)(()=>{e?.(u)},[u,e]),u?(0,U.jsx)(`div`,{className:`w-full bg-blue-600 dark:bg-blue-700 text-white px-3 py-1 flex items-center justify-between gap-2 z-50 text-sm shrink-0`,children:r?(0,U.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[(0,U.jsx)(B,{className:`size-4 animate-spin shrink-0`}),(0,U.jsxs)(`span`,{className:`truncate`,children:[`Upgrading to v`,t,`... PPM will restart shortly`]})]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[(0,U.jsx)(Me,{className:`size-4 shrink-0`}),(0,U.jsxs)(`span`,{className:`truncate`,children:[`PPM v`,t,` available`]})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,U.jsx)(`button`,{onClick:c,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,U.jsx)(`button`,{onClick:l,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,U.jsx)(o,{className:`size-4`})})]})]})}):null}var gv=c(e=>({src:null,alt:``,open:(t,n=``)=>e({src:t,alt:n}),close:()=>e({src:null,alt:``})}));function _v(){let{src:e,alt:t,close:n}=gv(),r=(0,V.useCallback)(e=>{e.key===`Escape`&&n()},[n]);return(0,V.useEffect)(()=>{if(e)return document.addEventListener(`keydown`,r),()=>document.removeEventListener(`keydown`,r)},[e,r]),e?(0,U.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,U.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,U.jsx)(o,{className:`size-5`})}),(0,U.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 vv=c(e=>({svg:null,open:t=>e({svg:t}),close:()=>e({svg:null})})),yv=.25,bv=4,xv=.25;function Sv(){let{svg:e,close:t}=vv(),n=(0,V.useRef)(null),[r,i]=(0,V.useState)(1),[a,s]=(0,V.useState)({x:0,y:0}),c=(0,V.useRef)(!1),l=(0,V.useRef)({x:0,y:0});(0,V.useEffect)(()=>{e&&(i(1),s({x:0,y:0}))},[e]);let u=(0,V.useCallback)(e=>{e.key===`Escape`&&t(),(e.key===`=`||e.key===`+`)&&i(e=>Math.min(bv,e+xv)),e.key===`-`&&i(e=>Math.max(yv,e-xv)),e.key===`0`&&(i(1),s({x:0,y:0}))},[t]);(0,V.useEffect)(()=>{if(e)return document.addEventListener(`keydown`,u),()=>document.removeEventListener(`keydown`,u)},[e,u]);let d=(0,V.useCallback)(e=>{e.preventDefault();let t=e.deltaY>0?-xv:xv;i(e=>Math.min(bv,Math.max(yv,e+t)))},[]),f=(0,V.useCallback)(e=>{e.button===0&&(c.current=!0,l.current={x:e.clientX,y:e.clientY},e.target.setPointerCapture(e.pointerId))},[]),p=(0,V.useCallback)(e=>{if(!c.current)return;let t=e.clientX-l.current.x,n=e.clientY-l.current.y;l.current={x:e.clientX,y:e.clientY},s(e=>({x:e.x+t,y:e.y+n}))},[]),m=(0,V.useCallback)(()=>{c.current=!1},[]);return e?(0,U.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,U.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 bg-black/40`,onClick:e=>e.stopPropagation(),children:[(0,U.jsxs)(`span`,{className:`text-sm text-white/70`,children:[Math.round(r*100),`% — Scroll to zoom, drag to pan, 0 to reset`]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(`button`,{onClick:()=>i(e=>Math.max(yv,e-xv)),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,U.jsx)(on,{className:`size-4`})}),(0,U.jsx)(`button`,{onClick:()=>i(e=>Math.min(bv,e+xv)),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,U.jsx)(an,{className:`size-4`})}),(0,U.jsx)(`button`,{onClick:()=>{i(1),s({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,U.jsx)(Vt,{className:`size-4`})}),(0,U.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,U.jsx)(o,{className:`size-5`})})]})]}),(0,U.jsx)(`div`,{ref:n,className:`flex-1 overflow-hidden cursor-grab active:cursor-grabbing`,onClick:e=>e.stopPropagation(),onWheel:d,onPointerDown:f,onPointerMove:p,onPointerUp:m,children:(0,U.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,U.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 Cv=`https://ppm.hienle.tech`;function wv(){return window.location.hostname.endsWith(`.trycloudflare.com`)}function Tv(){let e=tv(e=>e.showOverlay),[t,n]=(0,V.useState)(!1);if(!e)return null;let r=wv();async function i(){n(!0);try{if((await fetch(`/api/health`,{cache:`no-store`})).ok){if(tv.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,U.jsx)(`div`,{className:`fixed inset-0 z-[200] bg-background/95 backdrop-blur-sm flex items-center justify-center p-4`,children:(0,U.jsxs)(`div`,{className:`max-w-sm w-full text-center space-y-6`,children:[(0,U.jsx)(`div`,{className:`flex justify-center`,children:(0,U.jsx)(`div`,{className:`rounded-full bg-destructive/10 p-4`,children:(0,U.jsx)(r?rn:Wt,{className:`h-10 w-10 text-destructive`})})}),(0,U.jsxs)(`div`,{className:`space-y-2`,children:[(0,U.jsx)(`h2`,{className:`text-xl font-semibold text-foreground`,children:r?`Connection Lost`:`Server Unreachable`}),(0,U.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,U.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[r&&(0,U.jsx)(`a`,{href:Cv,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,U.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,U.jsx)(Rt,{className:`h-4 w-4 ${t?`animate-spin`:``}`}),t?`Retrying…`:`Retry Connection`]})]}),!r&&(0,U.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`If the server was stopped, run `,(0,U.jsx)(`code`,{className:`bg-muted px-1 py-0.5 rounded text-[11px]`,children:`ppm start`}),` to restart it.`]})]})})}function Ev(){let e=_m(e=>e.statusBarItems),t=e.filter(e=>e.alignment===`left`).sort((e,t)=>t.priority-e.priority),n=e.filter(e=>e.alignment===`right`).sort((e,t)=>t.priority-e.priority);return(0,U.jsxs)(`div`,{className:`hidden md:flex items-center justify-between h-[22px] px-2 bg-surface border-t border-border text-[11px] text-text-subtle select-none shrink-0`,children:[(0,U.jsx)(`div`,{className:`flex items-center gap-2 min-w-0`,children:t.map(e=>(0,U.jsx)(Dv,{item:e},e.id))}),(0,U.jsx)(`div`,{className:`flex items-center gap-2 min-w-0`,children:n.map(e=>(0,U.jsx)(Dv,{item:e},e.id))})]})}function Dv({item:e}){let t=(0,U.jsx)(`button`,{className:`truncate px-1 rounded-sm transition-colors ${e.command?`hover:bg-accent/15 hover:text-text-primary cursor-pointer`:`cursor-default`}`,onClick:()=>{e.command&&window.dispatchEvent(new CustomEvent(`ext:command:execute`,{detail:{command:e.command}}))},children:e.text});return e.tooltip?(0,U.jsxs)(Ru,{children:[(0,U.jsx)(zu,{asChild:!0,children:t}),(0,U.jsx)(Bu,{side:`top`,className:`text-xs`,children:e.tooltip})]}):t}function Ov(){let e=_m(e=>e.quickPick),t=_m(e=>e.resolveQuickPick);return e?(0,U.jsx)(kv,{items:e.items,options:e.options,onSelect:e=>t(e),onCancel:()=>t(void 0)}):null}function kv({items:e,options:t,onSelect:n,onCancel:r}){let[i,a]=(0,V.useState)(``),[o,s]=(0,V.useState)(0),[c,l]=(0,V.useState)(()=>{let t=new Set;return e.forEach((e,n)=>{e.picked&&t.add(n)}),t}),u=(0,V.useRef)(null),d=(0,V.useRef)(null),f=t.canPickMany??!1;(0,V.useEffect)(()=>{requestAnimationFrame(()=>u.current?.focus())},[]);let p=(0,V.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,V.useEffect)(()=>{s(e=>Math.min(e,Math.max(p.length-1,0)))},[p.length]),(0,V.useEffect)(()=>{(d.current?.children[o])?.scrollIntoView({block:`nearest`})},[o]);let m=(0,V.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,U.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:r,children:[(0,U.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,U.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,U.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-3 py-2.5`,children:[(0,U.jsx)(Ht,{className:`size-4 text-text-subtle shrink-0`}),(0,U.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,U.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,U.jsx)(`div`,{ref:d,className:`max-h-72 overflow-y-auto py-1`,children:p.length===0?(0,U.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,U.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:I(`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,U.jsx)(`span`,{className:I(`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,U.jsx)(De,{className:`size-3`})}),(0,U.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,U.jsx)(`div`,{className:`truncate`,children:e.label}),e.description&&(0,U.jsx)(`span`,{className:`text-xs text-text-subtle ml-2`,children:e.description}),e.detail&&(0,U.jsx)(`div`,{className:`text-xs text-text-subtle truncate mt-0.5`,children:e.detail})]})]},t))}),f&&(0,U.jsxs)(`div`,{className:`flex items-center justify-between border-t border-border px-3 py-1.5`,children:[(0,U.jsxs)(`span`,{className:`text-[10px] text-text-subtle`,children:[c.size,` selected`]}),(0,U.jsx)(`button`,{onClick:m,className:`text-xs text-primary hover:text-primary/80 font-medium`,children:`Confirm`})]})]})]})}function Av(){let e=_m(e=>e.inputBox),t=_m(e=>e.resolveInputBox);return e?(0,U.jsx)(jv,{options:e.options,onConfirm:e=>t(e),onCancel:()=>t(void 0)}):null}function jv({options:e,onConfirm:t,onCancel:n}){let[r,i]=(0,V.useState)(e.value??``),a=(0,V.useRef)(null);(0,V.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,U.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:n,children:[(0,U.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,U.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,U.jsx)(`div`,{className:`px-3 pt-3 pb-1 text-sm text-text-primary`,children:e.prompt}),(0,U.jsx)(`div`,{className:`flex items-center gap-2 px-3 py-2.5`,children:(0,U.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,U.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t border-border px-3 py-2`,children:[(0,U.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,U.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 Mv=3e4,Nv=1e3,Pv=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=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.ws?.readyState===WebSocket.CONNECTING?(console.warn(`[ws] WS still CONNECTING — queuing message`),this.pendingMessages.push(e)):console.warn(`[ws] message dropped — readyState=${this.ws?.readyState??`no-ws`}`)}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(Nv*2**this.reconnectAttempts,Mv);this.reconnectAttempts++,this.reconnectTimer=setTimeout(()=>this.connect(),e)}};function Fv(e=!0){let t=(0,V.useRef)(null),n=(0,V.useCallback)(e=>{t.current?.send(JSON.stringify(e))},[]);return(0,V.useEffect)(()=>{if(!e)return;let r=se(),i=new Pv(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=_m.getState();switch(t.type){case`contributions:update`:r.setContributions(t.contributions);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`?wn.error:t.level===`warn`?wn.warning:wn.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`:r.addWebviewPanel({id:t.panelId,extensionId:t.extensionId,viewType:t.viewType,title:t.title,html:``}),ap.getState().openTab({type:`extension-webview`,title:t.title,projectId:null,closable:!0,metadata:{panelId:t.panelId,extensionId:t.extensionId}});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}});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;i.send(JSON.stringify({type:`command:execute`,command:t,args:n}))};return window.addEventListener(`ext:command:execute`,s),i.connect(),()=>{window.removeEventListener(`ext:webview:send`,a),window.removeEventListener(`ext:tree:expand`,o),window.removeEventListener(`ext:command:execute`,s),i.disconnect(),t.current=null}},[n,e]),{send:n}}function Iv(){let[e,t]=(0,V.useState)(`checking`),[n,r]=(0,V.useState)(!1),[i,a]=(0,V.useState)(!1),[o,s]=(0,V.useState)(),[c,u]=(0,V.useState)(!1);(0,V.useEffect)(()=>{let e=()=>{s(`settings`),a(!0)};return window.addEventListener(`open-mobile-settings`,e),()=>window.removeEventListener(`open-mobile-settings`,e)},[]);let[d,f]=(0,V.useState)(()=>new Set([`__global__`])),p=H(e=>e.theme),m=H(e=>e.deviceName),h=ip(e=>e.fetchProjects),g=H(e=>e.fetchServerInfo),_=ip(e=>e.activeProject),v=(0,V.useRef)(B_());(0,V.useEffect)(()=>{if(Wn(p),p===`system`){let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>Wn(`system`);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)}},[p]),(0,V.useEffect)(()=>{g()},[g]),(0,V.useEffect)(()=>{async function e(){let e=se();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()},[]),K_();let{paletteOpen:y,paletteInitialQuery:b,closePalette:x}=Up();$_(),iv(),Fv(e===`authenticated`),(0,V.useEffect)(()=>{if(e!==`authenticated`)return;let t=e=>{e.preventDefault()};return window.addEventListener(`beforeunload`,t),()=>window.removeEventListener(`beforeunload`,t)},[e]),(0,V.useEffect)(()=>{e===`authenticated`&&l(async()=>{let{useKeybindingsStore:e}=await import(`./keybindings-store-jU8-zEoI.js`);return{useKeybindingsStore:e}},__vite__mapDeps([56,6,1,2])).then(({useKeybindingsStore:e})=>{e.getState().loadFromServer()})},[e]),(0,V.useEffect)(()=>{e===`authenticated`&&h().then(async()=>{let e=v.current,{projects:t,customOrder:n}=ip.getState();if(t.length===0)return;let r=e.projectName?t.find(t=>t.name===e.projectName):void 0;if(r||=rp(t,n)[0],!r)return;let i=await Gf(r.name);if(i){let e=localStorage.getItem(`ppm-panels-${r.name}`),t=Jf(e?JSON.parse(e):null,i);t&&t===i&&localStorage.setItem(`ppm-panels-${r.name}`,JSON.stringify(i))}ip.getState().setActiveProject(r),queueMicrotask(()=>{if(e.tabType&&G_(e.tabType,e.tabIdentifier,r.name),e.openChat){G_(`chat`,e.openChat,r.name);let t=new URL(window.location.href);t.searchParams.delete(`openChat`),window.history.replaceState(null,``,t.pathname)}})})},[e,h]),(0,V.useEffect)(()=>{let e=_?.name??`__global__`;ap.getState().switchProject(e)},[_?.name]),(0,V.useEffect)(()=>{let e=_?.name??`__global__`;f(t=>t.has(e)?t:new Set([...t,e]))},[_?.name]),(0,V.useEffect)(()=>{e===`authenticated`&&!_&&ap.getState().switchProject(`__global__`)},[e,_]);let S=(0,V.useCallback)(()=>{t(`authenticated`)},[]);if(e===`checking`)return(0,U.jsx)(`div`,{className:`min-h-dvh flex items-center justify-center bg-background`,children:(0,U.jsx)(`div`,{className:`animate-pulse text-text-secondary text-sm`,children:`Loading...`})});if(e===`unauthenticated`)return(0,U.jsx)(R_,{onSuccess:S});let C=_?.name??`__global__`;return(0,U.jsx)(Lu,{children:(0,U.jsxs)(`div`,{className:`h-dvh flex flex-col bg-background text-foreground overflow-hidden relative`,children:[(0,U.jsx)(hv,{onVisibilityChange:r}),m&&(0,U.jsx)(`div`,{className:I(`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:m}),(0,U.jsxs)(`div`,{className:`flex flex-1 overflow-hidden`,children:[(0,U.jsx)(k_,{}),(0,U.jsx)(Hg,{}),(0,U.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden`,children:[[...d].map(e=>(0,U.jsx)(`div`,{className:I(`flex-1 overflow-hidden pb-12 md:pb-0`,C!==e&&`hidden`),children:(0,U.jsx)(pm,{projectName:e})},e)),(0,U.jsx)(Ev,{})]})]}),(0,U.jsx)(N_,{onMenuPress:()=>a(!0),onProjectsPress:()=>u(!0)}),(0,U.jsx)(F_,{isOpen:i,onClose:()=>{a(!1),s(void 0)},initialTab:o}),(0,U.jsx)(L_,{isOpen:c,onClose:()=>u(!1)}),(0,U.jsx)(dv,{open:y,onClose:x,initialQuery:b}),(0,U.jsx)(fv,{}),(0,U.jsx)(_v,{}),(0,U.jsx)(Sv,{}),(0,U.jsx)(Ov,{}),(0,U.jsx)(Av,{}),(0,U.jsx)(Tv,{}),(0,U.jsx)(Kn,{position:`bottom-left`,closeButton:!0,toastOptions:{className:`bg-surface border-border text-foreground`}})]})})}(0,sn.createRoot)(document.getElementById(`root`)).render((0,U.jsx)(V.StrictMode,{children:(0,U.jsx)(Iv,{})}));export{Xt as $,Pm as A,Ne as At,qp as B,qm as C,We as Ct,Nm as D,Re as Dt,km as E,ze as Et,wm as F,Te as Ft,Vp as G,Fp as H,Tm as I,Ce as It,Q as J,ap as K,Sm as L,be as Lt,$ as M,ke as Mt,xm as N,Oe as Nt,Lm as O,Ie as Ot,Cm as P,De as Pt,Zt as Q,vm as R,ye as Rt,Qm as S,Ge as St,Rm as T,Be as Tt,Bp as U,Hp as V,zp as W,wn as X,H as Y,tn as Z,$m as _,tt as _t,Dg as a,Mt as at,rh as b,Je as bt,Th as c,kt as ct,hh as d,yt as dt,Kt as et,vh as f,gt as ft,Zm as g,nt as gt,gh as h,it as ht,S_ as i,Pt as it,Im as j,Ae as jt,Fm as k,Pe as kt,wh as l,Ot as lt,_h as m,at as mt,vv as n,Vt as nt,cg as o,jt as ot,yh as p,B as pt,ip as q,gv as r,Rt as rt,kh as s,At as st,Pv as t,Ht as tt,Sh as u,bt as ut,eh as v,Xe as vt,Bm as w,He as wt,nh as x,Ke as xt,th as y,Ye as yt,_m as z};