@hienlh/ppm 0.7.15 → 0.7.16
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.
- package/CHANGELOG.md +5 -0
- package/dist/web/assets/{chat-tab-CMBHi9uq.js → chat-tab-DtIaMWNT.js} +2 -2
- package/dist/web/assets/{code-editor-SU4Nfh2K.js → code-editor-DXqocnye.js} +1 -1
- package/dist/web/assets/{database-viewer-Dg4ohCfA.js → database-viewer-ChX5vA56.js} +1 -1
- package/dist/web/assets/{diff-viewer-DnlJFC01.js → diff-viewer-8RNfSVOl.js} +1 -1
- package/dist/web/assets/{git-graph-BS7u6nZh.js → git-graph-DYbWcg6M.js} +1 -1
- package/dist/web/assets/{index-BUWCv9tx.js → index-BzhcIgja.js} +3 -3
- package/dist/web/assets/keybindings-store-DBQQ_pTh.js +1 -0
- package/dist/web/assets/{markdown-renderer-BKBMsxI-.js → markdown-renderer-BOHSi1fK.js} +1 -1
- package/dist/web/assets/{postgres-viewer-CqG795AK.js → postgres-viewer-DRo3924t.js} +1 -1
- package/dist/web/assets/{settings-tab-Beh31IHk.js → settings-tab-6ytjTMb9.js} +1 -1
- package/dist/web/assets/{sqlite-viewer-C9lMdBbX.js → sqlite-viewer-0iVQjCmF.js} +1 -1
- package/dist/web/assets/{terminal-tab-DZaF62V1.js → terminal-tab-Cuznr8Lg.js} +1 -1
- package/dist/web/index.html +1 -1
- package/dist/web/sw.js +1 -1
- package/package.json +1 -1
- package/src/providers/claude-agent-sdk.ts +1 -0
- package/src/types/api.ts +2 -1
- package/src/types/chat.ts +5 -1
- package/src/web/app.tsx +4 -0
- package/src/web/components/chat/message-list.tsx +3 -0
- package/src/web/hooks/use-chat.ts +10 -1
- package/src/web/hooks/use-server-reload.ts +39 -0
- package/dist/web/assets/keybindings-store-BU4VqInW.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/terminal-tab-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/terminal-tab-Cuznr8Lg.js","assets/react-CYzKIDNi.js","assets/utils-DC-bdPS3.js","assets/jsx-runtime-wQxeESYQ.js","assets/settings-store-2NQzaOVJ.js","assets/react-rgzL83kk.js","assets/terminal-tab-BrP-ENHg.css","assets/chat-tab-DtIaMWNT.js","assets/input-CVIzrYsH.js","assets/ai-settings-section-BxCMGg-I.js","assets/api-client-TUmacMRS.js","assets/columns-2-fz8yNaAo.js","assets/tab-store-0CKk8cSr.js","assets/markdown-renderer-BOHSi1fK.js","assets/code-editor-DXqocnye.js","assets/use-monaco-theme-Bt1Lr3jH.js","assets/database-viewer-ChX5vA56.js","assets/dist-D9RHR8A4.js","assets/sqlite-viewer-0iVQjCmF.js","assets/table-C0oSLUYn.js","assets/postgres-viewer-DRo3924t.js","assets/git-graph-DYbWcg6M.js","assets/diff-viewer-8RNfSVOl.js","assets/settings-tab-6ytjTMb9.js","assets/keybindings-store-DBQQ_pTh.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{i as e,n as t,t as n}from"./react-CYzKIDNi.js";import{A as r,C as i,D as a,E as o,M as s,N as c,O as l,S as u,T as d,_ as f,a as p,b as m,c as h,d as g,f as _,g as v,h as y,i as b,j as x,k as S,l as C,m as w,n as T,o as E,p as D,r as O,s as ee,t as k,u as te,v as ne,w as A,x as re,y as j}from"./input-CVIzrYsH.js";import{n as M,t as ie}from"./jsx-runtime-wQxeESYQ.js";import{_ as ae,a as oe,b as se,c as N,d as ce,f as le,g as ue,h as de,i as fe,l as pe,m as me,n as he,o as ge,p as _e,r as ve,s as ye,t as be,u as xe,v as Se,x as Ce,y as we}from"./ai-settings-section-BxCMGg-I.js";import{a as Te,i as Ee,n as P,r as De,t as F}from"./tab-store-0CKk8cSr.js";import{t as Oe}from"./react-rgzL83kk.js";import{n as I,t as ke}from"./settings-store-2NQzaOVJ.js";import{i as Ae,n as L,t as je}from"./utils-DC-bdPS3.js";import{a as Me,i as Ne,r as Pe,t as R}from"./api-client-TUmacMRS.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&&te(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&&te(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 ee=new MessageChannel,k=ee.port2;ee.port1.onmessage=D,O=function(){k.postMessage(null)}}else O=function(){_(D,0)};function te(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,te(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}}}})),Ie=t(((e,t)=>{t.exports=Fe()})),Le=t((e=>{var t=Ie(),r=n(),i=c();function a(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function o(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function s(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function 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(s(e)!==e)throw Error(a(188))}function f(e){var t=e.alternate;if(!t){if(t=s(e),t===null)throw Error(a(188));return t===e?e:null}for(var n=e,r=t;;){var i=n.return;if(i===null)break;var o=i.alternate;if(o===null){if(r=i.return,r!==null){n=r;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===n)return d(i),e;if(o===r)return d(i),t;o=o.sibling}throw Error(a(188))}if(n.return!==r.return)n=i,r=o;else{for(var c=!1,l=i.child;l;){if(l===n){c=!0,n=i,r=o;break}if(l===r){c=!0,r=i,n=o;break}l=l.sibling}if(!c){for(l=o.child;l;){if(l===n){c=!0,n=o,r=i;break}if(l===r){c=!0,r=o,n=i;break}l=l.sibling}if(!c)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(n.tag!==3)throw Error(a(188));return n.stateNode.current===n?e:t}function 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`),ee=Symbol.for(`react.memo_cache_sentinel`),k=Symbol.iterator;function te(e){return typeof e!=`object`||!e?null:(e=k&&e[k]||e[`@@iterator`],typeof e==`function`?e:null)}var ne=Symbol.for(`react.client.reference`);function A(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===ne?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?A(e.type)||`Memo`:t;case D:t=e._payload,e=e._init;try{return A(e(t))}catch{}}return null}var re=Array.isArray,j=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,M=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ie={pending:!1,data:null,method:null,action:null},ae=[],oe=-1;function se(e){return{current:e}}function N(e){0>oe||(e.current=ae[oe],ae[oe]=null,oe--)}function ce(e,t){oe++,ae[oe]=e.current,e.current=t}var le=se(null),ue=se(null),de=se(null),fe=se(null);function pe(e,t){switch(ce(de,t),ce(ue,e),ce(le,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Hd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Hd(t),e=Ud(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}N(le),ce(le,e)}function me(){N(le),N(ue),N(de)}function he(e){e.memoizedState!==null&&ce(fe,e);var t=le.current,n=Ud(t,e.type);t!==n&&(ce(ue,e),ce(le,n))}function ge(e){ue.current===e&&(N(le),N(ue)),fe.current===e&&(N(fe),Qf._currentValue=ie)}var _e,ve;function ye(e){if(_e===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);_e=t&&t[1]||``,ve=-1<e.stack.indexOf(`
|
|
3
3
|
at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
|
|
4
4
|
`+_e+e+ve}var be=!1;function xe(e,t){if(!e||be)return``;be=!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 B.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},ci=`DialogDescriptionWarning`,li=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${oi(ci).contentName}}.`;return B.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},ui=Fr,di=Vr,fi=Ur,pi=qr,mi=Qr,hi=ei,gi=ni,_i=`rovingFocusGroup.onEntryFocus`,vi={bubbles:!1,cancelable:!0},yi=`RovingFocusGroup`,[bi,xi,Si]=re(yi),[Ci,wi]=i(yi,[Si]),[Ti,Ei]=Ci(yi),Di=B.forwardRef((e,t)=>(0,V.jsx)(bi.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,V.jsx)(bi.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,V.jsx)(Oi,{...e,ref:t})})}));Di.displayName=yi;var Oi=B.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:i,loop:a=!1,dir:o,currentTabStopId:s,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:l,onEntryFocus:u,preventScrollOnEntryFocus:d=!1,...f}=e,p=B.useRef(null),h=r(t,p),g=v(o),[_,b]=ne({prop:s,defaultProp:c??null,onChange:l,caller:yi}),[x,S]=B.useState(!1),C=y(u),w=xi(n),T=B.useRef(!1),[E,D]=B.useState(0);return B.useEffect(()=>{let e=p.current;if(e)return e.addEventListener(_i,C),()=>e.removeEventListener(_i,C)},[C]),(0,V.jsx)(Ti,{scope:n,orientation:i,dir:g,loop:a,currentTabStopId:_,onItemFocus:B.useCallback(e=>b(e),[b]),onItemShiftTab:B.useCallback(()=>S(!0),[]),onFocusableItemAdd:B.useCallback(()=>D(e=>e+1),[]),onFocusableItemRemove:B.useCallback(()=>D(e=>e-1),[]),children:(0,V.jsx)(A.div,{tabIndex:x||E===0?-1:0,"data-orientation":i,...f,ref:h,style:{outline:`none`,...e.style},onMouseDown:m(e.onMouseDown,()=>{T.current=!0}),onFocus:m(e.onFocus,e=>{let t=!T.current;if(e.target===e.currentTarget&&t&&!x){let t=new CustomEvent(_i,vi);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=w().filter(e=>e.focusable);Ni([e.find(e=>e.active),e.find(e=>e.id===_),...e].filter(Boolean).map(e=>e.ref.current),d)}}T.current=!1}),onBlur:m(e.onBlur,()=>S(!1))})})}),ki=`RovingFocusGroupItem`,Ai=B.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=f(),l=a||c,u=Ei(ki,n),d=u.currentTabStopId===l,p=xi(n),{onFocusableItemAdd:h,onFocusableItemRemove:g,currentTabStopId:_}=u;return B.useEffect(()=>{if(r)return h(),()=>g()},[r,h,g]),(0,V.jsx)(bi.ItemSlot,{scope:n,id:l,focusable:r,active:i,children:(0,V.jsx)(A.span,{tabIndex:d?0:-1,"data-orientation":u.orientation,...s,ref:t,onMouseDown:m(e.onMouseDown,e=>{r?u.onItemFocus(l):e.preventDefault()}),onFocus:m(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:m(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){u.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=Mi(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?Pi(n,r+1):n.slice(r+1)}setTimeout(()=>Ni(n))}}),children:typeof o==`function`?o({isCurrentTabStop:d,hasTabStop:_!=null}):o})})});Ai.displayName=ki;var ji={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function H(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function Mi(e,t,n){let r=H(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return ji[r]}function Ni(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function Pi(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Fi=Di,Ii=Ai,Li=[`Enter`,` `],Ri=[`ArrowDown`,`PageUp`,`Home`],zi=[`ArrowUp`,`PageDown`,`End`],Bi=[...Ri,...zi],Vi={ltr:[...Li,`ArrowRight`],rtl:[...Li,`ArrowLeft`]},Hi={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]},Ui=`Menu`,[Wi,Gi,Ki]=re(Ui),[qi,Ji]=i(Ui,[Ki,ee,wi]),Yi=ee(),Xi=wi(),[Zi,Qi]=qi(Ui),[$i,ea]=qi(Ui),ta=e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:a,modal:o=!0}=e,s=Yi(t),[c,l]=B.useState(null),u=B.useRef(!1),d=y(a),f=v(i);return B.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,V.jsx)(E,{...s,children:(0,V.jsx)(Zi,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:l,children:(0,V.jsx)($i,{scope:t,onClose:B.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:u,dir:f,modal:o,children:r})})})};ta.displayName=Ui;var na=`MenuAnchor`,ra=B.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=Yi(n);return(0,V.jsx)(O,{...i,...r,ref:t})});ra.displayName=na;var ia=`MenuPortal`,[aa,oa]=qi(ia,{forceMount:void 0}),sa=e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=Qi(ia,t);return(0,V.jsx)(aa,{scope:t,forceMount:n,children:(0,V.jsx)(jn,{present:n||a.open,children:(0,V.jsx)(_,{asChild:!0,container:i,children:r})})})};sa.displayName=ia;var ca=`MenuContent`,[la,ua]=qi(ca),da=B.forwardRef((e,t)=>{let n=oa(ca,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Qi(ca,e.__scopeMenu),o=ea(ca,e.__scopeMenu);return(0,V.jsx)(Wi.Provider,{scope:e.__scopeMenu,children:(0,V.jsx)(jn,{present:r||a.open,children:(0,V.jsx)(Wi.Slot,{scope:e.__scopeMenu,children:o.modal?(0,V.jsx)(fa,{...i,ref:t}):(0,V.jsx)(pa,{...i,ref:t})})})})}),fa=B.forwardRef((e,t)=>{let n=Qi(ca,e.__scopeMenu),i=B.useRef(null),a=r(t,i);return B.useEffect(()=>{let e=i.current;if(e)return C(e)},[]),(0,V.jsx)(ha,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:m(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),pa=B.forwardRef((e,t)=>{let n=Qi(ca,e.__scopeMenu);return(0,V.jsx)(ha,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),ma=a(`MenuContent.ScrollLock`),ha=B.forwardRef((e,t)=>{let{__scopeMenu:n,loop:i=!1,trapFocus:a,onOpenAutoFocus:o,onCloseAutoFocus:s,disableOutsidePointerEvents:c,onEntryFocus:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:h,onDismiss:_,disableOutsideScroll:v,...y}=e,b=Qi(ca,n),x=ea(ca,n),S=Yi(n),C=Xi(n),T=Gi(n),[E,O]=B.useState(null),ee=B.useRef(null),k=r(t,ee,b.onContentChange),ne=B.useRef(0),A=B.useRef(``),re=B.useRef(0),j=B.useRef(null),M=B.useRef(`right`),ie=B.useRef(0),ae=v?te:B.Fragment,oe=v?{as:ma,allowPinchZoom:!0}:void 0,se=e=>{let t=A.current+e,n=T().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=$a(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;(function e(t){A.current=t,window.clearTimeout(ne.current),t!==``&&(ne.current=window.setTimeout(()=>e(``),1e3))})(t),o&&setTimeout(()=>o.focus())};B.useEffect(()=>()=>window.clearTimeout(ne.current),[]),g();let N=B.useCallback(e=>M.current===j.current?.side&&to(e,j.current?.area),[]);return(0,V.jsx)(la,{scope:n,searchRef:A,onItemEnter:B.useCallback(e=>{N(e)&&e.preventDefault()},[N]),onItemLeave:B.useCallback(e=>{N(e)||(ee.current?.focus(),O(null))},[N]),onTriggerLeave:B.useCallback(e=>{N(e)&&e.preventDefault()},[N]),pointerGraceTimerRef:re,onPointerGraceIntentChange:B.useCallback(e=>{j.current=e},[]),children:(0,V.jsx)(ae,{...oe,children:(0,V.jsx)(D,{asChild:!0,trapped:a,onMountAutoFocus:m(o,e=>{e.preventDefault(),ee.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:s,children:(0,V.jsx)(w,{asChild:!0,disableOutsidePointerEvents:c,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:h,onDismiss:_,children:(0,V.jsx)(Fi,{asChild:!0,...C,dir:x.dir,orientation:`vertical`,loop:i,currentTabStopId:E,onCurrentTabStopIdChange:O,onEntryFocus:m(l,e=>{x.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,V.jsx)(p,{role:`menu`,"aria-orientation":`vertical`,"data-state":Ja(b.open),"data-radix-menu-content":``,dir:x.dir,...S,...y,ref:k,style:{outline:`none`,...y.style},onKeyDown:m(y.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&&se(e.key));let i=ee.current;if(e.target!==i||!Bi.includes(e.key))return;e.preventDefault();let a=T().filter(e=>!e.disabled).map(e=>e.ref.current);zi.includes(e.key)&&a.reverse(),Za(a)}),onBlur:m(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(ne.current),A.current=``)}),onPointerMove:m(e.onPointerMove,no(e=>{let t=e.target,n=ie.current!==e.clientX;e.currentTarget.contains(t)&&n&&(M.current=e.clientX>ie.current?`right`:`left`,ie.current=e.clientX)}))})})})})})})});da.displayName=ca;var ga=`MenuGroup`,_a=B.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,V.jsx)(A.div,{role:`group`,...r,ref:t})});_a.displayName=ga;var va=`MenuLabel`,ya=B.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,V.jsx)(A.div,{...r,ref:t})});ya.displayName=va;var ba=`MenuItem`,xa=`menu.itemSelect`,Sa=B.forwardRef((e,t)=>{let{disabled:n=!1,onSelect:i,...a}=e,o=B.useRef(null),s=ea(ba,e.__scopeMenu),c=ua(ba,e.__scopeMenu),l=r(t,o),u=B.useRef(!1),f=()=>{let e=o.current;if(!n&&e){let t=new CustomEvent(xa,{bubbles:!0,cancelable:!0});e.addEventListener(xa,e=>i?.(e),{once:!0}),d(e,t),t.defaultPrevented?u.current=!1:s.onClose()}};return(0,V.jsx)(Ca,{...a,ref:l,disabled:n,onClick:m(e.onClick,f),onPointerDown:t=>{e.onPointerDown?.(t),u.current=!0},onPointerUp:m(e.onPointerUp,e=>{u.current||e.currentTarget?.click()}),onKeyDown:m(e.onKeyDown,e=>{let t=c.searchRef.current!==``;n||t&&e.key===` `||Li.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});Sa.displayName=ba;var Ca=B.forwardRef((e,t)=>{let{__scopeMenu:n,disabled:i=!1,textValue:a,...o}=e,s=ua(ba,n),c=Xi(n),l=B.useRef(null),u=r(t,l),[d,f]=B.useState(!1),[p,h]=B.useState(``);return B.useEffect(()=>{let e=l.current;e&&h((e.textContent??``).trim())},[o.children]),(0,V.jsx)(Wi.ItemSlot,{scope:n,disabled:i,textValue:a??p,children:(0,V.jsx)(Ii,{asChild:!0,...c,focusable:!i,children:(0,V.jsx)(A.div,{role:`menuitem`,"data-highlighted":d?``:void 0,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,...o,ref:u,onPointerMove:m(e.onPointerMove,no(e=>{i?s.onItemLeave(e):(s.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:m(e.onPointerLeave,no(e=>s.onItemLeave(e))),onFocus:m(e.onFocus,()=>f(!0)),onBlur:m(e.onBlur,()=>f(!1))})})})}),wa=`MenuCheckboxItem`,Ta=B.forwardRef((e,t)=>{let{checked:n=!1,onCheckedChange:r,...i}=e;return(0,V.jsx)(Na,{scope:e.__scopeMenu,checked:n,children:(0,V.jsx)(Sa,{role:`menuitemcheckbox`,"aria-checked":Ya(n)?`mixed`:n,...i,ref:t,"data-state":Xa(n),onSelect:m(i.onSelect,()=>r?.(Ya(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Ta.displayName=wa;var Ea=`MenuRadioGroup`,[Da,Oa]=qi(Ea,{value:void 0,onValueChange:()=>{}}),ka=B.forwardRef((e,t)=>{let{value:n,onValueChange:r,...i}=e,a=y(r);return(0,V.jsx)(Da,{scope:e.__scopeMenu,value:n,onValueChange:a,children:(0,V.jsx)(_a,{...i,ref:t})})});ka.displayName=Ea;var Aa=`MenuRadioItem`,ja=B.forwardRef((e,t)=>{let{value:n,...r}=e,i=Oa(Aa,e.__scopeMenu),a=n===i.value;return(0,V.jsx)(Na,{scope:e.__scopeMenu,checked:a,children:(0,V.jsx)(Sa,{role:`menuitemradio`,"aria-checked":a,...r,ref:t,"data-state":Xa(a),onSelect:m(r.onSelect,()=>i.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});ja.displayName=Aa;var Ma=`MenuItemIndicator`,[Na,Pa]=qi(Ma,{checked:!1}),Fa=B.forwardRef((e,t)=>{let{__scopeMenu:n,forceMount:r,...i}=e,a=Pa(Ma,n);return(0,V.jsx)(jn,{present:r||Ya(a.checked)||a.checked===!0,children:(0,V.jsx)(A.span,{...i,ref:t,"data-state":Xa(a.checked)})})});Fa.displayName=Ma;var Ia=`MenuSeparator`,La=B.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,V.jsx)(A.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})});La.displayName=Ia;var Ra=`MenuArrow`,za=B.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=Yi(n);return(0,V.jsx)(b,{...i,...r,ref:t})});za.displayName=Ra;var Ba=`MenuSub`,[Va,Ha]=qi(Ba),Ua=e=>{let{__scopeMenu:t,children:n,open:r=!1,onOpenChange:i}=e,a=Qi(Ba,t),o=Yi(t),[s,c]=B.useState(null),[l,u]=B.useState(null),d=y(i);return B.useEffect(()=>(a.open===!1&&d(!1),()=>d(!1)),[a.open,d]),(0,V.jsx)(E,{...o,children:(0,V.jsx)(Zi,{scope:t,open:r,onOpenChange:d,content:l,onContentChange:u,children:(0,V.jsx)(Va,{scope:t,contentId:f(),triggerId:f(),trigger:s,onTriggerChange:c,children:n})})})};Ua.displayName=Ba;var Wa=`MenuSubTrigger`,Ga=B.forwardRef((e,t)=>{let n=Qi(Wa,e.__scopeMenu),r=ea(Wa,e.__scopeMenu),i=Ha(Wa,e.__scopeMenu),a=ua(Wa,e.__scopeMenu),o=B.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:c}=a,l={__scopeMenu:e.__scopeMenu},u=B.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=null},[]);return B.useEffect(()=>u,[u]),B.useEffect(()=>{let e=s.current;return()=>{window.clearTimeout(e),c(null)}},[s,c]),(0,V.jsx)(ra,{asChild:!0,...l,children:(0,V.jsx)(Ca,{id:i.triggerId,"aria-haspopup":`menu`,"aria-expanded":n.open,"aria-controls":i.contentId,"data-state":Ja(n.open),...e,ref:S(t,i.onTriggerChange),onClick:t=>{e.onClick?.(t),!(e.disabled||t.defaultPrevented)&&(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:m(e.onPointerMove,no(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:m(e.onPointerLeave,no(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:m(e.onKeyDown,t=>{let i=a.searchRef.current!==``;e.disabled||i&&t.key===` `||Vi[r.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())})})})});Ga.displayName=Wa;var Ka=`MenuSubContent`,qa=B.forwardRef((e,t)=>{let n=oa(ca,e.__scopeMenu),{forceMount:i=n.forceMount,...a}=e,o=Qi(ca,e.__scopeMenu),s=ea(ca,e.__scopeMenu),c=Ha(Ka,e.__scopeMenu),l=B.useRef(null),u=r(t,l);return(0,V.jsx)(Wi.Provider,{scope:e.__scopeMenu,children:(0,V.jsx)(jn,{present:i||o.open,children:(0,V.jsx)(Wi.Slot,{scope:e.__scopeMenu,children:(0,V.jsx)(ha,{id:c.contentId,"aria-labelledby":c.triggerId,...a,ref:u,align:`start`,side:s.dir===`rtl`?`left`:`right`,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{s.isUsingKeyboardRef.current&&l.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:m(e.onFocusOutside,e=>{e.target!==c.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:m(e.onEscapeKeyDown,e=>{s.onClose(),e.preventDefault()}),onKeyDown:m(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=Hi[s.dir].includes(e.key);t&&n&&(o.onOpenChange(!1),c.trigger?.focus(),e.preventDefault())})})})})})});qa.displayName=Ka;function Ja(e){return e?`open`:`closed`}function Ya(e){return e===`indeterminate`}function Xa(e){return Ya(e)?`indeterminate`:e?`checked`:`unchecked`}function Za(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Qa(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function $a(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=Qa(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 eo(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 to(e,t){return t?eo({x:e.clientX,y:e.clientY},t):!1}function no(e){return t=>t.pointerType===`mouse`?e(t):void 0}var ro=ta,io=ra,ao=sa,oo=da,so=_a,co=ya,lo=Sa,U=Ta,uo=ka,fo=ja,po=Fa,mo=La,ho=za,go=Ua,_o=Ga,vo=qa,yo=`ContextMenu`,[bo,xo]=i(yo,[Ji]),So=Ji(),[Co,wo]=bo(yo),To=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:a=!0}=e,[o,s]=B.useState(!1),c=So(t),l=y(r),u=B.useCallback(e=>{s(e),l(e)},[l]);return(0,V.jsx)(Co,{scope:t,open:o,onOpenChange:u,modal:a,children:(0,V.jsx)(ro,{...c,dir:i,open:o,onOpenChange:u,modal:a,children:n})})};To.displayName=yo;var Eo=`ContextMenuTrigger`,Do=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,disabled:r=!1,...i}=e,a=wo(Eo,n),o=So(n),s=B.useRef({x:0,y:0}),c=B.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...s.current})}),l=B.useRef(0),u=B.useCallback(()=>window.clearTimeout(l.current),[]),d=e=>{s.current={x:e.clientX,y:e.clientY},a.onOpenChange(!0)};return B.useEffect(()=>u,[u]),B.useEffect(()=>void(r&&u()),[r,u]),(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(io,{...o,virtualRef:c}),(0,V.jsx)(A.span,{"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,...i,ref:t,style:{WebkitTouchCallout:`none`,...e.style},onContextMenu:r?e.onContextMenu:m(e.onContextMenu,e=>{u(),d(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:m(e.onPointerDown,ns(e=>{u(),l.current=window.setTimeout(()=>d(e),700)})),onPointerMove:r?e.onPointerMove:m(e.onPointerMove,ns(u)),onPointerCancel:r?e.onPointerCancel:m(e.onPointerCancel,ns(u)),onPointerUp:r?e.onPointerUp:m(e.onPointerUp,ns(u))})]})});Do.displayName=Eo;var Oo=`ContextMenuPortal`,ko=e=>{let{__scopeContextMenu:t,...n}=e,r=So(t);return(0,V.jsx)(ao,{...r,...n})};ko.displayName=Oo;var Ao=`ContextMenuContent`,jo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=wo(Ao,n),a=So(n),o=B.useRef(!1);return(0,V.jsx)(oo,{...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)`}})});jo.displayName=Ao;var Mo=`ContextMenuGroup`,No=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(so,{...i,...r,ref:t})});No.displayName=Mo;var Po=`ContextMenuLabel`,Fo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(co,{...i,...r,ref:t})});Fo.displayName=Po;var Io=`ContextMenuItem`,Lo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(lo,{...i,...r,ref:t})});Lo.displayName=Io;var Ro=`ContextMenuCheckboxItem`,zo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(U,{...i,...r,ref:t})});zo.displayName=Ro;var Bo=`ContextMenuRadioGroup`,Vo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(uo,{...i,...r,ref:t})});Vo.displayName=Bo;var Ho=`ContextMenuRadioItem`,Uo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(fo,{...i,...r,ref:t})});Uo.displayName=Ho;var Wo=`ContextMenuItemIndicator`,Go=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(po,{...i,...r,ref:t})});Go.displayName=Wo;var Ko=`ContextMenuSeparator`,qo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(mo,{...i,...r,ref:t})});qo.displayName=Ko;var Jo=`ContextMenuArrow`,Yo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(ho,{...i,...r,ref:t})});Yo.displayName=Jo;var Xo=`ContextMenuSub`,Zo=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,defaultOpen:a}=e,o=So(t),[s,c]=ne({prop:i,defaultProp:a??!1,onChange:r,caller:Xo});return(0,V.jsx)(go,{...o,open:s,onOpenChange:c,children:n})};Zo.displayName=Xo;var Qo=`ContextMenuSubTrigger`,$o=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(_o,{...i,...r,ref:t})});$o.displayName=Qo;var es=`ContextMenuSubContent`,ts=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(vo,{...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)`}})});ts.displayName=es;function ns(e){return t=>t.pointerType===`mouse`?void 0:e(t)}var rs=To,is=Do,as=ko,os=jo,ss=Lo,cs=qo,ls=`DropdownMenu`,[us,ds]=i(ls,[Ji]),fs=Ji(),[ps,ms]=us(ls),hs=e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:s=!0}=e,c=fs(t),l=B.useRef(null),[u,d]=ne({prop:i,defaultProp:a??!1,onChange:o,caller:ls});return(0,V.jsx)(ps,{scope:t,triggerId:f(),triggerRef:l,contentId:f(),open:u,onOpenChange:d,onOpenToggle:B.useCallback(()=>d(e=>!e),[d]),modal:s,children:(0,V.jsx)(ro,{...c,open:u,onOpenChange:d,dir:r,modal:s,children:n})})};hs.displayName=ls;var gs=`DropdownMenuTrigger`,_s=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,a=ms(gs,n),o=fs(n);return(0,V.jsx)(io,{asChild:!0,...o,children:(0,V.jsx)(A.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:S(t,a.triggerRef),onPointerDown:m(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:m(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&a.onOpenToggle(),e.key===`ArrowDown`&&a.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})});_s.displayName=gs;var vs=`DropdownMenuPortal`,ys=e=>{let{__scopeDropdownMenu:t,...n}=e,r=fs(t);return(0,V.jsx)(ao,{...r,...n})};ys.displayName=vs;var bs=`DropdownMenuContent`,xs=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=ms(bs,n),a=fs(n),o=B.useRef(!1);return(0,V.jsx)(oo,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:m(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:m(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)`}})});xs.displayName=bs;var Ss=`DropdownMenuGroup`,Cs=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(so,{...i,...r,ref:t})});Cs.displayName=Ss;var ws=`DropdownMenuLabel`,Ts=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(co,{...i,...r,ref:t})});Ts.displayName=ws;var Es=`DropdownMenuItem`,Ds=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(lo,{...i,...r,ref:t})});Ds.displayName=Es;var Os=`DropdownMenuCheckboxItem`,ks=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(U,{...i,...r,ref:t})});ks.displayName=Os;var As=`DropdownMenuRadioGroup`,js=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(uo,{...i,...r,ref:t})});js.displayName=As;var Ms=`DropdownMenuRadioItem`,Ns=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(fo,{...i,...r,ref:t})});Ns.displayName=Ms;var Ps=`DropdownMenuItemIndicator`,Fs=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(po,{...i,...r,ref:t})});Fs.displayName=Ps;var Is=`DropdownMenuSeparator`,Ls=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(mo,{...i,...r,ref:t})});Ls.displayName=Is;var Rs=`DropdownMenuArrow`,zs=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(ho,{...i,...r,ref:t})});zs.displayName=Rs;var Bs=`DropdownMenuSubTrigger`,Vs=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(_o,{...i,...r,ref:t})});Vs.displayName=Bs;var Hs=`DropdownMenuSubContent`,Us=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(vo,{...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)`}})});Us.displayName=Hs;var Ws=hs,Gs=_s,Ks=ys,qs=xs,Js=Ds;function Ys(e,t){return B.useReducer((e,n)=>t[e][n]??e,e)}var Xs=`ScrollArea`,[Zs,Qs]=i(Xs),[$s,ec]=Zs(Xs),tc=B.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:i=`hover`,dir:a,scrollHideDelay:o=600,...s}=e,[c,l]=B.useState(null),[u,d]=B.useState(null),[f,p]=B.useState(null),[m,h]=B.useState(null),[g,_]=B.useState(null),[y,b]=B.useState(0),[x,S]=B.useState(0),[C,w]=B.useState(!1),[T,E]=B.useState(!1),D=r(t,e=>l(e)),O=v(a);return(0,V.jsx)($s,{scope:n,type:i,dir:O,scrollHideDelay:o,scrollArea:c,viewport:u,onViewportChange:d,content:f,onContentChange:p,scrollbarX:m,onScrollbarXChange:h,scrollbarXEnabled:C,onScrollbarXEnabledChange:w,scrollbarY:g,onScrollbarYChange:_,scrollbarYEnabled:T,onScrollbarYEnabledChange:E,onCornerWidthChange:b,onCornerHeightChange:S,children:(0,V.jsx)(A.div,{dir:O,...s,ref:D,style:{position:`relative`,"--radix-scroll-area-corner-width":y+`px`,"--radix-scroll-area-corner-height":x+`px`,...e.style}})})});tc.displayName=Xs;var nc=`ScrollAreaViewport`,rc=B.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:i,nonce:a,...o}=e,s=ec(nc,n),c=r(t,B.useRef(null),s.onViewportChange);return(0,V.jsxs)(V.Fragment,{children:[(0,V.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:a}),(0,V.jsx)(A.div,{"data-radix-scroll-area-viewport":``,...o,ref:c,style:{overflowX:s.scrollbarXEnabled?`scroll`:`hidden`,overflowY:s.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,V.jsx)(`div`,{ref:s.onContentChange,style:{minWidth:`100%`,display:`table`},children:i})})]})});rc.displayName=nc;var ic=`ScrollAreaScrollbar`,ac=B.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=ec(ic,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return B.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,V.jsx)(oc,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,V.jsx)(sc,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,V.jsx)(cc,{...r,ref:t,forceMount:n}):i.type===`always`?(0,V.jsx)(lc,{...r,ref:t}):null});ac.displayName=ic;var oc=B.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=ec(ic,e.__scopeScrollArea),[a,o]=B.useState(!1);return B.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,V.jsx)(jn,{present:n||a,children:(0,V.jsx)(cc,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),sc=B.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=ec(ic,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=kc(()=>c(`SCROLL_END`),100),[s,c]=Ys(`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 B.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),B.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,V.jsx)(jn,{present:n||s!==`hidden`,children:(0,V.jsx)(lc,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:m(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:m(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})}),cc=B.forwardRef((e,t)=>{let n=ec(ic,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=B.useState(!1),s=e.orientation===`horizontal`,c=kc(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return Ac(n.viewport,c),Ac(n.content,c),(0,V.jsx)(jn,{present:r||a,children:(0,V.jsx)(lc,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),lc=B.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=ec(ic,e.__scopeScrollArea),a=B.useRef(null),o=B.useRef(0),[s,c]=B.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=Sc(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 wc(e,o.current,s,t)}return n===`horizontal`?(0,V.jsx)(uc,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=Tc(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,V.jsx)(dc,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=Tc(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}),uc=B.forwardRef((e,t)=>{let{sizes:n,onSizesChange:i,...a}=e,o=ec(ic,e.__scopeScrollArea),[s,c]=B.useState(),l=B.useRef(null),u=r(t,l,o.onScrollbarXChange);return B.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,V.jsx)(mc,{"data-orientation":`horizontal`,...a,ref:u,sizes:n,style:{bottom:0,left:o.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:o.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":Cc(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),Dc(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&i({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:xc(s.paddingLeft),paddingEnd:xc(s.paddingRight)}})}})}),dc=B.forwardRef((e,t)=>{let{sizes:n,onSizesChange:i,...a}=e,o=ec(ic,e.__scopeScrollArea),[s,c]=B.useState(),l=B.useRef(null),u=r(t,l,o.onScrollbarYChange);return B.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,V.jsx)(mc,{"data-orientation":`vertical`,...a,ref:u,sizes:n,style:{top:0,right:o.dir===`ltr`?0:void 0,left:o.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":Cc(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),Dc(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&i({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:xc(s.paddingTop),paddingEnd:xc(s.paddingBottom)}})}})}),[fc,pc]=Zs(ic),mc=B.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:i,hasThumb:a,onThumbChange:o,onThumbPointerUp:s,onThumbPointerDown:c,onThumbPositionChange:l,onDragScroll:u,onWheelScroll:d,onResize:f,...p}=e,h=ec(ic,n),[g,_]=B.useState(null),v=r(t,e=>_(e)),b=B.useRef(null),x=B.useRef(``),S=h.viewport,C=i.content-i.viewport,w=y(d),T=y(l),E=kc(f,10);function D(e){b.current&&u({x:e.clientX-b.current.left,y:e.clientY-b.current.top})}return B.useEffect(()=>{let e=e=>{let t=e.target;g?.contains(t)&&w(e,C)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[S,g,C,w]),B.useEffect(T,[i,T]),Ac(g,E),Ac(h.content,E),(0,V.jsx)(fc,{scope:n,scrollbar:g,hasThumb:a,onThumbChange:y(o),onThumbPointerUp:y(s),onThumbPositionChange:T,onThumbPointerDown:y(c),children:(0,V.jsx)(A.div,{...p,ref:v,style:{position:`absolute`,...p.style},onPointerDown:m(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),b.current=g.getBoundingClientRect(),x.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,h.viewport&&(h.viewport.style.scrollBehavior=`auto`),D(e))}),onPointerMove:m(e.onPointerMove,D),onPointerUp:m(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=x.current,h.viewport&&(h.viewport.style.scrollBehavior=``),b.current=null})})})}),hc=`ScrollAreaThumb`,gc=B.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=pc(hc,e.__scopeScrollArea);return(0,V.jsx)(jn,{present:n||i.hasThumb,children:(0,V.jsx)(_c,{ref:t,...r})})}),_c=B.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:i,...a}=e,o=ec(hc,n),s=pc(hc,n),{onThumbPositionChange:c}=s,l=r(t,e=>s.onThumbChange(e)),u=B.useRef(void 0),d=kc(()=>{u.current&&=(u.current(),void 0)},100);return B.useEffect(()=>{let e=o.viewport;if(e){let t=()=>{d(),u.current||(u.current=Oc(e,c),c())};return c(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[o.viewport,d,c]),(0,V.jsx)(A.div,{"data-state":s.hasThumb?`visible`:`hidden`,...a,ref:l,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...i},onPointerDownCapture:m(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;s.onThumbPointerDown({x:n,y:r})}),onPointerUp:m(e.onPointerUp,s.onThumbPointerUp)})});gc.displayName=hc;var vc=`ScrollAreaCorner`,yc=B.forwardRef((e,t)=>{let n=ec(vc,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,V.jsx)(bc,{...e,ref:t}):null});yc.displayName=vc;var bc=B.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=ec(vc,n),[a,o]=B.useState(0),[s,c]=B.useState(0),l=!!(a&&s);return Ac(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),Ac(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,V.jsx)(A.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 xc(e){return e?parseInt(e,10):0}function Sc(e,t){let n=e/t;return isNaN(n)?0:n}function Cc(e){let t=Sc(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function wc(e,t,n,r=`ltr`){let i=Cc(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 Ec([c,l],d)(e)}function Tc(e,t,n=`ltr`){let r=Cc(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=T(e,n===`ltr`?[0,o]:[o*-1,0]);return Ec([0,o],[0,s])(c)}function Ec(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 Dc(e,t){return e>0&&e<t}var Oc=(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 kc(e,t){let n=y(e),r=B.useRef(0);return B.useEffect(()=>()=>window.clearTimeout(r.current),[]),B.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function Ac(e,t){let n=y(t);j(()=>{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 jc=tc,Mc=rc,Nc=yc,Pc=`Switch`,[Fc,Ic]=i(Pc),[Lc,Rc]=Fc(Pc),zc=B.forwardRef((e,t)=>{let{__scopeSwitch:n,name:i,checked:a,defaultChecked:o,required:s,disabled:c,value:l=`on`,onCheckedChange:u,form:d,...f}=e,[p,h]=B.useState(null),g=r(t,e=>h(e)),_=B.useRef(!1),v=p?d||!!p.closest(`form`):!0,[y,b]=ne({prop:a,defaultProp:o??!1,onChange:u,caller:Pc});return(0,V.jsxs)(Lc,{scope:n,checked:y,disabled:c,children:[(0,V.jsx)(A.button,{type:`button`,role:`switch`,"aria-checked":y,"aria-required":s,"data-state":Wc(y),"data-disabled":c?``:void 0,disabled:c,value:l,...f,ref:g,onClick:m(e.onClick,e=>{b(e=>!e),v&&(_.current=e.isPropagationStopped(),_.current||e.stopPropagation())})}),v&&(0,V.jsx)(Uc,{control:p,bubbles:!_.current,name:i,value:l,checked:y,required:s,disabled:c,form:d,style:{transform:`translateX(-100%)`}})]})});zc.displayName=Pc;var Bc=`SwitchThumb`,Vc=B.forwardRef((e,t)=>{let{__scopeSwitch:n,...r}=e,i=Rc(Bc,n);return(0,V.jsx)(A.span,{"data-state":Wc(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})});Vc.displayName=Bc;var Hc=`SwitchBubbleInput`,Uc=B.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:i=!0,...a},o)=>{let s=B.useRef(null),c=r(s,o),l=ue(n),u=h(t);return B.useEffect(()=>{let e=s.current;if(!e)return;let t=window.HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(t,`checked`).set;if(l!==n&&r){let t=new Event(`click`,{bubbles:i});r.call(e,n),e.dispatchEvent(t)}},[l,n,i]),(0,V.jsx)(`input`,{type:`checkbox`,"aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:c,style:{...a.style,...u,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});Uc.displayName=Hc;function Wc(e){return e?`checked`:`unchecked`}var Gc=zc,Kc=Vc,[qc,Jc]=i(`Tooltip`,[ee]),Yc=ee(),Xc=`TooltipProvider`,Zc=700,Qc=`tooltip.open`,[$c,el]=qc(Xc),tl=e=>{let{__scopeTooltip:t,delayDuration:n=Zc,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=B.useRef(!0),s=B.useRef(!1),c=B.useRef(0);return B.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,V.jsx)($c,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:B.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:B.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:B.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};tl.displayName=Xc;var nl=`Tooltip`,[rl,il]=qc(nl),al=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=el(nl,e.__scopeTooltip),l=Yc(t),[u,d]=B.useState(null),p=f(),m=B.useRef(0),h=o??c.disableHoverableContent,g=s??c.delayDuration,_=B.useRef(!1),[v,y]=ne({prop:r,defaultProp:i??!1,onChange:e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(Qc))):c.onClose(),a?.(e)},caller:nl}),b=B.useMemo(()=>v?_.current?`delayed-open`:`instant-open`:`closed`,[v]),x=B.useCallback(()=>{window.clearTimeout(m.current),m.current=0,_.current=!1,y(!0)},[y]),S=B.useCallback(()=>{window.clearTimeout(m.current),m.current=0,y(!1)},[y]),C=B.useCallback(()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>{_.current=!0,y(!0),m.current=0},g)},[g,y]);return B.useEffect(()=>()=>{m.current&&=(window.clearTimeout(m.current),0)},[]),(0,V.jsx)(E,{...l,children:(0,V.jsx)(rl,{scope:t,contentId:p,open:v,stateAttribute:b,trigger:u,onTriggerChange:d,onTriggerEnter:B.useCallback(()=>{c.isOpenDelayedRef.current?C():x()},[c.isOpenDelayedRef,C,x]),onTriggerLeave:B.useCallback(()=>{h?S():(window.clearTimeout(m.current),m.current=0)},[S,h]),onOpen:x,onClose:S,disableHoverableContent:h,children:n})})};al.displayName=nl;var ol=`TooltipTrigger`,sl=B.forwardRef((e,t)=>{let{__scopeTooltip:n,...i}=e,a=il(ol,n),o=el(ol,n),s=Yc(n),c=r(t,B.useRef(null),a.onTriggerChange),l=B.useRef(!1),u=B.useRef(!1),d=B.useCallback(()=>l.current=!1,[]);return B.useEffect(()=>()=>document.removeEventListener(`pointerup`,d),[d]),(0,V.jsx)(O,{asChild:!0,...s,children:(0,V.jsx)(A.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...i,ref:c,onPointerMove:m(e.onPointerMove,e=>{e.pointerType!==`touch`&&!u.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),u.current=!0)}),onPointerLeave:m(e.onPointerLeave,()=>{a.onTriggerLeave(),u.current=!1}),onPointerDown:m(e.onPointerDown,()=>{a.open&&a.onClose(),l.current=!0,document.addEventListener(`pointerup`,d,{once:!0})}),onFocus:m(e.onFocus,()=>{l.current||a.onOpen()}),onBlur:m(e.onBlur,a.onClose),onClick:m(e.onClick,a.onClose)})})});sl.displayName=ol;var cl=`TooltipPortal`,[ll,ul]=qc(cl,{forceMount:void 0}),dl=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=il(cl,t);return(0,V.jsx)(ll,{scope:t,forceMount:n,children:(0,V.jsx)(jn,{present:n||a.open,children:(0,V.jsx)(_,{asChild:!0,container:i,children:r})})})};dl.displayName=cl;var fl=`TooltipContent`,pl=B.forwardRef((e,t)=>{let n=ul(fl,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=il(fl,e.__scopeTooltip);return(0,V.jsx)(jn,{present:r||o.open,children:o.disableHoverableContent?(0,V.jsx)(vl,{side:i,...a,ref:t}):(0,V.jsx)(ml,{side:i,...a,ref:t})})}),ml=B.forwardRef((e,t)=>{let n=il(fl,e.__scopeTooltip),i=el(fl,e.__scopeTooltip),a=B.useRef(null),o=r(t,a),[s,c]=B.useState(null),{trigger:l,onClose:u}=n,d=a.current,{onPointerInTransitChange:f}=i,p=B.useCallback(()=>{c(null),f(!1)},[f]),m=B.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=Sl(r,xl(r,n.getBoundingClientRect())),a=Cl(t.getBoundingClientRect());c(Tl([...i,...a])),f(!0)},[f]);return B.useEffect(()=>()=>p(),[p]),B.useEffect(()=>{if(l&&d){let e=e=>m(e,d),t=e=>m(e,l);return l.addEventListener(`pointerleave`,e),d.addEventListener(`pointerleave`,t),()=>{l.removeEventListener(`pointerleave`,e),d.removeEventListener(`pointerleave`,t)}}},[l,d,m,p]),B.useEffect(()=>{if(s){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=l?.contains(t)||d?.contains(t),i=!wl(n,s);r?p():i&&(p(),u())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[l,d,s,u,p]),(0,V.jsx)(vl,{...e,ref:o})}),[hl,gl]=qc(nl,{isInside:!1}),_l=l(`TooltipContent`),vl=B.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=il(fl,n),l=Yc(n),{onClose:u}=c;return B.useEffect(()=>(document.addEventListener(Qc,u),()=>document.removeEventListener(Qc,u)),[u]),B.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,V.jsx)(w,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:(0,V.jsxs)(p,{"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,V.jsx)(_l,{children:r}),(0,V.jsx)(hl,{scope:n,isInside:!0,children:(0,V.jsx)(ae,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});pl.displayName=fl;var yl=`TooltipArrow`,bl=B.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=Yc(n);return gl(yl,n).isInside?null:(0,V.jsx)(b,{...i,...r,ref:t})});bl.displayName=yl;function xl(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 Sl(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 Cl(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 wl(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 Tl(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),El(t)}function El(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 Dl=tl,Ol=al,kl=sl,Al=dl,jl=pl,Ml=bl;function Nl({delayDuration:e=0,...t}){return(0,V.jsx)(Dl,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function Pl({...e}){return(0,V.jsx)(Ol,{"data-slot":`tooltip`,...e})}function Fl({...e}){return(0,V.jsx)(kl,{"data-slot":`tooltip-trigger`,...e})}function Il({className:e,sideOffset:t=0,children:n,...r}){return(0,V.jsx)(Al,{children:(0,V.jsxs)(jl,{"data-slot":`tooltip-content`,sideOffset:t,className:L(`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,V.jsx)(Ml,{className:`z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground`})]})})}function Ll(e,t){let n=getComputedStyle(e);return t*parseFloat(n.fontSize)}function Rl(e,t){let n=getComputedStyle(e.ownerDocument.body);return t*parseFloat(n.fontSize)}function zl(e){return e/100*window.innerHeight}function Bl(e){return e/100*window.innerWidth}function W(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 G({groupSize:e,panelElement:t,styleProp:n}){let r,[i,a]=W(n);switch(a){case`%`:r=i/100*e;break;case`px`:r=i;break;case`rem`:r=Rl(t,i);break;case`em`:r=Ll(t,i);break;case`vh`:r=zl(i);break;case`vw`:r=Bl(i);break}return r}function K(e){return parseFloat(e.toFixed(3))}function q({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 J(e){let{panels:t}=e,n=q({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=K(G({groupSize:n,panelElement:t,styleProp:r.collapsedSize})/n*100));let a;r.defaultSize!==void 0&&(a=K(G({groupSize:n,panelElement:t,styleProp:r.defaultSize})/n*100));let o=0;r.minSize!==void 0&&(o=K(G({groupSize:n,panelElement:t,styleProp:r.minSize})/n*100));let s=100;return r.maxSize!==void 0&&(s=K(G({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 Y(e,t=`Assertion error`){if(!e)throw Error(t)}function Vl(e,t){return Array.from(t).sort(e===`horizontal`?Hl:Ul)}function Hl(e,t){let n=e.element.offsetLeft-t.element.offsetLeft;return n===0?e.element.offsetWidth-t.element.offsetWidth:n}function Ul(e,t){let n=e.element.offsetTop-t.element.offsetTop;return n===0?e.element.offsetHeight-t.element.offsetHeight:n}function Wl(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.ELEMENT_NODE}function Gl(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 Kl({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}=Gl(r,n),s=e===`horizontal`?t:o;s<a&&(a=s,i=n)}return Y(i,`No rect found`),i}var ql;function Jl(){return ql===void 0&&(ql=typeof matchMedia==`function`?!!matchMedia(`(pointer:coarse)`).matches:!1),ql}function Yl(e){let{element:t,orientation:n,panels:r,separators:i}=e,a=Vl(n,Array.from(t.children).filter(Wl).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,Kl({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=Jl()?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:q({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 Xl=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)}}},Zl=new Map,Ql=new Xl;function $l(e){Zl=new Map(Zl),Zl.delete(e)}function eu(e,t){for(let[t]of Zl)if(t.id===e)return t}function tu(e,t){for(let[t,n]of Zl)if(t.id===e)return n;if(t)throw Error(`Could not find data for Group with id ${e}`)}function nu(){return Zl}function ru(e,t){return Ql.addListener(`groupChange`,n=>{n.group.id===e&&t(n)})}function iu(e,t){let n=Zl.get(e);Zl=new Map(Zl),Zl.set(e,t),Ql.emit(`groupChange`,{group:e,prev:n,next:t})}function au(e,t,n){let r,i={x:1/0,y:1/0};for(let a of t){let t=Gl(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 ou(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function su(e,t){if(e===t)throw Error(`Cannot compare node with itself`);let n={a:pu(e),b:pu(t)},r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();Y(r,`Stacking order can only be calculated for elements with a common ancestor`);let i={a:fu(du(n.a)),b:fu(du(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 cu=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function lu(e){let t=getComputedStyle(mu(e)??e).display;return t===`flex`||t===`inline-flex`}function uu(e){let t=getComputedStyle(e);return!!(t.position===`fixed`||t.zIndex!==`auto`&&(t.position!==`static`||lu(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`||cu.test(t.willChange)||t.webkitOverflowScrolling===`touch`)}function du(e){let t=e.length;for(;t--;){let n=e[t];if(Y(n,`Missing node`),uu(n))return n}return null}function fu(e){return e&&Number(getComputedStyle(e).zIndex)||0}function pu(e){let t=[];for(;e;)t.push(e),e=mu(e);return t}function mu(e){let{parentNode:t}=e;return ou(t)?t.host:t}function hu(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 gu({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!Wl(n)||n.contains(e)||e.contains(n))return!0;if(su(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(hu(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function _u(e,t){let n=[];return t.forEach((t,r)=>{if(r.disabled)return;let i=Yl(r),a=au(r.orientation,i,{x:e.clientX,y:e.clientY});a&&a.distance.x<=0&&a.distance.y<=0&&gu({groupElement:r.element,hitRegion:a.hitRegion.rect,pointerEventTarget:e.target})&&n.push(a.hitRegion)}),n}function vu(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 yu(e,t,n=0){return Math.abs(K(e)-K(t))<=n}function bu(e,t){return yu(e,t)?0:e>t?1:-1}function xu({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(bu(r,c)<0)if(a){let e=(i+c)/2;r=bu(r,e)<0?i:c}else r=c;return r=Math.min(s,r),r=K(r),r}function Su({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:i,trigger:a}){if(yu(e,0))return t;let o=a===`imperative-api`,s=Object.values(t),c=Object.values(i),l=[...s],[u,d]=r;Y(u!=null,`Invalid first pivot index`),Y(d!=null,`Invalid second pivot index`);let f=0;switch(a){case`keyboard`:{let t=e<0?d:u,r=n[t];Y(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(Y(n!=null,`Previous layout not found for panel index ${t}`),yu(n,i)){let t=o-n;bu(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?u:d,r=n[t];Y(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(Y(n!=null,`Previous layout not found for panel index ${t}`),yu(n,o)){let t=n-i;bu(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}break;default:{let t=e<0?d:u,r=n[t];Y(r,`Panel constraints not found for index ${t}`);let i=s[t],{collapsible:a,collapsedSize:o,minSize:c}=r;if(a&&bu(i,c)<0)if(e>0){let t=c-o,n=t/2;bu(i+e,c)<0&&(e=bu(e,n)<=0?0:t)}else{let t=c-o,n=100-t/2;bu(i-e,c)<0&&(e=bu(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];Y(e!=null,`Previous layout not found for panel index ${r}`);let a=xu({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];Y(i!=null,`Previous layout not found for panel index ${t}`);let a=i-r,c=xu({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:i,size:a});if(!yu(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(vu(c,l))return i;{let t=e<0?d:u,r=s[t];Y(r!=null,`Previous layout not found for panel index ${t}`);let i=r+f,a=xu({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:r,size:i});if(l[t]=a,!yu(a,i)){let t=i-a,r=e<0?d:u;for(;r>=0&&r<n.length;){let i=l[r];Y(i!=null,`Previous layout not found for panel index ${r}`);let a=i+t,s=xu({overrideDisabledPanels:o,panelConstraints:n[r],prevSize:i,size:a});if(yu(i,s)||(t-=s-i,l[r]=s),yu(t,0))break;e>0?r--:r++}}}if(!yu(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 Cu(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(t[n]===void 0||bu(e[n],t[n])!==0)return!1;return!0}function wu({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(!yu(i,100)&&r.length>0)for(let e=0;e<t.length;e++){let t=r[e];Y(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];Y(i!=null,`No layout data found for index ${e}`);let o=r[e];Y(o!=null,`No layout data found for index ${e}`);let s=xu({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:i,size:o});o!=s&&(a+=o-s,r[e]=s)}if(!yu(a,0))for(let e=0;e<t.length;e++){let n=r[e];Y(n!=null,`No layout data found for index ${e}`);let i=n+a,o=xu({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:n,size:i});if(n!==o&&(a-=o-n,r[e]=o,yu(a,0)))break}let o=Object.keys(e);return r.reduce((e,t,n)=>(e[o[n]]=t,e),{})}function Tu({groupId:e,panelId:t}){let n=()=>{let t=nu();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=wu({layout:Su({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});Cu(l,p)||iu(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&&yu(t,n)},resize:e=>{let{group:t}=n(),{element:r}=i(),a=q({group:t});o(K(G({groupSize:a,panelElement:r,styleProp:e})/a*100))}}}function Eu(e){e.defaultPrevented||_u(e,nu()).forEach(t=>{if(t.separator){let n=t.panels.find(e=>e.panelConstraints.defaultSize!==void 0);if(n){let r=n.panelConstraints.defaultSize,i=Tu({groupId:t.group.id,panelId:n.id});i&&r!==void 0&&(i.resize(r),e.preventDefault())}}})}function Du(e){let t=nu();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 Ou({groupId:e}){let t=()=>{let t=nu();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=wu({layout:e,panelConstraints:r});return n?o:(Cu(o,c)||iu(i,{defaultLayoutDeferred:n,derivedPanelConstraints:r,groupSize:a,layout:c,separatorToPanels:s}),c)}}}function ku(e,t){let n=Du(e),r=tu(n.id,!0),i=n.separators.find(t=>t.element===e);Y(i,`Matching separator not found`);let a=r.separatorToPanels.get(i);Y(a,`Matching panels not found`);let o=a.map(e=>n.panels.indexOf(e)),s=Ou({groupId:n.id}).getLayout(),c=wu({layout:Su({delta:t,initialLayout:s,panelConstraints:r.derivedPanelConstraints,pivotIndices:o,prevLayout:s,trigger:`keyboard`}),panelConstraints:r.derivedPanelConstraints});Cu(s,c)||iu(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedPanelConstraints:r.derivedPanelConstraints,groupSize:r.groupSize,layout:c,separatorToPanels:r.separatorToPanels})}function Au(e){if(e.defaultPrevented)return;let t=e.currentTarget,n=Du(t);if(!n.disabled)switch(e.key){case`ArrowDown`:e.preventDefault(),n.orientation===`vertical`&&ku(t,5);break;case`ArrowLeft`:e.preventDefault(),n.orientation===`horizontal`&&ku(t,-5);break;case`ArrowRight`:e.preventDefault(),n.orientation===`horizontal`&&ku(t,5);break;case`ArrowUp`:e.preventDefault(),n.orientation===`vertical`&&ku(t,-5);break;case`End`:e.preventDefault(),ku(t,100);break;case`Enter`:{e.preventDefault();let n=Du(t),{derivedPanelConstraints:r,layout:i,separatorToPanels:a}=tu(n.id,!0),o=n.separators.find(e=>e.element===t);Y(o,`Matching separator not found`);let s=a.get(o);Y(s,`Matching panels not found`);let c=s[0],l=r.find(e=>e.panelId===c.id);if(Y(l,`Panel metadata not found`),l.collapsible){let e=i[c.id];ku(t,(l.collapsedSize===e?n.mutableState.expandedPanelSizes[c.id]??l.minSize:l.collapsedSize)-e)}break}case`F6`:{e.preventDefault();let n=Du(t).separators.map(e=>e.element),r=Array.from(n).findIndex(t=>t===e.currentTarget);Y(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(),ku(t,-100);break}}var ju={cursorFlags:0,state:`inactive`},Mu=new Xl;function Nu(){return ju}function Pu(e){return Mu.addListener(`change`,e)}function Fu(e){let t=ju,n={...ju};n.cursorFlags=e,ju=n,Mu.emit(`change`,{prev:t,next:n})}function Iu(e){let t=ju;ju=e,Mu.emit(`change`,{prev:t,next:e})}function Lu(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=nu(),n=_u(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)}),Iu({cursorFlags:0,hitRegions:n,initialLayoutMap:r,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:`active`}),n.length&&e.preventDefault()}var Ru=e=>e,zu=()=>{},Bu=1,Vu=2,Hu=4,Uu=8,Wu=3,Gu=12,X;function Ku(){return X===void 0&&(X=!1,typeof window<`u`&&(window.navigator.userAgent.includes(`Chrome`)||window.navigator.userAgent.includes(`Firefox`))&&(X=!0)),X}function qu({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&&Ku()){let t=(e&Bu)!==0,n=(e&Vu)!==0,r=(e&Hu)!==0,i=(e&Uu)!==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 Ku()?r>0&&i>0?`move`:r>0?`ew-resize`:`ns-resize`:r>0&&i>0?`grab`:r>0?`col-resize`:`row-resize`}}var Ju=new WeakMap;function Yu(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Ju.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));let r=Nu();switch(r.state){case`active`:case`hover`:{let e=qu({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}Ju.set(e,{prevStyle:t,styleSheet:n})}function Xu({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=Su({delta:d,initialLayout:f,panelConstraints:h,pivotIndices:e.panels.map(e=>l.indexOf(e)),prevLayout:_,trigger:`mouse-or-touch`});if(Cu(t,_)){if(d!==0&&!u)switch(c){case`horizontal`:s|=d<0?Bu:Vu;break;case`vertical`:s|=d<0?Hu:Uu;break}}else iu(e.group,{defaultLayoutDeferred:m,derivedPanelConstraints:h,groupSize:g,layout:t,separatorToPanels:v})}});let c=0;t.movementX===0?c|=o&Wu:c|=s&Wu,t.movementY===0?c|=o&Gu:c|=s&Gu,Fu(c),Yu(e)}function Zu(e){let t=nu(),n=Nu();switch(n.state){case`active`:Xu({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function Qu(e){if(e.defaultPrevented)return;let t=Nu(),n=nu();switch(t.state){case`active`:if(e.buttons===0){Iu({cursorFlags:0,state:`inactive`}),t.hitRegions.forEach(e=>{let t=tu(e.group.id,!0);iu(e.group,t)});return}Xu({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break;default:{let r=_u(e,n);r.length===0?t.state!==`inactive`&&Iu({cursorFlags:0,state:`inactive`}):Iu({cursorFlags:0,hitRegions:r,state:`hover`}),Yu(e.currentTarget);break}}}function $u(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(Nu().state){case`hover`:Iu({cursorFlags:0,state:`inactive`})}}function ed(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=Nu();switch(t.state){case`active`:Iu({cursorFlags:0,state:`inactive`}),t.hitRegions.length>0&&(Yu(e.currentTarget),t.hitRegions.forEach(e=>{let t=tu(e.group.id,!0);iu(e.group,t)}),e.preventDefault())}}function td(e){let t=0,n=0,r={};for(let i of e)if(i.defaultSize!==void 0){t++;let e=K(i.defaultSize);n+=e,r[i.panelId]=e}else r[i.panelId]=void 0;let i=e.length-t;if(i!==0){let t=K((100-n)/i);for(let n of e)n.defaultSize===void 0&&(r[n.panelId]=t)}return r}function nd(e,t,n){if(!n[0])return;let r=e.panels.find(e=>e.element===t);if(!r||!r.onResize)return;let i=q({group:e}),a=e.orientation===`horizontal`?r.element.offsetWidth:r.element.offsetHeight,o=r.mutableValues.prevSize,s={asPercentage:K(a/i*100),inPixels:a};r.mutableValues.prevSize=s,r.onResize(s,r.id,o)}function rd(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 id({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=K(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]=K((r[e]??0)/a*l);else{let e=K(l/c.length);for(let t of c)u[t]=e}return u}function ad(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 od=new Map;function sd(e){let t=!0;Y(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=q({group:e});if(t===0)return;let n=tu(e.id);if(!n)return;let r=J(e),i=n.defaultLayoutDeferred?td(r):n.layout,a=wu({layout:id({group:e,nextGroupSize:t,prevGroupSize:n.groupSize,prevLayout:i}),panelConstraints:r});if(!n.defaultLayoutDeferred&&Cu(n.layout,a)&&rd(n.derivedPanelConstraints,r)&&n.groupSize===t)return;iu(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,groupSize:t,layout:a,separatorToPanels:n.separatorToPanels})}}else nd(e,i,n)}});a.observe(e.element),e.panels.forEach(e=>{Y(!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=q({group:e}),s=J(e),c=e.panels.map(({id:e})=>e).join(`,`),l=e.mutableState.defaultLayout;l&&(ad(e.panels,l)||(l=void 0));let u=wu({layout:e.mutableState.layouts[c]??l??td(s),panelConstraints:s}),d=e.element.ownerDocument;od.set(d,(od.get(d)??0)+1);let f=new Map;return Yl(e).forEach(e=>{e.separator&&f.set(e.separator,e.panels)}),iu(e,{defaultLayoutDeferred:o===0,derivedPanelConstraints:s,groupSize:o,layout:u,separatorToPanels:f}),e.separators.forEach(e=>{Y(!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`,Au)}),od.get(d)===1&&(d.addEventListener(`dblclick`,Eu,!0),d.addEventListener(`pointerdown`,Lu,!0),d.addEventListener(`pointerleave`,Zu),d.addEventListener(`pointermove`,Qu),d.addEventListener(`pointerout`,$u),d.addEventListener(`pointerup`,ed,!0)),function(){t=!1,od.set(d,Math.max(0,(od.get(d)??0)-1)),$l(e),e.separators.forEach(e=>{e.element.removeEventListener(`keydown`,Au)}),od.get(d)||(d.removeEventListener(`dblclick`,Eu,!0),d.removeEventListener(`pointerdown`,Lu,!0),d.removeEventListener(`pointerleave`,Zu),d.removeEventListener(`pointermove`,Qu),d.removeEventListener(`pointerout`,$u),d.removeEventListener(`pointerup`,ed,!0)),a.disconnect()}}function cd(){let[e,t]=(0,B.useState)({});return[e,(0,B.useCallback)(()=>t({}),[])]}function ld(e){let t=(0,B.useId)();return`${e??t}`}var ud=typeof window<`u`?B.useLayoutEffect:B.useEffect;function dd(e){let t=(0,B.useRef)(e);return ud(()=>{t.current=e},[e]),(0,B.useCallback)((...e)=>t.current?.(...e),[t])}function fd(...e){return dd(t=>{e.forEach(e=>{if(e)switch(typeof e){case`function`:e(t);break;case`object`:e.current=t;break}})})}function pd(e){let t=(0,B.useRef)({...e});return ud(()=>{for(let n in e)t.current[n]=e[n]},[e]),t.current}var md=(0,B.createContext)(null);function hd(e,t){let n=(0,B.useRef)({getLayout:()=>({}),setLayout:Ru});(0,B.useImperativeHandle)(t,()=>n.current,[]),ud(()=>{Object.assign(n.current,Ou({groupId:e}))})}function gd({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,B.useRef)({onLayoutChange:{},onLayoutChanged:{}}),h=dd(e=>{Cu(m.current.onLayoutChange,e)||(m.current.onLayoutChange=e,c?.(e))}),g=dd(e=>{Cu(m.current.onLayoutChanged,e)||(m.current.onLayoutChanged=e,l?.(e))}),_=ld(s),v=(0,B.useRef)(null),[y,b]=cd(),x=(0,B.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:d,separators:[]}),S=fd(v,a);hd(_,o);let C=dd((e,t)=>{let r=Nu(),i=eu(e),a=tu(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=pd({defaultLayout:n,disableCursor:r}),T=(0,B.useMemo)(()=>({get disableCursor(){return!!w.disableCursor},getPanelStyles:C,id:_,orientation:u,registerPanel:e=>{let t=x.current;return t.panels=Vl(u,[...t.panels,e]),b(),()=>{t.panels=t.panels.filter(t=>t!==e),b()}},registerSeparator:e=>{let t=x.current;return t.separators=Vl(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=eu(_),i=tu(_);r&&i&&iu(r,{...i,derivedPanelConstraints:J(r)})},toggleSeparatorDisabled:(e,t)=>{let n=x.current.separators.find(t=>t.id===e);n&&(n.disabled=t)}}),[C,_,b,u,w]),E=(0,B.useRef)(null);return ud(()=>{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=sd(r),{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:c}=tu(r.id,!0);!o&&s.length>0&&(h(c),g(c));let l=ru(_,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=yu(t.collapsedSize,i[t.panelId]),a=yu(t.collapsedSize,n[t.panelId]);e&&!a&&(r.mutableState.expandedPanelSizes[t.panelId]=n[t.panelId])}}});let o=Nu().state!==`active`;h(i),o&&g(i)});return()=>{E.current=null,a(),l()}},[i,_,g,h,u,y,w]),(0,B.useEffect)(()=>{let e=E.current;e&&(e.mutableState.defaultLayout=n,e.mutableState.disableCursor=!!r)}),(0,V.jsx)(md.Provider,{value:T,children:(0,V.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})})}gd.displayName=`Group`;function _d(){let e=(0,B.useContext)(md);return Y(e,`Group Context not found; did you render a Panel or Separator outside of a Group?`),e}function vd(e,t){let{id:n}=_d(),r=(0,B.useRef)({collapse:zu,expand:zu,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:zu});(0,B.useImperativeHandle)(t,()=>r.current,[]),ud(()=>{Object.assign(r.current,Tu({groupId:n,panelId:e}))})}function yd({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=ld(c),_=pd({disabled:a}),v=(0,B.useRef)(null),y=fd(v,o),{getPanelStyles:b,id:x,orientation:S,registerPanel:C,togglePanelDisabled:w}=_d(),T=d!==null,E=dd((e,t,n)=>{d?.(e,c,n)});ud(()=>{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,B.useEffect)(()=>{w(g,!!a)},[a,g,w]),vd(g,f);let D=(0,B.useSyncExternalStore)(e=>ru(x,e),()=>JSON.stringify(b(x,g)),()=>JSON.stringify(b(x,g)));return(0,V.jsx)(`div`,{...m,"aria-disabled":a||void 0,"data-panel":!0,"data-testid":g,id:g,ref:y,style:{...bd,display:`flex`,flexBasis:0,flexShrink:1,overflow:`visible`,...JSON.parse(D)},children:(0,V.jsx)(`div`,{className:t,style:{maxHeight:`100%`,maxWidth:`100%`,flexGrow:1,overflow:`auto`,...p,touchAction:S===`horizontal`?`pan-y`:`pan-x`},children:e})})}yd.displayName=`Panel`;var bd={minHeight:0,maxHeight:`100%`,height:`auto`,minWidth:0,maxWidth:`100%`,width:`auto`,border:`none`,borderWidth:0,padding:0,margin:0};function Z({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=wu({layout:Su({delta:l-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n],i=wu({layout:Su({delta:c-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:a,valueNow:o}}function xd({children:e,className:t,disabled:n,elementRef:r,id:i,style:a,...o}){let s=ld(i),c=pd({disabled:n}),[l,u]=(0,B.useState)({}),[d,f]=(0,B.useState)(`inactive`),p=(0,B.useRef)(null),m=fd(p,r),{disableCursor:h,id:g,orientation:_,registerSeparator:v,toggleSeparatorDisabled:y}=_d(),b=_===`horizontal`?`vertical`:`horizontal`;ud(()=>{let e=p.current;if(e!==null){let t={disabled:c.disabled,element:e,id:s},n=v(t),r=Pu(e=>{f(e.next.state!==`inactive`&&e.next.hitRegions.some(e=>e.separator===t)?e.next.state:`inactive`)}),i=ru(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(Z({layout:r,panelConstraints:n,panelId:e.id,panelIndex:t}))}});return()=>{r(),i(),n()}}},[g,s,v,c]),(0,B.useEffect)(()=>{y(s,!!n)},[n,s,y]);let x;return n&&!h&&(x=`not-allowed`),(0,V.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})}xd.displayName=`Separator`;var Sd=`ppm-custom-order`;function Cd(){try{let e=localStorage.getItem(Sd);return e?JSON.parse(e):null}catch{return null}}function wd(e){try{localStorage.setItem(Sd,JSON.stringify(e))}catch{}}function Td(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 Ed=Oe((e,t)=>({projects:[],activeProject:null,customOrder:Cd(),loading:!1,error:null,fetchProjects:async()=>{e({loading:!0,error:null});try{e({projects:await R.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 R.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 R.patch(`/api/projects/${encodeURIComponent(e)}/color`,{color:n}),await t().fetchProjects()},moveProject:async(n,r)=>{let{projects:i,customOrder:a}=t(),o=Td(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]],wd(l),await R.patch(`/api/projects/reorder`,{order:l}),e({customOrder:l})},reorderProjects:async t=>{wd(t),e({customOrder:t}),await R.patch(`/api/projects/reorder`,{order:t}).catch(()=>{})},renameProject:async(e,n)=>{await R.patch(`/api/projects/${encodeURIComponent(e)}`,{name:n}),await t().fetchProjects()},deleteProject:async t=>{await R.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&&wd(r),{projects:n,customOrder:r,activeProject:e.activeProject?.name===t?n[0]??null:e.activeProject}})}})),Dd=`application/ppm-tab`,Od=!1,kd=new Set;function Ad(e){Od!==e&&(Od=e,kd.forEach(e=>e()))}function jd(){return(0,B.useSyncExternalStore)(e=>(kd.add(e),()=>kd.delete(e)),()=>Od)}function Md(){Ad(!1)}function Nd(e){let[t,n]=(0,B.useState)(null),r=(0,B.useRef)(null);return{dropIndex:t,handleDragStart:(0,B.useCallback)((t,n)=>{let r={tabId:n,panelId:e};t.dataTransfer.setData(Dd,JSON.stringify(r)),t.dataTransfer.effectAllowed=`move`,requestAnimationFrame(()=>Ad(!0))},[e]),handleDragOver:(0,B.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,B.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`)},[]),handleDrop:(0,B.useCallback)(i=>{i.preventDefault(),Ad(!1);let a=i.dataTransfer.getData(Dd);if(a){try{let n=JSON.parse(a),r=P.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,B.useCallback)(()=>{Ad(!1),n(null),r.current=null},[])}}var Q=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),Pd=[{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+Shift+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+Shift+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`},...Array.from({length:9},(e,t)=>({id:`switch-project-${t+1}`,label:`Switch to Project ${t+1}`,category:`projects`,defaultKey:`Mod+${t+1}`}))],Fd=new Map(Pd.map(e=>[e.id,e.defaultKey]));function Id(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`:Q?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 Ld(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 Rd(e){return e.replace(/Mod/g,Q?`⌘`:`Ctrl`).replace(/Shift/g,Q?`⇧`:`Shift`).replace(/Alt/g,Q?`⌥`:`Alt`).replace(/Meta|Cmd/g,`⌘`).replace(/Ctrl/g,Q?`⌃`:`Ctrl`)}function zd(e){if([`Control`,`Meta`,`Alt`,`Shift`].includes(e.key))return null;let t=[];e.ctrlKey&&!e.metaKey&&t.push(Q?`Ctrl`:`Mod`),e.metaKey&&t.push(Q?`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 Bd=Oe((e,t)=>({overrides:{},loaded:!1,getBinding:e=>t().overrides[e]??Fd.get(e)??``,matchesEvent:(e,n)=>{let r=t().getBinding(n);return r?Ld(e,Id(r)):!1},setBinding:(n,r)=>{e({overrides:{...t().overrides,[n]:r}}),R.put(`/api/settings/keybindings`,{[n]:r}).catch(()=>{})},resetBinding:n=>{let r={...t().overrides};delete r[n],e({overrides:r}),R.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&&R.put(`/api/settings/keybindings`,n).catch(()=>{})},loadFromServer:async()=>{try{e({overrides:await R.get(`/api/settings/keybindings`),loaded:!0})}catch{e({loaded:!0})}}}));function Vd(e){window.dispatchEvent(new CustomEvent(`open-command-palette`,{detail:e}))}function Hd(){let[e,t]=(0,B.useState)(!1),[n,r]=(0,B.useState)(``);return(0,B.useEffect)(()=>{let e=0,{matchesEvent:n}=Bd.getState();function i(n){if(n.type===`keyup`&&n.key===`Shift`&&!n.ctrlKey&&!n.metaKey&&!n.altKey){let n=Date.now();if(n-e<400){e=0,r(``),t(!0);return}e=n;return}if(n.type!==`keydown`)return;let{matchesEvent:i}=Bd.getState();if(i(n,`save-prevent`)){n.preventDefault();return}if(i(n,`command-palette`)){n.preventDefault(),r(``),t(!0);return}if(i(n,`toggle-sidebar`)){n.preventDefault(),I.getState().toggleSidebar();return}if(i(n,`next-tab`)||i(n,`prev-tab`)){n.preventDefault();let{tabs:e,activeTabId:t,setActiveTab:r}=F.getState();if(e.length<2)return;let a=e.findIndex(e=>e.id===t);r(e[i(n,`next-tab`)?(a+1)%e.length:(a-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(i(n,e.action)){n.preventDefault();let t=Ed.getState().activeProject;F.getState().openTab({type:e.type,title:e.title,projectId:t?.name??null,metadata:t?{projectName:t.name}:void 0,closable:!0});return}if(i(n,`open-settings`)){n.preventDefault();let e=I.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`settings`);return}if(i(n,`open-git-status`)){n.preventDefault();let e=I.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`git`);return}if(i(n,`open-search`)){n.preventDefault();let e=I.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`search`);return}for(let e=1;e<=9;e++)if(i(n,`switch-project-${e}`)){n.preventDefault();let t=Ed.getState().projects[e-1];t&&(Ed.getState().setActiveProject(t),F.getState().switchProject(t.name));return}}function a(e){let n=e.detail;r(typeof n==`string`?n:``),t(!0)}return window.addEventListener(`keydown`,i),window.addEventListener(`keyup`,i),window.addEventListener(`open-command-palette`,a),()=>{window.removeEventListener(`keydown`,i),window.removeEventListener(`keyup`,i),window.removeEventListener(`open-command-palette`,a)}},[]),{paletteOpen:e,paletteInitialQuery:n,closePalette:(0,B.useCallback)(()=>{t(!1),r(``)},[])}}var Ud={approval_request:`bg-red-500`,question:`bg-amber-500`,done:`bg-blue-500`},Wd={done:0,question:1,approval_request:2};function Gd(e){return e&&Ud[e]||`bg-red-500`}var Kd=Oe()(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 qd(e){let t=0;for(let[,n]of e.notifications)t+=n.count;return t}function Jd(e){return t=>{let n=null,r=-1;for(let[,i]of t.notifications){if(i.projectName!==e)continue;let t=Wd[i.type]??0;t>r&&(r=t,n=i.type)}return n}}function Yd(e){let[t,n]=(0,B.useState)(!1),[r,i]=(0,B.useState)(!1),a=(0,B.useCallback)(()=>{let t=e.current;t&&(n(t.scrollLeft>1),i(t.scrollLeft+t.clientWidth<t.scrollWidth-1))},[e]);return(0,B.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,B.useCallback)(()=>{e.current?.scrollBy({left:-150,behavior:`smooth`})},[e]),scrollRight:(0,B.useCallback)(()=>{e.current?.scrollBy({left:150,behavior:`smooth`})},[e])}}var Xd={done:0,question:1,approval_request:2};function Zd(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,_=Xd[f.type]??0;g<=i&&_>s&&(s=_,o=f.type),h>=a&&_>l&&(l=_,c=f.type)}return{left:o,right:c}}function Qd(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 $d(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 ef(e){let t=Qd(e);return t?$d(t.r,t.g,t.b)<.4:!1}function tf({tab:e,isActive:t,icon:n,showDropBefore:r,notificationType:i,onSelect:a,onClose:o,onDragStart:s,onDragOver:c,onDragEnd:l,tabRef:u,onRename:d}){let[f,p]=(0,B.useState)(!1),[m,h]=(0,B.useState)(e.title),g=(0,B.useRef)(null);(0,B.useEffect)(()=>{f&&(h(e.title),setTimeout(()=>g.current?.select(),0))},[f]);let _=()=>{p(!1);let t=m.trim();t&&t!==e.title&&d&&d(t)},v=e.metadata?.connectionColor,y=v?{backgroundColor:t?v:`${v}33`,color:t&&ef(v)?`#fff`:void 0}:void 0;return(0,V.jsxs)(`div`,{className:`relative flex items-center`,children:[r&&(0,V.jsx)(`div`,{className:`absolute left-0 top-1 bottom-1 w-0.5 bg-primary rounded-full z-10`}),(0,V.jsxs)(`button`,{ref:u,"data-tab-item":!0,draggable:!f,onClick:a,onAuxClick:t=>{t.button===1&&e.closable&&(t.preventDefault(),o())},onDragStart:s,onDragOver:c,onDragEnd:l,style:y,className:L(`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`,!y&&(t?`border-primary text-primary`:`border-transparent text-text-secondary hover:text-foreground`),y&&`border-transparent`),children:[(0,V.jsxs)(`span`,{className:`relative`,children:[(0,V.jsx)(n,{className:`size-4`}),i&&!t&&(0,V.jsx)(`span`,{className:L(`absolute -top-1 -right-1 size-2 rounded-full`,Gd(i))})]}),f?(0,V.jsx)(`input`,{ref:g,value:m,onChange:e=>h(e.target.value),onBlur:_,onKeyDown:e=>{e.key===`Enter`&&_(),e.key===`Escape`&&p(!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,V.jsx)(`span`,{className:`max-w-[120px] truncate`,onDoubleClick:e=>{d&&(e.stopPropagation(),p(!0))},children:e.title}),e.closable&&!f&&(0,V.jsx)(`span`,{role:`button`,tabIndex:0,onClick:e=>{e.stopPropagation(),o()},onKeyDown:e=>{e.key===`Enter`&&(e.stopPropagation(),o())},className:`ml-1 opacity-0 group-hover:opacity-100 rounded-sm hover:bg-surface-elevated p-0.5 transition-opacity`,children:(0,V.jsx)(x,{className:`size-3`})})]})]})}var nf={terminal:Wt,chat:wt,editor:z,database:et,sqlite:et,postgres:et,"git-graph":pt,"git-diff":ot,settings:Bt};function rf({panelId:e}){Ed(e=>e.activeProject);let t=(0,B.useRef)(new Map),n=(0,B.useRef)(null),r=(0,B.useRef)(0),i=P(t=>e?t.panels[e]:t.panels[t.focusedPanelId]),a=i?.tabs??[],o=i?.activeTabId??null,s=i?.id??P.getState().focusedPanelId,{dropIndex:c,handleDragStart:l,handleDragOver:u,handleDragOverBar:d,handleDrop:f,handleDragEnd:p}=Nd(s),m=Kd(e=>e.notifications),{canScrollLeft:h,canScrollRight:g,scrollLeft:_,scrollRight:v}=Yd(n),y=Zd(n.current,t.current,a,m);(0,B.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 b=(0,B.useCallback)((e,t)=>{F.getState().updateTab(e.id,{title:t});let n=e.metadata?.projectName,r=e.metadata?.sessionId;n&&r&&R.patch(`${Ne(n)}/chat/sessions/${r}`,{title:t}).catch(()=>{})},[]);function x(e){e.target.closest(`[data-tab-item]`)||Vd()}function S(e){e.target.closest(`[data-tab-item]`)||(e.preventDefault(),Vd())}return(0,V.jsxs)(`div`,{className:`hidden md:flex items-center h-10 border-b border-border bg-background relative`,onDragOver:d,onDrop:f,onDoubleClick:x,onContextMenu:S,children:[h&&(0,V.jsx)(`button`,{onClick:_,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,V.jsxs)(`span`,{className:`relative`,children:[(0,V.jsx)(Ke,{className:`size-4 text-text-secondary`}),y.left&&(0,V.jsx)(`span`,{className:L(`absolute -top-1 -right-0.5 size-2 rounded-full`,Gd(y.left))})]})}),(0,V.jsx)(`div`,{ref:n,className:`flex-1 overflow-x-auto overflow-y-hidden min-w-0 scrollbar-none`,children:(0,V.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?m.get(r):void 0,a=i&&i.count>0?i.type:null;return(0,V.jsx)(tf,{tab:e,isActive:e.id===o,icon:nf[e.type],showDropBefore:c===n,notificationType:a,onSelect:()=>{P.getState().setActiveTab(e.id,s),r&&Kd.getState().clearForSession(r)},onClose:()=>P.getState().closeTab(e.id,s),onDragStart:t=>l(t,e.id),onDragOver:t=>u(t,e.id,n),onDragEnd:p,tabRef:n=>{n?t.current.set(e.id,n):t.current.delete(e.id)},onRename:e.type===`chat`?t=>b(e,t):void 0},e.id)}),c!==null&&c>=a.length&&(0,V.jsx)(`div`,{className:`w-0.5 h-6 bg-primary rounded-full`}),(0,V.jsx)(`button`,{onClick:()=>Vd(),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,V.jsx)(Pt,{className:`size-4`})})]})}),g&&(0,V.jsx)(`button`,{onClick:v,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,V.jsxs)(`span`,{className:`relative`,children:[(0,V.jsx)(qe,{className:`size-4 text-text-secondary`}),y.right&&(0,V.jsx)(`span`,{className:L(`absolute -top-1 -left-0.5 size-2 rounded-full`,Gd(y.right))})]})})]})}function af({panelId:e}){let[t,n]=(0,B.useState)(null),r=jd(),i=P(e=>e.grid),a=P(e=>e.isMobile()),o=De(i,e),s=!a&&i.length<3,c=o?!a&&(i[o.row]?.length??0)<Ee(!1):!1,l=(0,B.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&&c?`left`:n>1-i&&c?`right`:r<i&&s?`top`:r>1-i&&s?`bottom`:`center`},[c,s]),u=(0,B.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.stopPropagation(),n(l(e)))},[l]),d=(0,B.useCallback)(e=>{e.currentTarget.contains(e.relatedTarget)||n(null)},[]),f=(0,B.useCallback)(t=>{t.preventDefault(),t.stopPropagation();let r=l(t);if(n(null),Md(),!r)return;let i=t.dataTransfer.getData(Dd);if(i)try{let t=JSON.parse(i),n=P.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{}},[l,e]);return r?(0,V.jsxs)(`div`,{className:`absolute inset-0 z-20`,onDragOver:u,onDragLeave:d,onDrop:f,children:[t===`left`&&(0,V.jsx)(`div`,{className:`absolute inset-y-0 left-0 w-1/3 bg-primary/10 border-2 border-primary/30 rounded-l-md`}),t===`right`&&(0,V.jsx)(`div`,{className:`absolute inset-y-0 right-0 w-1/3 bg-primary/10 border-2 border-primary/30 rounded-r-md`}),t===`top`&&(0,V.jsx)(`div`,{className:`absolute inset-x-0 top-0 h-1/3 bg-primary/10 border-2 border-primary/30 rounded-t-md`}),t===`bottom`&&(0,V.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 h-1/3 bg-primary/10 border-2 border-primary/30 rounded-b-md`}),t===`center`&&(0,V.jsx)(`div`,{className:`absolute inset-0 bg-primary/5 border-2 border-dashed border-primary/30 rounded-md`})]}):null}var of=`modulepreload`,sf=function(e){return`/`+e},cf={},lf=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=sf(t,n),t in cf)return;cf[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:of,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},uf=[{type:`terminal`,label:`Terminal`,icon:Wt},{type:`chat`,label:`AI Chat`,icon:wt},{type:`git-graph`,label:`Git Graph`,icon:pt}],df={terminal:(0,B.lazy)(()=>lf(()=>import(`./terminal-tab-DZaF62V1.js`).then(e=>({default:e.TerminalTab})),__vite__mapDeps([0,1,2,3,4,5,6]))),chat:(0,B.lazy)(()=>lf(()=>import(`./chat-tab-CMBHi9uq.js`).then(e=>({default:e.ChatTab})),__vite__mapDeps([7,1,8,2,3,9,10,11,12,5,13,4]))),editor:(0,B.lazy)(()=>lf(()=>import(`./code-editor-SU4Nfh2K.js`).then(e=>({default:e.CodeEditor})),__vite__mapDeps([14,1,15,4,5,2,3,12,13,10]))),database:(0,B.lazy)(()=>lf(()=>import(`./database-viewer-Dg4ohCfA.js`).then(e=>({default:e.DatabaseViewer})),__vite__mapDeps([16,1,17,3,10]))),sqlite:(0,B.lazy)(()=>lf(()=>import(`./sqlite-viewer-C9lMdBbX.js`).then(e=>({default:e.SqliteViewer})),__vite__mapDeps([18,1,17,3,19,10]))),postgres:(0,B.lazy)(()=>lf(()=>import(`./postgres-viewer-CqG795AK.js`).then(e=>({default:e.PostgresViewer})),__vite__mapDeps([20,1,17,3,19,10]))),"git-graph":(0,B.lazy)(()=>lf(()=>import(`./git-graph-BS7u6nZh.js`).then(e=>({default:e.GitGraph})),__vite__mapDeps([21,1,8,2,3,12,5,10]))),"git-diff":(0,B.lazy)(()=>lf(()=>import(`./diff-viewer-DnlJFC01.js`).then(e=>({default:e.DiffViewer})),__vite__mapDeps([22,1,15,4,5,3,11,10]))),settings:(0,B.lazy)(()=>lf(()=>import(`./settings-tab-Beh31IHk.js`).then(e=>({default:e.SettingsTab})),__vite__mapDeps([23,1,8,2,3,9,10,4,5])))};function ff({panelId:e,projectName:t}){let n=P(t=>t.panels[e]),r=P(t=>t.focusedPanelId===e),i=P(e=>(e.currentProject===t?e.grid:e.projectGrids[t]??[[]]).flat().length);return n?(0,V.jsxs)(`div`,{className:L(`flex flex-col h-full overflow-hidden`,i>1&&`border border-transparent`,i>1&&r&&`border-primary/30`),onMouseDown:()=>{P.getState().focusedPanelId!==e&&P.getState().setFocusedPanel(e)},children:[(0,V.jsx)(rf,{panelId:e}),(0,V.jsxs)(`div`,{className:`flex-1 overflow-hidden relative`,children:[n.tabs.length===0?(0,V.jsx)(pf,{panelId:e}):n.tabs.map(e=>{let t=df[e.type];return(0,V.jsx)(`div`,{className:e.id===n.activeTabId?`h-full w-full`:`hidden`,children:(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,V.jsx)(xt,{className:`size-6 animate-spin text-primary`})}),children:(0,V.jsx)(t,{metadata:e.metadata,tabId:e.id})})},e.id)}),(0,V.jsx)(af,{panelId:e})]})]}):null}function pf({panelId:e}){let t=Ed(e=>e.activeProject);function n(n){let r=n!==`settings`&&t?{projectName:t.name}:void 0;P.getState().openTab({type:n,title:uf.find(e=>e.type===n)?.label??n,metadata:r,projectId:t?.name??null,closable:!0},e)}return(0,V.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-4 text-text-secondary`,children:[(0,V.jsx)(`p`,{className:`text-sm`,children:`Open a tab to get started`}),(0,V.jsx)(`div`,{className:`flex flex-col md:flex-row flex-wrap justify-center gap-2`,children:uf.map(e=>{let t=e.icon;return(0,V.jsxs)(`button`,{onClick:()=>n(e.type),className:`flex items-center gap-2 px-4 py-2 rounded-md border border-border bg-surface hover:bg-surface-elevated text-sm text-foreground transition-colors`,children:[(0,V.jsx)(t,{className:`size-4`}),e.label]},e.type)})})]})}function mf({projectName:e}){let t=P(t=>t.currentProject===e?t.grid:t.projectGrids[e]??[[]]);return t.flat().length<=1&&t[0]?.[0]?(0,V.jsx)(ff,{panelId:t[0][0],projectName:e}):(0,V.jsx)(gd,{orientation:`vertical`,style:{height:`100%`},children:t.map((n,r)=>(0,V.jsx)(hf,{row:n,rowIdx:r,totalRows:t.length,projectName:e},`row-${r}`))})}function hf({row:e,rowIdx:t,totalRows:n,projectName:r}){return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(yd,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:e.length===1?(0,V.jsx)(ff,{panelId:e[0],projectName:r}):(0,V.jsx)(gd,{orientation:`horizontal`,children:e.map((t,n)=>(0,V.jsx)(gf,{panelId:t,colIdx:n,totalCols:e.length,projectName:r},t))})}),t<n-1&&(0,V.jsx)(_f,{orientation:`horizontal`})]})}function gf({panelId:e,colIdx:t,totalCols:n,projectName:r}){return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(yd,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:(0,V.jsx)(ff,{panelId:e,projectName:r})}),t<n-1&&(0,V.jsx)(_f,{orientation:`vertical`})]})}function _f({orientation:e}){let t=e===`vertical`;return(0,V.jsx)(xd,{className:`
|
|
14
|
+
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return B.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},ci=`DialogDescriptionWarning`,li=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${oi(ci).contentName}}.`;return B.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},ui=Fr,di=Vr,fi=Ur,pi=qr,mi=Qr,hi=ei,gi=ni,_i=`rovingFocusGroup.onEntryFocus`,vi={bubbles:!1,cancelable:!0},yi=`RovingFocusGroup`,[bi,xi,Si]=re(yi),[Ci,wi]=i(yi,[Si]),[Ti,Ei]=Ci(yi),Di=B.forwardRef((e,t)=>(0,V.jsx)(bi.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,V.jsx)(bi.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,V.jsx)(Oi,{...e,ref:t})})}));Di.displayName=yi;var Oi=B.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:i,loop:a=!1,dir:o,currentTabStopId:s,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:l,onEntryFocus:u,preventScrollOnEntryFocus:d=!1,...f}=e,p=B.useRef(null),h=r(t,p),g=v(o),[_,b]=ne({prop:s,defaultProp:c??null,onChange:l,caller:yi}),[x,S]=B.useState(!1),C=y(u),w=xi(n),T=B.useRef(!1),[E,D]=B.useState(0);return B.useEffect(()=>{let e=p.current;if(e)return e.addEventListener(_i,C),()=>e.removeEventListener(_i,C)},[C]),(0,V.jsx)(Ti,{scope:n,orientation:i,dir:g,loop:a,currentTabStopId:_,onItemFocus:B.useCallback(e=>b(e),[b]),onItemShiftTab:B.useCallback(()=>S(!0),[]),onFocusableItemAdd:B.useCallback(()=>D(e=>e+1),[]),onFocusableItemRemove:B.useCallback(()=>D(e=>e-1),[]),children:(0,V.jsx)(A.div,{tabIndex:x||E===0?-1:0,"data-orientation":i,...f,ref:h,style:{outline:`none`,...e.style},onMouseDown:m(e.onMouseDown,()=>{T.current=!0}),onFocus:m(e.onFocus,e=>{let t=!T.current;if(e.target===e.currentTarget&&t&&!x){let t=new CustomEvent(_i,vi);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=w().filter(e=>e.focusable);Ni([e.find(e=>e.active),e.find(e=>e.id===_),...e].filter(Boolean).map(e=>e.ref.current),d)}}T.current=!1}),onBlur:m(e.onBlur,()=>S(!1))})})}),ki=`RovingFocusGroupItem`,Ai=B.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=f(),l=a||c,u=Ei(ki,n),d=u.currentTabStopId===l,p=xi(n),{onFocusableItemAdd:h,onFocusableItemRemove:g,currentTabStopId:_}=u;return B.useEffect(()=>{if(r)return h(),()=>g()},[r,h,g]),(0,V.jsx)(bi.ItemSlot,{scope:n,id:l,focusable:r,active:i,children:(0,V.jsx)(A.span,{tabIndex:d?0:-1,"data-orientation":u.orientation,...s,ref:t,onMouseDown:m(e.onMouseDown,e=>{r?u.onItemFocus(l):e.preventDefault()}),onFocus:m(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:m(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){u.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=Mi(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?Pi(n,r+1):n.slice(r+1)}setTimeout(()=>Ni(n))}}),children:typeof o==`function`?o({isCurrentTabStop:d,hasTabStop:_!=null}):o})})});Ai.displayName=ki;var ji={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function H(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function Mi(e,t,n){let r=H(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return ji[r]}function Ni(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function Pi(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Fi=Di,Ii=Ai,Li=[`Enter`,` `],Ri=[`ArrowDown`,`PageUp`,`Home`],zi=[`ArrowUp`,`PageDown`,`End`],Bi=[...Ri,...zi],Vi={ltr:[...Li,`ArrowRight`],rtl:[...Li,`ArrowLeft`]},Hi={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]},Ui=`Menu`,[Wi,Gi,Ki]=re(Ui),[qi,Ji]=i(Ui,[Ki,ee,wi]),Yi=ee(),Xi=wi(),[Zi,Qi]=qi(Ui),[$i,ea]=qi(Ui),ta=e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:a,modal:o=!0}=e,s=Yi(t),[c,l]=B.useState(null),u=B.useRef(!1),d=y(a),f=v(i);return B.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,V.jsx)(E,{...s,children:(0,V.jsx)(Zi,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:l,children:(0,V.jsx)($i,{scope:t,onClose:B.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:u,dir:f,modal:o,children:r})})})};ta.displayName=Ui;var na=`MenuAnchor`,ra=B.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=Yi(n);return(0,V.jsx)(O,{...i,...r,ref:t})});ra.displayName=na;var ia=`MenuPortal`,[aa,oa]=qi(ia,{forceMount:void 0}),sa=e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=Qi(ia,t);return(0,V.jsx)(aa,{scope:t,forceMount:n,children:(0,V.jsx)(jn,{present:n||a.open,children:(0,V.jsx)(_,{asChild:!0,container:i,children:r})})})};sa.displayName=ia;var ca=`MenuContent`,[la,ua]=qi(ca),da=B.forwardRef((e,t)=>{let n=oa(ca,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Qi(ca,e.__scopeMenu),o=ea(ca,e.__scopeMenu);return(0,V.jsx)(Wi.Provider,{scope:e.__scopeMenu,children:(0,V.jsx)(jn,{present:r||a.open,children:(0,V.jsx)(Wi.Slot,{scope:e.__scopeMenu,children:o.modal?(0,V.jsx)(fa,{...i,ref:t}):(0,V.jsx)(pa,{...i,ref:t})})})})}),fa=B.forwardRef((e,t)=>{let n=Qi(ca,e.__scopeMenu),i=B.useRef(null),a=r(t,i);return B.useEffect(()=>{let e=i.current;if(e)return C(e)},[]),(0,V.jsx)(ha,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:m(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),pa=B.forwardRef((e,t)=>{let n=Qi(ca,e.__scopeMenu);return(0,V.jsx)(ha,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),ma=a(`MenuContent.ScrollLock`),ha=B.forwardRef((e,t)=>{let{__scopeMenu:n,loop:i=!1,trapFocus:a,onOpenAutoFocus:o,onCloseAutoFocus:s,disableOutsidePointerEvents:c,onEntryFocus:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:h,onDismiss:_,disableOutsideScroll:v,...y}=e,b=Qi(ca,n),x=ea(ca,n),S=Yi(n),C=Xi(n),T=Gi(n),[E,O]=B.useState(null),ee=B.useRef(null),k=r(t,ee,b.onContentChange),ne=B.useRef(0),A=B.useRef(``),re=B.useRef(0),j=B.useRef(null),M=B.useRef(`right`),ie=B.useRef(0),ae=v?te:B.Fragment,oe=v?{as:ma,allowPinchZoom:!0}:void 0,se=e=>{let t=A.current+e,n=T().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=$a(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;(function e(t){A.current=t,window.clearTimeout(ne.current),t!==``&&(ne.current=window.setTimeout(()=>e(``),1e3))})(t),o&&setTimeout(()=>o.focus())};B.useEffect(()=>()=>window.clearTimeout(ne.current),[]),g();let N=B.useCallback(e=>M.current===j.current?.side&&to(e,j.current?.area),[]);return(0,V.jsx)(la,{scope:n,searchRef:A,onItemEnter:B.useCallback(e=>{N(e)&&e.preventDefault()},[N]),onItemLeave:B.useCallback(e=>{N(e)||(ee.current?.focus(),O(null))},[N]),onTriggerLeave:B.useCallback(e=>{N(e)&&e.preventDefault()},[N]),pointerGraceTimerRef:re,onPointerGraceIntentChange:B.useCallback(e=>{j.current=e},[]),children:(0,V.jsx)(ae,{...oe,children:(0,V.jsx)(D,{asChild:!0,trapped:a,onMountAutoFocus:m(o,e=>{e.preventDefault(),ee.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:s,children:(0,V.jsx)(w,{asChild:!0,disableOutsidePointerEvents:c,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:h,onDismiss:_,children:(0,V.jsx)(Fi,{asChild:!0,...C,dir:x.dir,orientation:`vertical`,loop:i,currentTabStopId:E,onCurrentTabStopIdChange:O,onEntryFocus:m(l,e=>{x.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,V.jsx)(p,{role:`menu`,"aria-orientation":`vertical`,"data-state":Ja(b.open),"data-radix-menu-content":``,dir:x.dir,...S,...y,ref:k,style:{outline:`none`,...y.style},onKeyDown:m(y.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&&se(e.key));let i=ee.current;if(e.target!==i||!Bi.includes(e.key))return;e.preventDefault();let a=T().filter(e=>!e.disabled).map(e=>e.ref.current);zi.includes(e.key)&&a.reverse(),Za(a)}),onBlur:m(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(ne.current),A.current=``)}),onPointerMove:m(e.onPointerMove,no(e=>{let t=e.target,n=ie.current!==e.clientX;e.currentTarget.contains(t)&&n&&(M.current=e.clientX>ie.current?`right`:`left`,ie.current=e.clientX)}))})})})})})})});da.displayName=ca;var ga=`MenuGroup`,_a=B.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,V.jsx)(A.div,{role:`group`,...r,ref:t})});_a.displayName=ga;var va=`MenuLabel`,ya=B.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,V.jsx)(A.div,{...r,ref:t})});ya.displayName=va;var ba=`MenuItem`,xa=`menu.itemSelect`,Sa=B.forwardRef((e,t)=>{let{disabled:n=!1,onSelect:i,...a}=e,o=B.useRef(null),s=ea(ba,e.__scopeMenu),c=ua(ba,e.__scopeMenu),l=r(t,o),u=B.useRef(!1),f=()=>{let e=o.current;if(!n&&e){let t=new CustomEvent(xa,{bubbles:!0,cancelable:!0});e.addEventListener(xa,e=>i?.(e),{once:!0}),d(e,t),t.defaultPrevented?u.current=!1:s.onClose()}};return(0,V.jsx)(Ca,{...a,ref:l,disabled:n,onClick:m(e.onClick,f),onPointerDown:t=>{e.onPointerDown?.(t),u.current=!0},onPointerUp:m(e.onPointerUp,e=>{u.current||e.currentTarget?.click()}),onKeyDown:m(e.onKeyDown,e=>{let t=c.searchRef.current!==``;n||t&&e.key===` `||Li.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});Sa.displayName=ba;var Ca=B.forwardRef((e,t)=>{let{__scopeMenu:n,disabled:i=!1,textValue:a,...o}=e,s=ua(ba,n),c=Xi(n),l=B.useRef(null),u=r(t,l),[d,f]=B.useState(!1),[p,h]=B.useState(``);return B.useEffect(()=>{let e=l.current;e&&h((e.textContent??``).trim())},[o.children]),(0,V.jsx)(Wi.ItemSlot,{scope:n,disabled:i,textValue:a??p,children:(0,V.jsx)(Ii,{asChild:!0,...c,focusable:!i,children:(0,V.jsx)(A.div,{role:`menuitem`,"data-highlighted":d?``:void 0,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,...o,ref:u,onPointerMove:m(e.onPointerMove,no(e=>{i?s.onItemLeave(e):(s.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:m(e.onPointerLeave,no(e=>s.onItemLeave(e))),onFocus:m(e.onFocus,()=>f(!0)),onBlur:m(e.onBlur,()=>f(!1))})})})}),wa=`MenuCheckboxItem`,Ta=B.forwardRef((e,t)=>{let{checked:n=!1,onCheckedChange:r,...i}=e;return(0,V.jsx)(Na,{scope:e.__scopeMenu,checked:n,children:(0,V.jsx)(Sa,{role:`menuitemcheckbox`,"aria-checked":Ya(n)?`mixed`:n,...i,ref:t,"data-state":Xa(n),onSelect:m(i.onSelect,()=>r?.(Ya(n)?!0:!n),{checkForDefaultPrevented:!1})})})});Ta.displayName=wa;var Ea=`MenuRadioGroup`,[Da,Oa]=qi(Ea,{value:void 0,onValueChange:()=>{}}),ka=B.forwardRef((e,t)=>{let{value:n,onValueChange:r,...i}=e,a=y(r);return(0,V.jsx)(Da,{scope:e.__scopeMenu,value:n,onValueChange:a,children:(0,V.jsx)(_a,{...i,ref:t})})});ka.displayName=Ea;var Aa=`MenuRadioItem`,ja=B.forwardRef((e,t)=>{let{value:n,...r}=e,i=Oa(Aa,e.__scopeMenu),a=n===i.value;return(0,V.jsx)(Na,{scope:e.__scopeMenu,checked:a,children:(0,V.jsx)(Sa,{role:`menuitemradio`,"aria-checked":a,...r,ref:t,"data-state":Xa(a),onSelect:m(r.onSelect,()=>i.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});ja.displayName=Aa;var Ma=`MenuItemIndicator`,[Na,Pa]=qi(Ma,{checked:!1}),Fa=B.forwardRef((e,t)=>{let{__scopeMenu:n,forceMount:r,...i}=e,a=Pa(Ma,n);return(0,V.jsx)(jn,{present:r||Ya(a.checked)||a.checked===!0,children:(0,V.jsx)(A.span,{...i,ref:t,"data-state":Xa(a.checked)})})});Fa.displayName=Ma;var Ia=`MenuSeparator`,La=B.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,V.jsx)(A.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})});La.displayName=Ia;var Ra=`MenuArrow`,za=B.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=Yi(n);return(0,V.jsx)(b,{...i,...r,ref:t})});za.displayName=Ra;var Ba=`MenuSub`,[Va,Ha]=qi(Ba),Ua=e=>{let{__scopeMenu:t,children:n,open:r=!1,onOpenChange:i}=e,a=Qi(Ba,t),o=Yi(t),[s,c]=B.useState(null),[l,u]=B.useState(null),d=y(i);return B.useEffect(()=>(a.open===!1&&d(!1),()=>d(!1)),[a.open,d]),(0,V.jsx)(E,{...o,children:(0,V.jsx)(Zi,{scope:t,open:r,onOpenChange:d,content:l,onContentChange:u,children:(0,V.jsx)(Va,{scope:t,contentId:f(),triggerId:f(),trigger:s,onTriggerChange:c,children:n})})})};Ua.displayName=Ba;var Wa=`MenuSubTrigger`,Ga=B.forwardRef((e,t)=>{let n=Qi(Wa,e.__scopeMenu),r=ea(Wa,e.__scopeMenu),i=Ha(Wa,e.__scopeMenu),a=ua(Wa,e.__scopeMenu),o=B.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:c}=a,l={__scopeMenu:e.__scopeMenu},u=B.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=null},[]);return B.useEffect(()=>u,[u]),B.useEffect(()=>{let e=s.current;return()=>{window.clearTimeout(e),c(null)}},[s,c]),(0,V.jsx)(ra,{asChild:!0,...l,children:(0,V.jsx)(Ca,{id:i.triggerId,"aria-haspopup":`menu`,"aria-expanded":n.open,"aria-controls":i.contentId,"data-state":Ja(n.open),...e,ref:S(t,i.onTriggerChange),onClick:t=>{e.onClick?.(t),!(e.disabled||t.defaultPrevented)&&(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:m(e.onPointerMove,no(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:m(e.onPointerLeave,no(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:m(e.onKeyDown,t=>{let i=a.searchRef.current!==``;e.disabled||i&&t.key===` `||Vi[r.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())})})})});Ga.displayName=Wa;var Ka=`MenuSubContent`,qa=B.forwardRef((e,t)=>{let n=oa(ca,e.__scopeMenu),{forceMount:i=n.forceMount,...a}=e,o=Qi(ca,e.__scopeMenu),s=ea(ca,e.__scopeMenu),c=Ha(Ka,e.__scopeMenu),l=B.useRef(null),u=r(t,l);return(0,V.jsx)(Wi.Provider,{scope:e.__scopeMenu,children:(0,V.jsx)(jn,{present:i||o.open,children:(0,V.jsx)(Wi.Slot,{scope:e.__scopeMenu,children:(0,V.jsx)(ha,{id:c.contentId,"aria-labelledby":c.triggerId,...a,ref:u,align:`start`,side:s.dir===`rtl`?`left`:`right`,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{s.isUsingKeyboardRef.current&&l.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:m(e.onFocusOutside,e=>{e.target!==c.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:m(e.onEscapeKeyDown,e=>{s.onClose(),e.preventDefault()}),onKeyDown:m(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=Hi[s.dir].includes(e.key);t&&n&&(o.onOpenChange(!1),c.trigger?.focus(),e.preventDefault())})})})})})});qa.displayName=Ka;function Ja(e){return e?`open`:`closed`}function Ya(e){return e===`indeterminate`}function Xa(e){return Ya(e)?`indeterminate`:e?`checked`:`unchecked`}function Za(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Qa(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function $a(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=Qa(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 eo(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 to(e,t){return t?eo({x:e.clientX,y:e.clientY},t):!1}function no(e){return t=>t.pointerType===`mouse`?e(t):void 0}var ro=ta,io=ra,ao=sa,oo=da,so=_a,co=ya,lo=Sa,U=Ta,uo=ka,fo=ja,po=Fa,mo=La,ho=za,go=Ua,_o=Ga,vo=qa,yo=`ContextMenu`,[bo,xo]=i(yo,[Ji]),So=Ji(),[Co,wo]=bo(yo),To=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:a=!0}=e,[o,s]=B.useState(!1),c=So(t),l=y(r),u=B.useCallback(e=>{s(e),l(e)},[l]);return(0,V.jsx)(Co,{scope:t,open:o,onOpenChange:u,modal:a,children:(0,V.jsx)(ro,{...c,dir:i,open:o,onOpenChange:u,modal:a,children:n})})};To.displayName=yo;var Eo=`ContextMenuTrigger`,Do=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,disabled:r=!1,...i}=e,a=wo(Eo,n),o=So(n),s=B.useRef({x:0,y:0}),c=B.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...s.current})}),l=B.useRef(0),u=B.useCallback(()=>window.clearTimeout(l.current),[]),d=e=>{s.current={x:e.clientX,y:e.clientY},a.onOpenChange(!0)};return B.useEffect(()=>u,[u]),B.useEffect(()=>void(r&&u()),[r,u]),(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(io,{...o,virtualRef:c}),(0,V.jsx)(A.span,{"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,...i,ref:t,style:{WebkitTouchCallout:`none`,...e.style},onContextMenu:r?e.onContextMenu:m(e.onContextMenu,e=>{u(),d(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:m(e.onPointerDown,ns(e=>{u(),l.current=window.setTimeout(()=>d(e),700)})),onPointerMove:r?e.onPointerMove:m(e.onPointerMove,ns(u)),onPointerCancel:r?e.onPointerCancel:m(e.onPointerCancel,ns(u)),onPointerUp:r?e.onPointerUp:m(e.onPointerUp,ns(u))})]})});Do.displayName=Eo;var Oo=`ContextMenuPortal`,ko=e=>{let{__scopeContextMenu:t,...n}=e,r=So(t);return(0,V.jsx)(ao,{...r,...n})};ko.displayName=Oo;var Ao=`ContextMenuContent`,jo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=wo(Ao,n),a=So(n),o=B.useRef(!1);return(0,V.jsx)(oo,{...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)`}})});jo.displayName=Ao;var Mo=`ContextMenuGroup`,No=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(so,{...i,...r,ref:t})});No.displayName=Mo;var Po=`ContextMenuLabel`,Fo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(co,{...i,...r,ref:t})});Fo.displayName=Po;var Io=`ContextMenuItem`,Lo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(lo,{...i,...r,ref:t})});Lo.displayName=Io;var Ro=`ContextMenuCheckboxItem`,zo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(U,{...i,...r,ref:t})});zo.displayName=Ro;var Bo=`ContextMenuRadioGroup`,Vo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(uo,{...i,...r,ref:t})});Vo.displayName=Bo;var Ho=`ContextMenuRadioItem`,Uo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(fo,{...i,...r,ref:t})});Uo.displayName=Ho;var Wo=`ContextMenuItemIndicator`,Go=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(po,{...i,...r,ref:t})});Go.displayName=Wo;var Ko=`ContextMenuSeparator`,qo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(mo,{...i,...r,ref:t})});qo.displayName=Ko;var Jo=`ContextMenuArrow`,Yo=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(ho,{...i,...r,ref:t})});Yo.displayName=Jo;var Xo=`ContextMenuSub`,Zo=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,defaultOpen:a}=e,o=So(t),[s,c]=ne({prop:i,defaultProp:a??!1,onChange:r,caller:Xo});return(0,V.jsx)(go,{...o,open:s,onOpenChange:c,children:n})};Zo.displayName=Xo;var Qo=`ContextMenuSubTrigger`,$o=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(_o,{...i,...r,ref:t})});$o.displayName=Qo;var es=`ContextMenuSubContent`,ts=B.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=So(n);return(0,V.jsx)(vo,{...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)`}})});ts.displayName=es;function ns(e){return t=>t.pointerType===`mouse`?void 0:e(t)}var rs=To,is=Do,as=ko,os=jo,ss=Lo,cs=qo,ls=`DropdownMenu`,[us,ds]=i(ls,[Ji]),fs=Ji(),[ps,ms]=us(ls),hs=e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:s=!0}=e,c=fs(t),l=B.useRef(null),[u,d]=ne({prop:i,defaultProp:a??!1,onChange:o,caller:ls});return(0,V.jsx)(ps,{scope:t,triggerId:f(),triggerRef:l,contentId:f(),open:u,onOpenChange:d,onOpenToggle:B.useCallback(()=>d(e=>!e),[d]),modal:s,children:(0,V.jsx)(ro,{...c,open:u,onOpenChange:d,dir:r,modal:s,children:n})})};hs.displayName=ls;var gs=`DropdownMenuTrigger`,_s=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,a=ms(gs,n),o=fs(n);return(0,V.jsx)(io,{asChild:!0,...o,children:(0,V.jsx)(A.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:S(t,a.triggerRef),onPointerDown:m(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:m(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&a.onOpenToggle(),e.key===`ArrowDown`&&a.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})});_s.displayName=gs;var vs=`DropdownMenuPortal`,ys=e=>{let{__scopeDropdownMenu:t,...n}=e,r=fs(t);return(0,V.jsx)(ao,{...r,...n})};ys.displayName=vs;var bs=`DropdownMenuContent`,xs=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=ms(bs,n),a=fs(n),o=B.useRef(!1);return(0,V.jsx)(oo,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:m(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:m(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)`}})});xs.displayName=bs;var Ss=`DropdownMenuGroup`,Cs=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(so,{...i,...r,ref:t})});Cs.displayName=Ss;var ws=`DropdownMenuLabel`,Ts=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(co,{...i,...r,ref:t})});Ts.displayName=ws;var Es=`DropdownMenuItem`,Ds=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(lo,{...i,...r,ref:t})});Ds.displayName=Es;var Os=`DropdownMenuCheckboxItem`,ks=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(U,{...i,...r,ref:t})});ks.displayName=Os;var As=`DropdownMenuRadioGroup`,js=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(uo,{...i,...r,ref:t})});js.displayName=As;var Ms=`DropdownMenuRadioItem`,Ns=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(fo,{...i,...r,ref:t})});Ns.displayName=Ms;var Ps=`DropdownMenuItemIndicator`,Fs=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(po,{...i,...r,ref:t})});Fs.displayName=Ps;var Is=`DropdownMenuSeparator`,Ls=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(mo,{...i,...r,ref:t})});Ls.displayName=Is;var Rs=`DropdownMenuArrow`,zs=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(ho,{...i,...r,ref:t})});zs.displayName=Rs;var Bs=`DropdownMenuSubTrigger`,Vs=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(_o,{...i,...r,ref:t})});Vs.displayName=Bs;var Hs=`DropdownMenuSubContent`,Us=B.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=fs(n);return(0,V.jsx)(vo,{...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)`}})});Us.displayName=Hs;var Ws=hs,Gs=_s,Ks=ys,qs=xs,Js=Ds;function Ys(e,t){return B.useReducer((e,n)=>t[e][n]??e,e)}var Xs=`ScrollArea`,[Zs,Qs]=i(Xs),[$s,ec]=Zs(Xs),tc=B.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:i=`hover`,dir:a,scrollHideDelay:o=600,...s}=e,[c,l]=B.useState(null),[u,d]=B.useState(null),[f,p]=B.useState(null),[m,h]=B.useState(null),[g,_]=B.useState(null),[y,b]=B.useState(0),[x,S]=B.useState(0),[C,w]=B.useState(!1),[T,E]=B.useState(!1),D=r(t,e=>l(e)),O=v(a);return(0,V.jsx)($s,{scope:n,type:i,dir:O,scrollHideDelay:o,scrollArea:c,viewport:u,onViewportChange:d,content:f,onContentChange:p,scrollbarX:m,onScrollbarXChange:h,scrollbarXEnabled:C,onScrollbarXEnabledChange:w,scrollbarY:g,onScrollbarYChange:_,scrollbarYEnabled:T,onScrollbarYEnabledChange:E,onCornerWidthChange:b,onCornerHeightChange:S,children:(0,V.jsx)(A.div,{dir:O,...s,ref:D,style:{position:`relative`,"--radix-scroll-area-corner-width":y+`px`,"--radix-scroll-area-corner-height":x+`px`,...e.style}})})});tc.displayName=Xs;var nc=`ScrollAreaViewport`,rc=B.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:i,nonce:a,...o}=e,s=ec(nc,n),c=r(t,B.useRef(null),s.onViewportChange);return(0,V.jsxs)(V.Fragment,{children:[(0,V.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:a}),(0,V.jsx)(A.div,{"data-radix-scroll-area-viewport":``,...o,ref:c,style:{overflowX:s.scrollbarXEnabled?`scroll`:`hidden`,overflowY:s.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,V.jsx)(`div`,{ref:s.onContentChange,style:{minWidth:`100%`,display:`table`},children:i})})]})});rc.displayName=nc;var ic=`ScrollAreaScrollbar`,ac=B.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=ec(ic,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return B.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,V.jsx)(oc,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,V.jsx)(sc,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,V.jsx)(cc,{...r,ref:t,forceMount:n}):i.type===`always`?(0,V.jsx)(lc,{...r,ref:t}):null});ac.displayName=ic;var oc=B.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=ec(ic,e.__scopeScrollArea),[a,o]=B.useState(!1);return B.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,V.jsx)(jn,{present:n||a,children:(0,V.jsx)(cc,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),sc=B.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=ec(ic,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=kc(()=>c(`SCROLL_END`),100),[s,c]=Ys(`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 B.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),B.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,V.jsx)(jn,{present:n||s!==`hidden`,children:(0,V.jsx)(lc,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:m(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:m(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})}),cc=B.forwardRef((e,t)=>{let n=ec(ic,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=B.useState(!1),s=e.orientation===`horizontal`,c=kc(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return Ac(n.viewport,c),Ac(n.content,c),(0,V.jsx)(jn,{present:r||a,children:(0,V.jsx)(lc,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),lc=B.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=ec(ic,e.__scopeScrollArea),a=B.useRef(null),o=B.useRef(0),[s,c]=B.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=Sc(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 wc(e,o.current,s,t)}return n===`horizontal`?(0,V.jsx)(uc,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=Tc(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,V.jsx)(dc,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=Tc(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}),uc=B.forwardRef((e,t)=>{let{sizes:n,onSizesChange:i,...a}=e,o=ec(ic,e.__scopeScrollArea),[s,c]=B.useState(),l=B.useRef(null),u=r(t,l,o.onScrollbarXChange);return B.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,V.jsx)(mc,{"data-orientation":`horizontal`,...a,ref:u,sizes:n,style:{bottom:0,left:o.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:o.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":Cc(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),Dc(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&i({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:xc(s.paddingLeft),paddingEnd:xc(s.paddingRight)}})}})}),dc=B.forwardRef((e,t)=>{let{sizes:n,onSizesChange:i,...a}=e,o=ec(ic,e.__scopeScrollArea),[s,c]=B.useState(),l=B.useRef(null),u=r(t,l,o.onScrollbarYChange);return B.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,V.jsx)(mc,{"data-orientation":`vertical`,...a,ref:u,sizes:n,style:{top:0,right:o.dir===`ltr`?0:void 0,left:o.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":Cc(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),Dc(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&i({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:xc(s.paddingTop),paddingEnd:xc(s.paddingBottom)}})}})}),[fc,pc]=Zs(ic),mc=B.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:i,hasThumb:a,onThumbChange:o,onThumbPointerUp:s,onThumbPointerDown:c,onThumbPositionChange:l,onDragScroll:u,onWheelScroll:d,onResize:f,...p}=e,h=ec(ic,n),[g,_]=B.useState(null),v=r(t,e=>_(e)),b=B.useRef(null),x=B.useRef(``),S=h.viewport,C=i.content-i.viewport,w=y(d),T=y(l),E=kc(f,10);function D(e){b.current&&u({x:e.clientX-b.current.left,y:e.clientY-b.current.top})}return B.useEffect(()=>{let e=e=>{let t=e.target;g?.contains(t)&&w(e,C)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[S,g,C,w]),B.useEffect(T,[i,T]),Ac(g,E),Ac(h.content,E),(0,V.jsx)(fc,{scope:n,scrollbar:g,hasThumb:a,onThumbChange:y(o),onThumbPointerUp:y(s),onThumbPositionChange:T,onThumbPointerDown:y(c),children:(0,V.jsx)(A.div,{...p,ref:v,style:{position:`absolute`,...p.style},onPointerDown:m(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),b.current=g.getBoundingClientRect(),x.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,h.viewport&&(h.viewport.style.scrollBehavior=`auto`),D(e))}),onPointerMove:m(e.onPointerMove,D),onPointerUp:m(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=x.current,h.viewport&&(h.viewport.style.scrollBehavior=``),b.current=null})})})}),hc=`ScrollAreaThumb`,gc=B.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=pc(hc,e.__scopeScrollArea);return(0,V.jsx)(jn,{present:n||i.hasThumb,children:(0,V.jsx)(_c,{ref:t,...r})})}),_c=B.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:i,...a}=e,o=ec(hc,n),s=pc(hc,n),{onThumbPositionChange:c}=s,l=r(t,e=>s.onThumbChange(e)),u=B.useRef(void 0),d=kc(()=>{u.current&&=(u.current(),void 0)},100);return B.useEffect(()=>{let e=o.viewport;if(e){let t=()=>{d(),u.current||(u.current=Oc(e,c),c())};return c(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[o.viewport,d,c]),(0,V.jsx)(A.div,{"data-state":s.hasThumb?`visible`:`hidden`,...a,ref:l,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...i},onPointerDownCapture:m(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;s.onThumbPointerDown({x:n,y:r})}),onPointerUp:m(e.onPointerUp,s.onThumbPointerUp)})});gc.displayName=hc;var vc=`ScrollAreaCorner`,yc=B.forwardRef((e,t)=>{let n=ec(vc,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,V.jsx)(bc,{...e,ref:t}):null});yc.displayName=vc;var bc=B.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=ec(vc,n),[a,o]=B.useState(0),[s,c]=B.useState(0),l=!!(a&&s);return Ac(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),Ac(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,V.jsx)(A.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 xc(e){return e?parseInt(e,10):0}function Sc(e,t){let n=e/t;return isNaN(n)?0:n}function Cc(e){let t=Sc(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function wc(e,t,n,r=`ltr`){let i=Cc(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 Ec([c,l],d)(e)}function Tc(e,t,n=`ltr`){let r=Cc(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=T(e,n===`ltr`?[0,o]:[o*-1,0]);return Ec([0,o],[0,s])(c)}function Ec(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 Dc(e,t){return e>0&&e<t}var Oc=(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 kc(e,t){let n=y(e),r=B.useRef(0);return B.useEffect(()=>()=>window.clearTimeout(r.current),[]),B.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function Ac(e,t){let n=y(t);j(()=>{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 jc=tc,Mc=rc,Nc=yc,Pc=`Switch`,[Fc,Ic]=i(Pc),[Lc,Rc]=Fc(Pc),zc=B.forwardRef((e,t)=>{let{__scopeSwitch:n,name:i,checked:a,defaultChecked:o,required:s,disabled:c,value:l=`on`,onCheckedChange:u,form:d,...f}=e,[p,h]=B.useState(null),g=r(t,e=>h(e)),_=B.useRef(!1),v=p?d||!!p.closest(`form`):!0,[y,b]=ne({prop:a,defaultProp:o??!1,onChange:u,caller:Pc});return(0,V.jsxs)(Lc,{scope:n,checked:y,disabled:c,children:[(0,V.jsx)(A.button,{type:`button`,role:`switch`,"aria-checked":y,"aria-required":s,"data-state":Wc(y),"data-disabled":c?``:void 0,disabled:c,value:l,...f,ref:g,onClick:m(e.onClick,e=>{b(e=>!e),v&&(_.current=e.isPropagationStopped(),_.current||e.stopPropagation())})}),v&&(0,V.jsx)(Uc,{control:p,bubbles:!_.current,name:i,value:l,checked:y,required:s,disabled:c,form:d,style:{transform:`translateX(-100%)`}})]})});zc.displayName=Pc;var Bc=`SwitchThumb`,Vc=B.forwardRef((e,t)=>{let{__scopeSwitch:n,...r}=e,i=Rc(Bc,n);return(0,V.jsx)(A.span,{"data-state":Wc(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})});Vc.displayName=Bc;var Hc=`SwitchBubbleInput`,Uc=B.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:i=!0,...a},o)=>{let s=B.useRef(null),c=r(s,o),l=ue(n),u=h(t);return B.useEffect(()=>{let e=s.current;if(!e)return;let t=window.HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(t,`checked`).set;if(l!==n&&r){let t=new Event(`click`,{bubbles:i});r.call(e,n),e.dispatchEvent(t)}},[l,n,i]),(0,V.jsx)(`input`,{type:`checkbox`,"aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:c,style:{...a.style,...u,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});Uc.displayName=Hc;function Wc(e){return e?`checked`:`unchecked`}var Gc=zc,Kc=Vc,[qc,Jc]=i(`Tooltip`,[ee]),Yc=ee(),Xc=`TooltipProvider`,Zc=700,Qc=`tooltip.open`,[$c,el]=qc(Xc),tl=e=>{let{__scopeTooltip:t,delayDuration:n=Zc,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=B.useRef(!0),s=B.useRef(!1),c=B.useRef(0);return B.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,V.jsx)($c,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:B.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:B.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:B.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};tl.displayName=Xc;var nl=`Tooltip`,[rl,il]=qc(nl),al=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=el(nl,e.__scopeTooltip),l=Yc(t),[u,d]=B.useState(null),p=f(),m=B.useRef(0),h=o??c.disableHoverableContent,g=s??c.delayDuration,_=B.useRef(!1),[v,y]=ne({prop:r,defaultProp:i??!1,onChange:e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(Qc))):c.onClose(),a?.(e)},caller:nl}),b=B.useMemo(()=>v?_.current?`delayed-open`:`instant-open`:`closed`,[v]),x=B.useCallback(()=>{window.clearTimeout(m.current),m.current=0,_.current=!1,y(!0)},[y]),S=B.useCallback(()=>{window.clearTimeout(m.current),m.current=0,y(!1)},[y]),C=B.useCallback(()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>{_.current=!0,y(!0),m.current=0},g)},[g,y]);return B.useEffect(()=>()=>{m.current&&=(window.clearTimeout(m.current),0)},[]),(0,V.jsx)(E,{...l,children:(0,V.jsx)(rl,{scope:t,contentId:p,open:v,stateAttribute:b,trigger:u,onTriggerChange:d,onTriggerEnter:B.useCallback(()=>{c.isOpenDelayedRef.current?C():x()},[c.isOpenDelayedRef,C,x]),onTriggerLeave:B.useCallback(()=>{h?S():(window.clearTimeout(m.current),m.current=0)},[S,h]),onOpen:x,onClose:S,disableHoverableContent:h,children:n})})};al.displayName=nl;var ol=`TooltipTrigger`,sl=B.forwardRef((e,t)=>{let{__scopeTooltip:n,...i}=e,a=il(ol,n),o=el(ol,n),s=Yc(n),c=r(t,B.useRef(null),a.onTriggerChange),l=B.useRef(!1),u=B.useRef(!1),d=B.useCallback(()=>l.current=!1,[]);return B.useEffect(()=>()=>document.removeEventListener(`pointerup`,d),[d]),(0,V.jsx)(O,{asChild:!0,...s,children:(0,V.jsx)(A.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...i,ref:c,onPointerMove:m(e.onPointerMove,e=>{e.pointerType!==`touch`&&!u.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),u.current=!0)}),onPointerLeave:m(e.onPointerLeave,()=>{a.onTriggerLeave(),u.current=!1}),onPointerDown:m(e.onPointerDown,()=>{a.open&&a.onClose(),l.current=!0,document.addEventListener(`pointerup`,d,{once:!0})}),onFocus:m(e.onFocus,()=>{l.current||a.onOpen()}),onBlur:m(e.onBlur,a.onClose),onClick:m(e.onClick,a.onClose)})})});sl.displayName=ol;var cl=`TooltipPortal`,[ll,ul]=qc(cl,{forceMount:void 0}),dl=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=il(cl,t);return(0,V.jsx)(ll,{scope:t,forceMount:n,children:(0,V.jsx)(jn,{present:n||a.open,children:(0,V.jsx)(_,{asChild:!0,container:i,children:r})})})};dl.displayName=cl;var fl=`TooltipContent`,pl=B.forwardRef((e,t)=>{let n=ul(fl,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=il(fl,e.__scopeTooltip);return(0,V.jsx)(jn,{present:r||o.open,children:o.disableHoverableContent?(0,V.jsx)(vl,{side:i,...a,ref:t}):(0,V.jsx)(ml,{side:i,...a,ref:t})})}),ml=B.forwardRef((e,t)=>{let n=il(fl,e.__scopeTooltip),i=el(fl,e.__scopeTooltip),a=B.useRef(null),o=r(t,a),[s,c]=B.useState(null),{trigger:l,onClose:u}=n,d=a.current,{onPointerInTransitChange:f}=i,p=B.useCallback(()=>{c(null),f(!1)},[f]),m=B.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=Sl(r,xl(r,n.getBoundingClientRect())),a=Cl(t.getBoundingClientRect());c(Tl([...i,...a])),f(!0)},[f]);return B.useEffect(()=>()=>p(),[p]),B.useEffect(()=>{if(l&&d){let e=e=>m(e,d),t=e=>m(e,l);return l.addEventListener(`pointerleave`,e),d.addEventListener(`pointerleave`,t),()=>{l.removeEventListener(`pointerleave`,e),d.removeEventListener(`pointerleave`,t)}}},[l,d,m,p]),B.useEffect(()=>{if(s){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=l?.contains(t)||d?.contains(t),i=!wl(n,s);r?p():i&&(p(),u())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[l,d,s,u,p]),(0,V.jsx)(vl,{...e,ref:o})}),[hl,gl]=qc(nl,{isInside:!1}),_l=l(`TooltipContent`),vl=B.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=il(fl,n),l=Yc(n),{onClose:u}=c;return B.useEffect(()=>(document.addEventListener(Qc,u),()=>document.removeEventListener(Qc,u)),[u]),B.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,V.jsx)(w,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:(0,V.jsxs)(p,{"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,V.jsx)(_l,{children:r}),(0,V.jsx)(hl,{scope:n,isInside:!0,children:(0,V.jsx)(ae,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});pl.displayName=fl;var yl=`TooltipArrow`,bl=B.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=Yc(n);return gl(yl,n).isInside?null:(0,V.jsx)(b,{...i,...r,ref:t})});bl.displayName=yl;function xl(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 Sl(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 Cl(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 wl(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 Tl(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),El(t)}function El(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 Dl=tl,Ol=al,kl=sl,Al=dl,jl=pl,Ml=bl;function Nl({delayDuration:e=0,...t}){return(0,V.jsx)(Dl,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function Pl({...e}){return(0,V.jsx)(Ol,{"data-slot":`tooltip`,...e})}function Fl({...e}){return(0,V.jsx)(kl,{"data-slot":`tooltip-trigger`,...e})}function Il({className:e,sideOffset:t=0,children:n,...r}){return(0,V.jsx)(Al,{children:(0,V.jsxs)(jl,{"data-slot":`tooltip-content`,sideOffset:t,className:L(`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,V.jsx)(Ml,{className:`z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground`})]})})}function Ll(e,t){let n=getComputedStyle(e);return t*parseFloat(n.fontSize)}function Rl(e,t){let n=getComputedStyle(e.ownerDocument.body);return t*parseFloat(n.fontSize)}function zl(e){return e/100*window.innerHeight}function Bl(e){return e/100*window.innerWidth}function W(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 G({groupSize:e,panelElement:t,styleProp:n}){let r,[i,a]=W(n);switch(a){case`%`:r=i/100*e;break;case`px`:r=i;break;case`rem`:r=Rl(t,i);break;case`em`:r=Ll(t,i);break;case`vh`:r=zl(i);break;case`vw`:r=Bl(i);break}return r}function K(e){return parseFloat(e.toFixed(3))}function q({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 J(e){let{panels:t}=e,n=q({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=K(G({groupSize:n,panelElement:t,styleProp:r.collapsedSize})/n*100));let a;r.defaultSize!==void 0&&(a=K(G({groupSize:n,panelElement:t,styleProp:r.defaultSize})/n*100));let o=0;r.minSize!==void 0&&(o=K(G({groupSize:n,panelElement:t,styleProp:r.minSize})/n*100));let s=100;return r.maxSize!==void 0&&(s=K(G({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 Y(e,t=`Assertion error`){if(!e)throw Error(t)}function Vl(e,t){return Array.from(t).sort(e===`horizontal`?Hl:Ul)}function Hl(e,t){let n=e.element.offsetLeft-t.element.offsetLeft;return n===0?e.element.offsetWidth-t.element.offsetWidth:n}function Ul(e,t){let n=e.element.offsetTop-t.element.offsetTop;return n===0?e.element.offsetHeight-t.element.offsetHeight:n}function Wl(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.ELEMENT_NODE}function Gl(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 Kl({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}=Gl(r,n),s=e===`horizontal`?t:o;s<a&&(a=s,i=n)}return Y(i,`No rect found`),i}var ql;function Jl(){return ql===void 0&&(ql=typeof matchMedia==`function`?!!matchMedia(`(pointer:coarse)`).matches:!1),ql}function Yl(e){let{element:t,orientation:n,panels:r,separators:i}=e,a=Vl(n,Array.from(t.children).filter(Wl).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,Kl({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=Jl()?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:q({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 Xl=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)}}},Zl=new Map,Ql=new Xl;function $l(e){Zl=new Map(Zl),Zl.delete(e)}function eu(e,t){for(let[t]of Zl)if(t.id===e)return t}function tu(e,t){for(let[t,n]of Zl)if(t.id===e)return n;if(t)throw Error(`Could not find data for Group with id ${e}`)}function nu(){return Zl}function ru(e,t){return Ql.addListener(`groupChange`,n=>{n.group.id===e&&t(n)})}function iu(e,t){let n=Zl.get(e);Zl=new Map(Zl),Zl.set(e,t),Ql.emit(`groupChange`,{group:e,prev:n,next:t})}function au(e,t,n){let r,i={x:1/0,y:1/0};for(let a of t){let t=Gl(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 ou(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function su(e,t){if(e===t)throw Error(`Cannot compare node with itself`);let n={a:pu(e),b:pu(t)},r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();Y(r,`Stacking order can only be calculated for elements with a common ancestor`);let i={a:fu(du(n.a)),b:fu(du(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 cu=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function lu(e){let t=getComputedStyle(mu(e)??e).display;return t===`flex`||t===`inline-flex`}function uu(e){let t=getComputedStyle(e);return!!(t.position===`fixed`||t.zIndex!==`auto`&&(t.position!==`static`||lu(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`||cu.test(t.willChange)||t.webkitOverflowScrolling===`touch`)}function du(e){let t=e.length;for(;t--;){let n=e[t];if(Y(n,`Missing node`),uu(n))return n}return null}function fu(e){return e&&Number(getComputedStyle(e).zIndex)||0}function pu(e){let t=[];for(;e;)t.push(e),e=mu(e);return t}function mu(e){let{parentNode:t}=e;return ou(t)?t.host:t}function hu(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 gu({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!Wl(n)||n.contains(e)||e.contains(n))return!0;if(su(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(hu(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function _u(e,t){let n=[];return t.forEach((t,r)=>{if(r.disabled)return;let i=Yl(r),a=au(r.orientation,i,{x:e.clientX,y:e.clientY});a&&a.distance.x<=0&&a.distance.y<=0&&gu({groupElement:r.element,hitRegion:a.hitRegion.rect,pointerEventTarget:e.target})&&n.push(a.hitRegion)}),n}function vu(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 yu(e,t,n=0){return Math.abs(K(e)-K(t))<=n}function bu(e,t){return yu(e,t)?0:e>t?1:-1}function xu({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(bu(r,c)<0)if(a){let e=(i+c)/2;r=bu(r,e)<0?i:c}else r=c;return r=Math.min(s,r),r=K(r),r}function Su({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:i,trigger:a}){if(yu(e,0))return t;let o=a===`imperative-api`,s=Object.values(t),c=Object.values(i),l=[...s],[u,d]=r;Y(u!=null,`Invalid first pivot index`),Y(d!=null,`Invalid second pivot index`);let f=0;switch(a){case`keyboard`:{let t=e<0?d:u,r=n[t];Y(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(Y(n!=null,`Previous layout not found for panel index ${t}`),yu(n,i)){let t=o-n;bu(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?u:d,r=n[t];Y(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(Y(n!=null,`Previous layout not found for panel index ${t}`),yu(n,o)){let t=n-i;bu(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}break;default:{let t=e<0?d:u,r=n[t];Y(r,`Panel constraints not found for index ${t}`);let i=s[t],{collapsible:a,collapsedSize:o,minSize:c}=r;if(a&&bu(i,c)<0)if(e>0){let t=c-o,n=t/2;bu(i+e,c)<0&&(e=bu(e,n)<=0?0:t)}else{let t=c-o,n=100-t/2;bu(i-e,c)<0&&(e=bu(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];Y(e!=null,`Previous layout not found for panel index ${r}`);let a=xu({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];Y(i!=null,`Previous layout not found for panel index ${t}`);let a=i-r,c=xu({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:i,size:a});if(!yu(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(vu(c,l))return i;{let t=e<0?d:u,r=s[t];Y(r!=null,`Previous layout not found for panel index ${t}`);let i=r+f,a=xu({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:r,size:i});if(l[t]=a,!yu(a,i)){let t=i-a,r=e<0?d:u;for(;r>=0&&r<n.length;){let i=l[r];Y(i!=null,`Previous layout not found for panel index ${r}`);let a=i+t,s=xu({overrideDisabledPanels:o,panelConstraints:n[r],prevSize:i,size:a});if(yu(i,s)||(t-=s-i,l[r]=s),yu(t,0))break;e>0?r--:r++}}}if(!yu(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 Cu(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(t[n]===void 0||bu(e[n],t[n])!==0)return!1;return!0}function wu({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(!yu(i,100)&&r.length>0)for(let e=0;e<t.length;e++){let t=r[e];Y(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];Y(i!=null,`No layout data found for index ${e}`);let o=r[e];Y(o!=null,`No layout data found for index ${e}`);let s=xu({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:i,size:o});o!=s&&(a+=o-s,r[e]=s)}if(!yu(a,0))for(let e=0;e<t.length;e++){let n=r[e];Y(n!=null,`No layout data found for index ${e}`);let i=n+a,o=xu({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:n,size:i});if(n!==o&&(a-=o-n,r[e]=o,yu(a,0)))break}let o=Object.keys(e);return r.reduce((e,t,n)=>(e[o[n]]=t,e),{})}function Tu({groupId:e,panelId:t}){let n=()=>{let t=nu();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=wu({layout:Su({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});Cu(l,p)||iu(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&&yu(t,n)},resize:e=>{let{group:t}=n(),{element:r}=i(),a=q({group:t});o(K(G({groupSize:a,panelElement:r,styleProp:e})/a*100))}}}function Eu(e){e.defaultPrevented||_u(e,nu()).forEach(t=>{if(t.separator){let n=t.panels.find(e=>e.panelConstraints.defaultSize!==void 0);if(n){let r=n.panelConstraints.defaultSize,i=Tu({groupId:t.group.id,panelId:n.id});i&&r!==void 0&&(i.resize(r),e.preventDefault())}}})}function Du(e){let t=nu();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 Ou({groupId:e}){let t=()=>{let t=nu();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=wu({layout:e,panelConstraints:r});return n?o:(Cu(o,c)||iu(i,{defaultLayoutDeferred:n,derivedPanelConstraints:r,groupSize:a,layout:c,separatorToPanels:s}),c)}}}function ku(e,t){let n=Du(e),r=tu(n.id,!0),i=n.separators.find(t=>t.element===e);Y(i,`Matching separator not found`);let a=r.separatorToPanels.get(i);Y(a,`Matching panels not found`);let o=a.map(e=>n.panels.indexOf(e)),s=Ou({groupId:n.id}).getLayout(),c=wu({layout:Su({delta:t,initialLayout:s,panelConstraints:r.derivedPanelConstraints,pivotIndices:o,prevLayout:s,trigger:`keyboard`}),panelConstraints:r.derivedPanelConstraints});Cu(s,c)||iu(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedPanelConstraints:r.derivedPanelConstraints,groupSize:r.groupSize,layout:c,separatorToPanels:r.separatorToPanels})}function Au(e){if(e.defaultPrevented)return;let t=e.currentTarget,n=Du(t);if(!n.disabled)switch(e.key){case`ArrowDown`:e.preventDefault(),n.orientation===`vertical`&&ku(t,5);break;case`ArrowLeft`:e.preventDefault(),n.orientation===`horizontal`&&ku(t,-5);break;case`ArrowRight`:e.preventDefault(),n.orientation===`horizontal`&&ku(t,5);break;case`ArrowUp`:e.preventDefault(),n.orientation===`vertical`&&ku(t,-5);break;case`End`:e.preventDefault(),ku(t,100);break;case`Enter`:{e.preventDefault();let n=Du(t),{derivedPanelConstraints:r,layout:i,separatorToPanels:a}=tu(n.id,!0),o=n.separators.find(e=>e.element===t);Y(o,`Matching separator not found`);let s=a.get(o);Y(s,`Matching panels not found`);let c=s[0],l=r.find(e=>e.panelId===c.id);if(Y(l,`Panel metadata not found`),l.collapsible){let e=i[c.id];ku(t,(l.collapsedSize===e?n.mutableState.expandedPanelSizes[c.id]??l.minSize:l.collapsedSize)-e)}break}case`F6`:{e.preventDefault();let n=Du(t).separators.map(e=>e.element),r=Array.from(n).findIndex(t=>t===e.currentTarget);Y(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(),ku(t,-100);break}}var ju={cursorFlags:0,state:`inactive`},Mu=new Xl;function Nu(){return ju}function Pu(e){return Mu.addListener(`change`,e)}function Fu(e){let t=ju,n={...ju};n.cursorFlags=e,ju=n,Mu.emit(`change`,{prev:t,next:n})}function Iu(e){let t=ju;ju=e,Mu.emit(`change`,{prev:t,next:e})}function Lu(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=nu(),n=_u(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)}),Iu({cursorFlags:0,hitRegions:n,initialLayoutMap:r,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:`active`}),n.length&&e.preventDefault()}var Ru=e=>e,zu=()=>{},Bu=1,Vu=2,Hu=4,Uu=8,Wu=3,Gu=12,X;function Ku(){return X===void 0&&(X=!1,typeof window<`u`&&(window.navigator.userAgent.includes(`Chrome`)||window.navigator.userAgent.includes(`Firefox`))&&(X=!0)),X}function qu({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&&Ku()){let t=(e&Bu)!==0,n=(e&Vu)!==0,r=(e&Hu)!==0,i=(e&Uu)!==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 Ku()?r>0&&i>0?`move`:r>0?`ew-resize`:`ns-resize`:r>0&&i>0?`grab`:r>0?`col-resize`:`row-resize`}}var Ju=new WeakMap;function Yu(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Ju.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));let r=Nu();switch(r.state){case`active`:case`hover`:{let e=qu({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}Ju.set(e,{prevStyle:t,styleSheet:n})}function Xu({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=Su({delta:d,initialLayout:f,panelConstraints:h,pivotIndices:e.panels.map(e=>l.indexOf(e)),prevLayout:_,trigger:`mouse-or-touch`});if(Cu(t,_)){if(d!==0&&!u)switch(c){case`horizontal`:s|=d<0?Bu:Vu;break;case`vertical`:s|=d<0?Hu:Uu;break}}else iu(e.group,{defaultLayoutDeferred:m,derivedPanelConstraints:h,groupSize:g,layout:t,separatorToPanels:v})}});let c=0;t.movementX===0?c|=o&Wu:c|=s&Wu,t.movementY===0?c|=o&Gu:c|=s&Gu,Fu(c),Yu(e)}function Zu(e){let t=nu(),n=Nu();switch(n.state){case`active`:Xu({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function Qu(e){if(e.defaultPrevented)return;let t=Nu(),n=nu();switch(t.state){case`active`:if(e.buttons===0){Iu({cursorFlags:0,state:`inactive`}),t.hitRegions.forEach(e=>{let t=tu(e.group.id,!0);iu(e.group,t)});return}Xu({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break;default:{let r=_u(e,n);r.length===0?t.state!==`inactive`&&Iu({cursorFlags:0,state:`inactive`}):Iu({cursorFlags:0,hitRegions:r,state:`hover`}),Yu(e.currentTarget);break}}}function $u(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(Nu().state){case`hover`:Iu({cursorFlags:0,state:`inactive`})}}function ed(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=Nu();switch(t.state){case`active`:Iu({cursorFlags:0,state:`inactive`}),t.hitRegions.length>0&&(Yu(e.currentTarget),t.hitRegions.forEach(e=>{let t=tu(e.group.id,!0);iu(e.group,t)}),e.preventDefault())}}function td(e){let t=0,n=0,r={};for(let i of e)if(i.defaultSize!==void 0){t++;let e=K(i.defaultSize);n+=e,r[i.panelId]=e}else r[i.panelId]=void 0;let i=e.length-t;if(i!==0){let t=K((100-n)/i);for(let n of e)n.defaultSize===void 0&&(r[n.panelId]=t)}return r}function nd(e,t,n){if(!n[0])return;let r=e.panels.find(e=>e.element===t);if(!r||!r.onResize)return;let i=q({group:e}),a=e.orientation===`horizontal`?r.element.offsetWidth:r.element.offsetHeight,o=r.mutableValues.prevSize,s={asPercentage:K(a/i*100),inPixels:a};r.mutableValues.prevSize=s,r.onResize(s,r.id,o)}function rd(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 id({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=K(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]=K((r[e]??0)/a*l);else{let e=K(l/c.length);for(let t of c)u[t]=e}return u}function ad(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 od=new Map;function sd(e){let t=!0;Y(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=q({group:e});if(t===0)return;let n=tu(e.id);if(!n)return;let r=J(e),i=n.defaultLayoutDeferred?td(r):n.layout,a=wu({layout:id({group:e,nextGroupSize:t,prevGroupSize:n.groupSize,prevLayout:i}),panelConstraints:r});if(!n.defaultLayoutDeferred&&Cu(n.layout,a)&&rd(n.derivedPanelConstraints,r)&&n.groupSize===t)return;iu(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,groupSize:t,layout:a,separatorToPanels:n.separatorToPanels})}}else nd(e,i,n)}});a.observe(e.element),e.panels.forEach(e=>{Y(!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=q({group:e}),s=J(e),c=e.panels.map(({id:e})=>e).join(`,`),l=e.mutableState.defaultLayout;l&&(ad(e.panels,l)||(l=void 0));let u=wu({layout:e.mutableState.layouts[c]??l??td(s),panelConstraints:s}),d=e.element.ownerDocument;od.set(d,(od.get(d)??0)+1);let f=new Map;return Yl(e).forEach(e=>{e.separator&&f.set(e.separator,e.panels)}),iu(e,{defaultLayoutDeferred:o===0,derivedPanelConstraints:s,groupSize:o,layout:u,separatorToPanels:f}),e.separators.forEach(e=>{Y(!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`,Au)}),od.get(d)===1&&(d.addEventListener(`dblclick`,Eu,!0),d.addEventListener(`pointerdown`,Lu,!0),d.addEventListener(`pointerleave`,Zu),d.addEventListener(`pointermove`,Qu),d.addEventListener(`pointerout`,$u),d.addEventListener(`pointerup`,ed,!0)),function(){t=!1,od.set(d,Math.max(0,(od.get(d)??0)-1)),$l(e),e.separators.forEach(e=>{e.element.removeEventListener(`keydown`,Au)}),od.get(d)||(d.removeEventListener(`dblclick`,Eu,!0),d.removeEventListener(`pointerdown`,Lu,!0),d.removeEventListener(`pointerleave`,Zu),d.removeEventListener(`pointermove`,Qu),d.removeEventListener(`pointerout`,$u),d.removeEventListener(`pointerup`,ed,!0)),a.disconnect()}}function cd(){let[e,t]=(0,B.useState)({});return[e,(0,B.useCallback)(()=>t({}),[])]}function ld(e){let t=(0,B.useId)();return`${e??t}`}var ud=typeof window<`u`?B.useLayoutEffect:B.useEffect;function dd(e){let t=(0,B.useRef)(e);return ud(()=>{t.current=e},[e]),(0,B.useCallback)((...e)=>t.current?.(...e),[t])}function fd(...e){return dd(t=>{e.forEach(e=>{if(e)switch(typeof e){case`function`:e(t);break;case`object`:e.current=t;break}})})}function pd(e){let t=(0,B.useRef)({...e});return ud(()=>{for(let n in e)t.current[n]=e[n]},[e]),t.current}var md=(0,B.createContext)(null);function hd(e,t){let n=(0,B.useRef)({getLayout:()=>({}),setLayout:Ru});(0,B.useImperativeHandle)(t,()=>n.current,[]),ud(()=>{Object.assign(n.current,Ou({groupId:e}))})}function gd({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,B.useRef)({onLayoutChange:{},onLayoutChanged:{}}),h=dd(e=>{Cu(m.current.onLayoutChange,e)||(m.current.onLayoutChange=e,c?.(e))}),g=dd(e=>{Cu(m.current.onLayoutChanged,e)||(m.current.onLayoutChanged=e,l?.(e))}),_=ld(s),v=(0,B.useRef)(null),[y,b]=cd(),x=(0,B.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:d,separators:[]}),S=fd(v,a);hd(_,o);let C=dd((e,t)=>{let r=Nu(),i=eu(e),a=tu(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=pd({defaultLayout:n,disableCursor:r}),T=(0,B.useMemo)(()=>({get disableCursor(){return!!w.disableCursor},getPanelStyles:C,id:_,orientation:u,registerPanel:e=>{let t=x.current;return t.panels=Vl(u,[...t.panels,e]),b(),()=>{t.panels=t.panels.filter(t=>t!==e),b()}},registerSeparator:e=>{let t=x.current;return t.separators=Vl(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=eu(_),i=tu(_);r&&i&&iu(r,{...i,derivedPanelConstraints:J(r)})},toggleSeparatorDisabled:(e,t)=>{let n=x.current.separators.find(t=>t.id===e);n&&(n.disabled=t)}}),[C,_,b,u,w]),E=(0,B.useRef)(null);return ud(()=>{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=sd(r),{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:c}=tu(r.id,!0);!o&&s.length>0&&(h(c),g(c));let l=ru(_,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=yu(t.collapsedSize,i[t.panelId]),a=yu(t.collapsedSize,n[t.panelId]);e&&!a&&(r.mutableState.expandedPanelSizes[t.panelId]=n[t.panelId])}}});let o=Nu().state!==`active`;h(i),o&&g(i)});return()=>{E.current=null,a(),l()}},[i,_,g,h,u,y,w]),(0,B.useEffect)(()=>{let e=E.current;e&&(e.mutableState.defaultLayout=n,e.mutableState.disableCursor=!!r)}),(0,V.jsx)(md.Provider,{value:T,children:(0,V.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})})}gd.displayName=`Group`;function _d(){let e=(0,B.useContext)(md);return Y(e,`Group Context not found; did you render a Panel or Separator outside of a Group?`),e}function vd(e,t){let{id:n}=_d(),r=(0,B.useRef)({collapse:zu,expand:zu,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:zu});(0,B.useImperativeHandle)(t,()=>r.current,[]),ud(()=>{Object.assign(r.current,Tu({groupId:n,panelId:e}))})}function yd({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=ld(c),_=pd({disabled:a}),v=(0,B.useRef)(null),y=fd(v,o),{getPanelStyles:b,id:x,orientation:S,registerPanel:C,togglePanelDisabled:w}=_d(),T=d!==null,E=dd((e,t,n)=>{d?.(e,c,n)});ud(()=>{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,B.useEffect)(()=>{w(g,!!a)},[a,g,w]),vd(g,f);let D=(0,B.useSyncExternalStore)(e=>ru(x,e),()=>JSON.stringify(b(x,g)),()=>JSON.stringify(b(x,g)));return(0,V.jsx)(`div`,{...m,"aria-disabled":a||void 0,"data-panel":!0,"data-testid":g,id:g,ref:y,style:{...bd,display:`flex`,flexBasis:0,flexShrink:1,overflow:`visible`,...JSON.parse(D)},children:(0,V.jsx)(`div`,{className:t,style:{maxHeight:`100%`,maxWidth:`100%`,flexGrow:1,overflow:`auto`,...p,touchAction:S===`horizontal`?`pan-y`:`pan-x`},children:e})})}yd.displayName=`Panel`;var bd={minHeight:0,maxHeight:`100%`,height:`auto`,minWidth:0,maxWidth:`100%`,width:`auto`,border:`none`,borderWidth:0,padding:0,margin:0};function Z({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=wu({layout:Su({delta:l-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n],i=wu({layout:Su({delta:c-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:a,valueNow:o}}function xd({children:e,className:t,disabled:n,elementRef:r,id:i,style:a,...o}){let s=ld(i),c=pd({disabled:n}),[l,u]=(0,B.useState)({}),[d,f]=(0,B.useState)(`inactive`),p=(0,B.useRef)(null),m=fd(p,r),{disableCursor:h,id:g,orientation:_,registerSeparator:v,toggleSeparatorDisabled:y}=_d(),b=_===`horizontal`?`vertical`:`horizontal`;ud(()=>{let e=p.current;if(e!==null){let t={disabled:c.disabled,element:e,id:s},n=v(t),r=Pu(e=>{f(e.next.state!==`inactive`&&e.next.hitRegions.some(e=>e.separator===t)?e.next.state:`inactive`)}),i=ru(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(Z({layout:r,panelConstraints:n,panelId:e.id,panelIndex:t}))}});return()=>{r(),i(),n()}}},[g,s,v,c]),(0,B.useEffect)(()=>{y(s,!!n)},[n,s,y]);let x;return n&&!h&&(x=`not-allowed`),(0,V.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})}xd.displayName=`Separator`;var Sd=`ppm-custom-order`;function Cd(){try{let e=localStorage.getItem(Sd);return e?JSON.parse(e):null}catch{return null}}function wd(e){try{localStorage.setItem(Sd,JSON.stringify(e))}catch{}}function Td(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 Ed=Oe((e,t)=>({projects:[],activeProject:null,customOrder:Cd(),loading:!1,error:null,fetchProjects:async()=>{e({loading:!0,error:null});try{e({projects:await R.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 R.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 R.patch(`/api/projects/${encodeURIComponent(e)}/color`,{color:n}),await t().fetchProjects()},moveProject:async(n,r)=>{let{projects:i,customOrder:a}=t(),o=Td(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]],wd(l),await R.patch(`/api/projects/reorder`,{order:l}),e({customOrder:l})},reorderProjects:async t=>{wd(t),e({customOrder:t}),await R.patch(`/api/projects/reorder`,{order:t}).catch(()=>{})},renameProject:async(e,n)=>{await R.patch(`/api/projects/${encodeURIComponent(e)}`,{name:n}),await t().fetchProjects()},deleteProject:async t=>{await R.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&&wd(r),{projects:n,customOrder:r,activeProject:e.activeProject?.name===t?n[0]??null:e.activeProject}})}})),Dd=`application/ppm-tab`,Od=!1,kd=new Set;function Ad(e){Od!==e&&(Od=e,kd.forEach(e=>e()))}function jd(){return(0,B.useSyncExternalStore)(e=>(kd.add(e),()=>kd.delete(e)),()=>Od)}function Md(){Ad(!1)}function Nd(e){let[t,n]=(0,B.useState)(null),r=(0,B.useRef)(null);return{dropIndex:t,handleDragStart:(0,B.useCallback)((t,n)=>{let r={tabId:n,panelId:e};t.dataTransfer.setData(Dd,JSON.stringify(r)),t.dataTransfer.effectAllowed=`move`,requestAnimationFrame(()=>Ad(!0))},[e]),handleDragOver:(0,B.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,B.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`)},[]),handleDrop:(0,B.useCallback)(i=>{i.preventDefault(),Ad(!1);let a=i.dataTransfer.getData(Dd);if(a){try{let n=JSON.parse(a),r=P.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,B.useCallback)(()=>{Ad(!1),n(null),r.current=null},[])}}var Q=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),Pd=[{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+Shift+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+Shift+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`},...Array.from({length:9},(e,t)=>({id:`switch-project-${t+1}`,label:`Switch to Project ${t+1}`,category:`projects`,defaultKey:`Mod+${t+1}`}))],Fd=new Map(Pd.map(e=>[e.id,e.defaultKey]));function Id(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`:Q?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 Ld(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 Rd(e){return e.replace(/Mod/g,Q?`⌘`:`Ctrl`).replace(/Shift/g,Q?`⇧`:`Shift`).replace(/Alt/g,Q?`⌥`:`Alt`).replace(/Meta|Cmd/g,`⌘`).replace(/Ctrl/g,Q?`⌃`:`Ctrl`)}function zd(e){if([`Control`,`Meta`,`Alt`,`Shift`].includes(e.key))return null;let t=[];e.ctrlKey&&!e.metaKey&&t.push(Q?`Ctrl`:`Mod`),e.metaKey&&t.push(Q?`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 Bd=Oe((e,t)=>({overrides:{},loaded:!1,getBinding:e=>t().overrides[e]??Fd.get(e)??``,matchesEvent:(e,n)=>{let r=t().getBinding(n);return r?Ld(e,Id(r)):!1},setBinding:(n,r)=>{e({overrides:{...t().overrides,[n]:r}}),R.put(`/api/settings/keybindings`,{[n]:r}).catch(()=>{})},resetBinding:n=>{let r={...t().overrides};delete r[n],e({overrides:r}),R.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&&R.put(`/api/settings/keybindings`,n).catch(()=>{})},loadFromServer:async()=>{try{e({overrides:await R.get(`/api/settings/keybindings`),loaded:!0})}catch{e({loaded:!0})}}}));function Vd(e){window.dispatchEvent(new CustomEvent(`open-command-palette`,{detail:e}))}function Hd(){let[e,t]=(0,B.useState)(!1),[n,r]=(0,B.useState)(``);return(0,B.useEffect)(()=>{let e=0,{matchesEvent:n}=Bd.getState();function i(n){if(n.type===`keyup`&&n.key===`Shift`&&!n.ctrlKey&&!n.metaKey&&!n.altKey){let n=Date.now();if(n-e<400){e=0,r(``),t(!0);return}e=n;return}if(n.type!==`keydown`)return;let{matchesEvent:i}=Bd.getState();if(i(n,`save-prevent`)){n.preventDefault();return}if(i(n,`command-palette`)){n.preventDefault(),r(``),t(!0);return}if(i(n,`toggle-sidebar`)){n.preventDefault(),I.getState().toggleSidebar();return}if(i(n,`next-tab`)||i(n,`prev-tab`)){n.preventDefault();let{tabs:e,activeTabId:t,setActiveTab:r}=F.getState();if(e.length<2)return;let a=e.findIndex(e=>e.id===t);r(e[i(n,`next-tab`)?(a+1)%e.length:(a-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(i(n,e.action)){n.preventDefault();let t=Ed.getState().activeProject;F.getState().openTab({type:e.type,title:e.title,projectId:t?.name??null,metadata:t?{projectName:t.name}:void 0,closable:!0});return}if(i(n,`open-settings`)){n.preventDefault();let e=I.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`settings`);return}if(i(n,`open-git-status`)){n.preventDefault();let e=I.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`git`);return}if(i(n,`open-search`)){n.preventDefault();let e=I.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`search`);return}for(let e=1;e<=9;e++)if(i(n,`switch-project-${e}`)){n.preventDefault();let t=Ed.getState().projects[e-1];t&&(Ed.getState().setActiveProject(t),F.getState().switchProject(t.name));return}}function a(e){let n=e.detail;r(typeof n==`string`?n:``),t(!0)}return window.addEventListener(`keydown`,i),window.addEventListener(`keyup`,i),window.addEventListener(`open-command-palette`,a),()=>{window.removeEventListener(`keydown`,i),window.removeEventListener(`keyup`,i),window.removeEventListener(`open-command-palette`,a)}},[]),{paletteOpen:e,paletteInitialQuery:n,closePalette:(0,B.useCallback)(()=>{t(!1),r(``)},[])}}var Ud={approval_request:`bg-red-500`,question:`bg-amber-500`,done:`bg-blue-500`},Wd={done:0,question:1,approval_request:2};function Gd(e){return e&&Ud[e]||`bg-red-500`}var Kd=Oe()(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 qd(e){let t=0;for(let[,n]of e.notifications)t+=n.count;return t}function Jd(e){return t=>{let n=null,r=-1;for(let[,i]of t.notifications){if(i.projectName!==e)continue;let t=Wd[i.type]??0;t>r&&(r=t,n=i.type)}return n}}function Yd(e){let[t,n]=(0,B.useState)(!1),[r,i]=(0,B.useState)(!1),a=(0,B.useCallback)(()=>{let t=e.current;t&&(n(t.scrollLeft>1),i(t.scrollLeft+t.clientWidth<t.scrollWidth-1))},[e]);return(0,B.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,B.useCallback)(()=>{e.current?.scrollBy({left:-150,behavior:`smooth`})},[e]),scrollRight:(0,B.useCallback)(()=>{e.current?.scrollBy({left:150,behavior:`smooth`})},[e])}}var Xd={done:0,question:1,approval_request:2};function Zd(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,_=Xd[f.type]??0;g<=i&&_>s&&(s=_,o=f.type),h>=a&&_>l&&(l=_,c=f.type)}return{left:o,right:c}}function Qd(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 $d(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 ef(e){let t=Qd(e);return t?$d(t.r,t.g,t.b)<.4:!1}function tf({tab:e,isActive:t,icon:n,showDropBefore:r,notificationType:i,onSelect:a,onClose:o,onDragStart:s,onDragOver:c,onDragEnd:l,tabRef:u,onRename:d}){let[f,p]=(0,B.useState)(!1),[m,h]=(0,B.useState)(e.title),g=(0,B.useRef)(null);(0,B.useEffect)(()=>{f&&(h(e.title),setTimeout(()=>g.current?.select(),0))},[f]);let _=()=>{p(!1);let t=m.trim();t&&t!==e.title&&d&&d(t)},v=e.metadata?.connectionColor,y=v?{backgroundColor:t?v:`${v}33`,color:t&&ef(v)?`#fff`:void 0}:void 0;return(0,V.jsxs)(`div`,{className:`relative flex items-center`,children:[r&&(0,V.jsx)(`div`,{className:`absolute left-0 top-1 bottom-1 w-0.5 bg-primary rounded-full z-10`}),(0,V.jsxs)(`button`,{ref:u,"data-tab-item":!0,draggable:!f,onClick:a,onAuxClick:t=>{t.button===1&&e.closable&&(t.preventDefault(),o())},onDragStart:s,onDragOver:c,onDragEnd:l,style:y,className:L(`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`,!y&&(t?`border-primary text-primary`:`border-transparent text-text-secondary hover:text-foreground`),y&&`border-transparent`),children:[(0,V.jsxs)(`span`,{className:`relative`,children:[(0,V.jsx)(n,{className:`size-4`}),i&&!t&&(0,V.jsx)(`span`,{className:L(`absolute -top-1 -right-1 size-2 rounded-full`,Gd(i))})]}),f?(0,V.jsx)(`input`,{ref:g,value:m,onChange:e=>h(e.target.value),onBlur:_,onKeyDown:e=>{e.key===`Enter`&&_(),e.key===`Escape`&&p(!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,V.jsx)(`span`,{className:`max-w-[120px] truncate`,onDoubleClick:e=>{d&&(e.stopPropagation(),p(!0))},children:e.title}),e.closable&&!f&&(0,V.jsx)(`span`,{role:`button`,tabIndex:0,onClick:e=>{e.stopPropagation(),o()},onKeyDown:e=>{e.key===`Enter`&&(e.stopPropagation(),o())},className:`ml-1 opacity-0 group-hover:opacity-100 rounded-sm hover:bg-surface-elevated p-0.5 transition-opacity`,children:(0,V.jsx)(x,{className:`size-3`})})]})]})}var nf={terminal:Wt,chat:wt,editor:z,database:et,sqlite:et,postgres:et,"git-graph":pt,"git-diff":ot,settings:Bt};function rf({panelId:e}){Ed(e=>e.activeProject);let t=(0,B.useRef)(new Map),n=(0,B.useRef)(null),r=(0,B.useRef)(0),i=P(t=>e?t.panels[e]:t.panels[t.focusedPanelId]),a=i?.tabs??[],o=i?.activeTabId??null,s=i?.id??P.getState().focusedPanelId,{dropIndex:c,handleDragStart:l,handleDragOver:u,handleDragOverBar:d,handleDrop:f,handleDragEnd:p}=Nd(s),m=Kd(e=>e.notifications),{canScrollLeft:h,canScrollRight:g,scrollLeft:_,scrollRight:v}=Yd(n),y=Zd(n.current,t.current,a,m);(0,B.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 b=(0,B.useCallback)((e,t)=>{F.getState().updateTab(e.id,{title:t});let n=e.metadata?.projectName,r=e.metadata?.sessionId;n&&r&&R.patch(`${Ne(n)}/chat/sessions/${r}`,{title:t}).catch(()=>{})},[]);function x(e){e.target.closest(`[data-tab-item]`)||Vd()}function S(e){e.target.closest(`[data-tab-item]`)||(e.preventDefault(),Vd())}return(0,V.jsxs)(`div`,{className:`hidden md:flex items-center h-10 border-b border-border bg-background relative`,onDragOver:d,onDrop:f,onDoubleClick:x,onContextMenu:S,children:[h&&(0,V.jsx)(`button`,{onClick:_,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,V.jsxs)(`span`,{className:`relative`,children:[(0,V.jsx)(Ke,{className:`size-4 text-text-secondary`}),y.left&&(0,V.jsx)(`span`,{className:L(`absolute -top-1 -right-0.5 size-2 rounded-full`,Gd(y.left))})]})}),(0,V.jsx)(`div`,{ref:n,className:`flex-1 overflow-x-auto overflow-y-hidden min-w-0 scrollbar-none`,children:(0,V.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?m.get(r):void 0,a=i&&i.count>0?i.type:null;return(0,V.jsx)(tf,{tab:e,isActive:e.id===o,icon:nf[e.type],showDropBefore:c===n,notificationType:a,onSelect:()=>{P.getState().setActiveTab(e.id,s),r&&Kd.getState().clearForSession(r)},onClose:()=>P.getState().closeTab(e.id,s),onDragStart:t=>l(t,e.id),onDragOver:t=>u(t,e.id,n),onDragEnd:p,tabRef:n=>{n?t.current.set(e.id,n):t.current.delete(e.id)},onRename:e.type===`chat`?t=>b(e,t):void 0},e.id)}),c!==null&&c>=a.length&&(0,V.jsx)(`div`,{className:`w-0.5 h-6 bg-primary rounded-full`}),(0,V.jsx)(`button`,{onClick:()=>Vd(),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,V.jsx)(Pt,{className:`size-4`})})]})}),g&&(0,V.jsx)(`button`,{onClick:v,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,V.jsxs)(`span`,{className:`relative`,children:[(0,V.jsx)(qe,{className:`size-4 text-text-secondary`}),y.right&&(0,V.jsx)(`span`,{className:L(`absolute -top-1 -left-0.5 size-2 rounded-full`,Gd(y.right))})]})})]})}function af({panelId:e}){let[t,n]=(0,B.useState)(null),r=jd(),i=P(e=>e.grid),a=P(e=>e.isMobile()),o=De(i,e),s=!a&&i.length<3,c=o?!a&&(i[o.row]?.length??0)<Ee(!1):!1,l=(0,B.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&&c?`left`:n>1-i&&c?`right`:r<i&&s?`top`:r>1-i&&s?`bottom`:`center`},[c,s]),u=(0,B.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.stopPropagation(),n(l(e)))},[l]),d=(0,B.useCallback)(e=>{e.currentTarget.contains(e.relatedTarget)||n(null)},[]),f=(0,B.useCallback)(t=>{t.preventDefault(),t.stopPropagation();let r=l(t);if(n(null),Md(),!r)return;let i=t.dataTransfer.getData(Dd);if(i)try{let t=JSON.parse(i),n=P.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{}},[l,e]);return r?(0,V.jsxs)(`div`,{className:`absolute inset-0 z-20`,onDragOver:u,onDragLeave:d,onDrop:f,children:[t===`left`&&(0,V.jsx)(`div`,{className:`absolute inset-y-0 left-0 w-1/3 bg-primary/10 border-2 border-primary/30 rounded-l-md`}),t===`right`&&(0,V.jsx)(`div`,{className:`absolute inset-y-0 right-0 w-1/3 bg-primary/10 border-2 border-primary/30 rounded-r-md`}),t===`top`&&(0,V.jsx)(`div`,{className:`absolute inset-x-0 top-0 h-1/3 bg-primary/10 border-2 border-primary/30 rounded-t-md`}),t===`bottom`&&(0,V.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 h-1/3 bg-primary/10 border-2 border-primary/30 rounded-b-md`}),t===`center`&&(0,V.jsx)(`div`,{className:`absolute inset-0 bg-primary/5 border-2 border-dashed border-primary/30 rounded-md`})]}):null}var of=`modulepreload`,sf=function(e){return`/`+e},cf={},lf=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=sf(t,n),t in cf)return;cf[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:of,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},uf=[{type:`terminal`,label:`Terminal`,icon:Wt},{type:`chat`,label:`AI Chat`,icon:wt},{type:`git-graph`,label:`Git Graph`,icon:pt}],df={terminal:(0,B.lazy)(()=>lf(()=>import(`./terminal-tab-Cuznr8Lg.js`).then(e=>({default:e.TerminalTab})),__vite__mapDeps([0,1,2,3,4,5,6]))),chat:(0,B.lazy)(()=>lf(()=>import(`./chat-tab-DtIaMWNT.js`).then(e=>({default:e.ChatTab})),__vite__mapDeps([7,1,8,2,3,9,10,11,12,5,13,4]))),editor:(0,B.lazy)(()=>lf(()=>import(`./code-editor-DXqocnye.js`).then(e=>({default:e.CodeEditor})),__vite__mapDeps([14,1,15,4,5,2,3,12,13,10]))),database:(0,B.lazy)(()=>lf(()=>import(`./database-viewer-ChX5vA56.js`).then(e=>({default:e.DatabaseViewer})),__vite__mapDeps([16,1,17,3,10]))),sqlite:(0,B.lazy)(()=>lf(()=>import(`./sqlite-viewer-0iVQjCmF.js`).then(e=>({default:e.SqliteViewer})),__vite__mapDeps([18,1,17,3,19,10]))),postgres:(0,B.lazy)(()=>lf(()=>import(`./postgres-viewer-DRo3924t.js`).then(e=>({default:e.PostgresViewer})),__vite__mapDeps([20,1,17,3,19,10]))),"git-graph":(0,B.lazy)(()=>lf(()=>import(`./git-graph-DYbWcg6M.js`).then(e=>({default:e.GitGraph})),__vite__mapDeps([21,1,8,2,3,12,5,10]))),"git-diff":(0,B.lazy)(()=>lf(()=>import(`./diff-viewer-8RNfSVOl.js`).then(e=>({default:e.DiffViewer})),__vite__mapDeps([22,1,15,4,5,3,11,10]))),settings:(0,B.lazy)(()=>lf(()=>import(`./settings-tab-6ytjTMb9.js`).then(e=>({default:e.SettingsTab})),__vite__mapDeps([23,1,8,2,3,9,10,4,5])))};function ff({panelId:e,projectName:t}){let n=P(t=>t.panels[e]),r=P(t=>t.focusedPanelId===e),i=P(e=>(e.currentProject===t?e.grid:e.projectGrids[t]??[[]]).flat().length);return n?(0,V.jsxs)(`div`,{className:L(`flex flex-col h-full overflow-hidden`,i>1&&`border border-transparent`,i>1&&r&&`border-primary/30`),onMouseDown:()=>{P.getState().focusedPanelId!==e&&P.getState().setFocusedPanel(e)},children:[(0,V.jsx)(rf,{panelId:e}),(0,V.jsxs)(`div`,{className:`flex-1 overflow-hidden relative`,children:[n.tabs.length===0?(0,V.jsx)(pf,{panelId:e}):n.tabs.map(e=>{let t=df[e.type];return(0,V.jsx)(`div`,{className:e.id===n.activeTabId?`h-full w-full`:`hidden`,children:(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,V.jsx)(xt,{className:`size-6 animate-spin text-primary`})}),children:(0,V.jsx)(t,{metadata:e.metadata,tabId:e.id})})},e.id)}),(0,V.jsx)(af,{panelId:e})]})]}):null}function pf({panelId:e}){let t=Ed(e=>e.activeProject);function n(n){let r=n!==`settings`&&t?{projectName:t.name}:void 0;P.getState().openTab({type:n,title:uf.find(e=>e.type===n)?.label??n,metadata:r,projectId:t?.name??null,closable:!0},e)}return(0,V.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-4 text-text-secondary`,children:[(0,V.jsx)(`p`,{className:`text-sm`,children:`Open a tab to get started`}),(0,V.jsx)(`div`,{className:`flex flex-col md:flex-row flex-wrap justify-center gap-2`,children:uf.map(e=>{let t=e.icon;return(0,V.jsxs)(`button`,{onClick:()=>n(e.type),className:`flex items-center gap-2 px-4 py-2 rounded-md border border-border bg-surface hover:bg-surface-elevated text-sm text-foreground transition-colors`,children:[(0,V.jsx)(t,{className:`size-4`}),e.label]},e.type)})})]})}function mf({projectName:e}){let t=P(t=>t.currentProject===e?t.grid:t.projectGrids[e]??[[]]);return t.flat().length<=1&&t[0]?.[0]?(0,V.jsx)(ff,{panelId:t[0][0],projectName:e}):(0,V.jsx)(gd,{orientation:`vertical`,style:{height:`100%`},children:t.map((n,r)=>(0,V.jsx)(hf,{row:n,rowIdx:r,totalRows:t.length,projectName:e},`row-${r}`))})}function hf({row:e,rowIdx:t,totalRows:n,projectName:r}){return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(yd,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:e.length===1?(0,V.jsx)(ff,{panelId:e[0],projectName:r}):(0,V.jsx)(gd,{orientation:`horizontal`,children:e.map((t,n)=>(0,V.jsx)(gf,{panelId:t,colIdx:n,totalCols:e.length,projectName:r},t))})}),t<n-1&&(0,V.jsx)(_f,{orientation:`horizontal`})]})}function gf({panelId:e,colIdx:t,totalCols:n,projectName:r}){return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(yd,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:(0,V.jsx)(ff,{panelId:e,projectName:r})}),t<n-1&&(0,V.jsx)(_f,{orientation:`vertical`})]})}function _f({orientation:e}){let t=e===`vertical`;return(0,V.jsx)(xd,{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
|
|
@@ -25,4 +25,4 @@ For more information, see https://radix-ui.com/primitives/docs/components/${t.do
|
|
|
25
25
|
<rect width="32" height="32" rx="6" fill="#3b82f6"/>
|
|
26
26
|
<text x="16" y="22" text-anchor="middle" font-family="system-ui,sans-serif" font-weight="700" font-size="11" fill="white">PPM</text>
|
|
27
27
|
<circle cx="26" cy="6" r="5" fill="#ef4444"/>
|
|
28
|
-
</svg>`,Qm=`data:image/svg+xml,${encodeURIComponent(Xm)}`,$m=`data:image/svg+xml,${encodeURIComponent(Zm)}`;function eh(e){let t=document.getElementById(`ppm-favicon`);t&&(t.href=e?$m:Qm)}function th(e,t,n){let r=[t,n||null,`PPM`].filter(Boolean).join(` - `);return e>0?`(${e}) ${r}`:r}function nh(){let e=Ed(e=>e.activeProject),t=I(e=>e.deviceName);(0,B.useEffect)(()=>{let n=()=>{let n=qd(Kd.getState());document.title=th(n,e?.name,t),eh(n>0)};return n(),Kd.subscribe(n)},[e?.name,t])}function rh(e){let t=[];for(let n of e)n.type===`file`&&t.push({name:n.name,path:n.path}),n.children&&t.push(...rh(n.children));return t}function ih(e){return e?e.startsWith(`/`)||e.startsWith(`~/`)||e.startsWith(`~\\`)||/^[A-Za-z]:[/\\]/.test(e):!1}function ah(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 oh=new Map;function sh({open:e,onClose:t,initialQuery:n=``}){let[r,i]=(0,B.useState)(``),[a,o]=(0,B.useState)(0),[s,c]=(0,B.useState)([]),[l,u]=(0,B.useState)(!1),[d,f]=(0,B.useState)([]),p=(0,B.useRef)(null),m=(0,B.useRef)(null),h=F(e=>e.openTab),g=Ed(e=>e.activeProject),_=vf(e=>e.tree),v=I(e=>e.setSidebarActiveTab),y=I(e=>e.sidebarCollapsed),b=I(e=>e.toggleSidebar),x=(0,B.useCallback)(async e=>{if(oh.has(e)){c(oh.get(e));return}u(!0);try{let t=await R.get(`/api/fs/list?dir=${encodeURIComponent(e)}`);oh.set(e,t),c(t)}catch{c([])}finally{u(!1)}},[]);(0,B.useEffect)(()=>{if(!ih(r)){c([]);return}x(ah(r))},[r,x]),(0,B.useEffect)(()=>{if(ih(r)||r.trim().length<2){f([]);return}let e=setTimeout(async()=>{try{f(await R.get(`/api/db/search?q=${encodeURIComponent(r.trim())}`)??[])}catch{f([])}},300);return()=>clearTimeout(e)},[r]);let S=(0,B.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()};return[{id:`chat`,label:`New AI Chat`,icon:wt,action:r(`chat`,`AI Chat`),keywords:`ai assistant claude`,group:`action`},{id:`terminal`,label:`New Terminal`,icon:Wt,action:r(`terminal`,`Terminal`),keywords:`bash shell console`,group:`action`},{id:`git-graph`,label:`Git Graph`,icon:pt,action:r(`git-graph`,`Git Graph`),keywords:`branch history log`,group:`action`},{id:`postgres`,label:`PostgreSQL`,icon:et,action:r(`postgres`,`PostgreSQL`),keywords:`database pg sql query`,group:`action`},{id:`git-status`,label:`Git Status`,icon:mt,action:()=>{v(`git`),t()},keywords:`changes diff staged`,group:`action`},{id:`settings`,label:`Settings`,icon:Bt,action:()=>{y&&b(),v(`settings`),t()},keywords:`config preferences theme`,group:`action`}]},[g,h,t,v,y,b]),C=(0,B.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0;return rh(_).map(r=>({id:`file:${r.path}`,label:r.name,hint:r.path,icon:z,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]),w=(0,B.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0;return s.map(r=>{let i=je(r);return{id:`fs:${r}`,label:i,hint:r,icon:ut,group:`fs`,keywords:r,action:()=>{h({type:`editor`,title:i,projectId:e,metadata:{...n,filePath:r},closable:!0}),t()}}})},[s,g,h,t]),T=(0,B.useMemo)(()=>d.map(e=>({id:`db:${e.connectionId}:${e.schemaName}.${e.tableName}`,label:e.tableName,hint:`${e.connectionName} (${e.connectionType===`postgres`?`PG`:`SQLite`})`,icon:et,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]),E=(0,B.useMemo)(()=>[...S,...C],[S,C]),D=(0,B.useMemo)(()=>{if(ih(r)){let e=r.lastIndexOf(`/`),t=e>=0?r.slice(e+1).toLowerCase():``;return t?w.filter(e=>{let n=e.label.toLowerCase(),r=(e.keywords??``).toLowerCase();return n.includes(t)||r.includes(t)}).slice(0,50):w.slice(0,50)}if(!r.trim())return S;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=E.filter(e=>t(e.label.toLowerCase())||e.keywords&&t(e.keywords.toLowerCase()));return r.trim().length>=2?[...T,...n]:n},[E,S,w,T,r]);(0,B.useEffect)(()=>{e&&(i(n||``),o(0),c([]),f([]),requestAnimationFrame(()=>p.current?.focus()))},[e]),(0,B.useEffect)(()=>{o(e=>Math.min(e,Math.max(D.length-1,0)))},[D.length]),(0,B.useEffect)(()=>{let e=m.current;e&&e.children[a]?.scrollIntoView({block:`nearest`})},[a]);let O=(0,B.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 ee(e){let n=D.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?D[a]?.action():r.trim()&&O();break;case`Escape`:e.preventDefault(),t();break}}if(!e)return null;let k=ih(r);return(0,V.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:t,children:[(0,V.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,V.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:ee,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-3 py-2.5`,children:[(0,V.jsx)(Rt,{className:`size-4 text-text-subtle shrink-0`}),(0,V.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,V.jsx)(xt,{className:`size-3.5 animate-spin text-text-subtle shrink-0`}),(0,V.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`})]}),k&&!l&&s.length===0&&r.length<4&&(0,V.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,V.jsx)(`div`,{ref:m,className:`max-h-72 overflow-y-auto py-1`,children:D.length===0?l?(0,V.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`Searching...`}):r.trim()?(0,V.jsxs)(`button`,{onClick:O,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,V.jsx)(wt,{className:`size-4 shrink-0 text-accent`}),(0,V.jsxs)(`span`,{children:[`Ask AI: `,(0,V.jsx)(`span`,{className:`text-text-primary font-medium`,children:r.trim().slice(0,60)})]})]}):(0,V.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`No results`}):D.map((e,t)=>{let n=e.icon;return(0,V.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,V.jsx)(n,{className:`size-4 shrink-0`}),(0,V.jsx)(`span`,{className:`truncate`,children:e.label}),e.hint&&(0,V.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 text-xs text-text-subtle truncate max-w-[200px]`,children:[e.connectionColor&&(0,V.jsx)(`span`,{className:`shrink-0 size-2 rounded-full`,style:{backgroundColor:e.connectionColor}}),e.hint]})]},e.id)})}),(0,V.jsxs)(`div`,{className:`flex items-center justify-center gap-1.5 border-t border-border px-3 py-1.5`,children:[(0,V.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`Press`}),(0,V.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,V.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,V.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`to open this palette`})]})]})]})}function ch(){let[e,t]=(0,B.useState)(null),[n,r]=(0,B.useState)(!1);(0,B.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,B.useCallback)(()=>t(null),[]);return e?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/50`,onClick:i}),(0,V.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,V.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-border`,children:[(0,V.jsx)(`span`,{className:`text-sm font-medium`,children:`Bug Report`}),(0,V.jsx)(`button`,{onClick:i,className:`p-1 rounded hover:bg-surface-elevated`,children:(0,V.jsx)(x,{className:`size-4`})})]}),(0,V.jsx)(`pre`,{className:`flex-1 overflow-auto px-4 py-2 text-xs font-mono whitespace-pre-wrap break-all`,children:e}),(0,V.jsxs)(`div`,{className:`flex gap-2 p-3 border-t border-border`,children:[(0,V.jsxs)(`button`,{onClick:async()=>{await km(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,V.jsx)(se,{className:`size-3`}):(0,V.jsx)($e,{className:`size-3`}),n?`Copied`:`Copy`]}),(0,V.jsxs)(`button`,{onClick:()=>{Om(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,V.jsx)(Te,{className:`size-3`}),`Open GitHub Issue`]})]})]})]}):null}function lh(){let[e,t]=(0,B.useState)(`checking`),[n,r]=(0,B.useState)(!1),[i,a]=(0,B.useState)(),[o,s]=(0,B.useState)(!1);(0,B.useEffect)(()=>{let e=()=>{a(`settings`),r(!0)};return window.addEventListener(`open-mobile-settings`,e),()=>window.removeEventListener(`open-mobile-settings`,e)},[]);let[c,l]=(0,B.useState)(()=>new Set([`__global__`])),u=I(e=>e.theme),d=I(e=>e.deviceName),f=Ed(e=>e.fetchProjects),p=I(e=>e.fetchServerInfo),m=Ed(e=>e.activeProject),h=(0,B.useRef)(qm());(0,B.useEffect)(()=>{if(ke(u),u===`system`){let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>ke(`system`);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)}},[u]),(0,B.useEffect)(()=>{p()},[p]),(0,B.useEffect)(()=>{async function e(){let e=Pe();try{let n={};e&&(n.Authorization=`Bearer ${e}`),(await(await fetch(`/api/auth/check`,{headers:n})).json()).ok?t(`authenticated`):t(`unauthenticated`)}catch{t(`unauthenticated`)}}e()},[]),Ym();let{paletteOpen:g,paletteInitialQuery:_,closePalette:v}=Hd();nh(),(0,B.useEffect)(()=>{if(e!==`authenticated`)return;let t=e=>{e.preventDefault()};return window.addEventListener(`beforeunload`,t),()=>window.removeEventListener(`beforeunload`,t)},[e]),(0,B.useEffect)(()=>{e===`authenticated`&&lf(async()=>{let{useKeybindingsStore:e}=await import(`./keybindings-store-BU4VqInW.js`);return{useKeybindingsStore:e}},__vite__mapDeps([24,1,10])).then(({useKeybindingsStore:e})=>{e.getState().loadFromServer()})},[e]),(0,B.useEffect)(()=>{e===`authenticated`&&f().then(()=>{let{projectName:e,tabId:t,openChat:n}=h.current,{projects:r,customOrder:i}=Ed.getState();if(r.length===0)return;let a=e?r.find(t=>t.name===e):void 0;a||=Td(r,i)[0],a&&(Ed.getState().setActiveProject(a),e&&t&&queueMicrotask(()=>{let{tabs:e}=F.getState();e.some(e=>e.id===t)&&F.getState().setActiveTab(t)})),n&&queueMicrotask(()=>{let{tabs:e,setActiveTab:t,openTab:r}=F.getState(),i=e.find(e=>e.type===`chat`&&e.metadata?.sessionId===n);i?t(i.id):r({type:`chat`,title:`Chat`,projectId:a?.name??null,closable:!0,metadata:{sessionId:n}});let o=new URL(window.location.href);o.searchParams.delete(`openChat`),window.history.replaceState(null,``,o.pathname)})})},[e,f]),(0,B.useEffect)(()=>{let e=m?.name??`__global__`;F.getState().switchProject(e)},[m?.name]),(0,B.useEffect)(()=>{let e=m?.name??`__global__`;l(t=>t.has(e)?t:new Set([...t,e]))},[m?.name]),(0,B.useEffect)(()=>{e===`authenticated`&&!m&&F.getState().switchProject(`__global__`)},[e,m]);let y=(0,B.useCallback)(()=>{t(`authenticated`)},[]);if(e===`checking`)return(0,V.jsx)(`div`,{className:`min-h-dvh flex items-center justify-center bg-background`,children:(0,V.jsx)(`div`,{className:`animate-pulse text-text-secondary text-sm`,children:`Loading...`})});if(e===`unauthenticated`)return(0,V.jsx)(Km,{onSuccess:y});let b=m?.name??`__global__`;return(0,V.jsx)(Nl,{children:(0,V.jsxs)(`div`,{className:`h-dvh flex flex-col bg-background text-foreground overflow-hidden relative`,children:[d&&(0,V.jsx)(`div`,{className:`md:hidden fixed top-0 left-0 z-50 px-2 py-0.5 bg-primary/80 text-primary-foreground text-[10px] font-medium rounded-br`,children:d}),(0,V.jsxs)(`div`,{className:`flex flex-1 overflow-hidden`,children:[(0,V.jsx)(Lm,{}),(0,V.jsx)(Qp,{}),[...c].map(e=>(0,V.jsx)(`div`,{className:L(`flex-1 overflow-hidden pb-12 md:pb-0`,b!==e&&`hidden`),children:(0,V.jsx)(mf,{projectName:e})},e))]}),(0,V.jsx)(Vm,{onMenuPress:()=>r(!0),onProjectsPress:()=>s(!0)}),(0,V.jsx)(Um,{isOpen:n,onClose:()=>{r(!1),a(void 0)},initialTab:i}),(0,V.jsx)(Gm,{isOpen:o,onClose:()=>s(!1)}),(0,V.jsx)(sh,{open:g,onClose:v,initialQuery:_}),(0,V.jsx)(ch,{}),(0,V.jsx)(kn,{position:`bottom-left`,closeButton:!0,toastOptions:{className:`bg-surface border-border text-foreground`}})]})})}(0,Xt.createRoot)(document.getElementById(`root`)).render((0,V.jsx)(B.StrictMode,{children:(0,V.jsx)(lh,{})}));export{xt as A,Ye as B,Gt as C,Nt as D,Ft as E,st as F,qe as H,z as I,et as L,pt as M,ft as N,Mt as O,lt as P,$e as R,Jt as S,Rt as T,Ke as U,Je as V,He as W,Vd as _,Ff as a,Rd as b,$ as c,wf as d,Tf as f,Kd as g,lf as h,Nf as i,gt as j,wt as k,xf as l,vf as m,Tp as n,Pf as o,Sf as p,Af as r,If as s,Am as t,Cf as u,Pd as v,Wt as w,Bd as x,zd as y,Xe as z};
|
|
28
|
+
</svg>`,Qm=`data:image/svg+xml,${encodeURIComponent(Xm)}`,$m=`data:image/svg+xml,${encodeURIComponent(Zm)}`;function eh(e){let t=document.getElementById(`ppm-favicon`);t&&(t.href=e?$m:Qm)}function th(e,t,n){let r=[t,n||null,`PPM`].filter(Boolean).join(` - `);return e>0?`(${e}) ${r}`:r}function nh(){let e=Ed(e=>e.activeProject),t=I(e=>e.deviceName);(0,B.useEffect)(()=>{let n=()=>{let n=qd(Kd.getState());document.title=th(n,e?.name,t),eh(n>0)};return n(),Kd.subscribe(n)},[e?.name,t])}var rh=1e4,ih=2e3;function ah(){(0,B.useEffect)(()=>{let e=!1,t;async function n(){try{if((await fetch(`/api/health`,{cache:`no-store`})).ok&&e){if(`caches`in window){let e=await caches.keys();await Promise.all(e.map(e=>caches.delete(e)))}window.location.reload();return}e=!1}catch{e=!0}t=setTimeout(n,e?ih:rh)}return t=setTimeout(n,rh),()=>clearTimeout(t)},[])}function oh(e){let t=[];for(let n of e)n.type===`file`&&t.push({name:n.name,path:n.path}),n.children&&t.push(...oh(n.children));return t}function sh(e){return e?e.startsWith(`/`)||e.startsWith(`~/`)||e.startsWith(`~\\`)||/^[A-Za-z]:[/\\]/.test(e):!1}function ch(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 lh=new Map;function uh({open:e,onClose:t,initialQuery:n=``}){let[r,i]=(0,B.useState)(``),[a,o]=(0,B.useState)(0),[s,c]=(0,B.useState)([]),[l,u]=(0,B.useState)(!1),[d,f]=(0,B.useState)([]),p=(0,B.useRef)(null),m=(0,B.useRef)(null),h=F(e=>e.openTab),g=Ed(e=>e.activeProject),_=vf(e=>e.tree),v=I(e=>e.setSidebarActiveTab),y=I(e=>e.sidebarCollapsed),b=I(e=>e.toggleSidebar),x=(0,B.useCallback)(async e=>{if(lh.has(e)){c(lh.get(e));return}u(!0);try{let t=await R.get(`/api/fs/list?dir=${encodeURIComponent(e)}`);lh.set(e,t),c(t)}catch{c([])}finally{u(!1)}},[]);(0,B.useEffect)(()=>{if(!sh(r)){c([]);return}x(ch(r))},[r,x]),(0,B.useEffect)(()=>{if(sh(r)||r.trim().length<2){f([]);return}let e=setTimeout(async()=>{try{f(await R.get(`/api/db/search?q=${encodeURIComponent(r.trim())}`)??[])}catch{f([])}},300);return()=>clearTimeout(e)},[r]);let S=(0,B.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()};return[{id:`chat`,label:`New AI Chat`,icon:wt,action:r(`chat`,`AI Chat`),keywords:`ai assistant claude`,group:`action`},{id:`terminal`,label:`New Terminal`,icon:Wt,action:r(`terminal`,`Terminal`),keywords:`bash shell console`,group:`action`},{id:`git-graph`,label:`Git Graph`,icon:pt,action:r(`git-graph`,`Git Graph`),keywords:`branch history log`,group:`action`},{id:`postgres`,label:`PostgreSQL`,icon:et,action:r(`postgres`,`PostgreSQL`),keywords:`database pg sql query`,group:`action`},{id:`git-status`,label:`Git Status`,icon:mt,action:()=>{v(`git`),t()},keywords:`changes diff staged`,group:`action`},{id:`settings`,label:`Settings`,icon:Bt,action:()=>{y&&b(),v(`settings`),t()},keywords:`config preferences theme`,group:`action`}]},[g,h,t,v,y,b]),C=(0,B.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0;return oh(_).map(r=>({id:`file:${r.path}`,label:r.name,hint:r.path,icon:z,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]),w=(0,B.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0;return s.map(r=>{let i=je(r);return{id:`fs:${r}`,label:i,hint:r,icon:ut,group:`fs`,keywords:r,action:()=>{h({type:`editor`,title:i,projectId:e,metadata:{...n,filePath:r},closable:!0}),t()}}})},[s,g,h,t]),T=(0,B.useMemo)(()=>d.map(e=>({id:`db:${e.connectionId}:${e.schemaName}.${e.tableName}`,label:e.tableName,hint:`${e.connectionName} (${e.connectionType===`postgres`?`PG`:`SQLite`})`,icon:et,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]),E=(0,B.useMemo)(()=>[...S,...C],[S,C]),D=(0,B.useMemo)(()=>{if(sh(r)){let e=r.lastIndexOf(`/`),t=e>=0?r.slice(e+1).toLowerCase():``;return t?w.filter(e=>{let n=e.label.toLowerCase(),r=(e.keywords??``).toLowerCase();return n.includes(t)||r.includes(t)}).slice(0,50):w.slice(0,50)}if(!r.trim())return S;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=E.filter(e=>t(e.label.toLowerCase())||e.keywords&&t(e.keywords.toLowerCase()));return r.trim().length>=2?[...T,...n]:n},[E,S,w,T,r]);(0,B.useEffect)(()=>{e&&(i(n||``),o(0),c([]),f([]),requestAnimationFrame(()=>p.current?.focus()))},[e]),(0,B.useEffect)(()=>{o(e=>Math.min(e,Math.max(D.length-1,0)))},[D.length]),(0,B.useEffect)(()=>{let e=m.current;e&&e.children[a]?.scrollIntoView({block:`nearest`})},[a]);let O=(0,B.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 ee(e){let n=D.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?D[a]?.action():r.trim()&&O();break;case`Escape`:e.preventDefault(),t();break}}if(!e)return null;let k=sh(r);return(0,V.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:t,children:[(0,V.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,V.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:ee,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-3 py-2.5`,children:[(0,V.jsx)(Rt,{className:`size-4 text-text-subtle shrink-0`}),(0,V.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,V.jsx)(xt,{className:`size-3.5 animate-spin text-text-subtle shrink-0`}),(0,V.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`})]}),k&&!l&&s.length===0&&r.length<4&&(0,V.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,V.jsx)(`div`,{ref:m,className:`max-h-72 overflow-y-auto py-1`,children:D.length===0?l?(0,V.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`Searching...`}):r.trim()?(0,V.jsxs)(`button`,{onClick:O,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,V.jsx)(wt,{className:`size-4 shrink-0 text-accent`}),(0,V.jsxs)(`span`,{children:[`Ask AI: `,(0,V.jsx)(`span`,{className:`text-text-primary font-medium`,children:r.trim().slice(0,60)})]})]}):(0,V.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`No results`}):D.map((e,t)=>{let n=e.icon;return(0,V.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,V.jsx)(n,{className:`size-4 shrink-0`}),(0,V.jsx)(`span`,{className:`truncate`,children:e.label}),e.hint&&(0,V.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 text-xs text-text-subtle truncate max-w-[200px]`,children:[e.connectionColor&&(0,V.jsx)(`span`,{className:`shrink-0 size-2 rounded-full`,style:{backgroundColor:e.connectionColor}}),e.hint]})]},e.id)})}),(0,V.jsxs)(`div`,{className:`flex items-center justify-center gap-1.5 border-t border-border px-3 py-1.5`,children:[(0,V.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`Press`}),(0,V.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,V.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,V.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`to open this palette`})]})]})]})}function dh(){let[e,t]=(0,B.useState)(null),[n,r]=(0,B.useState)(!1);(0,B.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,B.useCallback)(()=>t(null),[]);return e?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/50`,onClick:i}),(0,V.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,V.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-border`,children:[(0,V.jsx)(`span`,{className:`text-sm font-medium`,children:`Bug Report`}),(0,V.jsx)(`button`,{onClick:i,className:`p-1 rounded hover:bg-surface-elevated`,children:(0,V.jsx)(x,{className:`size-4`})})]}),(0,V.jsx)(`pre`,{className:`flex-1 overflow-auto px-4 py-2 text-xs font-mono whitespace-pre-wrap break-all`,children:e}),(0,V.jsxs)(`div`,{className:`flex gap-2 p-3 border-t border-border`,children:[(0,V.jsxs)(`button`,{onClick:async()=>{await km(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,V.jsx)(se,{className:`size-3`}):(0,V.jsx)($e,{className:`size-3`}),n?`Copied`:`Copy`]}),(0,V.jsxs)(`button`,{onClick:()=>{Om(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,V.jsx)(Te,{className:`size-3`}),`Open GitHub Issue`]})]})]})]}):null}function fh(){let[e,t]=(0,B.useState)(`checking`),[n,r]=(0,B.useState)(!1),[i,a]=(0,B.useState)(),[o,s]=(0,B.useState)(!1);(0,B.useEffect)(()=>{let e=()=>{a(`settings`),r(!0)};return window.addEventListener(`open-mobile-settings`,e),()=>window.removeEventListener(`open-mobile-settings`,e)},[]);let[c,l]=(0,B.useState)(()=>new Set([`__global__`])),u=I(e=>e.theme),d=I(e=>e.deviceName),f=Ed(e=>e.fetchProjects),p=I(e=>e.fetchServerInfo),m=Ed(e=>e.activeProject),h=(0,B.useRef)(qm());(0,B.useEffect)(()=>{if(ke(u),u===`system`){let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>ke(`system`);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)}},[u]),(0,B.useEffect)(()=>{p()},[p]),(0,B.useEffect)(()=>{async function e(){let e=Pe();try{let n={};e&&(n.Authorization=`Bearer ${e}`),(await(await fetch(`/api/auth/check`,{headers:n})).json()).ok?t(`authenticated`):t(`unauthenticated`)}catch{t(`unauthenticated`)}}e()},[]),Ym();let{paletteOpen:g,paletteInitialQuery:_,closePalette:v}=Hd();nh(),ah(),(0,B.useEffect)(()=>{if(e!==`authenticated`)return;let t=e=>{e.preventDefault()};return window.addEventListener(`beforeunload`,t),()=>window.removeEventListener(`beforeunload`,t)},[e]),(0,B.useEffect)(()=>{e===`authenticated`&&lf(async()=>{let{useKeybindingsStore:e}=await import(`./keybindings-store-DBQQ_pTh.js`);return{useKeybindingsStore:e}},__vite__mapDeps([24,1,10])).then(({useKeybindingsStore:e})=>{e.getState().loadFromServer()})},[e]),(0,B.useEffect)(()=>{e===`authenticated`&&f().then(()=>{let{projectName:e,tabId:t,openChat:n}=h.current,{projects:r,customOrder:i}=Ed.getState();if(r.length===0)return;let a=e?r.find(t=>t.name===e):void 0;a||=Td(r,i)[0],a&&(Ed.getState().setActiveProject(a),e&&t&&queueMicrotask(()=>{let{tabs:e}=F.getState();e.some(e=>e.id===t)&&F.getState().setActiveTab(t)})),n&&queueMicrotask(()=>{let{tabs:e,setActiveTab:t,openTab:r}=F.getState(),i=e.find(e=>e.type===`chat`&&e.metadata?.sessionId===n);i?t(i.id):r({type:`chat`,title:`Chat`,projectId:a?.name??null,closable:!0,metadata:{sessionId:n}});let o=new URL(window.location.href);o.searchParams.delete(`openChat`),window.history.replaceState(null,``,o.pathname)})})},[e,f]),(0,B.useEffect)(()=>{let e=m?.name??`__global__`;F.getState().switchProject(e)},[m?.name]),(0,B.useEffect)(()=>{let e=m?.name??`__global__`;l(t=>t.has(e)?t:new Set([...t,e]))},[m?.name]),(0,B.useEffect)(()=>{e===`authenticated`&&!m&&F.getState().switchProject(`__global__`)},[e,m]);let y=(0,B.useCallback)(()=>{t(`authenticated`)},[]);if(e===`checking`)return(0,V.jsx)(`div`,{className:`min-h-dvh flex items-center justify-center bg-background`,children:(0,V.jsx)(`div`,{className:`animate-pulse text-text-secondary text-sm`,children:`Loading...`})});if(e===`unauthenticated`)return(0,V.jsx)(Km,{onSuccess:y});let b=m?.name??`__global__`;return(0,V.jsx)(Nl,{children:(0,V.jsxs)(`div`,{className:`h-dvh flex flex-col bg-background text-foreground overflow-hidden relative`,children:[d&&(0,V.jsx)(`div`,{className:`md:hidden fixed top-0 left-0 z-50 px-2 py-0.5 bg-primary/80 text-primary-foreground text-[10px] font-medium rounded-br`,children:d}),(0,V.jsxs)(`div`,{className:`flex flex-1 overflow-hidden`,children:[(0,V.jsx)(Lm,{}),(0,V.jsx)(Qp,{}),[...c].map(e=>(0,V.jsx)(`div`,{className:L(`flex-1 overflow-hidden pb-12 md:pb-0`,b!==e&&`hidden`),children:(0,V.jsx)(mf,{projectName:e})},e))]}),(0,V.jsx)(Vm,{onMenuPress:()=>r(!0),onProjectsPress:()=>s(!0)}),(0,V.jsx)(Um,{isOpen:n,onClose:()=>{r(!1),a(void 0)},initialTab:i}),(0,V.jsx)(Gm,{isOpen:o,onClose:()=>s(!1)}),(0,V.jsx)(uh,{open:g,onClose:v,initialQuery:_}),(0,V.jsx)(dh,{}),(0,V.jsx)(kn,{position:`bottom-left`,closeButton:!0,toastOptions:{className:`bg-surface border-border text-foreground`}})]})})}(0,Xt.createRoot)(document.getElementById(`root`)).render((0,V.jsx)(B.StrictMode,{children:(0,V.jsx)(fh,{})}));export{xt as A,Ye as B,Gt as C,Nt as D,Ft as E,st as F,qe as H,z as I,et as L,pt as M,ft as N,Mt as O,lt as P,$e as R,Jt as S,Rt as T,Ke as U,Je as V,He as W,Vd as _,Ff as a,Rd as b,$ as c,wf as d,Tf as f,Kd as g,lf as h,Nf as i,gt as j,wt as k,xf as l,vf as m,Tp as n,Pf as o,Sf as p,Af as r,If as s,Am as t,Cf as u,Pd as v,Wt as w,Bd as x,zd as y,Xe as z};
|