@hienlh/ppm 0.6.5 → 0.6.6

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.
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/terminal-tab-B_75oJaQ.js","assets/react-CYzKIDNi.js","assets/utils-siJJ3uG0.js","assets/jsx-runtime-wQxeESYQ.js","assets/settings-store-CfB0vCtQ.js","assets/react-DHSo28we.js","assets/terminal-tab-BrP-ENHg.css","assets/chat-tab-DkgRZpbj.js","assets/input-nI4xe1Y9.js","assets/tab-store-DIyJSjtr.js","assets/markdown-renderer-ChvoCZNm.js","assets/api-client-4Ni0i4Hl.js","assets/code-editor-CVMeIylx.js","assets/use-monaco-theme-Dexl3s3E.js","assets/database-viewer-BX0F2yv0.js","assets/dist-Jb3Tnkpc.js","assets/sqlite-viewer-CTPkNEEe.js","assets/table-DCVKGOr2.js","assets/postgres-viewer-DPsoDR4y.js","assets/git-graph-Bi4PM-z2.js","assets/diff-viewer-B1vnegRS.js","assets/settings-tab-D7pNWvVE.js","assets/keybindings-store-BVTJScRw.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/terminal-tab-_farMLMO.js","assets/react-CYzKIDNi.js","assets/utils-siJJ3uG0.js","assets/jsx-runtime-wQxeESYQ.js","assets/settings-store-CfB0vCtQ.js","assets/react-DHSo28we.js","assets/terminal-tab-BrP-ENHg.css","assets/chat-tab-dwpaSkQD.js","assets/input-nI4xe1Y9.js","assets/tab-store-DIyJSjtr.js","assets/markdown-renderer-Bke6DHFh.js","assets/api-client-4Ni0i4Hl.js","assets/code-editor-ZFl5kZ4-.js","assets/use-monaco-theme-Dexl3s3E.js","assets/database-viewer-DPpOsMqa.js","assets/dist-Jb3Tnkpc.js","assets/sqlite-viewer-Cx7tLyT-.js","assets/table-DCVKGOr2.js","assets/postgres-viewer-DaNYnInA.js","assets/git-graph-Dju1rygf.js","assets/diff-viewer-CX74l6lV.js","assets/settings-tab-DD05d8rM.js","assets/keybindings-store-VhiJwp77.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,O as s,S as c,T as l,_ as u,a as d,b as f,c as p,d as m,f as h,g,h as _,i as v,j as y,k as b,l as x,m as S,n as C,o as w,p as T,r as E,s as D,t as O,u as k,v as A,w as ee,x as te,y as j}from"./input-nI4xe1Y9.js";import{n as M,t as N}from"./jsx-runtime-wQxeESYQ.js";import{a as P,i as ne,n as F,r as re,t as I}from"./tab-store-DIyJSjtr.js";import{t as L}from"./react-DHSo28we.js";import{n as R,t as ie}from"./settings-store-CfB0vCtQ.js";import{i as ae,n as z,t as oe}from"./utils-siJJ3uG0.js";import{a as se,i as ce,r as le,t as B}from"./api-client-4Ni0i4Hl.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 ue=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&&ee(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&&ee(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function ee(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,ee(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}}}})),de=t(((e,t)=>{t.exports=ue()})),fe=t((e=>{var t=de(),r=n(),i=y();function a(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function o(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function s(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function c(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function u(e){if(s(e)!==e)throw Error(a(188))}function d(e){var t=e.alternate;if(!t){if(t=s(e),t===null)throw Error(a(188));return t===e?e:null}for(var n=e,r=t;;){var i=n.return;if(i===null)break;var o=i.alternate;if(o===null){if(r=i.return,r!==null){n=r;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===n)return u(i),e;if(o===r)return u(i),t;o=o.sibling}throw Error(a(188))}if(n.return!==r.return)n=i,r=o;else{for(var c=!1,l=i.child;l;){if(l===n){c=!0,n=i,r=o;break}if(l===r){c=!0,r=i,n=o;break}l=l.sibling}if(!c){for(l=o.child;l;){if(l===n){c=!0,n=o,r=i;break}if(l===r){c=!0,r=o,n=i;break}l=l.sibling}if(!c)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(n.tag!==3)throw Error(a(188));return n.stateNode.current===n?e:t}function f(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=f(e),t!==null)return t;e=e.sibling}return null}var p=Object.assign,m=Symbol.for(`react.element`),h=Symbol.for(`react.transitional.element`),g=Symbol.for(`react.portal`),_=Symbol.for(`react.fragment`),v=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),x=Symbol.for(`react.consumer`),S=Symbol.for(`react.context`),C=Symbol.for(`react.forward_ref`),w=Symbol.for(`react.suspense`),T=Symbol.for(`react.suspense_list`),E=Symbol.for(`react.memo`),D=Symbol.for(`react.lazy`),O=Symbol.for(`react.activity`),k=Symbol.for(`react.memo_cache_sentinel`),A=Symbol.iterator;function ee(e){return typeof e!=`object`||!e?null:(e=A&&e[A]||e[`@@iterator`],typeof e==`function`?e:null)}var te=Symbol.for(`react.client.reference`);function j(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===te?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case _:return`Fragment`;case b:return`Profiler`;case v:return`StrictMode`;case w:return`Suspense`;case T:return`SuspenseList`;case O:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case g:return`Portal`;case S:return e.displayName||`Context`;case x:return(e._context.displayName||`Context`)+`.Consumer`;case C:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case E:return t=e.displayName||null,t===null?j(e.type)||`Memo`:t;case D:t=e._payload,e=e._init;try{return j(e(t))}catch{}}return null}var M=Array.isArray,N=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,P=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ne={pending:!1,data:null,method:null,action:null},F=[],re=-1;function I(e){return{current:e}}function L(e){0>re||(e.current=F[re],F[re]=null,re--)}function R(e,t){re++,F[re]=e.current,e.current=t}var ie=I(null),ae=I(null),z=I(null),oe=I(null);function se(e,t){switch(R(z,t),R(ae,e),R(ie,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}L(ie),R(ie,e)}function ce(){L(ie),L(ae),L(z)}function le(e){e.memoizedState!==null&&R(oe,e);var t=ie.current,n=Hd(t,e.type);t!==n&&(R(ae,e),R(ie,n))}function B(e){ae.current===e&&(L(ie),L(ae)),oe.current===e&&(L(oe),Qf._currentValue=ne)}var ue,fe;function pe(e){if(ue===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ue=t&&t[1]||``,fe=-1<e.stack.indexOf(`
3
3
  at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
4
4
  `+ue+e+fe}var me=!1;function he(e,t){if(!e||me)return``;me=!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,11 +11,11 @@ Error generating stack: `+e.message+`
11
11
 
12
12
  If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
13
13
 
14
- For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return V.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},Rn=`DialogDescriptionWarning`,zn=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${In(Rn).contentName}}.`;return V.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},Bn=dn,Vn=_n,Hn=yn,Un=Cn,Wn=On,Gn=An,Kn=Mn;function qn(e){let t=V.useRef({value:e,previous:e});return V.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var Jn=`rovingFocusGroup.onEntryFocus`,Yn={bubbles:!1,cancelable:!0},Xn=`RovingFocusGroup`,[Zn,Qn,$n]=f(Xn),[er,tr]=c(Xn,[$n]),[nr,rr]=er(Xn),ir=V.forwardRef((e,t)=>(0,H.jsx)(Zn.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,H.jsx)(Zn.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,H.jsx)(ar,{...e,ref:t})})}));ir.displayName=Xn;var ar=V.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:o,currentTabStopId:s,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:l,onEntryFocus:d,preventScrollOnEntryFocus:f=!1,...p}=e,m=V.useRef(null),h=b(t,m),g=_(o),[v,y]=u({prop:s,defaultProp:c??null,onChange:l,caller:Xn}),[x,C]=V.useState(!1),w=S(d),T=Qn(n),E=V.useRef(!1),[D,O]=V.useState(0);return V.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(Jn,w),()=>e.removeEventListener(Jn,w)},[w]),(0,H.jsx)(nr,{scope:n,orientation:r,dir:g,loop:a,currentTabStopId:v,onItemFocus:V.useCallback(e=>y(e),[y]),onItemShiftTab:V.useCallback(()=>C(!0),[]),onFocusableItemAdd:V.useCallback(()=>O(e=>e+1),[]),onFocusableItemRemove:V.useCallback(()=>O(e=>e-1),[]),children:(0,H.jsx)(i.div,{tabIndex:x||D===0?-1:0,"data-orientation":r,...p,ref:h,style:{outline:`none`,...e.style},onMouseDown:j(e.onMouseDown,()=>{E.current=!0}),onFocus:j(e.onFocus,e=>{let t=!E.current;if(e.target===e.currentTarget&&t&&!x){let t=new CustomEvent(Jn,Yn);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=T().filter(e=>e.focusable);dr([e.find(e=>e.active),e.find(e=>e.id===v),...e].filter(Boolean).map(e=>e.ref.current),f)}}E.current=!1}),onBlur:j(e.onBlur,()=>C(!1))})})}),or=`RovingFocusGroupItem`,sr=V.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:o,children:s,...c}=e,l=g(),u=o||l,d=rr(or,n),f=d.currentTabStopId===u,p=Qn(n),{onFocusableItemAdd:m,onFocusableItemRemove:h,currentTabStopId:_}=d;return V.useEffect(()=>{if(r)return m(),()=>h()},[r,m,h]),(0,H.jsx)(Zn.ItemSlot,{scope:n,id:u,focusable:r,active:a,children:(0,H.jsx)(i.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...c,ref:t,onMouseDown:j(e.onMouseDown,e=>{r?d.onItemFocus(u):e.preventDefault()}),onFocus:j(e.onFocus,()=>d.onItemFocus(u)),onKeyDown:j(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){d.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=ur(e,d.orientation,d.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=d.loop?fr(n,r+1):n.slice(r+1)}setTimeout(()=>dr(n))}}),children:typeof s==`function`?s({isCurrentTabStop:f,hasTabStop:_!=null}):s})})});sr.displayName=or;var cr={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function lr(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function ur(e,t,n){let r=lr(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return cr[r]}function dr(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function fr(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var pr=ir,mr=sr,hr=[`Enter`,` `],gr=[`ArrowDown`,`PageUp`,`Home`],_r=[`ArrowUp`,`PageDown`,`End`],vr=[...gr,..._r],yr={ltr:[...hr,`ArrowRight`],rtl:[...hr,`ArrowLeft`]},br={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]},xr=`Menu`,[Sr,Cr,wr]=f(xr),[Tr,Er]=c(xr,[wr,D,tr]),Dr=D(),Or=tr(),[kr,Ar]=Tr(xr),[jr,Mr]=Tr(xr),Nr=e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:a,modal:o=!0}=e,s=Dr(t),[c,l]=V.useState(null),u=V.useRef(!1),d=S(a),f=_(i);return V.useEffect(()=>{let e=()=>{u.current=!0,document.addEventListener(`pointerdown`,t,{capture:!0,once:!0}),document.addEventListener(`pointermove`,t,{capture:!0,once:!0})},t=()=>u.current=!1;return document.addEventListener(`keydown`,e,{capture:!0}),()=>{document.removeEventListener(`keydown`,e,{capture:!0}),document.removeEventListener(`pointerdown`,t,{capture:!0}),document.removeEventListener(`pointermove`,t,{capture:!0})}},[]),(0,H.jsx)(w,{...s,children:(0,H.jsx)(kr,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:l,children:(0,H.jsx)(jr,{scope:t,onClose:V.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:u,dir:f,modal:o,children:r})})})};Nr.displayName=xr;var Pr=`MenuAnchor`,Fr=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=Dr(n);return(0,H.jsx)(E,{...i,...r,ref:t})});Fr.displayName=Pr;var Ir=`MenuPortal`,[Lr,Rr]=Tr(Ir,{forceMount:void 0}),zr=e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=Ar(Ir,t);return(0,H.jsx)(Lr,{scope:t,forceMount:n,children:(0,H.jsx)(tn,{present:n||a.open,children:(0,H.jsx)(m,{asChild:!0,container:i,children:r})})})};zr.displayName=Ir;var Br=`MenuContent`,[Vr,Hr]=Tr(Br),Ur=V.forwardRef((e,t)=>{let n=Rr(Br,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Ar(Br,e.__scopeMenu),o=Mr(Br,e.__scopeMenu);return(0,H.jsx)(Sr.Provider,{scope:e.__scopeMenu,children:(0,H.jsx)(tn,{present:r||a.open,children:(0,H.jsx)(Sr.Slot,{scope:e.__scopeMenu,children:o.modal?(0,H.jsx)(Wr,{...i,ref:t}):(0,H.jsx)(Gr,{...i,ref:t})})})})}),Wr=V.forwardRef((e,t)=>{let n=Ar(Br,e.__scopeMenu),r=V.useRef(null),i=b(t,r);return V.useEffect(()=>{let e=r.current;if(e)return p(e)},[]),(0,H.jsx)(qr,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:j(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),Gr=V.forwardRef((e,t)=>{let n=Ar(Br,e.__scopeMenu);return(0,H.jsx)(qr,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),Kr=o(`MenuContent.ScrollLock`),qr=V.forwardRef((e,t)=>{let{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:o,disableOutsidePointerEvents:s,onEntryFocus:c,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:f,onInteractOutside:p,onDismiss:m,disableOutsideScroll:g,..._}=e,v=Ar(Br,n),y=Mr(Br,n),S=Dr(n),C=Or(n),w=Cr(n),[E,D]=V.useState(null),O=V.useRef(null),A=b(t,O,v.onContentChange),ee=V.useRef(0),te=V.useRef(``),M=V.useRef(0),N=V.useRef(null),P=V.useRef(`right`),ne=V.useRef(0),F=g?x:V.Fragment,re=g?{as:Kr,allowPinchZoom:!0}:void 0,I=e=>{let t=te.current+e,n=w().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=U(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;(function e(t){te.current=t,window.clearTimeout(ee.current),t!==``&&(ee.current=window.setTimeout(()=>e(``),1e3))})(t),o&&setTimeout(()=>o.focus())};V.useEffect(()=>()=>window.clearTimeout(ee.current),[]),k();let L=V.useCallback(e=>P.current===N.current?.side&&Mi(e,N.current?.area),[]);return(0,H.jsx)(Vr,{scope:n,searchRef:te,onItemEnter:V.useCallback(e=>{L(e)&&e.preventDefault()},[L]),onItemLeave:V.useCallback(e=>{L(e)||(O.current?.focus(),D(null))},[L]),onTriggerLeave:V.useCallback(e=>{L(e)&&e.preventDefault()},[L]),pointerGraceTimerRef:M,onPointerGraceIntentChange:V.useCallback(e=>{N.current=e},[]),children:(0,H.jsx)(F,{...re,children:(0,H.jsx)(h,{asChild:!0,trapped:i,onMountAutoFocus:j(a,e=>{e.preventDefault(),O.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:o,children:(0,H.jsx)(T,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:f,onInteractOutside:p,onDismiss:m,children:(0,H.jsx)(pr,{asChild:!0,...C,dir:y.dir,orientation:`vertical`,loop:r,currentTabStopId:E,onCurrentTabStopIdChange:D,onEntryFocus:j(c,e=>{y.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,H.jsx)(d,{role:`menu`,"aria-orientation":`vertical`,"data-state":Ei(v.open),"data-radix-menu-content":``,dir:y.dir,...S,..._,ref:A,style:{outline:`none`,..._.style},onKeyDown:j(_.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&&I(e.key));let i=O.current;if(e.target!==i||!vr.includes(e.key))return;e.preventDefault();let a=w().filter(e=>!e.disabled).map(e=>e.ref.current);_r.includes(e.key)&&a.reverse(),ki(a)}),onBlur:j(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(ee.current),te.current=``)}),onPointerMove:j(e.onPointerMove,Ni(e=>{let t=e.target,n=ne.current!==e.clientX;e.currentTarget.contains(t)&&n&&(P.current=e.clientX>ne.current?`right`:`left`,ne.current=e.clientX)}))})})})})})})});Ur.displayName=Br;var Jr=`MenuGroup`,Yr=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,H.jsx)(i.div,{role:`group`,...r,ref:t})});Yr.displayName=Jr;var Xr=`MenuLabel`,Zr=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,H.jsx)(i.div,{...r,ref:t})});Zr.displayName=Xr;var Qr=`MenuItem`,$r=`menu.itemSelect`,ei=V.forwardRef((e,t)=>{let{disabled:n=!1,onSelect:r,...i}=e,a=V.useRef(null),o=Mr(Qr,e.__scopeMenu),s=Hr(Qr,e.__scopeMenu),c=b(t,a),l=V.useRef(!1),u=()=>{let e=a.current;if(!n&&e){let t=new CustomEvent($r,{bubbles:!0,cancelable:!0});e.addEventListener($r,e=>r?.(e),{once:!0}),ee(e,t),t.defaultPrevented?l.current=!1:o.onClose()}};return(0,H.jsx)(ti,{...i,ref:c,disabled:n,onClick:j(e.onClick,u),onPointerDown:t=>{e.onPointerDown?.(t),l.current=!0},onPointerUp:j(e.onPointerUp,e=>{l.current||e.currentTarget?.click()}),onKeyDown:j(e.onKeyDown,e=>{let t=s.searchRef.current!==``;n||t&&e.key===` `||hr.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});ei.displayName=Qr;var ti=V.forwardRef((e,t)=>{let{__scopeMenu:n,disabled:r=!1,textValue:a,...o}=e,s=Hr(Qr,n),c=Or(n),l=V.useRef(null),u=b(t,l),[d,f]=V.useState(!1),[p,m]=V.useState(``);return V.useEffect(()=>{let e=l.current;e&&m((e.textContent??``).trim())},[o.children]),(0,H.jsx)(Sr.ItemSlot,{scope:n,disabled:r,textValue:a??p,children:(0,H.jsx)(mr,{asChild:!0,...c,focusable:!r,children:(0,H.jsx)(i.div,{role:`menuitem`,"data-highlighted":d?``:void 0,"aria-disabled":r||void 0,"data-disabled":r?``:void 0,...o,ref:u,onPointerMove:j(e.onPointerMove,Ni(e=>{r?s.onItemLeave(e):(s.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:j(e.onPointerLeave,Ni(e=>s.onItemLeave(e))),onFocus:j(e.onFocus,()=>f(!0)),onBlur:j(e.onBlur,()=>f(!1))})})})}),ni=`MenuCheckboxItem`,ri=V.forwardRef((e,t)=>{let{checked:n=!1,onCheckedChange:r,...i}=e;return(0,H.jsx)(di,{scope:e.__scopeMenu,checked:n,children:(0,H.jsx)(ei,{role:`menuitemcheckbox`,"aria-checked":Di(n)?`mixed`:n,...i,ref:t,"data-state":Oi(n),onSelect:j(i.onSelect,()=>r?.(Di(n)?!0:!n),{checkForDefaultPrevented:!1})})})});ri.displayName=ni;var ii=`MenuRadioGroup`,[ai,oi]=Tr(ii,{value:void 0,onValueChange:()=>{}}),si=V.forwardRef((e,t)=>{let{value:n,onValueChange:r,...i}=e,a=S(r);return(0,H.jsx)(ai,{scope:e.__scopeMenu,value:n,onValueChange:a,children:(0,H.jsx)(Yr,{...i,ref:t})})});si.displayName=ii;var ci=`MenuRadioItem`,li=V.forwardRef((e,t)=>{let{value:n,...r}=e,i=oi(ci,e.__scopeMenu),a=n===i.value;return(0,H.jsx)(di,{scope:e.__scopeMenu,checked:a,children:(0,H.jsx)(ei,{role:`menuitemradio`,"aria-checked":a,...r,ref:t,"data-state":Oi(a),onSelect:j(r.onSelect,()=>i.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});li.displayName=ci;var ui=`MenuItemIndicator`,[di,fi]=Tr(ui,{checked:!1}),pi=V.forwardRef((e,t)=>{let{__scopeMenu:n,forceMount:r,...a}=e,o=fi(ui,n);return(0,H.jsx)(tn,{present:r||Di(o.checked)||o.checked===!0,children:(0,H.jsx)(i.span,{...a,ref:t,"data-state":Oi(o.checked)})})});pi.displayName=ui;var mi=`MenuSeparator`,hi=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,H.jsx)(i.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})});hi.displayName=mi;var gi=`MenuArrow`,_i=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=Dr(n);return(0,H.jsx)(v,{...i,...r,ref:t})});_i.displayName=gi;var vi=`MenuSub`,[yi,bi]=Tr(vi),xi=e=>{let{__scopeMenu:t,children:n,open:r=!1,onOpenChange:i}=e,a=Ar(vi,t),o=Dr(t),[s,c]=V.useState(null),[l,u]=V.useState(null),d=S(i);return V.useEffect(()=>(a.open===!1&&d(!1),()=>d(!1)),[a.open,d]),(0,H.jsx)(w,{...o,children:(0,H.jsx)(kr,{scope:t,open:r,onOpenChange:d,content:l,onContentChange:u,children:(0,H.jsx)(yi,{scope:t,contentId:g(),triggerId:g(),trigger:s,onTriggerChange:c,children:n})})})};xi.displayName=vi;var Si=`MenuSubTrigger`,Ci=V.forwardRef((e,t)=>{let n=Ar(Si,e.__scopeMenu),r=Mr(Si,e.__scopeMenu),i=bi(Si,e.__scopeMenu),a=Hr(Si,e.__scopeMenu),o=V.useRef(null),{pointerGraceTimerRef:c,onPointerGraceIntentChange:l}=a,u={__scopeMenu:e.__scopeMenu},d=V.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=null},[]);return V.useEffect(()=>d,[d]),V.useEffect(()=>{let e=c.current;return()=>{window.clearTimeout(e),l(null)}},[c,l]),(0,H.jsx)(Fr,{asChild:!0,...u,children:(0,H.jsx)(ti,{id:i.triggerId,"aria-haspopup":`menu`,"aria-expanded":n.open,"aria-controls":i.contentId,"data-state":Ei(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:j(e.onPointerMove,Ni(t=>{a.onItemEnter(t),!t.defaultPrevented&&!e.disabled&&!n.open&&!o.current&&(a.onPointerGraceIntentChange(null),o.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:j(e.onPointerLeave,Ni(e=>{d();let t=n.content?.getBoundingClientRect();if(t){let r=n.content?.dataset.side,i=r===`right`,o=i?-5:5,s=t[i?`left`:`right`],l=t[i?`right`:`left`];a.onPointerGraceIntentChange({area:[{x:e.clientX+o,y:e.clientY},{x:s,y:t.top},{x:l,y:t.top},{x:l,y:t.bottom},{x:s,y:t.bottom}],side:r}),window.clearTimeout(c.current),c.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(e),e.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:j(e.onKeyDown,t=>{let i=a.searchRef.current!==``;e.disabled||i&&t.key===` `||yr[r.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())})})})});Ci.displayName=Si;var wi=`MenuSubContent`,Ti=V.forwardRef((e,t)=>{let n=Rr(Br,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Ar(Br,e.__scopeMenu),o=Mr(Br,e.__scopeMenu),s=bi(wi,e.__scopeMenu),c=V.useRef(null),l=b(t,c);return(0,H.jsx)(Sr.Provider,{scope:e.__scopeMenu,children:(0,H.jsx)(tn,{present:r||a.open,children:(0,H.jsx)(Sr.Slot,{scope:e.__scopeMenu,children:(0,H.jsx)(qr,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:l,align:`start`,side:o.dir===`rtl`?`left`:`right`,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{o.isUsingKeyboardRef.current&&c.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:j(e.onFocusOutside,e=>{e.target!==s.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:j(e.onEscapeKeyDown,e=>{o.onClose(),e.preventDefault()}),onKeyDown:j(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=br[o.dir].includes(e.key);t&&n&&(a.onOpenChange(!1),s.trigger?.focus(),e.preventDefault())})})})})})});Ti.displayName=wi;function Ei(e){return e?`open`:`closed`}function Di(e){return e===`indeterminate`}function Oi(e){return Di(e)?`indeterminate`:e?`checked`:`unchecked`}function ki(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Ai(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function U(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=Ai(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 ji(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 Mi(e,t){return t?ji({x:e.clientX,y:e.clientY},t):!1}function Ni(e){return t=>t.pointerType===`mouse`?e(t):void 0}var Pi=Nr,Fi=Fr,Ii=zr,Li=Ur,Ri=Yr,zi=Zr,Bi=ei,Vi=ri,Hi=si,Ui=li,Wi=pi,Gi=hi,Ki=_i,qi=xi,Ji=Ci,Yi=Ti,Xi=`ContextMenu`,[Zi,Qi]=c(Xi,[Er]),$i=Er(),[ea,ta]=Zi(Xi),na=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:a=!0}=e,[o,s]=V.useState(!1),c=$i(t),l=S(r),u=V.useCallback(e=>{s(e),l(e)},[l]);return(0,H.jsx)(ea,{scope:t,open:o,onOpenChange:u,modal:a,children:(0,H.jsx)(Pi,{...c,dir:i,open:o,onOpenChange:u,modal:a,children:n})})};na.displayName=Xi;var ra=`ContextMenuTrigger`,ia=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,disabled:r=!1,...a}=e,o=ta(ra,n),s=$i(n),c=V.useRef({x:0,y:0}),l=V.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...c.current})}),u=V.useRef(0),d=V.useCallback(()=>window.clearTimeout(u.current),[]),f=e=>{c.current={x:e.clientX,y:e.clientY},o.onOpenChange(!0)};return V.useEffect(()=>d,[d]),V.useEffect(()=>void(r&&d()),[r,d]),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Fi,{...s,virtualRef:l}),(0,H.jsx)(i.span,{"data-state":o.open?`open`:`closed`,"data-disabled":r?``:void 0,...a,ref:t,style:{WebkitTouchCallout:`none`,...e.style},onContextMenu:r?e.onContextMenu:j(e.onContextMenu,e=>{d(),f(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:j(e.onPointerDown,Na(e=>{d(),u.current=window.setTimeout(()=>f(e),700)})),onPointerMove:r?e.onPointerMove:j(e.onPointerMove,Na(d)),onPointerCancel:r?e.onPointerCancel:j(e.onPointerCancel,Na(d)),onPointerUp:r?e.onPointerUp:j(e.onPointerUp,Na(d))})]})});ia.displayName=ra;var aa=`ContextMenuPortal`,oa=e=>{let{__scopeContextMenu:t,...n}=e,r=$i(t);return(0,H.jsx)(Ii,{...r,...n})};oa.displayName=aa;var sa=`ContextMenuContent`,ca=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=ta(sa,n),a=$i(n),o=V.useRef(!1);return(0,H.jsx)(Li,{...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)`}})});ca.displayName=sa;var la=`ContextMenuGroup`,ua=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Ri,{...i,...r,ref:t})});ua.displayName=la;var da=`ContextMenuLabel`,fa=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(zi,{...i,...r,ref:t})});fa.displayName=da;var pa=`ContextMenuItem`,ma=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Bi,{...i,...r,ref:t})});ma.displayName=pa;var ha=`ContextMenuCheckboxItem`,ga=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Vi,{...i,...r,ref:t})});ga.displayName=ha;var _a=`ContextMenuRadioGroup`,va=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Hi,{...i,...r,ref:t})});va.displayName=_a;var ya=`ContextMenuRadioItem`,ba=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Ui,{...i,...r,ref:t})});ba.displayName=ya;var xa=`ContextMenuItemIndicator`,Sa=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Wi,{...i,...r,ref:t})});Sa.displayName=xa;var Ca=`ContextMenuSeparator`,wa=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Gi,{...i,...r,ref:t})});wa.displayName=Ca;var Ta=`ContextMenuArrow`,Ea=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Ki,{...i,...r,ref:t})});Ea.displayName=Ta;var Da=`ContextMenuSub`,Oa=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,defaultOpen:a}=e,o=$i(t),[s,c]=u({prop:i,defaultProp:a??!1,onChange:r,caller:Da});return(0,H.jsx)(qi,{...o,open:s,onOpenChange:c,children:n})};Oa.displayName=Da;var ka=`ContextMenuSubTrigger`,Aa=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Ji,{...i,...r,ref:t})});Aa.displayName=ka;var ja=`ContextMenuSubContent`,Ma=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Yi,{...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)`}})});Ma.displayName=ja;function Na(e){return t=>t.pointerType===`mouse`?void 0:e(t)}var Pa=na,Fa=ia,Ia=oa,La=ca,Ra=ma,za=wa,Ba=`DropdownMenu`,[Va,Ha]=c(Ba,[Er]),Ua=Er(),[Wa,Ga]=Va(Ba),Ka=e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:s=!0}=e,c=Ua(t),l=V.useRef(null),[d,f]=u({prop:i,defaultProp:a??!1,onChange:o,caller:Ba});return(0,H.jsx)(Wa,{scope:t,triggerId:g(),triggerRef:l,contentId:g(),open:d,onOpenChange:f,onOpenToggle:V.useCallback(()=>f(e=>!e),[f]),modal:s,children:(0,H.jsx)(Pi,{...c,open:d,onOpenChange:f,dir:r,modal:s,children:n})})};Ka.displayName=Ba;var qa=`DropdownMenuTrigger`,Ja=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,disabled:r=!1,...a}=e,o=Ga(qa,n),c=Ua(n);return(0,H.jsx)(Fi,{asChild:!0,...c,children:(0,H.jsx)(i.button,{type:`button`,id:o.triggerId,"aria-haspopup":`menu`,"aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":o.open?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...a,ref:s(t,o.triggerRef),onPointerDown:j(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(o.onOpenToggle(),o.open||e.preventDefault())}),onKeyDown:j(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&o.onOpenToggle(),e.key===`ArrowDown`&&o.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})});Ja.displayName=qa;var Ya=`DropdownMenuPortal`,Xa=e=>{let{__scopeDropdownMenu:t,...n}=e,r=Ua(t);return(0,H.jsx)(Ii,{...r,...n})};Xa.displayName=Ya;var Za=`DropdownMenuContent`,Qa=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ga(Za,n),a=Ua(n),o=V.useRef(!1);return(0,H.jsx)(Li,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:j(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:j(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)`}})});Qa.displayName=Za;var $a=`DropdownMenuGroup`,eo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Ri,{...i,...r,ref:t})});eo.displayName=$a;var to=`DropdownMenuLabel`,no=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(zi,{...i,...r,ref:t})});no.displayName=to;var ro=`DropdownMenuItem`,io=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Bi,{...i,...r,ref:t})});io.displayName=ro;var ao=`DropdownMenuCheckboxItem`,oo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Vi,{...i,...r,ref:t})});oo.displayName=ao;var so=`DropdownMenuRadioGroup`,co=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Hi,{...i,...r,ref:t})});co.displayName=so;var W=`DropdownMenuRadioItem`,G=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Ui,{...i,...r,ref:t})});G.displayName=W;var lo=`DropdownMenuItemIndicator`,uo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Wi,{...i,...r,ref:t})});uo.displayName=lo;var fo=`DropdownMenuSeparator`,po=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Gi,{...i,...r,ref:t})});po.displayName=fo;var mo=`DropdownMenuArrow`,ho=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Ki,{...i,...r,ref:t})});ho.displayName=mo;var go=`DropdownMenuSubTrigger`,_o=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Ji,{...i,...r,ref:t})});_o.displayName=go;var vo=`DropdownMenuSubContent`,yo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Yi,{...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)`}})});yo.displayName=vo;var bo=Ka,xo=Ja,So=Xa,Co=Qa,wo=io,To=`Label`,Eo=V.forwardRef((e,t)=>(0,H.jsx)(i.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));Eo.displayName=To;var Do=Eo;function Oo(e,t){return V.useReducer((e,n)=>t[e][n]??e,e)}var ko=`ScrollArea`,[Ao,jo]=c(ko),[Mo,No]=Ao(ko),Po=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:a,scrollHideDelay:o=600,...s}=e,[c,l]=V.useState(null),[u,d]=V.useState(null),[f,p]=V.useState(null),[m,h]=V.useState(null),[g,v]=V.useState(null),[y,x]=V.useState(0),[S,C]=V.useState(0),[w,T]=V.useState(!1),[E,D]=V.useState(!1),O=b(t,e=>l(e)),k=_(a);return(0,H.jsx)(Mo,{scope:n,type:r,dir:k,scrollHideDelay:o,scrollArea:c,viewport:u,onViewportChange:d,content:f,onContentChange:p,scrollbarX:m,onScrollbarXChange:h,scrollbarXEnabled:w,onScrollbarXEnabledChange:T,scrollbarY:g,onScrollbarYChange:v,scrollbarYEnabled:E,onScrollbarYEnabledChange:D,onCornerWidthChange:x,onCornerHeightChange:C,children:(0,H.jsx)(i.div,{dir:k,...s,ref:O,style:{position:`relative`,"--radix-scroll-area-corner-width":y+`px`,"--radix-scroll-area-corner-height":S+`px`,...e.style}})})});Po.displayName=ko;var Fo=`ScrollAreaViewport`,Io=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:a,...o}=e,s=No(Fo,n),c=b(t,V.useRef(null),s.onViewportChange);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:a}),(0,H.jsx)(i.div,{"data-radix-scroll-area-viewport":``,...o,ref:c,style:{overflowX:s.scrollbarXEnabled?`scroll`:`hidden`,overflowY:s.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,H.jsx)(`div`,{ref:s.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});Io.displayName=Fo;var Lo=`ScrollAreaScrollbar`,Ro=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=No(Lo,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return V.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,H.jsx)(zo,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,H.jsx)(Bo,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,H.jsx)(Vo,{...r,ref:t,forceMount:n}):i.type===`always`?(0,H.jsx)(Ho,{...r,ref:t}):null});Ro.displayName=Lo;var zo=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=No(Lo,e.__scopeScrollArea),[a,o]=V.useState(!1);return V.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,H.jsx)(tn,{present:n||a,children:(0,H.jsx)(Vo,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),Bo=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=No(Lo,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=cs(()=>c(`SCROLL_END`),100),[s,c]=Oo(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return V.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),V.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(c(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,c,o]),(0,H.jsx)(tn,{present:n||s!==`hidden`,children:(0,H.jsx)(Ho,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:j(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:j(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})}),Vo=V.forwardRef((e,t)=>{let n=No(Lo,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=V.useState(!1),s=e.orientation===`horizontal`,c=cs(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return ls(n.viewport,c),ls(n.content,c),(0,H.jsx)(tn,{present:r||a,children:(0,H.jsx)(Ho,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),Ho=V.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=No(Lo,e.__scopeScrollArea),a=V.useRef(null),o=V.useRef(0),[s,c]=V.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=ts(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 rs(e,o.current,s,t)}return n===`horizontal`?(0,H.jsx)(Uo,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=is(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,H.jsx)(Wo,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=is(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}),Uo=V.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=No(Lo,e.__scopeScrollArea),[o,s]=V.useState(),c=V.useRef(null),l=b(t,c,a.onScrollbarXChange);return V.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,H.jsx)(qo,{"data-orientation":`horizontal`,...i,ref:l,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":ns(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),os(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:es(o.paddingLeft),paddingEnd:es(o.paddingRight)}})}})}),Wo=V.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=No(Lo,e.__scopeScrollArea),[o,s]=V.useState(),c=V.useRef(null),l=b(t,c,a.onScrollbarYChange);return V.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,H.jsx)(qo,{"data-orientation":`vertical`,...i,ref:l,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":ns(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),os(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:es(o.paddingTop),paddingEnd:es(o.paddingBottom)}})}})}),[Go,Ko]=Ao(Lo),qo=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:o,onThumbPointerUp:s,onThumbPointerDown:c,onThumbPositionChange:l,onDragScroll:u,onWheelScroll:d,onResize:f,...p}=e,m=No(Lo,n),[h,g]=V.useState(null),_=b(t,e=>g(e)),v=V.useRef(null),y=V.useRef(``),x=m.viewport,C=r.content-r.viewport,w=S(d),T=S(l),E=cs(f,10);function D(e){v.current&&u({x:e.clientX-v.current.left,y:e.clientY-v.current.top})}return V.useEffect(()=>{let e=e=>{let t=e.target;h?.contains(t)&&w(e,C)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[x,h,C,w]),V.useEffect(T,[r,T]),ls(h,E),ls(m.content,E),(0,H.jsx)(Go,{scope:n,scrollbar:h,hasThumb:a,onThumbChange:S(o),onThumbPointerUp:S(s),onThumbPositionChange:T,onThumbPointerDown:S(c),children:(0,H.jsx)(i.div,{...p,ref:_,style:{position:`absolute`,...p.style},onPointerDown:j(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),v.current=h.getBoundingClientRect(),y.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,m.viewport&&(m.viewport.style.scrollBehavior=`auto`),D(e))}),onPointerMove:j(e.onPointerMove,D),onPointerUp:j(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=y.current,m.viewport&&(m.viewport.style.scrollBehavior=``),v.current=null})})})}),Jo=`ScrollAreaThumb`,Yo=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Ko(Jo,e.__scopeScrollArea);return(0,H.jsx)(tn,{present:n||i.hasThumb,children:(0,H.jsx)(Xo,{ref:t,...r})})}),Xo=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...a}=e,o=No(Jo,n),s=Ko(Jo,n),{onThumbPositionChange:c}=s,l=b(t,e=>s.onThumbChange(e)),u=V.useRef(void 0),d=cs(()=>{u.current&&=(u.current(),void 0)},100);return V.useEffect(()=>{let e=o.viewport;if(e){let t=()=>{d(),u.current||(u.current=ss(e,c),c())};return c(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[o.viewport,d,c]),(0,H.jsx)(i.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)`,...r},onPointerDownCapture:j(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:j(e.onPointerUp,s.onThumbPointerUp)})});Yo.displayName=Jo;var Zo=`ScrollAreaCorner`,Qo=V.forwardRef((e,t)=>{let n=No(Zo,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,H.jsx)($o,{...e,ref:t}):null});Qo.displayName=Zo;var $o=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,a=No(Zo,n),[o,s]=V.useState(0),[c,l]=V.useState(0),u=!!(o&&c);return ls(a.scrollbarX,()=>{let e=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(e),l(e)}),ls(a.scrollbarY,()=>{let e=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(e),s(e)}),u?(0,H.jsx)(i.div,{...r,ref:t,style:{width:o,height:c,position:`absolute`,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function es(e){return e?parseInt(e,10):0}function ts(e,t){let n=e/t;return isNaN(n)?0:n}function ns(e){let t=ts(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function rs(e,t,n,r=`ltr`){let i=ns(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 as([c,l],d)(e)}function is(e,t,n=`ltr`){let r=ns(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=C(e,n===`ltr`?[0,o]:[o*-1,0]);return as([0,o],[0,s])(c)}function as(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 os(e,t){return e>0&&e<t}var ss=(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 cs(e,t){let n=S(e),r=V.useRef(0);return V.useEffect(()=>()=>window.clearTimeout(r.current),[]),V.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function ls(e,t){let n=S(t);A(()=>{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 us=Po,ds=Io,fs=Qo,ps=[` `,`Enter`,`ArrowUp`,`ArrowDown`],ms=[` `,`Enter`],hs=`Select`,[gs,_s,vs]=f(hs),[ys,bs]=c(hs,[vs,D]),xs=D(),[Ss,Cs]=ys(hs),[ws,Ts]=ys(hs),Es=e=>{let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:d,autoComplete:f,disabled:p,required:m,form:h}=e,v=xs(t),[y,b]=V.useState(null),[x,S]=V.useState(null),[C,T]=V.useState(!1),E=_(l),[D,O]=u({prop:r,defaultProp:i??!1,onChange:a,caller:hs}),[k,A]=u({prop:o,defaultProp:s,onChange:c,caller:hs}),ee=V.useRef(null),te=y?h||!!y.closest(`form`):!0,[j,M]=V.useState(new Set),N=Array.from(j).map(e=>e.props.value).join(`;`);return(0,H.jsx)(w,{...v,children:(0,H.jsxs)(Ss,{required:m,scope:t,trigger:y,onTriggerChange:b,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:T,contentId:g(),value:k,onValueChange:A,open:D,onOpenChange:O,dir:E,triggerPointerDownPosRef:ee,disabled:p,children:[(0,H.jsx)(gs.Provider,{scope:t,children:(0,H.jsx)(ws,{scope:e.__scopeSelect,onNativeOptionAdd:V.useCallback(e=>{M(t=>new Set(t).add(e))},[]),onNativeOptionRemove:V.useCallback(e=>{M(t=>{let n=new Set(t);return n.delete(e),n})},[]),children:n})}),te?(0,H.jsxs)(xc,{"aria-hidden":!0,required:m,tabIndex:-1,name:d,autoComplete:f,value:k,onChange:e=>A(e.target.value),disabled:p,form:h,children:[k===void 0?(0,H.jsx)(`option`,{value:``}):null,Array.from(j)]},N):null]})})};Es.displayName=hs;var Ds=`SelectTrigger`,Os=V.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...a}=e,o=xs(n),s=Cs(Ds,n),c=s.disabled||r,l=b(t,s.onTriggerChange),u=_s(n),d=V.useRef(`touch`),[f,p,m]=Cc(e=>{let t=u().filter(e=>!e.disabled),n=wc(t,e,t.find(e=>e.value===s.value));n!==void 0&&s.onValueChange(n.value)}),h=e=>{c||(s.onOpenChange(!0),m()),e&&(s.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,H.jsx)(E,{asChild:!0,...o,children:(0,H.jsx)(i.button,{type:`button`,role:`combobox`,"aria-controls":s.contentId,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":`none`,dir:s.dir,"data-state":s.open?`open`:`closed`,disabled:c,"data-disabled":c?``:void 0,"data-placeholder":Sc(s.value)?``:void 0,...a,ref:l,onClick:j(a.onClick,e=>{e.currentTarget.focus(),d.current!==`mouse`&&h(e)}),onPointerDown:j(a.onPointerDown,e=>{d.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(h(e),e.preventDefault())}),onKeyDown:j(a.onKeyDown,e=>{let t=f.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&p(e.key),!(t&&e.key===` `)&&ps.includes(e.key)&&(h(),e.preventDefault())})})})});Os.displayName=Ds;var ks=`SelectValue`,As=V.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:a,children:o,placeholder:s=``,...c}=e,l=Cs(ks,n),{onValueNodeHasChildrenChange:u}=l,d=o!==void 0,f=b(t,l.onValueNodeChange);return A(()=>{u(d)},[u,d]),(0,H.jsx)(i.span,{...c,ref:f,style:{pointerEvents:`none`},children:Sc(l.value)?(0,H.jsx)(H.Fragment,{children:s}):o})});As.displayName=ks;var js=`SelectIcon`,Ms=V.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...a}=e;return(0,H.jsx)(i.span,{"aria-hidden":!0,...a,ref:t,children:r||`▼`})});Ms.displayName=js;var Ns=`SelectPortal`,Ps=e=>(0,H.jsx)(m,{asChild:!0,...e});Ps.displayName=Ns;var Fs=`SelectContent`,Is=V.forwardRef((e,t)=>{let n=Cs(Fs,e.__scopeSelect),[r,i]=V.useState();if(A(()=>{i(new DocumentFragment)},[]),!n.open){let t=r;return t?_t.createPortal((0,H.jsx)(Rs,{scope:e.__scopeSelect,children:(0,H.jsx)(gs.Slot,{scope:e.__scopeSelect,children:(0,H.jsx)(`div`,{children:e.children})})}),t):null}return(0,H.jsx)(Hs,{...e,ref:t})});Is.displayName=Fs;var Ls=10,[Rs,zs]=ys(Fs),Bs=`SelectContentImpl`,Vs=o(`SelectContent.RemoveScroll`),Hs=V.forwardRef((e,t)=>{let{__scopeSelect:n,position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:m,sticky:g,hideWhenDetached:_,avoidCollisions:v,...y}=e,S=Cs(Fs,n),[C,w]=V.useState(null),[E,D]=V.useState(null),O=b(t,e=>w(e)),[A,ee]=V.useState(null),[te,M]=V.useState(null),N=_s(n),[P,ne]=V.useState(!1),F=V.useRef(!1);V.useEffect(()=>{if(C)return p(C)},[C]),k();let re=V.useCallback(e=>{let[t,...n]=N().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&E&&(E.scrollTop=0),n===r&&E&&(E.scrollTop=E.scrollHeight),n?.focus(),document.activeElement!==i))return},[N,E]),I=V.useCallback(()=>re([A,C]),[re,A,C]);V.useEffect(()=>{P&&I()},[P,I]);let{onOpenChange:L,triggerPointerDownPosRef:R}=S;V.useEffect(()=>{if(C){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(R.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(R.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():C.contains(n.target)||L(!1),document.removeEventListener(`pointermove`,t),R.current=null};return R.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[C,L,R]),V.useEffect(()=>{let e=()=>L(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[L]);let[ie,ae]=Cc(e=>{let t=N().filter(e=>!e.disabled),n=wc(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current.focus())}),z=V.useCallback((e,t,n)=>{let r=!F.current&&!n;(S.value!==void 0&&S.value===t||r)&&(ee(e),r&&(F.current=!0))},[S.value]),oe=V.useCallback(()=>C?.focus(),[C]),se=V.useCallback((e,t,n)=>{let r=!F.current&&!n;(S.value!==void 0&&S.value===t||r)&&M(e)},[S.value]),ce=r===`popper`?Ks:Ws,le=ce===Ks?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:m,sticky:g,hideWhenDetached:_,avoidCollisions:v}:{};return(0,H.jsx)(Rs,{scope:n,content:C,viewport:E,onViewportChange:D,itemRefCallback:z,selectedItem:A,onItemLeave:oe,itemTextRefCallback:se,focusSelectedItem:I,selectedItemText:te,position:r,isPositioned:P,searchRef:ie,children:(0,H.jsx)(x,{as:Vs,allowPinchZoom:!0,children:(0,H.jsx)(h,{asChild:!0,trapped:S.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:j(i,e=>{S.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,H.jsx)(T,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>S.onOpenChange(!1),children:(0,H.jsx)(ce,{role:`listbox`,id:S.contentId,"data-state":S.open?`open`:`closed`,dir:S.dir,onContextMenu:e=>e.preventDefault(),...y,...le,onPlaced:()=>ne(!0),ref:O,style:{display:`flex`,flexDirection:`column`,outline:`none`,...y.style},onKeyDown:j(y.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&ae(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=N().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>re(t)),e.preventDefault()}})})})})})})});Hs.displayName=Bs;var Us=`SelectItemAlignedPosition`,Ws=V.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...a}=e,o=Cs(Fs,n),s=zs(Fs,n),[c,l]=V.useState(null),[u,d]=V.useState(null),f=b(t,e=>d(e)),p=_s(n),m=V.useRef(!1),h=V.useRef(!0),{viewport:g,selectedItem:_,selectedItemText:v,focusSelectedItem:y}=s,x=V.useCallback(()=>{if(o.trigger&&o.valueNode&&c&&u&&g&&_&&v){let e=o.trigger.getBoundingClientRect(),t=u.getBoundingClientRect(),n=o.valueNode.getBoundingClientRect(),i=v.getBoundingClientRect();if(o.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,s=e.width+o,l=Math.max(s,t.width),u=window.innerWidth-Ls,d=C(a,[Ls,Math.max(Ls,u-l)]);c.style.minWidth=s+`px`,c.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,s=e.width+o,l=Math.max(s,t.width),u=window.innerWidth-Ls,d=C(a,[Ls,Math.max(Ls,u-l)]);c.style.minWidth=s+`px`,c.style.right=d+`px`}let a=p(),s=window.innerHeight-Ls*2,l=g.scrollHeight,d=window.getComputedStyle(u),f=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=f+h+l+b+y,S=Math.min(_.offsetHeight*5,x),w=window.getComputedStyle(g),T=parseInt(w.paddingTop,10),E=parseInt(w.paddingBottom,10),D=e.top+e.height/2-Ls,O=s-D,k=_.offsetHeight/2,A=_.offsetTop+k,ee=f+h+A,te=x-ee;if(ee<=D){let e=a.length>0&&_===a[a.length-1].ref.current;c.style.bottom=`0px`;let t=u.clientHeight-g.offsetTop-g.offsetHeight,n=ee+Math.max(O,k+(e?E:0)+t+y);c.style.height=n+`px`}else{let e=a.length>0&&_===a[0].ref.current;c.style.top=`0px`;let t=Math.max(D,f+g.offsetTop+(e?T:0)+k)+te;c.style.height=t+`px`,g.scrollTop=ee-D+g.offsetTop}c.style.margin=`${Ls}px 0`,c.style.minHeight=S+`px`,c.style.maxHeight=s+`px`,r?.(),requestAnimationFrame(()=>m.current=!0)}},[p,o.trigger,o.valueNode,c,u,g,_,v,o.dir,r]);A(()=>x(),[x]);let[S,w]=V.useState();return A(()=>{u&&w(window.getComputedStyle(u).zIndex)},[u]),(0,H.jsx)(qs,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:m,onScrollButtonChange:V.useCallback(e=>{e&&h.current===!0&&(x(),y?.(),h.current=!1)},[x,y]),children:(0,H.jsx)(`div`,{ref:l,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:S},children:(0,H.jsx)(i.div,{...a,ref:f,style:{boxSizing:`border-box`,maxHeight:`100%`,...a.style}})})})});Ws.displayName=Us;var Gs=`SelectPopperPosition`,Ks=V.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=Ls,...a}=e,o=xs(n);return(0,H.jsx)(d,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})});Ks.displayName=Gs;var[qs,Js]=ys(Fs,{}),Ys=`SelectViewport`,Xs=V.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...a}=e,o=zs(Ys,n),s=Js(Ys,n),c=b(t,o.onViewportChange),l=V.useRef(0);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,H.jsx)(gs.Slot,{scope:n,children:(0,H.jsx)(i.div,{"data-radix-select-viewport":``,role:`presentation`,...a,ref:c,style:{position:`relative`,flex:1,overflow:`hidden auto`,...a.style},onScroll:j(a.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=s;if(r?.current&&n){let e=Math.abs(l.current-t.scrollTop);if(e>0){let r=window.innerHeight-Ls*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}l.current=t.scrollTop})})})]})});Xs.displayName=Ys;var Zs=`SelectGroup`,[Qs,$s]=ys(Zs),ec=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,a=g();return(0,H.jsx)(Qs,{scope:n,id:a,children:(0,H.jsx)(i.div,{role:`group`,"aria-labelledby":a,...r,ref:t})})});ec.displayName=Zs;var tc=`SelectLabel`,nc=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,a=$s(tc,n);return(0,H.jsx)(i.div,{id:a.id,...r,ref:t})});nc.displayName=tc;var rc=`SelectItem`,[ic,ac]=ys(rc),oc=V.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:a=!1,textValue:o,...s}=e,c=Cs(rc,n),l=zs(rc,n),u=c.value===r,[d,f]=V.useState(o??``),[p,m]=V.useState(!1),h=b(t,e=>l.itemRefCallback?.(e,r,a)),_=g(),v=V.useRef(`touch`),y=()=>{a||(c.onValueChange(r),c.onOpenChange(!1))};if(r===``)throw Error(`A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return(0,H.jsx)(ic,{scope:n,value:r,disabled:a,textId:_,isSelected:u,onItemTextChange:V.useCallback(e=>{f(t=>t||(e?.textContent??``).trim())},[]),children:(0,H.jsx)(gs.ItemSlot,{scope:n,value:r,disabled:a,textValue:d,children:(0,H.jsx)(i.div,{role:`option`,"aria-labelledby":_,"data-highlighted":p?``:void 0,"aria-selected":u&&p,"data-state":u?`checked`:`unchecked`,"aria-disabled":a||void 0,"data-disabled":a?``:void 0,tabIndex:a?void 0:-1,...s,ref:h,onFocus:j(s.onFocus,()=>m(!0)),onBlur:j(s.onBlur,()=>m(!1)),onClick:j(s.onClick,()=>{v.current!==`mouse`&&y()}),onPointerUp:j(s.onPointerUp,()=>{v.current===`mouse`&&y()}),onPointerDown:j(s.onPointerDown,e=>{v.current=e.pointerType}),onPointerMove:j(s.onPointerMove,e=>{v.current=e.pointerType,a?l.onItemLeave?.():v.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:j(s.onPointerLeave,e=>{e.currentTarget===document.activeElement&&l.onItemLeave?.()}),onKeyDown:j(s.onKeyDown,e=>{l.searchRef?.current!==``&&e.key===` `||(ms.includes(e.key)&&y(),e.key===` `&&e.preventDefault())})})})})});oc.displayName=rc;var sc=`SelectItemText`,cc=V.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:a,...o}=e,s=Cs(sc,n),c=zs(sc,n),l=ac(sc,n),u=Ts(sc,n),[d,f]=V.useState(null),p=b(t,e=>f(e),l.onItemTextChange,e=>c.itemTextRefCallback?.(e,l.value,l.disabled)),m=d?.textContent,h=V.useMemo(()=>(0,H.jsx)(`option`,{value:l.value,disabled:l.disabled,children:m},l.value),[l.disabled,l.value,m]),{onNativeOptionAdd:g,onNativeOptionRemove:_}=u;return A(()=>(g(h),()=>_(h)),[g,_,h]),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(i.span,{id:l.textId,...o,ref:p}),l.isSelected&&s.valueNode&&!s.valueNodeHasChildren?_t.createPortal(o.children,s.valueNode):null]})});cc.displayName=sc;var lc=`SelectItemIndicator`,uc=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return ac(lc,n).isSelected?(0,H.jsx)(i.span,{"aria-hidden":!0,...r,ref:t}):null});uc.displayName=lc;var dc=`SelectScrollUpButton`,fc=V.forwardRef((e,t)=>{let n=zs(dc,e.__scopeSelect),r=Js(dc,e.__scopeSelect),[i,a]=V.useState(!1),o=b(t,r.onScrollButtonChange);return A(()=>{if(n.viewport&&n.isPositioned){let e=function(){a(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,H.jsx)(hc,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});fc.displayName=dc;var pc=`SelectScrollDownButton`,mc=V.forwardRef((e,t)=>{let n=zs(pc,e.__scopeSelect),r=Js(pc,e.__scopeSelect),[i,a]=V.useState(!1),o=b(t,r.onScrollButtonChange);return A(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,H.jsx)(hc,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});mc.displayName=pc;var hc=V.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...a}=e,o=zs(`SelectScrollButton`,n),s=V.useRef(null),c=_s(n),l=V.useCallback(()=>{s.current!==null&&(window.clearInterval(s.current),s.current=null)},[]);return V.useEffect(()=>()=>l(),[l]),A(()=>{c().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[c]),(0,H.jsx)(i.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:j(a.onPointerDown,()=>{s.current===null&&(s.current=window.setInterval(r,50))}),onPointerMove:j(a.onPointerMove,()=>{o.onItemLeave?.(),s.current===null&&(s.current=window.setInterval(r,50))}),onPointerLeave:j(a.onPointerLeave,()=>{l()})})}),gc=`SelectSeparator`,_c=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,H.jsx)(i.div,{"aria-hidden":!0,...r,ref:t})});_c.displayName=gc;var vc=`SelectArrow`,yc=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=xs(n),a=Cs(vc,n),o=zs(vc,n);return a.open&&o.position===`popper`?(0,H.jsx)(v,{...i,...r,ref:t}):null});yc.displayName=vc;var bc=`SelectBubbleInput`,xc=V.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{let a=V.useRef(null),o=b(r,a),s=qn(t);return V.useEffect(()=>{let e=a.current;if(!e)return;let n=window.HTMLSelectElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(s!==t&&r){let n=new Event(`change`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[s,t]),(0,H.jsx)(i.select,{...n,style:{...Xt,...n.style},ref:o,defaultValue:t})});xc.displayName=bc;function Sc(e){return e===``||e===void 0}function Cc(e){let t=S(e),n=V.useRef(``),r=V.useRef(0),i=V.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=V.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return V.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function wc(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=Tc(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function Tc(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Ec=Es,Dc=Os,Oc=As,kc=Ms,Ac=Ps,jc=Is,Mc=Xs,Nc=oc,Pc=cc,Fc=uc,Ic=fc,Lc=mc,Rc=`Separator`,zc=`horizontal`,Bc=[`horizontal`,`vertical`],Vc=V.forwardRef((e,t)=>{let{decorative:n,orientation:r=zc,...a}=e,o=Hc(r)?r:zc,s=o===`vertical`?o:void 0,c=n?{role:`none`}:{"aria-orientation":s,role:`separator`};return(0,H.jsx)(i.div,{"data-orientation":o,...c,...a,ref:t})});Vc.displayName=Rc;function Hc(e){return Bc.includes(e)}var Uc=Vc,[Wc,Gc]=c(`Tooltip`,[D]),Kc=D(),qc=`TooltipProvider`,Jc=700,Yc=`tooltip.open`,[Xc,Zc]=Wc(qc),Qc=e=>{let{__scopeTooltip:t,delayDuration:n=Jc,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=V.useRef(!0),s=V.useRef(!1),c=V.useRef(0);return V.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,H.jsx)(Xc,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:V.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:V.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:V.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};Qc.displayName=qc;var $c=`Tooltip`,[el,tl]=Wc($c),nl=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=Zc($c,e.__scopeTooltip),l=Kc(t),[d,f]=V.useState(null),p=g(),m=V.useRef(0),h=o??c.disableHoverableContent,_=s??c.delayDuration,v=V.useRef(!1),[y,b]=u({prop:r,defaultProp:i??!1,onChange:e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(Yc))):c.onClose(),a?.(e)},caller:$c}),x=V.useMemo(()=>y?v.current?`delayed-open`:`instant-open`:`closed`,[y]),S=V.useCallback(()=>{window.clearTimeout(m.current),m.current=0,v.current=!1,b(!0)},[b]),C=V.useCallback(()=>{window.clearTimeout(m.current),m.current=0,b(!1)},[b]),T=V.useCallback(()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>{v.current=!0,b(!0),m.current=0},_)},[_,b]);return V.useEffect(()=>()=>{m.current&&=(window.clearTimeout(m.current),0)},[]),(0,H.jsx)(w,{...l,children:(0,H.jsx)(el,{scope:t,contentId:p,open:y,stateAttribute:x,trigger:d,onTriggerChange:f,onTriggerEnter:V.useCallback(()=>{c.isOpenDelayedRef.current?T():S()},[c.isOpenDelayedRef,T,S]),onTriggerLeave:V.useCallback(()=>{h?C():(window.clearTimeout(m.current),m.current=0)},[C,h]),onOpen:S,onClose:C,disableHoverableContent:h,children:n})})};nl.displayName=$c;var rl=`TooltipTrigger`,il=V.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,a=tl(rl,n),o=Zc(rl,n),s=Kc(n),c=b(t,V.useRef(null),a.onTriggerChange),l=V.useRef(!1),u=V.useRef(!1),d=V.useCallback(()=>l.current=!1,[]);return V.useEffect(()=>()=>document.removeEventListener(`pointerup`,d),[d]),(0,H.jsx)(E,{asChild:!0,...s,children:(0,H.jsx)(i.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:c,onPointerMove:j(e.onPointerMove,e=>{e.pointerType!==`touch`&&!u.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),u.current=!0)}),onPointerLeave:j(e.onPointerLeave,()=>{a.onTriggerLeave(),u.current=!1}),onPointerDown:j(e.onPointerDown,()=>{a.open&&a.onClose(),l.current=!0,document.addEventListener(`pointerup`,d,{once:!0})}),onFocus:j(e.onFocus,()=>{l.current||a.onOpen()}),onBlur:j(e.onBlur,a.onClose),onClick:j(e.onClick,a.onClose)})})});il.displayName=rl;var al=`TooltipPortal`,[ol,sl]=Wc(al,{forceMount:void 0}),cl=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=tl(al,t);return(0,H.jsx)(ol,{scope:t,forceMount:n,children:(0,H.jsx)(tn,{present:n||a.open,children:(0,H.jsx)(m,{asChild:!0,container:i,children:r})})})};cl.displayName=al;var ll=`TooltipContent`,ul=V.forwardRef((e,t)=>{let n=sl(ll,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=tl(ll,e.__scopeTooltip);return(0,H.jsx)(tn,{present:r||o.open,children:o.disableHoverableContent?(0,H.jsx)(hl,{side:i,...a,ref:t}):(0,H.jsx)(dl,{side:i,...a,ref:t})})}),dl=V.forwardRef((e,t)=>{let n=tl(ll,e.__scopeTooltip),r=Zc(ll,e.__scopeTooltip),i=V.useRef(null),a=b(t,i),[o,s]=V.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=V.useCallback(()=>{s(null),d(!1)},[d]),p=V.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=yl(r,vl(r,n.getBoundingClientRect())),a=bl(t.getBoundingClientRect());s(Sl([...i,...a])),d(!0)},[d]);return V.useEffect(()=>()=>f(),[f]),V.useEffect(()=>{if(c&&u){let e=e=>p(e,u),t=e=>p(e,c);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),V.useEffect(()=>{if(o){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!xl(n,o);r?f():i&&(f(),l())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,H.jsx)(hl,{...e,ref:a})}),[fl,pl]=Wc($c,{isInside:!1}),ml=a(`TooltipContent`),hl=V.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=tl(ll,n),l=Kc(n),{onClose:u}=c;return V.useEffect(()=>(document.addEventListener(Yc,u),()=>document.removeEventListener(Yc,u)),[u]),V.useEffect(()=>{if(c.trigger){let e=e=>{e.target?.contains(c.trigger)&&u()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[c.trigger,u]),(0,H.jsx)(T,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:(0,H.jsxs)(d,{"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,H.jsx)(ml,{children:r}),(0,H.jsx)(fl,{scope:n,isInside:!0,children:(0,H.jsx)($t,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});ul.displayName=ll;var gl=`TooltipArrow`,_l=V.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=Kc(n);return pl(gl,n).isInside?null:(0,H.jsx)(v,{...i,...r,ref:t})});_l.displayName=gl;function vl(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 yl(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 bl(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 xl(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 Sl(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),Cl(t)}function Cl(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 wl=Qc,Tl=nl,El=il,Dl=cl,Ol=ul,kl=_l;function Al({delayDuration:e=0,...t}){return(0,H.jsx)(wl,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function jl({...e}){return(0,H.jsx)(Tl,{"data-slot":`tooltip`,...e})}function Ml({...e}){return(0,H.jsx)(El,{"data-slot":`tooltip-trigger`,...e})}function Nl({className:e,sideOffset:t=0,children:n,...r}){return(0,H.jsx)(Dl,{children:(0,H.jsxs)(Ol,{"data-slot":`tooltip-content`,sideOffset:t,className:z(`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,H.jsx)(kl,{className:`z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground`})]})})}function Pl(e,t){let n=getComputedStyle(e);return t*parseFloat(n.fontSize)}function Fl(e,t){let n=getComputedStyle(e.ownerDocument.body);return t*parseFloat(n.fontSize)}function Il(e){return e/100*window.innerHeight}function Ll(e){return e/100*window.innerWidth}function Rl(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 K({groupSize:e,panelElement:t,styleProp:n}){let r,[i,a]=Rl(n);switch(a){case`%`:r=i/100*e;break;case`px`:r=i;break;case`rem`:r=Fl(t,i);break;case`em`:r=Pl(t,i);break;case`vh`:r=Il(i);break;case`vw`:r=Ll(i);break}return r}function q(e){return parseFloat(e.toFixed(3))}function J({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 Y(e){let{panels:t}=e,n=J({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=q(K({groupSize:n,panelElement:t,styleProp:r.collapsedSize})/n*100));let a;r.defaultSize!==void 0&&(a=q(K({groupSize:n,panelElement:t,styleProp:r.defaultSize})/n*100));let o=0;r.minSize!==void 0&&(o=q(K({groupSize:n,panelElement:t,styleProp:r.minSize})/n*100));let s=100;return r.maxSize!==void 0&&(s=q(K({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 X(e,t=`Assertion error`){if(!e)throw Error(t)}function zl(e,t){return Array.from(t).sort(e===`horizontal`?Bl:Vl)}function Bl(e,t){let n=e.element.offsetLeft-t.element.offsetLeft;return n===0?e.element.offsetWidth-t.element.offsetWidth:n}function Vl(e,t){let n=e.element.offsetTop-t.element.offsetTop;return n===0?e.element.offsetHeight-t.element.offsetHeight:n}function Hl(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.ELEMENT_NODE}function Ul(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 Wl({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}=Ul(r,n),s=e===`horizontal`?t:o;s<a&&(a=s,i=n)}return X(i,`No rect found`),i}var Gl;function Kl(){return Gl===void 0&&(Gl=typeof matchMedia==`function`?!!matchMedia(`(pointer:coarse)`).matches:!1),Gl}function ql(e){let{element:t,orientation:n,panels:r,separators:i}=e,a=zl(n,Array.from(t.children).filter(Hl).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,Wl({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=Kl()?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:J({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 Jl=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)}}},Yl=new Map,Xl=new Jl;function Zl(e){Yl=new Map(Yl),Yl.delete(e)}function Ql(e,t){for(let[t]of Yl)if(t.id===e)return t}function $l(e,t){for(let[t,n]of Yl)if(t.id===e)return n;if(t)throw Error(`Could not find data for Group with id ${e}`)}function eu(){return Yl}function tu(e,t){return Xl.addListener(`groupChange`,n=>{n.group.id===e&&t(n)})}function nu(e,t){let n=Yl.get(e);Yl=new Map(Yl),Yl.set(e,t),Xl.emit(`groupChange`,{group:e,prev:n,next:t})}function ru(e,t,n){let r,i={x:1/0,y:1/0};for(let a of t){let t=Ul(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 iu(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function au(e,t){if(e===t)throw Error(`Cannot compare node with itself`);let n={a:du(e),b:du(t)},r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();X(r,`Stacking order can only be calculated for elements with a common ancestor`);let i={a:uu(lu(n.a)),b:uu(lu(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 ou=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function su(e){let t=getComputedStyle(fu(e)??e).display;return t===`flex`||t===`inline-flex`}function cu(e){let t=getComputedStyle(e);return!!(t.position===`fixed`||t.zIndex!==`auto`&&(t.position!==`static`||su(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`||ou.test(t.willChange)||t.webkitOverflowScrolling===`touch`)}function lu(e){let t=e.length;for(;t--;){let n=e[t];if(X(n,`Missing node`),cu(n))return n}return null}function uu(e){return e&&Number(getComputedStyle(e).zIndex)||0}function du(e){let t=[];for(;e;)t.push(e),e=fu(e);return t}function fu(e){let{parentNode:t}=e;return iu(t)?t.host:t}function pu(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 mu({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!Hl(n)||n.contains(e)||e.contains(n))return!0;if(au(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(pu(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function hu(e,t){let n=[];return t.forEach((t,r)=>{if(r.disabled)return;let i=ql(r),a=ru(r.orientation,i,{x:e.clientX,y:e.clientY});a&&a.distance.x<=0&&a.distance.y<=0&&mu({groupElement:r.element,hitRegion:a.hitRegion.rect,pointerEventTarget:e.target})&&n.push(a.hitRegion)}),n}function gu(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 _u(e,t,n=0){return Math.abs(q(e)-q(t))<=n}function vu(e,t){return _u(e,t)?0:e>t?1:-1}function yu({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(vu(r,c)<0)if(a){let e=(i+c)/2;r=vu(r,e)<0?i:c}else r=c;return r=Math.min(s,r),r=q(r),r}function bu({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:i,trigger:a}){if(_u(e,0))return t;let o=a===`imperative-api`,s=Object.values(t),c=Object.values(i),l=[...s],[u,d]=r;X(u!=null,`Invalid first pivot index`),X(d!=null,`Invalid second pivot index`);let f=0;switch(a){case`keyboard`:{let t=e<0?d:u,r=n[t];X(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(X(n!=null,`Previous layout not found for panel index ${t}`),_u(n,i)){let t=o-n;vu(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?u:d,r=n[t];X(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(X(n!=null,`Previous layout not found for panel index ${t}`),_u(n,o)){let t=n-i;vu(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}break;default:{let t=e<0?d:u,r=n[t];X(r,`Panel constraints not found for index ${t}`);let i=s[t],{collapsible:a,collapsedSize:o,minSize:c}=r;if(a&&vu(i,c)<0)if(e>0){let t=c-o,n=t/2;vu(i+e,c)<0&&(e=vu(e,n)<=0?0:t)}else{let t=c-o,n=100-t/2;vu(i-e,c)<0&&(e=vu(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];X(e!=null,`Previous layout not found for panel index ${r}`);let a=yu({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];X(i!=null,`Previous layout not found for panel index ${t}`);let a=i-r,c=yu({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:i,size:a});if(!_u(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(gu(c,l))return i;{let t=e<0?d:u,r=s[t];X(r!=null,`Previous layout not found for panel index ${t}`);let i=r+f,a=yu({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:r,size:i});if(l[t]=a,!_u(a,i)){let t=i-a,r=e<0?d:u;for(;r>=0&&r<n.length;){let i=l[r];X(i!=null,`Previous layout not found for panel index ${r}`);let a=i+t,s=yu({overrideDisabledPanels:o,panelConstraints:n[r],prevSize:i,size:a});if(_u(i,s)||(t-=s-i,l[r]=s),_u(t,0))break;e>0?r--:r++}}}if(!_u(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 xu(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(t[n]===void 0||vu(e[n],t[n])!==0)return!1;return!0}function Su({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(!_u(i,100)&&r.length>0)for(let e=0;e<t.length;e++){let t=r[e];X(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];X(i!=null,`No layout data found for index ${e}`);let o=r[e];X(o!=null,`No layout data found for index ${e}`);let s=yu({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:i,size:o});o!=s&&(a+=o-s,r[e]=s)}if(!_u(a,0))for(let e=0;e<t.length;e++){let n=r[e];X(n!=null,`No layout data found for index ${e}`);let i=n+a,o=yu({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:n,size:i});if(n!==o&&(a-=o-n,r[e]=o,_u(a,0)))break}let o=Object.keys(e);return r.reduce((e,t,n)=>(e[o[n]]=t,e),{})}function Cu({groupId:e,panelId:t}){let n=()=>{let t=eu();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=Su({layout:bu({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});xu(l,p)||nu(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&&_u(t,n)},resize:e=>{let{group:t}=n(),{element:r}=i(),a=J({group:t});o(q(K({groupSize:a,panelElement:r,styleProp:e})/a*100))}}}function wu(e){e.defaultPrevented||hu(e,eu()).forEach(t=>{if(t.separator){let n=t.panels.find(e=>e.panelConstraints.defaultSize!==void 0);if(n){let r=n.panelConstraints.defaultSize,i=Cu({groupId:t.group.id,panelId:n.id});i&&r!==void 0&&(i.resize(r),e.preventDefault())}}})}function Tu(e){let t=eu();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 Eu({groupId:e}){let t=()=>{let t=eu();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=Su({layout:e,panelConstraints:r});return n?o:(xu(o,c)||nu(i,{defaultLayoutDeferred:n,derivedPanelConstraints:r,groupSize:a,layout:c,separatorToPanels:s}),c)}}}function Du(e,t){let n=Tu(e),r=$l(n.id,!0),i=n.separators.find(t=>t.element===e);X(i,`Matching separator not found`);let a=r.separatorToPanels.get(i);X(a,`Matching panels not found`);let o=a.map(e=>n.panels.indexOf(e)),s=Eu({groupId:n.id}).getLayout(),c=Su({layout:bu({delta:t,initialLayout:s,panelConstraints:r.derivedPanelConstraints,pivotIndices:o,prevLayout:s,trigger:`keyboard`}),panelConstraints:r.derivedPanelConstraints});xu(s,c)||nu(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedPanelConstraints:r.derivedPanelConstraints,groupSize:r.groupSize,layout:c,separatorToPanels:r.separatorToPanels})}function Ou(e){if(e.defaultPrevented)return;let t=e.currentTarget,n=Tu(t);if(!n.disabled)switch(e.key){case`ArrowDown`:e.preventDefault(),n.orientation===`vertical`&&Du(t,5);break;case`ArrowLeft`:e.preventDefault(),n.orientation===`horizontal`&&Du(t,-5);break;case`ArrowRight`:e.preventDefault(),n.orientation===`horizontal`&&Du(t,5);break;case`ArrowUp`:e.preventDefault(),n.orientation===`vertical`&&Du(t,-5);break;case`End`:e.preventDefault(),Du(t,100);break;case`Enter`:{e.preventDefault();let n=Tu(t),{derivedPanelConstraints:r,layout:i,separatorToPanels:a}=$l(n.id,!0),o=n.separators.find(e=>e.element===t);X(o,`Matching separator not found`);let s=a.get(o);X(s,`Matching panels not found`);let c=s[0],l=r.find(e=>e.panelId===c.id);if(X(l,`Panel metadata not found`),l.collapsible){let e=i[c.id];Du(t,(l.collapsedSize===e?n.mutableState.expandedPanelSizes[c.id]??l.minSize:l.collapsedSize)-e)}break}case`F6`:{e.preventDefault();let n=Tu(t).separators.map(e=>e.element),r=Array.from(n).findIndex(t=>t===e.currentTarget);X(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(),Du(t,-100);break}}var ku={cursorFlags:0,state:`inactive`},Au=new Jl;function ju(){return ku}function Mu(e){return Au.addListener(`change`,e)}function Nu(e){let t=ku,n={...ku};n.cursorFlags=e,ku=n,Au.emit(`change`,{prev:t,next:n})}function Pu(e){let t=ku;ku=e,Au.emit(`change`,{prev:t,next:e})}function Fu(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=eu(),n=hu(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)}),Pu({cursorFlags:0,hitRegions:n,initialLayoutMap:r,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:`active`}),n.length&&e.preventDefault()}var Iu=e=>e,Lu=()=>{},Ru=1,zu=2,Bu=4,Vu=8,Hu=3,Uu=12,Wu;function Z(){return Wu===void 0&&(Wu=!1,typeof window<`u`&&(window.navigator.userAgent.includes(`Chrome`)||window.navigator.userAgent.includes(`Firefox`))&&(Wu=!0)),Wu}function Gu({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&&Z()){let t=(e&Ru)!==0,n=(e&zu)!==0,r=(e&Bu)!==0,i=(e&Vu)!==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 Z()?r>0&&i>0?`move`:r>0?`ew-resize`:`ns-resize`:r>0&&i>0?`grab`:r>0?`col-resize`:`row-resize`}}var Ku=new WeakMap;function qu(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Ku.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));let r=ju();switch(r.state){case`active`:case`hover`:{let e=Gu({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}Ku.set(e,{prevStyle:t,styleSheet:n})}function Ju({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=bu({delta:d,initialLayout:f,panelConstraints:h,pivotIndices:e.panels.map(e=>l.indexOf(e)),prevLayout:_,trigger:`mouse-or-touch`});if(xu(t,_)){if(d!==0&&!u)switch(c){case`horizontal`:s|=d<0?Ru:zu;break;case`vertical`:s|=d<0?Bu:Vu;break}}else nu(e.group,{defaultLayoutDeferred:m,derivedPanelConstraints:h,groupSize:g,layout:t,separatorToPanels:v})}});let c=0;t.movementX===0?c|=o&Hu:c|=s&Hu,t.movementY===0?c|=o&Uu:c|=s&Uu,Nu(c),qu(e)}function Yu(e){let t=eu(),n=ju();switch(n.state){case`active`:Ju({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function Xu(e){if(e.defaultPrevented)return;let t=ju(),n=eu();switch(t.state){case`active`:if(e.buttons===0){Pu({cursorFlags:0,state:`inactive`}),t.hitRegions.forEach(e=>{let t=$l(e.group.id,!0);nu(e.group,t)});return}Ju({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break;default:{let r=hu(e,n);r.length===0?t.state!==`inactive`&&Pu({cursorFlags:0,state:`inactive`}):Pu({cursorFlags:0,hitRegions:r,state:`hover`}),qu(e.currentTarget);break}}}function Zu(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(ju().state){case`hover`:Pu({cursorFlags:0,state:`inactive`})}}function Qu(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=ju();switch(t.state){case`active`:Pu({cursorFlags:0,state:`inactive`}),t.hitRegions.length>0&&(qu(e.currentTarget),t.hitRegions.forEach(e=>{let t=$l(e.group.id,!0);nu(e.group,t)}),e.preventDefault())}}function $u(e){let t=0,n=0,r={};for(let i of e)if(i.defaultSize!==void 0){t++;let e=q(i.defaultSize);n+=e,r[i.panelId]=e}else r[i.panelId]=void 0;let i=e.length-t;if(i!==0){let t=q((100-n)/i);for(let n of e)n.defaultSize===void 0&&(r[n.panelId]=t)}return r}function ed(e,t,n){if(!n[0])return;let r=e.panels.find(e=>e.element===t);if(!r||!r.onResize)return;let i=J({group:e}),a=e.orientation===`horizontal`?r.element.offsetWidth:r.element.offsetHeight,o=r.mutableValues.prevSize,s={asPercentage:q(a/i*100),inPixels:a};r.mutableValues.prevSize=s,r.onResize(s,r.id,o)}function td(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 nd({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=q(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]=q((r[e]??0)/a*l);else{let e=q(l/c.length);for(let t of c)u[t]=e}return u}function rd(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 id=new Map;function ad(e){let t=!0;X(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=J({group:e});if(t===0)return;let n=$l(e.id);if(!n)return;let r=Y(e),i=n.defaultLayoutDeferred?$u(r):n.layout,a=Su({layout:nd({group:e,nextGroupSize:t,prevGroupSize:n.groupSize,prevLayout:i}),panelConstraints:r});if(!n.defaultLayoutDeferred&&xu(n.layout,a)&&td(n.derivedPanelConstraints,r)&&n.groupSize===t)return;nu(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,groupSize:t,layout:a,separatorToPanels:n.separatorToPanels})}}else ed(e,i,n)}});a.observe(e.element),e.panels.forEach(e=>{X(!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=J({group:e}),s=Y(e),c=e.panels.map(({id:e})=>e).join(`,`),l=e.mutableState.defaultLayout;l&&(rd(e.panels,l)||(l=void 0));let u=Su({layout:e.mutableState.layouts[c]??l??$u(s),panelConstraints:s}),d=e.element.ownerDocument;id.set(d,(id.get(d)??0)+1);let f=new Map;return ql(e).forEach(e=>{e.separator&&f.set(e.separator,e.panels)}),nu(e,{defaultLayoutDeferred:o===0,derivedPanelConstraints:s,groupSize:o,layout:u,separatorToPanels:f}),e.separators.forEach(e=>{X(!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`,Ou)}),id.get(d)===1&&(d.addEventListener(`dblclick`,wu,!0),d.addEventListener(`pointerdown`,Fu,!0),d.addEventListener(`pointerleave`,Yu),d.addEventListener(`pointermove`,Xu),d.addEventListener(`pointerout`,Zu),d.addEventListener(`pointerup`,Qu,!0)),function(){t=!1,id.set(d,Math.max(0,(id.get(d)??0)-1)),Zl(e),e.separators.forEach(e=>{e.element.removeEventListener(`keydown`,Ou)}),id.get(d)||(d.removeEventListener(`dblclick`,wu,!0),d.removeEventListener(`pointerdown`,Fu,!0),d.removeEventListener(`pointerleave`,Yu),d.removeEventListener(`pointermove`,Xu),d.removeEventListener(`pointerout`,Zu),d.removeEventListener(`pointerup`,Qu,!0)),a.disconnect()}}function od(){let[e,t]=(0,V.useState)({});return[e,(0,V.useCallback)(()=>t({}),[])]}function sd(e){let t=(0,V.useId)();return`${e??t}`}var cd=typeof window<`u`?V.useLayoutEffect:V.useEffect;function ld(e){let t=(0,V.useRef)(e);return cd(()=>{t.current=e},[e]),(0,V.useCallback)((...e)=>t.current?.(...e),[t])}function ud(...e){return ld(t=>{e.forEach(e=>{if(e)switch(typeof e){case`function`:e(t);break;case`object`:e.current=t;break}})})}function dd(e){let t=(0,V.useRef)({...e});return cd(()=>{for(let n in e)t.current[n]=e[n]},[e]),t.current}var fd=(0,V.createContext)(null);function pd(e,t){let n=(0,V.useRef)({getLayout:()=>({}),setLayout:Iu});(0,V.useImperativeHandle)(t,()=>n.current,[]),cd(()=>{Object.assign(n.current,Eu({groupId:e}))})}function md({children:e,className:t,defaultLayout:n,disableCursor:r,disabled:i,elementRef:a,groupRef:o,id:s,onLayoutChange:c,onLayoutChanged:l,orientation:u=`horizontal`,resizeTargetMinimumSize:d={coarse:20,fine:10},style:f,...p}){let m=(0,V.useRef)({onLayoutChange:{},onLayoutChanged:{}}),h=ld(e=>{xu(m.current.onLayoutChange,e)||(m.current.onLayoutChange=e,c?.(e))}),g=ld(e=>{xu(m.current.onLayoutChanged,e)||(m.current.onLayoutChanged=e,l?.(e))}),_=sd(s),v=(0,V.useRef)(null),[y,b]=od(),x=(0,V.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:d,separators:[]}),S=ud(v,a);pd(_,o);let C=ld((e,t)=>{let r=ju(),i=Ql(e),a=$l(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=dd({defaultLayout:n,disableCursor:r}),T=(0,V.useMemo)(()=>({get disableCursor(){return!!w.disableCursor},getPanelStyles:C,id:_,orientation:u,registerPanel:e=>{let t=x.current;return t.panels=zl(u,[...t.panels,e]),b(),()=>{t.panels=t.panels.filter(t=>t!==e),b()}},registerSeparator:e=>{let t=x.current;return t.separators=zl(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=Ql(_),i=$l(_);r&&i&&nu(r,{...i,derivedPanelConstraints:Y(r)})},toggleSeparatorDisabled:(e,t)=>{let n=x.current.separators.find(t=>t.id===e);n&&(n.disabled=t)}}),[C,_,b,u,w]),E=(0,V.useRef)(null);return cd(()=>{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=ad(r),{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:c}=$l(r.id,!0);!o&&s.length>0&&(h(c),g(c));let l=tu(_,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=_u(t.collapsedSize,i[t.panelId]),a=_u(t.collapsedSize,n[t.panelId]);e&&!a&&(r.mutableState.expandedPanelSizes[t.panelId]=n[t.panelId])}}});let o=ju().state!==`active`;h(i),o&&g(i)});return()=>{E.current=null,a(),l()}},[i,_,g,h,u,y,w]),(0,V.useEffect)(()=>{let e=E.current;e&&(e.mutableState.defaultLayout=n,e.mutableState.disableCursor=!!r)}),(0,H.jsx)(fd.Provider,{value:T,children:(0,H.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})})}md.displayName=`Group`;function hd(){let e=(0,V.useContext)(fd);return X(e,`Group Context not found; did you render a Panel or Separator outside of a Group?`),e}function gd(e,t){let{id:n}=hd(),r=(0,V.useRef)({collapse:Lu,expand:Lu,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:Lu});(0,V.useImperativeHandle)(t,()=>r.current,[]),cd(()=>{Object.assign(r.current,Cu({groupId:n,panelId:e}))})}function _d({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=sd(c),_=dd({disabled:a}),v=(0,V.useRef)(null),y=ud(v,o),{getPanelStyles:b,id:x,orientation:S,registerPanel:C,togglePanelDisabled:w}=hd(),T=d!==null,E=ld((e,t,n)=>{d?.(e,c,n)});cd(()=>{let e=v.current;if(e!==null)return C({element:e,id:g,idIsStable:h,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:T?E:void 0,panelConstraints:{groupResizeBehavior:s,collapsedSize:n,collapsible:r,defaultSize:i,disabled:_.disabled,maxSize:l,minSize:u}})},[s,n,r,i,T,g,h,l,u,E,C,_]),(0,V.useEffect)(()=>{w(g,!!a)},[a,g,w]),gd(g,f);let D=(0,V.useSyncExternalStore)(e=>tu(x,e),()=>JSON.stringify(b(x,g)),()=>JSON.stringify(b(x,g)));return(0,H.jsx)(`div`,{...m,"aria-disabled":a||void 0,"data-panel":!0,"data-testid":g,id:g,ref:y,style:{...vd,display:`flex`,flexBasis:0,flexShrink:1,overflow:`visible`,...JSON.parse(D)},children:(0,H.jsx)(`div`,{className:t,style:{maxHeight:`100%`,maxWidth:`100%`,flexGrow:1,overflow:`auto`,...p,touchAction:S===`horizontal`?`pan-y`:`pan-x`},children:e})})}_d.displayName=`Panel`;var vd={minHeight:0,maxHeight:`100%`,height:`auto`,minWidth:0,maxWidth:`100%`,width:`auto`,border:`none`,borderWidth:0,padding:0,margin:0};function yd({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=Su({layout:bu({delta:l-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n],i=Su({layout:bu({delta:c-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:a,valueNow:o}}function Q({children:e,className:t,disabled:n,elementRef:r,id:i,style:a,...o}){let s=sd(i),c=dd({disabled:n}),[l,u]=(0,V.useState)({}),[d,f]=(0,V.useState)(`inactive`),p=(0,V.useRef)(null),m=ud(p,r),{disableCursor:h,id:g,orientation:_,registerSeparator:v,toggleSeparatorDisabled:y}=hd(),b=_===`horizontal`?`vertical`:`horizontal`;cd(()=>{let e=p.current;if(e!==null){let t={disabled:c.disabled,element:e,id:s},n=v(t),r=Mu(e=>{f(e.next.state!==`inactive`&&e.next.hitRegions.some(e=>e.separator===t)?e.next.state:`inactive`)}),i=tu(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(yd({layout:r,panelConstraints:n,panelId:e.id,panelIndex:t}))}});return()=>{r(),i(),n()}}},[g,s,v,c]),(0,V.useEffect)(()=>{y(s,!!n)},[n,s,y]);let x;return n&&!h&&(x=`not-allowed`),(0,H.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})}Q.displayName=`Separator`;function bd(){let e=window.location.pathname.match(/^\/project\/([^/]+)(?:\/tab\/([^/]+))?/);return e?{projectName:e[1]?decodeURIComponent(e[1]):null,tabId:e[2]?decodeURIComponent(e[2]):null}:{projectName:null,tabId:null}}function xd(e,t){if(!e||e===`__global__`)return`/`;let n=`/project/${encodeURIComponent(e)}`;return t&&(n+=`/tab/${encodeURIComponent(t)}`),n}function Sd(){let e=I(e=>e.activeTabId),t=I(e=>e.currentProject),n=(0,V.useRef)(!1);(0,V.useEffect)(()=>{if(n.current){n.current=!1;return}let r=xd(t,e);window.location.pathname!==r&&window.history.pushState(null,``,r)},[e,t]),(0,V.useEffect)(()=>{function e(){let{tabId:e}=bd(),{tabs:t,setActiveTab:r}=I.getState();e&&t.some(t=>t.id===e)&&(n.current=!0,r(e))}return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[])}var Cd=`ppm-custom-order`;function wd(){try{let e=localStorage.getItem(Cd);return e?JSON.parse(e):null}catch{return null}}function Td(e){try{localStorage.setItem(Cd,JSON.stringify(e))}catch{}}function Ed(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 Dd=L((e,t)=>({projects:[],activeProject:null,customOrder:wd(),loading:!1,error:null,fetchProjects:async()=>{e({loading:!0,error:null});try{let t=await B.get(`/api/projects`);e({projects:t,loading:!1}),e(e=>{if(!e.activeProject&&t.length>0){let{projectName:n}=bd();if(n){let e=t.find(e=>e.name===n);if(e)return{activeProject:e}}return{activeProject:Ed(t,e.customOrder)[0]}}return{}})}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 B.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 B.patch(`/api/projects/${encodeURIComponent(e)}/color`,{color:n}),await t().fetchProjects()},moveProject:async(n,r)=>{let{projects:i,customOrder:a}=t(),o=Ed(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]],Td(l),await B.patch(`/api/projects/reorder`,{order:l}),e({customOrder:l})},reorderProjects:async t=>{Td(t),e({customOrder:t}),await B.patch(`/api/projects/reorder`,{order:t}).catch(()=>{})},renameProject:async(e,n)=>{await B.patch(`/api/projects/${encodeURIComponent(e)}`,{name:n}),await t().fetchProjects()},deleteProject:async t=>{await B.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&&Td(r),{projects:n,customOrder:r,activeProject:e.activeProject?.name===t?n[0]??null:e.activeProject}})}})),Od=`application/ppm-tab`,kd=!1,Ad=new Set;function jd(e){kd!==e&&(kd=e,Ad.forEach(e=>e()))}function Md(){return(0,V.useSyncExternalStore)(e=>(Ad.add(e),()=>Ad.delete(e)),()=>kd)}function $(){jd(!1)}function Nd(e){let[t,n]=(0,V.useState)(null),r=(0,V.useRef)(null);return{dropIndex:t,handleDragStart:(0,V.useCallback)((t,n)=>{let r={tabId:n,panelId:e};t.dataTransfer.setData(Od,JSON.stringify(r)),t.dataTransfer.effectAllowed=`move`,requestAnimationFrame(()=>jd(!0))},[e]),handleDragOver:(0,V.useCallback)((e,t,i)=>{if(!e.dataTransfer.types.includes(`application/ppm-tab`)||(e.preventDefault(),e.dataTransfer.dropEffect=`move`,r.current===t))return;r.current=t;let a=e.currentTarget.getBoundingClientRect(),o=a.left+a.width/2;n(e.clientX<o?i:i+1)},[]),handleDragOverBar:(0,V.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`)},[]),handleDrop:(0,V.useCallback)(i=>{i.preventDefault(),jd(!1);let a=i.dataTransfer.getData(Od);if(a){try{let n=JSON.parse(a),r=F.getState();n.panelId===e?t!==null&&r.reorderTab(n.tabId,e,t):r.moveTab(n.tabId,n.panelId,e,t??void 0)}catch{}n(null),r.current=null}},[e,t]),handleDragEnd:(0,V.useCallback)(()=>{jd(!1),n(null),r.current=null},[])}}var Pd=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),Fd=[{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`},...Array.from({length:9},(e,t)=>({id:`switch-project-${t+1}`,label:`Switch to Project ${t+1}`,category:`projects`,defaultKey:`Mod+${t+1}`}))],Id=new Map(Fd.map(e=>[e.id,e.defaultKey]));function Ld(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`:Pd?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 Rd(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 zd(e){return e.replace(/Mod/g,Pd?`⌘`:`Ctrl`).replace(/Shift/g,Pd?`⇧`:`Shift`).replace(/Alt/g,Pd?`⌥`:`Alt`).replace(/Meta|Cmd/g,`⌘`).replace(/Ctrl/g,Pd?`⌃`:`Ctrl`)}function Bd(e){if([`Control`,`Meta`,`Alt`,`Shift`].includes(e.key))return null;let t=[];e.ctrlKey&&!e.metaKey&&t.push(Pd?`Ctrl`:`Mod`),e.metaKey&&t.push(Pd?`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 Vd=L((e,t)=>({overrides:{},loaded:!1,getBinding:e=>t().overrides[e]??Id.get(e)??``,matchesEvent:(e,n)=>{let r=t().getBinding(n);return r?Rd(e,Ld(r)):!1},setBinding:(n,r)=>{e({overrides:{...t().overrides,[n]:r}}),B.put(`/api/settings/keybindings`,{[n]:r}).catch(()=>{})},resetBinding:n=>{let r={...t().overrides};delete r[n],e({overrides:r}),B.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&&B.put(`/api/settings/keybindings`,n).catch(()=>{})},loadFromServer:async()=>{try{e({overrides:await B.get(`/api/settings/keybindings`),loaded:!0})}catch{e({loaded:!0})}}}));function Hd(e){window.dispatchEvent(new CustomEvent(`open-command-palette`,{detail:e}))}function Ud(){let[e,t]=(0,V.useState)(!1),[n,r]=(0,V.useState)(``);return(0,V.useEffect)(()=>{let e=0,{matchesEvent:n}=Vd.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}=Vd.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(),R.getState().toggleSidebar();return}if(i(n,`next-tab`)||i(n,`prev-tab`)){n.preventDefault();let{tabs:e,activeTabId:t,setActiveTab:r}=I.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=Dd.getState().activeProject;I.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=R.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`settings`);return}if(i(n,`open-git-status`)){n.preventDefault();let e=R.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`git`);return}for(let e=1;e<=9;e++)if(i(n,`switch-project-${e}`)){n.preventDefault();let t=Dd.getState().projects[e-1];t&&(Dd.getState().setActiveProject(t),I.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,V.useCallback)(()=>{t(!1),r(``)},[])}}function Wd(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 Gd(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 Kd(e){let t=Wd(e);return t?Gd(t.r,t.g,t.b)<.4:!1}function qd({tab:e,isActive:t,icon:n,showDropBefore:r,onSelect:i,onClose:a,onDragStart:o,onDragOver:s,onDragEnd:c,tabRef:l,onRename:u}){let[d,f]=(0,V.useState)(!1),[p,m]=(0,V.useState)(e.title),h=(0,V.useRef)(null);(0,V.useEffect)(()=>{d&&(m(e.title),setTimeout(()=>h.current?.select(),0))},[d]);let g=()=>{f(!1);let t=p.trim();t&&t!==e.title&&u&&u(t)},_=e.metadata?.connectionColor,v=_?{backgroundColor:t?_:`${_}33`,color:t&&Kd(_)?`#fff`:void 0}:void 0;return(0,H.jsxs)(`div`,{className:`relative flex items-center`,children:[r&&(0,H.jsx)(`div`,{className:`absolute left-0 top-1 bottom-1 w-0.5 bg-primary rounded-full z-10`}),(0,H.jsxs)(`button`,{ref:l,"data-tab-item":!0,draggable:!d,onClick:i,onAuxClick:t=>{t.button===1&&e.closable&&(t.preventDefault(),a())},onDragStart:o,onDragOver:s,onDragEnd:c,style:v,className:z(`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`,!v&&(t?`border-primary text-primary`:`border-transparent text-text-secondary hover:text-foreground`),v&&`border-transparent`),children:[(0,H.jsx)(n,{className:`size-4`}),d?(0,H.jsx)(`input`,{ref:h,value:p,onChange:e=>m(e.target.value),onBlur:g,onKeyDown:e=>{e.key===`Enter`&&g(),e.key===`Escape`&&f(!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,H.jsx)(`span`,{className:`max-w-[120px] truncate`,onDoubleClick:e=>{u&&(e.stopPropagation(),f(!0))},children:e.title}),e.closable&&!d&&(0,H.jsx)(`span`,{role:`button`,tabIndex:0,onClick:e=>{e.stopPropagation(),a()},onKeyDown:e=>{e.key===`Enter`&&(e.stopPropagation(),a())},className:`ml-1 opacity-0 group-hover:opacity-100 rounded-sm hover:bg-surface-elevated p-0.5 transition-opacity`,children:(0,H.jsx)(ht,{className:`size-3`})})]})]})}var Jd={terminal:dt,chat:Je,editor:Ae,database:Oe,sqlite:Oe,postgres:Oe,"git-graph":Re,"git-diff":je,settings:st};function Yd({panelId:e}){Dd(e=>e.activeProject);let t=(0,V.useRef)(new Map),n=(0,V.useRef)(null),r=(0,V.useRef)(0),i=F(t=>e?t.panels[e]:t.panels[t.focusedPanelId]),a=i?.tabs??[],o=i?.activeTabId??null,s=i?.id??F.getState().focusedPanelId,{dropIndex:c,handleDragStart:l,handleDragOver:u,handleDragOverBar:d,handleDrop:f,handleDragEnd:p}=Nd(s);(0,V.useEffect)(()=>{if(a.length>r.current&&o){let e=t.current.get(o);e&&e.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`nearest`})}r.current=a.length},[a.length,o]);let m=(0,V.useCallback)((e,t)=>{I.getState().updateTab(e.id,{title:t});let n=e.metadata?.projectName,r=e.metadata?.sessionId;n&&r&&B.patch(`${ce(n)}/chat/sessions/${r}`,{title:t}).catch(()=>{})},[]);function h(e){e.target.closest(`[data-tab-item]`)||Hd()}function g(e){e.target.closest(`[data-tab-item]`)||(e.preventDefault(),Hd())}return(0,H.jsx)(`div`,{className:`hidden md:flex items-center h-10 border-b border-border bg-background`,onDragOver:d,onDrop:f,onDoubleClick:h,onContextMenu:g,children:(0,H.jsx)(`div`,{ref:n,className:`flex-1 overflow-x-auto overflow-y-hidden min-w-0 scrollbar-none`,children:(0,H.jsxs)(`div`,{className:`flex items-center h-10`,children:[a.map((e,n)=>(0,H.jsx)(qd,{tab:e,isActive:e.id===o,icon:Jd[e.type],showDropBefore:c===n,onSelect:()=>F.getState().setActiveTab(e.id,s),onClose:()=>F.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=>m(e,t):void 0},e.id)),c!==null&&c>=a.length&&(0,H.jsx)(`div`,{className:`w-0.5 h-6 bg-primary rounded-full`}),(0,H.jsx)(`button`,{onClick:()=>Hd(),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,H.jsx)(it,{className:`size-4`})})]})})})}function Xd({panelId:e}){let[t,n]=(0,V.useState)(null),r=Md(),i=F(e=>e.grid),a=F(e=>e.isMobile()),o=re(i,e),s=!a&&i.length<3,c=o?!a&&(i[o.row]?.length??0)<ne(!1):!1,l=(0,V.useCallback)(e=>{let t=e.currentTarget.getBoundingClientRect(),n=(e.clientX-t.left)/t.width,r=(e.clientY-t.top)/t.height,i=.25;return n<i&&c?`left`:n>1-i&&c?`right`:r<i&&s?`top`:r>1-i&&s?`bottom`:`center`},[c,s]),u=(0,V.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.stopPropagation(),n(l(e)))},[l]),d=(0,V.useCallback)(e=>{e.currentTarget.contains(e.relatedTarget)||n(null)},[]),f=(0,V.useCallback)(t=>{t.preventDefault(),t.stopPropagation();let r=l(t);if(n(null),$(),!r)return;let i=t.dataTransfer.getData(Od);if(i)try{let t=JSON.parse(i),n=F.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,H.jsxs)(`div`,{className:`absolute inset-0 z-20`,onDragOver:u,onDragLeave:d,onDrop:f,children:[t===`left`&&(0,H.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,H.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,H.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,H.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,H.jsx)(`div`,{className:`absolute inset-0 bg-primary/5 border-2 border-dashed border-primary/30 rounded-md`})]}):null}var Zd=`modulepreload`,Qd=function(e){return`/`+e},$d={},ef=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=Qd(t,n),t in $d)return;$d[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`:Zd,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)})},tf=[{type:`terminal`,label:`Terminal`,icon:dt},{type:`chat`,label:`AI Chat`,icon:Je},{type:`git-graph`,label:`Git Graph`,icon:Re}],nf={terminal:(0,V.lazy)(()=>ef(()=>import(`./terminal-tab-B_75oJaQ.js`).then(e=>({default:e.TerminalTab})),__vite__mapDeps([0,1,2,3,4,5,6]))),chat:(0,V.lazy)(()=>ef(()=>import(`./chat-tab-DkgRZpbj.js`).then(e=>({default:e.ChatTab})),__vite__mapDeps([7,1,8,2,3,9,5,10,11,4]))),editor:(0,V.lazy)(()=>ef(()=>import(`./code-editor-CVMeIylx.js`).then(e=>({default:e.CodeEditor})),__vite__mapDeps([12,1,13,4,5,2,3,9,10,11]))),database:(0,V.lazy)(()=>ef(()=>import(`./database-viewer-BX0F2yv0.js`).then(e=>({default:e.DatabaseViewer})),__vite__mapDeps([14,1,15,3,11]))),sqlite:(0,V.lazy)(()=>ef(()=>import(`./sqlite-viewer-CTPkNEEe.js`).then(e=>({default:e.SqliteViewer})),__vite__mapDeps([16,1,15,3,17,11]))),postgres:(0,V.lazy)(()=>ef(()=>import(`./postgres-viewer-DPsoDR4y.js`).then(e=>({default:e.PostgresViewer})),__vite__mapDeps([18,1,15,3,17,11]))),"git-graph":(0,V.lazy)(()=>ef(()=>import(`./git-graph-Bi4PM-z2.js`).then(e=>({default:e.GitGraph})),__vite__mapDeps([19,1,8,2,3,9,5,11]))),"git-diff":(0,V.lazy)(()=>ef(()=>import(`./diff-viewer-B1vnegRS.js`).then(e=>({default:e.DiffViewer})),__vite__mapDeps([20,1,13,4,5,3,11]))),settings:(0,V.lazy)(()=>ef(()=>import(`./settings-tab-D7pNWvVE.js`).then(e=>({default:e.SettingsTab})),__vite__mapDeps([21,1,8,2,3,11,4,5])))};function rf({panelId:e,projectName:t}){let n=F(t=>t.panels[e]),r=F(t=>t.focusedPanelId===e),i=F(e=>(e.currentProject===t?e.grid:e.projectGrids[t]??[[]]).flat().length);return n?(0,H.jsxs)(`div`,{className:z(`flex flex-col h-full overflow-hidden`,i>1&&`border border-transparent`,i>1&&r&&`border-primary/30`),onMouseDown:()=>{F.getState().focusedPanelId!==e&&F.getState().setFocusedPanel(e)},children:[(0,H.jsx)(Yd,{panelId:e}),(0,H.jsxs)(`div`,{className:`flex-1 overflow-hidden relative`,children:[n.tabs.length===0?(0,H.jsx)(af,{panelId:e}):n.tabs.map(e=>{let t=nf[e.type];return(0,H.jsx)(`div`,{className:e.id===n.activeTabId?`h-full w-full`:`hidden`,children:(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,H.jsx)(Ge,{className:`size-6 animate-spin text-primary`})}),children:(0,H.jsx)(t,{metadata:e.metadata,tabId:e.id})})},e.id)}),(0,H.jsx)(Xd,{panelId:e})]})]}):null}function af({panelId:e}){let t=Dd(e=>e.activeProject);function n(n){let r=n!==`settings`&&t?{projectName:t.name}:void 0;F.getState().openTab({type:n,title:tf.find(e=>e.type===n)?.label??n,metadata:r,projectId:t?.name??null,closable:!0},e)}return(0,H.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-4 text-text-secondary`,children:[(0,H.jsx)(`p`,{className:`text-sm`,children:`Open a tab to get started`}),(0,H.jsx)(`div`,{className:`flex flex-col md:flex-row flex-wrap justify-center gap-2`,children:tf.map(e=>{let t=e.icon;return(0,H.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,H.jsx)(t,{className:`size-4`}),e.label]},e.type)})})]})}function of({projectName:e}){let t=F(t=>t.currentProject===e?t.grid:t.projectGrids[e]??[[]]);return t.flat().length<=1&&t[0]?.[0]?(0,H.jsx)(rf,{panelId:t[0][0],projectName:e}):(0,H.jsx)(md,{orientation:`vertical`,style:{height:`100%`},children:t.map((n,r)=>(0,H.jsx)(sf,{row:n,rowIdx:r,totalRows:t.length,projectName:e},`row-${r}`))})}function sf({row:e,rowIdx:t,totalRows:n,projectName:r}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(_d,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:e.length===1?(0,H.jsx)(rf,{panelId:e[0],projectName:r}):(0,H.jsx)(md,{orientation:`horizontal`,children:e.map((t,n)=>(0,H.jsx)(cf,{panelId:t,colIdx:n,totalCols:e.length,projectName:r},t))})}),t<n-1&&(0,H.jsx)(lf,{orientation:`horizontal`})]})}function cf({panelId:e,colIdx:t,totalCols:n,projectName:r}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(_d,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:(0,H.jsx)(rf,{panelId:e,projectName:r})}),t<n-1&&(0,H.jsx)(lf,{orientation:`vertical`})]})}function lf({orientation:e}){let t=e===`vertical`;return(0,H.jsx)(Q,{className:`
14
+ For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return V.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},Rn=`DialogDescriptionWarning`,zn=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${In(Rn).contentName}}.`;return V.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},Bn=dn,Vn=_n,Hn=yn,Un=Cn,Wn=On,Gn=An,Kn=Mn;function qn(e){let t=V.useRef({value:e,previous:e});return V.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var Jn=`rovingFocusGroup.onEntryFocus`,Yn={bubbles:!1,cancelable:!0},Xn=`RovingFocusGroup`,[Zn,Qn,$n]=f(Xn),[er,tr]=c(Xn,[$n]),[nr,rr]=er(Xn),ir=V.forwardRef((e,t)=>(0,H.jsx)(Zn.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,H.jsx)(Zn.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,H.jsx)(ar,{...e,ref:t})})}));ir.displayName=Xn;var ar=V.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:o,currentTabStopId:s,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:l,onEntryFocus:d,preventScrollOnEntryFocus:f=!1,...p}=e,m=V.useRef(null),h=b(t,m),g=_(o),[v,y]=u({prop:s,defaultProp:c??null,onChange:l,caller:Xn}),[x,C]=V.useState(!1),w=S(d),T=Qn(n),E=V.useRef(!1),[D,O]=V.useState(0);return V.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(Jn,w),()=>e.removeEventListener(Jn,w)},[w]),(0,H.jsx)(nr,{scope:n,orientation:r,dir:g,loop:a,currentTabStopId:v,onItemFocus:V.useCallback(e=>y(e),[y]),onItemShiftTab:V.useCallback(()=>C(!0),[]),onFocusableItemAdd:V.useCallback(()=>O(e=>e+1),[]),onFocusableItemRemove:V.useCallback(()=>O(e=>e-1),[]),children:(0,H.jsx)(i.div,{tabIndex:x||D===0?-1:0,"data-orientation":r,...p,ref:h,style:{outline:`none`,...e.style},onMouseDown:j(e.onMouseDown,()=>{E.current=!0}),onFocus:j(e.onFocus,e=>{let t=!E.current;if(e.target===e.currentTarget&&t&&!x){let t=new CustomEvent(Jn,Yn);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=T().filter(e=>e.focusable);dr([e.find(e=>e.active),e.find(e=>e.id===v),...e].filter(Boolean).map(e=>e.ref.current),f)}}E.current=!1}),onBlur:j(e.onBlur,()=>C(!1))})})}),or=`RovingFocusGroupItem`,sr=V.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:o,children:s,...c}=e,l=g(),u=o||l,d=rr(or,n),f=d.currentTabStopId===u,p=Qn(n),{onFocusableItemAdd:m,onFocusableItemRemove:h,currentTabStopId:_}=d;return V.useEffect(()=>{if(r)return m(),()=>h()},[r,m,h]),(0,H.jsx)(Zn.ItemSlot,{scope:n,id:u,focusable:r,active:a,children:(0,H.jsx)(i.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...c,ref:t,onMouseDown:j(e.onMouseDown,e=>{r?d.onItemFocus(u):e.preventDefault()}),onFocus:j(e.onFocus,()=>d.onItemFocus(u)),onKeyDown:j(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){d.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=ur(e,d.orientation,d.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=d.loop?fr(n,r+1):n.slice(r+1)}setTimeout(()=>dr(n))}}),children:typeof s==`function`?s({isCurrentTabStop:f,hasTabStop:_!=null}):s})})});sr.displayName=or;var cr={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function lr(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function ur(e,t,n){let r=lr(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return cr[r]}function dr(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function fr(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var pr=ir,mr=sr,hr=[`Enter`,` `],gr=[`ArrowDown`,`PageUp`,`Home`],_r=[`ArrowUp`,`PageDown`,`End`],vr=[...gr,..._r],yr={ltr:[...hr,`ArrowRight`],rtl:[...hr,`ArrowLeft`]},br={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]},xr=`Menu`,[Sr,Cr,wr]=f(xr),[Tr,Er]=c(xr,[wr,D,tr]),Dr=D(),Or=tr(),[kr,Ar]=Tr(xr),[jr,Mr]=Tr(xr),Nr=e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:a,modal:o=!0}=e,s=Dr(t),[c,l]=V.useState(null),u=V.useRef(!1),d=S(a),f=_(i);return V.useEffect(()=>{let e=()=>{u.current=!0,document.addEventListener(`pointerdown`,t,{capture:!0,once:!0}),document.addEventListener(`pointermove`,t,{capture:!0,once:!0})},t=()=>u.current=!1;return document.addEventListener(`keydown`,e,{capture:!0}),()=>{document.removeEventListener(`keydown`,e,{capture:!0}),document.removeEventListener(`pointerdown`,t,{capture:!0}),document.removeEventListener(`pointermove`,t,{capture:!0})}},[]),(0,H.jsx)(w,{...s,children:(0,H.jsx)(kr,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:l,children:(0,H.jsx)(jr,{scope:t,onClose:V.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:u,dir:f,modal:o,children:r})})})};Nr.displayName=xr;var Pr=`MenuAnchor`,Fr=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=Dr(n);return(0,H.jsx)(E,{...i,...r,ref:t})});Fr.displayName=Pr;var Ir=`MenuPortal`,[Lr,Rr]=Tr(Ir,{forceMount:void 0}),zr=e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=Ar(Ir,t);return(0,H.jsx)(Lr,{scope:t,forceMount:n,children:(0,H.jsx)(tn,{present:n||a.open,children:(0,H.jsx)(m,{asChild:!0,container:i,children:r})})})};zr.displayName=Ir;var Br=`MenuContent`,[Vr,Hr]=Tr(Br),Ur=V.forwardRef((e,t)=>{let n=Rr(Br,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Ar(Br,e.__scopeMenu),o=Mr(Br,e.__scopeMenu);return(0,H.jsx)(Sr.Provider,{scope:e.__scopeMenu,children:(0,H.jsx)(tn,{present:r||a.open,children:(0,H.jsx)(Sr.Slot,{scope:e.__scopeMenu,children:o.modal?(0,H.jsx)(Wr,{...i,ref:t}):(0,H.jsx)(Gr,{...i,ref:t})})})})}),Wr=V.forwardRef((e,t)=>{let n=Ar(Br,e.__scopeMenu),r=V.useRef(null),i=b(t,r);return V.useEffect(()=>{let e=r.current;if(e)return p(e)},[]),(0,H.jsx)(qr,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:j(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),Gr=V.forwardRef((e,t)=>{let n=Ar(Br,e.__scopeMenu);return(0,H.jsx)(qr,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),Kr=o(`MenuContent.ScrollLock`),qr=V.forwardRef((e,t)=>{let{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:o,disableOutsidePointerEvents:s,onEntryFocus:c,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:f,onInteractOutside:p,onDismiss:m,disableOutsideScroll:g,..._}=e,v=Ar(Br,n),y=Mr(Br,n),S=Dr(n),C=Or(n),w=Cr(n),[E,D]=V.useState(null),O=V.useRef(null),A=b(t,O,v.onContentChange),ee=V.useRef(0),te=V.useRef(``),M=V.useRef(0),N=V.useRef(null),P=V.useRef(`right`),ne=V.useRef(0),F=g?x:V.Fragment,re=g?{as:Kr,allowPinchZoom:!0}:void 0,I=e=>{let t=te.current+e,n=w().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=U(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;(function e(t){te.current=t,window.clearTimeout(ee.current),t!==``&&(ee.current=window.setTimeout(()=>e(``),1e3))})(t),o&&setTimeout(()=>o.focus())};V.useEffect(()=>()=>window.clearTimeout(ee.current),[]),k();let L=V.useCallback(e=>P.current===N.current?.side&&Mi(e,N.current?.area),[]);return(0,H.jsx)(Vr,{scope:n,searchRef:te,onItemEnter:V.useCallback(e=>{L(e)&&e.preventDefault()},[L]),onItemLeave:V.useCallback(e=>{L(e)||(O.current?.focus(),D(null))},[L]),onTriggerLeave:V.useCallback(e=>{L(e)&&e.preventDefault()},[L]),pointerGraceTimerRef:M,onPointerGraceIntentChange:V.useCallback(e=>{N.current=e},[]),children:(0,H.jsx)(F,{...re,children:(0,H.jsx)(h,{asChild:!0,trapped:i,onMountAutoFocus:j(a,e=>{e.preventDefault(),O.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:o,children:(0,H.jsx)(T,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:f,onInteractOutside:p,onDismiss:m,children:(0,H.jsx)(pr,{asChild:!0,...C,dir:y.dir,orientation:`vertical`,loop:r,currentTabStopId:E,onCurrentTabStopIdChange:D,onEntryFocus:j(c,e=>{y.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,H.jsx)(d,{role:`menu`,"aria-orientation":`vertical`,"data-state":Ei(v.open),"data-radix-menu-content":``,dir:y.dir,...S,..._,ref:A,style:{outline:`none`,..._.style},onKeyDown:j(_.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&&I(e.key));let i=O.current;if(e.target!==i||!vr.includes(e.key))return;e.preventDefault();let a=w().filter(e=>!e.disabled).map(e=>e.ref.current);_r.includes(e.key)&&a.reverse(),ki(a)}),onBlur:j(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(ee.current),te.current=``)}),onPointerMove:j(e.onPointerMove,Ni(e=>{let t=e.target,n=ne.current!==e.clientX;e.currentTarget.contains(t)&&n&&(P.current=e.clientX>ne.current?`right`:`left`,ne.current=e.clientX)}))})})})})})})});Ur.displayName=Br;var Jr=`MenuGroup`,Yr=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,H.jsx)(i.div,{role:`group`,...r,ref:t})});Yr.displayName=Jr;var Xr=`MenuLabel`,Zr=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,H.jsx)(i.div,{...r,ref:t})});Zr.displayName=Xr;var Qr=`MenuItem`,$r=`menu.itemSelect`,ei=V.forwardRef((e,t)=>{let{disabled:n=!1,onSelect:r,...i}=e,a=V.useRef(null),o=Mr(Qr,e.__scopeMenu),s=Hr(Qr,e.__scopeMenu),c=b(t,a),l=V.useRef(!1),u=()=>{let e=a.current;if(!n&&e){let t=new CustomEvent($r,{bubbles:!0,cancelable:!0});e.addEventListener($r,e=>r?.(e),{once:!0}),ee(e,t),t.defaultPrevented?l.current=!1:o.onClose()}};return(0,H.jsx)(ti,{...i,ref:c,disabled:n,onClick:j(e.onClick,u),onPointerDown:t=>{e.onPointerDown?.(t),l.current=!0},onPointerUp:j(e.onPointerUp,e=>{l.current||e.currentTarget?.click()}),onKeyDown:j(e.onKeyDown,e=>{let t=s.searchRef.current!==``;n||t&&e.key===` `||hr.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});ei.displayName=Qr;var ti=V.forwardRef((e,t)=>{let{__scopeMenu:n,disabled:r=!1,textValue:a,...o}=e,s=Hr(Qr,n),c=Or(n),l=V.useRef(null),u=b(t,l),[d,f]=V.useState(!1),[p,m]=V.useState(``);return V.useEffect(()=>{let e=l.current;e&&m((e.textContent??``).trim())},[o.children]),(0,H.jsx)(Sr.ItemSlot,{scope:n,disabled:r,textValue:a??p,children:(0,H.jsx)(mr,{asChild:!0,...c,focusable:!r,children:(0,H.jsx)(i.div,{role:`menuitem`,"data-highlighted":d?``:void 0,"aria-disabled":r||void 0,"data-disabled":r?``:void 0,...o,ref:u,onPointerMove:j(e.onPointerMove,Ni(e=>{r?s.onItemLeave(e):(s.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:j(e.onPointerLeave,Ni(e=>s.onItemLeave(e))),onFocus:j(e.onFocus,()=>f(!0)),onBlur:j(e.onBlur,()=>f(!1))})})})}),ni=`MenuCheckboxItem`,ri=V.forwardRef((e,t)=>{let{checked:n=!1,onCheckedChange:r,...i}=e;return(0,H.jsx)(di,{scope:e.__scopeMenu,checked:n,children:(0,H.jsx)(ei,{role:`menuitemcheckbox`,"aria-checked":Di(n)?`mixed`:n,...i,ref:t,"data-state":Oi(n),onSelect:j(i.onSelect,()=>r?.(Di(n)?!0:!n),{checkForDefaultPrevented:!1})})})});ri.displayName=ni;var ii=`MenuRadioGroup`,[ai,oi]=Tr(ii,{value:void 0,onValueChange:()=>{}}),si=V.forwardRef((e,t)=>{let{value:n,onValueChange:r,...i}=e,a=S(r);return(0,H.jsx)(ai,{scope:e.__scopeMenu,value:n,onValueChange:a,children:(0,H.jsx)(Yr,{...i,ref:t})})});si.displayName=ii;var ci=`MenuRadioItem`,li=V.forwardRef((e,t)=>{let{value:n,...r}=e,i=oi(ci,e.__scopeMenu),a=n===i.value;return(0,H.jsx)(di,{scope:e.__scopeMenu,checked:a,children:(0,H.jsx)(ei,{role:`menuitemradio`,"aria-checked":a,...r,ref:t,"data-state":Oi(a),onSelect:j(r.onSelect,()=>i.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});li.displayName=ci;var ui=`MenuItemIndicator`,[di,fi]=Tr(ui,{checked:!1}),pi=V.forwardRef((e,t)=>{let{__scopeMenu:n,forceMount:r,...a}=e,o=fi(ui,n);return(0,H.jsx)(tn,{present:r||Di(o.checked)||o.checked===!0,children:(0,H.jsx)(i.span,{...a,ref:t,"data-state":Oi(o.checked)})})});pi.displayName=ui;var mi=`MenuSeparator`,hi=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,H.jsx)(i.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})});hi.displayName=mi;var gi=`MenuArrow`,_i=V.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=Dr(n);return(0,H.jsx)(v,{...i,...r,ref:t})});_i.displayName=gi;var vi=`MenuSub`,[yi,bi]=Tr(vi),xi=e=>{let{__scopeMenu:t,children:n,open:r=!1,onOpenChange:i}=e,a=Ar(vi,t),o=Dr(t),[s,c]=V.useState(null),[l,u]=V.useState(null),d=S(i);return V.useEffect(()=>(a.open===!1&&d(!1),()=>d(!1)),[a.open,d]),(0,H.jsx)(w,{...o,children:(0,H.jsx)(kr,{scope:t,open:r,onOpenChange:d,content:l,onContentChange:u,children:(0,H.jsx)(yi,{scope:t,contentId:g(),triggerId:g(),trigger:s,onTriggerChange:c,children:n})})})};xi.displayName=vi;var Si=`MenuSubTrigger`,Ci=V.forwardRef((e,t)=>{let n=Ar(Si,e.__scopeMenu),r=Mr(Si,e.__scopeMenu),i=bi(Si,e.__scopeMenu),a=Hr(Si,e.__scopeMenu),o=V.useRef(null),{pointerGraceTimerRef:c,onPointerGraceIntentChange:l}=a,u={__scopeMenu:e.__scopeMenu},d=V.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=null},[]);return V.useEffect(()=>d,[d]),V.useEffect(()=>{let e=c.current;return()=>{window.clearTimeout(e),l(null)}},[c,l]),(0,H.jsx)(Fr,{asChild:!0,...u,children:(0,H.jsx)(ti,{id:i.triggerId,"aria-haspopup":`menu`,"aria-expanded":n.open,"aria-controls":i.contentId,"data-state":Ei(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:j(e.onPointerMove,Ni(t=>{a.onItemEnter(t),!t.defaultPrevented&&!e.disabled&&!n.open&&!o.current&&(a.onPointerGraceIntentChange(null),o.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:j(e.onPointerLeave,Ni(e=>{d();let t=n.content?.getBoundingClientRect();if(t){let r=n.content?.dataset.side,i=r===`right`,o=i?-5:5,s=t[i?`left`:`right`],l=t[i?`right`:`left`];a.onPointerGraceIntentChange({area:[{x:e.clientX+o,y:e.clientY},{x:s,y:t.top},{x:l,y:t.top},{x:l,y:t.bottom},{x:s,y:t.bottom}],side:r}),window.clearTimeout(c.current),c.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(e),e.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:j(e.onKeyDown,t=>{let i=a.searchRef.current!==``;e.disabled||i&&t.key===` `||yr[r.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())})})})});Ci.displayName=Si;var wi=`MenuSubContent`,Ti=V.forwardRef((e,t)=>{let n=Rr(Br,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Ar(Br,e.__scopeMenu),o=Mr(Br,e.__scopeMenu),s=bi(wi,e.__scopeMenu),c=V.useRef(null),l=b(t,c);return(0,H.jsx)(Sr.Provider,{scope:e.__scopeMenu,children:(0,H.jsx)(tn,{present:r||a.open,children:(0,H.jsx)(Sr.Slot,{scope:e.__scopeMenu,children:(0,H.jsx)(qr,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:l,align:`start`,side:o.dir===`rtl`?`left`:`right`,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{o.isUsingKeyboardRef.current&&c.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:j(e.onFocusOutside,e=>{e.target!==s.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:j(e.onEscapeKeyDown,e=>{o.onClose(),e.preventDefault()}),onKeyDown:j(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=br[o.dir].includes(e.key);t&&n&&(a.onOpenChange(!1),s.trigger?.focus(),e.preventDefault())})})})})})});Ti.displayName=wi;function Ei(e){return e?`open`:`closed`}function Di(e){return e===`indeterminate`}function Oi(e){return Di(e)?`indeterminate`:e?`checked`:`unchecked`}function ki(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Ai(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function U(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=Ai(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 ji(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 Mi(e,t){return t?ji({x:e.clientX,y:e.clientY},t):!1}function Ni(e){return t=>t.pointerType===`mouse`?e(t):void 0}var Pi=Nr,Fi=Fr,Ii=zr,Li=Ur,Ri=Yr,zi=Zr,Bi=ei,Vi=ri,Hi=si,Ui=li,Wi=pi,Gi=hi,Ki=_i,qi=xi,Ji=Ci,Yi=Ti,Xi=`ContextMenu`,[Zi,Qi]=c(Xi,[Er]),$i=Er(),[ea,ta]=Zi(Xi),na=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:a=!0}=e,[o,s]=V.useState(!1),c=$i(t),l=S(r),u=V.useCallback(e=>{s(e),l(e)},[l]);return(0,H.jsx)(ea,{scope:t,open:o,onOpenChange:u,modal:a,children:(0,H.jsx)(Pi,{...c,dir:i,open:o,onOpenChange:u,modal:a,children:n})})};na.displayName=Xi;var ra=`ContextMenuTrigger`,ia=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,disabled:r=!1,...a}=e,o=ta(ra,n),s=$i(n),c=V.useRef({x:0,y:0}),l=V.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...c.current})}),u=V.useRef(0),d=V.useCallback(()=>window.clearTimeout(u.current),[]),f=e=>{c.current={x:e.clientX,y:e.clientY},o.onOpenChange(!0)};return V.useEffect(()=>d,[d]),V.useEffect(()=>void(r&&d()),[r,d]),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Fi,{...s,virtualRef:l}),(0,H.jsx)(i.span,{"data-state":o.open?`open`:`closed`,"data-disabled":r?``:void 0,...a,ref:t,style:{WebkitTouchCallout:`none`,...e.style},onContextMenu:r?e.onContextMenu:j(e.onContextMenu,e=>{d(),f(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:j(e.onPointerDown,Na(e=>{d(),u.current=window.setTimeout(()=>f(e),700)})),onPointerMove:r?e.onPointerMove:j(e.onPointerMove,Na(d)),onPointerCancel:r?e.onPointerCancel:j(e.onPointerCancel,Na(d)),onPointerUp:r?e.onPointerUp:j(e.onPointerUp,Na(d))})]})});ia.displayName=ra;var aa=`ContextMenuPortal`,oa=e=>{let{__scopeContextMenu:t,...n}=e,r=$i(t);return(0,H.jsx)(Ii,{...r,...n})};oa.displayName=aa;var sa=`ContextMenuContent`,ca=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=ta(sa,n),a=$i(n),o=V.useRef(!1);return(0,H.jsx)(Li,{...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)`}})});ca.displayName=sa;var la=`ContextMenuGroup`,ua=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Ri,{...i,...r,ref:t})});ua.displayName=la;var da=`ContextMenuLabel`,fa=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(zi,{...i,...r,ref:t})});fa.displayName=da;var pa=`ContextMenuItem`,ma=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Bi,{...i,...r,ref:t})});ma.displayName=pa;var ha=`ContextMenuCheckboxItem`,ga=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Vi,{...i,...r,ref:t})});ga.displayName=ha;var _a=`ContextMenuRadioGroup`,va=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Hi,{...i,...r,ref:t})});va.displayName=_a;var ya=`ContextMenuRadioItem`,ba=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Ui,{...i,...r,ref:t})});ba.displayName=ya;var xa=`ContextMenuItemIndicator`,Sa=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Wi,{...i,...r,ref:t})});Sa.displayName=xa;var Ca=`ContextMenuSeparator`,wa=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Gi,{...i,...r,ref:t})});wa.displayName=Ca;var Ta=`ContextMenuArrow`,Ea=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Ki,{...i,...r,ref:t})});Ea.displayName=Ta;var Da=`ContextMenuSub`,Oa=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,defaultOpen:a}=e,o=$i(t),[s,c]=u({prop:i,defaultProp:a??!1,onChange:r,caller:Da});return(0,H.jsx)(qi,{...o,open:s,onOpenChange:c,children:n})};Oa.displayName=Da;var ka=`ContextMenuSubTrigger`,Aa=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Ji,{...i,...r,ref:t})});Aa.displayName=ka;var ja=`ContextMenuSubContent`,Ma=V.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=$i(n);return(0,H.jsx)(Yi,{...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)`}})});Ma.displayName=ja;function Na(e){return t=>t.pointerType===`mouse`?void 0:e(t)}var Pa=na,Fa=ia,Ia=oa,La=ca,Ra=ma,za=wa,Ba=`DropdownMenu`,[Va,Ha]=c(Ba,[Er]),Ua=Er(),[Wa,Ga]=Va(Ba),Ka=e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:s=!0}=e,c=Ua(t),l=V.useRef(null),[d,f]=u({prop:i,defaultProp:a??!1,onChange:o,caller:Ba});return(0,H.jsx)(Wa,{scope:t,triggerId:g(),triggerRef:l,contentId:g(),open:d,onOpenChange:f,onOpenToggle:V.useCallback(()=>f(e=>!e),[f]),modal:s,children:(0,H.jsx)(Pi,{...c,open:d,onOpenChange:f,dir:r,modal:s,children:n})})};Ka.displayName=Ba;var qa=`DropdownMenuTrigger`,Ja=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,disabled:r=!1,...a}=e,o=Ga(qa,n),c=Ua(n);return(0,H.jsx)(Fi,{asChild:!0,...c,children:(0,H.jsx)(i.button,{type:`button`,id:o.triggerId,"aria-haspopup":`menu`,"aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":o.open?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...a,ref:s(t,o.triggerRef),onPointerDown:j(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(o.onOpenToggle(),o.open||e.preventDefault())}),onKeyDown:j(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&o.onOpenToggle(),e.key===`ArrowDown`&&o.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})});Ja.displayName=qa;var Ya=`DropdownMenuPortal`,Xa=e=>{let{__scopeDropdownMenu:t,...n}=e,r=Ua(t);return(0,H.jsx)(Ii,{...r,...n})};Xa.displayName=Ya;var Za=`DropdownMenuContent`,Qa=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ga(Za,n),a=Ua(n),o=V.useRef(!1);return(0,H.jsx)(Li,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:j(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:j(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)`}})});Qa.displayName=Za;var $a=`DropdownMenuGroup`,eo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Ri,{...i,...r,ref:t})});eo.displayName=$a;var to=`DropdownMenuLabel`,no=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(zi,{...i,...r,ref:t})});no.displayName=to;var ro=`DropdownMenuItem`,io=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Bi,{...i,...r,ref:t})});io.displayName=ro;var ao=`DropdownMenuCheckboxItem`,oo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Vi,{...i,...r,ref:t})});oo.displayName=ao;var so=`DropdownMenuRadioGroup`,co=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Hi,{...i,...r,ref:t})});co.displayName=so;var W=`DropdownMenuRadioItem`,G=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Ui,{...i,...r,ref:t})});G.displayName=W;var lo=`DropdownMenuItemIndicator`,uo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Wi,{...i,...r,ref:t})});uo.displayName=lo;var fo=`DropdownMenuSeparator`,po=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Gi,{...i,...r,ref:t})});po.displayName=fo;var mo=`DropdownMenuArrow`,ho=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Ki,{...i,...r,ref:t})});ho.displayName=mo;var go=`DropdownMenuSubTrigger`,_o=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Ji,{...i,...r,ref:t})});_o.displayName=go;var vo=`DropdownMenuSubContent`,yo=V.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ua(n);return(0,H.jsx)(Yi,{...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)`}})});yo.displayName=vo;var bo=Ka,xo=Ja,So=Xa,Co=Qa,wo=io,To=`Label`,Eo=V.forwardRef((e,t)=>(0,H.jsx)(i.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));Eo.displayName=To;var Do=Eo;function Oo(e,t){return V.useReducer((e,n)=>t[e][n]??e,e)}var ko=`ScrollArea`,[Ao,jo]=c(ko),[Mo,No]=Ao(ko),Po=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:a,scrollHideDelay:o=600,...s}=e,[c,l]=V.useState(null),[u,d]=V.useState(null),[f,p]=V.useState(null),[m,h]=V.useState(null),[g,v]=V.useState(null),[y,x]=V.useState(0),[S,C]=V.useState(0),[w,T]=V.useState(!1),[E,D]=V.useState(!1),O=b(t,e=>l(e)),k=_(a);return(0,H.jsx)(Mo,{scope:n,type:r,dir:k,scrollHideDelay:o,scrollArea:c,viewport:u,onViewportChange:d,content:f,onContentChange:p,scrollbarX:m,onScrollbarXChange:h,scrollbarXEnabled:w,onScrollbarXEnabledChange:T,scrollbarY:g,onScrollbarYChange:v,scrollbarYEnabled:E,onScrollbarYEnabledChange:D,onCornerWidthChange:x,onCornerHeightChange:C,children:(0,H.jsx)(i.div,{dir:k,...s,ref:O,style:{position:`relative`,"--radix-scroll-area-corner-width":y+`px`,"--radix-scroll-area-corner-height":S+`px`,...e.style}})})});Po.displayName=ko;var Fo=`ScrollAreaViewport`,Io=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:a,...o}=e,s=No(Fo,n),c=b(t,V.useRef(null),s.onViewportChange);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:a}),(0,H.jsx)(i.div,{"data-radix-scroll-area-viewport":``,...o,ref:c,style:{overflowX:s.scrollbarXEnabled?`scroll`:`hidden`,overflowY:s.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,H.jsx)(`div`,{ref:s.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});Io.displayName=Fo;var Lo=`ScrollAreaScrollbar`,Ro=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=No(Lo,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return V.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,H.jsx)(zo,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,H.jsx)(Bo,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,H.jsx)(Vo,{...r,ref:t,forceMount:n}):i.type===`always`?(0,H.jsx)(Ho,{...r,ref:t}):null});Ro.displayName=Lo;var zo=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=No(Lo,e.__scopeScrollArea),[a,o]=V.useState(!1);return V.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,H.jsx)(tn,{present:n||a,children:(0,H.jsx)(Vo,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),Bo=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=No(Lo,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=cs(()=>c(`SCROLL_END`),100),[s,c]=Oo(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return V.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),V.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(c(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,c,o]),(0,H.jsx)(tn,{present:n||s!==`hidden`,children:(0,H.jsx)(Ho,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:j(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:j(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})}),Vo=V.forwardRef((e,t)=>{let n=No(Lo,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=V.useState(!1),s=e.orientation===`horizontal`,c=cs(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return ls(n.viewport,c),ls(n.content,c),(0,H.jsx)(tn,{present:r||a,children:(0,H.jsx)(Ho,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),Ho=V.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=No(Lo,e.__scopeScrollArea),a=V.useRef(null),o=V.useRef(0),[s,c]=V.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=ts(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 rs(e,o.current,s,t)}return n===`horizontal`?(0,H.jsx)(Uo,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=is(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,H.jsx)(Wo,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=is(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}),Uo=V.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=No(Lo,e.__scopeScrollArea),[o,s]=V.useState(),c=V.useRef(null),l=b(t,c,a.onScrollbarXChange);return V.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,H.jsx)(qo,{"data-orientation":`horizontal`,...i,ref:l,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":ns(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),os(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:es(o.paddingLeft),paddingEnd:es(o.paddingRight)}})}})}),Wo=V.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=No(Lo,e.__scopeScrollArea),[o,s]=V.useState(),c=V.useRef(null),l=b(t,c,a.onScrollbarYChange);return V.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,H.jsx)(qo,{"data-orientation":`vertical`,...i,ref:l,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":ns(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),os(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:es(o.paddingTop),paddingEnd:es(o.paddingBottom)}})}})}),[Go,Ko]=Ao(Lo),qo=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:o,onThumbPointerUp:s,onThumbPointerDown:c,onThumbPositionChange:l,onDragScroll:u,onWheelScroll:d,onResize:f,...p}=e,m=No(Lo,n),[h,g]=V.useState(null),_=b(t,e=>g(e)),v=V.useRef(null),y=V.useRef(``),x=m.viewport,C=r.content-r.viewport,w=S(d),T=S(l),E=cs(f,10);function D(e){v.current&&u({x:e.clientX-v.current.left,y:e.clientY-v.current.top})}return V.useEffect(()=>{let e=e=>{let t=e.target;h?.contains(t)&&w(e,C)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[x,h,C,w]),V.useEffect(T,[r,T]),ls(h,E),ls(m.content,E),(0,H.jsx)(Go,{scope:n,scrollbar:h,hasThumb:a,onThumbChange:S(o),onThumbPointerUp:S(s),onThumbPositionChange:T,onThumbPointerDown:S(c),children:(0,H.jsx)(i.div,{...p,ref:_,style:{position:`absolute`,...p.style},onPointerDown:j(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),v.current=h.getBoundingClientRect(),y.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,m.viewport&&(m.viewport.style.scrollBehavior=`auto`),D(e))}),onPointerMove:j(e.onPointerMove,D),onPointerUp:j(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=y.current,m.viewport&&(m.viewport.style.scrollBehavior=``),v.current=null})})})}),Jo=`ScrollAreaThumb`,Yo=V.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Ko(Jo,e.__scopeScrollArea);return(0,H.jsx)(tn,{present:n||i.hasThumb,children:(0,H.jsx)(Xo,{ref:t,...r})})}),Xo=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...a}=e,o=No(Jo,n),s=Ko(Jo,n),{onThumbPositionChange:c}=s,l=b(t,e=>s.onThumbChange(e)),u=V.useRef(void 0),d=cs(()=>{u.current&&=(u.current(),void 0)},100);return V.useEffect(()=>{let e=o.viewport;if(e){let t=()=>{d(),u.current||(u.current=ss(e,c),c())};return c(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[o.viewport,d,c]),(0,H.jsx)(i.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)`,...r},onPointerDownCapture:j(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:j(e.onPointerUp,s.onThumbPointerUp)})});Yo.displayName=Jo;var Zo=`ScrollAreaCorner`,Qo=V.forwardRef((e,t)=>{let n=No(Zo,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,H.jsx)($o,{...e,ref:t}):null});Qo.displayName=Zo;var $o=V.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,a=No(Zo,n),[o,s]=V.useState(0),[c,l]=V.useState(0),u=!!(o&&c);return ls(a.scrollbarX,()=>{let e=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(e),l(e)}),ls(a.scrollbarY,()=>{let e=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(e),s(e)}),u?(0,H.jsx)(i.div,{...r,ref:t,style:{width:o,height:c,position:`absolute`,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function es(e){return e?parseInt(e,10):0}function ts(e,t){let n=e/t;return isNaN(n)?0:n}function ns(e){let t=ts(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function rs(e,t,n,r=`ltr`){let i=ns(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 as([c,l],d)(e)}function is(e,t,n=`ltr`){let r=ns(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=C(e,n===`ltr`?[0,o]:[o*-1,0]);return as([0,o],[0,s])(c)}function as(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 os(e,t){return e>0&&e<t}var ss=(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 cs(e,t){let n=S(e),r=V.useRef(0);return V.useEffect(()=>()=>window.clearTimeout(r.current),[]),V.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function ls(e,t){let n=S(t);A(()=>{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 us=Po,ds=Io,fs=Qo,ps=[` `,`Enter`,`ArrowUp`,`ArrowDown`],ms=[` `,`Enter`],hs=`Select`,[gs,_s,vs]=f(hs),[ys,bs]=c(hs,[vs,D]),xs=D(),[Ss,Cs]=ys(hs),[ws,Ts]=ys(hs),Es=e=>{let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:d,autoComplete:f,disabled:p,required:m,form:h}=e,v=xs(t),[y,b]=V.useState(null),[x,S]=V.useState(null),[C,T]=V.useState(!1),E=_(l),[D,O]=u({prop:r,defaultProp:i??!1,onChange:a,caller:hs}),[k,A]=u({prop:o,defaultProp:s,onChange:c,caller:hs}),ee=V.useRef(null),te=y?h||!!y.closest(`form`):!0,[j,M]=V.useState(new Set),N=Array.from(j).map(e=>e.props.value).join(`;`);return(0,H.jsx)(w,{...v,children:(0,H.jsxs)(Ss,{required:m,scope:t,trigger:y,onTriggerChange:b,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:T,contentId:g(),value:k,onValueChange:A,open:D,onOpenChange:O,dir:E,triggerPointerDownPosRef:ee,disabled:p,children:[(0,H.jsx)(gs.Provider,{scope:t,children:(0,H.jsx)(ws,{scope:e.__scopeSelect,onNativeOptionAdd:V.useCallback(e=>{M(t=>new Set(t).add(e))},[]),onNativeOptionRemove:V.useCallback(e=>{M(t=>{let n=new Set(t);return n.delete(e),n})},[]),children:n})}),te?(0,H.jsxs)(xc,{"aria-hidden":!0,required:m,tabIndex:-1,name:d,autoComplete:f,value:k,onChange:e=>A(e.target.value),disabled:p,form:h,children:[k===void 0?(0,H.jsx)(`option`,{value:``}):null,Array.from(j)]},N):null]})})};Es.displayName=hs;var Ds=`SelectTrigger`,Os=V.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...a}=e,o=xs(n),s=Cs(Ds,n),c=s.disabled||r,l=b(t,s.onTriggerChange),u=_s(n),d=V.useRef(`touch`),[f,p,m]=Cc(e=>{let t=u().filter(e=>!e.disabled),n=wc(t,e,t.find(e=>e.value===s.value));n!==void 0&&s.onValueChange(n.value)}),h=e=>{c||(s.onOpenChange(!0),m()),e&&(s.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,H.jsx)(E,{asChild:!0,...o,children:(0,H.jsx)(i.button,{type:`button`,role:`combobox`,"aria-controls":s.contentId,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":`none`,dir:s.dir,"data-state":s.open?`open`:`closed`,disabled:c,"data-disabled":c?``:void 0,"data-placeholder":Sc(s.value)?``:void 0,...a,ref:l,onClick:j(a.onClick,e=>{e.currentTarget.focus(),d.current!==`mouse`&&h(e)}),onPointerDown:j(a.onPointerDown,e=>{d.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(h(e),e.preventDefault())}),onKeyDown:j(a.onKeyDown,e=>{let t=f.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&p(e.key),!(t&&e.key===` `)&&ps.includes(e.key)&&(h(),e.preventDefault())})})})});Os.displayName=Ds;var ks=`SelectValue`,As=V.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:a,children:o,placeholder:s=``,...c}=e,l=Cs(ks,n),{onValueNodeHasChildrenChange:u}=l,d=o!==void 0,f=b(t,l.onValueNodeChange);return A(()=>{u(d)},[u,d]),(0,H.jsx)(i.span,{...c,ref:f,style:{pointerEvents:`none`},children:Sc(l.value)?(0,H.jsx)(H.Fragment,{children:s}):o})});As.displayName=ks;var js=`SelectIcon`,Ms=V.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...a}=e;return(0,H.jsx)(i.span,{"aria-hidden":!0,...a,ref:t,children:r||`▼`})});Ms.displayName=js;var Ns=`SelectPortal`,Ps=e=>(0,H.jsx)(m,{asChild:!0,...e});Ps.displayName=Ns;var Fs=`SelectContent`,Is=V.forwardRef((e,t)=>{let n=Cs(Fs,e.__scopeSelect),[r,i]=V.useState();if(A(()=>{i(new DocumentFragment)},[]),!n.open){let t=r;return t?_t.createPortal((0,H.jsx)(Rs,{scope:e.__scopeSelect,children:(0,H.jsx)(gs.Slot,{scope:e.__scopeSelect,children:(0,H.jsx)(`div`,{children:e.children})})}),t):null}return(0,H.jsx)(Hs,{...e,ref:t})});Is.displayName=Fs;var Ls=10,[Rs,zs]=ys(Fs),Bs=`SelectContentImpl`,Vs=o(`SelectContent.RemoveScroll`),Hs=V.forwardRef((e,t)=>{let{__scopeSelect:n,position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:m,sticky:g,hideWhenDetached:_,avoidCollisions:v,...y}=e,S=Cs(Fs,n),[C,w]=V.useState(null),[E,D]=V.useState(null),O=b(t,e=>w(e)),[A,ee]=V.useState(null),[te,M]=V.useState(null),N=_s(n),[P,ne]=V.useState(!1),F=V.useRef(!1);V.useEffect(()=>{if(C)return p(C)},[C]),k();let re=V.useCallback(e=>{let[t,...n]=N().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&E&&(E.scrollTop=0),n===r&&E&&(E.scrollTop=E.scrollHeight),n?.focus(),document.activeElement!==i))return},[N,E]),I=V.useCallback(()=>re([A,C]),[re,A,C]);V.useEffect(()=>{P&&I()},[P,I]);let{onOpenChange:L,triggerPointerDownPosRef:R}=S;V.useEffect(()=>{if(C){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(R.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(R.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():C.contains(n.target)||L(!1),document.removeEventListener(`pointermove`,t),R.current=null};return R.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[C,L,R]),V.useEffect(()=>{let e=()=>L(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[L]);let[ie,ae]=Cc(e=>{let t=N().filter(e=>!e.disabled),n=wc(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current.focus())}),z=V.useCallback((e,t,n)=>{let r=!F.current&&!n;(S.value!==void 0&&S.value===t||r)&&(ee(e),r&&(F.current=!0))},[S.value]),oe=V.useCallback(()=>C?.focus(),[C]),se=V.useCallback((e,t,n)=>{let r=!F.current&&!n;(S.value!==void 0&&S.value===t||r)&&M(e)},[S.value]),ce=r===`popper`?Ks:Ws,le=ce===Ks?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:m,sticky:g,hideWhenDetached:_,avoidCollisions:v}:{};return(0,H.jsx)(Rs,{scope:n,content:C,viewport:E,onViewportChange:D,itemRefCallback:z,selectedItem:A,onItemLeave:oe,itemTextRefCallback:se,focusSelectedItem:I,selectedItemText:te,position:r,isPositioned:P,searchRef:ie,children:(0,H.jsx)(x,{as:Vs,allowPinchZoom:!0,children:(0,H.jsx)(h,{asChild:!0,trapped:S.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:j(i,e=>{S.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,H.jsx)(T,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>S.onOpenChange(!1),children:(0,H.jsx)(ce,{role:`listbox`,id:S.contentId,"data-state":S.open?`open`:`closed`,dir:S.dir,onContextMenu:e=>e.preventDefault(),...y,...le,onPlaced:()=>ne(!0),ref:O,style:{display:`flex`,flexDirection:`column`,outline:`none`,...y.style},onKeyDown:j(y.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&ae(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=N().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>re(t)),e.preventDefault()}})})})})})})});Hs.displayName=Bs;var Us=`SelectItemAlignedPosition`,Ws=V.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...a}=e,o=Cs(Fs,n),s=zs(Fs,n),[c,l]=V.useState(null),[u,d]=V.useState(null),f=b(t,e=>d(e)),p=_s(n),m=V.useRef(!1),h=V.useRef(!0),{viewport:g,selectedItem:_,selectedItemText:v,focusSelectedItem:y}=s,x=V.useCallback(()=>{if(o.trigger&&o.valueNode&&c&&u&&g&&_&&v){let e=o.trigger.getBoundingClientRect(),t=u.getBoundingClientRect(),n=o.valueNode.getBoundingClientRect(),i=v.getBoundingClientRect();if(o.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,s=e.width+o,l=Math.max(s,t.width),u=window.innerWidth-Ls,d=C(a,[Ls,Math.max(Ls,u-l)]);c.style.minWidth=s+`px`,c.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,s=e.width+o,l=Math.max(s,t.width),u=window.innerWidth-Ls,d=C(a,[Ls,Math.max(Ls,u-l)]);c.style.minWidth=s+`px`,c.style.right=d+`px`}let a=p(),s=window.innerHeight-Ls*2,l=g.scrollHeight,d=window.getComputedStyle(u),f=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=f+h+l+b+y,S=Math.min(_.offsetHeight*5,x),w=window.getComputedStyle(g),T=parseInt(w.paddingTop,10),E=parseInt(w.paddingBottom,10),D=e.top+e.height/2-Ls,O=s-D,k=_.offsetHeight/2,A=_.offsetTop+k,ee=f+h+A,te=x-ee;if(ee<=D){let e=a.length>0&&_===a[a.length-1].ref.current;c.style.bottom=`0px`;let t=u.clientHeight-g.offsetTop-g.offsetHeight,n=ee+Math.max(O,k+(e?E:0)+t+y);c.style.height=n+`px`}else{let e=a.length>0&&_===a[0].ref.current;c.style.top=`0px`;let t=Math.max(D,f+g.offsetTop+(e?T:0)+k)+te;c.style.height=t+`px`,g.scrollTop=ee-D+g.offsetTop}c.style.margin=`${Ls}px 0`,c.style.minHeight=S+`px`,c.style.maxHeight=s+`px`,r?.(),requestAnimationFrame(()=>m.current=!0)}},[p,o.trigger,o.valueNode,c,u,g,_,v,o.dir,r]);A(()=>x(),[x]);let[S,w]=V.useState();return A(()=>{u&&w(window.getComputedStyle(u).zIndex)},[u]),(0,H.jsx)(qs,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:m,onScrollButtonChange:V.useCallback(e=>{e&&h.current===!0&&(x(),y?.(),h.current=!1)},[x,y]),children:(0,H.jsx)(`div`,{ref:l,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:S},children:(0,H.jsx)(i.div,{...a,ref:f,style:{boxSizing:`border-box`,maxHeight:`100%`,...a.style}})})})});Ws.displayName=Us;var Gs=`SelectPopperPosition`,Ks=V.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=Ls,...a}=e,o=xs(n);return(0,H.jsx)(d,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})});Ks.displayName=Gs;var[qs,Js]=ys(Fs,{}),Ys=`SelectViewport`,Xs=V.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...a}=e,o=zs(Ys,n),s=Js(Ys,n),c=b(t,o.onViewportChange),l=V.useRef(0);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,H.jsx)(gs.Slot,{scope:n,children:(0,H.jsx)(i.div,{"data-radix-select-viewport":``,role:`presentation`,...a,ref:c,style:{position:`relative`,flex:1,overflow:`hidden auto`,...a.style},onScroll:j(a.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=s;if(r?.current&&n){let e=Math.abs(l.current-t.scrollTop);if(e>0){let r=window.innerHeight-Ls*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}l.current=t.scrollTop})})})]})});Xs.displayName=Ys;var Zs=`SelectGroup`,[Qs,$s]=ys(Zs),ec=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,a=g();return(0,H.jsx)(Qs,{scope:n,id:a,children:(0,H.jsx)(i.div,{role:`group`,"aria-labelledby":a,...r,ref:t})})});ec.displayName=Zs;var tc=`SelectLabel`,nc=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,a=$s(tc,n);return(0,H.jsx)(i.div,{id:a.id,...r,ref:t})});nc.displayName=tc;var rc=`SelectItem`,[ic,ac]=ys(rc),oc=V.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:a=!1,textValue:o,...s}=e,c=Cs(rc,n),l=zs(rc,n),u=c.value===r,[d,f]=V.useState(o??``),[p,m]=V.useState(!1),h=b(t,e=>l.itemRefCallback?.(e,r,a)),_=g(),v=V.useRef(`touch`),y=()=>{a||(c.onValueChange(r),c.onOpenChange(!1))};if(r===``)throw Error(`A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return(0,H.jsx)(ic,{scope:n,value:r,disabled:a,textId:_,isSelected:u,onItemTextChange:V.useCallback(e=>{f(t=>t||(e?.textContent??``).trim())},[]),children:(0,H.jsx)(gs.ItemSlot,{scope:n,value:r,disabled:a,textValue:d,children:(0,H.jsx)(i.div,{role:`option`,"aria-labelledby":_,"data-highlighted":p?``:void 0,"aria-selected":u&&p,"data-state":u?`checked`:`unchecked`,"aria-disabled":a||void 0,"data-disabled":a?``:void 0,tabIndex:a?void 0:-1,...s,ref:h,onFocus:j(s.onFocus,()=>m(!0)),onBlur:j(s.onBlur,()=>m(!1)),onClick:j(s.onClick,()=>{v.current!==`mouse`&&y()}),onPointerUp:j(s.onPointerUp,()=>{v.current===`mouse`&&y()}),onPointerDown:j(s.onPointerDown,e=>{v.current=e.pointerType}),onPointerMove:j(s.onPointerMove,e=>{v.current=e.pointerType,a?l.onItemLeave?.():v.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:j(s.onPointerLeave,e=>{e.currentTarget===document.activeElement&&l.onItemLeave?.()}),onKeyDown:j(s.onKeyDown,e=>{l.searchRef?.current!==``&&e.key===` `||(ms.includes(e.key)&&y(),e.key===` `&&e.preventDefault())})})})})});oc.displayName=rc;var sc=`SelectItemText`,cc=V.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:a,...o}=e,s=Cs(sc,n),c=zs(sc,n),l=ac(sc,n),u=Ts(sc,n),[d,f]=V.useState(null),p=b(t,e=>f(e),l.onItemTextChange,e=>c.itemTextRefCallback?.(e,l.value,l.disabled)),m=d?.textContent,h=V.useMemo(()=>(0,H.jsx)(`option`,{value:l.value,disabled:l.disabled,children:m},l.value),[l.disabled,l.value,m]),{onNativeOptionAdd:g,onNativeOptionRemove:_}=u;return A(()=>(g(h),()=>_(h)),[g,_,h]),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(i.span,{id:l.textId,...o,ref:p}),l.isSelected&&s.valueNode&&!s.valueNodeHasChildren?_t.createPortal(o.children,s.valueNode):null]})});cc.displayName=sc;var lc=`SelectItemIndicator`,uc=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return ac(lc,n).isSelected?(0,H.jsx)(i.span,{"aria-hidden":!0,...r,ref:t}):null});uc.displayName=lc;var dc=`SelectScrollUpButton`,fc=V.forwardRef((e,t)=>{let n=zs(dc,e.__scopeSelect),r=Js(dc,e.__scopeSelect),[i,a]=V.useState(!1),o=b(t,r.onScrollButtonChange);return A(()=>{if(n.viewport&&n.isPositioned){let e=function(){a(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,H.jsx)(hc,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});fc.displayName=dc;var pc=`SelectScrollDownButton`,mc=V.forwardRef((e,t)=>{let n=zs(pc,e.__scopeSelect),r=Js(pc,e.__scopeSelect),[i,a]=V.useState(!1),o=b(t,r.onScrollButtonChange);return A(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,H.jsx)(hc,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});mc.displayName=pc;var hc=V.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...a}=e,o=zs(`SelectScrollButton`,n),s=V.useRef(null),c=_s(n),l=V.useCallback(()=>{s.current!==null&&(window.clearInterval(s.current),s.current=null)},[]);return V.useEffect(()=>()=>l(),[l]),A(()=>{c().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[c]),(0,H.jsx)(i.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:j(a.onPointerDown,()=>{s.current===null&&(s.current=window.setInterval(r,50))}),onPointerMove:j(a.onPointerMove,()=>{o.onItemLeave?.(),s.current===null&&(s.current=window.setInterval(r,50))}),onPointerLeave:j(a.onPointerLeave,()=>{l()})})}),gc=`SelectSeparator`,_c=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,H.jsx)(i.div,{"aria-hidden":!0,...r,ref:t})});_c.displayName=gc;var vc=`SelectArrow`,yc=V.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=xs(n),a=Cs(vc,n),o=zs(vc,n);return a.open&&o.position===`popper`?(0,H.jsx)(v,{...i,...r,ref:t}):null});yc.displayName=vc;var bc=`SelectBubbleInput`,xc=V.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{let a=V.useRef(null),o=b(r,a),s=qn(t);return V.useEffect(()=>{let e=a.current;if(!e)return;let n=window.HTMLSelectElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(s!==t&&r){let n=new Event(`change`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[s,t]),(0,H.jsx)(i.select,{...n,style:{...Xt,...n.style},ref:o,defaultValue:t})});xc.displayName=bc;function Sc(e){return e===``||e===void 0}function Cc(e){let t=S(e),n=V.useRef(``),r=V.useRef(0),i=V.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=V.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return V.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function wc(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=Tc(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function Tc(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Ec=Es,Dc=Os,Oc=As,kc=Ms,Ac=Ps,jc=Is,Mc=Xs,Nc=oc,Pc=cc,Fc=uc,Ic=fc,Lc=mc,Rc=`Separator`,zc=`horizontal`,Bc=[`horizontal`,`vertical`],Vc=V.forwardRef((e,t)=>{let{decorative:n,orientation:r=zc,...a}=e,o=Hc(r)?r:zc,s=o===`vertical`?o:void 0,c=n?{role:`none`}:{"aria-orientation":s,role:`separator`};return(0,H.jsx)(i.div,{"data-orientation":o,...c,...a,ref:t})});Vc.displayName=Rc;function Hc(e){return Bc.includes(e)}var Uc=Vc,[Wc,Gc]=c(`Tooltip`,[D]),Kc=D(),qc=`TooltipProvider`,Jc=700,Yc=`tooltip.open`,[Xc,Zc]=Wc(qc),Qc=e=>{let{__scopeTooltip:t,delayDuration:n=Jc,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=V.useRef(!0),s=V.useRef(!1),c=V.useRef(0);return V.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,H.jsx)(Xc,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:V.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:V.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:V.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};Qc.displayName=qc;var $c=`Tooltip`,[el,tl]=Wc($c),nl=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=Zc($c,e.__scopeTooltip),l=Kc(t),[d,f]=V.useState(null),p=g(),m=V.useRef(0),h=o??c.disableHoverableContent,_=s??c.delayDuration,v=V.useRef(!1),[y,b]=u({prop:r,defaultProp:i??!1,onChange:e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(Yc))):c.onClose(),a?.(e)},caller:$c}),x=V.useMemo(()=>y?v.current?`delayed-open`:`instant-open`:`closed`,[y]),S=V.useCallback(()=>{window.clearTimeout(m.current),m.current=0,v.current=!1,b(!0)},[b]),C=V.useCallback(()=>{window.clearTimeout(m.current),m.current=0,b(!1)},[b]),T=V.useCallback(()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>{v.current=!0,b(!0),m.current=0},_)},[_,b]);return V.useEffect(()=>()=>{m.current&&=(window.clearTimeout(m.current),0)},[]),(0,H.jsx)(w,{...l,children:(0,H.jsx)(el,{scope:t,contentId:p,open:y,stateAttribute:x,trigger:d,onTriggerChange:f,onTriggerEnter:V.useCallback(()=>{c.isOpenDelayedRef.current?T():S()},[c.isOpenDelayedRef,T,S]),onTriggerLeave:V.useCallback(()=>{h?C():(window.clearTimeout(m.current),m.current=0)},[C,h]),onOpen:S,onClose:C,disableHoverableContent:h,children:n})})};nl.displayName=$c;var rl=`TooltipTrigger`,il=V.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,a=tl(rl,n),o=Zc(rl,n),s=Kc(n),c=b(t,V.useRef(null),a.onTriggerChange),l=V.useRef(!1),u=V.useRef(!1),d=V.useCallback(()=>l.current=!1,[]);return V.useEffect(()=>()=>document.removeEventListener(`pointerup`,d),[d]),(0,H.jsx)(E,{asChild:!0,...s,children:(0,H.jsx)(i.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:c,onPointerMove:j(e.onPointerMove,e=>{e.pointerType!==`touch`&&!u.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),u.current=!0)}),onPointerLeave:j(e.onPointerLeave,()=>{a.onTriggerLeave(),u.current=!1}),onPointerDown:j(e.onPointerDown,()=>{a.open&&a.onClose(),l.current=!0,document.addEventListener(`pointerup`,d,{once:!0})}),onFocus:j(e.onFocus,()=>{l.current||a.onOpen()}),onBlur:j(e.onBlur,a.onClose),onClick:j(e.onClick,a.onClose)})})});il.displayName=rl;var al=`TooltipPortal`,[ol,sl]=Wc(al,{forceMount:void 0}),cl=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=tl(al,t);return(0,H.jsx)(ol,{scope:t,forceMount:n,children:(0,H.jsx)(tn,{present:n||a.open,children:(0,H.jsx)(m,{asChild:!0,container:i,children:r})})})};cl.displayName=al;var ll=`TooltipContent`,ul=V.forwardRef((e,t)=>{let n=sl(ll,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=tl(ll,e.__scopeTooltip);return(0,H.jsx)(tn,{present:r||o.open,children:o.disableHoverableContent?(0,H.jsx)(hl,{side:i,...a,ref:t}):(0,H.jsx)(dl,{side:i,...a,ref:t})})}),dl=V.forwardRef((e,t)=>{let n=tl(ll,e.__scopeTooltip),r=Zc(ll,e.__scopeTooltip),i=V.useRef(null),a=b(t,i),[o,s]=V.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=V.useCallback(()=>{s(null),d(!1)},[d]),p=V.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=yl(r,vl(r,n.getBoundingClientRect())),a=bl(t.getBoundingClientRect());s(Sl([...i,...a])),d(!0)},[d]);return V.useEffect(()=>()=>f(),[f]),V.useEffect(()=>{if(c&&u){let e=e=>p(e,u),t=e=>p(e,c);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),V.useEffect(()=>{if(o){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!xl(n,o);r?f():i&&(f(),l())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,H.jsx)(hl,{...e,ref:a})}),[fl,pl]=Wc($c,{isInside:!1}),ml=a(`TooltipContent`),hl=V.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=tl(ll,n),l=Kc(n),{onClose:u}=c;return V.useEffect(()=>(document.addEventListener(Yc,u),()=>document.removeEventListener(Yc,u)),[u]),V.useEffect(()=>{if(c.trigger){let e=e=>{e.target?.contains(c.trigger)&&u()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[c.trigger,u]),(0,H.jsx)(T,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:(0,H.jsxs)(d,{"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,H.jsx)(ml,{children:r}),(0,H.jsx)(fl,{scope:n,isInside:!0,children:(0,H.jsx)($t,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});ul.displayName=ll;var gl=`TooltipArrow`,_l=V.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=Kc(n);return pl(gl,n).isInside?null:(0,H.jsx)(v,{...i,...r,ref:t})});_l.displayName=gl;function vl(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 yl(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 bl(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 xl(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 Sl(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),Cl(t)}function Cl(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 wl=Qc,Tl=nl,El=il,Dl=cl,Ol=ul,kl=_l;function Al({delayDuration:e=0,...t}){return(0,H.jsx)(wl,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function jl({...e}){return(0,H.jsx)(Tl,{"data-slot":`tooltip`,...e})}function Ml({...e}){return(0,H.jsx)(El,{"data-slot":`tooltip-trigger`,...e})}function Nl({className:e,sideOffset:t=0,children:n,...r}){return(0,H.jsx)(Dl,{children:(0,H.jsxs)(Ol,{"data-slot":`tooltip-content`,sideOffset:t,className:z(`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,H.jsx)(kl,{className:`z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground`})]})})}function Pl(e,t){let n=getComputedStyle(e);return t*parseFloat(n.fontSize)}function Fl(e,t){let n=getComputedStyle(e.ownerDocument.body);return t*parseFloat(n.fontSize)}function Il(e){return e/100*window.innerHeight}function Ll(e){return e/100*window.innerWidth}function Rl(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 K({groupSize:e,panelElement:t,styleProp:n}){let r,[i,a]=Rl(n);switch(a){case`%`:r=i/100*e;break;case`px`:r=i;break;case`rem`:r=Fl(t,i);break;case`em`:r=Pl(t,i);break;case`vh`:r=Il(i);break;case`vw`:r=Ll(i);break}return r}function q(e){return parseFloat(e.toFixed(3))}function J({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 Y(e){let{panels:t}=e,n=J({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=q(K({groupSize:n,panelElement:t,styleProp:r.collapsedSize})/n*100));let a;r.defaultSize!==void 0&&(a=q(K({groupSize:n,panelElement:t,styleProp:r.defaultSize})/n*100));let o=0;r.minSize!==void 0&&(o=q(K({groupSize:n,panelElement:t,styleProp:r.minSize})/n*100));let s=100;return r.maxSize!==void 0&&(s=q(K({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 X(e,t=`Assertion error`){if(!e)throw Error(t)}function zl(e,t){return Array.from(t).sort(e===`horizontal`?Bl:Vl)}function Bl(e,t){let n=e.element.offsetLeft-t.element.offsetLeft;return n===0?e.element.offsetWidth-t.element.offsetWidth:n}function Vl(e,t){let n=e.element.offsetTop-t.element.offsetTop;return n===0?e.element.offsetHeight-t.element.offsetHeight:n}function Hl(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.ELEMENT_NODE}function Ul(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 Wl({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}=Ul(r,n),s=e===`horizontal`?t:o;s<a&&(a=s,i=n)}return X(i,`No rect found`),i}var Gl;function Kl(){return Gl===void 0&&(Gl=typeof matchMedia==`function`?!!matchMedia(`(pointer:coarse)`).matches:!1),Gl}function ql(e){let{element:t,orientation:n,panels:r,separators:i}=e,a=zl(n,Array.from(t.children).filter(Hl).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,Wl({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=Kl()?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:J({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 Jl=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)}}},Yl=new Map,Xl=new Jl;function Zl(e){Yl=new Map(Yl),Yl.delete(e)}function Ql(e,t){for(let[t]of Yl)if(t.id===e)return t}function $l(e,t){for(let[t,n]of Yl)if(t.id===e)return n;if(t)throw Error(`Could not find data for Group with id ${e}`)}function eu(){return Yl}function tu(e,t){return Xl.addListener(`groupChange`,n=>{n.group.id===e&&t(n)})}function nu(e,t){let n=Yl.get(e);Yl=new Map(Yl),Yl.set(e,t),Xl.emit(`groupChange`,{group:e,prev:n,next:t})}function ru(e,t,n){let r,i={x:1/0,y:1/0};for(let a of t){let t=Ul(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 iu(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function au(e,t){if(e===t)throw Error(`Cannot compare node with itself`);let n={a:du(e),b:du(t)},r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();X(r,`Stacking order can only be calculated for elements with a common ancestor`);let i={a:uu(lu(n.a)),b:uu(lu(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 ou=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function su(e){let t=getComputedStyle(fu(e)??e).display;return t===`flex`||t===`inline-flex`}function cu(e){let t=getComputedStyle(e);return!!(t.position===`fixed`||t.zIndex!==`auto`&&(t.position!==`static`||su(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`||ou.test(t.willChange)||t.webkitOverflowScrolling===`touch`)}function lu(e){let t=e.length;for(;t--;){let n=e[t];if(X(n,`Missing node`),cu(n))return n}return null}function uu(e){return e&&Number(getComputedStyle(e).zIndex)||0}function du(e){let t=[];for(;e;)t.push(e),e=fu(e);return t}function fu(e){let{parentNode:t}=e;return iu(t)?t.host:t}function pu(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 mu({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!Hl(n)||n.contains(e)||e.contains(n))return!0;if(au(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(pu(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function hu(e,t){let n=[];return t.forEach((t,r)=>{if(r.disabled)return;let i=ql(r),a=ru(r.orientation,i,{x:e.clientX,y:e.clientY});a&&a.distance.x<=0&&a.distance.y<=0&&mu({groupElement:r.element,hitRegion:a.hitRegion.rect,pointerEventTarget:e.target})&&n.push(a.hitRegion)}),n}function gu(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 _u(e,t,n=0){return Math.abs(q(e)-q(t))<=n}function vu(e,t){return _u(e,t)?0:e>t?1:-1}function yu({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(vu(r,c)<0)if(a){let e=(i+c)/2;r=vu(r,e)<0?i:c}else r=c;return r=Math.min(s,r),r=q(r),r}function bu({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:i,trigger:a}){if(_u(e,0))return t;let o=a===`imperative-api`,s=Object.values(t),c=Object.values(i),l=[...s],[u,d]=r;X(u!=null,`Invalid first pivot index`),X(d!=null,`Invalid second pivot index`);let f=0;switch(a){case`keyboard`:{let t=e<0?d:u,r=n[t];X(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(X(n!=null,`Previous layout not found for panel index ${t}`),_u(n,i)){let t=o-n;vu(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?u:d,r=n[t];X(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(X(n!=null,`Previous layout not found for panel index ${t}`),_u(n,o)){let t=n-i;vu(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}break;default:{let t=e<0?d:u,r=n[t];X(r,`Panel constraints not found for index ${t}`);let i=s[t],{collapsible:a,collapsedSize:o,minSize:c}=r;if(a&&vu(i,c)<0)if(e>0){let t=c-o,n=t/2;vu(i+e,c)<0&&(e=vu(e,n)<=0?0:t)}else{let t=c-o,n=100-t/2;vu(i-e,c)<0&&(e=vu(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];X(e!=null,`Previous layout not found for panel index ${r}`);let a=yu({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];X(i!=null,`Previous layout not found for panel index ${t}`);let a=i-r,c=yu({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:i,size:a});if(!_u(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(gu(c,l))return i;{let t=e<0?d:u,r=s[t];X(r!=null,`Previous layout not found for panel index ${t}`);let i=r+f,a=yu({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:r,size:i});if(l[t]=a,!_u(a,i)){let t=i-a,r=e<0?d:u;for(;r>=0&&r<n.length;){let i=l[r];X(i!=null,`Previous layout not found for panel index ${r}`);let a=i+t,s=yu({overrideDisabledPanels:o,panelConstraints:n[r],prevSize:i,size:a});if(_u(i,s)||(t-=s-i,l[r]=s),_u(t,0))break;e>0?r--:r++}}}if(!_u(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 xu(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(t[n]===void 0||vu(e[n],t[n])!==0)return!1;return!0}function Su({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(!_u(i,100)&&r.length>0)for(let e=0;e<t.length;e++){let t=r[e];X(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];X(i!=null,`No layout data found for index ${e}`);let o=r[e];X(o!=null,`No layout data found for index ${e}`);let s=yu({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:i,size:o});o!=s&&(a+=o-s,r[e]=s)}if(!_u(a,0))for(let e=0;e<t.length;e++){let n=r[e];X(n!=null,`No layout data found for index ${e}`);let i=n+a,o=yu({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:n,size:i});if(n!==o&&(a-=o-n,r[e]=o,_u(a,0)))break}let o=Object.keys(e);return r.reduce((e,t,n)=>(e[o[n]]=t,e),{})}function Cu({groupId:e,panelId:t}){let n=()=>{let t=eu();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=Su({layout:bu({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});xu(l,p)||nu(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&&_u(t,n)},resize:e=>{let{group:t}=n(),{element:r}=i(),a=J({group:t});o(q(K({groupSize:a,panelElement:r,styleProp:e})/a*100))}}}function wu(e){e.defaultPrevented||hu(e,eu()).forEach(t=>{if(t.separator){let n=t.panels.find(e=>e.panelConstraints.defaultSize!==void 0);if(n){let r=n.panelConstraints.defaultSize,i=Cu({groupId:t.group.id,panelId:n.id});i&&r!==void 0&&(i.resize(r),e.preventDefault())}}})}function Tu(e){let t=eu();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 Eu({groupId:e}){let t=()=>{let t=eu();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=Su({layout:e,panelConstraints:r});return n?o:(xu(o,c)||nu(i,{defaultLayoutDeferred:n,derivedPanelConstraints:r,groupSize:a,layout:c,separatorToPanels:s}),c)}}}function Du(e,t){let n=Tu(e),r=$l(n.id,!0),i=n.separators.find(t=>t.element===e);X(i,`Matching separator not found`);let a=r.separatorToPanels.get(i);X(a,`Matching panels not found`);let o=a.map(e=>n.panels.indexOf(e)),s=Eu({groupId:n.id}).getLayout(),c=Su({layout:bu({delta:t,initialLayout:s,panelConstraints:r.derivedPanelConstraints,pivotIndices:o,prevLayout:s,trigger:`keyboard`}),panelConstraints:r.derivedPanelConstraints});xu(s,c)||nu(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedPanelConstraints:r.derivedPanelConstraints,groupSize:r.groupSize,layout:c,separatorToPanels:r.separatorToPanels})}function Ou(e){if(e.defaultPrevented)return;let t=e.currentTarget,n=Tu(t);if(!n.disabled)switch(e.key){case`ArrowDown`:e.preventDefault(),n.orientation===`vertical`&&Du(t,5);break;case`ArrowLeft`:e.preventDefault(),n.orientation===`horizontal`&&Du(t,-5);break;case`ArrowRight`:e.preventDefault(),n.orientation===`horizontal`&&Du(t,5);break;case`ArrowUp`:e.preventDefault(),n.orientation===`vertical`&&Du(t,-5);break;case`End`:e.preventDefault(),Du(t,100);break;case`Enter`:{e.preventDefault();let n=Tu(t),{derivedPanelConstraints:r,layout:i,separatorToPanels:a}=$l(n.id,!0),o=n.separators.find(e=>e.element===t);X(o,`Matching separator not found`);let s=a.get(o);X(s,`Matching panels not found`);let c=s[0],l=r.find(e=>e.panelId===c.id);if(X(l,`Panel metadata not found`),l.collapsible){let e=i[c.id];Du(t,(l.collapsedSize===e?n.mutableState.expandedPanelSizes[c.id]??l.minSize:l.collapsedSize)-e)}break}case`F6`:{e.preventDefault();let n=Tu(t).separators.map(e=>e.element),r=Array.from(n).findIndex(t=>t===e.currentTarget);X(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(),Du(t,-100);break}}var ku={cursorFlags:0,state:`inactive`},Au=new Jl;function ju(){return ku}function Mu(e){return Au.addListener(`change`,e)}function Nu(e){let t=ku,n={...ku};n.cursorFlags=e,ku=n,Au.emit(`change`,{prev:t,next:n})}function Pu(e){let t=ku;ku=e,Au.emit(`change`,{prev:t,next:e})}function Fu(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=eu(),n=hu(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)}),Pu({cursorFlags:0,hitRegions:n,initialLayoutMap:r,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:`active`}),n.length&&e.preventDefault()}var Iu=e=>e,Lu=()=>{},Ru=1,zu=2,Bu=4,Vu=8,Hu=3,Uu=12,Wu;function Z(){return Wu===void 0&&(Wu=!1,typeof window<`u`&&(window.navigator.userAgent.includes(`Chrome`)||window.navigator.userAgent.includes(`Firefox`))&&(Wu=!0)),Wu}function Gu({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&&Z()){let t=(e&Ru)!==0,n=(e&zu)!==0,r=(e&Bu)!==0,i=(e&Vu)!==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 Z()?r>0&&i>0?`move`:r>0?`ew-resize`:`ns-resize`:r>0&&i>0?`grab`:r>0?`col-resize`:`row-resize`}}var Ku=new WeakMap;function qu(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=Ku.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&e.adoptedStyleSheets.push(n));let r=ju();switch(r.state){case`active`:case`hover`:{let e=Gu({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}Ku.set(e,{prevStyle:t,styleSheet:n})}function Ju({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=bu({delta:d,initialLayout:f,panelConstraints:h,pivotIndices:e.panels.map(e=>l.indexOf(e)),prevLayout:_,trigger:`mouse-or-touch`});if(xu(t,_)){if(d!==0&&!u)switch(c){case`horizontal`:s|=d<0?Ru:zu;break;case`vertical`:s|=d<0?Bu:Vu;break}}else nu(e.group,{defaultLayoutDeferred:m,derivedPanelConstraints:h,groupSize:g,layout:t,separatorToPanels:v})}});let c=0;t.movementX===0?c|=o&Hu:c|=s&Hu,t.movementY===0?c|=o&Uu:c|=s&Uu,Nu(c),qu(e)}function Yu(e){let t=eu(),n=ju();switch(n.state){case`active`:Ju({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function Xu(e){if(e.defaultPrevented)return;let t=ju(),n=eu();switch(t.state){case`active`:if(e.buttons===0){Pu({cursorFlags:0,state:`inactive`}),t.hitRegions.forEach(e=>{let t=$l(e.group.id,!0);nu(e.group,t)});return}Ju({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break;default:{let r=hu(e,n);r.length===0?t.state!==`inactive`&&Pu({cursorFlags:0,state:`inactive`}):Pu({cursorFlags:0,hitRegions:r,state:`hover`}),qu(e.currentTarget);break}}}function Zu(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch(ju().state){case`hover`:Pu({cursorFlags:0,state:`inactive`})}}function Qu(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=ju();switch(t.state){case`active`:Pu({cursorFlags:0,state:`inactive`}),t.hitRegions.length>0&&(qu(e.currentTarget),t.hitRegions.forEach(e=>{let t=$l(e.group.id,!0);nu(e.group,t)}),e.preventDefault())}}function $u(e){let t=0,n=0,r={};for(let i of e)if(i.defaultSize!==void 0){t++;let e=q(i.defaultSize);n+=e,r[i.panelId]=e}else r[i.panelId]=void 0;let i=e.length-t;if(i!==0){let t=q((100-n)/i);for(let n of e)n.defaultSize===void 0&&(r[n.panelId]=t)}return r}function ed(e,t,n){if(!n[0])return;let r=e.panels.find(e=>e.element===t);if(!r||!r.onResize)return;let i=J({group:e}),a=e.orientation===`horizontal`?r.element.offsetWidth:r.element.offsetHeight,o=r.mutableValues.prevSize,s={asPercentage:q(a/i*100),inPixels:a};r.mutableValues.prevSize=s,r.onResize(s,r.id,o)}function td(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 nd({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=q(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]=q((r[e]??0)/a*l);else{let e=q(l/c.length);for(let t of c)u[t]=e}return u}function rd(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 id=new Map;function ad(e){let t=!0;X(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=J({group:e});if(t===0)return;let n=$l(e.id);if(!n)return;let r=Y(e),i=n.defaultLayoutDeferred?$u(r):n.layout,a=Su({layout:nd({group:e,nextGroupSize:t,prevGroupSize:n.groupSize,prevLayout:i}),panelConstraints:r});if(!n.defaultLayoutDeferred&&xu(n.layout,a)&&td(n.derivedPanelConstraints,r)&&n.groupSize===t)return;nu(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,groupSize:t,layout:a,separatorToPanels:n.separatorToPanels})}}else ed(e,i,n)}});a.observe(e.element),e.panels.forEach(e=>{X(!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=J({group:e}),s=Y(e),c=e.panels.map(({id:e})=>e).join(`,`),l=e.mutableState.defaultLayout;l&&(rd(e.panels,l)||(l=void 0));let u=Su({layout:e.mutableState.layouts[c]??l??$u(s),panelConstraints:s}),d=e.element.ownerDocument;id.set(d,(id.get(d)??0)+1);let f=new Map;return ql(e).forEach(e=>{e.separator&&f.set(e.separator,e.panels)}),nu(e,{defaultLayoutDeferred:o===0,derivedPanelConstraints:s,groupSize:o,layout:u,separatorToPanels:f}),e.separators.forEach(e=>{X(!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`,Ou)}),id.get(d)===1&&(d.addEventListener(`dblclick`,wu,!0),d.addEventListener(`pointerdown`,Fu,!0),d.addEventListener(`pointerleave`,Yu),d.addEventListener(`pointermove`,Xu),d.addEventListener(`pointerout`,Zu),d.addEventListener(`pointerup`,Qu,!0)),function(){t=!1,id.set(d,Math.max(0,(id.get(d)??0)-1)),Zl(e),e.separators.forEach(e=>{e.element.removeEventListener(`keydown`,Ou)}),id.get(d)||(d.removeEventListener(`dblclick`,wu,!0),d.removeEventListener(`pointerdown`,Fu,!0),d.removeEventListener(`pointerleave`,Yu),d.removeEventListener(`pointermove`,Xu),d.removeEventListener(`pointerout`,Zu),d.removeEventListener(`pointerup`,Qu,!0)),a.disconnect()}}function od(){let[e,t]=(0,V.useState)({});return[e,(0,V.useCallback)(()=>t({}),[])]}function sd(e){let t=(0,V.useId)();return`${e??t}`}var cd=typeof window<`u`?V.useLayoutEffect:V.useEffect;function ld(e){let t=(0,V.useRef)(e);return cd(()=>{t.current=e},[e]),(0,V.useCallback)((...e)=>t.current?.(...e),[t])}function ud(...e){return ld(t=>{e.forEach(e=>{if(e)switch(typeof e){case`function`:e(t);break;case`object`:e.current=t;break}})})}function dd(e){let t=(0,V.useRef)({...e});return cd(()=>{for(let n in e)t.current[n]=e[n]},[e]),t.current}var fd=(0,V.createContext)(null);function pd(e,t){let n=(0,V.useRef)({getLayout:()=>({}),setLayout:Iu});(0,V.useImperativeHandle)(t,()=>n.current,[]),cd(()=>{Object.assign(n.current,Eu({groupId:e}))})}function md({children:e,className:t,defaultLayout:n,disableCursor:r,disabled:i,elementRef:a,groupRef:o,id:s,onLayoutChange:c,onLayoutChanged:l,orientation:u=`horizontal`,resizeTargetMinimumSize:d={coarse:20,fine:10},style:f,...p}){let m=(0,V.useRef)({onLayoutChange:{},onLayoutChanged:{}}),h=ld(e=>{xu(m.current.onLayoutChange,e)||(m.current.onLayoutChange=e,c?.(e))}),g=ld(e=>{xu(m.current.onLayoutChanged,e)||(m.current.onLayoutChanged=e,l?.(e))}),_=sd(s),v=(0,V.useRef)(null),[y,b]=od(),x=(0,V.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:d,separators:[]}),S=ud(v,a);pd(_,o);let C=ld((e,t)=>{let r=ju(),i=Ql(e),a=$l(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=dd({defaultLayout:n,disableCursor:r}),T=(0,V.useMemo)(()=>({get disableCursor(){return!!w.disableCursor},getPanelStyles:C,id:_,orientation:u,registerPanel:e=>{let t=x.current;return t.panels=zl(u,[...t.panels,e]),b(),()=>{t.panels=t.panels.filter(t=>t!==e),b()}},registerSeparator:e=>{let t=x.current;return t.separators=zl(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=Ql(_),i=$l(_);r&&i&&nu(r,{...i,derivedPanelConstraints:Y(r)})},toggleSeparatorDisabled:(e,t)=>{let n=x.current.separators.find(t=>t.id===e);n&&(n.disabled=t)}}),[C,_,b,u,w]),E=(0,V.useRef)(null);return cd(()=>{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=ad(r),{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:c}=$l(r.id,!0);!o&&s.length>0&&(h(c),g(c));let l=tu(_,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=_u(t.collapsedSize,i[t.panelId]),a=_u(t.collapsedSize,n[t.panelId]);e&&!a&&(r.mutableState.expandedPanelSizes[t.panelId]=n[t.panelId])}}});let o=ju().state!==`active`;h(i),o&&g(i)});return()=>{E.current=null,a(),l()}},[i,_,g,h,u,y,w]),(0,V.useEffect)(()=>{let e=E.current;e&&(e.mutableState.defaultLayout=n,e.mutableState.disableCursor=!!r)}),(0,H.jsx)(fd.Provider,{value:T,children:(0,H.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})})}md.displayName=`Group`;function hd(){let e=(0,V.useContext)(fd);return X(e,`Group Context not found; did you render a Panel or Separator outside of a Group?`),e}function gd(e,t){let{id:n}=hd(),r=(0,V.useRef)({collapse:Lu,expand:Lu,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:Lu});(0,V.useImperativeHandle)(t,()=>r.current,[]),cd(()=>{Object.assign(r.current,Cu({groupId:n,panelId:e}))})}function _d({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=sd(c),_=dd({disabled:a}),v=(0,V.useRef)(null),y=ud(v,o),{getPanelStyles:b,id:x,orientation:S,registerPanel:C,togglePanelDisabled:w}=hd(),T=d!==null,E=ld((e,t,n)=>{d?.(e,c,n)});cd(()=>{let e=v.current;if(e!==null)return C({element:e,id:g,idIsStable:h,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:T?E:void 0,panelConstraints:{groupResizeBehavior:s,collapsedSize:n,collapsible:r,defaultSize:i,disabled:_.disabled,maxSize:l,minSize:u}})},[s,n,r,i,T,g,h,l,u,E,C,_]),(0,V.useEffect)(()=>{w(g,!!a)},[a,g,w]),gd(g,f);let D=(0,V.useSyncExternalStore)(e=>tu(x,e),()=>JSON.stringify(b(x,g)),()=>JSON.stringify(b(x,g)));return(0,H.jsx)(`div`,{...m,"aria-disabled":a||void 0,"data-panel":!0,"data-testid":g,id:g,ref:y,style:{...vd,display:`flex`,flexBasis:0,flexShrink:1,overflow:`visible`,...JSON.parse(D)},children:(0,H.jsx)(`div`,{className:t,style:{maxHeight:`100%`,maxWidth:`100%`,flexGrow:1,overflow:`auto`,...p,touchAction:S===`horizontal`?`pan-y`:`pan-x`},children:e})})}_d.displayName=`Panel`;var vd={minHeight:0,maxHeight:`100%`,height:`auto`,minWidth:0,maxWidth:`100%`,width:`auto`,border:`none`,borderWidth:0,padding:0,margin:0};function yd({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=Su({layout:bu({delta:l-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n],i=Su({layout:bu({delta:c-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:a,valueNow:o}}function Q({children:e,className:t,disabled:n,elementRef:r,id:i,style:a,...o}){let s=sd(i),c=dd({disabled:n}),[l,u]=(0,V.useState)({}),[d,f]=(0,V.useState)(`inactive`),p=(0,V.useRef)(null),m=ud(p,r),{disableCursor:h,id:g,orientation:_,registerSeparator:v,toggleSeparatorDisabled:y}=hd(),b=_===`horizontal`?`vertical`:`horizontal`;cd(()=>{let e=p.current;if(e!==null){let t={disabled:c.disabled,element:e,id:s},n=v(t),r=Mu(e=>{f(e.next.state!==`inactive`&&e.next.hitRegions.some(e=>e.separator===t)?e.next.state:`inactive`)}),i=tu(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(yd({layout:r,panelConstraints:n,panelId:e.id,panelIndex:t}))}});return()=>{r(),i(),n()}}},[g,s,v,c]),(0,V.useEffect)(()=>{y(s,!!n)},[n,s,y]);let x;return n&&!h&&(x=`not-allowed`),(0,H.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})}Q.displayName=`Separator`;function bd(){let e=window.location.pathname.match(/^\/project\/([^/]+)(?:\/tab\/([^/]+))?/);return e?{projectName:e[1]?decodeURIComponent(e[1]):null,tabId:e[2]?decodeURIComponent(e[2]):null}:{projectName:null,tabId:null}}function xd(e,t){if(!e||e===`__global__`)return`/`;let n=`/project/${encodeURIComponent(e)}`;return t&&(n+=`/tab/${encodeURIComponent(t)}`),n}function Sd(){let e=I(e=>e.activeTabId),t=I(e=>e.currentProject),n=(0,V.useRef)(!1);(0,V.useEffect)(()=>{if(n.current){n.current=!1;return}let r=xd(t,e);window.location.pathname!==r&&window.history.pushState(null,``,r)},[e,t]),(0,V.useEffect)(()=>{function e(){let{tabId:e}=bd(),{tabs:t,setActiveTab:r}=I.getState();e&&t.some(t=>t.id===e)&&(n.current=!0,r(e))}return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[])}var Cd=`ppm-custom-order`;function wd(){try{let e=localStorage.getItem(Cd);return e?JSON.parse(e):null}catch{return null}}function Td(e){try{localStorage.setItem(Cd,JSON.stringify(e))}catch{}}function Ed(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 Dd=L((e,t)=>({projects:[],activeProject:null,customOrder:wd(),loading:!1,error:null,fetchProjects:async()=>{e({loading:!0,error:null});try{let t=await B.get(`/api/projects`);e({projects:t,loading:!1}),e(e=>{if(!e.activeProject&&t.length>0){let{projectName:n}=bd();if(n){let e=t.find(e=>e.name===n);if(e)return{activeProject:e}}return{activeProject:Ed(t,e.customOrder)[0]}}return{}})}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 B.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 B.patch(`/api/projects/${encodeURIComponent(e)}/color`,{color:n}),await t().fetchProjects()},moveProject:async(n,r)=>{let{projects:i,customOrder:a}=t(),o=Ed(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]],Td(l),await B.patch(`/api/projects/reorder`,{order:l}),e({customOrder:l})},reorderProjects:async t=>{Td(t),e({customOrder:t}),await B.patch(`/api/projects/reorder`,{order:t}).catch(()=>{})},renameProject:async(e,n)=>{await B.patch(`/api/projects/${encodeURIComponent(e)}`,{name:n}),await t().fetchProjects()},deleteProject:async t=>{await B.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&&Td(r),{projects:n,customOrder:r,activeProject:e.activeProject?.name===t?n[0]??null:e.activeProject}})}})),Od=`application/ppm-tab`,kd=!1,Ad=new Set;function jd(e){kd!==e&&(kd=e,Ad.forEach(e=>e()))}function Md(){return(0,V.useSyncExternalStore)(e=>(Ad.add(e),()=>Ad.delete(e)),()=>kd)}function $(){jd(!1)}function Nd(e){let[t,n]=(0,V.useState)(null),r=(0,V.useRef)(null);return{dropIndex:t,handleDragStart:(0,V.useCallback)((t,n)=>{let r={tabId:n,panelId:e};t.dataTransfer.setData(Od,JSON.stringify(r)),t.dataTransfer.effectAllowed=`move`,requestAnimationFrame(()=>jd(!0))},[e]),handleDragOver:(0,V.useCallback)((e,t,i)=>{if(!e.dataTransfer.types.includes(`application/ppm-tab`)||(e.preventDefault(),e.dataTransfer.dropEffect=`move`,r.current===t))return;r.current=t;let a=e.currentTarget.getBoundingClientRect(),o=a.left+a.width/2;n(e.clientX<o?i:i+1)},[]),handleDragOverBar:(0,V.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`)},[]),handleDrop:(0,V.useCallback)(i=>{i.preventDefault(),jd(!1);let a=i.dataTransfer.getData(Od);if(a){try{let n=JSON.parse(a),r=F.getState();n.panelId===e?t!==null&&r.reorderTab(n.tabId,e,t):r.moveTab(n.tabId,n.panelId,e,t??void 0)}catch{}n(null),r.current=null}},[e,t]),handleDragEnd:(0,V.useCallback)(()=>{jd(!1),n(null),r.current=null},[])}}var Pd=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),Fd=[{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`},...Array.from({length:9},(e,t)=>({id:`switch-project-${t+1}`,label:`Switch to Project ${t+1}`,category:`projects`,defaultKey:`Mod+${t+1}`}))],Id=new Map(Fd.map(e=>[e.id,e.defaultKey]));function Ld(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`:Pd?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 Rd(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 zd(e){return e.replace(/Mod/g,Pd?`⌘`:`Ctrl`).replace(/Shift/g,Pd?`⇧`:`Shift`).replace(/Alt/g,Pd?`⌥`:`Alt`).replace(/Meta|Cmd/g,`⌘`).replace(/Ctrl/g,Pd?`⌃`:`Ctrl`)}function Bd(e){if([`Control`,`Meta`,`Alt`,`Shift`].includes(e.key))return null;let t=[];e.ctrlKey&&!e.metaKey&&t.push(Pd?`Ctrl`:`Mod`),e.metaKey&&t.push(Pd?`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 Vd=L((e,t)=>({overrides:{},loaded:!1,getBinding:e=>t().overrides[e]??Id.get(e)??``,matchesEvent:(e,n)=>{let r=t().getBinding(n);return r?Rd(e,Ld(r)):!1},setBinding:(n,r)=>{e({overrides:{...t().overrides,[n]:r}}),B.put(`/api/settings/keybindings`,{[n]:r}).catch(()=>{})},resetBinding:n=>{let r={...t().overrides};delete r[n],e({overrides:r}),B.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&&B.put(`/api/settings/keybindings`,n).catch(()=>{})},loadFromServer:async()=>{try{e({overrides:await B.get(`/api/settings/keybindings`),loaded:!0})}catch{e({loaded:!0})}}}));function Hd(e){window.dispatchEvent(new CustomEvent(`open-command-palette`,{detail:e}))}function Ud(){let[e,t]=(0,V.useState)(!1),[n,r]=(0,V.useState)(``);return(0,V.useEffect)(()=>{let e=0,{matchesEvent:n}=Vd.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}=Vd.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(),R.getState().toggleSidebar();return}if(i(n,`next-tab`)||i(n,`prev-tab`)){n.preventDefault();let{tabs:e,activeTabId:t,setActiveTab:r}=I.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=Dd.getState().activeProject;I.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=R.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`settings`);return}if(i(n,`open-git-status`)){n.preventDefault();let e=R.getState();e.sidebarCollapsed&&e.toggleSidebar(),e.setSidebarActiveTab(`git`);return}for(let e=1;e<=9;e++)if(i(n,`switch-project-${e}`)){n.preventDefault();let t=Dd.getState().projects[e-1];t&&(Dd.getState().setActiveProject(t),I.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,V.useCallback)(()=>{t(!1),r(``)},[])}}function Wd(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 Gd(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 Kd(e){let t=Wd(e);return t?Gd(t.r,t.g,t.b)<.4:!1}function qd({tab:e,isActive:t,icon:n,showDropBefore:r,onSelect:i,onClose:a,onDragStart:o,onDragOver:s,onDragEnd:c,tabRef:l,onRename:u}){let[d,f]=(0,V.useState)(!1),[p,m]=(0,V.useState)(e.title),h=(0,V.useRef)(null);(0,V.useEffect)(()=>{d&&(m(e.title),setTimeout(()=>h.current?.select(),0))},[d]);let g=()=>{f(!1);let t=p.trim();t&&t!==e.title&&u&&u(t)},_=e.metadata?.connectionColor,v=_?{backgroundColor:t?_:`${_}33`,color:t&&Kd(_)?`#fff`:void 0}:void 0;return(0,H.jsxs)(`div`,{className:`relative flex items-center`,children:[r&&(0,H.jsx)(`div`,{className:`absolute left-0 top-1 bottom-1 w-0.5 bg-primary rounded-full z-10`}),(0,H.jsxs)(`button`,{ref:l,"data-tab-item":!0,draggable:!d,onClick:i,onAuxClick:t=>{t.button===1&&e.closable&&(t.preventDefault(),a())},onDragStart:o,onDragOver:s,onDragEnd:c,style:v,className:z(`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`,!v&&(t?`border-primary text-primary`:`border-transparent text-text-secondary hover:text-foreground`),v&&`border-transparent`),children:[(0,H.jsx)(n,{className:`size-4`}),d?(0,H.jsx)(`input`,{ref:h,value:p,onChange:e=>m(e.target.value),onBlur:g,onKeyDown:e=>{e.key===`Enter`&&g(),e.key===`Escape`&&f(!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,H.jsx)(`span`,{className:`max-w-[120px] truncate`,onDoubleClick:e=>{u&&(e.stopPropagation(),f(!0))},children:e.title}),e.closable&&!d&&(0,H.jsx)(`span`,{role:`button`,tabIndex:0,onClick:e=>{e.stopPropagation(),a()},onKeyDown:e=>{e.key===`Enter`&&(e.stopPropagation(),a())},className:`ml-1 opacity-0 group-hover:opacity-100 rounded-sm hover:bg-surface-elevated p-0.5 transition-opacity`,children:(0,H.jsx)(ht,{className:`size-3`})})]})]})}var Jd={terminal:dt,chat:Je,editor:Ae,database:Oe,sqlite:Oe,postgres:Oe,"git-graph":Re,"git-diff":je,settings:st};function Yd({panelId:e}){Dd(e=>e.activeProject);let t=(0,V.useRef)(new Map),n=(0,V.useRef)(null),r=(0,V.useRef)(0),i=F(t=>e?t.panels[e]:t.panels[t.focusedPanelId]),a=i?.tabs??[],o=i?.activeTabId??null,s=i?.id??F.getState().focusedPanelId,{dropIndex:c,handleDragStart:l,handleDragOver:u,handleDragOverBar:d,handleDrop:f,handleDragEnd:p}=Nd(s);(0,V.useEffect)(()=>{if(a.length>r.current&&o){let e=t.current.get(o);e&&e.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`nearest`})}r.current=a.length},[a.length,o]);let m=(0,V.useCallback)((e,t)=>{I.getState().updateTab(e.id,{title:t});let n=e.metadata?.projectName,r=e.metadata?.sessionId;n&&r&&B.patch(`${ce(n)}/chat/sessions/${r}`,{title:t}).catch(()=>{})},[]);function h(e){e.target.closest(`[data-tab-item]`)||Hd()}function g(e){e.target.closest(`[data-tab-item]`)||(e.preventDefault(),Hd())}return(0,H.jsx)(`div`,{className:`hidden md:flex items-center h-10 border-b border-border bg-background`,onDragOver:d,onDrop:f,onDoubleClick:h,onContextMenu:g,children:(0,H.jsx)(`div`,{ref:n,className:`flex-1 overflow-x-auto overflow-y-hidden min-w-0 scrollbar-none`,children:(0,H.jsxs)(`div`,{className:`flex items-center h-10`,children:[a.map((e,n)=>(0,H.jsx)(qd,{tab:e,isActive:e.id===o,icon:Jd[e.type],showDropBefore:c===n,onSelect:()=>F.getState().setActiveTab(e.id,s),onClose:()=>F.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=>m(e,t):void 0},e.id)),c!==null&&c>=a.length&&(0,H.jsx)(`div`,{className:`w-0.5 h-6 bg-primary rounded-full`}),(0,H.jsx)(`button`,{onClick:()=>Hd(),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,H.jsx)(it,{className:`size-4`})})]})})})}function Xd({panelId:e}){let[t,n]=(0,V.useState)(null),r=Md(),i=F(e=>e.grid),a=F(e=>e.isMobile()),o=re(i,e),s=!a&&i.length<3,c=o?!a&&(i[o.row]?.length??0)<ne(!1):!1,l=(0,V.useCallback)(e=>{let t=e.currentTarget.getBoundingClientRect(),n=(e.clientX-t.left)/t.width,r=(e.clientY-t.top)/t.height,i=.25;return n<i&&c?`left`:n>1-i&&c?`right`:r<i&&s?`top`:r>1-i&&s?`bottom`:`center`},[c,s]),u=(0,V.useCallback)(e=>{e.dataTransfer.types.includes(`application/ppm-tab`)&&(e.preventDefault(),e.stopPropagation(),n(l(e)))},[l]),d=(0,V.useCallback)(e=>{e.currentTarget.contains(e.relatedTarget)||n(null)},[]),f=(0,V.useCallback)(t=>{t.preventDefault(),t.stopPropagation();let r=l(t);if(n(null),$(),!r)return;let i=t.dataTransfer.getData(Od);if(i)try{let t=JSON.parse(i),n=F.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,H.jsxs)(`div`,{className:`absolute inset-0 z-20`,onDragOver:u,onDragLeave:d,onDrop:f,children:[t===`left`&&(0,H.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,H.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,H.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,H.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,H.jsx)(`div`,{className:`absolute inset-0 bg-primary/5 border-2 border-dashed border-primary/30 rounded-md`})]}):null}var Zd=`modulepreload`,Qd=function(e){return`/`+e},$d={},ef=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=Qd(t,n),t in $d)return;$d[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`:Zd,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)})},tf=[{type:`terminal`,label:`Terminal`,icon:dt},{type:`chat`,label:`AI Chat`,icon:Je},{type:`git-graph`,label:`Git Graph`,icon:Re}],nf={terminal:(0,V.lazy)(()=>ef(()=>import(`./terminal-tab-_farMLMO.js`).then(e=>({default:e.TerminalTab})),__vite__mapDeps([0,1,2,3,4,5,6]))),chat:(0,V.lazy)(()=>ef(()=>import(`./chat-tab-dwpaSkQD.js`).then(e=>({default:e.ChatTab})),__vite__mapDeps([7,1,8,2,3,9,5,10,11,4]))),editor:(0,V.lazy)(()=>ef(()=>import(`./code-editor-ZFl5kZ4-.js`).then(e=>({default:e.CodeEditor})),__vite__mapDeps([12,1,13,4,5,2,3,9,10,11]))),database:(0,V.lazy)(()=>ef(()=>import(`./database-viewer-DPpOsMqa.js`).then(e=>({default:e.DatabaseViewer})),__vite__mapDeps([14,1,15,3,11]))),sqlite:(0,V.lazy)(()=>ef(()=>import(`./sqlite-viewer-Cx7tLyT-.js`).then(e=>({default:e.SqliteViewer})),__vite__mapDeps([16,1,15,3,17,11]))),postgres:(0,V.lazy)(()=>ef(()=>import(`./postgres-viewer-DaNYnInA.js`).then(e=>({default:e.PostgresViewer})),__vite__mapDeps([18,1,15,3,17,11]))),"git-graph":(0,V.lazy)(()=>ef(()=>import(`./git-graph-Dju1rygf.js`).then(e=>({default:e.GitGraph})),__vite__mapDeps([19,1,8,2,3,9,5,11]))),"git-diff":(0,V.lazy)(()=>ef(()=>import(`./diff-viewer-CX74l6lV.js`).then(e=>({default:e.DiffViewer})),__vite__mapDeps([20,1,13,4,5,3,11]))),settings:(0,V.lazy)(()=>ef(()=>import(`./settings-tab-DD05d8rM.js`).then(e=>({default:e.SettingsTab})),__vite__mapDeps([21,1,8,2,3,11,4,5])))};function rf({panelId:e,projectName:t}){let n=F(t=>t.panels[e]),r=F(t=>t.focusedPanelId===e),i=F(e=>(e.currentProject===t?e.grid:e.projectGrids[t]??[[]]).flat().length);return n?(0,H.jsxs)(`div`,{className:z(`flex flex-col h-full overflow-hidden`,i>1&&`border border-transparent`,i>1&&r&&`border-primary/30`),onMouseDown:()=>{F.getState().focusedPanelId!==e&&F.getState().setFocusedPanel(e)},children:[(0,H.jsx)(Yd,{panelId:e}),(0,H.jsxs)(`div`,{className:`flex-1 overflow-hidden relative`,children:[n.tabs.length===0?(0,H.jsx)(af,{panelId:e}):n.tabs.map(e=>{let t=nf[e.type];return(0,H.jsx)(`div`,{className:e.id===n.activeTabId?`h-full w-full`:`hidden`,children:(0,H.jsx)(V.Suspense,{fallback:(0,H.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,H.jsx)(Ge,{className:`size-6 animate-spin text-primary`})}),children:(0,H.jsx)(t,{metadata:e.metadata,tabId:e.id})})},e.id)}),(0,H.jsx)(Xd,{panelId:e})]})]}):null}function af({panelId:e}){let t=Dd(e=>e.activeProject);function n(n){let r=n!==`settings`&&t?{projectName:t.name}:void 0;F.getState().openTab({type:n,title:tf.find(e=>e.type===n)?.label??n,metadata:r,projectId:t?.name??null,closable:!0},e)}return(0,H.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-4 text-text-secondary`,children:[(0,H.jsx)(`p`,{className:`text-sm`,children:`Open a tab to get started`}),(0,H.jsx)(`div`,{className:`flex flex-col md:flex-row flex-wrap justify-center gap-2`,children:tf.map(e=>{let t=e.icon;return(0,H.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,H.jsx)(t,{className:`size-4`}),e.label]},e.type)})})]})}function of({projectName:e}){let t=F(t=>t.currentProject===e?t.grid:t.projectGrids[e]??[[]]);return t.flat().length<=1&&t[0]?.[0]?(0,H.jsx)(rf,{panelId:t[0][0],projectName:e}):(0,H.jsx)(md,{orientation:`vertical`,style:{height:`100%`},children:t.map((n,r)=>(0,H.jsx)(sf,{row:n,rowIdx:r,totalRows:t.length,projectName:e},`row-${r}`))})}function sf({row:e,rowIdx:t,totalRows:n,projectName:r}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(_d,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:e.length===1?(0,H.jsx)(rf,{panelId:e[0],projectName:r}):(0,H.jsx)(md,{orientation:`horizontal`,children:e.map((t,n)=>(0,H.jsx)(cf,{panelId:t,colIdx:n,totalCols:e.length,projectName:r},t))})}),t<n-1&&(0,H.jsx)(lf,{orientation:`horizontal`})]})}function cf({panelId:e,colIdx:t,totalCols:n,projectName:r}){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(_d,{minSize:`15%`,defaultSize:`${Math.round(100/n)}%`,children:(0,H.jsx)(rf,{panelId:e,projectName:r})}),t<n-1&&(0,H.jsx)(lf,{orientation:`vertical`})]})}function lf({orientation:e}){let t=e===`vertical`;return(0,H.jsx)(Q,{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
18
18
  transition-colors duration-150
19
19
  `,children:(0,H.jsx)(`div`,{className:`absolute opacity-0 group-hover/handle:opacity-70 transition-opacity text-foreground/50`,children:t?(0,H.jsx)(Ve,{className:`size-3`}):(0,H.jsx)(Be,{className:`size-3`})})})}var uf=L((e,t)=>({tree:[],loading:!1,error:null,expandedPaths:new Set,selectedFiles:[],fetchTree:async t=>{e({loading:!0,error:null});try{e({tree:await B.get(`${ce(t)}/files/tree?depth=3`),loading:!1})}catch(t){e({error:t instanceof Error?t.message:`Failed to load files`,loading:!1})}},toggleExpand:n=>{let r=new Set(t().expandedPaths);r.has(n)?r.delete(n):r.add(n),e({expandedPaths:r})},setExpanded:(n,r)=>{let i=new Set(t().expandedPaths);r?i.add(n):i.delete(n),e({expandedPaths:i})},toggleFileSelect:n=>{let r=t().selectedFiles;r.indexOf(n)>=0?e({selectedFiles:r.filter(e=>e!==n)}):e({selectedFiles:r.length>=2?[r[1],n]:[...r,n]})},clearSelection:()=>e({selectedFiles:[]}),reset:()=>e({tree:[],expandedPaths:new Set,error:null,selectedFiles:[]})}));function df({className:e,children:t,...n}){return(0,H.jsxs)(us,{"data-slot":`scroll-area`,className:z(`relative`,e),...n,children:[(0,H.jsx)(ds,{"data-slot":`scroll-area-viewport`,className:`size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 [&>div]:!block`,children:t}),(0,H.jsx)(ff,{}),(0,H.jsx)(fs,{})]})}function ff({className:e,orientation:t=`vertical`,...n}){return(0,H.jsx)(Ro,{"data-slot":`scroll-area-scrollbar`,orientation:t,className:z(`flex touch-none p-px transition-colors select-none`,t===`vertical`&&`h-full w-1.5 border-l border-l-transparent`,t===`horizontal`&&`h-1.5 flex-col border-t border-t-transparent`,e),...n,children:(0,H.jsx)(Yo,{"data-slot":`scroll-area-thumb`,className:`relative flex-1 rounded-full bg-border`})})}function pf({...e}){return(0,H.jsx)(Pa,{"data-slot":`context-menu`,...e})}function mf({...e}){return(0,H.jsx)(Fa,{"data-slot":`context-menu-trigger`,...e})}function hf({className:e,...t}){return(0,H.jsx)(Ia,{children:(0,H.jsx)(La,{"data-slot":`context-menu-content`,className:z(`z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,e),...t})})}function gf({className:e,inset:t,variant:n=`default`,...r}){return(0,H.jsx)(Ra,{"data-slot":`context-menu-item`,"data-inset":t,"data-variant":n,className:z(`relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!`,e),...r})}function _f({className:e,...t}){return(0,H.jsx)(za,{"data-slot":`context-menu-separator`,className:z(`-mx-1 my-1 h-px bg-border`,e),...t})}var vf=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,yf=ae,bf=((e,t)=>n=>{if(t?.variants==null)return yf(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=vf(t)||vf(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return yf(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)})(`inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40`,outline:`border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-9 px-4 py-2 has-[>svg]:px-3`,xs:`h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3`,sm:`h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5`,lg:`h-10 rounded-md px-6 has-[>svg]:px-4`,icon:`size-9`,"icon-xs":`size-6 rounded-md [&_svg:not([class*='size-'])]:size-3`,"icon-sm":`size-8`,"icon-lg":`size-10`}},defaultVariants:{variant:`default`,size:`default`}});function xf({className:e,variant:t=`default`,size:n=`default`,asChild:r=!1,...i}){return(0,H.jsx)(r?l:`button`,{"data-slot":`button`,"data-variant":t,"data-size":n,className:z(bf({variant:t,size:n,className:e})),...i})}function Sf({...e}){return(0,H.jsx)(Bn,{"data-slot":`dialog`,...e})}function Cf({...e}){return(0,H.jsx)(Vn,{"data-slot":`dialog-portal`,...e})}function wf({className:e,...t}){return(0,H.jsx)(Hn,{"data-slot":`dialog-overlay`,className:z(`fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0`,e),...t})}function Tf({className:e,children:t,showCloseButton:n=!0,...r}){return(0,H.jsxs)(Cf,{"data-slot":`dialog-portal`,children:[(0,H.jsx)(wf,{}),(0,H.jsxs)(Un,{"data-slot":`dialog-content`,className:z(`fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background text-foreground p-6 shadow-lg duration-200 outline-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg`,e),...r,children:[t,n&&(0,H.jsxs)(Kn,{"data-slot":`dialog-close`,className:`absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,children:[(0,H.jsx)(ht,{}),(0,H.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function Ef({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`dialog-header`,className:z(`flex flex-col gap-2 text-center sm:text-left`,e),...t})}function Df({className:e,showCloseButton:t=!1,children:n,...r}){return(0,H.jsxs)(`div`,{"data-slot":`dialog-footer`,className:z(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...r,children:[n,t&&(0,H.jsx)(Kn,{asChild:!0,children:(0,H.jsx)(xf,{variant:`outline`,children:`Close`})})]})}function Of({className:e,...t}){return(0,H.jsx)(Wn,{"data-slot":`dialog-title`,className:z(`text-lg leading-none font-semibold`,e),...t})}function kf({className:e,...t}){return(0,H.jsx)(Gn,{"data-slot":`dialog-description`,className:z(`text-sm text-muted-foreground`,e),...t})}function Af({action:e,node:t,projectName:n,onClose:r,onRefresh:i}){let[a,o]=(0,V.useState)(``),[s,c]=(0,V.useState)(!1),[l,u]=(0,V.useState)(null),d=(0,V.useRef)(null);(0,V.useEffect)(()=>{o(e===`rename`?t.name:``)},[e,t.name]),(0,V.useEffect)(()=>{let e=setTimeout(()=>d.current?.focus(),100);return()=>clearTimeout(e)},[]);async function f(e){if(a.trim()){c(!0),u(null);try{let o=t.type===`directory`?t.path:t.path.split(`/`).slice(0,-1).join(`/`),s=o?`${o}/${a.trim()}`:a.trim();await B.post(`${ce(n)}/files/create`,{path:s,type:e}),i(),r()}catch(e){u(e instanceof Error?e.message:`Failed to create`)}finally{c(!1)}}}async function p(){if(!a.trim()||a.trim()===t.name){r();return}c(!0),u(null);try{let e=t.path.split(`/`).slice(0,-1).join(`/`),o=e?`${e}/${a.trim()}`:a.trim();await B.post(`${ce(n)}/files/rename`,{oldPath:t.path,newPath:o}),i(),r()}catch(e){u(e instanceof Error?e.message:`Failed to rename`)}finally{c(!1)}}async function m(){c(!0),u(null);try{await B.del(`${ce(n)}/files/delete`,{path:t.path}),i(),r()}catch(e){u(e instanceof Error?e.message:`Failed to delete`)}finally{c(!1)}}function h(t){t.key===`Enter`&&(e===`new-file`?f(`file`):e===`new-folder`?f(`directory`):e===`rename`&&p()),t.key===`Escape`&&r()}if(e===`delete`)return(0,H.jsx)(Sf,{open:!0,onOpenChange:e=>!e&&r(),children:(0,H.jsxs)(Tf,{children:[(0,H.jsxs)(Ef,{children:[(0,H.jsxs)(Of,{children:[`Delete `,t.type===`directory`?`Folder`:`File`]}),(0,H.jsxs)(kf,{children:[`Are you sure you want to delete`,` `,(0,H.jsx)(`span`,{className:`font-mono font-semibold`,children:t.name}),`?`,t.type===`directory`&&` This will delete all contents.`]})]}),l&&(0,H.jsx)(`p`,{className:`text-sm text-error`,children:l}),(0,H.jsxs)(Df,{children:[(0,H.jsx)(xf,{variant:`outline`,onClick:r,disabled:s,children:`Cancel`}),(0,H.jsx)(xf,{variant:`destructive`,onClick:m,disabled:s,children:s?`Deleting...`:`Delete`})]})]})});let g=e===`new-file`?`New File`:e===`new-folder`?`New Folder`:`Rename`,_=e===`rename`?t.name:e===`new-file`?`filename.ts`:`folder-name`;return(0,H.jsx)(Sf,{open:!0,onOpenChange:e=>!e&&r(),children:(0,H.jsxs)(Tf,{children:[(0,H.jsxs)(Ef,{children:[(0,H.jsx)(Of,{children:g}),(0,H.jsx)(kf,{children:e===`rename`?`Rename "${t.name}" to:`:`Create in ${t.type===`directory`?t.path||`/`:t.path.split(`/`).slice(0,-1).join(`/`)||`/`}`})]}),(0,H.jsx)(O,{ref:d,value:a,onChange:e=>o(e.target.value),onKeyDown:h,placeholder:_,disabled:s}),l&&(0,H.jsx)(`p`,{className:`text-sm text-error`,children:l}),(0,H.jsxs)(Df,{children:[(0,H.jsx)(xf,{variant:`outline`,onClick:r,disabled:s,children:`Cancel`}),(0,H.jsx)(xf,{onClick:()=>{e===`new-file`?f(`file`):e===`new-folder`?f(`directory`):p()},disabled:s||!a.trim(),children:s?`Saving...`:e===`rename`?`Rename`:`Create`})]})]})})}var jf={ts:Ae,tsx:Ae,js:Ae,jsx:Ae,py:Ae,rs:Ae,go:Ae,json:ke,md:Me,txt:Me,yaml:Ne,yml:Ne,html:Ae,css:Ae,scss:Ae};function Mf(e){return jf[e.split(`.`).pop()?.toLowerCase()??``]??Pe}function Nf({node:e,depth:t,projectName:n,onAction:r,onFileOpen:i}){let{expandedPaths:a,toggleExpand:o,selectedFiles:s,toggleFileSelect:c}=uf(),l=I(e=>e.openTab),u=a.has(e.path),d=e.type===`directory`,f=s.includes(e.path);function p(t){if(d){o(e.path);return}if(t.metaKey||t.ctrlKey){c(e.path);return}let r=e.name.split(`.`).pop()?.toLowerCase()??``;l({type:r===`db`||r===`sqlite`||r===`sqlite3`?`sqlite`:`editor`,title:e.name,metadata:{filePath:e.path,projectName:n},projectId:n,closable:!0}),i?.()}let m=d?u?Fe:Le:Mf(e.name),h=e.children?[...e.children].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1):[];return(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(pf,{children:[(0,H.jsx)(mf,{asChild:!0,children:(0,H.jsxs)(`button`,{onClick:p,className:z(`flex items-center w-full gap-1.5 px-2 py-1 rounded-sm text-sm`,`min-h-[32px] hover:bg-surface-elevated transition-colors text-left`,`select-none`,f&&`bg-primary/15 ring-1 ring-primary/40`),style:{paddingLeft:`${t*16+8}px`},children:[d?u?(0,H.jsx)(Se,{className:`size-3.5 shrink-0 text-text-subtle`}):(0,H.jsx)(Ce,{className:`size-3.5 shrink-0 text-text-subtle`}):(0,H.jsx)(`span`,{className:`w-3.5 shrink-0`}),(0,H.jsx)(m,{className:z(`size-4 shrink-0`,d?`text-primary`:`text-text-secondary`)}),(0,H.jsx)(`span`,{className:`truncate`,children:e.name})]})}),(0,H.jsxs)(hf,{children:[d&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(gf,{onClick:()=>r(`new-file`,e),children:`New File`}),(0,H.jsx)(gf,{onClick:()=>r(`new-folder`,e),children:`New Folder`}),(0,H.jsx)(_f,{})]}),(0,H.jsx)(gf,{onClick:()=>r(`rename`,e),children:`Rename`}),(0,H.jsx)(gf,{variant:`destructive`,onClick:()=>r(`delete`,e),children:`Delete`}),(0,H.jsx)(_f,{}),(0,H.jsx)(gf,{onClick:()=>r(`copy-path`,e),children:`Copy Path`}),!d&&s.length===2&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(_f,{}),(0,H.jsx)(gf,{onClick:()=>r(`compare-selected`,e),children:`Compare Selected`})]})]})]}),d&&u&&h.map(e=>(0,H.jsx)(Nf,{node:e,depth:t+1,projectName:n,onAction:r,onFileOpen:i},e.path))]})}function Pf({onFileOpen:e}={}){let{tree:t,loading:n,error:r,fetchTree:i,reset:a,selectedFiles:o,clearSelection:s}=uf(),c=Dd(e=>e.activeProject),l=I(e=>e.openTab),[u,d]=(0,V.useState)(null),f=(0,V.useCallback)(()=>{c&&i(c.name)},[c,i]);(0,V.useEffect)(()=>{c&&(a(),f())},[c?.name]),(0,V.useEffect)(()=>{let e=()=>{c&&i(c.name)};return window.addEventListener(`focus`,e),()=>window.removeEventListener(`focus`,e)},[c,i]);function p(e,t){if(e===`copy-path`){navigator.clipboard.writeText(t.path).catch(()=>{});return}if(e===`compare-selected`&&o.length===2){let e=o[0],t=o[1];l({type:`git-diff`,title:`Compare ${oe(e)} vs ${oe(t)}`,closable:!0,metadata:{projectName:c.name,file1:e,file2:t},projectId:c.name}),s();return}d({action:e,node:t})}if(!c)return(0,H.jsx)(`div`,{className:`p-3 text-xs text-text-subtle`,children:`Select a project to browse files.`});if(n&&t.length===0)return(0,H.jsxs)(`div`,{className:`flex items-center gap-2 p-3 text-xs text-text-secondary`,children:[(0,H.jsx)(Ge,{className:`size-3 animate-spin`}),`Loading files...`]});if(r)return(0,H.jsxs)(`div`,{className:`p-3 text-xs text-error`,children:[r,(0,H.jsx)(`button`,{onClick:f,className:`block mt-1 text-primary underline`,children:`Retry`})]});let m=[...t].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(df,{className:`flex-1`,children:(0,H.jsxs)(`div`,{className:`py-1`,children:[m.map(t=>(0,H.jsx)(Nf,{node:t,depth:0,projectName:c.name,onAction:p,onFileOpen:e},t.path)),m.length===0&&(0,H.jsx)(`p`,{className:`p-3 text-xs text-text-subtle`,children:`Empty project.`})]})}),u&&(0,H.jsx)(Af,{action:u.action,node:u.node,projectName:c.name,onClose:()=>d(null),onRefresh:f})]})}function Ff({...e}){return(0,H.jsx)(bo,{"data-slot":`dropdown-menu`,...e})}function If({...e}){return(0,H.jsx)(xo,{"data-slot":`dropdown-menu-trigger`,...e})}function Lf({className:e,sideOffset:t=4,...n}){return(0,H.jsx)(So,{children:(0,H.jsx)(Co,{"data-slot":`dropdown-menu-content`,sideOffset:t,className:z(`z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,e),...n})})}function Rf({className:e,inset:t,variant:n=`default`,...r}){return(0,H.jsx)(wo,{"data-slot":`dropdown-menu-item`,"data-inset":t,"data-variant":n,className:z(`relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!`,e),...r})}var zf={M:`text-yellow-500`,A:`text-green-500`,D:`text-red-500`,R:`text-blue-500`,C:`text-purple-500`,"?":`text-gray-400`};function Bf(e){let t=[];for(let n of e){let e=n.path.split(`/`),r=t;for(let t=0;t<e.length;t++){let i=e[t],a=e.slice(0,t+1).join(`/`),o=t===e.length-1,s=r.find(e=>e.name===i);s||(s={name:i,fullPath:a,file:o?n:void 0,children:[]},r.push(s)),o&&(s.file=n),r=s.children}}return t}function Vf(e){let t=[];e.file&&t.push(e.file);for(let n of e.children)t.push(...Vf(n));return t}function Hf({metadata:e,tabId:t,onNavigate:n}){let r=e?.projectName,[i,a]=(0,V.useState)(null),[o,s]=(0,V.useState)(!0),[c,l]=(0,V.useState)(null),[u,d]=(0,V.useState)(``),[f,p]=(0,V.useState)(!1),[m,h]=(0,V.useState)(null),{openTab:g}=I(),_=R(e=>e.gitStatusViewMode),v=R(e=>e.setGitStatusViewMode),y=(0,V.useCallback)(async()=>{if(r)try{s(!0),a(await B.get(`${ce(r)}/git/status`)),l(null)}catch(e){l(e instanceof Error?e.message:`Failed to fetch status`)}finally{s(!1)}},[r]);(0,V.useEffect)(()=>{y();let e=setInterval(y,5e3);return()=>clearInterval(e)},[y]);let b=async e=>{if(r){p(!0);try{await B.post(`${ce(r)}/git/stage`,{files:e}),await y()}catch(e){l(e instanceof Error?e.message:`Stage failed`)}finally{p(!1)}}},x=async e=>{if(r){p(!0);try{await B.post(`${ce(r)}/git/unstage`,{files:e}),await y()}catch(e){l(e instanceof Error?e.message:`Unstage failed`)}finally{p(!1)}}},S=async e=>{if(r){p(!0);try{await B.post(`${ce(r)}/git/discard`,{files:e}),await y()}catch(e){l(e instanceof Error?e.message:`Discard failed`)}finally{p(!1)}}},C=async()=>{m&&(await S(m.files),h(null))},w=async()=>{if(!(!r||!u.trim()||!i?.staged.length)){p(!0);try{await B.post(`${ce(r)}/git/commit`,{message:u.trim()}),d(``),await y()}catch(e){l(e instanceof Error?e.message:`Commit failed`)}finally{p(!1)}}},T=async()=>{if(r){p(!0);try{await B.post(`${ce(r)}/git/push`,{}),await y()}catch(e){l(e instanceof Error?e.message:`Push failed`)}finally{p(!1)}}},E=async()=>{if(r){p(!0);try{await B.post(`${ce(r)}/git/pull`,{}),await y()}catch(e){l(e instanceof Error?e.message:`Pull failed`)}finally{p(!1)}}},D=e=>{g({type:`git-diff`,title:oe(e.path),closable:!0,metadata:{projectName:r,filePath:e.path},projectId:r??null}),n?.()},O=e=>{g({type:`editor`,title:oe(e.path),closable:!0,metadata:{projectName:r,filePath:e.path},projectId:r??null}),n?.()},k=(0,V.useMemo)(()=>[...i?.unstaged??[],...i?.untracked.map(e=>({path:e,status:`?`}))??[]],[i]);return r?o&&!i?(0,H.jsxs)(`div`,{className:`flex items-center justify-center h-full gap-2 text-muted-foreground`,children:[(0,H.jsx)(Ge,{className:`size-5 animate-spin`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading git status...`})]}):c&&!i?(0,H.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-2 text-destructive text-sm`,children:[(0,H.jsx)(`p`,{children:c}),(0,H.jsx)(xf,{variant:`outline`,size:`sm`,onClick:y,children:`Retry`})]}):(0,H.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b shrink-0`,children:[(0,H.jsx)(`span`,{className:`text-sm font-medium`,children:i?.current?`On: ${i.current}`:`Git Status`}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,H.jsx)(xf,{variant:_===`flat`?`secondary`:`ghost`,size:`icon-xs`,onClick:()=>v(`flat`),title:`Flat view`,children:(0,H.jsx)(We,{className:`size-3.5`})}),(0,H.jsx)(xf,{variant:_===`tree`?`secondary`:`ghost`,size:`icon-xs`,onClick:()=>v(`tree`),title:`Tree view`,children:(0,H.jsx)(Ie,{className:`size-3.5`})}),(0,H.jsx)(xf,{variant:`ghost`,size:`icon-xs`,onClick:y,disabled:f,children:(0,H.jsx)(at,{className:o?`animate-spin`:``})})]})]}),c&&(0,H.jsx)(`div`,{className:`px-3 py-1.5 text-xs text-destructive bg-destructive/10 shrink-0`,children:c}),(0,H.jsx)(df,{className:`flex-1 overflow-hidden`,children:(0,H.jsxs)(`div`,{className:`p-1.5 space-y-2 overflow-hidden`,children:[(0,H.jsx)(Wf,{title:`Staged Changes`,count:i?.staged.length??0,files:i?.staged??[],viewMode:_,actionIcon:(0,H.jsx)(Ye,{className:`size-3`}),actionAllIcon:(0,H.jsx)(Ye,{className:`size-3`}),actionTitle:`Unstage`,onAction:e=>x([e.path]),onActionAll:i?.staged.length?()=>x(i.staged.map(e=>e.path)):void 0,actionAllLabel:`Unstage All`,onFolderAction:e=>x(e.map(e=>e.path)),onClickFile:D,onOpenFile:O,disabled:f}),(0,H.jsx)(Wf,{title:`Changes`,count:k.length,files:k,viewMode:_,actionIcon:(0,H.jsx)(it,{className:`size-3`}),actionAllIcon:(0,H.jsx)(it,{className:`size-3`}),actionTitle:`Stage`,onAction:e=>b([e.path]),onActionAll:k.length?()=>b(k.map(e=>e.path)):void 0,actionAllLabel:`Stage All`,onFolderAction:e=>b(e.map(e=>e.path)),onClickFile:D,onOpenFile:O,disabled:f,showRevert:!0,onRevert:e=>h({label:e.path,files:[e.path]}),onFolderRevert:(e,t)=>h({label:`${t}/ (${e.length} files)`,files:e.map(e=>e.path)})})]})}),(0,H.jsxs)(`div`,{className:`border-t p-2 space-y-2 shrink-0`,children:[(0,H.jsx)(`textarea`,{className:`w-full h-16 px-3 py-2 text-base md:text-sm text-foreground bg-surface border border-border rounded-lg resize-none focus:outline-none focus:border-ring placeholder:text-muted-foreground`,placeholder:`Commit message...`,value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&w()}}),(0,H.jsx)(xf,{size:`sm`,className:`w-full`,disabled:f||!u.trim()||!i?.staged.length,onClick:w,children:f?(0,H.jsx)(Ge,{className:`size-3 animate-spin`}):`Commit (${i?.staged.length??0})`}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsxs)(xf,{variant:`outline`,size:`sm`,className:`flex-1`,disabled:f,onClick:T,children:[(0,H.jsx)(_e,{className:`size-3`}),`Push`]}),(0,H.jsxs)(xf,{variant:`outline`,size:`sm`,className:`flex-1`,disabled:f,onClick:E,children:[(0,H.jsx)(me,{className:`size-3`}),`Pull`]})]})]}),(0,H.jsx)(Sf,{open:!!m,onOpenChange:e=>!e&&h(null),children:(0,H.jsxs)(Tf,{showCloseButton:!1,children:[(0,H.jsxs)(Ef,{children:[(0,H.jsx)(Of,{children:`Discard Changes`}),(0,H.jsxs)(kf,{children:[`Are you sure you want to discard all changes to`,` `,(0,H.jsx)(`code`,{className:`px-1 py-0.5 rounded bg-muted text-sm font-mono`,children:m?.label}),`? This action cannot be undone.`]})]}),(0,H.jsxs)(Df,{children:[(0,H.jsx)(xf,{variant:`outline`,onClick:()=>h(null),children:`Cancel`}),(0,H.jsx)(xf,{variant:`destructive`,onClick:C,disabled:f,children:f?(0,H.jsx)(Ge,{className:`size-3 animate-spin`}):`Discard`})]})]})})]}):(0,H.jsx)(`div`,{className:`flex items-center justify-center h-full text-muted-foreground text-sm`,children:`No project selected.`})}function Uf({showRevert:e,onRevert:t,onAction:n,onOpenFile:r,actionIcon:i,actionTitle:a,disabled:o}){return(0,H.jsxs)(`div`,{className:`hidden md:flex absolute right-0 top-0 bottom-0 items-center gap-0.5 pl-6 pr-1 bg-gradient-to-l from-background from-70% to-transparent opacity-0 group-hover:opacity-100 transition-opacity`,children:[r&&(0,H.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-primary active:scale-95 transition-colors`,onClick:e=>{e.stopPropagation(),r()},disabled:o,title:`Open file`,children:(0,H.jsx)(Me,{className:`size-3`})}),e&&t&&(0,H.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-destructive active:scale-95 transition-colors`,onClick:e=>{e.stopPropagation(),t()},disabled:o,title:`Discard changes`,children:(0,H.jsx)(mt,{className:`size-3`})}),(0,H.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-accent-foreground active:scale-95 transition-colors`,onClick:e=>{e.stopPropagation(),n()},disabled:o,title:a,children:i})]})}function Wf({title:e,count:t,files:n,viewMode:r,actionIcon:i,actionAllIcon:a,actionTitle:o,onAction:s,onActionAll:c,actionAllLabel:l,onFolderAction:u,onClickFile:d,onOpenFile:f,disabled:p,showRevert:m,onRevert:h,onFolderRevert:g}){return(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between mb-0.5`,children:[(0,H.jsxs)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase`,children:[e,` (`,t,`)`]}),c&&t>0&&(0,H.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-accent-foreground active:scale-95 transition-colors`,onClick:c,disabled:p,title:l,children:a})]}),n.length===0?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground px-1`,children:`No changes`}):r===`flat`?(0,H.jsx)(`div`,{className:`w-full overflow-hidden`,children:n.map(e=>(0,H.jsx)(Gf,{file:e,actionIcon:i,actionTitle:o,onAction:s,onClickFile:d,onOpenFile:f,disabled:p,showRevert:m,onRevert:h},e.path))}):(0,H.jsx)(Kf,{files:n,actionIcon:i,actionTitle:o,onAction:s,onFolderAction:u,onClickFile:d,onOpenFile:f,disabled:p,showRevert:m,onRevert:h,onFolderRevert:g})]})}function Gf({file:e,actionIcon:t,actionTitle:n,onAction:r,onClickFile:i,onOpenFile:a,disabled:o,showRevert:s,onRevert:c,displayName:l}){let u=(0,H.jsxs)(`div`,{className:`group relative flex items-center gap-1 hover:bg-muted/50 rounded pl-1 py-px w-full min-w-0`,children:[(0,H.jsx)(`span`,{className:`text-xs font-mono w-4 text-center shrink-0 ${zf[e.status]??``}`,children:e.status}),(0,H.jsx)(`button`,{type:`button`,className:`hidden md:block flex-1 text-left text-xs font-mono truncate hover:underline min-w-0`,onClick:()=>i(e),title:e.path,children:l??e.path}),(0,H.jsx)(`span`,{className:`md:hidden flex-1 text-left text-xs font-mono truncate min-w-0`,children:l??e.path}),(0,H.jsx)(Uf,{showRevert:s,onRevert:c?()=>c(e):void 0,onOpenFile:a?()=>a(e):void 0,onAction:()=>r(e),actionIcon:t,actionTitle:n,disabled:o})]});return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`hidden md:block`,children:u}),(0,H.jsx)(`div`,{className:`md:hidden`,children:(0,H.jsxs)(Ff,{children:[(0,H.jsx)(If,{asChild:!0,children:u}),(0,H.jsxs)(Lf,{align:`start`,className:`min-w-40`,children:[(0,H.jsx)(Rf,{onClick:()=>i(e),children:`View Diff`}),a&&(0,H.jsx)(Rf,{onClick:()=>a(e),children:`Open File`}),(0,H.jsx)(Rf,{onClick:()=>r(e),disabled:o,children:n}),s&&c&&(0,H.jsx)(Rf,{className:`text-destructive focus:text-destructive`,onClick:()=>c(e),disabled:o,children:`Discard Changes`})]})]})})]})}function Kf({files:e,actionIcon:t,actionTitle:n,onAction:r,onFolderAction:i,onClickFile:a,onOpenFile:o,disabled:s,showRevert:c,onRevert:l,onFolderRevert:u}){let d=(0,V.useMemo)(()=>Bf(e),[e]);return(0,H.jsx)(`div`,{children:d.map((e,f)=>(0,H.jsx)(qf,{node:e,depth:0,isLast:f===d.length-1,actionIcon:t,actionTitle:n,onAction:r,onFolderAction:i,onClickFile:a,onOpenFile:o,disabled:s,showRevert:c,onRevert:l,onFolderRevert:u},e.fullPath))})}function qf({node:e,depth:t,isLast:n,actionIcon:r,actionTitle:i,onAction:a,onFolderAction:o,onClickFile:s,onOpenFile:c,disabled:l,showRevert:u,onRevert:d,onFolderRevert:f}){let[p,m]=(0,V.useState)(!0),h=e.children.length>0&&!e.file,g=t*12-6,_=`absolute border-dashed border-border`;if(e.file)return(0,H.jsxs)(`div`,{className:`relative`,style:{paddingLeft:t*12},children:[t>0&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`${_} border-l`,style:{left:g,top:0,bottom:n?`50%`:0}}),(0,H.jsx)(`div`,{className:`${_} border-t`,style:{left:g,top:`50%`,width:6}})]}),(0,H.jsx)(Gf,{file:e.file,displayName:e.name,actionIcon:r,actionTitle:i,onAction:a,onClickFile:s,onOpenFile:c,disabled:l,showRevert:u,onRevert:d})]});if(h){let h=Vf(e);return(0,H.jsxs)(`div`,{className:`relative`,children:[t>0&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`${_} border-l`,style:{left:g,top:0,...n?{height:13}:{bottom:0}}}),(0,H.jsx)(`div`,{className:`${_} border-t`,style:{left:g,top:13,width:8}})]}),(()=>{let n=(0,H.jsxs)(`div`,{className:`group relative flex items-center hover:bg-muted/50 rounded py-0.5`,style:{paddingLeft:t*12+2},children:[(0,H.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 flex-1 min-w-0 text-xs font-mono text-muted-foreground`,onClick:()=>m(!p),children:[p?(0,H.jsx)(Se,{className:`size-3.5 shrink-0`}):(0,H.jsx)(Ce,{className:`size-3.5 shrink-0`}),(0,H.jsx)(`span`,{className:`truncate font-semibold`,children:e.name}),(0,H.jsxs)(`span`,{className:`text-[10px] opacity-60 shrink-0`,children:[`(`,h.length,`)`]})]}),(0,H.jsx)(Uf,{showRevert:u,onRevert:f?()=>f(h,e.fullPath):void 0,onAction:()=>o?.(h),actionIcon:r,actionTitle:`${i} ${e.name}/`,disabled:l})]});return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`hidden md:block`,children:n}),(0,H.jsx)(`div`,{className:`md:hidden`,children:(0,H.jsxs)(Ff,{children:[(0,H.jsx)(If,{asChild:!0,children:n}),(0,H.jsxs)(Lf,{align:`start`,className:`min-w-40`,children:[(0,H.jsxs)(Rf,{onClick:()=>o?.(h),disabled:l,children:[i,` `,e.name,`/`]}),f&&(0,H.jsx)(Rf,{className:`text-destructive focus:text-destructive`,onClick:()=>f(h,e.fullPath),disabled:l,children:`Discard Changes`})]})]})})]})})(),p&&(0,H.jsx)(`div`,{children:e.children.map((n,p)=>(0,H.jsx)(qf,{node:n,depth:t+1,isLast:p===e.children.length-1,actionIcon:r,actionTitle:i,onAction:a,onFolderAction:o,onClickFile:s,onOpenFile:c,disabled:l,showRevert:u,onRevert:d,onFolderRevert:f},n.fullPath))})]})}return null}function Jf({className:e,orientation:t=`horizontal`,decorative:n=!0,...r}){return(0,H.jsx)(Uc,{"data-slot":`separator`,decorative:n,orientation:t,className:z(`shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px`,e),...r})}function Yf({className:e,...t}){return(0,H.jsx)(Do,{"data-slot":`label`,className:z(`flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,e),...t})}function Xf({...e}){return(0,H.jsx)(Ec,{"data-slot":`select`,...e})}function Zf({...e}){return(0,H.jsx)(Oc,{"data-slot":`select-value`,...e})}function Qf({className:e,size:t=`default`,children:n,...r}){return(0,H.jsxs)(Dc,{"data-slot":`select-trigger`,"data-size":t,className:z(`flex w-fit items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground`,e),...r,children:[n,(0,H.jsx)(kc,{asChild:!0,children:(0,H.jsx)(Se,{className:`size-4 opacity-50`})})]})}function $f({className:e,children:t,position:n=`item-aligned`,align:r=`center`,...i}){return(0,H.jsx)(Ac,{children:(0,H.jsxs)(jc,{"data-slot":`select-content`,className:z(`relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,align:r,...i,children:[(0,H.jsx)(tp,{}),(0,H.jsx)(Mc,{className:z(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1`),children:t}),(0,H.jsx)(np,{})]})})}function ep({className:e,children:t,...n}){return(0,H.jsxs)(Nc,{"data-slot":`select-item`,className:z(`relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...n,children:[(0,H.jsx)(`span`,{"data-slot":`select-item-indicator`,className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,H.jsx)(Fc,{children:(0,H.jsx)(xe,{className:`size-4`})})}),(0,H.jsx)(Pc,{children:t})]})}function tp({className:e,...t}){return(0,H.jsx)(Ic,{"data-slot":`select-scroll-up-button`,className:z(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,H.jsx)(we,{className:`size-4`})})}function np({className:e,...t}){return(0,H.jsx)(Lc,{"data-slot":`select-scroll-down-button`,className:z(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,H.jsx)(Se,{className:`size-4`})})}function rp(){return B.get(`/api/settings/ai`)}function ip(e){return B.put(`/api/settings/ai`,e)}var ap=[{value:`claude-sonnet-4-6`,label:`Claude Sonnet 4.6`},{value:`claude-opus-4-6`,label:`Claude Opus 4.6`},{value:`claude-haiku-4-5`,label:`Claude Haiku 4.5`}],op=[{value:`low`,label:`Low`},{value:`medium`,label:`Medium`},{value:`high`,label:`High`}];function sp({compact:e}={}){let[t,n]=(0,V.useState)(null),[r,i]=(0,V.useState)(!1),[a,o]=(0,V.useState)(null),[s,c]=(0,V.useState)(0);(0,V.useEffect)(()=>{rp().then(n).catch(e=>o(e.message))},[]);let l=t?.default_provider??`claude`,u=t?.providers[l],d=async(e,r)=>{if(t){i(!0),o(null);try{n(await ip({providers:{[l]:{[e]:r}}})),c(e=>e+1)}catch(e){o(e.message)}finally{i(!1)}}},f=e?`text-[11px]`:`text-sm`,p=e?`text-xs`:`text-sm`,m=e?`space-y-2`:`space-y-4`,h=e?`space-y-1.5`:`space-y-3`,g=e?`space-y-1`:`space-y-1.5`;return t?(0,H.jsxs)(`div`,{className:m,children:[(0,H.jsx)(`h3`,{className:`${p} font-medium text-text-secondary`,children:`AI Provider`}),(0,H.jsxs)(`div`,{className:h,children:[(0,H.jsxs)(`div`,{className:g,children:[(0,H.jsx)(Yf,{htmlFor:`ai-model`,className:e?f:void 0,children:`Model`}),(0,H.jsxs)(Xf,{value:u?.model??`claude-sonnet-4-6`,onValueChange:e=>d(`model`,e),children:[(0,H.jsx)(Qf,{id:`ai-model`,className:`w-full ${e?`h-7 text-[11px]`:``}`,children:(0,H.jsx)(Zf,{})}),(0,H.jsx)($f,{children:ap.map(e=>(0,H.jsx)(ep,{value:e.value,children:e.label},e.value))})]})]}),(0,H.jsxs)(`div`,{className:g,children:[(0,H.jsx)(Yf,{htmlFor:`ai-effort`,className:e?f:void 0,children:`Effort`}),(0,H.jsxs)(Xf,{value:u?.effort??`high`,onValueChange:e=>d(`effort`,e),children:[(0,H.jsx)(Qf,{id:`ai-effort`,className:`w-full ${e?`h-7 text-[11px]`:``}`,children:(0,H.jsx)(Zf,{})}),(0,H.jsx)($f,{children:op.map(e=>(0,H.jsx)(ep,{value:e.value,children:e.label},e.value))})]})]}),(0,H.jsxs)(`div`,{className:g,children:[(0,H.jsx)(Yf,{htmlFor:`ai-max-turns`,className:e?f:void 0,children:`Max Turns (1-500)`}),(0,H.jsx)(O,{id:`ai-max-turns`,type:`number`,min:1,max:500,defaultValue:u?.max_turns??100,className:e?`h-7 text-[11px]`:void 0,onBlur:e=>{let t=parseInt(e.target.value);isNaN(t)||d(`max_turns`,t)}},`turns-${s}`)]}),(0,H.jsxs)(`div`,{className:g,children:[(0,H.jsx)(Yf,{htmlFor:`ai-budget`,className:e?f:void 0,children:`Max Budget (USD)`}),(0,H.jsx)(O,{id:`ai-budget`,type:`number`,step:.1,min:.01,max:50,defaultValue:u?.max_budget_usd??``,placeholder:`No limit`,className:e?`h-7 text-[11px]`:void 0,onBlur:e=>{let t=parseFloat(e.target.value);d(`max_budget_usd`,isNaN(t)?void 0:t)}},`budget-${s}`)]}),(0,H.jsxs)(`div`,{className:g,children:[(0,H.jsx)(Yf,{htmlFor:`ai-thinking`,className:e?f:void 0,children:`Thinking Budget (tokens)`}),(0,H.jsx)(O,{id:`ai-thinking`,type:`number`,min:0,defaultValue:u?.thinking_budget_tokens??``,placeholder:`Disabled`,className:e?`h-7 text-[11px]`:void 0,onBlur:e=>{let t=parseInt(e.target.value);d(`thinking_budget_tokens`,isNaN(t)?void 0:t)}},`thinking-${s}`)]})]}),r&&(0,H.jsx)(`p`,{className:`text-xs text-text-subtle`,children:`Saving...`}),a&&(0,H.jsx)(`p`,{className:`text-xs text-red-500`,children:a})]}):(0,H.jsxs)(`div`,{className:h,children:[(0,H.jsx)(`h3`,{className:`${p} font-medium text-text-secondary`,children:`AI Provider`}),(0,H.jsx)(`p`,{className:`${f} text-text-subtle`,children:a?`Error: ${a}`:`Loading...`})]})}var cp=[{key:`general`,label:`General`},{key:`tabs`,label:`Tabs`},{key:`projects`,label:`Projects`}],lp=[`Ctrl+T`,`Ctrl+W`,`Ctrl+N`,`Ctrl+Tab`,`Ctrl+L`,`Ctrl+H`,`Ctrl+J`,`F5`,`Ctrl+R`,`Ctrl+Shift+I`,`Ctrl+Shift+J`];function up({actionId:e,combo:t,locked:n}){let[r,i]=(0,V.useState)(!1),a=Vd(e=>e.setBinding),o=(0,V.useRef)(null),s=(0,V.useCallback)(t=>{if(t.preventDefault(),t.stopPropagation(),t.key===`Escape`){i(!1);return}let n=Bd(t);n&&(a(e,n),i(!1))},[e,a]);return(0,V.useEffect)(()=>{if(r)return document.addEventListener(`keydown`,s,!0),()=>document.removeEventListener(`keydown`,s,!0)},[r,s]),(0,V.useEffect)(()=>{if(!r)return;let e=e=>{o.current&&!o.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[r]),n?(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded border border-border bg-muted px-2 py-0.5 text-[11px] font-mono text-muted-foreground`,children:[(0,H.jsx)(Ke,{className:`size-2.5`}),zd(t)]}):r?(0,H.jsx)(`button`,{ref:o,className:`inline-flex items-center rounded border-2 border-primary bg-primary/10 px-2 py-0.5 text-[11px] font-mono text-primary animate-pulse`,children:`Press keys...`}):(0,H.jsx)(`button`,{ref:o,onClick:()=>i(!0),className:`inline-flex items-center rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-mono text-foreground hover:border-primary hover:bg-primary/5 transition-colors cursor-pointer`,title:`Click to change shortcut`,children:zd(t)})}function dp(){let{getBinding:e,resetBinding:t,resetAll:n,overrides:i}=Vd();return(0,H.jsxs)(`div`,{className:`space-y-3`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`h3`,{className:`text-xs font-medium text-text-secondary`,children:`Keyboard Shortcuts`}),Object.keys(i).length>0&&(0,H.jsxs)(xf,{variant:`ghost`,size:`sm`,className:`h-6 text-[10px] text-muted-foreground`,onClick:n,children:[(0,H.jsx)(r,{className:`size-3 mr-1`}),`Reset all`]})]}),(0,H.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-amber-500/30 bg-amber-500/5 px-2.5 py-2`,children:[(0,H.jsx)(pt,{className:`size-3.5 text-amber-500 shrink-0 mt-0.5`}),(0,H.jsxs)(`p`,{className:`text-[10px] text-muted-foreground leading-relaxed`,children:[`Some shortcuts (`,lp.slice(0,4).join(`, `),`...) are reserved by the browser and cannot be overridden.`]})]}),cp.map(n=>{let a=Fd.filter(e=>e.category===n.key);return a.length===0?null:(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:n.label}),(0,H.jsx)(`div`,{className:`space-y-0.5`,children:a.map(n=>{let a=e(n.id),o=n.id in i;return(0,H.jsxs)(`div`,{className:`flex items-center justify-between py-1 px-1 rounded hover:bg-surface-elevated/50 transition-colors`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[(0,H.jsx)(`span`,{className:`text-xs text-foreground`,children:n.label}),n.note&&(0,H.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:n.note})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0 ml-2`,children:[(0,H.jsx)(up,{actionId:n.id,combo:a,locked:n.locked}),o&&!n.locked&&(0,H.jsx)(`button`,{onClick:()=>t(n.id),className:`flex items-center justify-center size-5 rounded text-muted-foreground hover:text-foreground hover:bg-surface-elevated transition-colors`,title:`Reset to default`,children:(0,H.jsx)(r,{className:`size-3`})})]})]},n.id)})})]},n.key)})]})}function fp(e){let t=(e+`=`.repeat((4-e.length%4)%4)).replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t);return Uint8Array.from(n,e=>e.charCodeAt(0))}function pp(){let[e,t]=(0,V.useState)(`default`),[n,r]=(0,V.useState)(!1),[i,a]=(0,V.useState)(!1),[o,s]=(0,V.useState)(null);return(0,V.useEffect)(()=>{`Notification`in window&&t(Notification.permission),r(localStorage.getItem(`ppm-push-subscribed`)===`true`)},[]),{permission:e,isSubscribed:n,loading:i,error:o,subscribe:(0,V.useCallback)(async()=>{a(!0),s(null);try{let e=await Notification.requestPermission();if(t(e),e!==`granted`){s(`Permission denied`);return}if(!navigator.serviceWorker?.controller&&!navigator.serviceWorker?.ready){s(`Service worker not available (dev mode?)`);return}let n=await Promise.race([navigator.serviceWorker.ready,new Promise((e,t)=>setTimeout(()=>t(Error(`Service worker timeout`)),5e3))]);if(!n)throw Error(`Service worker not ready`);let i={},a=le();a&&(i.Authorization=`Bearer ${a}`);let o=await(await fetch(`/api/push/vapid-key`,{headers:i})).json();if(!o.ok)throw Error(o.error||`Failed to get VAPID key`);let c=await n.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:fp(o.data.publicKey).buffer});await fetch(`/api/push/subscribe`,{method:`POST`,headers:{...i,"Content-Type":`application/json`},body:JSON.stringify(c.toJSON())}),r(!0),localStorage.setItem(`ppm-push-subscribed`,`true`)}catch(e){s(e instanceof Error?e.message:`Subscribe failed`),console.error(`[push] Subscribe failed:`,e)}finally{a(!1)}},[]),unsubscribe:(0,V.useCallback)(async()=>{a(!0);try{let e=await(await navigator.serviceWorker.ready).pushManager.getSubscription();if(e){let t={"Content-Type":`application/json`},n=le();n&&(t.Authorization=`Bearer ${n}`),await fetch(`/api/push/subscribe`,{method:`DELETE`,headers:t,body:JSON.stringify({endpoint:e.endpoint})}),await e.unsubscribe()}r(!1),localStorage.removeItem(`ppm-push-subscribed`)}catch(e){console.error(`[push] Unsubscribe failed:`,e)}finally{a(!1)}},[])}}var mp=[{value:`light`,label:`Light`,icon:ut},{value:`dark`,label:`Dark`,icon:Ze},{value:`system`,label:`System`,icon:Xe}],hp=`PushManager`in window&&`serviceWorker`in navigator,gp=/iPhone|iPad/.test(navigator.userAgent)&&!window.matchMedia(`(display-mode: standalone)`).matches;function _p(){let{theme:e,setTheme:t}=R(),{permission:n,isSubscribed:r,loading:i,error:a,subscribe:o,unsubscribe:s}=pp();return(0,H.jsx)(`div`,{className:`h-full w-full overflow-auto`,children:(0,H.jsxs)(`div`,{className:`p-3 space-y-4`,children:[(0,H.jsx)(`h2`,{className:`text-sm font-semibold`,children:`Settings`}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(`h3`,{className:`text-xs font-medium text-text-secondary`,children:`Theme`}),(0,H.jsx)(`div`,{className:`flex gap-1.5`,children:mp.map(n=>{let r=n.icon;return(0,H.jsxs)(xf,{variant:e===n.value?`default`:`outline`,size:`sm`,onClick:()=>t(n.value),className:z(`flex-1 gap-1.5 text-xs h-8`,e===n.value&&`ring-2 ring-primary`),children:[(0,H.jsx)(r,{className:`size-3.5`}),n.label]},n.value)})})]}),(0,H.jsx)(Jf,{}),(0,H.jsx)(sp,{}),(0,H.jsx)(Jf,{}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(`h3`,{className:`text-xs font-medium text-text-secondary`,children:`Notifications`}),hp?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[r?(0,H.jsx)(ye,{className:`size-3.5`}):(0,H.jsx)(ve,{className:`size-3.5`}),(0,H.jsx)(`span`,{className:`text-xs`,children:`Push notifications`})]}),(0,H.jsx)(xf,{variant:r?`default`:`outline`,size:`sm`,className:`h-7 text-xs`,disabled:i||n===`denied`,onClick:()=>r?s():o(),children:i?`...`:r?`On`:`Off`})]}),r&&(0,H.jsx)(xf,{variant:`outline`,size:`sm`,className:`h-7 text-xs w-full`,onClick:()=>{new Notification(`PPM Test`,{body:`Push notifications are working!`})},children:`Test notification`}),a&&(0,H.jsx)(`p`,{className:`text-[11px] text-destructive`,children:a}),n===`denied`&&(0,H.jsx)(`p`,{className:`text-[11px] text-destructive`,children:`Notifications blocked. Enable in browser settings.`}),gp&&(0,H.jsx)(`p`,{className:`text-[11px] text-text-subtle`,children:`On iOS, install PPM to Home Screen for push notifications.`})]}):(0,H.jsx)(`p`,{className:`text-xs text-text-subtle`,children:`Push notifications not supported in this browser.`})]}),(0,H.jsx)(Jf,{}),(0,H.jsx)(dp,{}),(0,H.jsx)(Jf,{}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(`h3`,{className:`text-xs font-medium text-text-secondary`,children:`About`}),(0,H.jsx)(`p`,{className:`text-xs text-text-secondary`,children:`PPM — Personal Project Manager`}),(0,H.jsx)(`p`,{className:`text-[11px] text-text-subtle`,children:`A mobile-first web IDE for managing your projects.`})]})]})})}function vp({connections:e,cachedTables:t,onOpenTable:n,onRefreshTables:r,onEdit:i,onDelete:a}){let[o,s]=(0,V.useState)(new Set),[c,l]=(0,V.useState)(new Set([`__ungrouped__`])),[u,d]=(0,V.useState)(new Set),[f,p]=(0,V.useState)(new Map),m=e=>{s(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},h=e=>{l(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},g=async e=>{d(t=>new Set(t).add(e));try{await r(e)}finally{d(t=>{let n=new Set(t);return n.delete(e),n})}},_={};for(let t of e){let e=t.group_name??`__ungrouped__`;(_[e]??=[]).push(t)}let v=Object.keys(_).sort((e,t)=>e===`__ungrouped__`?1:t===`__ungrouped__`?-1:e.localeCompare(t));return e.length===0?(0,H.jsxs)(`p`,{className:`px-4 py-6 text-xs text-text-subtle text-center`,children:[`No connections yet.`,(0,H.jsx)(`br`,{}),`Click + to add one.`]}):(0,H.jsx)(`div`,{className:`py-1`,children:v.map(e=>{let r=c.has(e),s=e===`__ungrouped__`?`Ungrouped`:e,l=_[e],d=v.length>1||e!==`__ungrouped__`;return(0,H.jsxs)(`div`,{children:[d&&(0,H.jsxs)(`button`,{onClick:()=>h(e),className:`w-full flex items-center gap-1 px-2 py-1 text-[10px] font-semibold text-text-subtle uppercase tracking-wider hover:text-text-secondary transition-colors`,children:[r?(0,H.jsx)(Se,{className:`size-3`}):(0,H.jsx)(Ce,{className:`size-3`}),s]}),r&&(0,H.jsx)(`div`,{className:d?`ml-[11px] border-l border-dashed border-border`:``,children:l.map(e=>{let r=o.has(e.id),s=t.get(e.id)??[],c=u.has(e.id);return(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`div`,{className:z(`group flex items-center gap-1 py-1 hover:bg-surface-elevated transition-colors`,d?`pl-3 pr-2`:`px-2`),children:[(0,H.jsx)(`button`,{onClick:()=>{m(e.id),!o.has(e.id)&&s.length===0&&g(e.id)},className:`shrink-0 text-text-subtle hover:text-foreground transition-colors`,children:r?(0,H.jsx)(Se,{className:`size-3`}):(0,H.jsx)(Ce,{className:`size-3`})}),(0,H.jsx)(`span`,{className:`shrink-0 size-2 rounded-full border border-border`,style:{backgroundColor:e.color??`transparent`}}),(0,H.jsx)(`button`,{className:`flex-1 text-left text-xs truncate hover:text-primary transition-colors`,onClick:()=>{m(e.id),!o.has(e.id)&&s.length===0&&g(e.id)},children:e.name}),(0,H.jsx)(`span`,{className:`shrink-0 text-[9px] text-text-subtle uppercase px-1 rounded bg-surface-elevated`,children:e.type===`postgres`?`PG`:`DB`}),e.readonly===1&&(0,H.jsx)(`span`,{title:`Readonly`,children:(0,H.jsx)(Ke,{className:`shrink-0 size-2.5 text-text-subtle`,"aria-label":`Readonly`})}),(0,H.jsxs)(`div`,{className:`hidden group-hover:flex items-center gap-0.5 shrink-0`,children:[(0,H.jsx)(`button`,{onClick:()=>g(e.id),disabled:c,className:`p-0.5 text-text-subtle hover:text-foreground transition-colors`,title:`Refresh tables`,children:(0,H.jsx)(at,{className:z(`size-3`,c&&`animate-spin`)})}),(0,H.jsx)(`button`,{onClick:()=>i(e),className:`p-0.5 text-text-subtle hover:text-foreground transition-colors`,title:`Edit`,children:(0,H.jsx)(rt,{className:`size-3`})}),(0,H.jsx)(`button`,{onClick:()=>a(e.id),className:`p-0.5 text-text-subtle hover:text-red-500 transition-colors`,title:`Delete`,children:(0,H.jsx)(ft,{className:`size-3`})})]})]}),r&&(0,H.jsxs)(`div`,{className:`ml-[11px] border-l border-dashed border-border pl-3`,children:[c&&s.length===0&&(0,H.jsx)(`p`,{className:`text-[10px] text-text-subtle px-2 py-1`,children:`Loading…`}),!c&&s.length===0&&(0,H.jsx)(`p`,{className:`text-[10px] text-text-subtle px-2 py-1`,children:`No tables cached`}),s.length>0&&(0,H.jsx)(bp,{connId:e.id,tables:s,filter:f.get(e.id)??``,onFilterChange:t=>p(n=>new Map(n).set(e.id,t)),onOpenTable:(t,r)=>n(e,t,r)})]})]},e.id)})})]},e)})})}var yp=200;function bp({connId:e,tables:t,filter:n,onFilterChange:r,onOpenTable:i}){let a=(0,V.useMemo)(()=>{if(!n)return t;let e=n.toLowerCase();return t.filter(t=>t.tableName.toLowerCase().includes(e))},[t,n]);return(0,H.jsxs)(`div`,{children:[t.length>5&&(0,H.jsxs)(`div`,{className:`flex items-center gap-1 px-1 py-0.5`,children:[(0,H.jsx)(ot,{className:`size-2.5 text-text-subtle shrink-0`}),(0,H.jsx)(`input`,{type:`text`,value:n,onChange:e=>r(e.target.value),placeholder:`Filter tables…`,className:`w-full text-[10px] bg-transparent border-none outline-none text-foreground placeholder:text-text-subtle`})]}),(0,H.jsxs)(`div`,{className:`overflow-y-auto`,style:{maxHeight:yp},children:[a.map(t=>(0,H.jsxs)(`button`,{onClick:()=>i(t.tableName,t.schemaName),className:`w-full flex items-center gap-1.5 px-2 py-0.5 text-[11px] text-text-secondary hover:text-foreground hover:bg-surface-elevated transition-colors text-left truncate`,children:[(0,H.jsx)(Oe,{className:`size-2.5 shrink-0 text-text-subtle`}),(0,H.jsx)(`span`,{className:`truncate`,children:t.tableName})]},`${e}-${t.schemaName}.${t.tableName}`)),n&&a.length===0&&(0,H.jsx)(`p`,{className:`text-[10px] text-text-subtle px-2 py-1`,children:`No match`})]})]})}var xp=[`#ef4444`,`#f97316`,`#eab308`,`#22c55e`,`#06b6d4`,`#3b82f6`,`#8b5cf6`,`#ec4899`,`#6b7280`,`#000000`];function Sp({value:e,onChange:t}){return(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,H.jsx)(`button`,{type:`button`,onClick:()=>t(null),className:z(`size-6 rounded-full border-2 transition-all`,e?`border-border hover:scale-105`:`border-primary scale-110`,`bg-transparent relative`),title:`No color`,children:(0,H.jsx)(`span`,{className:`absolute inset-0 flex items-center justify-center text-[8px] text-text-subtle`,children:`×`})}),xp.map(n=>(0,H.jsx)(`button`,{type:`button`,onClick:()=>t(n),className:z(`size-6 rounded-full border-2 transition-all hover:scale-105`,e===n?`border-primary scale-110`:`border-transparent`),style:{backgroundColor:n},title:n},n))]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`div`,{className:`size-6 rounded-full border border-border shrink-0`,style:{backgroundColor:e??`transparent`}}),(0,H.jsx)(`input`,{type:`text`,value:e??``,onChange:e=>{let n=e.target.value.trim();if(n===``){t(null);return}/^#[0-9a-fA-F]{6}$/.test(n),t(n)},placeholder:`#3b82f6`,className:`flex-1 h-7 text-xs px-2 rounded-md border border-border bg-background focus:outline-none focus:border-primary font-mono`})]})]})}function Cp({open:e,onClose:t,connection:n,onSave:r,onUpdate:i,onTest:a}){let o=!!n,[s,c]=(0,V.useState)({name:``,type:`postgres`,path:``,connectionString:``,groupName:``,color:null,readonly:!0}),[l,u]=(0,V.useState)(!1),[d,f]=(0,V.useState)(null),[p,m]=(0,V.useState)(!1),[h,g]=(0,V.useState)(null);(0,V.useEffect)(()=>{if(!e){f(null),g(null);return}c(n?{name:n.name,type:n.type,path:``,connectionString:``,groupName:n.group_name??``,color:n.color,readonly:n.readonly===1}:{name:``,type:`postgres`,path:``,connectionString:``,groupName:``,color:null,readonly:!0})},[e,n]);let _=(e,t)=>{c(n=>({...n,[e]:t})),f(null)};return(0,H.jsx)(Sf,{open:e,onOpenChange:e=>{e||t()},children:(0,H.jsxs)(Tf,{className:`max-w-md`,children:[(0,H.jsx)(Ef,{children:(0,H.jsx)(Of,{children:o?`Edit Connection`:`Add Connection`})}),(0,H.jsxs)(`div`,{className:`space-y-3 py-1`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Name *`}),(0,H.jsx)(`input`,{value:s.name,onChange:e=>_(`name`,e.target.value),placeholder:`my-database`,className:`w-full h-8 text-sm px-2.5 rounded-md border border-border bg-background focus:outline-none focus:border-primary`})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Type`}),(0,H.jsxs)(`select`,{value:s.type,onChange:e=>_(`type`,e.target.value),className:`w-full h-8 text-sm px-2 rounded-md border border-border bg-background focus:outline-none focus:border-primary`,children:[(0,H.jsx)(`option`,{value:`postgres`,children:`PostgreSQL`}),(0,H.jsx)(`option`,{value:`sqlite`,children:`SQLite`})]})]}),s.type===`postgres`?(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Connection String *`}),(0,H.jsx)(`input`,{type:`password`,value:s.connectionString,onChange:e=>_(`connectionString`,e.target.value),placeholder:`postgresql://user:pass@host:5432/db`,className:`w-full h-8 text-sm px-2.5 rounded-md border border-border bg-background focus:outline-none focus:border-primary font-mono`})]}):(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`File Path *`}),(0,H.jsx)(`input`,{value:s.path,onChange:e=>_(`path`,e.target.value),placeholder:`/path/to/database.db`,className:`w-full h-8 text-sm px-2.5 rounded-md border border-border bg-background focus:outline-none focus:border-primary font-mono`})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Group`}),(0,H.jsx)(`input`,{value:s.groupName,onChange:e=>_(`groupName`,e.target.value),placeholder:`Production`,className:`w-full h-8 text-sm px-2.5 rounded-md border border-border bg-background focus:outline-none focus:border-primary`})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`label`,{className:`text-xs font-medium text-text-secondary mb-1 block`,children:`Tab Color`}),(0,H.jsx)(Sp,{value:s.color,onChange:e=>_(`color`,e)})]}),o&&(0,H.jsxs)(`div`,{className:`flex items-center justify-between py-1`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`text-xs font-medium`,children:`Readonly`}),(0,H.jsx)(`p`,{className:`text-[10px] text-text-subtle`,children:`Block non-SELECT queries (AI protection)`})]}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>_(`readonly`,!s.readonly),className:`relative w-9 h-5 rounded-full transition-colors ${s.readonly?`bg-primary`:`bg-border`}`,children:(0,H.jsx)(`span`,{className:`absolute top-0.5 left-0.5 size-4 rounded-full bg-white transition-transform ${s.readonly?`translate-x-4`:``}`})})]}),d&&(0,H.jsx)(`p`,{className:`text-xs ${d.ok?`text-green-500`:`text-red-500`}`,children:d.ok?`✓ Connection successful`:`✗ ${d.error}`}),h&&(0,H.jsx)(`p`,{className:`text-xs text-red-500`,children:h})]}),(0,H.jsxs)(Df,{children:[o&&(0,H.jsx)(xf,{variant:`outline`,size:`sm`,onClick:async()=>{if(o){u(!0),f(null);try{f(await a(n.id))}finally{u(!1)}}},disabled:l,className:`mr-auto`,children:l?`Testing…`:`Test Connection`}),(0,H.jsx)(xf,{variant:`outline`,size:`sm`,onClick:t,children:`Cancel`}),(0,H.jsx)(xf,{size:`sm`,onClick:async()=>{if(g(null),!s.name.trim()){g(`Name is required`);return}m(!0);try{if(o&&i){let e=(s.type===`postgres`?s.connectionString.trim():s.path.trim())?s.type===`postgres`?{type:`postgres`,connectionString:s.connectionString}:{type:`sqlite`,path:s.path}:void 0;await i(n.id,{name:s.name.trim(),...e!==void 0&&{connectionConfig:e},groupName:s.groupName.trim()||null,color:s.color,readonly:s.readonly?1:0})}else if(r){let e=s.type===`postgres`?{type:`postgres`,connectionString:s.connectionString}:{type:`sqlite`,path:s.path};await r({type:s.type,name:s.name.trim(),connectionConfig:e,groupName:s.groupName.trim()||void 0,color:s.color??void 0})}t()}catch(e){g(e.message)}finally{m(!1)}},disabled:p,children:p?`Saving…`:o?`Save`:`Add`})]})]})})}function wp(){let[e,t]=(0,V.useState)([]),[n,r]=(0,V.useState)(!0),[i,a]=(0,V.useState)(new Map),o=(0,V.useCallback)(async()=>{try{t(await B.get(`/api/db/connections`))}catch{}finally{r(!1)}},[]);return(0,V.useEffect)(()=>{o()},[o]),{connections:e,loading:n,cachedTables:i,createConnection:(0,V.useCallback)(async e=>{let n=await B.post(`/api/db/connections`,e);return t(e=>[...e,n]),n},[]),updateConnection:(0,V.useCallback)(async(e,n)=>{let r=await B.put(`/api/db/connections/${e}`,n);t(t=>t.map(t=>t.id===e?r:t))},[]),deleteConnection:(0,V.useCallback)(async e=>{await B.del(`/api/db/connections/${e}`),t(t=>t.filter(t=>t.id!==e)),a(t=>{let n=new Map(t);return n.delete(e),n})},[]),testConnection:(0,V.useCallback)(async e=>B.post(`/api/db/connections/${e}/test`),[]),refreshTables:(0,V.useCallback)(async e=>{let t=(await B.get(`/api/db/connections/${e}/tables`)).map(t=>({connectionId:e,tableName:t.name,schemaName:t.schema,rowCount:t.rowCount,cachedAt:new Date().toISOString()}));a(n=>new Map(n).set(e,t))},[])}}function Tp(){let{connections:e,loading:t,cachedTables:n,createConnection:r,updateConnection:i,deleteConnection:a,testConnection:o,refreshTables:s}=wp(),c=I(e=>e.openTab),[l,u]=(0,V.useState)(!1),[d,f]=(0,V.useState)(null);return(0,H.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b border-border shrink-0`,children:[(0,H.jsx)(`span`,{className:`text-[10px] font-semibold text-text-subtle uppercase tracking-wider`,children:`Database`}),(0,H.jsx)(`button`,{onClick:()=>u(!0),className:`flex items-center justify-center size-5 rounded hover:bg-surface-elevated transition-colors text-text-subtle hover:text-foreground`,title:`Add connection`,children:(0,H.jsx)(it,{className:`size-3.5`})})]}),(0,H.jsx)(`div`,{className:`flex-1 overflow-y-auto min-h-0`,children:t?(0,H.jsx)(`p`,{className:`px-4 py-6 text-xs text-text-subtle text-center`,children:`Loading…`}):(0,H.jsx)(vp,{connections:e,cachedTables:n,onOpenTable:(e,t,n)=>{c({type:`database`,title:`${e.name} · ${t}`,projectId:null,closable:!0,metadata:{connectionId:e.id,connectionName:e.name,dbType:e.type,tableName:t,schemaName:n,connectionColor:e.color}})},onRefreshTables:s,onEdit:f,onDelete:async e=>{confirm(`Delete this connection?`)&&await a(e)}})}),(0,H.jsx)(Cp,{open:l,onClose:()=>u(!1),onSave:async e=>{let t=await r(e);t&&s(t.id).catch(()=>{})},onTest:()=>Promise.resolve({ok:!1,error:`Save connection first`})}),d&&(0,H.jsx)(Cp,{open:!!d,onClose:()=>f(null),connection:d,onUpdate:async(e,t)=>{await i(e,t)},onTest:e=>o(e)})]})}var Ep=[{id:`explorer`,label:`Explorer`,icon:Fe},{id:`git`,label:`Git`,icon:Re},{id:`database`,label:`Database`,icon:Oe},{id:`settings`,label:`Settings`,icon:st}];function Dp({onResize:e}){let t=(0,V.useRef)(!1);return(0,H.jsx)(`div`,{className:`absolute right-0 top-0 bottom-0 w-1 cursor-col-resize hover:bg-primary/30 active:bg-primary/50 transition-colors z-10`,onPointerDown:(0,V.useCallback)(e=>{e.preventDefault(),t.current=!0,e.currentTarget.setPointerCapture(e.pointerId),document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`},[]),onPointerMove:(0,V.useCallback)(n=>{t.current&&e(n.clientX-48)},[e]),onPointerUp:(0,V.useCallback)(e=>{t.current=!1,e.currentTarget.releasePointerCapture(e.pointerId),document.body.style.cursor=``,document.body.style.userSelect=``},[])})}function Op(){let{activeProject:e}=Dd(),t=R(e=>e.sidebarCollapsed),n=R(e=>e.sidebarWidth),r=R(e=>e.toggleSidebar),i=R(e=>e.setSidebarWidth),a=R(e=>e.sidebarActiveTab),o=R(e=>e.setSidebarActiveTab);return t?(0,H.jsx)(`aside`,{className:`hidden md:flex flex-col w-10 min-w-10 bg-background border-r border-border`,children:(0,H.jsx)(`button`,{onClick:r,title:`Expand sidebar (⌘B)`,className:`flex items-center justify-center h-[41px] border-b border-border text-text-secondary hover:text-foreground transition-colors`,children:(0,H.jsx)(nt,{className:`size-4`})})}):(0,H.jsxs)(`aside`,{className:`hidden md:flex flex-col bg-background border-r border-border overflow-hidden relative`,style:{width:n,minWidth:200,maxWidth:600},children:[(0,H.jsxs)(`div`,{className:`flex items-center h-[41px] border-b border-border shrink-0`,children:[Ep.map(e=>{let t=e.icon;return(0,H.jsx)(`button`,{onClick:()=>o(e.id),className:z(`flex-1 flex items-center justify-center gap-1.5 h-full text-xs transition-colors border-b-2 -mb-px`,a===e.id?`border-primary text-primary font-medium`:`border-transparent text-text-secondary hover:text-foreground`),children:(0,H.jsx)(t,{className:`size-3.5`,title:e.label})},e.id)}),(0,H.jsx)(`button`,{onClick:r,title:`Collapse sidebar (⌘B)`,className:`flex items-center justify-center w-8 h-full text-text-subtle hover:text-text-secondary transition-colors shrink-0`,children:(0,H.jsx)(tt,{className:`size-3.5`})})]}),(0,H.jsxs)(`div`,{className:`flex-1 overflow-y-auto min-h-0`,children:[a===`explorer`&&(e?(0,H.jsx)(Pf,{}):(0,H.jsx)(`div`,{className:`flex items-center justify-center h-24 p-4`,children:(0,H.jsx)(`p`,{className:`text-xs text-text-subtle text-center`,children:`Select a project to browse files`})})),a===`git`&&(0,H.jsx)(Hf,{metadata:{projectName:e?.name}}),a===`database`&&(0,H.jsx)(Tp,{}),a===`settings`&&(0,H.jsx)(_p,{})]}),(0,H.jsx)(Dp,{onResize:i})]})}var kp=Object.defineProperty,Ap=Object.getOwnPropertySymbols,jp=Object.prototype.hasOwnProperty,Mp=Object.prototype.propertyIsEnumerable,Np=(e,t,n)=>t in e?kp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Pp=(e,t)=>{for(var n in t||={})jp.call(t,n)&&Np(e,n,t[n]);if(Ap)for(var n of Ap(t))Mp.call(t,n)&&Np(e,n,t[n]);return e},Fp=(e,t)=>{var n={};for(var r in e)jp.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Ap)for(var r of Ap(e))t.indexOf(r)<0&&Mp.call(e,r)&&(n[r]=e[r]);return n},Ip;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+(t?1:0),n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(Ip||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(Ip||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(Ip||={});var Lp=Ip,Rp={L:Lp.QrCode.Ecc.LOW,M:Lp.QrCode.Ecc.MEDIUM,Q:Lp.QrCode.Ecc.QUARTILE,H:Lp.QrCode.Ecc.HIGH},zp=128,Bp=`L`,Vp=`#FFFFFF`,Hp=`#000000`,Up=!1,Wp=1,Gp=4,Kp=0,qp=.1;function Jp(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function Yp(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function Xp(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*qp),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function Zp(e,t){return t==null?e?Gp:Kp:Math.max(Math.floor(t),0)}function Qp({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=V.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...Lp.QrSegment.makeSegments(t)),e),[]);return Lp.QrCode.encodeSegments(r,Rp[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=V.useMemo(()=>{let e=c.getModules(),t=Zp(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:Xp(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var $p=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),em=V.forwardRef(function(e,t){let n=e,{value:r,size:i=zp,level:a=Bp,bgColor:o=Vp,fgColor:s=Hp,includeMargin:c=Up,minVersion:l=Wp,boostLevel:u,marginSize:d,imageSettings:f}=n,p=Fp(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=Fp(p,[`style`]),g=f?.src,_=V.useRef(null),v=V.useRef(null),y=V.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=V.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=Qp({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});V.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=Yp(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,$p?t.fill(new Path2D(Jp(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),V.useEffect(()=>{x(!1)},[g]);let E=Pp({height:i,width:i},m),D=null;return g!=null&&(D=V.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),V.createElement(V.Fragment,null,V.createElement(`canvas`,Pp({style:E,height:i,width:i,ref:y,role:`img`},h)),D)});em.displayName=`QRCodeCanvas`;var tm=V.forwardRef(function(e,t){let n=e,{value:r,size:i=zp,level:a=Bp,bgColor:o=Vp,fgColor:s=Hp,includeMargin:c=Up,minVersion:l=Wp,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=Fp(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=Qp({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=Yp(g,v.excavation)),b=V.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=Jp(y,h);return V.createElement(`svg`,Pp({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&V.createElement(`title`,null,d),V.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),V.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});tm.displayName=`QRCodeSVG`;var nm=`hienlh/ppm`;async function rm(e,t){let n=`(could not fetch)`;try{let e=await(await fetch(`/api/logs/recent`)).json();e.ok&&(n=e.data.logs||`(empty)`)}catch{}let r=``;if(t?.sessionId&&t?.projectName)try{let e=await B.get(`${ce(t.projectName)}/chat/sessions/${t.sessionId}/logs?tail=100`);e.logs&&(r=e.logs)}catch{}return[`## Environment`,`- PPM: v${e??`unknown`}`,`- Browser: ${navigator.userAgent}`,``,`## Description`,`<!-- Describe the bug -->`,``,`## Steps to Reproduce`,`1. `,``,`## Expected Behavior`,``,...r?[`## Chat Session Logs (${t?.sessionId?.slice(0,8)})`,"```",r,"```",``]:[],`## Server Logs (last 30 lines)`,"```",n,"```"].join(`
20
20
  `)}function im(e){let t=`https://github.com/${nm}/issues/new?title=bug%3A%20&body=${encodeURIComponent(e)}`;window.open(t,`_blank`)}async function am(e){try{return await navigator.clipboard.writeText(e),!0}catch{return!1}}function om(e,t){rm(e,t).then(e=>{window.dispatchEvent(new CustomEvent(`open-bug-report`,{detail:e}))})}var sm=[`linear-gradient(135deg, #667eea, #764ba2)`,`linear-gradient(135deg, #f5576c, #f093fb)`,`linear-gradient(135deg, #4facfe, #00c6ff)`,`linear-gradient(135deg, #43e97b, #38f9d7)`,`linear-gradient(135deg, #fa709a, #fee140)`,`linear-gradient(135deg, #a18cd1, #6a3de8)`,`linear-gradient(135deg, #fd7043, #ff8a65)`,`linear-gradient(135deg, #26c6da, #0097a7)`,`linear-gradient(135deg, #ab47bc, #7b1fa2)`,`linear-gradient(135deg, #ef5350, #b71c1c)`,`linear-gradient(135deg, #1976d2, #42a5f5)`,`linear-gradient(135deg, #2e7d32, #66bb6a)`];function cm(e,t){return e??sm[t%sm.length]}function lm(e,t){let n=e.split(/[-_.\s]+/).filter(Boolean),r=(n[0]?.[0]??e[0]??`?`).toUpperCase(),i=n.length>1?r+(n[1][0]??``).toUpperCase():r,a=t.filter(t=>t!==e);if(!a.map(e=>(e.split(/[-_.\s]+/).filter(Boolean)[0]?.[0]??e[0]??``).toUpperCase()).includes(r))return r;if(!a.map(e=>{let t=e.split(/[-_.\s]+/).filter(Boolean),n=(t[0]?.[0]??e[0]??``).toUpperCase(),r=t.length>1?(t[1][0]??``).toUpperCase():n;return t.length>1?n+r:n}).includes(i))return i;let o=t.indexOf(e);return String(o>=0?o+1:`?`)}function um({onSuccess:e,onCancel:t,footerClassName:n}){let{addProject:r}=Dd(),[i,a]=(0,V.useState)(``),[o,s]=(0,V.useState)(``),[c,l]=(0,V.useState)([]),[u,d]=(0,V.useState)(!1),[f,p]=(0,V.useState)(!1),[m,h]=(0,V.useState)(!1),[g,_]=(0,V.useState)(``),v=(0,V.useRef)(null),y=(0,V.useRef)(null);(0,V.useEffect)(()=>{if(v.current&&clearTimeout(v.current),!i.trim()){l([]),d(!1);return}v.current=setTimeout(async()=>{p(!0);try{l(await B.get(`/api/projects/suggest-dirs?q=${encodeURIComponent(i)}`)??[]),d(!0)}catch{l([])}finally{p(!1)}},250)},[i]),(0,V.useEffect)(()=>{function e(e){y.current&&!y.current.contains(e.target)&&d(!1)}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);function b(e){a(e.path),o||s(e.name),d(!1)}async function x(t){if(t?.preventDefault(),!i.trim()){_(`Path is required`);return}_(``),h(!0);try{await r(i.trim(),o.trim()||void 0),e()}catch(e){_(e instanceof Error?e.message:`Failed to add project`)}finally{h(!1)}}return(0,H.jsxs)(`form`,{onSubmit:x,className:`flex flex-col gap-3`,children:[(0,H.jsxs)(`div`,{ref:y,className:`relative`,children:[(0,H.jsx)(`label`,{className:`block text-xs font-medium text-foreground mb-1`,children:`Project path`}),(0,H.jsxs)(`div`,{className:`relative flex items-center`,children:[(0,H.jsx)(Fe,{className:`absolute left-2.5 size-3.5 text-text-subtle pointer-events-none`}),(0,H.jsx)(`input`,{type:`text`,value:i,onChange:e=>{a(e.target.value),_(``)},onFocus:()=>c.length>0&&d(!0),placeholder:`/path/to/project`,className:`w-full pl-8 pr-3 py-2 rounded-md border border-border bg-background text-sm focus:outline-none focus:ring-1 focus:ring-primary`,autoFocus:!0,autoComplete:`off`}),f&&(0,H.jsx)(Ge,{className:`absolute right-2.5 size-3.5 text-text-subtle animate-spin`})]}),u&&c.length>0&&(0,H.jsx)(`div`,{className:`absolute top-full left-0 right-0 mt-1 z-10 bg-popover border border-border rounded-md shadow-md max-h-48 overflow-y-auto`,children:c.map(e=>(0,H.jsxs)(`button`,{type:`button`,onMouseDown:()=>b(e),className:`w-full flex flex-col items-start px-3 py-2 text-left hover:bg-accent/50 transition-colors`,children:[(0,H.jsx)(`span`,{className:`text-sm font-medium truncate w-full`,children:e.name}),(0,H.jsx)(`span`,{className:`text-xs text-text-subtle truncate w-full`,children:e.path})]},e.path))})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`label`,{className:`block text-xs font-medium text-foreground mb-1`,children:[`Display name `,(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`(optional)`})]}),(0,H.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),placeholder:`my-project`,className:`w-full px-3 py-2 rounded-md border border-border bg-background text-sm focus:outline-none focus:ring-1 focus:ring-primary`})]}),g&&(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:g}),(0,H.jsxs)(`div`,{className:z(`flex justify-end gap-2 pt-1`,n),children:[(0,H.jsx)(`button`,{type:`button`,onClick:t,className:`px-3 py-1.5 text-sm text-text-secondary hover:text-foreground transition-colors`,children:`Cancel`}),(0,H.jsx)(`button`,{type:`submit`,disabled:m||!i.trim(),className:`px-3 py-1.5 text-sm bg-primary text-white rounded-md hover:bg-primary/90 transition-colors disabled:opacity-50`,children:m?`Adding…`:`Add Project`})]})]})}function dm({name:e,color:t,active:n,allNames:r}){let i=lm(e,r);return(0,H.jsx)(`div`,{className:z(`size-10 rounded-full flex items-center justify-center text-xs font-bold text-white select-none shrink-0`,n&&`ring-2 ring-primary ring-offset-2 ring-offset-background`),style:{background:t},children:i})}function fm({current:e,onChange:t}){return(0,H.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:sm.map(n=>(0,H.jsx)(`button`,{type:`button`,onClick:()=>t(n),className:z(`size-8 rounded-full border-2 transition-all`,e===n?`border-primary scale-110`:`border-transparent hover:scale-105`),style:{background:n}},n))})}function pm(){let{projects:e,activeProject:t,setActiveProject:n,setProjectColor:r,reorderProjects:i,renameProject:a,deleteProject:o,customOrder:s}=Dd();I(e=>e.openTab);let c=R(e=>e.version),l=(0,V.useCallback)(()=>om(c),[c]),[u,d]=(0,V.useState)(null),[f,p]=(0,V.useState)(null),m=Ed(e,s),h=m.map(e=>e.name),[g,_]=(0,V.useState)(!1),[v,y]=(0,V.useState)(``),[b,x]=(0,V.useState)(``),[S,C]=(0,V.useState)(!1),[w,T]=(0,V.useState)(``),[E,D]=(0,V.useState)(!1),[O,k]=(0,V.useState)(!1),[A,ee]=(0,V.useState)(``),[te,j]=(0,V.useState)(``),[M,N]=(0,V.useState)(!1),P=(0,V.useCallback)(e=>{y(e),x(e),_(!0)},[]),ne=(0,V.useCallback)(e=>{T(e),C(!0)},[]),F=(0,V.useCallback)((e,t)=>{ee(e),j(t),k(!0)},[]);async function re(){if(!b.trim()||b===v){_(!1);return}try{await a(v,b.trim())}catch{}_(!1)}async function L(){try{await o(w)}catch{}C(!1)}async function ie(){N(!0);try{await r(A,te),k(!1)}catch(e){console.error(`Failed to save color:`,e)}finally{N(!1)}}function ae(){D(!0)}let[oe,se]=(0,V.useState)(!1),[ce,le]=(0,V.useState)(null),[ue,de]=(0,V.useState)(null),[fe,pe]=(0,V.useState)(!1),[me,he]=(0,V.useState)(!1),[ge,_e]=(0,V.useState)(null),[ve,ye]=(0,V.useState)(null),Se=(0,V.useRef)(null),[Ce,we]=(0,V.useState)(null);(0,V.useEffect)(()=>{if(!oe||!Se.current){we(null);return}let e=Se.current.getBoundingClientRect();we({left:e.right+6,bottom:window.innerHeight-e.bottom})},[oe]);let Te=(0,V.useCallback)(async()=>{if(oe){se(!1);return}se(!0),_e(null),le(null),de(null),he(!0);try{let e=await B.get(`/api/tunnel`);e.active&&e.url&&le(e.url),e.localUrl&&de(e.localUrl)}catch{}he(!1)},[oe]),Ee=(0,V.useCallback)(async()=>{pe(!0),_e(null);try{le((await B.post(`/api/tunnel/start`,{})).url)}catch(e){_e(e instanceof Error?e.message:`Failed to start tunnel`)}finally{pe(!1)}},[]),Oe=(0,V.useCallback)(e=>{navigator.clipboard.writeText(e),ye(e),setTimeout(()=>ye(null),2e3)},[]);function ke(){let{sidebarCollapsed:e,toggleSidebar:t,setSidebarActiveTab:n}=R.getState();e&&t(),n(`settings`)}return(0,H.jsxs)(`aside`,{className:`hidden md:flex flex-col w-[52px] min-w-[52px] bg-background border-r border-border overflow-hidden`,children:[(0,H.jsxs)(`div`,{className:`shrink-0 flex flex-col items-center justify-center h-[41px] border-b border-border gap-0.5`,children:[(0,H.jsx)(`span`,{className:`text-[11px] font-bold text-primary leading-none`,children:`PPM`}),c&&(0,H.jsxs)(`span`,{className:`text-[8px] text-text-subtle leading-none`,children:[`v`,c]})]}),(0,H.jsxs)(`div`,{className:`flex-1 overflow-y-auto py-2 flex flex-col items-center gap-2 min-h-0`,children:[m.map((e,r)=>{let a=cm(e.color,r),o=t?.name===e.name;return(0,H.jsxs)(pf,{children:[(0,H.jsxs)(jl,{children:[(0,H.jsx)(Ml,{asChild:!0,children:(0,H.jsx)(mf,{asChild:!0,children:(0,H.jsx)(`button`,{draggable:!0,onDragStart:()=>d(r),onDragOver:e=>{e.preventDefault(),p(r)},onDragLeave:()=>p(null),onDragEnd:()=>{d(null),p(null)},onDrop:()=>{if(u!=null&&u!==r){let e=m.map(e=>e.name),[t]=e.splice(u,1);e.splice(r,0,t),i(e)}d(null),p(null)},onClick:()=>n(e),className:`p-1 rounded-lg hover:bg-surface-elevated transition-all ${u===r?`opacity-40 scale-90`:``} ${f===r&&u!==r?`ring-2 ring-accent`:``}`,children:(0,H.jsx)(dm,{name:e.name,color:a,active:o,allNames:h})})})}),(0,H.jsxs)(Nl,{side:`right`,className:`max-w-[200px]`,children:[(0,H.jsx)(`p`,{className:`font-medium`,children:e.name}),(0,H.jsx)(`p`,{className:`text-xs text-text-subtle truncate`,children:e.path})]})]}),(0,H.jsxs)(hf,{children:[(0,H.jsxs)(gf,{onClick:()=>P(e.name),children:[(0,H.jsx)(rt,{className:`size-3.5 mr-2`}),` Rename`]}),(0,H.jsxs)(gf,{onClick:()=>F(e.name,a),children:[(0,H.jsx)(et,{className:`size-3.5 mr-2`}),` Change Color`]}),(0,H.jsx)(_f,{}),(0,H.jsxs)(gf,{className:`text-destructive focus:text-destructive`,onClick:()=>ne(e.name),children:[(0,H.jsx)(ft,{className:`size-3.5 mr-2`}),` Delete`]})]})]},e.name)}),(0,H.jsxs)(jl,{children:[(0,H.jsx)(Ml,{asChild:!0,children:(0,H.jsx)(`button`,{onClick:ae,className:`size-10 rounded-full border-2 border-dashed border-border flex items-center justify-center text-text-subtle hover:border-primary hover:text-primary transition-colors`,children:(0,H.jsx)(it,{className:`size-4`})})}),(0,H.jsx)(Nl,{side:`right`,children:`Add Project`})]})]}),(0,H.jsxs)(`div`,{className:`shrink-0 flex flex-col items-center gap-1 py-2 border-t border-border`,children:[(0,H.jsxs)(jl,{children:[(0,H.jsx)(Ml,{asChild:!0,children:(0,H.jsx)(`button`,{ref:Se,onClick:Te,className:z(`flex items-center justify-center size-8 rounded-md transition-colors`,oe?`text-primary bg-primary/10`:`text-text-subtle hover:text-foreground hover:bg-surface-elevated`),children:(0,H.jsx)(ct,{className:`size-4`})})}),(0,H.jsx)(Nl,{side:`right`,children:`Share`})]}),oe&&Ce&&(0,_t.createPortal)((0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>se(!1)}),(0,H.jsxs)(`div`,{className:`fixed z-50 w-64 bg-background border border-border rounded-lg shadow-lg p-3 space-y-3`,style:{left:Ce.left,bottom:Ce.bottom},children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`text-sm font-medium`,children:`Share`}),(0,H.jsx)(`button`,{onClick:()=>se(!1),className:`text-text-subtle hover:text-foreground`,children:(0,H.jsx)(ht,{className:`size-3.5`})})]}),me&&(0,H.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground text-xs`,children:[(0,H.jsx)(Ge,{className:`size-4 animate-spin`}),(0,H.jsx)(`span`,{children:`Checking...`})]}),!me&&ue&&(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:`Local Network`}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,H.jsx)(`input`,{readOnly:!0,value:ue,className:`flex-1 text-xs font-mono text-foreground bg-muted px-2 py-1.5 rounded border border-border truncate`,onClick:e=>e.target.select()}),(0,H.jsx)(`button`,{onClick:()=>Oe(ue),className:`flex items-center justify-center size-7 rounded border border-border text-muted-foreground bg-muted hover:bg-accent hover:text-foreground transition-colors shrink-0`,title:`Copy URL`,children:ve===ue?(0,H.jsx)(xe,{className:`size-3.5 text-primary`}):(0,H.jsx)(De,{className:`size-3.5`})})]})]}),!me&&!ce&&!fe&&!ge&&(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Create a public link so others can access this PPM instance from anywhere.`}),(0,H.jsxs)(`button`,{onClick:Ee,className:`w-full flex items-center justify-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90 transition-colors`,children:[(0,H.jsx)(ct,{className:`size-3.5`}),`Start Sharing`]})]}),fe&&(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-2`,children:[(0,H.jsx)(Ge,{className:`size-5 animate-spin text-primary`}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Starting tunnel... this may take a moment`})]}),ge&&(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:ge}),(0,H.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,H.jsx)(`button`,{onClick:Ee,className:`flex-1 px-3 py-1.5 text-xs font-medium rounded-md border border-border hover:bg-muted transition-colors`,children:`Retry`}),(0,H.jsxs)(`button`,{onClick:()=>{se(!1),l()},className:`flex items-center gap-1 px-3 py-1.5 text-xs font-medium rounded-md border border-border text-destructive hover:bg-destructive/10 transition-colors`,children:[(0,H.jsx)(be,{className:`size-3`}),`Report`]})]})]}),ce&&(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(`span`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wide`,children:`Public (Cloudflare)`}),(0,H.jsx)(`div`,{className:`flex justify-center`,children:(0,H.jsx)(tm,{value:ce,size:160})}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,H.jsx)(`input`,{readOnly:!0,value:ce,className:`flex-1 text-xs font-mono text-foreground bg-muted px-2 py-1.5 rounded border border-border truncate`,onClick:e=>e.target.select()}),(0,H.jsx)(`button`,{onClick:()=>Oe(ce),className:`flex items-center justify-center size-7 rounded border border-border text-muted-foreground bg-muted hover:bg-accent hover:text-foreground transition-colors shrink-0`,title:`Copy URL`,children:ve===ce?(0,H.jsx)(xe,{className:`size-3.5 text-primary`}):(0,H.jsx)(De,{className:`size-3.5`})})]})]})]})]}),document.body),(0,H.jsxs)(jl,{children:[(0,H.jsx)(Ml,{asChild:!0,children:(0,H.jsx)(`button`,{onClick:l,className:`flex items-center justify-center size-8 rounded-md text-text-subtle hover:text-foreground hover:bg-surface-elevated transition-colors`,children:(0,H.jsx)(be,{className:`size-4`})})}),(0,H.jsx)(Nl,{side:`right`,children:`Report Bug`})]}),(0,H.jsxs)(jl,{children:[(0,H.jsx)(Ml,{asChild:!0,children:(0,H.jsx)(`button`,{onClick:ke,className:`flex items-center justify-center size-8 rounded-md text-text-subtle hover:text-foreground hover:bg-surface-elevated transition-colors`,children:(0,H.jsx)(st,{className:`size-4`})})}),(0,H.jsx)(Nl,{side:`right`,children:`Settings`})]})]}),(0,H.jsx)(Sf,{open:E,onOpenChange:D,children:(0,H.jsxs)(Tf,{className:`sm:max-w-sm`,children:[(0,H.jsx)(Ef,{children:(0,H.jsx)(Of,{children:`Add Project`})}),(0,H.jsx)(um,{onSuccess:()=>D(!1),onCancel:()=>D(!1)})]})}),(0,H.jsx)(Sf,{open:g,onOpenChange:_,children:(0,H.jsxs)(Tf,{className:`sm:max-w-sm`,children:[(0,H.jsx)(Ef,{children:(0,H.jsx)(Of,{children:`Rename Project`})}),(0,H.jsx)(`input`,{type:`text`,value:b,onChange:e=>x(e.target.value),onKeyDown:e=>{e.key===`Enter`&&re()},className:`w-full px-3 py-2 rounded-md border border-border bg-background text-sm focus:outline-none focus:ring-1 focus:ring-primary`,autoFocus:!0}),(0,H.jsxs)(Df,{children:[(0,H.jsx)(`button`,{onClick:()=>_(!1),className:`px-3 py-1.5 text-sm text-text-secondary hover:text-foreground transition-colors`,children:`Cancel`}),(0,H.jsx)(`button`,{onClick:re,className:`px-3 py-1.5 text-sm bg-primary text-white rounded-md hover:bg-primary/90 transition-colors`,children:`Rename`})]})]})}),(0,H.jsx)(Sf,{open:S,onOpenChange:C,children:(0,H.jsxs)(Tf,{className:`sm:max-w-sm`,children:[(0,H.jsx)(Ef,{children:(0,H.jsx)(Of,{children:`Delete Project`})}),(0,H.jsxs)(`p`,{className:`text-sm text-text-secondary`,children:[`Remove `,(0,H.jsx)(`strong`,{className:`text-foreground`,children:w}),` from PPM? The files on disk won't be deleted.`]}),(0,H.jsxs)(Df,{children:[(0,H.jsx)(`button`,{onClick:()=>C(!1),className:`px-3 py-1.5 text-sm text-text-secondary hover:text-foreground transition-colors`,children:`Cancel`}),(0,H.jsx)(`button`,{onClick:L,className:`px-3 py-1.5 text-sm bg-destructive text-white rounded-md hover:bg-destructive/90 transition-colors`,children:`Delete`})]})]})}),(0,H.jsx)(Sf,{open:O,onOpenChange:k,children:(0,H.jsxs)(Tf,{className:`sm:max-w-sm`,children:[(0,H.jsx)(Ef,{children:(0,H.jsx)(Of,{children:`Change Color`})}),(0,H.jsx)(fm,{current:te,onChange:j}),(0,H.jsxs)(Df,{children:[(0,H.jsx)(`button`,{onClick:()=>k(!1),className:`px-3 py-1.5 text-sm text-text-secondary hover:text-foreground transition-colors`,children:`Cancel`}),(0,H.jsx)(`button`,{onClick:ie,disabled:M,className:`px-3 py-1.5 text-sm bg-primary text-white rounded-md hover:bg-primary/90 transition-colors disabled:opacity-50`,children:M?`Saving…`:`Save`})]})]})})]})}var mm=[{type:`terminal`,label:`Terminal`},{type:`chat`,label:`AI Chat`},{type:`git-graph`,label:`Git Graph`},{type:`settings`,label:`Settings`}],hm=Object.fromEntries(mm.map(e=>[e.type,e.label])),gm={terminal:dt,chat:Je,editor:Ae,database:Oe,sqlite:Oe,postgres:Oe,"git-graph":Re,"git-diff":je,settings:st};function _m({onMenuPress:e,onProjectsPress:t}){let n=F(e=>e.focusedPanelId),r=F(e=>e.panels[e.focusedPanelId]);F(e=>Object.keys(e.panels).length);let i=F(e=>e.grid),a=r?.tabs??[],o=r?.activeTabId??null,s=(0,V.useRef)(new Map),c=(0,V.useRef)(a.length),[l,u]=(0,V.useState)(null),[d,f]=(0,V.useState)(!1),p=(0,V.useRef)(null);(0,V.useEffect)(()=>{a.length>c.current&&o&&s.current.get(o)?.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`nearest`}),c.current=a.length},[a.length,o]);let m=(0,V.useCallback)(e=>{p.current=setTimeout(()=>u(e),400)},[]),h=(0,V.useCallback)(()=>{p.current&&=(clearTimeout(p.current),null)},[]),g=re(i,n)?i.length<3:!1,_=Object.keys(F.getState().panels).filter(e=>e!==n);function v(e){let t=a.findIndex(t=>t.id===e);t>0&&F.getState().reorderTab(e,n,t-1)}function y(e){let t=a.findIndex(t=>t.id===e);t<a.length-1&&F.getState().reorderTab(e,n,t+1)}function b(e){F.getState().splitPanel(`down`,e,n)}function x(e,t){F.getState().moveTab(e,n,t)}let S=l?a.find(e=>e.id===l):null,C=l?a.findIndex(e=>e.id===l):-1,{activeProject:w}=Dd.getState();function T(e){let t=e===`git-graph`||e===`git-diff`||e===`terminal`||e===`chat`?{projectName:w?.name}:void 0;F.getState().openTab({type:e,title:hm[e]??e,metadata:t,projectId:w?.name??null,closable:!0},n),f(!1)}let{activeProject:E,projects:D,customOrder:O}=Dd(),k=Ed(D,O??null),A=k.map(e=>e.name),ee=k.findIndex(e=>e.name===E?.name),te=E?cm(E.color,ee>=0?ee:0):`#4f86c6`,j=E?lm(E.name,A):null;return(0,H.jsxs)(`nav`,{className:`fixed bottom-0 left-0 right-0 md:hidden bg-background border-t border-border z-40 select-none`,children:[(0,H.jsxs)(`div`,{className:`flex items-center h-12`,children:[(0,H.jsx)(`button`,{onClick:e,className:`flex items-center justify-center size-12 shrink-0 text-text-secondary border-r border-border`,children:(0,H.jsx)(qe,{className:`size-5`})}),(0,H.jsx)(`div`,{className:`flex-1 flex items-center h-12 overflow-x-auto`,children:a.map(e=>{let t=gm[e.type];return(0,H.jsxs)(`button`,{ref:t=>{t?s.current.set(e.id,t):s.current.delete(e.id)},onClick:()=>F.getState().setActiveTab(e.id),onTouchStart:()=>m(e.id),onTouchEnd:h,onTouchMove:h,onContextMenu:e=>e.preventDefault(),className:z(`flex items-center gap-1 px-3 h-12 whitespace-nowrap text-xs shrink-0 border-t-2 transition-colors`,e.id===o?`border-primary bg-surface text-primary`:`border-transparent text-text-secondary`),children:[(0,H.jsx)(t,{className:`size-4`}),(0,H.jsx)(`span`,{className:`max-w-[80px] truncate`,children:e.title}),e.closable&&(0,H.jsx)(`span`,{role:`button`,tabIndex:0,onClick:t=>{t.stopPropagation(),F.getState().closeTab(e.id)},className:`ml-0.5 p-0.5 rounded hover:bg-surface-elevated`,children:(0,H.jsx)(ht,{className:`size-3`})})]},e.id)})}),(0,H.jsx)(`button`,{onClick:()=>Hd(),className:`flex items-center justify-center size-12 shrink-0 border-t-2 border-transparent text-text-secondary`,children:(0,H.jsx)(it,{className:`size-4`})}),(0,H.jsx)(`button`,{onClick:t,className:`flex items-center justify-center size-12 shrink-0 text-text-secondary border-l border-border`,title:`Switch project`,children:j?(0,H.jsx)(`div`,{className:`size-7 rounded-full flex items-center justify-center text-[10px] font-bold text-white`,style:{background:te},children:j}):(0,H.jsx)(Ue,{className:`size-5`})})]}),d&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`fixed inset-0 z-50`,onClick:()=>f(!1)}),(0,H.jsxs)(`div`,{className:`fixed bottom-14 left-2 right-2 z-50 bg-surface border border-border rounded-lg shadow-lg overflow-hidden animate-in slide-in-from-bottom-2 duration-150`,children:[(0,H.jsx)(`div`,{className:`px-3 py-2 text-xs text-text-secondary border-b border-border`,children:`New Tab`}),mm.map(e=>{let t=gm[e.type];return(0,H.jsxs)(`button`,{onClick:()=>T(e.type),className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,H.jsx)(t,{className:`size-4`}),` `,e.label]},e.type)})]})]}),S&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`fixed inset-0 z-50`,onClick:()=>u(null)}),(0,H.jsxs)(`div`,{className:`fixed bottom-14 left-2 right-2 z-50 bg-surface border border-border rounded-lg shadow-lg overflow-hidden animate-in slide-in-from-bottom-2 duration-150`,children:[(0,H.jsx)(`div`,{className:`px-3 py-2 text-xs text-text-secondary border-b border-border truncate`,children:S.title}),C>0&&(0,H.jsxs)(`button`,{onClick:()=>{v(l),u(null)},className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,H.jsx)(he,{className:`size-4`}),` Move Left`]}),C<a.length-1&&(0,H.jsxs)(`button`,{onClick:()=>{y(l),u(null)},className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,H.jsx)(ge,{className:`size-4`}),` Move Right`]}),g&&a.length>1&&(0,H.jsxs)(`button`,{onClick:()=>{b(l),u(null)},className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,H.jsx)(lt,{className:`size-4`}),` Split to Bottom`]}),_.map((e,t)=>(0,H.jsxs)(`button`,{onClick:()=>{x(l,e),u(null)},className:`flex items-center gap-2 w-full px-3 py-2.5 text-sm text-foreground active:bg-surface-elevated`,children:[(0,H.jsx)(Qe,{className:`size-4`}),` Move to Panel `,t+1===1?`Top`:`Bottom`]},e))]})]})]})}var vm=[{id:`explorer`,label:`Explorer`,icon:Fe},{id:`git`,label:`Git`,icon:Re},{id:`database`,label:`Database`,icon:Oe},{id:`settings`,label:`Settings`,icon:st}];function ym({isOpen:e,onClose:t,initialTab:n}){let{activeProject:r}=Dd(),i=R(e=>e.version),[a,o]=(0,V.useState)(n??`explorer`);(0,V.useEffect)(()=>{n&&o(n)},[n]);let s=(0,V.useCallback)(()=>om(i),[i]);return(0,H.jsxs)(`div`,{className:z(`fixed inset-0 z-50 md:hidden transition-opacity duration-200`,e?`opacity-100`:`opacity-0 pointer-events-none`),children:[(0,H.jsx)(`div`,{className:`absolute inset-0 bg-black/50`,onClick:t,"aria-label":`Close drawer`}),(0,H.jsxs)(`div`,{className:z(`fixed left-0 top-0 bottom-0 w-[90vw] bg-background border-r border-border`,`z-50 flex flex-col transition-transform duration-300 ease-out`,e?`translate-x-0`:`-translate-x-full`),children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b border-border shrink-0`,children:[(0,H.jsx)(`span`,{className:`text-sm font-bold text-primary tracking-tight`,children:r?.name??`PPM`}),(0,H.jsx)(`button`,{onClick:t,className:`flex items-center justify-center size-8 rounded-md hover:bg-surface-elevated transition-colors`,children:(0,H.jsx)(ht,{className:`size-4`})})]}),(0,H.jsxs)(`div`,{className:`flex-1 overflow-y-auto min-h-0`,children:[a===`explorer`&&(r?(0,H.jsx)(Pf,{onFileOpen:t}):(0,H.jsx)(`p`,{className:`px-4 py-6 text-xs text-text-secondary text-center`,children:`Select a project from the bottom nav bar`})),a===`git`&&(0,H.jsx)(Hf,{metadata:{projectName:r?.name},onNavigate:t}),a===`database`&&(0,H.jsx)(Tp,{}),a===`settings`&&(0,H.jsx)(_p,{})]}),(0,H.jsxs)(`div`,{className:`shrink-0 border-t border-border`,children:[(0,H.jsx)(`div`,{className:`flex items-center`,children:vm.map(e=>{let t=e.icon;return(0,H.jsxs)(`button`,{onClick:()=>o(e.id),className:z(`flex-1 flex flex-col items-center gap-0.5 py-2.5 text-[10px] transition-colors`,a===e.id?`text-primary`:`text-text-secondary`),children:[(0,H.jsx)(t,{className:`size-4`}),(0,H.jsx)(`span`,{children:e.label})]},e.id)})}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-t border-border`,children:[i&&(0,H.jsxs)(`span`,{className:`text-[10px] text-text-subtle`,children:[`v`,i]}),(0,H.jsxs)(`button`,{onClick:s,className:`flex items-center gap-1 text-[10px] text-text-subtle hover:text-text-secondary transition-colors`,children:[(0,H.jsx)(be,{className:`size-3`}),(0,H.jsx)(`span`,{children:`Report Bug`})]})]})]})]})]})}function bm({name:e,color:t,allNames:n}){let r=lm(e,n);return(0,H.jsx)(`div`,{className:`size-10 rounded-full flex items-center justify-center text-xs font-bold text-white shrink-0`,style:{background:t},children:r})}function xm({isOpen:e,onClose:t}){let{projects:n,activeProject:r,setActiveProject:i,setProjectColor:a,reorderProjects:o,renameProject:s,deleteProject:c,customOrder:l}=Dd();I(e=>e.openTab);let u=R(e=>e.version),d=Ed(n,l),f=d.map(e=>e.name),[p,m]=(0,V.useState)(`list`),[h,g]=(0,V.useState)(null),[_,v]=(0,V.useState)(``),[y,b]=(0,V.useState)(!1),x=(0,V.useRef)(null),[S,C]=(0,V.useState)(null),[w,T]=(0,V.useState)(``),E=(0,V.useCallback)(e=>{x.current=setTimeout(()=>g(e),400)},[]),D=(0,V.useCallback)(()=>{x.current&&=(clearTimeout(x.current),null)},[]);function O(){m(`list`),t()}function k(e){let t=n.find(t=>t.name===e);t&&(i(t),O())}function A(){m(`add`)}function ee(){if(O(),window.innerWidth<768){window.dispatchEvent(new Event(`open-mobile-settings`));return}let{sidebarCollapsed:e,toggleSidebar:t,setSidebarActiveTab:n}=R.getState();e&&t(),n(`settings`)}async function te(){if(!S||!w.trim()||w===S){C(null);return}try{await s(S,w.trim())}catch{}C(null)}async function j(e){g(null);try{await c(e)}catch{}}async function M(e,t){try{await a(e,t),b(!1),g(null)}catch(e){console.error(`Failed to save color:`,e)}}h&&d.find(e=>e.name===h);let N=h?d.findIndex(e=>e.name===h):-1,P=h?[{label:`Rename`,icon:rt,onClick:()=>{T(h),C(h),g(null)}},{label:`Change Color`,icon:et,onClick:()=>{let e=d.findIndex(e=>e.name===h),t=d[e];v(cm(t?.color,e)),b(!0)}},...N>0?[{label:`Move Up`,icon:we,onClick:()=>{let e=d.map(e=>e.name),[t]=e.splice(N,1);e.splice(N-1,0,t),o(e),g(null)}}]:[],...N<d.length-1?[{label:`Move Down`,icon:Se,onClick:()=>{let e=d.map(e=>e.name),[t]=e.splice(N,1);e.splice(N+1,0,t),o(e),g(null)}}]:[],{label:`Delete`,icon:ft,destructive:!0,onClick:()=>j(h)}]:[];return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:z(`fixed inset-0 z-50 md:hidden transition-opacity duration-200`,e?`opacity-100`:`opacity-0 pointer-events-none`),onClick:O,style:{backgroundColor:`rgba(0,0,0,0.5)`}}),(0,H.jsxs)(`div`,{className:z(`fixed bottom-0 left-0 right-0 z-50 md:hidden bg-background rounded-t-2xl border-t border-border shadow-2xl`,`transition-transform duration-300 ease-out`,e?`translate-y-0`:`translate-y-full`),children:[(0,H.jsx)(`div`,{className:`flex justify-center pt-3 pb-1`,children:(0,H.jsx)(`div`,{className:`w-10 h-1 rounded-full bg-border`})}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-border`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p===`add`&&(0,H.jsx)(`button`,{onClick:()=>m(`list`),className:`flex items-center justify-center size-7 rounded-md hover:bg-surface-elevated transition-colors`,children:(0,H.jsx)(he,{className:`size-4`})}),(0,H.jsx)(`span`,{className:`text-sm font-semibold`,children:p===`add`?`Add Project`:`Projects`})]}),(0,H.jsx)(`button`,{onClick:O,className:`flex items-center justify-center size-7 rounded-md hover:bg-surface-elevated transition-colors`,children:(0,H.jsx)(ht,{className:`size-4`})})]}),p===`add`&&(0,H.jsx)(`div`,{className:`px-4 py-4`,children:(0,H.jsx)(um,{onSuccess:()=>{m(`list`),t()},onCancel:()=>m(`list`),footerClassName:`pt-2`})}),(0,H.jsx)(`div`,{className:p===`add`?`hidden`:`max-h-[60vh] overflow-y-auto`,children:d.map((e,t)=>{let n=cm(e.color,t),i=r?.name===e.name,a=S===e.name;return(0,H.jsxs)(`div`,{className:z(`flex items-center gap-3 px-4 py-3 transition-colors active:bg-surface-elevated`,i&&`bg-accent/10`),onClick:()=>!a&&k(e.name),onTouchStart:()=>E(e.name),onTouchEnd:D,onTouchMove:D,children:[(0,H.jsx)(bm,{name:e.name,color:n,allNames:f}),(0,H.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[a?(0,H.jsx)(`input`,{type:`text`,value:w,onChange:e=>T(e.target.value),onKeyDown:e=>{e.key===`Enter`&&te(),e.key===`Escape`&&C(null)},onBlur:te,onClick:e=>e.stopPropagation(),className:`w-full bg-transparent border-b border-primary text-sm outline-none`,autoFocus:!0}):(0,H.jsx)(`p`,{className:`text-sm font-medium truncate`,children:e.name}),(0,H.jsx)(`p`,{className:`text-xs text-text-subtle truncate`,children:e.path})]}),i&&(0,H.jsx)(xe,{className:`size-4 text-primary shrink-0`})]},e.name)})}),(0,H.jsx)(`div`,{className:`border-t border-border`,children:(0,H.jsxs)(`button`,{onClick:A,className:`w-full flex items-center gap-3 px-4 py-3 text-text-secondary hover:bg-surface-elevated transition-colors`,children:[(0,H.jsx)(it,{className:`size-4 shrink-0`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Add Project`})]})}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-t border-border`,children:[(0,H.jsxs)(`button`,{onClick:ee,className:`flex items-center gap-2 text-text-secondary hover:text-foreground transition-colors`,children:[(0,H.jsx)(st,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Settings`})]}),u&&(0,H.jsxs)(`span`,{className:`text-xs text-text-subtle`,children:[`v`,u]})]})]}),h&&!y&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`fixed inset-0 z-[60] md:hidden`,onClick:()=>g(null)}),(0,H.jsxs)(`div`,{className:`fixed bottom-0 left-0 right-0 z-[61] md:hidden bg-surface border-t border-border rounded-t-2xl shadow-2xl animate-in slide-in-from-bottom-2 duration-150`,children:[(0,H.jsx)(`div`,{className:`px-4 py-2 border-b border-border`,children:(0,H.jsx)(`p`,{className:`text-xs font-medium text-text-secondary`,children:h})}),P.map(e=>{let t=e.icon;return(0,H.jsxs)(`button`,{onClick:e.onClick,className:z(`w-full flex items-center gap-3 px-4 py-3 text-sm transition-colors active:bg-surface-elevated`,e.destructive?`text-destructive`:`text-foreground`),children:[(0,H.jsx)(t,{className:`size-4 shrink-0`}),e.label]},e.label)})]})]}),y&&h&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`fixed inset-0 z-[60] md:hidden`,onClick:()=>{b(!1),g(null)}}),(0,H.jsxs)(`div`,{className:`fixed bottom-0 left-0 right-0 z-[61] md:hidden bg-surface border-t border-border rounded-t-2xl shadow-2xl p-4 space-y-4`,children:[(0,H.jsx)(`p`,{className:`text-sm font-medium`,children:`Change Color`}),(0,H.jsx)(`div`,{className:`flex flex-wrap gap-3`,children:sm.map(e=>(0,H.jsx)(`button`,{type:`button`,onClick:()=>v(e),className:z(`size-9 rounded-full border-2 transition-all`,_===e?`border-primary scale-110`:`border-transparent`),style:{background:e}},e))}),(0,H.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,H.jsx)(`button`,{onClick:()=>{b(!1),g(null)},className:`flex-1 py-2 text-sm text-text-secondary border border-border rounded-md`,children:`Cancel`}),(0,H.jsx)(`button`,{onClick:()=>M(h,_),className:`flex-1 py-2 text-sm bg-primary text-white rounded-md`,children:`Save`})]})]})]})]})}function Sm({onSuccess:e}){let[t,n]=(0,V.useState)(``),r=R(e=>e.deviceName),[i,a]=(0,V.useState)(null),[o,s]=(0,V.useState)(!1);async function c(n){if(n.preventDefault(),t.trim()){s(!0),a(null);try{se(t.trim());let n=await(await fetch(`/api/auth/check`,{headers:{Authorization:`Bearer ${t.trim()}`}})).json();if(!n.ok)throw Error(n.error??`Invalid token`);e()}catch(e){a(e instanceof Error?e.message:`Authentication failed`),localStorage.removeItem(`ppm-auth-token`)}finally{s(!1)}}}return(0,H.jsx)(`div`,{className:`min-h-dvh flex items-center justify-center bg-background p-4`,children:(0,H.jsxs)(`div`,{className:`w-full max-w-sm bg-surface rounded-lg border border-border p-6 space-y-6`,children:[(0,H.jsxs)(`div`,{className:`text-center space-y-2`,children:[(0,H.jsx)(`div`,{className:`flex items-center justify-center size-12 mx-auto rounded-full bg-surface-elevated`,children:(0,H.jsx)(Ke,{className:`size-6 text-primary`})}),(0,H.jsx)(`h1`,{className:`text-xl font-semibold text-foreground`,children:`PPM`}),r&&(0,H.jsx)(`p`,{className:`text-xs text-text-subtle bg-surface-elevated inline-block px-2 py-0.5 rounded-full`,children:r}),(0,H.jsx)(`p`,{className:`text-sm text-text-secondary`,children:`Enter your access password to unlock`})]}),(0,H.jsxs)(`form`,{onSubmit:c,className:`space-y-4`,children:[(0,H.jsx)(`div`,{children:(0,H.jsx)(O,{type:`password`,placeholder:`Auth token`,value:t,onChange:e=>n(e.target.value),className:`h-11 bg-background border-border`,autoFocus:!0})}),i&&(0,H.jsxs)(`div`,{className:`flex items-center gap-2 text-error text-sm`,children:[(0,H.jsx)(Te,{className:`size-4 shrink-0`}),(0,H.jsx)(`span`,{children:i})]}),(0,H.jsx)(xf,{type:`submit`,disabled:o||!t.trim(),className:`w-full h-11`,children:o?`Checking...`:`Unlock`})]})]})})}var Cm=5e3,wm=`/api/health`,Tm=`/api/logs/recent`,Em=`hienlh/ppm`;async function Dm(){try{let e=await(await fetch(Tm,{signal:AbortSignal.timeout(3e3)})).json();return e.ok?e.data.logs:`(failed to fetch logs)`}catch{return`(server logs unavailable)`}}async function Om(){let e=await Dm(),t=encodeURIComponent([`## Environment`,`- URL: ${window.location.href}`,`- UserAgent: ${navigator.userAgent}`,`- Time: ${new Date().toISOString()}`,``,`## Description`,`The PPM server went down and restarted unexpectedly.`,``,`## Steps to Reproduce`,`1. `,``,`## Recent Server Logs`,"```",e,"```"].join(`
21
- `));window.open(`https://github.com/${Em}/issues/new?title=bug%3A%20server%20crashed%20unexpectedly&body=${t}`,`_blank`)}function km(){let e=(0,V.useRef)(!1),t=(0,V.useRef)(!0);(0,V.useEffect)(()=>{let n;async function r(){try{(await fetch(wm,{signal:AbortSignal.timeout(3e3)})).ok?(e.current&&!t.current&&(Nt.warning(`Server was restarted`,{description:`PPM server went down and recovered. If unexpected, please report it.`,duration:15e3,action:{label:`Report Bug`,onClick:()=>Om()}}),e.current=!1),t.current=!1):e.current=!0}catch{!e.current&&!t.current&&Nt.error(`Server unreachable`,{description:`PPM server is not responding. It may have crashed.`,duration:1e4}),e.current=!0}}let i=setTimeout(()=>{r(),n=setInterval(r,Cm)},Cm);return()=>{clearTimeout(i),clearInterval(n)}},[])}function Am(e){let t=[];for(let n of e)n.type===`file`&&t.push({name:n.name,path:n.path}),n.children&&t.push(...Am(n.children));return t}function jm(e){return e?e.startsWith(`/`)||e.startsWith(`~/`)||e.startsWith(`~\\`)||/^[A-Za-z]:[/\\]/.test(e):!1}function Mm(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 Nm=new Map;function Pm({open:e,onClose:t,initialQuery:n=``}){let[r,i]=(0,V.useState)(``),[a,o]=(0,V.useState)(0),[s,c]=(0,V.useState)([]),[l,u]=(0,V.useState)(!1),[d,f]=(0,V.useState)([]),p=(0,V.useRef)(null),m=(0,V.useRef)(null),h=I(e=>e.openTab),g=Dd(e=>e.activeProject),_=uf(e=>e.tree),v=R(e=>e.setSidebarActiveTab),y=R(e=>e.sidebarCollapsed),b=R(e=>e.toggleSidebar),x=(0,V.useCallback)(async e=>{if(Nm.has(e)){c(Nm.get(e));return}u(!0);try{let t=await B.get(`/api/fs/list?dir=${encodeURIComponent(e)}`);Nm.set(e,t),c(t)}catch{c([])}finally{u(!1)}},[]);(0,V.useEffect)(()=>{if(!jm(r)){c([]);return}x(Mm(r))},[r,x]),(0,V.useEffect)(()=>{if(jm(r)||r.trim().length<2){f([]);return}let e=setTimeout(async()=>{try{f(await B.get(`/api/db/search?q=${encodeURIComponent(r.trim())}`)??[])}catch{f([])}},300);return()=>clearTimeout(e)},[r]);let S=(0,V.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0,r=(r,i)=>()=>{h({type:r,title:i,projectId:e,metadata:n,closable:!0}),t()};return[{id:`terminal`,label:`New Terminal`,icon:dt,action:r(`terminal`,`Terminal`),keywords:`bash shell console`,group:`action`},{id:`chat`,label:`New AI Chat`,icon:Je,action:r(`chat`,`AI Chat`),keywords:`ai assistant claude`,group:`action`},{id:`git-graph`,label:`Git Graph`,icon:Re,action:r(`git-graph`,`Git Graph`),keywords:`branch history log`,group:`action`},{id:`postgres`,label:`PostgreSQL`,icon:Oe,action:r(`postgres`,`PostgreSQL`),keywords:`database pg sql query`,group:`action`},{id:`git-status`,label:`Git Status`,icon:ze,action:()=>{v(`git`),t()},keywords:`changes diff staged`,group:`action`},{id:`settings`,label:`Settings`,icon:st,action:()=>{y&&b(),v(`settings`),t()},keywords:`config preferences theme`,group:`action`}]},[g,h,t,v,y,b]),C=(0,V.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0;return Am(_).map(r=>({id:`file:${r.path}`,label:r.name,hint:r.path,icon:Ae,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,V.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0;return s.map(r=>{let i=oe(r);return{id:`fs:${r}`,label:i,hint:r,icon:Fe,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,V.useMemo)(()=>d.map(e=>({id:`db:${e.connectionId}:${e.schemaName}.${e.tableName}`,label:e.tableName,hint:`${e.connectionName} (${e.connectionType===`postgres`?`PG`:`SQLite`})`,icon:Oe,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,V.useMemo)(()=>[...S,...C],[S,C]),D=(0,V.useMemo)(()=>{if(jm(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,V.useEffect)(()=>{e&&(i(n||``),o(0),c([]),f([]),requestAnimationFrame(()=>p.current?.focus()))},[e]),(0,V.useEffect)(()=>{o(e=>Math.min(e,Math.max(D.length-1,0)))},[D.length]),(0,V.useEffect)(()=>{let e=m.current;e&&e.children[a]?.scrollIntoView({block:`nearest`})},[a]);let O=(0,V.useCallback)(()=>{r.trim()&&(h({type:`chat`,title:`AI Chat`,projectId:g?.name??null,metadata:{projectName:g?.name,pendingMessage:r.trim()},closable:!0}),t())},[r,g,h,t]);function k(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 A=jm(r);return(0,H.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:t,children:[(0,H.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,H.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:k,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-3 py-2.5`,children:[(0,H.jsx)(ot,{className:`size-4 text-text-subtle shrink-0`}),(0,H.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,H.jsx)(Ge,{className:`size-3.5 animate-spin text-text-subtle shrink-0`}),(0,H.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`})]}),A&&!l&&s.length===0&&r.length<4&&(0,H.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,H.jsx)(`div`,{ref:m,className:`max-h-72 overflow-y-auto py-1`,children:D.length===0?l?(0,H.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`Searching...`}):r.trim()?(0,H.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,H.jsx)(Je,{className:`size-4 shrink-0 text-accent`}),(0,H.jsxs)(`span`,{children:[`Ask AI: `,(0,H.jsx)(`span`,{className:`text-text-primary font-medium`,children:r.trim().slice(0,60)})]})]}):(0,H.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,H.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,H.jsx)(n,{className:`size-4 shrink-0`}),(0,H.jsx)(`span`,{className:`truncate`,children:e.label}),e.hint&&(0,H.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 text-xs text-text-subtle truncate max-w-[200px]`,children:[e.connectionColor&&(0,H.jsx)(`span`,{className:`shrink-0 size-2 rounded-full`,style:{backgroundColor:e.connectionColor}}),e.hint]})]},e.id)})}),(0,H.jsxs)(`div`,{className:`flex items-center justify-center gap-1.5 border-t border-border px-3 py-1.5`,children:[(0,H.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`Press`}),(0,H.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,H.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,H.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`to open this palette`})]})]})]})}function Fm(){let[e,t]=(0,V.useState)(null),[n,r]=(0,V.useState)(!1);(0,V.useEffect)(()=>{function e(e){let n=e.detail;n&&(t(n),r(!1))}return window.addEventListener(`open-bug-report`,e),()=>window.removeEventListener(`open-bug-report`,e)},[]);let i=(0,V.useCallback)(()=>t(null),[]);return e?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/50`,onClick:i}),(0,H.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,H.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-border`,children:[(0,H.jsx)(`span`,{className:`text-sm font-medium`,children:`Bug Report`}),(0,H.jsx)(`button`,{onClick:i,className:`p-1 rounded hover:bg-surface-elevated`,children:(0,H.jsx)(ht,{className:`size-4`})})]}),(0,H.jsx)(`pre`,{className:`flex-1 overflow-auto px-4 py-2 text-xs font-mono whitespace-pre-wrap break-all`,children:e}),(0,H.jsxs)(`div`,{className:`flex gap-2 p-3 border-t border-border`,children:[(0,H.jsxs)(`button`,{onClick:async()=>{await am(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,H.jsx)(xe,{className:`size-3`}):(0,H.jsx)(De,{className:`size-3`}),n?`Copied`:`Copy`]}),(0,H.jsxs)(`button`,{onClick:()=>{im(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,H.jsx)(P,{className:`size-3`}),`Open GitHub Issue`]})]})]})]}):null}function Im(){let[e,t]=(0,V.useState)(`checking`),[n,r]=(0,V.useState)(!1),[i,a]=(0,V.useState)(),[o,s]=(0,V.useState)(!1);(0,V.useEffect)(()=>{let e=()=>{a(`settings`),r(!0)};return window.addEventListener(`open-mobile-settings`,e),()=>window.removeEventListener(`open-mobile-settings`,e)},[]);let[c,l]=(0,V.useState)(()=>new Set([`__global__`])),u=R(e=>e.theme),d=R(e=>e.deviceName),f=Dd(e=>e.fetchProjects),p=R(e=>e.fetchServerInfo),m=Dd(e=>e.activeProject);(0,V.useEffect)(()=>{if(ie(u),u===`system`){let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>ie(`system`);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)}},[u]),(0,V.useEffect)(()=>{p()},[p]),(0,V.useEffect)(()=>{async function e(){let e=le();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()},[]),Sd();let{paletteOpen:h,paletteInitialQuery:g,closePalette:_}=Ud();km(),(0,V.useEffect)(()=>{e===`authenticated`&&ef(async()=>{let{useKeybindingsStore:e}=await import(`./keybindings-store-BVTJScRw.js`);return{useKeybindingsStore:e}},__vite__mapDeps([22,1,11])).then(({useKeybindingsStore:e})=>{e.getState().loadFromServer()})},[e]),(0,V.useEffect)(()=>{e===`authenticated`&&f().then(()=>{let{projectName:e,tabId:t}=bd(),n=Dd.getState().projects;if(e){let r=n.find(t=>t.name===e);if(r){Dd.getState().setActiveProject(r),t&&queueMicrotask(()=>{let{tabs:e}=I.getState();e.some(e=>e.id===t)&&I.getState().setActiveTab(t)});return}}})},[e,f]),(0,V.useEffect)(()=>{let e=m?.name??`__global__`;I.getState().switchProject(e)},[m?.name]),(0,V.useEffect)(()=>{let e=m?.name??`__global__`;l(t=>t.has(e)?t:new Set([...t,e]))},[m?.name]),(0,V.useEffect)(()=>{e===`authenticated`&&!m&&I.getState().switchProject(`__global__`)},[e,m]);let v=(0,V.useCallback)(()=>{t(`authenticated`)},[]);if(e===`checking`)return(0,H.jsx)(`div`,{className:`min-h-dvh flex items-center justify-center bg-background`,children:(0,H.jsx)(`div`,{className:`animate-pulse text-text-secondary text-sm`,children:`Loading...`})});if(e===`unauthenticated`)return(0,H.jsx)(Sm,{onSuccess:v});let y=m?.name??`__global__`;return(0,H.jsx)(Al,{children:(0,H.jsxs)(`div`,{className:`h-dvh flex flex-col bg-background text-foreground overflow-hidden relative`,children:[d&&(0,H.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,H.jsxs)(`div`,{className:`flex flex-1 overflow-hidden`,children:[(0,H.jsx)(pm,{}),(0,H.jsx)(Op,{}),[...c].map(e=>(0,H.jsx)(`div`,{className:z(`flex-1 overflow-hidden pb-12 md:pb-0`,y!==e&&`hidden`),children:(0,H.jsx)(of,{projectName:e})},e))]}),(0,H.jsx)(_m,{onMenuPress:()=>r(!0),onProjectsPress:()=>s(!0)}),(0,H.jsx)(ym,{isOpen:n,onClose:()=>{r(!1),a(void 0)},initialTab:i}),(0,H.jsx)(xm,{isOpen:o,onClose:()=>s(!1)}),(0,H.jsx)(Pm,{open:h,onClose:_,initialQuery:g}),(0,H.jsx)(Fm,{}),(0,H.jsx)(Yt,{position:`bottom-left`,closeButton:!0,toastOptions:{className:`bg-surface border-border text-foreground`}})]})})}(0,gt.createRoot)(document.getElementById(`root`)).render((0,H.jsx)(V.StrictMode,{children:(0,H.jsx)(Im,{})}));export{Ve as A,Ce as B,ft as C,rt as D,at as E,Ae as F,xe as H,Oe as I,De as L,Le as M,Pe as N,Je as O,Me as P,Ee as R,ht as S,ot as T,_e as U,Se as V,Hd as _,Tf as a,zd as b,Of as c,hf as d,gf as f,ef as g,uf as h,Sf as i,Re as j,Ge as k,xf as l,mf as m,_p as n,Df as o,_f as p,sp as r,Ef as s,om as t,pf as u,Fd as v,dt as w,Vd as x,Bd as y,Te as z};
21
+ `));window.open(`https://github.com/${Em}/issues/new?title=bug%3A%20server%20crashed%20unexpectedly&body=${t}`,`_blank`)}function km(){let e=(0,V.useRef)(!1),t=(0,V.useRef)(!0);(0,V.useEffect)(()=>{let n;async function r(){try{(await fetch(wm,{signal:AbortSignal.timeout(3e3)})).ok?(e.current&&!t.current&&(Nt.warning(`Server was restarted`,{description:`PPM server went down and recovered. If unexpected, please report it.`,duration:15e3,action:{label:`Report Bug`,onClick:()=>Om()}}),e.current=!1),t.current=!1):e.current=!0}catch{!e.current&&!t.current&&Nt.error(`Server unreachable`,{description:`PPM server is not responding. It may have crashed.`,duration:1e4}),e.current=!0}}let i=setTimeout(()=>{r(),n=setInterval(r,Cm)},Cm);return()=>{clearTimeout(i),clearInterval(n)}},[])}function Am(e){let t=[];for(let n of e)n.type===`file`&&t.push({name:n.name,path:n.path}),n.children&&t.push(...Am(n.children));return t}function jm(e){return e?e.startsWith(`/`)||e.startsWith(`~/`)||e.startsWith(`~\\`)||/^[A-Za-z]:[/\\]/.test(e):!1}function Mm(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 Nm=new Map;function Pm({open:e,onClose:t,initialQuery:n=``}){let[r,i]=(0,V.useState)(``),[a,o]=(0,V.useState)(0),[s,c]=(0,V.useState)([]),[l,u]=(0,V.useState)(!1),[d,f]=(0,V.useState)([]),p=(0,V.useRef)(null),m=(0,V.useRef)(null),h=I(e=>e.openTab),g=Dd(e=>e.activeProject),_=uf(e=>e.tree),v=R(e=>e.setSidebarActiveTab),y=R(e=>e.sidebarCollapsed),b=R(e=>e.toggleSidebar),x=(0,V.useCallback)(async e=>{if(Nm.has(e)){c(Nm.get(e));return}u(!0);try{let t=await B.get(`/api/fs/list?dir=${encodeURIComponent(e)}`);Nm.set(e,t),c(t)}catch{c([])}finally{u(!1)}},[]);(0,V.useEffect)(()=>{if(!jm(r)){c([]);return}x(Mm(r))},[r,x]),(0,V.useEffect)(()=>{if(jm(r)||r.trim().length<2){f([]);return}let e=setTimeout(async()=>{try{f(await B.get(`/api/db/search?q=${encodeURIComponent(r.trim())}`)??[])}catch{f([])}},300);return()=>clearTimeout(e)},[r]);let S=(0,V.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0,r=(r,i)=>()=>{h({type:r,title:i,projectId:e,metadata:n,closable:!0}),t()};return[{id:`terminal`,label:`New Terminal`,icon:dt,action:r(`terminal`,`Terminal`),keywords:`bash shell console`,group:`action`},{id:`chat`,label:`New AI Chat`,icon:Je,action:r(`chat`,`AI Chat`),keywords:`ai assistant claude`,group:`action`},{id:`git-graph`,label:`Git Graph`,icon:Re,action:r(`git-graph`,`Git Graph`),keywords:`branch history log`,group:`action`},{id:`postgres`,label:`PostgreSQL`,icon:Oe,action:r(`postgres`,`PostgreSQL`),keywords:`database pg sql query`,group:`action`},{id:`git-status`,label:`Git Status`,icon:ze,action:()=>{v(`git`),t()},keywords:`changes diff staged`,group:`action`},{id:`settings`,label:`Settings`,icon:st,action:()=>{y&&b(),v(`settings`),t()},keywords:`config preferences theme`,group:`action`}]},[g,h,t,v,y,b]),C=(0,V.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0;return Am(_).map(r=>({id:`file:${r.path}`,label:r.name,hint:r.path,icon:Ae,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,V.useMemo)(()=>{let e=g?.name??null,n=g?{projectName:g.name}:void 0;return s.map(r=>{let i=oe(r);return{id:`fs:${r}`,label:i,hint:r,icon:Fe,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,V.useMemo)(()=>d.map(e=>({id:`db:${e.connectionId}:${e.schemaName}.${e.tableName}`,label:e.tableName,hint:`${e.connectionName} (${e.connectionType===`postgres`?`PG`:`SQLite`})`,icon:Oe,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,V.useMemo)(()=>[...S,...C],[S,C]),D=(0,V.useMemo)(()=>{if(jm(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,V.useEffect)(()=>{e&&(i(n||``),o(0),c([]),f([]),requestAnimationFrame(()=>p.current?.focus()))},[e]),(0,V.useEffect)(()=>{o(e=>Math.min(e,Math.max(D.length-1,0)))},[D.length]),(0,V.useEffect)(()=>{let e=m.current;e&&e.children[a]?.scrollIntoView({block:`nearest`})},[a]);let O=(0,V.useCallback)(()=>{r.trim()&&(h({type:`chat`,title:`AI Chat`,projectId:g?.name??null,metadata:{projectName:g?.name,pendingMessage:r.trim()},closable:!0}),t())},[r,g,h,t]);function k(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 A=jm(r);return(0,H.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-end md:items-start justify-center md:pt-[20vh]`,onClick:t,children:[(0,H.jsx)(`div`,{className:`fixed inset-0 bg-black/50`}),(0,H.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:k,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border px-3 py-2.5`,children:[(0,H.jsx)(ot,{className:`size-4 text-text-subtle shrink-0`}),(0,H.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,H.jsx)(Ge,{className:`size-3.5 animate-spin text-text-subtle shrink-0`}),(0,H.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`})]}),A&&!l&&s.length===0&&r.length<4&&(0,H.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,H.jsx)(`div`,{ref:m,className:`max-h-72 overflow-y-auto py-1`,children:D.length===0?l?(0,H.jsx)(`p`,{className:`px-3 py-4 text-sm text-text-subtle text-center`,children:`Searching...`}):r.trim()?(0,H.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,H.jsx)(Je,{className:`size-4 shrink-0 text-accent`}),(0,H.jsxs)(`span`,{children:[`Ask AI: `,(0,H.jsx)(`span`,{className:`text-text-primary font-medium`,children:r.trim().slice(0,60)})]})]}):(0,H.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,H.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,H.jsx)(n,{className:`size-4 shrink-0`}),(0,H.jsx)(`span`,{className:`truncate`,children:e.label}),e.hint&&(0,H.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 text-xs text-text-subtle truncate max-w-[200px]`,children:[e.connectionColor&&(0,H.jsx)(`span`,{className:`shrink-0 size-2 rounded-full`,style:{backgroundColor:e.connectionColor}}),e.hint]})]},e.id)})}),(0,H.jsxs)(`div`,{className:`flex items-center justify-center gap-1.5 border-t border-border px-3 py-1.5`,children:[(0,H.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`Press`}),(0,H.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,H.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,H.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:`to open this palette`})]})]})]})}function Fm(){let[e,t]=(0,V.useState)(null),[n,r]=(0,V.useState)(!1);(0,V.useEffect)(()=>{function e(e){let n=e.detail;n&&(t(n),r(!1))}return window.addEventListener(`open-bug-report`,e),()=>window.removeEventListener(`open-bug-report`,e)},[]);let i=(0,V.useCallback)(()=>t(null),[]);return e?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/50`,onClick:i}),(0,H.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,H.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-border`,children:[(0,H.jsx)(`span`,{className:`text-sm font-medium`,children:`Bug Report`}),(0,H.jsx)(`button`,{onClick:i,className:`p-1 rounded hover:bg-surface-elevated`,children:(0,H.jsx)(ht,{className:`size-4`})})]}),(0,H.jsx)(`pre`,{className:`flex-1 overflow-auto px-4 py-2 text-xs font-mono whitespace-pre-wrap break-all`,children:e}),(0,H.jsxs)(`div`,{className:`flex gap-2 p-3 border-t border-border`,children:[(0,H.jsxs)(`button`,{onClick:async()=>{await am(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,H.jsx)(xe,{className:`size-3`}):(0,H.jsx)(De,{className:`size-3`}),n?`Copied`:`Copy`]}),(0,H.jsxs)(`button`,{onClick:()=>{im(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,H.jsx)(P,{className:`size-3`}),`Open GitHub Issue`]})]})]})]}):null}function Im(){let[e,t]=(0,V.useState)(`checking`),[n,r]=(0,V.useState)(!1),[i,a]=(0,V.useState)(),[o,s]=(0,V.useState)(!1);(0,V.useEffect)(()=>{let e=()=>{a(`settings`),r(!0)};return window.addEventListener(`open-mobile-settings`,e),()=>window.removeEventListener(`open-mobile-settings`,e)},[]);let[c,l]=(0,V.useState)(()=>new Set([`__global__`])),u=R(e=>e.theme),d=R(e=>e.deviceName),f=Dd(e=>e.fetchProjects),p=R(e=>e.fetchServerInfo),m=Dd(e=>e.activeProject);(0,V.useEffect)(()=>{if(ie(u),u===`system`){let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>ie(`system`);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)}},[u]),(0,V.useEffect)(()=>{p()},[p]),(0,V.useEffect)(()=>{async function e(){let e=le();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()},[]),Sd();let{paletteOpen:h,paletteInitialQuery:g,closePalette:_}=Ud();km(),(0,V.useEffect)(()=>{e===`authenticated`&&ef(async()=>{let{useKeybindingsStore:e}=await import(`./keybindings-store-VhiJwp77.js`);return{useKeybindingsStore:e}},__vite__mapDeps([22,1,11])).then(({useKeybindingsStore:e})=>{e.getState().loadFromServer()})},[e]),(0,V.useEffect)(()=>{e===`authenticated`&&f().then(()=>{let{projectName:e,tabId:t}=bd(),n=Dd.getState().projects;if(e){let r=n.find(t=>t.name===e);if(r){Dd.getState().setActiveProject(r),t&&queueMicrotask(()=>{let{tabs:e}=I.getState();e.some(e=>e.id===t)&&I.getState().setActiveTab(t)});return}}})},[e,f]),(0,V.useEffect)(()=>{let e=m?.name??`__global__`;I.getState().switchProject(e)},[m?.name]),(0,V.useEffect)(()=>{let e=m?.name??`__global__`;l(t=>t.has(e)?t:new Set([...t,e]))},[m?.name]),(0,V.useEffect)(()=>{e===`authenticated`&&!m&&I.getState().switchProject(`__global__`)},[e,m]);let v=(0,V.useCallback)(()=>{t(`authenticated`)},[]);if(e===`checking`)return(0,H.jsx)(`div`,{className:`min-h-dvh flex items-center justify-center bg-background`,children:(0,H.jsx)(`div`,{className:`animate-pulse text-text-secondary text-sm`,children:`Loading...`})});if(e===`unauthenticated`)return(0,H.jsx)(Sm,{onSuccess:v});let y=m?.name??`__global__`;return(0,H.jsx)(Al,{children:(0,H.jsxs)(`div`,{className:`h-dvh flex flex-col bg-background text-foreground overflow-hidden relative`,children:[d&&(0,H.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,H.jsxs)(`div`,{className:`flex flex-1 overflow-hidden`,children:[(0,H.jsx)(pm,{}),(0,H.jsx)(Op,{}),[...c].map(e=>(0,H.jsx)(`div`,{className:z(`flex-1 overflow-hidden pb-12 md:pb-0`,y!==e&&`hidden`),children:(0,H.jsx)(of,{projectName:e})},e))]}),(0,H.jsx)(_m,{onMenuPress:()=>r(!0),onProjectsPress:()=>s(!0)}),(0,H.jsx)(ym,{isOpen:n,onClose:()=>{r(!1),a(void 0)},initialTab:i}),(0,H.jsx)(xm,{isOpen:o,onClose:()=>s(!1)}),(0,H.jsx)(Pm,{open:h,onClose:_,initialQuery:g}),(0,H.jsx)(Fm,{}),(0,H.jsx)(Yt,{position:`bottom-left`,closeButton:!0,toastOptions:{className:`bg-surface border-border text-foreground`}})]})})}(0,gt.createRoot)(document.getElementById(`root`)).render((0,H.jsx)(V.StrictMode,{children:(0,H.jsx)(Im,{})}));export{Ve as A,Ce as B,ft as C,rt as D,at as E,Ae as F,xe as H,Oe as I,De as L,Le as M,Pe as N,Je as O,Me as P,Ee as R,ht as S,ot as T,_e as U,Se as V,Hd as _,Tf as a,zd as b,Of as c,hf as d,gf as f,ef as g,uf as h,Sf as i,Re as j,Ge as k,xf as l,mf as m,_p as n,Df as o,_f as p,sp as r,Ef as s,om as t,pf as u,Fd as v,dt as w,Vd as x,Bd as y,Te as z};