@puddle-code/cli 0.0.15 → 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -3
- package/dist/index.js +33 -4
- package/dist/public/assets/Dashboard-BZ3Cn1dO.js +1 -0
- package/dist/public/assets/EditorTabClose-fnQjdttV.js +1 -0
- package/dist/public/assets/LazyTerminal-dLiHOHHv.js +2 -0
- package/dist/public/assets/ModelRefcount-BhSuprOF.js +1 -0
- package/dist/public/assets/PaneEditorBody-bOjrzYPO.js +322 -0
- package/dist/public/assets/SettingsDialog-BD42xF_Q.js +1 -0
- package/dist/public/assets/{Terminal-CiY2j4Lf.js → Terminal-BWZsw4fU.js} +18 -18
- package/dist/public/assets/Workspace-DJCcyhMp.js +7 -0
- package/dist/public/assets/{api-Bh5IJ30S.js → api-BlyuPONJ.js} +1 -1
- package/dist/public/assets/{buffer-store-DXk7xJbf.js → buffer-store-CS1N1aix.js} +3 -3
- package/dist/public/assets/context-menu-BI-JYh0P.js +1 -0
- package/dist/public/assets/{cssMode-CLS4Lxn3.js → cssMode-DCN0Jnom.js} +1 -1
- package/dist/public/assets/dist-i-QevsUb.js +1 -0
- package/dist/public/assets/editor-sync-f1V6Wuxn.js +1 -0
- package/dist/public/assets/editor-tabs-BtZ4ofte.js +1 -0
- package/dist/public/assets/{htmlMode-D06Q5AQV.js → htmlMode-DSLCWbEl.js} +1 -1
- package/dist/public/assets/index-D0CXrECs.js +10 -0
- package/dist/public/assets/index-DPOPLh0S.css +2 -0
- package/dist/public/assets/{jsonMode-BvuUERD4.js → jsonMode-BqWhOk-Q.js} +1 -1
- package/dist/public/assets/profile-store-DeHRU0l9.js +1 -0
- package/dist/public/assets/{session-seed-Y4nqH0Gc.js → session-seed-B6WaFCS6.js} +1 -1
- package/dist/public/assets/ssh-mode-fmyth8lo.js +1 -0
- package/dist/public/assets/{tsMode-B3xMhn80.js → tsMode-CkRaNYQS.js} +1 -1
- package/dist/public/index.html +5 -5
- package/package.json +1 -1
- package/dist/public/assets/Dashboard-C0aXpVU1.js +0 -1
- package/dist/public/assets/EditorTabClose-DBiuZxHR.js +0 -1
- package/dist/public/assets/LazyTerminal-yHVhpi-E.js +0 -2
- package/dist/public/assets/ModelRefcount-ByUhfyK3.js +0 -1
- package/dist/public/assets/PaneEditorBody-9TcMQDtu.js +0 -322
- package/dist/public/assets/SettingsDialog-BJgpD7Gc.js +0 -1
- package/dist/public/assets/Workspace-CuEhq5jJ.js +0 -6
- package/dist/public/assets/context-menu-Bw30Lg7d.js +0 -1
- package/dist/public/assets/dist-VDiYuPKw.js +0 -1
- package/dist/public/assets/editor-sync-F3Wyveaa.js +0 -1
- package/dist/public/assets/editor-tabs-D0_DZriG.js +0 -1
- package/dist/public/assets/index-Ba4ffI1I.js +0 -10
- package/dist/public/assets/index-DWY2t2XS.css +0 -2
- package/dist/public/assets/poll-focus-B7dQPFj6.js +0 -1
- package/dist/public/assets/ssh-mode-BvVBPtPI.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./react-CZI7_Jkm.js";import{t as n}from"./jsx-runtime-ffCh33zF.js";import{d as r,f as i,g as a,h as o,m as s,p as c,u as l,x as u}from"./api-Bh5IJ30S.js";import{a as d,g as f,i as p,n as m,o as h,r as g,t as _}from"./dialog-B43iKmfK.js";import{A as v,D as y,F as b,H as x,I as S,L as C,M as w,P as T,S as E,T as D,V as O,W as k,X as ee,Y as te,_ as A,f as j,i as ne,it as M,k as re,nt as ie,o as N,p as ae,r as oe,rt as P,v as se,z as ce}from"./LazyTerminal-yHVhpi-E.js";import{t as F}from"./utils-B6KiDbIe.js";import{t as I}from"./createLucideIcon-DyMAgLa3.js";import{a as L,i as R,n as z,o as B,r as V,s as le,t as ue}from"./session-seed-Y4nqH0Gc.js";import{i as de,r as fe}from"./dist-VDiYuPKw.js";import{A as pe,B as me,C as he,D as ge,E as _e,F as ve,H as ye,I as be,J as xe,K as Se,L as Ce,N as we,O as Te,T as Ee,U as De,V as Oe,Y as ke,a as H,b as Ae,c as je,d as Me,f as Ne,g as U,h as W,l as Pe,m as Fe,nt as Ie,ot as Le,p as Re,q as ze,u as Be,v as Ve,x as He,y as Ue,z as We}from"./index-Ba4ffI1I.js";var Ge=I(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),Ke=I(`code`,[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]),qe=I(`folder-input`,[[`path`,{d:`M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1`,key:`fm4g5t`}],[`path`,{d:`M2 13h10`,key:`pgb2dq`}],[`path`,{d:`m9 16 3-3-3-3`,key:`6m91ic`}]]),Je=I(`keyboard`,[[`path`,{d:`M10 8h.01`,key:`1r9ogq`}],[`path`,{d:`M12 12h.01`,key:`1mp3jc`}],[`path`,{d:`M14 8h.01`,key:`1primd`}],[`path`,{d:`M16 12h.01`,key:`1l6xoz`}],[`path`,{d:`M18 8h.01`,key:`emo2bl`}],[`path`,{d:`M6 8h.01`,key:`x9i8wu`}],[`path`,{d:`M7 16h10`,key:`wp8him`}],[`path`,{d:`M8 12h.01`,key:`czm47f`}],[`rect`,{width:`20`,height:`16`,x:`2`,y:`4`,rx:`2`,key:`18n3k1`}]]),Ye=I(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),Xe=I(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),Ze=I(`shield-alert`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]),Qe=I(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),$e=I(`users`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`,key:`16gr8j`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`,key:`kshegd`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]),G=e(t(),1),K=n();function q({label:e,description:t,descriptionClassName:n,htmlFor:r,children:i,className:a}){return(0,K.jsxs)(`div`,{className:F(`flex items-center gap-4 py-2.5`,a),children:[(0,K.jsxs)(`label`,{htmlFor:r,className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,K.jsx)(`span`,{className:`text-sm text-fg`,children:e}),t&&(0,K.jsx)(`span`,{className:F(`text-xs text-fg-muted`,n),children:t})]}),(0,K.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:i})]})}function J({children:e,note:t}){return(0,K.jsxs)(`div`,{className:`mb-2 flex flex-col gap-0.5`,children:[(0,K.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:e}),t&&(0,K.jsx)(`span`,{className:`text-xs text-fg-muted`,children:t})]})}function et(){let e=U(),[t,n]=(0,G.useState)(Le());return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(J,{note:`This browser only`,children:`Appearance`}),(0,K.jsx)(q,{label:`Theme`,description:`Chrome, terminal, and editor restyle together.`,children:(0,K.jsxs)(z,{value:t,onValueChange:e=>{n(e),Ie(e)},children:[(0,K.jsx)(L,{className:`w-32`,children:(0,K.jsx)(B,{})}),(0,K.jsxs)(V,{children:[(0,K.jsx)(R,{value:`dark`,children:`Dark`}),(0,K.jsx)(R,{value:`light`,children:`Light`}),(0,K.jsx)(R,{value:`system`,children:`System`})]})]})}),(0,K.jsx)(q,{label:`UI font size`,htmlFor:`ui-font-size`,children:(0,K.jsx)(P,{id:`ui-font-size`,type:`number`,min:12,max:24,step:.5,className:`w-20 tabular-nums`,value:e.uiFontSize,onChange:e=>W({uiFontSize:Number(e.target.value)||Re.uiFontSize})})}),(0,K.jsx)(q,{label:`Terminal font size`,htmlFor:`terminal-font-size`,children:(0,K.jsx)(P,{id:`terminal-font-size`,type:`number`,min:9,max:24,className:`w-20 tabular-nums`,value:e.terminalFontSize,onChange:e=>W({terminalFontSize:Number(e.target.value)||13})})}),(0,K.jsx)(q,{label:`Density`,children:(0,K.jsxs)(z,{value:e.density,onValueChange:e=>W({density:e}),children:[(0,K.jsx)(L,{className:`w-36`,children:(0,K.jsx)(B,{})}),(0,K.jsxs)(V,{children:[(0,K.jsx)(R,{value:`compact`,children:`Compact`}),(0,K.jsx)(R,{value:`comfortable`,children:`Comfortable`})]})]})}),(0,K.jsx)(q,{label:`Reduced motion`,description:`Status ripples become static dots.`,htmlFor:`reduced-motion`,children:(0,K.jsx)(H,{id:`reduced-motion`,checked:e.reducedMotion,onCheckedChange:e=>W({reducedMotion:e})})}),(0,K.jsx)(q,{label:`All projects in the sidebar`,description:`Show every project's sessions in the right sidebar, grouped by project.`,htmlFor:`all-project-sessions`,children:(0,K.jsx)(H,{id:`all-project-sessions`,checked:e.showAllProjectSessions,onCheckedChange:e=>W({showAllProjectSessions:e})})})]})}function tt({profile:e}){let t=S(),[n,r]=(0,G.useState)(!1),i=n=>{t.mutate({id:e.id,icon:n},{onError:e=>u.error(e.message)}),r(!1)},a=n=>t.mutate({id:e.id,icon_colour:n},{onError:e=>u.error(e.message)});return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(q,{label:`Icon`,description:`The glyph shown wherever this profile appears.`,children:(0,K.jsxs)(Ue,{open:n,onOpenChange:r,children:[(0,K.jsx)(He,{asChild:!0,children:(0,K.jsxs)(`button`,{type:`button`,className:`flex size-9 items-center justify-center rounded-md text-fg-gold transition-colors hover:bg-elevated hover:text-fg`,children:[(0,K.jsx)(We,{icon:e.icon,colour:e.icon_colour,className:`size-5`}),(0,K.jsx)(`span`,{className:`sr-only`,children:`Choose an icon`})]})}),(0,K.jsx)(Ae,{align:`end`,className:`w-72`,children:(0,K.jsxs)(`div`,{className:`grid grid-cols-8 gap-1`,children:[(0,K.jsx)(`button`,{type:`button`,title:`Default`,onClick:()=>i(null),className:F(`flex h-8 items-center justify-center rounded-md text-fg-secondary transition-colors hover:bg-elevated hover:text-fg`,!e.icon&&`bg-elevated text-fg`),children:(0,K.jsx)(We,{icon:null,colour:null,className:`size-4`})}),Oe.map(({name:t,Icon:n})=>(0,K.jsx)(`button`,{type:`button`,title:t,onClick:()=>i(t),className:F(`flex h-8 items-center justify-center rounded-md text-fg-secondary transition-colors hover:bg-elevated hover:text-fg`,e.icon===t&&`bg-elevated text-fg`),children:(0,K.jsx)(n,{className:`size-4`})},t))]})})]})}),(0,K.jsx)(q,{label:`Icon colour`,description:`Any theme colour; recolours with light/dark.`,children:(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[(0,K.jsxs)(`button`,{type:`button`,title:`Default`,onClick:()=>a(null),className:F(`flex size-7 items-center justify-center rounded-md transition-colors hover:bg-elevated`,!e.icon_colour&&`bg-elevated`),children:[(0,K.jsx)(`span`,{className:`size-3.5 rounded-full bg-fg-muted`}),(0,K.jsx)(`span`,{className:`sr-only`,children:`Default colour`})]}),o.map(t=>(0,K.jsxs)(`button`,{type:`button`,title:t,onClick:()=>a(t),className:F(`flex size-7 items-center justify-center rounded-md transition-colors hover:bg-elevated`,e.icon_colour===t&&`bg-elevated`),children:[(0,K.jsx)(`span`,{className:F(`size-3.5 rounded-full bg-current`,me(t))}),(0,K.jsx)(`span`,{className:`sr-only`,children:t})]},t))]})})]})}var Y=`__none__`;function nt(){let e=N(),t=x().data?.find(t=>t.id===e),n=j(e??void 0),r=O(e??void 0),i=S(),a=C(e??``),o=y(),[s,c]=(0,G.useState)(``),[v,b]=(0,G.useState)(``),[w,T]=(0,G.useState)(!1),[E,D]=(0,G.useState)(``);if((0,G.useEffect)(()=>{t&&(c(t.name),b(t.branch_prefix))},[t]),!t)return null;let k=r.data?.default_account_id;return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(J,{children:`Profile`}),(0,K.jsxs)(q,{label:`Name`,description:`A display label. Letters, digits, dot, underscore and hyphen; must be unique.`,htmlFor:`profile-name`,children:[(0,K.jsx)(P,{id:`profile-name`,value:s,onChange:e=>c(e.target.value),className:`w-44 font-mono`}),(0,K.jsx)(f,{size:`sm`,variant:`secondary`,disabled:s===t.name||s.trim()===``||i.isPending,onClick:()=>i.mutate({id:t.id,name:s},{onError:e=>u.error(e.message)}),children:`Save`})]}),(0,K.jsxs)(q,{label:`Branch prefix`,description:`Session branches become <prefix><slug(title)>.`,htmlFor:`branch-prefix`,children:[(0,K.jsx)(P,{id:`branch-prefix`,value:v,onChange:e=>b(e.target.value),placeholder:l,className:`w-44 font-mono`}),(0,K.jsx)(f,{size:`sm`,variant:`secondary`,disabled:v===t.branch_prefix||i.isPending,onClick:()=>i.mutate({id:t.id,branch_prefix:v},{onError:e=>u.error(e.message)}),children:`Save`})]}),(0,K.jsx)(tt,{profile:t}),(0,K.jsx)(q,{label:`Default account`,description:`Preselected in the new-session modal.`,children:(0,K.jsxs)(z,{value:typeof k==`number`?String(k):Y,onValueChange:e=>a.mutate({default_account_id:e===Y?null:Number(e)},{onError:e=>u.error(e.message)}),children:[(0,K.jsx)(L,{className:`w-56`,children:(0,K.jsx)(B,{})}),(0,K.jsxs)(V,{children:[(0,K.jsx)(R,{value:Y,children:`First available`}),n.data?.map(e=>(0,K.jsx)(R,{value:String(e.id),children:(0,K.jsxs)(`span`,{className:`font-mono`,children:[e.agent_type,`/`,e.label]})},e.id))]})]})}),(0,K.jsx)(q,{label:`Delete profile`,description:`Removes its projects, accounts (logging them out), and archived history. Non-archived sessions block deletion.`,className:`mt-4`,children:(0,K.jsx)(f,{variant:`danger`,size:`sm`,onClick:()=>T(!0),children:`Delete…`})}),(0,K.jsx)(_,{open:w,onOpenChange:e=>{e||(T(!1),D(``))},children:(0,K.jsxs)(m,{children:[(0,K.jsxs)(d,{children:[(0,K.jsxs)(h,{children:[`Delete profile `,(0,K.jsx)(`span`,{className:`font-mono`,children:t.name}),`?`]}),(0,K.jsx)(g,{children:`Everything this profile owns goes with it: projects, workspace layouts, accounts and their credential directories, and archived session history. Branches, repositories, and terminal logs on disk are untouched. This cannot be undone.`})]}),(0,K.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,K.jsxs)(ie,{htmlFor:`delete-confirm-name`,children:[`Type `,(0,K.jsx)(`span`,{className:`font-mono text-fg`,children:t.name}),` to confirm`]}),(0,K.jsx)(P,{id:`delete-confirm-name`,value:E,onChange:e=>D(e.target.value),className:`font-mono`,autoFocus:!0})]}),(0,K.jsxs)(p,{children:[(0,K.jsx)(f,{variant:`ghost`,onClick:()=>{T(!1),D(``)},children:`Cancel`}),(0,K.jsx)(f,{variant:`danger`,disabled:E!==t.name||o.isPending,onClick:()=>o.mutate(t.id,{onSuccess:()=>{ve(),ne.set(null)},onError:e=>{T(!1),D(``),u.error(e.message)}}),children:`Delete profile`})]})]})})]})}function rt({agentId:e,profileId:t,onClose:n}){let r=se(),[i,a]=(0,G.useState)(``),[o,s]=(0,G.useState)(``),c=re(we(o,150)),l=i.trim()!==``&&(o.startsWith(`/`)||o.startsWith(`~`));return(0,K.jsx)(_,{open:!0,onOpenChange:e=>!e&&n(),children:(0,K.jsxs)(m,{children:[(0,K.jsxs)(d,{children:[(0,K.jsx)(h,{children:`Import an existing account`}),(0,K.jsx)(g,{children:`The directory is copied into a puddle-owned account; the original is never touched. If credentials do not travel (macOS keychain), log in once afterwards.`})]}),(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsx)(P,{placeholder:`label, e.g. personal`,value:i,onChange:e=>a(e.target.value),className:`font-mono`}),(0,K.jsx)(oe,{value:o,onValueChange:s,placeholder:`config dir on the host, e.g. ~/.claude`,hints:(c.data?.entries??[]).map(e=>({value:e.path,label:e.name})),className:`font-mono`})]}),(0,K.jsxs)(p,{children:[(0,K.jsx)(f,{variant:`ghost`,onClick:n,children:`Cancel`}),(0,K.jsxs)(f,{disabled:!l||r.isPending,onClick:()=>r.mutate({profile_id:t,agent_type:e,label:i.trim(),import_dir:o.trim()},{onSuccess:e=>{n(),e.logged_in||u.info(`Imported without credentials — press Login to authenticate.`)},onError:e=>u.error(e.message)}),children:[(0,K.jsx)(qe,{}),`Import`]})]})]})})}function it({account:e,gateOpen:t}){let n=w(),r=T(),i=D(),[a,o]=(0,G.useState)(null),[s,c]=(0,G.useState)(!1),[l,v]=(0,G.useState)(e.label);return(0,G.useEffect)(()=>v(e.label),[e.label]),(0,K.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md bg-surface px-3 py-2`,children:[(0,K.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`input`,{value:l,onChange:e=>v(e.target.value),onBlur:()=>{let t=l.trim();if(t!==e.label){if(t===``){v(e.label);return}r.mutate({id:e.id,label:t},{onError:t=>{u.error(t.message),v(e.label)}})}},onKeyDown:t=>{t.key===`Enter`?t.currentTarget.blur():t.key===`Escape`&&(v(e.label),t.currentTarget.blur())},"aria-label":`Account name`,className:`-mx-1 block w-full truncate rounded-sm bg-transparent px-1 py-0.5 font-mono text-sm text-fg transition-colors hover:bg-elevated focus:bg-elevated focus:outline-none`}),(0,K.jsx)(`span`,{className:`text-2xs ${e.logged_in?`text-running`:`text-waiting`}`,children:e.logged_in?`logged in`:`not logged in`})]}),t&&(0,K.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-fg-secondary`,children:[`skip prompts`,(0,K.jsx)(H,{checked:e.skip_permissions_default,onCheckedChange:t=>r.mutate({id:e.id,skip_permissions_default:t},{onError:e=>u.error(e.message)})})]}),(0,K.jsxs)(f,{size:`sm`,variant:`secondary`,disabled:n.isPending,onClick:()=>n.mutate(e.id,{onSuccess:e=>o(e.stream),onError:e=>u.error(e.message)}),children:[(0,K.jsx)(ke,{}),e.logged_in?`Re-login`:`Login`]}),(0,K.jsxs)(f,{size:`icon`,variant:`ghost`,className:`size-7 text-fg-muted hover:text-danger`,onClick:()=>c(!0),children:[(0,K.jsx)(De,{}),(0,K.jsx)(`span`,{className:`sr-only`,children:`Delete account`})]}),a&&(0,K.jsx)(Ve,{stream:a,label:`${e.agent_type}/${e.label}`,onClose:()=>o(null)}),(0,K.jsx)(_,{open:s,onOpenChange:c,children:(0,K.jsxs)(m,{children:[(0,K.jsxs)(d,{children:[(0,K.jsxs)(h,{children:[`Delete `,(0,K.jsx)(`span`,{className:`font-mono`,children:e.label}),`?`]}),(0,K.jsx)(g,{children:`Removes the account, its archived session history, and its credential directory — this logs the account out. Non-archived sessions block deletion.`})]}),(0,K.jsxs)(p,{children:[(0,K.jsx)(f,{variant:`ghost`,onClick:()=>c(!1),children:`Cancel`}),(0,K.jsx)(f,{variant:`danger`,disabled:i.isPending,onClick:()=>i.mutate(e.id,{onSuccess:()=>c(!1),onError:e=>{c(!1),u.error(e.message)}}),children:`Delete account`})]})]})})]})}function at(){let e=N(),t=ae(),n=j(e??void 0),r=O(e??void 0),i=se(),a=w(),[o,s]=(0,G.useState)({}),[c,l]=(0,G.useState)(null),[d,p]=(0,G.useState)(null),m=r.data?.allowSkipPermissions===!0,h=t=>{let n=(o[t]??``).trim();!n||e===null||i.mutate({profile_id:e,agent_type:t,label:n},{onSuccess:e=>{s(e=>({...e,[t]:``})),a.mutate(e.id,{onSuccess:n=>l({stream:n.stream,label:`${t}/${e.label}`})})},onError:e=>u.error(e.message)})};return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(J,{children:`Accounts`}),t.data?.map(e=>{let t=n.data?.filter(t=>t.agent_type===e.id)??[];return(0,K.jsxs)(`div`,{className:`mb-5`,children:[(0,K.jsx)(q,{label:e.display_name,description:`Accounts are isolated config dirs under this profile.`,className:`py-1`,children:(0,K.jsx)(`span`,{className:`font-mono text-2xs text-fg-muted`,children:e.id})}),(0,K.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[t.map(t=>(0,K.jsx)(it,{account:t,gateOpen:m&&e.capabilities.skip_permissions},t.id)),(0,K.jsxs)(`form`,{className:`flex gap-2`,onSubmit:t=>{t.preventDefault(),h(e.id)},children:[(0,K.jsx)(P,{placeholder:`label, e.g. personal`,value:o[e.id]??``,onChange:t=>s(n=>({...n,[e.id]:t.target.value})),className:`w-48 font-mono`}),(0,K.jsxs)(f,{type:`submit`,size:`sm`,variant:`secondary`,disabled:!(o[e.id]??``).trim()||i.isPending,children:[(0,K.jsx)(ze,{}),`Add account`]}),(0,K.jsxs)(f,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>p(e.id),children:[(0,K.jsx)(qe,{}),`Import existing…`]})]})]})]},e.id)}),c&&(0,K.jsx)(Ve,{stream:c.stream,label:c.label,onClose:()=>l(null)}),d!==null&&e!==null&&(0,K.jsx)(rt,{agentId:d,profileId:e,onClose:()=>p(null)})]})}function ot(){let e=A(),t=b(),[n,r]=(0,G.useState)(``);return(0,G.useEffect)(()=>{e.data&&r(e.data.agentPath)},[e.data]),(0,K.jsx)(q,{label:`Agent search path (host-wide)`,description:`Colon-separated dirs the daemon prepends to PATH to find agent CLIs like claude (e.g. ~/.local/bin). Applies after the daemon restarts.`,htmlFor:`agent-path`,children:(0,K.jsx)(P,{id:`agent-path`,type:`text`,className:`w-64 font-mono text-2xs`,value:n,onChange:e=>r(e.target.value),onBlur:()=>{e.data&&n!==e.data.agentPath&&t.mutate({agentPath:n})}})})}function st({kind:e,heading:t,settings:n,onSave:r,pending:i}){let a=ue(e,n),o=n.sessionDefaults??{},[s,c]=(0,G.useState)(a.baseBranch),l=t=>r({...o,[e]:{...o[e],...t}});return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`p`,{className:`mb-1 mt-4 text-xs font-medium uppercase tracking-wide text-fg-gold`,children:t}),(0,K.jsx)(q,{label:`Base branch`,description:`Blank = the repository's default base branch.`,htmlFor:`${e}-default-base`,children:(0,K.jsx)(P,{id:`${e}-default-base`,type:`text`,placeholder:`repository default`,className:`w-48 font-mono`,value:s,onChange:e=>c(e.target.value),onBlur:()=>{s.trim()!==a.baseBranch&&l({baseBranch:s.trim()})}})}),(0,K.jsx)(q,{label:`Separate branch`,description:`Start on a fresh branch off the base, in its own directory.`,htmlFor:`${e}-default-branch`,children:(0,K.jsx)(H,{id:`${e}-default-branch`,checked:a.separateBranch,disabled:i,onCheckedChange:e=>l({separateBranch:e})})}),(0,K.jsx)(q,{label:`Separate directory`,description:a.separateBranch?`Always on while a separate branch is used.`:`An own working copy of the base branch, instead of sharing one.`,htmlFor:`${e}-default-dir`,children:(0,K.jsx)(H,{id:`${e}-default-dir`,checked:a.separateWorktree,disabled:i||a.separateBranch,onCheckedChange:e=>l({separateWorktree:e})})})]})}function ct(){return(0,K.jsx)(q,{label:`Terminal scrollback`,description:`Lines kept per terminal. This browser only.`,htmlFor:`scrollback`,children:(0,K.jsx)(P,{id:`scrollback`,type:`number`,min:500,max:1e5,step:500,className:`w-28 tabular-nums`,value:U().terminalScrollback,onChange:e=>W({terminalScrollback:Number(e.target.value)||5e3})})})}function X({id:e,label:t,description:n,initial:r,defaultText:i,onSave:a,pending:o}){let[s,c]=(0,G.useState)(r);return(0,K.jsxs)(`div`,{className:`mt-3 flex flex-col gap-1.5`,children:[(0,K.jsxs)(`label`,{htmlFor:e,className:`flex flex-col gap-0.5 text-sm text-fg`,children:[t,(0,K.jsx)(`span`,{className:`text-xs text-fg-muted`,children:n})]}),(0,K.jsx)(M,{id:e,value:s,onChange:e=>c(e.target.value),rows:6,className:`font-mono`}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsx)(f,{size:`sm`,variant:`secondary`,disabled:s===r||o,onClick:()=>a(s),children:`Save`}),(0,K.jsx)(f,{size:`sm`,variant:`ghost`,disabled:s===i||o,onClick:()=>{c(i),a(i)},children:`Reset to default`})]})]})}var lt={id:`4f3c2b1a-7e6d-5c4b-3a2f-1e0d9c8b7a6f`,title:null,agent_title:`Refactor the auth flow`,osc_title:`claude`,branch:`alice/refactor-auth`,worktree_path:`/home/alice/code/app--refactor-auth`,status:`waiting_input`,agent_type:`claude-code`};function ut({initial:e,onSave:t,pending:n}){let[r,i]=(0,G.useState)(e),o=r.length>0?r:s;return(0,K.jsxs)(`div`,{className:`mt-3 flex flex-col gap-1.5`,children:[(0,K.jsxs)(`label`,{htmlFor:`tab-title-template`,className:`flex flex-col gap-0.5 text-sm text-fg`,children:[`Template`,(0,K.jsx)(`span`,{className:`text-xs text-fg-muted`,children:`Compose the label from the parts below. Empty falls back to the default.`})]}),(0,K.jsx)(P,{id:`tab-title-template`,value:r,onChange:e=>i(e.target.value),className:`font-mono`,placeholder:s}),(0,K.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[`Preview`,` `,(0,K.jsx)(`span`,{className:`ml-1 font-sans text-fg`,children:he(lt,o)})]}),(0,K.jsx)(`dl`,{className:`mt-1 flex flex-col gap-0.5 text-xs`,children:a.map(([e,t])=>(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsx)(`dt`,{className:`w-24 shrink-0 font-mono text-fg-secondary`,children:`\${${e}}`}),(0,K.jsx)(`dd`,{className:`text-fg-muted`,children:t})]},e))}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsx)(f,{size:`sm`,variant:`secondary`,disabled:r===e||n,onClick:()=>t(r),children:`Save`}),(0,K.jsx)(f,{size:`sm`,variant:`ghost`,disabled:r==="${name}"||n,onClick:()=>{i(s),t(s)},children:`Reset to default`})]})]})}function dt(){let e=N(),t=x().data?.find(t=>t.id===e),n=O(e??void 0),a=C(e??``),[o,s]=(0,G.useState)(!1),[l,v]=(0,G.useState)(``),y=n.data?.allowSkipPermissions===!0,b=e=>a.mutate({allowSkipPermissions:e},{onSuccess:()=>{s(!1),v(``)},onError:e=>u.error(e.message)}),S=e=>t=>a.mutate({[e]:t},{onError:e=>u.error(e.message)});return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(J,{children:`Sessions`}),(0,K.jsx)(`p`,{className:`mb-3 text-xs text-fg-secondary`,children:`Permission prompts are on by default, everywhere. Skipping them requires this profile gate, a per-account opt-in, and a per-session toggle — and the daemon re-checks all three on every launch, resume, and hand-off.`}),(0,K.jsx)(q,{label:`Allow skipping permission prompts`,description:y?`The gate is open: opted-in accounts can start prompt-free sessions.`:`The gate is closed: every session keeps its permission prompts.`,htmlFor:`gate`,children:(0,K.jsx)(H,{id:`gate`,checked:y,onCheckedChange:e=>{e?s(!0):b(!1)}})}),(0,K.jsx)(q,{label:`Capture exported env vars`,description:n.data?.captureSessionEnv===!1?`Paused: session shells spawn plain — nothing new is captured or injected. Already-captured vars are kept for when this is re-enabled.`:`Vars exported in a session terminal persist: re-injected into its new shells and agent restarts. Values stay on the daemon host.`,htmlFor:`capture-env`,children:(0,K.jsx)(H,{id:`capture-env`,checked:n.data?.captureSessionEnv!==!1,disabled:a.isPending,onCheckedChange:e=>a.mutate({captureSessionEnv:e},{onError:e=>u.error(e.message)})})}),(0,K.jsx)(ot,{}),(0,K.jsx)(ct,{}),(0,K.jsxs)(`div`,{className:`mt-5`,children:[(0,K.jsx)(J,{note:`What the new-agent and new-terminal modals open with — everything stays editable per session.`,children:`New session defaults`}),n.data&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(st,{kind:`agent`,heading:`New agents`,settings:n.data,onSave:e=>a.mutate({sessionDefaults:e},{onError:e=>u.error(e.message)}),pending:a.isPending},`${e}:agent-seed`),(0,K.jsx)(st,{kind:`terminal`,heading:`New terminals`,settings:n.data,onSave:e=>a.mutate({sessionDefaults:e},{onError:e=>u.error(e.message)}),pending:a.isPending},`${e}:terminal-seed`)]})]}),(0,K.jsxs)(`div`,{className:`mt-5`,children:[(0,K.jsx)(J,{note:`Sent to the agent as its opening message when a session starts. Leave a box empty to send no preamble.`,children:`Launch text`}),n.data&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(X,{id:`onboarding-template`,label:`New worktree`,description:`For a freshly created worktree. Use {{rules}} where the repo's onboarding notes should appear.`,initial:n.data.onboardingTemplate??i,defaultText:i,onSave:S(`onboardingTemplate`),pending:a.isPending},`${e}:onboarding`),(0,K.jsx)(X,{id:`concurrent-template`,label:`Existing / shared worktree`,description:`For a session joining a worktree other agents may already be working in.`,initial:n.data.concurrentTemplate??r,defaultText:r,onSave:S(`concurrentTemplate`),pending:a.isPending},`${e}:concurrent`),(0,K.jsx)(X,{id:`restart-template`,label:`Resume after restart`,description:`Sent when a session resumes after a daemon restart or machine reboot — its processes are gone.`,initial:n.data.restartTemplate??c,defaultText:c,onSave:S(`restartTemplate`),pending:a.isPending},`${e}:restart`)]})]}),(0,K.jsxs)(`div`,{className:`mt-5`,children:[(0,K.jsx)(J,{note:`How each session's tab and sidebar label is composed from its parts.`,children:`Tab title`}),n.data&&(0,K.jsx)(ut,{initial:n.data.tabTitleTemplate??"${name}",onSave:S(`tabTitleTemplate`),pending:a.isPending},`${e}:tab-title`)]}),(0,K.jsx)(_,{open:o,onOpenChange:e=>{e||(s(!1),v(``))},children:(0,K.jsxs)(m,{children:[(0,K.jsxs)(d,{children:[(0,K.jsxs)(h,{className:`flex items-center gap-2`,children:[(0,K.jsx)(Ze,{className:`size-5 text-danger`}),`Run agents without permission prompts?`]}),(0,K.jsx)(g,{asChild:!0,children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-2 text-sm`,children:[(0,K.jsx)(`p`,{children:`A prompt-free agent acts unattended, with your credentials, inside its worktree — and nothing technically stops a shell command from reaching outside it. It can:`}),(0,K.jsxs)(`ul`,{className:`list-disc pl-5 text-fg-secondary`,children:[(0,K.jsx)(`li`,{children:`run any shell command without asking first,`}),(0,K.jsx)(`li`,{children:`modify, delete, or exfiltrate files your user can reach,`}),(0,K.jsx)(`li`,{children:`install dependencies and execute the network requests they make,`}),(0,K.jsx)(`li`,{children:`push branches or call remote APIs with the credentials it finds.`})]}),(0,K.jsx)(`p`,{children:`Only open this gate if every account you opt in runs work you would trust a colleague to run unsupervised on this machine.`}),(0,K.jsx)(`p`,{className:`text-fg-muted`,children:`Opening it also records the agent’s own bypass-permissions acceptance for this profile’s accounts, so the skip actually takes effect.`})]})})]}),(0,K.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,K.jsxs)(ie,{htmlFor:`confirm-name`,children:[`Type `,(0,K.jsx)(`span`,{className:`font-mono text-fg`,children:t?.name}),` to confirm`]}),(0,K.jsx)(P,{id:`confirm-name`,value:l,onChange:e=>v(e.target.value),className:`font-mono`,autoFocus:!0})]}),(0,K.jsxs)(p,{children:[(0,K.jsx)(f,{variant:`ghost`,onClick:()=>{s(!1),v(``)},children:`Cancel`}),(0,K.jsx)(f,{variant:`danger`,disabled:l!==t?.name||a.isPending,onClick:()=>b(!0),children:`Open the gate`})]})]})})]})}var ft={desktop:!0,sound:!1,muted_projects:[]};function pt(){let e=N(),t=O(e??void 0),n=C(e??``),r=k(e??void 0),i={...ft,...t.data?.notifications??{}},a=e=>n.mutate({notifications:e},{onError:e=>u.error(e.message)});return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(J,{note:`When an agent flips to waiting for input`,children:`Notifications`}),(0,K.jsx)(q,{label:`Desktop notification on waiting`,description:`Shown while this window is unfocused; clicking it opens the session.`,htmlFor:`notify-desktop`,children:(0,K.jsx)(H,{id:`notify-desktop`,checked:i.desktop,onCheckedChange:e=>{e&&typeof Notification<`u`&&Notification.requestPermission(),a({...i,desktop:e})}})}),(0,K.jsx)(q,{label:`Sound`,htmlFor:`notify-sound`,children:(0,K.jsx)(H,{id:`notify-sound`,checked:i.sound,onCheckedChange:e=>a({...i,sound:e})})}),(0,K.jsx)(q,{label:`Muted projects`,description:`No notifications from these projects.`,children:(0,K.jsxs)(`span`,{className:`text-2xs text-fg-muted tabular-nums`,children:[i.muted_projects.length,` muted`]})}),(0,K.jsx)(`div`,{className:`flex flex-col gap-1`,children:r.data?.map(e=>(0,K.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md px-2 py-1 text-sm text-fg-secondary hover:bg-elevated`,children:[(0,K.jsx)(H,{checked:i.muted_projects.includes(e.id),onCheckedChange:t=>a({...i,muted_projects:t?[...i.muted_projects,e.id]:i.muted_projects.filter(t=>t!==e.id)})}),e.name]},e.id))})]})}function mt(){let e=U();return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(J,{note:`This browser only`,children:`Editor`}),(0,K.jsx)(q,{label:`Tab size`,description:`Spaces per indent level.`,htmlFor:`tab-size`,children:(0,K.jsx)(P,{id:`tab-size`,type:`number`,min:1,max:8,className:`w-20 tabular-nums`,value:e.editorTabSize,onChange:e=>W({editorTabSize:Number(e.target.value)||2})})}),(0,K.jsx)(q,{label:`Word wrap`,htmlFor:`word-wrap`,children:(0,K.jsx)(H,{id:`word-wrap`,checked:e.editorWordWrap,onCheckedChange:e=>W({editorWordWrap:e})})}),(0,K.jsx)(q,{label:`SSH host for editor links`,description:`Used for vscode:// and cursor:// remote links until the CLI supplies it automatically.`,htmlFor:`editor-link-host`,children:(0,K.jsx)(P,{id:`editor-link-host`,type:`text`,placeholder:`user@host`,className:`w-48`,value:e.editorLinkSshHost,onChange:e=>W({editorLinkSshHost:e.target.value})})})]})}function ht({value:e,isDefault:t,onRecord:n,onReset:r}){let[i,a]=(0,G.useState)(!1);return(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>a(!0),onBlur:()=>a(!1),onKeyDown:e=>{if(!i)return;if(e.preventDefault(),e.stopPropagation(),e.key===`Escape`){a(!1);return}let t=ge(e.nativeEvent);t&&(n(t),a(!1))},className:F(`min-w-24 rounded-md px-2 py-1 text-center font-mono text-xs transition-colors`,i?`bg-action text-action-ink`:`bg-elevated text-fg hover:bg-border/70`),children:i?`Press keys…`:Te(e)}),!t&&(0,K.jsxs)(`button`,{type:`button`,title:`Reset to default`,onClick:r,className:`rounded-md p-1 text-fg-gold transition-colors hover:bg-elevated hover:text-fg`,children:[(0,K.jsx)(Ye,{className:`size-3.5`}),(0,K.jsx)(`span`,{className:`sr-only`,children:`Reset to default`})]})]})}function gt(){let e=N(),t=O(e??void 0),n=C(e??``),r=t.data?.hotkeys??{},i=(e,t)=>r[e]||t,a=new Map;for(let e of Ee){let t=i(e.id,e.defaultBinding);a.set(t,(a.get(t)??0)+1)}let o=(e,t)=>n.mutate({hotkeys:{...r,[e]:t}},{onError:e=>u.error(e.message)}),s=e=>{let t={...r};delete t[e],n.mutate({hotkeys:t},{onError:e=>u.error(e.message)})};return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(J,{children:`Hotkeys`}),(0,K.jsx)(`p`,{className:`mb-4 text-xs text-fg-muted`,children:`Per-profile keyboard shortcuts. Filetree navigation and terminal line-edits are fixed. Browser-reserved combos (⌘W, ⌘T, ⌘⇧B, …) can’t be captured by a web tab.`}),_e.map(e=>{let t=Ee.filter(t=>t.group===e);return t.length===0?null:(0,K.jsxs)(`div`,{className:`mb-5`,children:[(0,K.jsx)(`div`,{className:`mb-1 text-2xs font-medium uppercase tracking-wide text-fg-gold`,children:e}),t.map(e=>{let t=i(e.id,e.defaultBinding),n=(a.get(t)??0)>1,c=pe(t)?`Browser-reserved — won’t fire in a tab.`:n?`Conflicts with another shortcut.`:void 0;return(0,K.jsx)(q,{label:e.label,description:c,descriptionClassName:c?`text-interrupted`:void 0,children:(0,K.jsx)(ht,{value:t,isDefault:!r[e.id],onRecord:t=>o(e.id,t),onReset:()=>s(e.id)})},e.id)})]},e)})]})}var _t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`,Z=65,Q=Object.fromEntries([..._t].map((e,t)=>[e,t])),vt=`H`,yt=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t+=1){let n=t;for(let e=0;e<8;e+=1)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function bt(e){let t=4294967295;for(let n of e)t=yt[(t^n)&255]^t>>>8;return((t^4294967295)>>>0).toString(16).padStart(8,`0`)}function xt(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t)}function St(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n}async function Ct(e){let t=new Blob([new TextEncoder().encode(e)]).stream().pipeThrough(new CompressionStream(`gzip`));return new Uint8Array(await new Response(t).arrayBuffer())}async function wt(e){let t=new Blob([e]).stream().pipeThrough(new DecompressionStream(`gzip`));return new Response(t).text()}function Tt(e,t){let n=(t%Z+Z)%Z,r=``;for(let t of e){let e=Q[t];r+=e===void 0?t:_t[(e+n)%Z]}return r}async function Et(e){let t=await Ct(JSON.stringify(e));return Tt(xt(t)+bt(t),1+Math.floor(Math.random()*(Z-1)))}async function Dt(e){let t=e.trim(),n=t[0];if(!n||Q[n]===void 0)throw Error(`Not a settings export.`);let r=Tt(t,-((Q[n]-Q[vt]+Z)%Z));if(r.length<9||r[0]!==vt)throw Error(`Not a settings export.`);let i=r.slice(0,-8),a=r.slice(-8),o=St(i);if(bt(o)!==a)throw Error(`Settings export is corrupt (checksum mismatch).`);return JSON.parse(await wt(o))}var Ot=`puddle.sync-selection`;function kt(){try{let e=JSON.parse(localStorage.getItem(Ot)??`null`);if(Array.isArray(e))return e.filter(e=>typeof e==`string`)}catch{}return je.map(e=>e.id)}function At({selected:e,onToggle:t}){return(0,K.jsx)(`div`,{className:`flex flex-col gap-2 pl-1`,children:je.map(n=>(0,K.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-fg`,children:[(0,K.jsx)(H,{checked:e.includes(n.id),onCheckedChange:e=>t(n.id,e)}),n.label]},n.id))})}function jt(){let e=N(),t=O(e??void 0),n=x().data?.find(t=>t.id===e),r=ee(e??void 0,void 0),i=C(e??``),a=S(),o=E(),s=Me(),c=Ne(),[l,d]=(0,G.useState)(``),[p,m]=(0,G.useState)(``),[h,g]=(0,G.useState)(!1),[_,v]=(0,G.useState)(!1),[y,b]=(0,G.useState)(kt),w=n?s.data?.file.profiles[n.name]:void 0,T=w?.enabled===!0,D=T&&w?w.groups:y,k=()=>({client:Fe(),theme:Le(),profileSettings:t.data??{},profile:n??{},scratchpad:r.data??[]}),te={setClient:e=>W(e),setTheme:e=>{typeof e==`string`&&Ie(e)},patchProfileSettings:e=>i.mutate(e,{onError:e=>u.error(e.message)}),patchProfileColumns:t=>{e&&a.mutate({id:e,...t},{onError:e=>u.error(e.message)})},createScratchpad:t=>{if(e)for(let n of t)o.mutate({profile_id:e,scope:`profile`,title:n.title??void 0,body:n.body,tags:n.tags,agent_type:n.agent_type??void 0})}},A=(e,t)=>{n&&c.mutate({profile:n.name,entry:{enabled:e.enabled??T,groups:t,doc:Be(t,k()),updatedAt:new Date().toISOString()}},{onError:e=>u.error(e.message)})},j=(e,t)=>{let n=t?[...D,e]:D.filter(t=>t!==e);b(n),localStorage.setItem(Ot,JSON.stringify(n)),T&&A({},n)},ne=async()=>{v(!0);try{let e=Pe(await Dt(l.trim()),te,{profileSettings:t.data??{},scratchpad:r.data??[]});e.length===0?u.error(`Nothing recognised to import.`):(u.success(`Imported ${e.join(`, `)}.`),d(``))}catch(e){u.error(e.message)}finally{v(!1)}},re=async()=>{v(!0);try{let e=await Et(Be(D,k()));m(e),await navigator.clipboard?.writeText(e),u.success(`Copied to clipboard`)}finally{v(!1)}};return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(J,{children:`Sync`}),(0,K.jsx)(`p`,{className:`mb-5 text-xs text-fg-muted`,children:`Carry your settings between machines. Accounts, repositories, and anything host-specific are never included. Applies to this profile.`}),(0,K.jsxs)(`div`,{className:`mb-6`,children:[(0,K.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:`Sync locally`}),s.data?.available===!1?(0,K.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:`Not available in this cockpit — start the UI with the puddle CLI to sync across windows.`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`p`,{className:`mb-2 mt-1 text-xs text-fg-muted`,children:[`Mirror the selected groups through this machine’s`,` `,(0,K.jsx)(`span`,{className:`font-mono`,children:`~/.puddle`}),`, so every puddle window — any port, any host — stays in step for profiles named`,` `,(0,K.jsx)(`span`,{className:`font-mono`,children:n?.name??`…`}),`. The checklist below then applies to imports and exports alike; scratchpad entries merge and never overwrite.`]}),(0,K.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-fg`,children:[(0,K.jsx)(H,{checked:T,disabled:!n||s.isLoading||c.isPending,onCheckedChange:e=>A({enabled:e},D)}),`Sync locally`]})]})]}),(0,K.jsxs)(`div`,{className:`mb-6`,children:[(0,K.jsxs)(`button`,{type:`button`,onClick:()=>g(e=>!e),className:`flex items-center gap-1 text-xs text-fg-secondary transition-colors hover:text-fg`,children:[h?(0,K.jsx)(le,{className:`size-3.5`}):(0,K.jsx)(de,{className:`size-3.5`}),`Choose what to sync`]}),h&&(0,K.jsx)(`div`,{className:`mt-2`,children:(0,K.jsx)(At,{selected:D,onToggle:j})})]}),(0,K.jsxs)(`div`,{className:`mb-6`,children:[(0,K.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:`Import`}),(0,K.jsx)(`p`,{className:`mb-2 text-xs text-fg-muted`,children:`Paste an exported string — only the settings it carries are updated. Scratchpad entries are added alongside yours, never replacing them.`}),(0,K.jsx)(M,{value:l,onChange:e=>d(e.target.value),onKeyDown:e=>e.stopPropagation(),placeholder:`Paste a settings export…`,rows:3,spellCheck:!1,className:`resize-y font-mono text-xs`}),(0,K.jsx)(`div`,{className:`mt-2`,children:(0,K.jsx)(f,{size:`sm`,disabled:!l.trim()||_,onClick:()=>void ne(),children:`Import`})})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:`Export`}),(0,K.jsx)(`p`,{className:`mb-2 mt-1 text-xs text-fg-muted`,children:`One click builds the string from the checklist above and copies it to your clipboard.`}),(0,K.jsx)(f,{size:`sm`,disabled:_,onClick:()=>void re(),children:`Export & copy`}),p&&(0,K.jsx)(M,{readOnly:!0,value:p,rows:3,spellCheck:!1,onFocus:e=>e.currentTarget.select(),className:`mt-2 resize-y font-mono text-xs`})]})]})}function Mt({repo:e}){let t=ce(),n=v(),[r,i]=(0,G.useState)(e.default_base_branch),[a,o]=(0,G.useState)(e.onboarding_notes??``),s=e=>u.error(e.message);return(0,K.jsxs)(`div`,{className:`mb-4 rounded-lg bg-surface p-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-sm text-fg`,children:e.path}),(0,K.jsx)(`span`,{className:`shrink-0 text-2xs text-fg-muted tabular-nums`,children:e.last_fetched_at?`fetched ${new Date(e.last_fetched_at).toLocaleString()}`:`never fetched`}),(0,K.jsxs)(f,{size:`sm`,variant:`ghost`,disabled:n.isPending,onClick:()=>n.mutate(e.id,{onSuccess:()=>u.success(`Fetched.`),onError:s}),children:[(0,K.jsx)(Se,{}),`Fetch now`]})]}),(0,K.jsxs)(q,{label:`Default base branch`,htmlFor:`base-${e.id}`,className:`py-1.5`,children:[(0,K.jsx)(P,{id:`base-${e.id}`,value:r,onChange:e=>i(e.target.value),className:`w-40 font-mono`}),(0,K.jsx)(f,{size:`sm`,variant:`secondary`,disabled:r===e.default_base_branch||t.isPending,onClick:()=>t.mutate({id:e.id,default_base_branch:r},{onError:s}),children:`Save`})]}),(0,K.jsx)(q,{label:`Periodic fetch`,description:`Fetched on open and on the daemon's interval while sessions are active.`,htmlFor:`fetch-${e.id}`,className:`py-1.5`,children:(0,K.jsx)(H,{id:`fetch-${e.id}`,checked:e.fetch_enabled,onCheckedChange:n=>t.mutate({id:e.id,fetch_enabled:n},{onError:s})})}),(0,K.jsxs)(`div`,{className:`mt-1.5 flex flex-col gap-1.5`,children:[(0,K.jsxs)(`label`,{htmlFor:`notes-${e.id}`,className:`flex flex-col gap-0.5 text-sm text-fg`,children:[`Onboarding notes`,(0,K.jsx)(`span`,{className:`text-xs text-fg-muted`,children:`Standing setup rules, injected into every fresh worktree. Agents update them via .puddle/onboarding-notes.md.`})]}),(0,K.jsx)(M,{id:`notes-${e.id}`,value:a,onChange:e=>o(e.target.value),rows:4,className:`font-mono`}),(0,K.jsx)(`div`,{children:(0,K.jsx)(f,{size:`sm`,variant:`secondary`,disabled:a===(e.onboarding_notes??``)||t.isPending,onClick:()=>t.mutate({id:e.id,onboarding_notes:a},{onError:s}),children:`Save notes`})})]}),e.orphan_worktrees.length>0&&(0,K.jsxs)(`div`,{className:`mt-3 rounded-md bg-elevated p-2`,children:[(0,K.jsx)(`p`,{className:`text-xs text-fg-secondary`,children:`Orphan worktrees — directories no session claims. Puddle never deletes these automatically; remove them by hand if unwanted.`}),(0,K.jsx)(`ul`,{className:`mt-1 flex flex-col gap-0.5`,children:e.orphan_worktrees.map(e=>(0,K.jsx)(`li`,{className:`truncate font-mono text-2xs text-fg-muted`,children:e},e))})]})]})}function Nt(){let e=te();return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(J,{children:`Repositories`}),e.data?.length===0&&(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`No repositories yet — register one from the new-project flow on the dashboard.`}),e.data?.map(e=>(0,K.jsx)(Mt,{repo:e},e.id))]})}function $({label:e,description:t,field:n,config:r,min:i,step:a=1}){let o=b();return(0,K.jsx)(q,{label:e,description:t,htmlFor:`host-${n}`,children:(0,K.jsx)(P,{id:`host-${n}`,type:`number`,min:i,step:a,className:`w-32 tabular-nums`,defaultValue:r[n],onBlur:e=>{let t=Number(e.target.value);Number.isFinite(t)&&t!==r[n]&&o.mutate({[n]:t},{onError:e=>u.error(e.message)})}})})}function Pt(){let e=A(),t=b();return e.data?(0,K.jsxs)(`div`,{children:[(0,K.jsx)(J,{note:`Affects all profiles on this host`,children:`Host`}),(0,K.jsx)(q,{label:`Display name`,description:`Shown in place of the hostname across the UI. Leave blank for the hostname.`,htmlFor:`host-displayName`,children:(0,K.jsx)(P,{id:`host-displayName`,type:`text`,maxLength:64,className:`w-48`,defaultValue:e.data.displayName,onBlur:n=>{let r=n.target.value.trim();r!==e.data.displayName&&t.mutate({displayName:r},{onError:e=>u.error(e.message)})}})}),(0,K.jsx)($,{label:`Fetch interval (minutes)`,description:`Periodic git fetch for repos with active sessions.`,field:`fetchIntervalMinutes`,config:e.data,min:1}),(0,K.jsx)($,{label:`Log size cap (bytes)`,description:`Per-terminal on-disk log cap.`,field:`logMaxBytes`,config:e.data,min:65536,step:1048576}),(0,K.jsx)($,{label:`Replay size (bytes)`,description:`Log tail sent to a terminal on attach.`,field:`replayBytes`,config:e.data,min:1024,step:65536}),(0,K.jsx)($,{label:`UI-state retention (days)`,description:`Stale workspace snapshots are swept at boot.`,field:`uiStateRetentionDays`,config:e.data,min:1}),(0,K.jsx)(q,{label:`Auto-resume`,description:`Resume interrupted sessions automatically after a daemon restart.`,htmlFor:`host-autoResume`,children:(0,K.jsx)(H,{id:`host-autoResume`,checked:e.data.autoResume,onCheckedChange:e=>t.mutate({autoResume:e},{onError:e=>u.error(e.message)})})})]}):null}var Ft=[{id:`appearance`,label:`Appearance`,icon:xe,render:()=>(0,K.jsx)(et,{})},{id:`profile`,label:`Profile`,icon:ye,render:()=>(0,K.jsx)(nt,{})},{id:`accounts`,label:`Accounts`,icon:$e,render:()=>(0,K.jsx)(at,{})},{id:`sessions`,label:`Sessions`,icon:Qe,render:()=>(0,K.jsx)(dt,{})},{id:`editor`,label:`Editor`,icon:Ke,render:()=>(0,K.jsx)(mt,{})},{id:`hotkeys`,label:`Hotkeys`,icon:Je,render:()=>(0,K.jsx)(gt,{})},{id:`notifications`,label:`Notifications`,icon:Ge,render:()=>(0,K.jsx)(pt,{})},{id:`repositories`,label:`Repositories`,icon:fe,render:()=>(0,K.jsx)(Nt,{})},{id:`host`,label:`Host`,icon:Xe,render:()=>(0,K.jsx)(Pt,{})},{id:`sync`,label:`Sync`,icon:Se,render:()=>(0,K.jsx)(jt,{})}],It={terminal:`sessions`};function Lt(){let e=Ce(),t=e===null?null:It[e]??e,n=Ft.find(e=>e.id===t)??Ft[0];return(0,K.jsx)(_,{open:e!==null,onOpenChange:e=>!e&&ve(),children:(0,K.jsxs)(m,{wide:!0,className:`grid h-[34rem] grid-cols-[14rem_1fr] gap-0 overflow-hidden p-0`,children:[(0,K.jsx)(h,{className:`sr-only`,children:`Settings`}),(0,K.jsxs)(`nav`,{className:`flex flex-col gap-1 bg-surface p-2.5 pr-6`,children:[(0,K.jsx)(`span`,{className:`px-2.5 py-2 text-2xs font-medium uppercase tracking-wide text-fg-muted`,children:`Settings`}),Ft.map(({id:e,label:t,icon:r})=>(0,K.jsxs)(`button`,{onClick:()=>be(e),className:F(`flex items-center gap-2.5 rounded-md px-2.5 py-1.5 text-left text-sm transition-colors`,e===n.id?`bg-elevated text-fg`:`text-fg-secondary hover:bg-elevated hover:text-fg`),children:[(0,K.jsx)(r,{className:`size-4 shrink-0`}),t]},e))]}),(0,K.jsx)(`div`,{className:`overflow-y-auto p-5`,children:n.render()})]})})}export{Lt as SettingsDialog};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PaneEditorBody-9TcMQDtu.js","assets/rolldown-runtime-QTnfLwEv.js","assets/react-CZI7_Jkm.js","assets/jsx-runtime-ffCh33zF.js","assets/editor-tabs-D0_DZriG.js","assets/poll-focus-B7dQPFj6.js","assets/api-Bh5IJ30S.js","assets/preload-helper-Czpn1I53.js","assets/createLucideIcon-DyMAgLa3.js","assets/index-Ba4ffI1I.js","assets/dialog-B43iKmfK.js","assets/utils-B6KiDbIe.js","assets/LazyTerminal-yHVhpi-E.js","assets/index-DWY2t2XS.css","assets/editor.api2-4X9Vh9Zw.js","assets/editor-Br_kD0ds.css","assets/buffer-store-DXk7xJbf.js","assets/buffer-logic-BrpRsL1b.js","assets/editor-sync-F3Wyveaa.js","assets/debounce-B9DrqirV.js","assets/PaneEditorBody-Dz-67XSV.css","assets/ModelRefcount-ByUhfyK3.js","assets/EditorTabClose-DBiuZxHR.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./react-CZI7_Jkm.js";import{n,t as r}from"./jsx-runtime-ffCh33zF.js";import{o as i}from"./poll-focus-B7dQPFj6.js";import{C as a,S as o,a as s,d as c,f as l,g as u,h as d,l as f,m as p,n as m,p as h,r as g,s as _,t as v,u as y,w as b,x,y as S}from"./editor-tabs-D0_DZriG.js";import{t as C}from"./preload-helper-Czpn1I53.js";import{c as w,l as T,v as E,x as D}from"./api-Bh5IJ30S.js";import{A as ee,O,_ as k,a as te,b as A,g as j,h as ne,i as re,j as M,n as N,o as ie,r as ae,t as P,w as oe}from"./dialog-B43iKmfK.js";import{$ as se,C as ce,E as F,G as I,J as le,K as ue,N as de,Q as L,U as fe,V as pe,W as me,Y as he,Z as R,c as ge,ct as _e,f as ve,g as ye,h as be,j as xe,l as Se,m as Ce,n as we,nt as Te,o as Ee,q as De,r as Oe,rt as ke,s as Ae,st as je,t as Me,tt as Ne,u as Pe,w as Fe}from"./LazyTerminal-yHVhpi-E.js";import{t as z}from"./utils-B6KiDbIe.js";import{t as B}from"./createLucideIcon-DyMAgLa3.js";import{A as Ie,C as Le,D as Re,E as ze,O as Be,S as Ve,T as He,_ as Ue,a as We,b as Ge,c as Ke,d as qe,f as Je,g as Ye,h as Xe,i as Ze,j as Qe,l as $e,m as et,n as tt,o as nt,p as rt,r as V,s as it,t as at,u as ot,v as st,w as ct,x as lt,y as ut}from"./context-menu-Bw30Lg7d.js";import{a as dt,i as ft,n as pt,o as mt,r as ht,s as gt,t as _t}from"./session-seed-Y4nqH0Gc.js";import{i as vt,r as yt}from"./dist-VDiYuPKw.js";import{$ as bt,G as xt,I as St,K as Ct,P as wt,Q as Tt,R as Et,S as Dt,U as Ot,W as kt,X as At,Z as jt,_ as Mt,a as Nt,ct as Pt,et as Ft,g as It,i as Lt,j as Rt,lt as zt,n as Bt,s as Vt,t as Ht,ut as Ut,w as Wt}from"./index-Ba4ffI1I.js";import{t as Gt}from"./debounce-B9DrqirV.js";import{i as Kt}from"./buffer-logic-BrpRsL1b.js";import{t as qt}from"./ssh-mode-BvVBPtPI.js";var Jt=B(`case-sensitive`,[[`path`,{d:`m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16`,key:`d5nyq2`}],[`path`,{d:`M22 9v7`,key:`pvm9v3`}],[`path`,{d:`M3.304 13h6.392`,key:`1q3zxz`}],[`circle`,{cx:`18.5`,cy:`12.5`,r:`3.5`,key:`z97x68`}]]),Yt=B(`chevrons-down-up`,[[`path`,{d:`m7 20 5-5 5 5`,key:`13a0gw`}],[`path`,{d:`m7 4 5 5 5-5`,key:`1kwcof`}]]),Xt=B(`ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),Zt=B(`eraser`,[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]),Qt=B(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),$t=B(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),en=B(`file-archive`,[[`path`,{d:`M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5`,key:`4pqfef`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 12v-1`,key:`1ej8lb`}],[`path`,{d:`M8 18v-2`,key:`qcmpov`}],[`path`,{d:`M8 7V6`,key:`1nbb54`}],[`circle`,{cx:`8`,cy:`20`,r:`2`,key:`ckkr5m`}]]),tn=B(`file-braces`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),H=B(`file-code`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12.5 8 15l2 2.5`,key:`1tg20x`}],[`path`,{d:`m14 12.5 2 2.5-2 2.5`,key:`yinavb`}]]),nn=B(`file-cog`,[[`path`,{d:`M15 8a1 1 0 0 1-1-1V2a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8z`,key:`1ckgky`}],[`path`,{d:`M20 8v12a2 2 0 0 1-2 2h-4.182`,key:`1726p0`}],[`path`,{d:`m3.305 19.53.923-.382`,key:`ao1pio`}],[`path`,{d:`M4 10.592V4a2 2 0 0 1 2-2h8`,key:`1foop0`}],[`path`,{d:`m4.228 16.852-.924-.383`,key:`1fv9zy`}],[`path`,{d:`m5.852 15.228-.383-.923`,key:`1a9hc2`}],[`path`,{d:`m5.852 20.772-.383.924`,key:`1sh9ke`}],[`path`,{d:`m8.148 15.228.383-.923`,key:`4yu6lf`}],[`path`,{d:`m8.53 21.696-.382-.924`,key:`18b0s9`}],[`path`,{d:`m9.773 16.852.922-.383`,key:`ti6xop`}],[`path`,{d:`m9.773 19.148.922.383`,key:`rws47d`}],[`circle`,{cx:`7`,cy:`18`,r:`3`,key:`lvkj7j`}]]),rn=B(`file-headphone`,[[`path`,{d:`M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343`,key:`1vfytu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0`,key:`1etmh7`}]]),an=B(`file-image`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`circle`,{cx:`10`,cy:`12`,r:`2`,key:`737tya`}],[`path`,{d:`m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22`,key:`wt3hpn`}]]),on=B(`file-key`,[[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M4 12v6`,key:`bg1pfk`}],[`path`,{d:`M4 14h2`,key:`1sf9f8`}],[`path`,{d:`M9.65 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v4`,key:`d56i0q`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),sn=B(`file-lock`,[[`path`,{d:`M4 9.8V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3`,key:`1432pc`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M9 17v-2a2 2 0 0 0-4 0v2`,key:`168m41`}],[`rect`,{width:`8`,height:`5`,x:`3`,y:`17`,rx:`1`,key:`o8vfew`}]]),cn=B(`file-play`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z`,key:`1tzo1f`}]]),ln=B(`file-plus`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M9 15h6`,key:`cctwl0`}],[`path`,{d:`M12 18v-6`,key:`17g6i2`}]]),un=B(`file-spreadsheet`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 13h2`,key:`yr2amv`}],[`path`,{d:`M14 13h2`,key:`un5t4a`}],[`path`,{d:`M8 17h2`,key:`2yhykz`}],[`path`,{d:`M14 17h2`,key:`10kma7`}]]),dn=B(`file-terminal`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m8 16 2-2-2-2`,key:`10vzyd`}],[`path`,{d:`M12 18h4`,key:`1wd2n7`}]]),fn=B(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),pn=B(`file-type`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M11 18h2`,key:`12mj7e`}],[`path`,{d:`M12 12v6`,key:`3ahymv`}],[`path`,{d:`M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5`,key:`qbrxap`}]]),mn=B(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),hn=B(`folder-closed`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}],[`path`,{d:`M2 10h20`,key:`1ir3d8`}]]),gn=B(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),_n=B(`folder-tree`,[[`path`,{d:`M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z`,key:`hod4my`}],[`path`,{d:`M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z`,key:`w4yl2u`}],[`path`,{d:`M3 5a2 2 0 0 0 2 2h3`,key:`f2jnh7`}],[`path`,{d:`M3 3v13a2 2 0 0 0 2 2h3`,key:`k8epm1`}]]),vn=B(`folder-x`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}],[`path`,{d:`m9.5 10.5 5 5`,key:`ra9qjz`}],[`path`,{d:`m14.5 10.5-5 5`,key:`l2rkpq`}]]),yn=B(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),bn=B(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),xn=B(`list`,[[`path`,{d:`M3 5h.01`,key:`18ugdj`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 19h.01`,key:`noohij`}],[`path`,{d:`M8 5h13`,key:`1pao27`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 19h13`,key:`m83p4d`}]]),Sn=B(`panel-left-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m16 15-3-3 3-3`,key:`14y99z`}]]),Cn=B(`panel-left-open`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m14 9 3 3-3 3`,key:`8010ee`}]]),wn=B(`panel-right-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}],[`path`,{d:`m8 9 3 3-3 3`,key:`12hl5m`}]]),Tn=B(`panel-right-open`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}],[`path`,{d:`m10 15-3-3 3-3`,key:`1pgupc`}]]),En=B(`pin`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]),Dn=B(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),On=B(`regex`,[[`path`,{d:`M17 3v10`,key:`15fgeh`}],[`path`,{d:`m12.67 5.5 8.66 5`,key:`1gpheq`}],[`path`,{d:`m12.67 10.5 8.66-5`,key:`1dkfa6`}],[`path`,{d:`M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z`,key:`swwfx4`}]]),kn=B(`shield-off`,[[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71`,key:`1jlk70`}],[`path`,{d:`M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264`,key:`18rp1v`}]]),An=B(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),jn=B(`user-round-cog`,[[`path`,{d:`m14.305 19.53.923-.382`,key:`3m78fa`}],[`path`,{d:`m15.228 16.852-.923-.383`,key:`npixar`}],[`path`,{d:`m16.852 15.228-.383-.923`,key:`5xggr7`}],[`path`,{d:`m16.852 20.772-.383.924`,key:`dpfhf9`}],[`path`,{d:`m19.148 15.228.383-.923`,key:`1reyyz`}],[`path`,{d:`m19.53 21.696-.382-.924`,key:`1goivc`}],[`path`,{d:`M2 21a8 8 0 0 1 10.434-7.62`,key:`1yezr2`}],[`path`,{d:`m20.772 16.852.924-.383`,key:`htqkph`}],[`path`,{d:`m20.772 19.148.924.383`,key:`9w9pjp`}],[`circle`,{cx:`10`,cy:`8`,r:`5`,key:`o932ke`}],[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}]]),Mn=B(`whole-word`,[[`circle`,{cx:`7`,cy:`12`,r:`3`,key:`12clwm`}],[`path`,{d:`M10 9v6`,key:`17i7lo`}],[`circle`,{cx:`17`,cy:`12`,r:`3`,key:`gl7c2s`}],[`path`,{d:`M14 7v8`,key:`dl84cr`}],[`path`,{d:`M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1`,key:`lt2kga`}]]),U=r(),W=e(t(),1);function Nn(e,t){let n=getComputedStyle(e);return t*parseFloat(n.fontSize)}function Pn(e,t){let n=getComputedStyle(e.ownerDocument.documentElement);return t*parseFloat(n.fontSize)}function Fn(e){return e/100*window.innerHeight}function In(e){return e/100*window.innerWidth}function Ln(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 Rn({groupSize:e,panelElement:t,styleProp:n}){let r,[i,a]=Ln(n);switch(a){case`%`:r=i/100*e;break;case`px`:r=i;break;case`rem`:r=Pn(t,i);break;case`em`:r=Nn(t,i);break;case`vh`:r=Fn(i);break;case`vw`:r=In(i);break}return r}function G(e){return parseFloat(e.toFixed(3))}function zn({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 Bn(e){let{panels:t}=e,n=zn({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=G(Rn({groupSize:n,panelElement:t,styleProp:r.collapsedSize})/n*100));let a;r.defaultSize!==void 0&&(a=G(Rn({groupSize:n,panelElement:t,styleProp:r.defaultSize})/n*100));let o=0;r.minSize!==void 0&&(o=G(Rn({groupSize:n,panelElement:t,styleProp:r.minSize})/n*100));let s=100;return r.maxSize!==void 0&&(s=G(Rn({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 K(e,t=`Assertion error`){if(!e)throw Error(t)}function Vn(e,t){return Array.from(t).sort(e===`horizontal`?Hn:Un)}function Hn(e,t){let n=e.element.offsetLeft-t.element.offsetLeft;return n===0?e.element.offsetWidth-t.element.offsetWidth:n}function Un(e,t){let n=e.element.offsetTop-t.element.offsetTop;return n===0?e.element.offsetHeight-t.element.offsetHeight:n}function Wn(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.ELEMENT_NODE}function Gn(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 Kn({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}=Gn(r,n),s=e===`horizontal`?t:o;s<a&&(a=s,i=n)}return K(i,`No rect found`),i}var qn;function Jn(){return qn===void 0&&(qn=typeof matchMedia==`function`&&!!matchMedia(`(pointer:coarse)`).matches),qn}function Yn(e){let{element:t,orientation:n,panels:r,separators:i}=e,a=Vn(n,Array.from(t.children).filter(Wn).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.hasAttribute(`data-disabled`)||(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,Kn({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=Jn()?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:zn({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 Xn=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)}}},Zn={cursorFlags:0,state:`inactive`},Qn=new Xn;function $n(){return Zn}function er(e){return Qn.addListener(`change`,e)}function tr(e){let t=Zn,n={...Zn};n.cursorFlags=e,Zn=n,Qn.emit(`change`,{prev:t,next:n})}function nr(e){let t=Zn;Zn=e,Qn.emit(`change`,{prev:t,next:e})}var rr=e=>e,ir=()=>{},ar=1,or=2,sr=4,cr=8,lr=3,ur=12,dr;function fr(){return dr===void 0&&(dr=!1,typeof window<`u`&&(window.navigator.userAgent.includes(`Chrome`)||window.navigator.userAgent.includes(`Firefox`))&&(dr=!0)),dr}function pr({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&&fr()){let t=(e&ar)!==0,n=(e&or)!==0,r=(e&sr)!==0,i=(e&cr)!==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 fr()?r>0&&i>0?`move`:r>0?`ew-resize`:`ns-resize`:r>0&&i>0?`grab`:r>0?`col-resize`:`row-resize`}}var mr=new WeakMap;function hr(e){if(e.defaultView===null||e.defaultView===void 0)return;let{prevStyle:t,styleSheet:n}=mr.get(e)??{};n===void 0&&(n=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets&&(Object.isExtensible(e.adoptedStyleSheets)?e.adoptedStyleSheets.push(n):e.adoptedStyleSheets=[...e.adoptedStyleSheets,n]));let r=$n();switch(r.state){case`active`:case`hover`:{let e=pr({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}mr.set(e,{prevStyle:t,styleSheet:n})}var gr=new Map,_r=new Xn;function vr(e){gr=new Map(gr),gr.delete(e)}function yr(e,t){for(let[t]of gr)if(t.id===e)return t}function br(e,t){for(let[t,n]of gr)if(t.id===e)return n;if(t)throw Error(`Could not find data for Group with id ${e}`)}function xr(){return gr}function Sr(e,t){return _r.addListener(`groupChange`,n=>{n.group.id===e&&t(n)})}function Cr(e,t,n){let r=gr.get(e);gr=new Map(gr),gr.set(e,t),_r.emit(`groupChange`,{group:e,isUserInteraction:n?.isUserInteraction===!0,prev:r,next:t})}function wr(e){let t=$n(),n=!1;switch(t.state){case`active`:nr({cursorFlags:0,state:`inactive`}),t.hitRegions.length>0&&(hr(e),n=!0,t.hitRegions.forEach(e=>{let t=br(e.group.id,!0);Cr(e.group,t,{isUserInteraction:!0})}))}return n}function Tr(e){e.defaultPrevented||wr(e.currentTarget)}function Er(e,t,n){let r,i={x:1/0,y:1/0};for(let a of t){let t=Gn(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 Dr(e){return typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE}function Or(e,t){if(e===t)throw Error(`Cannot compare node with itself`);let n={a:Pr(e),b:Pr(t)},r;for(;n.a.at(-1)===n.b.at(-1);)r=n.a.pop(),n.b.pop();K(r,`Stacking order can only be calculated for elements with a common ancestor`);let i={a:Nr(Mr(n.a)),b:Nr(Mr(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 kr=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function Ar(e){let t=getComputedStyle(Fr(e)??e).display;return t===`flex`||t===`inline-flex`}function jr(e){let t=getComputedStyle(e);return!!(t.position===`fixed`||t.zIndex!==`auto`&&(t.position!==`static`||Ar(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`||kr.test(t.willChange)||t.webkitOverflowScrolling===`touch`)}function Mr(e){let t=e.length;for(;t--;){let n=e[t];if(K(n,`Missing node`),jr(n))return n}return null}function Nr(e){return e&&Number(getComputedStyle(e).zIndex)||0}function Pr(e){let t=[];for(;e;)t.push(e),e=Fr(e);return t}function Fr(e){let{parentNode:t}=e;return Dr(t)?t.host:t}function Ir(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 Lr({groupElement:e,hitRegion:t,pointerEventTarget:n}){if(!Wn(n)||n.contains(e)||e.contains(n))return!0;if(Or(n,e)>0){let r=n;for(;r;){if(r.contains(e))return!0;if(Ir(r.getBoundingClientRect(),t))return!1;r=r.parentElement}}return!0}function Rr(e,t){let n=[];return t.forEach((t,r)=>{if(r.disabled)return;let i=Yn(r),a=Er(r.orientation,i,{x:e.clientX,y:e.clientY});a&&a.distance.x<=0&&a.distance.y<=0&&Lr({groupElement:r.element,hitRegion:a.hitRegion.rect,pointerEventTarget:e.target})&&n.push(a.hitRegion)}),n}function zr(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 q(e,t,n=0){return Math.abs(G(e)-G(t))<=n}function Br(e,t){return q(e,t)?0:e>t?1:-1}function Vr({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(Br(r,c)<0)if(a){let e=(i+c)/2;r=Br(r,e)<0?i:c}else r=c;return r=Math.min(s,r),r=G(r),r}function Hr({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:i,trigger:a}){if(q(e,0))return t;let o=a===`imperative-api`,s=Object.values(t),c=Object.values(i),l=[...s],[u,d]=r;K(u!=null,`Invalid first pivot index`),K(d!=null,`Invalid second pivot index`);let f=0;switch(a){case`keyboard`:{let t=e<0?d:u,r=n[t];K(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(K(n!=null,`Previous layout not found for panel index ${t}`),q(n,i)){let t=o-n;Br(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?u:d,r=n[t];K(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(K(n!=null,`Previous layout not found for panel index ${t}`),q(n,o)){let t=n-i;Br(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}break;default:{let t=e<0?d:u,r=n[t];K(r,`Panel constraints not found for index ${t}`);let i=s[t],{collapsible:a,collapsedSize:o,minSize:c}=r;if(a&&Br(i,c)<0)if(e>0){let t=c-o,n=t/2;Br(i+e,c)<0&&(e=Br(e,n)<=0?0:t)}else{let t=c-o,n=100-t/2;Br(i-e,c)<0&&(e=Br(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];K(e!=null,`Previous layout not found for panel index ${r}`);let a=Vr({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];K(i!=null,`Previous layout not found for panel index ${t}`);let a=i-r,c=Vr({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:i,size:a});if(!q(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(zr(c,l))return i;{let t=e<0?d:u,r=s[t];K(r!=null,`Previous layout not found for panel index ${t}`);let i=r+f,a=Vr({overrideDisabledPanels:o,panelConstraints:n[t],prevSize:r,size:i});if(l[t]=a,!q(a,i)){let t=i-a,r=e<0?d:u;for(;r>=0&&r<n.length;){let i=l[r];K(i!=null,`Previous layout not found for panel index ${r}`);let a=i+t,s=Vr({overrideDisabledPanels:o,panelConstraints:n[r],prevSize:i,size:a});if(q(i,s)||(t-=s-i,l[r]=s),q(t,0))break;e>0?r--:r++}}}if(!q(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 Ur(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(t[n]===void 0||Br(e[n],t[n])!==0)return!1;return!0}function Wr({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(!q(i,100)&&r.length>0)for(let e=0;e<t.length;e++){let t=r[e];K(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];K(i!=null,`No layout data found for index ${e}`);let o=r[e];K(o!=null,`No layout data found for index ${e}`);let s=Vr({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:i,size:o});o!=s&&(a+=o-s,r[e]=s)}if(!q(a,0))for(let e=0;e<t.length;e++){let n=r[e];K(n!=null,`No layout data found for index ${e}`);let i=n+a,o=Vr({overrideDisabledPanels:!0,panelConstraints:t[e],prevSize:n,size:i});if(n!==o&&(a-=o-n,r[e]=o,q(a,0)))break}let o=Object.keys(e);return r.reduce((e,t,n)=>(e[o[n]]=t,e),{})}function Gr({groupId:e,panelId:t}){let n=()=>{let t=xr();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=({nextSize:e,panels:n,prevLayout:r,derivedPanelConstraints:i})=>{let o=a(),s=n.findIndex(e=>e.id===t),c=s===0,l=s===n.length-1;if(l&&e<o&&(c||n.slice(0,s).every((e,t)=>{let n=i[t];return n?.collapsible&&q(n.collapsedSize,r[n.panelId])}))){let e=n.slice(0,s).reduce((e,t)=>e+r[t.id],0);return{...r,[t]:G(100-e)}}return Hr({delta:l?o-e:e-o,initialLayout:r,panelConstraints:i,pivotIndices:l?[s-1,s]:[s,s+1],prevLayout:r,trigger:`imperative-api`})},s=e=>{if(e===a())return;let{defaultLayoutDeferred:t,derivedPanelConstraints:r,group:i,groupSize:s,layout:c,separatorToPanels:l}=n(),u=Wr({layout:o({nextSize:e,panels:i.panels,prevLayout:c,derivedPanelConstraints:r}),panelConstraints:r});Ur(c,u)||Cr(i,{defaultLayoutDeferred:t,derivedPanelConstraints:r,groupSize:s,layout:u,separatorToPanels:l})};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=r(),{mutableValues:n}=i(),o=a();e&&o!==t&&(n.expandToSize=o,s(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:n}=r(),{mutableValues:o}=i(),c=a();if(e&&c===t){let e=o.expandToSize??n;e===0&&(e=1),s(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&&q(t,n)},resize:e=>{let{group:t}=n(),{element:r}=i(),a=zn({group:t}),o=G(Rn({groupSize:a,panelElement:r,styleProp:e})/a*100);s(o)}}}function Kr(e){e.defaultPrevented||Rr(e,xr()).forEach(t=>{if(t.separator&&!t.separator.disableDoubleClick){let n=t.panels.find(e=>e.panelConstraints.defaultSize!==void 0);if(n){let r=n.panelConstraints.defaultSize,i=Gr({groupId:t.group.id,panelId:n.id});i&&r!==void 0&&(i.resize(r),e.preventDefault())}}})}function qr(e){let t=xr();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 Jr({groupId:e}){let t=()=>{let t=xr();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=Wr({layout:e,panelConstraints:r});return n?o:(Ur(o,c)||Cr(i,{defaultLayoutDeferred:n,derivedPanelConstraints:r,groupSize:a,layout:c,separatorToPanels:s}),c)}}}function Yr(e,t){let n=qr(e),r=br(n.id,!0),i=n.separators.find(t=>t.element===e);K(i,`Matching separator not found`);let a=r.separatorToPanels.get(i);K(a,`Matching panels not found`);let o=a.map(e=>n.panels.indexOf(e)),s=Jr({groupId:n.id}).getLayout(),c=Wr({layout:Hr({delta:t,initialLayout:s,panelConstraints:r.derivedPanelConstraints,pivotIndices:o,prevLayout:s,trigger:`keyboard`}),panelConstraints:r.derivedPanelConstraints});Ur(s,c)||Cr(n,{defaultLayoutDeferred:r.defaultLayoutDeferred,derivedPanelConstraints:r.derivedPanelConstraints,groupSize:r.groupSize,layout:c,separatorToPanels:r.separatorToPanels},{isUserInteraction:!0})}function Xr(e){if(e.defaultPrevented)return;let t=e.currentTarget,n=qr(t);if(!n.disabled)switch(e.key){case`ArrowDown`:e.preventDefault(),n.orientation===`vertical`&&Yr(t,5);break;case`ArrowLeft`:e.preventDefault(),n.orientation===`horizontal`&&Yr(t,-5);break;case`ArrowRight`:e.preventDefault(),n.orientation===`horizontal`&&Yr(t,5);break;case`ArrowUp`:e.preventDefault(),n.orientation===`vertical`&&Yr(t,-5);break;case`End`:e.preventDefault(),Yr(t,100);break;case`Enter`:{e.preventDefault();let n=qr(t),{derivedPanelConstraints:r,layout:i,separatorToPanels:a}=br(n.id,!0),o=n.separators.find(e=>e.element===t);K(o,`Matching separator not found`);let s=a.get(o);K(s,`Matching panels not found`);let c=s[0],l=r.find(e=>e.panelId===c.id);if(K(l,`Panel metadata not found`),l.collapsible){let e=i[c.id];Yr(t,(l.collapsedSize===e?n.mutableState.expandedPanelSizes[c.id]??l.minSize:l.collapsedSize)-e)}break}case`F6`:{e.preventDefault();let n=qr(t).separators.map(e=>e.element),r=Array.from(n).findIndex(t=>t===e.currentTarget);K(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(),Yr(t,-100);break}}function Zr(e){if(e.defaultPrevented||e.pointerType===`mouse`&&e.button>0)return;let t=xr(),n=Rr(e,t),r=new Map,i=!1;n.forEach(e=>{e.separator&&(i||(i=!0,e.separator.element.focus({focusVisible:!1,preventScroll:!0})));let n=t.get(e.group);n&&r.set(e.group,n.layout)}),nr({cursorFlags:0,hitRegions:n,initialLayoutMap:r,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:`active`}),n.length&&e.preventDefault()}function Qr({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=Hr({delta:d,initialLayout:f,panelConstraints:h,pivotIndices:e.panels.map(e=>l.indexOf(e)),prevLayout:_,trigger:`mouse-or-touch`});if(Ur(t,_)){if(d!==0&&!u)switch(c){case`horizontal`:s|=d<0?ar:or;break;case`vertical`:s|=d<0?sr:cr;break}}else Cr(e.group,{defaultLayoutDeferred:m,derivedPanelConstraints:h,groupSize:g,layout:t,separatorToPanels:v})}});let c=0;t.movementX===0?c|=o&lr:c|=s&lr,t.movementY===0?c|=o&ur:c|=s&ur,tr(c),hr(e)}function $r(e){let t=xr(),n=$n();switch(n.state){case`active`:Qr({document:e.currentTarget,event:e,hitRegions:n.hitRegions,initialLayoutMap:n.initialLayoutMap,mountedGroups:t,prevCursorFlags:n.cursorFlags})}}function ei(e){if(e.defaultPrevented)return;let t=$n(),n=xr();switch(t.state){case`active`:if(e.buttons===0){nr({cursorFlags:0,state:`inactive`}),t.hitRegions.forEach(e=>{let t=br(e.group.id,!0);Cr(e.group,t,{isUserInteraction:!0})});return}for(let n of t.hitRegions)if(n.separator){let{element:t}=n.separator;t.hasPointerCapture?.(e.pointerId)||t.setPointerCapture?.(e.pointerId)}Qr({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:n,pointerDownAtPoint:t.pointerDownAtPoint,prevCursorFlags:t.cursorFlags});break;default:{let r=Rr(e,n);r.length===0?t.state!==`inactive`&&nr({cursorFlags:0,state:`inactive`}):nr({cursorFlags:0,hitRegions:r,state:`hover`}),hr(e.currentTarget);break}}}function ti(e){if(e.relatedTarget instanceof HTMLIFrameElement)switch($n().state){case`hover`:nr({cursorFlags:0,state:`inactive`})}}function ni(e){e.defaultPrevented||e.pointerType===`mouse`&&e.button>0||wr(e.currentTarget)&&e.preventDefault()}function ri(e){let t=0,n=0,r={};for(let i of e)if(i.defaultSize!==void 0){t++;let e=G(i.defaultSize);n+=e,r[i.panelId]=e}else r[i.panelId]=void 0;let i=e.length-t;if(i!==0){let t=G((100-n)/i);for(let n of e)n.defaultSize===void 0&&(r[n.panelId]=t)}return r}function ii(e,t,n){if(!n[0])return;let r=e.panels.find(e=>e.element===t);if(!r||!r.onResize)return;let i=zn({group:e}),a=e.orientation===`horizontal`?r.element.offsetWidth:r.element.offsetHeight,o=r.mutableValues.prevSize,s={asPercentage:G(a/i*100),inPixels:a};r.mutableValues.prevSize=s,r.onResize(s,r.id,o)}function ai(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 oi({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=G(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]=G((r[e]??0)/a*l);else{let e=G(l/c.length);for(let t of c)u[t]=e}return u}function si(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 ci=new Map;function li(e){let t=!0;K(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=zn({group:e});if(t===0)return;let n=br(e.id);if(!n)return;let r=Bn(e),i=n.defaultLayoutDeferred?ri(r):n.layout,a=Wr({layout:oi({group:e,nextGroupSize:t,prevGroupSize:n.groupSize,prevLayout:i}),panelConstraints:r});if(!n.defaultLayoutDeferred&&Ur(n.layout,a)&&ai(n.derivedPanelConstraints,r)&&n.groupSize===t)return;Cr(e,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,groupSize:t,layout:a,separatorToPanels:n.separatorToPanels})}}else ii(e,i,n)}});a.observe(e.element),e.panels.forEach(e=>{K(!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=zn({group:e}),s=Bn(e),c=e.panels.map(({id:e})=>e).join(`,`),l=e.mutableState.defaultLayout;l&&(si(e.panels,l)||(l=void 0));let u=Wr({layout:e.mutableState.layouts[c]??l??ri(s),panelConstraints:s}),d=e.element.ownerDocument;ci.set(d,(ci.get(d)??0)+1);let f=new Map;return Yn(e).forEach(e=>{e.separator&&f.set(e.separator,e.panels)}),Cr(e,{defaultLayoutDeferred:o===0,derivedPanelConstraints:s,groupSize:o,layout:u,separatorToPanels:f}),e.separators.forEach(e=>{K(!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`,Xr)}),ci.get(d)===1&&(d.addEventListener(`contextmenu`,Tr,!0),d.addEventListener(`dblclick`,Kr,!0),d.addEventListener(`pointerdown`,Zr,!0),d.addEventListener(`pointerleave`,$r),d.addEventListener(`pointermove`,ei),d.addEventListener(`pointerout`,ti),d.addEventListener(`pointerup`,ni,!0)),function(){t=!1,ci.set(d,Math.max(0,(ci.get(d)??0)-1)),vr(e),e.separators.forEach(e=>{e.element.removeEventListener(`keydown`,Xr)}),ci.get(d)||(d.removeEventListener(`contextmenu`,Tr,!0),d.removeEventListener(`dblclick`,Kr,!0),d.removeEventListener(`pointerdown`,Zr,!0),d.removeEventListener(`pointerleave`,$r),d.removeEventListener(`pointermove`,ei),d.removeEventListener(`pointerout`,ti),d.removeEventListener(`pointerup`,ni,!0)),a.disconnect()}}function ui(){let[e,t]=(0,W.useState)({});return[e,(0,W.useCallback)(()=>t({}),[])]}function di(e){let t=(0,W.useId)();return`${e??t}`}var fi=typeof window<`u`?W.useLayoutEffect:W.useEffect;function pi(e){let t=(0,W.useRef)(e);return fi(()=>{t.current=e},[e]),(0,W.useCallback)((...e)=>t.current?.(...e),[t])}function mi(...e){return pi(t=>{e.forEach(e=>{if(e)switch(typeof e){case`function`:e(t);break;case`object`:e.current=t;break}})})}function hi(e){let t=(0,W.useRef)({...e});return fi(()=>{for(let n in e)t.current[n]=e[n]},[e]),t.current}var gi=(0,W.createContext)(null);function _i(e,t){let n=(0,W.useRef)({getLayout:()=>({}),setLayout:rr});(0,W.useImperativeHandle)(t,()=>n.current,[]),fi(()=>{Object.assign(n.current,Jr({groupId:e}))})}function vi({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,W.useRef)({onLayoutChange:{},onLayoutChanged:{}}),h=pi(e=>{Ur(m.current.onLayoutChange,e)||(m.current.onLayoutChange=e,c?.(e))}),g=pi((e,t)=>{Ur(m.current.onLayoutChanged,e)||(m.current.onLayoutChanged=e,l?.(e,{isUserInteraction:t}))}),_=di(s),v=(0,W.useRef)(null),[y,b]=ui(),x=(0,W.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],resizeTargetMinimumSize:d,separators:[]}),S=mi(v,a);_i(_,o);let C=pi((e,t)=>{let r=$n(),i=yr(e),a=br(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}}if(n?.[t])return{flexGrow:n?.[t]}}),w=hi({defaultLayout:n,disableCursor:r}),T=(0,W.useMemo)(()=>({get disableCursor(){return!!w.disableCursor},getPanelStyles:C,id:_,orientation:u,registerPanel:e=>{let t=x.current;return t.panels=Vn(u,[...t.panels,e]),b(),()=>{t.panels=t.panels.filter(t=>t!==e),b()}},registerSeparator:e=>{let t=x.current;return t.separators=Vn(u,[...t.separators,e]),b(),()=>{t.separators=t.separators.filter(t=>t!==e),b()}},updatePanelProps:(e,{disabled:t})=>{let n=x.current.panels.find(t=>t.id===e);n&&(n.panelConstraints.disabled=t);let r=yr(_),i=br(_);r&&i&&Cr(r,{...i,derivedPanelConstraints:Bn(r)})},updateSeparatorProps:(e,{disabled:t,disableDoubleClick:n})=>{let r=x.current.separators.find(t=>t.id===e);r&&(r.disabled=t,r.disableDoubleClick=n)}}),[C,_,b,u,w]),E=(0,W.useRef)(null);return fi(()=>{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=li(r),{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:c}=br(r.id,!0);!o&&s.length>0&&(h(c),g(c,!1));let l=Sr(_,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=q(t.collapsedSize,i[t.panelId]),a=q(t.collapsedSize,n[t.panelId]);e&&!a&&(r.mutableState.expandedPanelSizes[t.panelId]=n[t.panelId])}}});let o=$n().state!==`active`;h(i),o&&g(i,e.isUserInteraction)});return()=>{E.current=null,a(),l()}},[i,_,g,h,u,y,w]),(0,W.useEffect)(()=>{let e=E.current;e&&(e.mutableState.defaultLayout=n,e.mutableState.disableCursor=!!r)}),(0,U.jsx)(gi.Provider,{value:T,children:(0,U.jsx)(`div`,{...p,className:t,"data-group":!0,"data-testid":_,id:_,ref:S,style:{height:`100%`,width:`100%`,overflow:`hidden`,...f,display:`flex`,flexDirection:u===`horizontal`?`row`:`column`,flexWrap:`nowrap`,touchAction:u===`horizontal`?`pan-y`:`pan-x`},children:e})})}vi.displayName=`Group`;function yi(){let e=(0,W.useContext)(gi);return K(e,`Group Context not found; did you render a Panel or Separator outside of a Group?`),e}function bi(e,t){let{id:n}=yi(),r=(0,W.useRef)({collapse:ir,expand:ir,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:ir});(0,W.useImperativeHandle)(t,()=>r.current,[]),fi(()=>{Object.assign(r.current,Gr({groupId:n,panelId:e}))})}function xi({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=di(c),_=hi({disabled:a}),v=(0,W.useRef)(null),y=mi(v,o),{getPanelStyles:b,id:x,orientation:S,registerPanel:C,updatePanelProps:w}=yi(),T=d!==null,E=pi((e,t,n)=>{d?.(e,c,n)});fi(()=>{let e=v.current;if(e!==null){let t={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}};return C(t)}},[s,n,r,i,T,g,h,l,u,E,C,_]),(0,W.useEffect)(()=>{w(g,{disabled:a})},[a,g,w]),bi(g,f);let D=()=>{let e=b(x,g);if(e)return JSON.stringify(e)},ee=(0,W.useSyncExternalStore)(e=>Sr(x,e),D,D),O;return O=ee?JSON.parse(ee):i===void 0?{flexGrow:1}:{flexGrow:void 0,flexShrink:void 0,flexBasis:i},(0,U.jsx)(`div`,{...m,"data-disabled":a||void 0,"data-panel":!0,"data-testid":g,id:g,ref:y,style:{...Si,display:`flex`,flexBasis:0,flexShrink:1,overflow:`visible`,...O},children:(0,U.jsx)(`div`,{className:t,style:{maxHeight:`100%`,maxWidth:`100%`,flexGrow:1,overflow:`auto`,...p,touchAction:S===`horizontal`?`pan-y`:`pan-x`},children:e})})}xi.displayName=`Panel`;var Si={minHeight:0,maxHeight:`100%`,height:`auto`,minWidth:0,maxWidth:`100%`,width:`auto`,border:`none`,borderWidth:0,padding:0,margin:0};function Ci({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=Wr({layout:Hr({delta:l-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n],i=Wr({layout:Hr({delta:c-o,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e}),panelConstraints:t})[n]}return{valueControls:n,valueMax:i,valueMin:a,valueNow:o}}function wi({children:e,className:t,disabled:n,disableDoubleClick:r,elementRef:i,id:a,style:o,...s}){let c=di(a),l=hi({disabled:n,disableDoubleClick:r}),[u,d]=(0,W.useState)({}),[f,p]=(0,W.useState)(`inactive`),[m,h]=(0,W.useState)(!1),g=(0,W.useRef)(null),_=mi(g,i),{disableCursor:v,id:y,orientation:b,registerSeparator:x,updateSeparatorProps:S}=yi(),C=b===`horizontal`?`vertical`:`horizontal`;fi(()=>{let e=g.current;if(e!==null){let t={disabled:l.disabled,disableDoubleClick:l.disableDoubleClick,element:e,id:c},n=x(t),r=er(e=>{p(e.next.state!==`inactive`&&e.next.hitRegions.some(e=>e.separator===t)?e.next.state:`inactive`)}),i=Sr(y,e=>{let{derivedPanelConstraints:n,layout:r,separatorToPanels:i}=e.next,a=i.get(t);if(a){let e=a[0],t=a.indexOf(e);d(Ci({layout:r,panelConstraints:n,panelId:e.id,panelIndex:t}))}});return()=>{r(),i(),n()}}},[y,c,x,l]),(0,W.useEffect)(()=>{S(c,{disabled:n,disableDoubleClick:r})},[n,r,c,S]);let w;n&&!v&&(w=`not-allowed`);let T;if(n)T=`disabled`;else switch(f){case`active`:T=`active`;break;default:T=m?`focus`:f}return(0,U.jsx)(`div`,{...s,"aria-controls":u.valueControls,"aria-disabled":n||void 0,"aria-orientation":C,"aria-valuemax":u.valueMax,"aria-valuemin":u.valueMin,"aria-valuenow":u.valueNow,children:e,className:t,"data-separator":T,"data-testid":c,id:c,onBlur:()=>h(!1),onFocus:()=>h(!0),ref:_,role:`separator`,style:{flexBasis:`auto`,cursor:w,...o,flexGrow:0,flexShrink:0,touchAction:`none`},tabIndex:n?void 0:0})}wi.displayName=`Separator`;function Ti(e,t,n){let r=n.snapshot.explorer_pin,i=r===null?null:e.find(e=>e.id===r&&e.status!==`archived`)??null;return{session:i??e.find(e=>e.id===t)??null,pinned:i!==null,pin(e){n.update({explorer_pin:e})},unpin(){n.update({explorer_pin:null})}}}var Ei=null,Di=null;async function Oi(){let[e,t]=await Promise.all([C(()=>import(`./PaneEditorBody-9TcMQDtu.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])),C(()=>import(`./ModelRefcount-ByUhfyK3.js`),__vite__mapDeps([21,1,2,16,7,9,3,5,6,10,11,8,12,13,14,15,17]))]);Ei=e.PaneEditorBody,Di=t.ModelRefcount}var ki=(0,W.lazy)(()=>C(()=>import(`./PaneEditorBody-9TcMQDtu.js`).then(e=>({default:e.PaneEditorBody})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])));function Ai(e){return Ei?(0,U.jsx)(Ei,{...e}):(0,U.jsx)(W.Suspense,{fallback:(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center bg-ground text-xs text-fg-muted`,children:`Loading editor…`}),children:(0,U.jsx)(ki,{...e})})}var ji=(0,W.lazy)(()=>C(()=>import(`./ModelRefcount-ByUhfyK3.js`).then(e=>({default:e.ModelRefcount})),__vite__mapDeps([21,1,2,16,7,9,3,5,6,10,11,8,12,13,14,15,17])));function Mi({buffers:e}){return Di?(0,U.jsx)(Di,{buffers:e}):(0,U.jsx)(W.Suspense,{fallback:null,children:(0,U.jsx)(ji,{buffers:e})})}var Ni=(0,W.lazy)(()=>C(()=>import(`./EditorTabClose-DBiuZxHR.js`).then(e=>({default:e.EditorTabClose})),__vite__mapDeps([22,1,2,3,10,11,8,16,7,9,5,6,12,13,14,15,17,18,19])));function Pi(e){return(0,U.jsx)(W.Suspense,{fallback:(0,U.jsx)(`button`,{onClick:t=>{t.stopPropagation(),e.onClose()},className:`flex size-4 items-center justify-center rounded-sm text-fg-muted opacity-0 transition-opacity hover:text-fg group-hover:opacity-100`,"aria-label":`Close ${e.label}`,children:`×`}),children:(0,U.jsx)(Ni,{...e})})}var Fi=e(n(),1);function Ii(){return crypto.randomUUID()}function J(e){return e.type===`terminal`?`term:${e.session}`:`editor:${v(e.tab)}`}function Li(e,t){return J(e)===J(t)}function Ri(e){return e.type===`terminal`}function zi(e=[],t){let n=e.map(J),r=t&&n.includes(t)?t:n.length>0?n[0]:null;return{kind:`leaf`,id:Ii(),tabs:e,activeKey:r,previewKey:null}}function Bi(e,t,n){return{kind:`split`,id:Ii(),direction:e,children:t,sizes:n??t.map(()=>100/Math.max(1,t.length))}}function Vi(e,t){if(e.kind===`leaf`)return e.id===t?e:null;for(let n of e.children){let e=Vi(n,t);if(e)return e}return null}function Hi(e,t){if(e.kind===`leaf`)return e.tabs.some(e=>J(e)===t)?e:null;for(let n of e.children){let e=Hi(n,t);if(e)return e}return null}function Ui(e){return e.kind===`leaf`?[e]:e.children.flatMap(Ui)}function Wi(e){return Ui(e).flatMap(e=>e.tabs)}function Gi(e){let t=e.tabs.map(J),n=e.activeKey&&t.includes(e.activeKey)?e.activeKey:t[0]??null,r=e.previewKey&&t.includes(e.previewKey)?e.previewKey:null;return n===e.activeKey&&r===(e.previewKey??null)?e:{...e,activeKey:n,previewKey:r}}function Ki(e){if(e.kind===`leaf`)return Gi(e);let t=e.children.map(Ki),n=[],r=[];t.forEach((t,i)=>{let a=e.sizes[i]??1;if(t.kind===`split`&&t.direction===e.direction){let e=t.sizes.reduce((e,t)=>e+t,0)||t.children.length;t.children.forEach((i,o)=>{n.push(i),r.push(a*(t.sizes[o]??1)/e)})}else n.push(t),r.push(a)});let i=[],a=[];return n.forEach((e,t)=>{e.kind===`leaf`&&e.tabs.length===0||(i.push(e),a.push(r[t]??1))}),i.length===0?zi([]):i.length===1?i[0]:{...e,children:i,sizes:a}}function qi(e,t,n){return e.kind===`leaf`?e.id===t?n(e):e:{...e,children:e.children.map(e=>qi(e,t,n))}}function Ji(e,t){if(e.kind===`leaf`){if(!e.tabs.some(e=>J(e)===t))return e;let n=e.tabs.filter(e=>J(e)!==t),r=e.activeKey===t?Yi(e,t):e.activeKey;return{...e,tabs:n,activeKey:r}}return{...e,children:e.children.map(e=>Ji(e,t))}}function Yi(e,t){let n=e.tabs.findIndex(e=>J(e)===t);if(n===-1)return e.activeKey;let r=e.tabs.filter(e=>J(e)!==t);return r.length===0?null:J(r[Math.min(n,r.length-1)])}function Xi(e,t,n){let r=e.tabs.filter(e=>!Li(e,t)),i=n===void 0?r.length:Math.max(0,Math.min(n,r.length)),a=[...r.slice(0,i),t,...r.slice(i)];return{...e,tabs:a,activeKey:J(t)}}function Zi(e,t,n,r){let i=n===`left`||n===`right`?`row`:`col`,a=n===`left`||n===`top`;return Ki(qi(e,t,e=>{let t=zi([r]);return Bi(i,a?[t,e]:[e,t],[50,50])}))}function Qi(e,t){let{ref:n,toLeafId:r,edge:i}=t,a=J(n),o=t.index;if(i===`center`&&o!==void 0){let t=Vi(e,r)?.tabs.findIndex(e=>J(e)===a)??-1;t!==-1&&t<o&&--o}let s=Ji(e,a);if(i===`center`){let e=qi(s,r,e=>Xi(e,n,o));return!Vi(e,r)&&!Hi(e,a)?ra(Ki($i(e,n)),a):ra(Ki(e),a)}return Vi(s,r)?ra(Zi(s,r,i,n),a):Ki(zi([n]))}function $i(e,t){let n=Ui(e)[0];return n?qi(e,n.id,e=>Xi(e,t)):zi([t])}function ea(e,t,n){return Ki(qi(e,t,e=>e.tabs.some(e=>J(e)===n)?{...e,tabs:e.tabs.filter(e=>J(e)!==n),activeKey:e.activeKey===n?Yi(e,n):e.activeKey}:e))}function ta(e,t,n){let r=J(n);return Ki(qi(e,t,e=>{let t=e.previewKey===r?null:e.previewKey;return e.tabs.some(e=>Li(e,n))?{...e,activeKey:r,previewKey:t}:{...e,tabs:[...e.tabs,n],activeKey:r,previewKey:t}}))}function na(e,t,n){let r=J(n);return Ki(qi(e,t,e=>{if(e.tabs.some(e=>Li(e,n)))return{...e,activeKey:r};let t=e.previewKey?e.tabs.findIndex(t=>J(t)===e.previewKey):-1,i=t>=0&&!Ri(e.tabs[t])?e.tabs.map((e,r)=>r===t?n:e):[...e.tabs,n];return{...e,tabs:i,activeKey:r,previewKey:r}}))}function ra(e,t){let n=e=>e.kind===`leaf`?e.previewKey===t?{...e,previewKey:null}:e:{...e,children:e.children.map(n)};return n(e)}function ia(e,t,n){let r=e=>e.kind===`leaf`?{...e,tabs:e.tabs.map(e=>e.type===`editor`&&J(e)===t?{...e,tab:{...e.tab,view:n}}:e)}:{...e,children:e.children.map(r)};return r(e)}function aa(e,t,n){return qi(e,t,e=>e.tabs.some(e=>J(e)===n)?{...e,activeKey:n}:e)}function oa(e,t,n){function r(e){return e.kind===`leaf`?e:e.id===t&&n.length===e.children.length?{...e,children:e.children.map(r),sizes:[...n]}:{...e,children:e.children.map(r)}}return r(e)}function sa(e,t){let n=e=>e.kind===`leaf`?{...e,tabs:e.tabs.filter(t)}:{...e,children:e.children.map(n)};return Ki(n(e))}function ca(e){let t=e.editor_tabs.map(e=>({type:`editor`,tab:e})),n=e.session_tabs.map(e=>({type:`terminal`,session:e})),r=e.active_editor_tab?J({type:`editor`,tab:e.active_editor_tab}):null,i=e.active_session?`term:${e.active_session}`:null;if(t.length===0&&n.length===0)return zi([]);if(t.length===0)return zi(n,i);if(n.length===0)return zi(t,r);let a=e.layout,o=typeof a.editor==`number`?a.editor:40,s=typeof a.session==`number`?a.session:60;return Ki(Bi(`col`,[zi(t,r),zi(n,i)],[o,s]))}var la=(0,W.createContext)(null);function ua({tree:e,onOpenFile:t,children:n}){let r=(0,W.useRef)(null),i=(0,W.useRef)(new Map).current,[a,o]=(0,W.useState)(()=>new Set),s=(0,W.useCallback)((e,t)=>{o(n=>{if(n.has(e)===t)return n;let r=new Set(n);return t?r.add(e):r.delete(e),r})},[]),c=(0,W.useMemo)(()=>{let t=new Set;for(let n of Ui(e))for(let e of n.tabs)e.type===`terminal`&&t.add(e.session);return[...t]},[e]),l=e=>{let t=`term:${e}`,n=i.get(t);return n||(n=document.createElement(`div`),n.className=`size-full`,i.set(t,n)),n};(0,W.useEffect)(()=>{let e=new Set(c.map(e=>`term:${e}`));for(let e of c){let t=i.get(`term:${e}`);t&&!t.parentElement&&r.current?.appendChild(t)}for(let[t,n]of[...i])e.has(t)||(n.remove(),i.delete(t))},[c,i]);let u=(0,W.useMemo)(()=>({parkingRef:r,containers:i,setAdopted:s}),[i,s]);return(0,U.jsxs)(la.Provider,{value:u,children:[(0,U.jsx)(`div`,{ref:r,className:`hidden`,"aria-hidden":!0}),c.map(e=>(0,Fi.createPortal)((0,U.jsx)(Me,{stream:e,paused:!a.has(`term:${e}`),onOpenFile:(n,r,i)=>t(e,n,r,i)}),l(e),e)),n]})}function da(e){let t=(0,W.useContext)(la),n=(0,W.useRef)(null);return(0,W.useEffect)(()=>{let r=n.current;if(!t||!e||!r)return;let i=t.containers.get(e);return i&&(r.appendChild(i),t.setAdopted(e,!0)),()=>{let n=t.parkingRef.current;i&&n&&i.parentElement===r&&n.appendChild(i),i&&t.setAdopted(e,!1)}},[t,e]),n}function fa(e,t){let n={};for(let r of t){let t=e[r];if(typeof t!=`number`)return;n[r]=t}return n}var pa={added:{letter:`A`,label:`added`,colourClass:`text-running`},modified:{letter:`M`,label:`modified`,colourClass:`text-fg-secondary`},deleted:{letter:`D`,label:`deleted`,colourClass:`text-interrupted`},renamed:{letter:`R`,label:`renamed`,colourClass:`text-waiting`}};function ma(e){return pa[e]}var ha=[`modified`,`added`,`deleted`,`renamed`];function ga(e){let t=new Map;for(let n of e)t.set(n.status,(t.get(n.status)??0)+1);return ha.filter(e=>t.has(e)).map(e=>`${t.get(e)} ${pa[e].label}`).join(` · `)}var _a=[`var(--accent)`,`var(--status-running)`,`var(--status-waiting)`,`var(--ansi-magenta)`,`var(--ansi-cyan)`,`var(--status-interrupted)`];function va(e){return _a[e%_a.length]}function ya(e){let t=[],n=0,r=0,i=()=>{let e=t.indexOf(null);return e===-1?t.length:e},a=()=>{let e=[];for(let n=0;n<t.length;n++){let r=t[n];r&&e.push({col:n,sha:r.sha,colour:va(r.colourIdx)})}return e},o=[],s=[];for(let c of e){let e=c.parents??[],l=[];for(let e=0;e<t.length;e++)t[e]?.sha===c.sha&&l.push(e);let u,d;l.length>0?(u=l[0],d=t[u].colourIdx):(u=i(),d=n++);let f=va(d);for(let e of l)t[e]=null;for(;t.length<=u;)t.push(null);let p=[];if(e.length>0){t[u]={sha:e[0],colourIdx:d},p.push(u);for(let r=1;r<e.length;r++){let a=e[r],o=t.findIndex(e=>e?.sha===a);if(o===-1){for(o=i();t.length<=o;)t.push(null);t[o]={sha:a,colourIdx:n++}}p.push(o)}}else t[u]=null;let m=a();o.push({sha:c.sha,col:u,colour:f,above:s,below:m,created:p}),s=m,r=Math.max(r,t.length)}return{rows:o,laneCount:r}}var ba=7,xa=14,Sa=4,Ca=1.5,wa=40,Ta=22;function Ea(e){return e*xa+xa/2}function Da(e,t,n,r){if(e===n)return`M ${e} ${t} L ${n} ${r}`;let i=(t+r)/2;return`M ${e} ${t} C ${e} ${i}, ${n} ${i}, ${n} ${r}`}function Oa({row:e,width:t}){let n=wa,r=n/2,i=Ea(e.col),a=new Set(e.created),o=[];for(let t of e.above){let n=Ea(t.col);t.sha===e.sha?o.push({d:Da(n,0,i,r),colour:t.colour}):o.push({d:Da(n,0,n,r),colour:t.colour})}for(let t of e.below){let e=Ea(t.col);a.has(t.col)?o.push({d:Da(i,r,e,n),colour:t.colour}):o.push({d:Da(e,r,e,n),colour:t.colour})}return(0,U.jsxs)(`svg`,{width:t,height:n,className:`shrink-0`,"aria-hidden":!0,children:[o.map((e,t)=>(0,U.jsx)(`path`,{d:e.d,fill:`none`,stroke:e.colour,strokeWidth:Ca},t)),(0,U.jsx)(`circle`,{cx:i,cy:r,r:Sa,fill:`var(--bg-surface)`,stroke:e.colour,strokeWidth:Ca})]})}function ka({lanes:e,width:t}){return(0,U.jsx)(`svg`,{width:t,height:Ta,className:`shrink-0`,"aria-hidden":!0,children:e.map(e=>{let t=Ea(e.col);return(0,U.jsx)(`path`,{d:`M ${t} 0 L ${t} ${Ta}`,fill:`none`,stroke:e.colour,strokeWidth:Ca},e.col)})})}function Aa({session:e,sha:t,lanes:n,gutterW:r,onOpen:i}){let a=u(e,t),o=e=>(0,U.jsxs)(`div`,{className:`flex items-center`,style:{height:Ta},children:[(0,U.jsx)(ka,{lanes:n,width:r}),(0,U.jsx)(`span`,{className:`px-2 text-2xs text-fg-muted`,children:e})]});return a.isPending?o(`…`):a.error?o(a.error instanceof Error?a.error.message:`Failed to load commit`):a.data.files.length===0?o(`No file changes.`):(0,U.jsx)(U.Fragment,{children:a.data.files.map(e=>{let a=ma(e.status),o=e.status===`renamed`&&e.old_path?`${e.old_path} → ${e.path}`:e.path;return(0,U.jsxs)(`button`,{type:`button`,title:o,onClick:()=>i(e.path,t),className:`flex w-full items-center text-left transition-colors hover:bg-elevated`,style:{height:Ta},children:[(0,U.jsx)(ka,{lanes:n,width:r}),(0,U.jsx)(`span`,{className:z(`mr-1.5 w-3 shrink-0 text-center font-mono text-xs`,a.colourClass),children:a.letter}),(0,U.jsx)(`span`,{className:`truncate pr-3 font-mono text-2xs text-fg`,children:o})]},`${e.status}:${e.old_path??``}:${e.path}`)})})}function ja({session:e,onOpenCommitFile:t}){let n=o(e),[r,i]=(0,W.useState)(null),a=(0,W.useMemo)(()=>n.data?.pages.flatMap(e=>e.commits)??[],[n.data]),s=(0,W.useMemo)(()=>ya(a),[a]),c=Math.max(1,s.laneCount)*xa+xa/2;return n.isPending?(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,children:`Loading history…`}):n.error?(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,children:n.error instanceof Error?n.error.message:`Failed to load history`}):a.length===0?(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,children:`No commits yet.`}):(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto pb-2`,children:[s.rows.map((n,o)=>{let s=a[o],l=r===n.sha;return(0,U.jsxs)(`div`,{children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>i(l?null:n.sha),className:z(`flex w-full items-center text-left transition-colors hover:bg-elevated`,l&&`bg-selection`),style:{height:wa},children:[(0,U.jsx)(Oa,{row:n,width:c}),(0,U.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5 pr-3`,children:[(0,U.jsxs)(`span`,{className:`flex items-baseline gap-2`,children:[(0,U.jsx)(`span`,{className:`shrink-0 font-mono text-2xs text-fg-muted`,children:n.sha.slice(0,ba)}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-fg`,children:s.subject})]}),(0,U.jsxs)(`span`,{className:`truncate text-2xs text-fg-muted`,children:[s.author_name,` ·`,` `,(0,U.jsx)(`span`,{className:`tabular-nums`,children:f(s.authored_at)})]})]})]}),l&&(0,U.jsx)(Aa,{session:e,sha:n.sha,lanes:n.below,gutterW:c,onOpen:t})]},n.sha)}),n.hasNextPage&&(0,U.jsx)(`button`,{type:`button`,onClick:()=>void n.fetchNextPage(),disabled:n.isFetchingNextPage,className:`px-3 py-2 text-left font-mono text-xs text-fg-muted transition-colors hover:bg-elevated`,children:n.isFetchingNextPage?`Loading…`:`Show more`})]})}function Ma(){return{dirs:new Map,files:[]}}function Na(e){return e.path}function Pa(e,t){let n=[];for(let[r,i]of e.dirs){let e=t?`${t}/${r}`:r,a={type:`dir`,name:r,path:e,children:Pa(i,e)};for(;a.children.length===1&&a.children[0].type===`dir`;){let e=a.children[0];a={type:`dir`,name:`${a.name}/${e.name}`,path:e.path,children:e.children}}n.push(a)}n.sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`}));let r=[...e.files].sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:`base`}));return[...n,...r]}function Fa(e){let t=Ma();for(let n of e){let e=Na(n),r=e.split(`/`),i=r.pop(),a=t;for(let e of r){let t=a.dirs.get(e);t||(t=Ma(),a.dirs.set(e,t)),a=t}a.files.push({type:`file`,name:i,path:e,entry:n})}return Pa(t,``)}function Ia(e){return e.map(e=>({type:`file`,name:Na(e).split(`/`).pop()??Na(e),path:Na(e),entry:e})).sort((e,t)=>e.path.localeCompare(t.path,void 0,{sensitivity:`base`}))}function La({name:e,fullPath:t,status:n,depth:r,active:i,onOpen:a}){let o=ma(n);return(0,U.jsxs)(`button`,{type:`button`,title:t,onClick:()=>a(t),className:z(`flex w-full items-center gap-1.5 py-1 pr-3 text-left transition-colors hover:bg-elevated`,i&&`bg-selection`),style:{paddingLeft:8+r*12},children:[(0,U.jsx)(`span`,{className:z(`w-3 shrink-0 text-center font-mono text-xs`,o.colourClass),children:o.letter}),(0,U.jsx)(`span`,{className:`truncate font-mono text-xs text-fg`,children:e})]})}function Ra({nodes:e,depth:t,activePath:n,onOpen:r}){let[i,a]=(0,W.useState)(new Set);return(0,U.jsx)(U.Fragment,{children:e.map(e=>{if(e.type===`file`)return(0,U.jsx)(La,{name:e.name,fullPath:e.path,status:e.entry.status,depth:t,active:n===e.path,onOpen:r},e.path);let o=i.has(e.path);return(0,U.jsxs)(`div`,{children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>a(t=>{let n=new Set(t);return n.has(e.path)?n.delete(e.path):n.add(e.path),n}),className:`flex w-full items-center gap-1 py-1 pr-3 text-left transition-colors hover:bg-elevated`,style:{paddingLeft:8+t*12},children:[o?(0,U.jsx)(vt,{className:`size-3.5 shrink-0 text-fg-gold`}):(0,U.jsx)(gt,{className:`size-3.5 shrink-0 text-fg-gold`}),(0,U.jsx)(`span`,{className:`truncate font-mono text-xs text-fg-secondary`,children:e.name})]}),!o&&(0,U.jsx)(Ra,{nodes:e.children,depth:t+1,activePath:n,onOpen:r})]},e.path)})})}function za({session:e,activePath:t,onOpen:n}){let[r,i]=(0,W.useState)(!1),a=S(e,{against:`head`}),o=a.data?.entries??[],s=(0,W.useMemo)(()=>r?null:Fa(o),[r,o]),c=(0,W.useMemo)(()=>r?Ia(o):null,[r,o]);return(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,U.jsxs)(`div`,{className:`flex h-7 shrink-0 items-center gap-2 px-3`,children:[(0,U.jsx)(`span`,{className:`text-2xs font-medium uppercase tracking-wide text-fg-gold`,children:`Uncommitted`}),o.length>0&&(0,U.jsx)(`span`,{className:`truncate font-mono text-2xs text-fg-muted`,children:ga(o)}),(0,U.jsxs)(Tt,{children:[(0,U.jsx)(Ft,{asChild:!0,children:(0,U.jsxs)(`button`,{type:`button`,"aria-pressed":!r,onClick:()=>i(e=>!e),className:`ml-auto rounded-sm p-1 text-fg-gold transition-colors hover:bg-elevated hover:text-fg`,children:[r?(0,U.jsx)(xn,{className:`size-3.5`}):(0,U.jsx)(_n,{className:`size-3.5`}),(0,U.jsx)(`span`,{className:`sr-only`,children:r?`Show as tree`:`Show as flat list`})]})}),(0,U.jsx)(bt,{children:r?`Show as tree`:`Show as flat list`})]})]}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto pb-1`,children:a.isPending?(0,U.jsx)(`div`,{className:`px-3 py-1.5 text-xs text-fg-muted`,children:`Loading changes…`}):a.error?(0,U.jsx)(`div`,{className:`px-3 py-1.5 text-xs text-fg-muted`,children:a.error instanceof Error?a.error.message:`Failed to load changes`}):o.length===0?(0,U.jsx)(`div`,{className:`px-3 py-1.5 text-xs text-fg-muted`,children:`No uncommitted changes.`}):r?c.map(e=>(0,U.jsx)(La,{name:e.path,fullPath:e.path,status:e.entry.status,depth:0,active:t===e.path,onOpen:n},e.path)):(0,U.jsx)(Ra,{nodes:s,depth:0,activePath:t,onOpen:n})})]})}function Ba({session:e,activeDiffPath:t,onOpenDiff:n,onOpenCommitFile:r}){return(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,U.jsx)(`section`,{className:`flex max-h-[45%] min-h-0 flex-col`,children:(0,U.jsx)(za,{session:e,activePath:t,onOpen:n})}),(0,U.jsx)(`div`,{className:`h-px shrink-0 bg-border`}),(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,U.jsx)(`div`,{className:`flex h-7 shrink-0 items-center px-3`,children:(0,U.jsx)(`span`,{className:`text-2xs font-medium uppercase tracking-wide text-fg-gold`,children:`History`})}),(0,U.jsx)(ja,{session:e,onOpenCommitFile:r})]})]})}async function Va(e){let t=e.createReader(),n=[];for(;;){let e=await new Promise((e,n)=>t.readEntries(e,n));if(e.length===0)return n;n.push(...e)}}function Ha(e){return new Promise((t,n)=>e.file(t,n))}async function Ua(e,t,n){if(e.isFile){let r=await Ha(e);n.push(t?new File([r],`${t}/${e.name}`,{type:r.type,lastModified:r.lastModified}):r)}else if(e.isDirectory){let r=await Va(e),i=t?`${t}/${e.name}`:e.name;for(let e of r)await Ua(e,i,n)}}function Wa(e,t,n){let r=Array.from(e??[]).map(e=>({entry:e.webkitGetAsEntry?.()??null,file:e.kind===`file`?e.getAsFile():null})),i=Array.from(t);return(async()=>{if(r.every(({entry:e,file:t})=>e===null&&t===null))return i;if(!n)return r.some(({entry:e})=>e?.isDirectory)&&D.error(`This daemon can't take folders — update it, or zip them first`),r.filter(({entry:e})=>e?.isDirectory!==!0).map(({file:e})=>e).filter(e=>e!==null);let e=[];for(let{entry:t,file:n}of r)t?.isDirectory?await Ua(t,``,e):n&&e.push(n);return e})()}var Ga={untracked:{letter:`U`,colourClass:`text-running`},added:{letter:`A`,colourClass:`text-running`},modified:{letter:`M`,colourClass:`text-waiting`},renamed:{letter:`R`,colourClass:`text-waiting`},deleted:{letter:`D`,colourClass:`text-interrupted`},conflicted:{letter:`C`,colourClass:`text-interrupted`},ignored:{letter:``,colourClass:`text-fg-muted`}};function Ka(e){return Ga[e]}function qa(e){let t=new Map;for(let n of e)t.set(n.path,n.status);return t}var Ja={conflicted:0,modified:1,renamed:2,deleted:3,added:4,untracked:5,ignored:6};function Ya(e,t){let n=t===``?``:`${t}/`,r=null;for(let[t,i]of e)n!==``&&!t.startsWith(n)||i!==`ignored`&&(r===null||Ja[i]<Ja[r])&&(r=i);return r}function Xa(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function Za(e){let t=e.lastIndexOf(`/`);return t===-1?``:e.slice(0,t)}function Qa(e,t){return e===``?t:`${e}/${t}`}function $a(e,t){let n=[],r=(i,a)=>{let o=e(i);if(o)for(let e of o.entries){let o=Qa(i,e.name);n.push({path:o,name:e.name,type:e.type,depth:a,parentDir:i}),e.type===`dir`&&t.has(o)&&r(o,a+1)}};return r(``,0),n}function eo(e,t,n){let r=e.findIndex(e=>e.path===t),i=e.findIndex(e=>e.path===n);if(r===-1||i===-1)return n?[n]:[];let[a,o]=r<=i?[r,i]:[i,r];return e.slice(a,o+1).map(e=>e.path)}var to=(e,t)=>e instanceof Error?e.message:t;function no(e){let t=i(),n=(0,W.useCallback)(()=>{t.invalidateQueries({queryKey:[`wt-tree`,e]}),t.invalidateQueries({queryKey:[`wt-git-status`,e]})},[t,e]);return(0,W.useMemo)(()=>({async create(t,r,i){try{let a=await c(e,Qa(t,r),i);return n(),a.path}catch(e){return D.error(to(e,`Couldn't create ${r}`)),null}},async rename(t,r){let i=Qa(t.includes(`/`)?t.slice(0,t.lastIndexOf(`/`)):``,r);try{let r=await p(e,t,i);return n(),r.path}catch(e){return D.error(to(e,`Couldn't rename ${Xa(t)}`)),null}},async move(t,r){try{let i=await p(e,t,Qa(r,Xa(t)));return n(),i.path}catch(e){return D.error(to(e,`Couldn't move ${Xa(t)}`)),null}},async remove(t){let r=await Promise.allSettled(t.map(t=>l(e,t)));n();let i=r.filter(e=>e.status===`rejected`).length;i>0?D.error(`Couldn't delete ${i} item${i>1?`s`:``}`):D.success(t.length===1?`Deleted ${Xa(t[0])}`:`Deleted ${t.length} items`)},async paste(t,r){let i=t.mode===`cut`?p:y,a=await Promise.allSettled(t.paths.map(t=>i(e,t,Qa(r,Xa(t)))));n();let o=a.filter(e=>e.status===`rejected`).length;o>0&&D.error(`Couldn't paste ${o} item${o>1?`s`:``}`)}}),[e,n])}function ro(e,t,n){return n&&n.type!==`dir`||(e.includes(`/`)?e.slice(0,e.lastIndexOf(`/`)):``)===t?!1:t===``||!`${t}/`.startsWith(`${e}/`)}var io=(0,W.createContext)(null);function ao(){let e=(0,W.useContext)(io);if(!e)throw Error(`explorer components must render inside <ExplorerProvider>`);return e}function oo(){return(0,W.useContext)(io)}function so({session:e,onOpenFile:t,activePath:n,children:r}){let a=e.id,o=i(),s=no(a),c=(0,W.useCallback)((e,t)=>{t.length!==0&&d(a,e,t).then(()=>{o.invalidateQueries({queryKey:[`wt-tree`,a,e]}),o.invalidateQueries({queryKey:[`wt-git-status`,a]}),D.success(t.length===1?`Uploaded ${t[0].name}`:`Uploaded ${t.length} files`)}).catch(e=>D.error(e instanceof Error?e.message:`Upload failed`))},[a,o]),l=Fe().data?.protocol,u=!l||l.major>9||l.major===9&&l.minor>=2,f=(0,W.useCallback)((e,t,n)=>{Wa(t,n,u).then(t=>c(e,t)).catch(e=>D.error(e instanceof Error?e.message:`Couldn't read the dropped folder`))},[c,u]),[p,m]=(0,W.useState)(new Set),[g,_]=(0,W.useState)(new Set),[v,y]=(0,W.useState)(null),[b,S]=(0,W.useState)(null),[C,w]=(0,W.useState)(null),[T,E]=(0,W.useState)(null),[ee,O]=(0,W.useState)(null),k=(0,W.useRef)(null),te=x(a),A=(0,W.useMemo)(()=>qa(te.data?.entries??[]),[te.data]),[j,ne]=(0,W.useState)(0);(0,W.useEffect)(()=>o.getQueryCache().subscribe(e=>{if(e.type!==`added`&&e.type!==`removed`&&e.type!==`updated`)return;let t=e.query.queryKey;Array.isArray(t)&&t[0]===`wt-tree`&&t[1]===a&&ne(e=>e+1)}),[o,a]);let re=(0,W.useMemo)(()=>$a(e=>o.getQueryData([`wt-tree`,a,e]),p),[o,a,p,j]),M=(0,W.useCallback)(e=>{m(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),N=(0,W.useCallback)(e=>{m(t=>t.has(e)?t:new Set(t).add(e))},[]),ie=(0,W.useCallback)(()=>m(new Set),[]),ae=(0,W.useCallback)((e,n)=>{if(y(e.path),n.metaKey||n.ctrlKey){_(t=>{let n=new Set(t);return n.has(e.path)?n.delete(e.path):n.add(e.path),n}),k.current=e.path;return}if(n.shiftKey&&k.current){_(new Set(eo(re,k.current,e.path)));return}_(new Set([e.path])),k.current=e.path,e.type===`dir`?M(e.path):t?.(a,e.path)},[re,M,t,a]),P=(0,W.useCallback)(e=>{e.type!==`dir`&&t?.(a,e.path,{preview:!1})},[t,a]),oe=(0,W.useCallback)(e=>{_(new Set([e])),y(e),k.current=e},[]),se=(0,W.useCallback)(e=>S({paths:e,mode:`cut`}),[]),ce=(0,W.useCallback)(e=>S({paths:e,mode:`copy`}),[]),F=(0,W.useCallback)(e=>{b&&s.paste(b,e).then(()=>{b.mode===`cut`&&S(null)})},[b,s]),I=(0,W.useCallback)(e=>w({mode:`rename`,path:e}),[]),le=(0,W.useCallback)((e,t)=>{e!==``&&N(e),w({mode:`create`,parentDir:e,kind:t})},[N]),ue=(0,W.useCallback)(()=>w(null),[]),de=(0,W.useCallback)(e=>{let n=e.trim(),r=C;if(w(null),!(!r||n===``))if(r.mode===`rename`){if(n===Xa(r.path))return;s.rename(r.path,n)}else s.create(r.parentDir,n,r.kind).then(e=>{e&&r.kind===`file`&&t?.(a,e)})},[C,s,t,a]),L=(0,W.useCallback)(e=>{e.length>0&&O(e)},[]),fe=(0,W.useCallback)(()=>{let e=ee;O(null),e&&s.remove(e)},[ee,s]),pe=(0,W.useCallback)(()=>O(null),[]),me=(0,W.useCallback)((t,n)=>{let r=n?t:Qa(e.worktree_path,t);navigator.clipboard.writeText(r),D.success(n?`Relative path copied`:`Path copied`)},[e.worktree_path]),he=(0,W.useCallback)(e=>{h(a,e).catch(e=>D.error(e instanceof Error?e.message:`Download failed`))},[a]),R=(0,W.useCallback)(()=>{o.invalidateQueries({queryKey:[`wt-tree`,a]}),o.invalidateQueries({queryKey:[`wt-git-status`,a]})},[o,a]),ge=(0,W.useCallback)((e,t)=>{ro(t,e)&&s.move(t,e)},[s]),_e=(0,W.useCallback)(()=>v&&g.has(v)?[...g]:v?[v]:[...g],[v,g]),ve=(0,W.useRef)({buffer:``,at:0}),ye=(0,W.useCallback)(e=>{if(C)return;let n=re;if(n.length===0)return;let r=v?n.findIndex(e=>e.path===v):-1,i=(e,t)=>{let r=n[Math.max(0,Math.min(n.length-1,e))];r&&(y(r.path),t&&k.current?_(new Set(eo(n,k.current,r.path))):(_(new Set([r.path])),k.current=r.path))},o=r>=0?n[r]:void 0,s=e.metaKey||e.ctrlKey;switch(e.key){case`ArrowDown`:e.preventDefault(),i(r+1,e.shiftKey);return;case`ArrowUp`:e.preventDefault(),i(r<=0?0:r-1,e.shiftKey);return;case`ArrowRight`:e.preventDefault(),o?.type===`dir`&&!p.has(o.path)?N(o.path):o?.type===`dir`&&i(r+1,!1);return;case`ArrowLeft`:if(e.preventDefault(),o?.type===`dir`&&p.has(o.path))M(o.path);else if(o){let e=n.findIndex(e=>e.path===o.parentDir);e>=0&&i(e,!1)}return;case`Enter`:case` `:if(e.preventDefault(),!o)return;o.type===`dir`?M(o.path):t?.(a,o.path);return;case`F2`:e.preventDefault(),o&&I(o.path);return;case`Delete`:e.preventDefault(),L(_e());return;case`Backspace`:s&&(e.preventDefault(),L(_e()));return}if(s&&(e.key===`c`||e.key===`C`)){e.preventDefault();let t=_e();e.altKey?me(t[0]??``,e.shiftKey):ce(t);return}if(s&&(e.key===`x`||e.key===`X`)){e.preventDefault(),se(_e());return}if(s&&(e.key===`v`||e.key===`V`)){e.preventDefault();let t=o?o.type===`dir`?o.path:o.parentDir:``;F(t);return}if(!s&&!e.altKey&&e.key.length===1&&/\S/.test(e.key)){let t=Date.now(),a=ve.current;a.buffer=t-a.at>700?e.key:a.buffer+e.key,a.at=t;let o=a.buffer.toLowerCase(),s=r+1;for(let e=0;e<n.length;e++){let t=n[(s+e)%n.length];if(t.name.toLowerCase().startsWith(o)){i(n.findIndex(e=>e.path===t.path),!1);break}}}},[C,re,v,p,N,M,t,a,I,L,_e,ce,se,F,me]),be={sid:a,worktreePath:e.worktree_path,onOpenFile:t,activePath:n,expanded:p,toggle:M,collapseAll:ie,statusMap:A,visibleRows:re,selection:g,focusedPath:v,onRowClick:ae,onRowDoubleClick:P,selectOnly:oe,clipboard:b,cut:se,copy:ce,paste:F,editing:C,beginRename:I,beginCreate:le,cancelEdit:ue,commitEdit:de,requestDelete:L,copyPathToClipboard:me,download:he,refresh:R,onUpload:c,onDropUpload:f,dropTarget:T,setDropTarget:E,onInternalDrop:ge,handleKeyDown:ye,pendingDelete:ee,confirmDelete:fe,cancelDelete:pe};return(0,U.jsx)(io.Provider,{value:be,children:r})}var co=`application/x-puddle-tab`;function lo(e){return JSON.stringify(e)}function uo(e){try{return w.parse(JSON.parse(e))}catch{return null}}function fo(e){return e.includes(co)}var po={"package.json":tn,"package-lock.json":sn,"pnpm-lock.yaml":sn,"yarn.lock":sn,"pnpm-workspace.yaml":nn,dockerfile:H,".gitignore":nn,".gitattributes":nn,"readme.md":fn,license:fn,licence:fn},mo={ts:H,tsx:H,mts:H,cts:H,js:H,jsx:H,mjs:H,cjs:H,py:H,rs:H,go:H,rb:H,php:H,java:H,kt:H,c:H,h:H,cpp:H,hpp:H,cc:H,html:H,htm:H,xml:H,vue:H,sql:H,json:tn,jsonc:tn,yml:nn,yaml:nn,toml:nn,ini:nn,cfg:nn,conf:nn,env:on,lock:sn,csv:un,tsv:un,xlsx:un,xls:un,md:fn,mdx:fn,markdown:fn,txt:fn,rtf:fn,log:fn,pdf:fn,css:pn,scss:pn,sass:pn,less:pn,sh:dn,bash:dn,zsh:dn,fish:dn,svg:an,png:an,jpg:an,jpeg:an,gif:an,webp:an,bmp:an,ico:an,avif:an,mp4:cn,mov:cn,webm:cn,mkv:cn,avi:cn,mp3:rn,wav:rn,flac:rn,ogg:rn,m4a:rn,zip:en,tar:en,gz:en,tgz:en,rar:en,"7z":en};function ho(e){let t=e.toLowerCase(),n=po[t];if(n)return{Icon:n,generic:!1};let r=t.lastIndexOf(`.`);if(r>0){let e=mo[t.slice(r+1)];if(e)return{Icon:e,generic:!1}}return{Icon:mn,generic:!0}}function go({name:e,dimmed:t}){let{Icon:n,generic:r}=ho(e);return(0,U.jsx)(n,{className:z(`size-3.5 shrink-0`,t||r?`text-fg-muted`:`text-fg`)})}var _o=14,vo=`application/x-puddle-path`;function yo({children:e}){return(0,U.jsx)(`span`,{className:`ml-auto pl-6 text-2xs text-fg-muted tabular-nums`,children:e})}function bo({depth:e,initial:t,icon:n,onCommit:r,onCancel:i}){let a=(0,W.useRef)(null),o=(0,W.useRef)(!1);(0,W.useEffect)(()=>{let e=a.current;if(!e)return;let n=()=>{e.focus();let n=t.lastIndexOf(`.`);e.setSelectionRange(0,n>0?n:t.length)};n();let r=requestAnimationFrame(()=>{document.activeElement!==e&&n()});return()=>cancelAnimationFrame(r)},[t]);let s=()=>{o.current||(o.current=!0,r(a.current?.value??``))};return(0,U.jsxs)(`div`,{className:`flex h-6 items-center gap-1 pr-2`,style:{paddingLeft:e*_o+8},children:[(0,U.jsx)(`span`,{className:`size-3.5 shrink-0`}),n,(0,U.jsx)(`input`,{ref:a,defaultValue:t,spellCheck:!1,onKeyDown:e=>{e.stopPropagation(),e.key===`Enter`?s():e.key===`Escape`&&(o.current=!0,i())},onBlur:s,className:`min-w-0 flex-1 bg-surface font-mono text-sm text-fg outline-none`})]})}function xo({path:e,entry:t,depth:n}){let r=ao(),i=t.type===`dir`,a=i&&r.expanded.has(e),o=i&&r.dropTarget===e,s=!i&&e===r.activePath,c=r.selection.has(e),l=r.clipboard?.mode===`cut`&&r.clipboard.paths.includes(e),u={path:e,name:t.name,type:t.type,depth:n,parentDir:Za(e)},d=r.statusMap.get(e),f=i?Ya(r.statusMap,e):null,p=d?Ka(d):f?Ka(f):null,m=p?p.colourClass:t.name.startsWith(`.`)?`text-fg-muted`:`text-fg`,h=c&&r.selection.size>1?[...r.selection]:[e],g=i?e:Za(e),_=r.clipboard!==null;return r.editing?.mode===`rename`&&r.editing.path===e?(0,U.jsx)(bo,{depth:n,initial:t.name,icon:i?(0,U.jsx)(hn,{className:`size-3.5 shrink-0 text-fg`}):(0,U.jsx)(go,{name:t.name}),onCommit:r.commitEdit,onCancel:r.cancelEdit}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(at,{children:[(0,U.jsx)(Ke,{asChild:!0,children:(0,U.jsxs)(`div`,{role:`treeitem`,"data-path":e,"aria-expanded":i?a:void 0,"aria-selected":c,tabIndex:-1,draggable:!0,onClick:e=>{e.currentTarget.closest(`[data-explorer-root]`)?.focus(),r.onRowClick(u,e)},onDoubleClick:()=>r.onRowDoubleClick(u),onContextMenu:()=>{c||r.selectOnly(e)},onDragStart:t=>{t.dataTransfer.setData(vo,e),i||t.dataTransfer.setData(co,lo({type:`editor`,tab:{kind:`file`,session:r.sid,path:e}})),t.dataTransfer.effectAllowed=`copyMove`},onDragOver:t=>{i&&(t.preventDefault(),t.stopPropagation(),r.setDropTarget(e))},onDragLeave:e=>{i&&e.currentTarget===e.target&&r.setDropTarget(null)},onDrop:t=>{if(!i)return;t.preventDefault(),t.stopPropagation(),r.setDropTarget(null);let n=t.dataTransfer.getData(vo);n?r.onInternalDrop(e,n):r.onDropUpload(e,t.dataTransfer.items,t.dataTransfer.files)},style:{paddingLeft:n*_o+8},className:z(`flex h-6 cursor-pointer items-center gap-1 pr-2 text-sm transition-colors hover:bg-elevated`,c?`bg-selection`:s&&`bg-elevated`,o&&`bg-selection`,l&&`opacity-50`),children:[i?(0,U.jsx)(vt,{className:z(`size-3.5 shrink-0 text-fg-gold transition-transform duration-150`,a&&`rotate-90`)}):(0,U.jsx)(`span`,{className:`size-3.5 shrink-0`}),t.symlink||t.type===`symlink`?(0,U.jsx)(bn,{className:`size-3.5 shrink-0 text-fg`}):i?a?(0,U.jsx)(At,{className:z(`size-3.5 shrink-0`,f?p?.colourClass:`text-fg`)}):(0,U.jsx)(hn,{className:z(`size-3.5 shrink-0`,f?p?.colourClass:`text-fg`)}):(0,U.jsx)(go,{name:t.name,dimmed:d===`ignored`}),(0,U.jsx)(`span`,{className:z(`min-w-0 flex-1 truncate font-mono`,m),children:t.name}),d&&p&&p.letter&&(0,U.jsx)(`span`,{className:z(`shrink-0 font-mono text-2xs`,p.colourClass),children:p.letter})]})}),(0,U.jsxs)(tt,{onCloseAutoFocus:e=>{r.editing&&e.preventDefault()},children:[i&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(V,{onSelect:()=>r.beginCreate(e,`file`),children:`New File…`}),(0,U.jsx)(V,{onSelect:()=>r.beginCreate(e,`dir`),children:`New Folder…`}),(0,U.jsx)(Ze,{})]}),(0,U.jsxs)(V,{onSelect:()=>r.cut(h),children:[`Cut `,(0,U.jsx)(yo,{children:`⌘X`})]}),(0,U.jsxs)(V,{onSelect:()=>r.copy(h),children:[`Copy `,(0,U.jsx)(yo,{children:`⌘C`})]}),(0,U.jsxs)(V,{disabled:!_,onSelect:()=>r.paste(g),children:[`Paste `,(0,U.jsx)(yo,{children:`⌘V`})]}),(0,U.jsx)(Ze,{}),(0,U.jsxs)(V,{onSelect:()=>r.copyPathToClipboard(e,!1),children:[`Copy Path `,(0,U.jsx)(yo,{children:`⌥⌘C`})]}),(0,U.jsxs)(V,{onSelect:()=>r.copyPathToClipboard(e,!0),children:[`Copy Relative Path `,(0,U.jsx)(yo,{children:`⌥⇧⌘C`})]}),(0,U.jsx)(Ze,{}),(0,U.jsxs)(V,{onSelect:()=>r.beginRename(e),children:[`Rename… `,(0,U.jsx)(yo,{children:`F2`})]}),(0,U.jsxs)(V,{onSelect:()=>r.requestDelete(h),children:[`Delete `,(0,U.jsx)(yo,{children:`⌘⌫`})]}),(0,U.jsx)(Ze,{}),(0,U.jsx)(V,{onSelect:()=>r.download(e),children:`Download`})]})]}),i&&a&&(0,U.jsx)(So,{sid:r.sid,path:e,depth:n+1})]})}function So({sid:e,path:t,depth:n}){let r=ao(),i=b(e,t),a={paddingLeft:n*_o+8},o=r.editing,s=o?.mode===`create`&&o.parentDir===t?(0,U.jsx)(Co,{depth:n,kind:o.kind}):null;if(i.isLoading)return(0,U.jsxs)(U.Fragment,{children:[s,(0,U.jsx)(`div`,{style:a,className:`py-0.5 text-xs text-fg-muted`,children:`Loading…`})]});if(i.isError)return(0,U.jsx)(`div`,{style:a,className:`py-0.5 text-xs text-fg-muted`,children:i.error instanceof Error?i.error.message:`Couldn't load this folder.`});let c=i.data?.entries??[];return c.length===0&&!s?(0,U.jsx)(`div`,{style:a,className:`py-0.5 text-xs text-fg-muted`,children:`Empty`}):(0,U.jsxs)(U.Fragment,{children:[s,c.map(e=>(0,U.jsx)(xo,{path:Qa(t,e.name),entry:e,depth:n},e.name))]})}function Co({depth:e,kind:t}){let n=ao(),[r,i]=(0,W.useState)(``);return(0,U.jsx)(bo,{depth:e,initial:r,icon:t===`dir`?(0,U.jsx)(hn,{className:`size-3.5 shrink-0 text-fg`}):(0,U.jsx)(go,{name:r||`file`}),onCommit:e=>{i(e),n.commitEdit(e)},onCancel:n.cancelEdit})}function wo(){return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(To,{}),(0,U.jsx)(Eo,{})]})}function To(){let e=ao(),t=(0,W.useRef)(null);(0,W.useEffect)(()=>{!e.focusedPath||!t.current||t.current.querySelector(`[data-path="${CSS.escape(e.focusedPath)}"]`)?.scrollIntoView({block:`nearest`})},[e.focusedPath]);let n=e.clipboard!==null;return(0,U.jsxs)(at,{children:[(0,U.jsx)(Ke,{asChild:!0,children:(0,U.jsx)(`div`,{ref:t,"data-explorer-root":!0,role:`tree`,tabIndex:0,onKeyDown:e.handleKeyDown,onPaste:t=>e.onDropUpload(``,t.clipboardData.items,t.clipboardData.files),onDragOver:t=>{t.preventDefault(),e.setDropTarget(``)},onDragLeave:t=>{t.currentTarget===t.target&&e.setDropTarget(null)},onDrop:t=>{t.preventDefault(),e.setDropTarget(null);let n=t.dataTransfer.getData(`application/x-puddle-path`);n?e.onInternalDrop(``,n):e.onDropUpload(``,t.dataTransfer.items,t.dataTransfer.files)},className:z(`h-full overflow-y-auto py-1 outline-none`,e.dropTarget===``&&`bg-selection`),children:(0,U.jsx)(So,{sid:e.sid,path:``,depth:0})})}),(0,U.jsxs)(tt,{onCloseAutoFocus:t=>{e.editing&&t.preventDefault()},children:[(0,U.jsx)(V,{onSelect:()=>e.beginCreate(``,`file`),children:`New File…`}),(0,U.jsx)(V,{onSelect:()=>e.beginCreate(``,`dir`),children:`New Folder…`}),(0,U.jsx)(Ze,{}),(0,U.jsx)(V,{disabled:!n,onSelect:()=>e.paste(``),children:`Paste`}),(0,U.jsx)(Ze,{}),(0,U.jsx)(V,{onSelect:()=>e.copyPathToClipboard(``,!1),children:`Copy Path`}),(0,U.jsx)(V,{onSelect:()=>e.download(``),children:`Download worktree`})]})]})}function Eo(){let e=ao(),t=e.pendingDelete;return(0,U.jsx)(P,{open:t!==null,onOpenChange:t=>!t&&e.cancelDelete(),children:(0,U.jsxs)(N,{children:[(0,U.jsxs)(te,{children:[(0,U.jsxs)(ie,{children:[`Delete `,t&&t.length===1?`“${Xa(t[0])}”`:`${t?.length??0} items`,`?`]}),(0,U.jsxs)(ae,{children:[`This permanently removes `,t&&t.length>1?`them`:`it`,` from the worktree. There is no undo.`]})]}),(0,U.jsxs)(re,{children:[(0,U.jsx)(j,{variant:`ghost`,onClick:e.cancelDelete,children:`Cancel`}),(0,U.jsx)(j,{variant:`danger`,onClick:e.confirmDelete,children:`Delete`})]})]})})}var Do=/[.*+?^${}()|[\]\\]/g;function Oo(e){if(e.query.length===0)return null;try{let t=e.regex?e.query:e.query.replace(Do,`\\$&`);return e.wholeWord&&(t=`\\b(?:${t})\\b`),new RegExp(t,e.caseSensitive?`g`:`gi`)}catch{return null}}function ko(e,t){if(!t)return[{text:e,hit:!1}];let n=[],r=0;t.lastIndex=0;let i;for(;(i=t.exec(e))!==null;){if(i[0].length===0){t.lastIndex++;continue}i.index>r&&n.push({text:e.slice(r,i.index),hit:!1}),n.push({text:i[0],hit:!0}),r=i.index+i[0].length}return r<e.length&&n.push({text:e.slice(r),hit:!1}),n.length>0?n:[{text:e,hit:!1}]}var Ao=240;function jo(e){let t=e.replace(/^\s+/,``);return t.length>Ao?`${t.slice(0,Ao)}…`:t}var Mo=250;function No({active:e,label:t,onClick:n,children:r}){return(0,U.jsxs)(Tt,{children:[(0,U.jsx)(Ft,{asChild:!0,children:(0,U.jsxs)(`button`,{type:`button`,"aria-pressed":e,onClick:n,className:z(`rounded-sm p-1 transition-colors`,e?`bg-elevated text-accent`:`text-fg-muted hover:bg-elevated hover:text-fg`),children:[r,(0,U.jsx)(`span`,{className:`sr-only`,children:t})]})}),(0,U.jsx)(bt,{children:t})]})}function Po({session:e,onOpen:t}){let[n,r]=(0,W.useState)(``),[i,o]=(0,W.useState)(``),[s,c]=(0,W.useState)(!1),[l,u]=(0,W.useState)(!1),[d,f]=(0,W.useState)(!1);(0,W.useEffect)(()=>{let e=setTimeout(()=>o(n),Mo);return()=>clearTimeout(e)},[n]);let p={query:i,regex:s,caseSensitive:l,wholeWord:d},m=a(e,p),h=(0,W.useMemo)(()=>Oo(p),[i,s,l,d]),g=m.data,_=!!g&&(g.files.length>0||g.content.length>0);return(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,U.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-1 px-2 py-1.5`,children:[(0,U.jsx)(`input`,{value:n,onChange:e=>r(e.target.value),placeholder:`Search files and contents`,spellCheck:!1,autoComplete:`off`,className:`rounded-md bg-elevated px-2 py-1 font-mono text-xs text-fg outline-none placeholder:text-fg-muted`}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(No,{active:l,label:`Match case`,onClick:()=>u(e=>!e),children:(0,U.jsx)(Jt,{className:`size-3.5`})}),(0,U.jsx)(No,{active:d,label:`Match whole word`,onClick:()=>f(e=>!e),children:(0,U.jsx)(Mn,{className:`size-3.5`})}),(0,U.jsx)(No,{active:s,label:`Use regular expression`,onClick:()=>c(e=>!e),children:(0,U.jsx)(On,{className:`size-3.5`})})]})]}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto pb-2`,children:i.length===0?(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,children:`Search file names and contents.`}):m.isPending?(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,children:`Searching…`}):m.error?(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,children:m.error instanceof Error?m.error.message:`Search failed`}):_?(0,U.jsxs)(U.Fragment,{children:[g.files.length>0&&(0,U.jsxs)(`section`,{children:[(0,U.jsx)(`div`,{className:`px-3 pb-0.5 pt-1.5 text-2xs font-medium uppercase tracking-wide text-fg-gold`,children:`Files`}),g.files.map(e=>(0,U.jsxs)(`button`,{type:`button`,title:e,onClick:()=>t(e),className:`flex w-full items-center gap-1.5 px-3 py-1 text-left transition-colors hover:bg-elevated`,children:[(0,U.jsx)(mn,{className:`size-3.5 shrink-0 text-fg-gold`}),(0,U.jsx)(`span`,{className:`truncate font-mono text-xs text-fg`,children:e})]},e))]}),g.content.length>0&&(0,U.jsxs)(`section`,{children:[(0,U.jsx)(`div`,{className:`px-3 pb-0.5 pt-2 text-2xs font-medium uppercase tracking-wide text-fg-gold`,children:`Contents`}),g.content.map(e=>(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`div`,{className:`truncate px-3 py-1 font-mono text-2xs text-fg-secondary`,title:e.path,children:e.path}),e.matches.map((n,r)=>(0,U.jsxs)(`button`,{type:`button`,onClick:()=>t(e.path,n.line),className:`flex w-full items-baseline gap-2 py-0.5 pl-6 pr-3 text-left transition-colors hover:bg-elevated`,children:[(0,U.jsx)(`span`,{className:`shrink-0 font-mono text-2xs tabular-nums text-fg-muted`,children:n.line}),(0,U.jsx)(`span`,{className:`truncate font-mono text-2xs text-fg-secondary`,children:ko(jo(n.text),h).map((e,t)=>e.hit?(0,U.jsx)(`span`,{className:`text-accent`,children:e.text},t):(0,U.jsx)(`span`,{children:e.text},t))})]},`${n.line}:${r}`))]},e.path))]}),g.truncated&&(0,U.jsx)(`div`,{className:`px-3 py-2 text-2xs text-fg-muted`,children:`Showing the first results — refine the query for more.`})]}):(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,children:`No results.`})})]})}function Fo({text:e,hoverClass:t,className:n,title:r}){let i=(0,W.useRef)(null),[a,o]=(0,W.useState)(0);return(0,W.useEffect)(()=>{let e=i.current;if(!e)return;let t=()=>o(Math.max(0,e.scrollWidth-e.clientWidth));t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[e]),(0,U.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:(0,U.jsx)(`span`,{ref:i,title:r,className:z(`block whitespace-nowrap transition-transform duration-[900ms] ease-linear`,n,a>0&&t),style:a>0?{"--tail":`-${a}px`}:void 0,children:e})})}var Io=new Set([`starting`,`running`,`waiting_input`]),Lo=`group-hover:[transform:translateX(var(--tail))]`;function Ro(e){return e.split(`/`).filter(Boolean).pop()??e}function zo({children:e,className:t,title:n}){return(0,U.jsx)(`span`,{title:n,className:z(`shrink-0 text-2xs`,t),children:e})}function Bo({label:e,blockReason:t,onClick:n}){return(0,U.jsxs)(Tt,{children:[(0,U.jsx)(Ft,{asChild:!0,children:(0,U.jsxs)(`button`,{type:`button`,disabled:t!==null,onClick:n,className:z(`-my-1 rounded-sm p-1 text-fg-gold transition-colors hover:text-danger`,t===null?`hidden group-hover:inline-flex`:`hidden`),children:[(0,U.jsx)(Ot,{className:`size-3.5`}),(0,U.jsx)(`span`,{className:`sr-only`,children:e})]})}),(0,U.jsx)(bt,{children:t?`Can't ${e.toLowerCase()} — ${t}`:e})]})}function Vo({repoId:e,projectId:t,sessions:n}){let r=le(e),i=I(e,t),a=F(e,t),[o,s]=(0,W.useState)(null),[c,l]=(0,W.useState)(null),u=i.isPending||a.isPending,d=(0,W.useMemo)(()=>{let e=new Map;for(let t of n)Io.has(t.status)&&e.set(t.worktree_path,(e.get(t.worktree_path)??0)+1);return e},[n]),f=(0,W.useMemo)(()=>{let e=new Map;for(let t of r.data?.worktrees??[]){let n=t.branch??`(detached)`;(e.get(n)??e.set(n,[]).get(n)).push(t)}return[...e.entries()].sort(([,e],[,t])=>!e.some(e=>e.is_primary)-+!t.some(e=>e.is_primary)||(e[0]?.branch??``).localeCompare(t[0]?.branch??``))},[r.data]),p=(0,W.useMemo)(()=>[...r.data?.orphan_branches??[]].sort((e,t)=>e.name.localeCompare(t.name)),[r.data]);return r.isPending?(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,children:`Loading worktrees…`}):r.error?(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,children:r.error instanceof Error?r.error.message:`Failed to load worktrees`}):(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto pb-2`,children:[f.length===0&&p.length===0&&(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,children:`No worktrees.`}),f.map(([e,t])=>(0,U.jsxs)(`div`,{children:[(0,U.jsxs)(`div`,{className:`group flex items-center gap-1.5 px-3 pb-0.5 pt-2 text-2xs text-fg-muted`,children:[(0,U.jsx)(yn,{className:`size-3 shrink-0 text-fg-gold`}),(0,U.jsx)(Fo,{text:e,className:`font-mono`,hoverClass:Lo})]}),t.map(e=>{let t=d.get(e.path)??0,n=e.is_primary?`the repository clone`:e.dirty?`uncommitted changes`:t>0?`${t} running session${t>1?`s`:``}`:null;return(0,U.jsxs)(`div`,{className:`group flex items-center gap-2 px-3 py-1 pl-6 transition-colors hover:bg-elevated`,children:[(0,U.jsx)(Fo,{text:Ro(e.path),title:e.path,className:`font-mono text-xs text-fg`,hoverClass:Lo}),e.is_primary&&(0,U.jsx)(zo,{className:`text-fg-muted`,children:`clone`}),e.dirty&&(0,U.jsx)(zo,{className:`text-waiting`,title:`Modified — uncommitted changes`,children:`M`}),t>0&&(0,U.jsx)(zo,{className:`text-running`,title:`${t} running session${t>1?`s`:``}`,children:t}),(0,U.jsx)(Bo,{label:`Prune`,blockReason:n,onClick:()=>{l(null),s({kind:`worktree`,path:e.path,branch:e.branch})}})]},e.path)})]},`wt:${e}`)),p.length>0&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:`px-3 pb-0.5 pt-3 text-2xs font-medium uppercase tracking-wide text-fg-gold`,children:`Branches without a worktree`}),p.map(e=>(0,U.jsxs)(`div`,{className:`group flex items-center gap-2 px-3 py-1 transition-colors hover:bg-elevated`,children:[(0,U.jsx)(yn,{className:`size-3 shrink-0 text-fg-gold`}),(0,U.jsx)(Fo,{text:e.name,className:`font-mono text-xs text-fg`,hoverClass:Lo}),e.local_only&&(0,U.jsx)(zo,{className:`text-waiting`,children:`local only`}),(0,U.jsx)(Bo,{label:`Delete branch`,blockReason:null,onClick:()=>{l(null),s({kind:`branch`,name:e.name,localOnly:e.local_only})}})]},`br:${e.name}`))]}),(0,U.jsx)(P,{open:o!==null,onOpenChange:e=>{e||s(null)},children:(0,U.jsxs)(N,{children:[o?.kind===`branch`?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(te,{children:[(0,U.jsx)(ie,{children:`Delete branch`}),(0,U.jsxs)(ae,{children:[`Delete branch `,(0,U.jsx)(`span`,{className:`font-mono`,children:o.name}),`? This removes the branch from the repository.`]})]}),o.localOnly&&(0,U.jsxs)(`p`,{className:`text-xs text-waiting`,children:[(0,U.jsx)(`span`,{className:`font-mono`,children:o.name}),` has commits on no remote — deleting it discards that work permanently.`]})]}):(0,U.jsxs)(te,{children:[(0,U.jsx)(ie,{children:`Prune worktree`}),(0,U.jsxs)(ae,{children:[`Remove `,(0,U.jsx)(`span`,{className:`font-mono`,children:o?Ro(o.path):``}),`? The working directory is deleted; the branch`,` `,(0,U.jsx)(`span`,{className:`font-mono`,children:o?.branch??``}),` is kept.`]})]}),c&&(0,U.jsx)(`p`,{className:`text-xs text-danger`,children:c}),(0,U.jsxs)(re,{children:[(0,U.jsx)(j,{type:`button`,variant:`ghost`,onClick:()=>s(null),children:`Cancel`}),(0,U.jsx)(j,{type:`button`,variant:`danger`,disabled:u,onClick:()=>{if(!o)return;l(null);let e=e=>l(e.message),t=()=>s(null);o.kind===`worktree`?i.mutate(o.path,{onSuccess:t,onError:e}):a.mutate({name:o.name,confirm:!0},{onSuccess:t,onError:e})},children:o?.kind===`branch`?`Delete`:`Prune`})]})]})})]})}var Ho=`DropdownMenu`,[Uo,Wo]=O(Ho,[He]),Y=He(),[Go,Ko]=Uo(Ho),qo=e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:s=!0}=e,c=Y(t),l=W.useRef(null),[u,d]=k({prop:i,defaultProp:a??!1,onChange:o,caller:Ho});return(0,U.jsx)(Go,{scope:t,triggerId:A(),triggerRef:l,contentId:A(),open:u,onOpenChange:d,onOpenToggle:W.useCallback(()=>d(e=>!e),[d]),modal:s,children:(0,U.jsx)(Ge,{...c,open:u,onOpenChange:d,dir:r,modal:s,children:n})})};qo.displayName=Ho;var Jo=`DropdownMenuTrigger`,Yo=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,a=Ko(Jo,n),o=Y(n),s=ee(t,a.triggerRef);return(0,U.jsx)($e,{asChild:!0,...o,children:(0,U.jsx)(oe.button,{type:`button`,id:a.triggerId,"aria-haspopup":`menu`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...i,ref:s,onPointerDown:M(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:M(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&a.onOpenToggle(),e.key===`ArrowDown`&&a.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})});Yo.displayName=Jo;var Xo=`DropdownMenuPortal`,Zo=e=>{let{__scopeDropdownMenu:t,...n}=e,r=Y(t);return(0,U.jsx)(Ue,{...r,...n})};Zo.displayName=Xo;var Qo=`DropdownMenuContent`,$o=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Ko(Qo,n),a=Y(n),o=W.useRef(!1);return(0,U.jsx)(Je,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:M(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:M(e.onInteractOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;(!i.modal||r)&&(o.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});$o.displayName=Qo;var es=`DropdownMenuGroup`,ts=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Y(n);return(0,U.jsx)(rt,{...i,...r,ref:t})});ts.displayName=es;var ns=`DropdownMenuLabel`,rs=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Y(n);return(0,U.jsx)(Ye,{...i,...r,ref:t})});rs.displayName=ns;var is=`DropdownMenuItem`,as=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Y(n);return(0,U.jsx)(et,{...i,...r,ref:t})});as.displayName=is;var os=`DropdownMenuCheckboxItem`,ss=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Y(n);return(0,U.jsx)(qe,{...i,...r,ref:t})});ss.displayName=os;var cs=`DropdownMenuRadioGroup`,ls=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Y(n);return(0,U.jsx)(st,{...i,...r,ref:t})});ls.displayName=cs;var us=`DropdownMenuRadioItem`,ds=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Y(n);return(0,U.jsx)(ut,{...i,...r,ref:t})});ds.displayName=us;var fs=`DropdownMenuItemIndicator`,ps=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Y(n);return(0,U.jsx)(Xe,{...i,...r,ref:t})});ps.displayName=fs;var ms=`DropdownMenuSeparator`,hs=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Y(n);return(0,U.jsx)(lt,{...i,...r,ref:t})});hs.displayName=ms;var gs=`DropdownMenuArrow`,_s=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Y(n);return(0,U.jsx)(ot,{...i,...r,ref:t})});_s.displayName=gs;var vs=e=>{let{__scopeDropdownMenu:t,children:n,open:r,onOpenChange:i,defaultOpen:a}=e,o=Y(t),[s,c]=k({prop:r,defaultProp:a??!1,onChange:i,caller:`DropdownMenuSub`});return(0,U.jsx)(Ve,{...o,open:s,onOpenChange:c,children:n})},ys=`DropdownMenuSubTrigger`,bs=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Y(n);return(0,U.jsx)(ct,{...i,...r,ref:t})});bs.displayName=ys;var xs=`DropdownMenuSubContent`,Ss=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=Y(n);return(0,U.jsx)(Le,{...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)`}})});Ss.displayName=xs;var Cs=qo,ws=Yo,Ts=Zo,Es=$o,Ds=as,Os=hs,ks=vs,As=bs,js=Ss,Ms=Cs,Ns=ws,Ps=ks;function Fs({className:e,sideOffset:t=4,...n}){return(0,U.jsx)(Ts,{children:(0,U.jsx)(Es,{sideOffset:t,className:z(`z-50 min-w-36 overflow-hidden rounded-md bg-elevated p-1 shadow-xl`,e),...n})})}function Is({className:e,...t}){return(0,U.jsx)(Ds,{className:z(_e,je,`[&_svg]:size-3.5`,e),...t})}function Ls({className:e,children:t,...n}){return(0,U.jsxs)(As,{className:z(_e,je,`data-[state=open]:bg-action data-[state=open]:text-action-ink [&_svg]:size-3.5`,e),...n,children:[t,(0,U.jsx)(vt,{className:`ml-auto`})]})}function Rs({className:e,...t}){return(0,U.jsx)(Ts,{children:(0,U.jsx)(js,{className:z(`z-50 min-w-36 overflow-hidden rounded-md bg-elevated p-1 shadow-xl`,e),...t})})}function zs({className:e,...t}){return(0,U.jsx)(Os,{className:z(`-mx-1 my-1 h-px bg-border`,e),...t})}function Bs(e,t){if(!t)return e;let n=t.endsWith(`/`)?t.slice(0,-1):t;return n===``||n===`/`?e:e===n?`~`:e.startsWith(`${n}/`)?`~${e.slice(n.length)}`:e}function Vs({text:e,className:t}){let n=(0,W.useRef)(null);return(0,W.useEffect)(()=>{let e=n.current;if(!e)return;let t=()=>{e.scrollLeft=e.scrollWidth};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[e]),(0,U.jsx)(`div`,{ref:n,className:`no-scrollbar min-w-0 flex-1 overflow-x-auto`,children:(0,U.jsx)(`span`,{className:z(`inline-block whitespace-nowrap`,t),children:e})})}function Hs({sessions:e,target:t,showFileActions:n=!1,showPath:r=!1}){let{session:i,pinned:a,pin:o,unpin:s}=t,c=xe().data?.home,l=e.filter(e=>e.status!==`archived`),u=i?i.branch||Wt(i):`No worktree`,d=i?Bs(i.worktree_path,c):`No worktree`;return(0,U.jsxs)(`div`,{className:`group relative flex h-8 shrink-0 items-center px-2`,children:[(0,U.jsx)(Vs,{text:r?d:u,className:`font-mono text-xs text-fg-secondary`}),(0,U.jsxs)(`div`,{className:z(`absolute inset-y-0 right-1 flex items-center gap-1 bg-surface pl-2 opacity-0 transition-opacity`,`pointer-events-none focus-within:pointer-events-auto focus-within:opacity-100 group-hover:pointer-events-auto group-hover:opacity-100`,a&&`pointer-events-auto opacity-100`),children:[n&&i&&(0,U.jsx)(Ws,{}),(0,U.jsxs)(`button`,{type:`button`,"aria-pressed":a,disabled:!i,title:a?`Unpin — follow the active session`:`Pin the sidebar to this worktree`,onClick:()=>a?s():i&&o(i.id),className:z(`shrink-0 rounded-sm p-1 transition-colors disabled:pointer-events-none disabled:opacity-40`,a?`text-fg`:`text-fg-gold hover:bg-elevated hover:text-fg`),children:[(0,U.jsx)(En,{className:z(`size-3.5`,a&&`fill-current`)}),(0,U.jsx)(`span`,{className:`sr-only`,children:a?`Unpin sidebar`:`Pin sidebar`})]}),(0,U.jsxs)(Ms,{children:[(0,U.jsx)(Ns,{asChild:!0,children:(0,U.jsxs)(`button`,{type:`button`,title:`Bind a different worktree`,className:`shrink-0 rounded-sm p-1 text-fg-gold transition-colors hover:bg-elevated hover:text-fg`,children:[(0,U.jsx)(gt,{className:`size-3.5`}),(0,U.jsx)(`span`,{className:`sr-only`,children:`Choose a worktree`})]})}),(0,U.jsx)(Fs,{align:`end`,children:l.length===0?(0,U.jsx)(`div`,{className:`px-2 py-1.5 text-xs text-fg-muted`,children:`No sessions yet`}):l.map(e=>(0,U.jsx)(Is,{onSelect:()=>o(e.id),children:(0,U.jsxs)(`span`,{className:`truncate font-mono`,children:[e.branch,` — `,Wt(e)]})},e.id))})]})]})]})}var Us=[{key:`new-file`,label:`New File`,icon:ln},{key:`new-folder`,label:`New Folder`,icon:gn},{key:`refresh`,label:`Refresh`,icon:Ct},{key:`collapse`,label:`Collapse Folders`,icon:Yt}];function Ws(){let e=oo();if(!e)return null;let t=t=>{t===`new-file`?e.beginCreate(``,`file`):t===`new-folder`?e.beginCreate(``,`dir`):t===`refresh`?e.refresh():t===`collapse`&&e.collapseAll()};return(0,U.jsx)(`div`,{className:`hidden shrink-0 items-center gap-0.5 group-hover:flex group-focus-within:flex`,children:Us.map(({key:e,label:n,icon:r})=>(0,U.jsxs)(Tt,{children:[(0,U.jsx)(Ft,{asChild:!0,children:(0,U.jsxs)(`button`,{type:`button`,onClick:()=>t(e),className:`rounded-sm p-1 text-fg-gold transition-colors hover:bg-elevated hover:text-fg`,children:[(0,U.jsx)(r,{className:`size-3.5`}),(0,U.jsx)(`span`,{className:`sr-only`,children:n})]})}),(0,U.jsx)(bt,{children:n})]},e))})}var Gs=[{key:`files`,label:`Files`,icon:_n},{key:`search`,label:`Search`,icon:xt},{key:`changes`,label:`Changes`,icon:yn},{key:`worktrees`,label:`Worktrees`,icon:yt}];function Ks(e){return e===`diff`||e===`history`||e===`changes`?`changes`:e===`search`?`search`:e===`worktrees`?`worktrees`:`files`}function qs({mode:e,onExpand:t,onSelect:n}){return(0,U.jsxs)(`div`,{className:`flex h-full w-9 shrink-0 flex-col items-center gap-1 bg-surface py-1.5`,children:[(0,U.jsxs)(Tt,{children:[(0,U.jsx)(Ft,{asChild:!0,children:(0,U.jsxs)(`button`,{type:`button`,onClick:t,className:`flex items-center rounded-md p-1.5 text-fg-gold transition-colors hover:bg-elevated hover:text-fg`,children:[(0,U.jsx)(Cn,{className:`size-4`}),(0,U.jsx)(`span`,{className:`sr-only`,children:`Show sidebar`})]})}),(0,U.jsx)(bt,{side:`right`,children:`Show sidebar`})]}),Gs.map(({key:t,label:r,icon:i})=>(0,U.jsxs)(Tt,{children:[(0,U.jsx)(Ft,{asChild:!0,children:(0,U.jsxs)(`button`,{type:`button`,"aria-current":e===t?`page`:void 0,onClick:()=>n(t),className:z(`flex items-center rounded-md p-1.5 transition-colors`,e===t?`bg-elevated text-fg`:`text-fg-gold hover:bg-elevated hover:text-fg`),children:[(0,U.jsx)(i,{className:`size-4`}),(0,U.jsx)(`span`,{className:`sr-only`,children:r})]})}),(0,U.jsx)(bt,{side:`right`,children:r})]},t))]})}function Js({mode:e,onModeChange:t,onCollapse:n,projectId:r,repoId:i,sessions:a,target:o,onOpenFile:s,activeFilePath:c,activeDiffPath:l,onOpenDiff:u,onOpenCommitFile:d,onOpenSearchFile:f}){let{session:p}=o;return(0,U.jsxs)(`div`,{className:`flex h-full flex-col bg-surface`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1.5`,children:[Gs.map(({key:n,label:r,icon:i})=>(0,U.jsxs)(Tt,{children:[(0,U.jsx)(Ft,{asChild:!0,children:(0,U.jsxs)(`button`,{type:`button`,"aria-current":e===n?`page`:void 0,onClick:()=>t(n),className:z(`flex items-center rounded-md p-1.5 transition-colors`,e===n?`bg-elevated text-fg`:`text-fg-gold hover:bg-elevated hover:text-fg`),children:[(0,U.jsx)(i,{className:`size-4`}),(0,U.jsx)(`span`,{className:`sr-only`,children:r})]})}),(0,U.jsx)(bt,{children:r})]},n)),(0,U.jsxs)(Tt,{children:[(0,U.jsx)(Ft,{asChild:!0,children:(0,U.jsxs)(`button`,{type:`button`,onClick:n,className:`ml-auto flex items-center rounded-md p-1.5 text-fg-gold transition-colors hover:bg-elevated hover:text-fg`,children:[(0,U.jsx)(Sn,{className:`size-4`}),(0,U.jsx)(`span`,{className:`sr-only`,children:`Hide sidebar`})]})}),(0,U.jsx)(bt,{children:`Hide sidebar`})]})]}),e!==`worktrees`&&e!==`files`&&(0,U.jsx)(Hs,{sessions:a,target:o,showPath:e===`search`}),e===`worktrees`&&(0,U.jsx)(Vo,{repoId:i,projectId:r,sessions:a}),e===`files`&&(p?(0,U.jsxs)(so,{session:p,onOpenFile:s,activePath:c,children:[(0,U.jsx)(Hs,{sessions:a,target:o,showFileActions:!0,showPath:!0}),(0,U.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:(0,U.jsx)(wo,{})})]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Hs,{sessions:a,target:o}),(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,children:`No worktree to show.`})]})),e===`changes`&&(p?(0,U.jsx)(Ba,{session:p.id,activeDiffPath:l,onOpenDiff:u,onOpenCommitFile:d},p.id):(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,children:`No worktree to show.`})),e===`search`&&(p?(0,U.jsx)(Po,{session:p.id,onOpen:f},p.id):(0,U.jsx)(`div`,{className:`px-3 py-2 text-xs text-fg-muted`,children:`No worktree to search.`}))]})}function Ys({projectId:e,repoId:t,open:n,kind:r=`agent`,seedAccountId:i,onOpenChange:a,onCreated:o}){let s=r===`terminal`,c=Ee(),l=ve(c??void 0),u=pe(c??void 0),d=he(),f=xe(),p=ce(),[m,h]=(0,W.useState)(``),[g,_]=(0,W.useState)(``),[v,y]=(0,W.useState)(!0),[b,x]=(0,W.useState)(!0),[S,C]=(0,W.useState)(``),[w,T]=(0,W.useState)(``),[E,D]=(0,W.useState)(!1),[ee,O]=(0,W.useState)(null),k=d.data?.find(e=>e.id===t),A=De(n?t:void 0),ne=le(n?t:void 0),M=l.data?.find(e=>String(e.id)===m),oe=u.data?.allowSkipPermissions===!0,se=!s&&oe&&M?.skip_permissions_default===!0,F=g.trim()||k?.default_base_branch||``,I=(0,W.useMemo)(()=>(ne.data?.worktrees??[]).filter(e=>e.branch===F).map(e=>({path:e.path,is_primary:e.is_primary,label:e.is_primary?`${e.path.split(`/`).filter(Boolean).pop()??e.path} (clone)`:e.path.split(`/`).filter(Boolean).pop()??e.path})),[ne.data,F]),ue=!v&&!b,de=I.find(e=>e.is_primary)?.path??I[0]?.path??``,L=w||de,fe=(0,W.useMemo)(()=>{let e=u.data?.default_account_id;return l.data?.find(e=>e.id===i)??l.data?.find(t=>typeof e==`number`&&t.id===e)??l.data?.[0]},[l.data,u.data,i]),me=m||(fe?String(fe.id):``);(0,W.useEffect)(()=>{n&&i!==void 0&&h(String(i))},[n,i]);let R=(0,W.useRef)(u.data);R.current=u.data,(0,W.useEffect)(()=>{if(n){let e=_t(s?`terminal`:`agent`,R.current);_(e.baseBranch),y(e.separateBranch),x(e.separateWorktree),T(``)}},[n,s]);let ge=()=>{O(null),p.mutate({project_id:e,...s?{kind:`terminal`}:{account_id:Number(me)},...g.trim()?{base_branch:g.trim()}:{},separate_branch:v,...v&&S.trim()?{branch:S.trim()}:{},...v?{}:{separate_worktree:b},...ue&&L?{join_worktree:L}:{},...se&&E?{skip_permissions:!0}:{}},{onSuccess:e=>{a(!1),C(``),D(!1),o(e)},onError:e=>O(e.message)})},_e=s?`a shell`:`an agent`,ye=v?`on a new branch off ${F||`…`}, in its own directory`:ue?`on ${F||`…`}, sharing an existing directory`:`on ${F||`…`}, in its own directory`;return(0,U.jsx)(P,{open:n,onOpenChange:a,children:(0,U.jsxs)(N,{children:[(0,U.jsxs)(te,{children:[(0,U.jsx)(ie,{children:s?`New terminal`:`New agent`}),(0,U.jsxs)(ae,{children:[s?`Opens`:`Spawns`,` `,_e,` `,ye,`.`]})]}),(0,U.jsxs)(`form`,{className:`flex flex-col gap-3`,onSubmit:e=>{e.preventDefault(),(s||me)&&ge()},children:[!s&&(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(Te,{children:`Account`}),l.data?.length===0?(0,U.jsxs)(`p`,{className:`text-sm text-fg-secondary`,children:[`No accounts yet —`,` `,(0,U.jsx)(`button`,{type:`button`,className:`text-accent underline`,onClick:()=>St(`accounts`),children:`add one in settings`}),`.`]}):(0,U.jsxs)(pt,{value:me,onValueChange:h,children:[(0,U.jsx)(dt,{children:(0,U.jsx)(mt,{placeholder:`pick an account`})}),(0,U.jsx)(ht,{children:l.data?.map(e=>(0,U.jsxs)(ft,{value:String(e.id),children:[(0,U.jsxs)(`span`,{className:`font-mono`,children:[e.agent_type,`/`,e.label]}),!e.logged_in&&(0,U.jsx)(`span`,{className:`ml-2 text-2xs text-waiting`,children:`not logged in`})]},e.id))})]})]}),(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,U.jsx)(Te,{htmlFor:`base-branch`,children:`Base branch`}),(0,U.jsx)(Oe,{id:`base-branch`,placeholder:k?.default_base_branch??`main`,value:g,onValueChange:_,hints:(A.data?.branches??[]).filter(e=>e.name.toLowerCase().includes(g.trim().toLowerCase())).slice(0,20).map(e=>({value:e.name,badge:e.name===k?.default_base_branch?`default`:e.is_session?`session: ${e.session_title??`untitled`}`:void 0})),className:`font-mono`,hintsClassName:`w-max min-w-full max-w-[36rem]`})]}),v&&(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,U.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,U.jsx)(Te,{htmlFor:`session-branch`,children:`New branch`}),(0,U.jsx)(`span`,{className:`text-xs text-fg-muted`,children:`optional`})]}),(0,U.jsx)(ke,{id:`session-branch`,placeholder:`leave blank for auto`,value:S,onChange:e=>C(e.target.value),className:`font-mono`})]})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(Nt,{id:`separate-branch`,checked:v,onCheckedChange:e=>{y(e),e&&x(!0)}}),(0,U.jsx)(Te,{htmlFor:`separate-branch`,children:`Use separate branch`})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(Nt,{id:`separate-worktree`,checked:v?!0:b,disabled:v,onCheckedChange:x}),(0,U.jsx)(Te,{htmlFor:`separate-worktree`,className:z(v&&`text-fg-muted`),children:`Use separate directory`})]})]}),ue&&(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(Te,{htmlFor:`join-dir`,children:`Directory to join`}),I.length===0?(0,U.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[`No existing directory on `,(0,U.jsx)(`span`,{className:`font-mono`,children:F||`…`}),` — a shared one will be created for later sessions to join.`]}):(0,U.jsxs)(pt,{value:L,onValueChange:T,children:[(0,U.jsx)(dt,{id:`join-dir`,children:(0,U.jsx)(mt,{})}),(0,U.jsx)(ht,{children:I.map(e=>(0,U.jsx)(ft,{value:e.path,title:e.path,detail:(0,U.jsx)(`span`,{className:`ml-auto min-w-0 truncate font-mono text-2xs text-fg-muted`,children:Bs(e.path,f.data?.home)}),children:e.label},e.path))})]})]}),!v&&!s&&(0,U.jsxs)(`p`,{className:`text-xs text-waiting`,children:[`The `,s?`shell`:`agent`,` commits straight to`,` `,(0,U.jsx)(`span`,{className:`font-mono`,children:F||`…`}),ue?` and shares its working directory with concurrent sessions — they can trample each other’s edits.`:`.`]}),se&&(0,U.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md bg-surface px-3 py-2`,children:[(0,U.jsx)(Nt,{id:`skip-permissions`,checked:E,onCheckedChange:D}),(0,U.jsx)(Te,{htmlFor:`skip-permissions`,className:`text-waiting`,children:`Skip permission prompts for this session`})]}),ee&&(0,U.jsx)(`p`,{className:`text-xs text-danger`,children:ee}),(0,U.jsxs)(re,{children:[(0,U.jsx)(j,{type:`button`,variant:`ghost`,onClick:()=>a(!1),children:`Cancel`}),(0,U.jsx)(j,{type:`submit`,disabled:!s&&!me||p.isPending,children:s?`Open terminal`:`Start agent`})]})]})]})})}function Xs({status:e,kind:t=`agent`,stale:n=!1,className:r}){let i=`${t===`terminal`?`terminal `:``}status: ${e.replace(`_`,` `)}${n?` (no agent activity for over an hour — possibly stalled)`:``}`;return(0,U.jsx)(`span`,{className:z(`status-dot`,r),"data-status":e,"data-kind":t,"data-stale":n||void 0,role:`img`,title:n?`No agent activity for over an hour — possibly stalled`:void 0,"aria-label":i})}var Zs=[`starting`,`running`,`waiting_input`],Qs=[`exited`,`interrupted`],$s={Item:Is,Separator:zs,Sub:Ps,SubTrigger:Ls,SubContent:Rs},ec={Item:V,Separator:Ze,Sub:We,SubTrigger:it,SubContent:nt};function tc(e,t){let n=R(`resume`),r=R(`kill`),i=be(),a=Ne(),o=ue(),s=de(),c=ye(),l=ce(),u=zt(),d=Ee(),f=ve(d??void 0),p=pe(d??void 0),[m,h]=(0,W.useState)(null),[g,_]=(0,W.useState)(!1),[v,y]=(0,W.useState)(e.title??``),[b,x]=(0,W.useState)(null),S=(f.data??[]).filter(t=>t.agent_type===e.agent_type),C=!e.worktree_missing&&e.status!==`archived`&&S.some(t=>t.id!==e.account_id),w=p.data?.default_account_id,T=typeof w==`number`?w:null,E=(f.data??[]).filter(e=>e.logged_in),ee=T===null?E:[...E.filter(e=>e.id===T),...E.filter(e=>e.id!==T)];return{menu:{session:e,resumable:Qs.includes(e.status),live:Zs.includes(e.status),archived:e.status===`archived`,canMigrate:C,sameAgent:S,resume:()=>n.mutate(e.id,{onError:e=>D.error(e.message)}),kill:()=>r.mutate(e.id,{onError:e=>D.error(e.message)}),openClearEnv:()=>h(`clear-env`),openTerminal:()=>l.mutate({project_id:e.project_id,kind:`terminal`,separate_branch:!1,separate_worktree:!1,join_worktree:e.worktree_path},{onSuccess:e=>void u(`/project/${e.project_id}/session/${e.id}`),onError:e=>D.error(e.message)}),spawnAccounts:ee,defaultAccountId:T,spawnAgent:t=>l.mutate({project_id:e.project_id,account_id:t,separate_branch:!1,separate_worktree:!1,join_worktree:e.worktree_path},{onSuccess:e=>void u(`/project/${e.project_id}/session/${e.id}`),onError:e=>D.error(e.message)}),openRename:()=>{y(e.title??``),_(!0)},archive:()=>i.mutate(e.id,{onSuccess:()=>t?.(e.id),onError:e=>D.error(e.message)}),unarchive:()=>a.mutate(e.id,{onError:e=>D.error(e.message)}),setMigrateTo:x},dialogs:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(P,{open:m===`clear-env`,onOpenChange:e=>{e||h(null)},children:(0,U.jsxs)(N,{children:[(0,U.jsxs)(te,{children:[(0,U.jsx)(ie,{children:`Clear captured environment?`}),(0,U.jsx)(ae,{children:`Variables exported in this session’s terminals will no longer be injected into new shells or agent restarts.`})]}),(0,U.jsxs)(re,{children:[(0,U.jsx)(j,{variant:`ghost`,onClick:()=>h(null),children:`Cancel`}),(0,U.jsx)(j,{variant:`danger`,disabled:c.isPending,onClick:()=>c.mutate(e.id,{onSuccess:e=>{h(null),D.success(e.cleared===0?`Nothing was captured`:`Cleared ${e.cleared} captured var${e.cleared===1?``:`s`}`)},onError:e=>{h(null),D.error(e.message)}}),children:`Clear captured env`})]})]})}),(0,U.jsx)(P,{open:g,onOpenChange:_,children:(0,U.jsxs)(N,{children:[(0,U.jsxs)(te,{children:[(0,U.jsx)(ie,{children:`Rename session`}),(0,U.jsx)(ae,{children:`Leave it empty to use the agent’s own session name.`})]}),(0,U.jsxs)(`form`,{className:`flex flex-col gap-3`,onSubmit:t=>{t.preventDefault(),o.mutate({sessionId:e.id,title:v.trim()},{onSuccess:()=>_(!1),onError:e=>D.error(e.message)})},children:[(0,U.jsx)(ke,{value:v,onChange:e=>y(e.target.value),placeholder:e.agent_title??e.osc_title??e.id.slice(0,8),autoFocus:!0}),(0,U.jsxs)(re,{children:[(0,U.jsx)(j,{type:`button`,variant:`ghost`,onClick:()=>_(!1),children:`Cancel`}),(0,U.jsx)(j,{type:`submit`,disabled:o.isPending,children:`Rename`})]})]})]})}),(0,U.jsx)(P,{open:b!==null,onOpenChange:e=>!e&&x(null),children:(0,U.jsxs)(N,{children:[(0,U.jsxs)(te,{children:[(0,U.jsxs)(ie,{children:[`Move this session to `,b?.label,`?`]}),(0,U.jsx)(ae,{children:`The conversation continues under that account’s credentials. If the session is running it is stopped first, then resumed on the new account.`})]}),(0,U.jsxs)(re,{children:[(0,U.jsx)(j,{variant:`ghost`,onClick:()=>x(null),children:`Cancel`}),(0,U.jsx)(j,{disabled:s.isPending,onClick:()=>{b&&s.mutate({sessionId:e.id,accountId:b.id},{onSuccess:()=>{x(null),D.success(`Moved to ${b.label}`)},onError:e=>{x(null),D.error(e.message)}})},children:`Move session`})]})]})})]})}}function nc({kit:e,menu:t}){let{Item:n,Separator:r,Sub:i,SubTrigger:a,SubContent:o}=e,{session:s}=t;return(0,U.jsxs)(U.Fragment,{children:[t.resumable&&!s.worktree_missing&&(0,U.jsxs)(n,{onSelect:t.resume,children:[(0,U.jsx)(Dn,{}),` Resume`]}),t.live&&(0,U.jsxs)(n,{onSelect:t.kill,children:[(0,U.jsx)(An,{}),` Kill`]}),(0,U.jsxs)(n,{onSelect:t.openRename,children:[(0,U.jsx)(Ae,{}),` Rename`]}),!t.archived&&(0,U.jsxs)(n,{onSelect:t.openClearEnv,children:[(0,U.jsx)(Zt,{}),` Clear captured env`]}),t.canMigrate&&(0,U.jsxs)(i,{children:[(0,U.jsxs)(a,{children:[(0,U.jsx)(jn,{}),` Move to account…`]}),(0,U.jsx)(o,{children:t.sameAgent.map(e=>{let r=e.id===s.account_id;return(0,U.jsxs)(n,{disabled:r,onSelect:()=>t.setMigrateTo(e),children:[e.label,r&&(0,U.jsx)(`span`,{className:`ml-auto text-fg-muted`,children:`current`})]},e.id)})})]}),!s.worktree_missing&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(r,{}),(0,U.jsxs)(n,{onSelect:t.openTerminal,children:[(0,U.jsx)(kt,{}),` Open terminal in worktree`]}),t.spawnAccounts.length>0&&(0,U.jsxs)(i,{children:[(0,U.jsxs)(a,{children:[(0,U.jsx)(jt,{}),` Spawn agent in worktree`]}),(0,U.jsx)(o,{children:t.spawnAccounts.map(e=>(0,U.jsxs)(n,{onSelect:()=>t.spawnAgent(e.id),children:[(0,U.jsx)(Vt,{type:e.agent_type,className:`size-4 shrink-0`}),e.agent_type,`/`,e.label,e.id===t.defaultAccountId&&(0,U.jsx)(`span`,{className:`ml-auto pl-3 text-fg-muted`,children:`default`})]},e.id))})]}),(0,U.jsxs)(n,{onSelect:()=>{window.location.href=Ht(`vscode`,s.worktree_path,Bt())},children:[(0,U.jsx)(Qt,{}),` Open in VS Code`]}),(0,U.jsxs)(n,{onSelect:()=>{window.location.href=Ht(`cursor`,s.worktree_path,Bt())},children:[(0,U.jsx)(Qt,{}),` Open in Cursor`]})]}),!t.archived&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(r,{}),(0,U.jsxs)(n,{onSelect:t.archive,children:[(0,U.jsx)(Ie,{}),` Archive`]})]}),t.archived&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(r,{}),(0,U.jsxs)(n,{onSelect:t.unarchive,children:[(0,U.jsx)(Qe,{}),` Unarchive`]})]})]})}function rc({menu:e}){return(0,U.jsxs)(Ms,{children:[(0,U.jsx)(Ns,{asChild:!0,children:(0,U.jsxs)(j,{variant:`ghost`,size:`icon`,className:`size-6`,onClick:e=>e.preventDefault(),children:[(0,U.jsx)(Xt,{}),(0,U.jsx)(`span`,{className:`sr-only`,children:`Session actions`})]})}),(0,U.jsx)(Fs,{align:`end`,children:(0,U.jsx)(nc,{kit:$s,menu:e})})]})}function ic({session:e,onArchived:t,children:n}){let{menu:r,dialogs:i}=tc(e,t);return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(at,{children:[(0,U.jsx)(Ke,{asChild:!0,children:typeof n==`function`?n(r):n}),(0,U.jsx)(tt,{children:(0,U.jsx)(nc,{kit:ec,menu:r})})]}),i]})}function ac({menu:e}){return(0,U.jsx)(tt,{children:(0,U.jsx)(nc,{kit:ec,menu:e})})}function oc({icon:e,label:t,onClick:n,active:r=!1}){return(0,U.jsxs)(Tt,{children:[(0,U.jsx)(Ft,{asChild:!0,children:(0,U.jsxs)(`button`,{type:`button`,onClick:n,"aria-pressed":r,className:z(`flex items-center rounded-md p-1.5 transition-colors`,r?`bg-elevated text-fg`:`text-fg-gold hover:bg-elevated hover:text-fg`),children:[(0,U.jsx)(e,{className:`size-4`}),(0,U.jsx)(`span`,{className:`sr-only`,children:t})]})}),(0,U.jsx)(bt,{children:t})]})}function sc({session:e}){return(0,U.jsxs)(`span`,{className:`flex flex-col`,children:[(0,U.jsx)(`span`,{children:Dt()(e)}),(0,U.jsx)(`span`,{className:`font-mono text-2xs text-fg-muted`,children:e.branch})]})}function cc({session:e,activeSessionId:t,onPromote:n,onArchived:r}){let{menu:i,dialogs:a}=tc(e,r),o=Dt();return(0,U.jsxs)(at,{children:[(0,U.jsxs)(Tt,{children:[(0,U.jsx)(Ke,{asChild:!0,children:(0,U.jsx)(Ft,{asChild:!0,children:(0,U.jsxs)(Pt,{draggable:!1,"aria-current":e.id===t?`true`:void 0,onDoubleClick:()=>n(e.id),to:`/project/${e.project_id}/session/${e.id}`,className:z(`flex items-center rounded-md p-1.5 transition-colors hover:bg-elevated`,e.id===t&&`bg-elevated`),children:[(0,U.jsx)(Xs,{status:e.status,kind:e.kind,stale:e.stale_running,className:`[--puddle-ripple-scale:2.3]`}),(0,U.jsx)(`span`,{className:`sr-only`,children:o(e)})]})})}),(0,U.jsx)(bt,{children:(0,U.jsx)(sc,{session:e})})]}),(0,U.jsx)(ac,{menu:i}),a]})}function lc({groups:e,activeSessionId:t,onReorder:n,onPromote:r,onExpand:i,onNewTerminal:a,onNewSession:o,onArchived:s}){let[c,l]=(0,W.useState)(null),u=e.filter(e=>e.sessions.length>0),d=(e,t)=>{let r=Re(u,e,t);r&&n(r)};return(0,U.jsxs)(`div`,{className:`flex h-full w-9 shrink-0 flex-col items-center bg-surface py-1.5`,children:[(0,U.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,U.jsx)(oc,{icon:Tn,label:`Show sessions`,onClick:i}),(0,U.jsx)(oc,{icon:jt,label:`New agent`,onClick:o}),(0,U.jsx)(oc,{icon:kt,label:`New terminal`,onClick:a})]}),(0,U.jsx)(`div`,{className:`no-scrollbar flex min-h-0 flex-1 flex-col items-center gap-1 overflow-y-auto`,children:u.map(e=>(0,U.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,U.jsx)(`div`,{className:`my-0.5 h-px w-5 shrink-0 bg-border`}),e.sessions.map(e=>(0,U.jsx)(`div`,{draggable:!0,onDragStart:t=>{t.dataTransfer.setData(co,lo({type:`terminal`,session:e.id})),l(e.id)},onDragEnd:()=>l(null),onDragOver:t=>{t.preventDefault(),c&&c!==e.id&&d(c,e.id)},className:z(`transition-opacity`,c===e.id&&`opacity-50`),children:(0,U.jsx)(cc,{session:e,activeSessionId:t,onPromote:r,onArchived:s})},e.id))]},e.projectId))})]})}function uc({session:e,activeSessionId:t,accountLabel:n,onPromote:r,onArchived:i,ellipsis:a}){let o=Dt();return(0,U.jsx)(ic,{session:e,onArchived:i,children:i=>(0,U.jsxs)(Pt,{draggable:!1,onDoubleClick:r&&(()=>r(e.id)),to:`/project/${e.project_id}/session/${e.id}`,className:z(`group flex items-center gap-2 px-3 py-1.5 transition-colors hover:bg-elevated`,e.id===t&&`bg-elevated`),children:[(0,U.jsx)(Xs,{status:e.status,kind:e.kind,stale:e.stale_running}),(0,U.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`span`,{className:`block truncate font-sans text-xs text-fg`,children:o(e)}),(0,U.jsxs)(`span`,{className:`flex items-center gap-1 truncate font-mono text-2xs text-fg-muted`,children:[(0,U.jsx)(yn,{className:`size-3 shrink-0 text-fg-gold`}),(0,U.jsx)(`span`,{className:`truncate`,children:e.branch})]}),e.account_id!==null&&n.has(e.account_id)&&(0,U.jsxs)(`span`,{className:`flex items-center gap-1 truncate font-mono text-2xs text-fg-muted`,children:[(0,U.jsx)(Vt,{type:e.agent_type??``,className:`size-3 shrink-0`}),(0,U.jsx)(`span`,{className:`truncate`,children:n.get(e.account_id)})]})]}),e.skip_permissions&&(0,U.jsxs)(Tt,{children:[(0,U.jsx)(Ft,{asChild:!0,children:(0,U.jsx)(kn,{className:`size-3.5 shrink-0 text-waiting`})}),(0,U.jsx)(bt,{children:`Running with permission prompts skipped`})]}),e.worktree_missing&&(0,U.jsxs)(Tt,{children:[(0,U.jsx)(Ft,{asChild:!0,children:(0,U.jsx)(vn,{className:`size-3.5 shrink-0 text-interrupted`})}),(0,U.jsx)(bt,{children:`Worktree directory is gone — archive only`})]}),a&&(0,U.jsx)(`span`,{className:`hidden group-hover:inline-flex has-[[data-state=open]]:inline-flex`,children:(0,U.jsx)(rc,{menu:i})})]})})}function dc({groups:e,accounts:t,activeSessionId:n,onReorder:r,onPromote:i,archived:a,onNewSession:o,onNewTerminal:s,onCollapse:c,onArchived:l}){return(0,U.jsxs)(`div`,{className:`flex h-full flex-col bg-surface`,children:[(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 px-2 py-1.5`,children:[(0,U.jsx)(oc,{icon:wn,label:`Hide sessions`,onClick:c}),(0,U.jsxs)(`div`,{className:`ml-auto flex items-center gap-1`,children:[(0,U.jsx)(oc,{icon:jt,label:`New agent`,onClick:o}),(0,U.jsx)(oc,{icon:kt,label:`New terminal`,onClick:s})]})]}),(0,U.jsx)(fc,{groups:e,accounts:t,activeSessionId:n,onReorder:r,onPromote:i,archived:a,onArchived:l})]})}function fc({groups:e,accounts:t,activeSessionId:n,onReorder:r,onPromote:i,archived:a,onArchived:o}){let[s,c]=(0,W.useState)(null),[l,u]=(0,W.useState)(!1),d=new Map(t.map(e=>[e.id,e.label])),f=e.filter(e=>e.sessions.length>0),p=f.reduce((e,t)=>e+t.sessions.length,0),m=(e,t)=>{let n=Re(f,e,t);n&&r(n)};return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`div`,{className:`no-scrollbar min-h-0 flex-1 overflow-y-auto py-1.5`,children:[p===0&&a.length===0&&(0,U.jsx)(`p`,{className:`px-3 py-3 text-xs text-fg-muted`,children:`No sessions yet — press ⌘K to start one.`}),f.map(e=>(0,U.jsxs)(`div`,{children:[e.name!==null&&(0,U.jsx)(`div`,{className:`truncate px-3 pb-1 pt-2 text-2xs font-medium uppercase tracking-wide text-fg-gold`,children:e.name}),(0,U.jsx)(`ul`,{className:`flex flex-col gap-0.5`,children:e.sessions.map(e=>(0,U.jsx)(`li`,{draggable:!0,onDragStart:t=>{t.dataTransfer.setData(co,lo({type:`terminal`,session:e.id})),c(e.id)},onDragEnd:()=>c(null),onDragOver:t=>{t.preventDefault(),s&&s!==e.id&&m(s,e.id)},className:z(`transition-opacity`,s===e.id&&`opacity-50`),children:(0,U.jsx)(uc,{session:e,activeSessionId:n,accountLabel:d,onPromote:i,onArchived:o,ellipsis:!0})},e.id))})]},e.projectId))]}),a.length>0&&(0,U.jsxs)(`div`,{className:`shrink-0 pb-1.5`,children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>u(e=>!e),className:`flex w-full items-center gap-1.5 px-3 py-1.5 text-2xs uppercase tracking-wide text-fg-gold transition-colors hover:text-fg`,children:[(0,U.jsx)(vt,{className:z(`size-3 transition-transform`,l&&`rotate-90`)}),(0,U.jsx)(Ie,{className:`size-3`}),(0,U.jsx)(`span`,{children:`Archived`}),(0,U.jsx)(`span`,{className:`ml-auto tabular-nums`,children:a.length})]}),l&&(0,U.jsx)(`ul`,{className:`no-scrollbar flex max-h-48 flex-col gap-0.5 overflow-y-auto`,children:a.map(e=>(0,U.jsx)(`li`,{children:(0,U.jsx)(uc,{session:e,activeSessionId:n,accountLabel:d,onArchived:o,ellipsis:!0})},e.id))})]})]})}var pc=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function mc(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function hc(e){return`nodeType`in e}function X(e){return e?mc(e)?e:hc(e)?e.ownerDocument?.defaultView??window:window:window}function gc(e){let{Document:t}=X(e);return e instanceof t}function _c(e){return!mc(e)&&e instanceof X(e).HTMLElement}function vc(e){return e instanceof X(e).SVGElement}function yc(e){return e?mc(e)?e.document:hc(e)?gc(e)?e:_c(e)||vc(e)?e.ownerDocument:document:document:document}var bc=pc?W.useLayoutEffect:W.useEffect;function xc(e){let t=(0,W.useRef)(e);return bc(()=>{t.current=e}),(0,W.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function Sc(){let e=(0,W.useRef)(null);return[(0,W.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,W.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function Cc(e,t){t===void 0&&(t=[e]);let n=(0,W.useRef)(e);return bc(()=>{n.current!==e&&(n.current=e)},t),n}function wc(e,t){let n=(0,W.useRef)();return(0,W.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function Tc(e){let t=xc(e),n=(0,W.useRef)(null);return[n,(0,W.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function Ec(e){let t=(0,W.useRef)();return(0,W.useEffect)(()=>{t.current=e},[e]),t.current}var Dc={};function Oc(e,t){return(0,W.useMemo)(()=>{if(t)return t;let n=Dc[e]==null?0:Dc[e]+1;return Dc[e]=n,e+`-`+n},[e,t])}function kc(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}var Ac=kc(1),jc=kc(-1);function Mc(e){return`clientX`in e&&`clientY`in e}function Nc(e){if(!e)return!1;let{KeyboardEvent:t}=X(e.target);return t&&e instanceof t}function Pc(e){if(!e)return!1;let{TouchEvent:t}=X(e.target);return t&&e instanceof t}function Fc(e){if(Pc(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return Mc(e)?{x:e.clientX,y:e.clientY}:null}var Ic=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[Ic.Translate.toString(e),Ic.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),Lc=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function Rc(e){return e.matches(Lc)?e:e.querySelector(Lc)}var zc={display:`none`};function Bc(e){let{id:t,value:n}=e;return W.createElement(`div`,{id:t,style:zc},n)}function Vc(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return W.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function Hc(){let[e,t]=(0,W.useState)(``);return{announce:(0,W.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var Uc=(0,W.createContext)(null);function Wc(e){let t=(0,W.useContext)(Uc);(0,W.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function Gc(){let[e]=(0,W.useState)(()=>new Set),t=(0,W.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,W.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var Kc={draggable:`
|
|
3
|
-
To pick up a draggable item, press the space bar.
|
|
4
|
-
While dragging, use the arrow keys to move the item.
|
|
5
|
-
Press space again to drop the item in its new position, or press escape to cancel.
|
|
6
|
-
`},qc={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function Jc(e){let{announcements:t=qc,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=Kc}=e,{announce:a,announcement:o}=Hc(),s=Oc(`DndLiveRegion`),[c,l]=(0,W.useState)(!1);if((0,W.useEffect)(()=>{l(!0)},[]),Wc((0,W.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=W.createElement(W.Fragment,null,W.createElement(Bc,{id:r,value:i.draggable}),W.createElement(Vc,{id:s,announcement:o}));return n?(0,Fi.createPortal)(u,n):u}var Z;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(Z||={});function Yc(){}function Xc(e,t){return(0,W.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function Zc(){var e=[...arguments];return(0,W.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var Qc=Object.freeze({x:0,y:0});function $c(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function el(e,t){let n=Fc(e);if(!n)return`0 0`;let r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+`% `+r.y+`%`}function tl(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function nl(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function rl(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function il(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function al(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var ol=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=al(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(nl)};function sl(e,t){let{top:n,left:r,bottom:i,right:a}=t;return n<=e.y&&e.y<=i&&r<=e.x&&e.x<=a}var cl=e=>{let{droppableContainers:t,droppableRects:n,pointerCoordinates:r}=e;if(!r)return[];let i=[];for(let e of t){let{id:t}=e,a=n.get(t);if(a&&sl(r,a)){let n=rl(a).reduce((e,t)=>e+$c(r,t),0),o=Number((n/4).toFixed(4));i.push({id:t,data:{droppableContainer:e,value:o}})}}return i.sort(tl)};function ll(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function ul(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Qc}function dl(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var fl=dl(1);function pl(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function ml(e,t,n){let r=pl(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var hl={ignoreTransform:!1};function gl(e,t){t===void 0&&(t=hl);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=X(e).getComputedStyle(e);t&&(n=ml(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function _l(e){return gl(e,{ignoreTransform:!0})}function vl(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function yl(e,t){return t===void 0&&(t=X(e).getComputedStyle(e)),t.position===`fixed`}function bl(e,t){t===void 0&&(t=X(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`&&n.test(r)})}function xl(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(gc(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!_c(i)||vc(i)||n.includes(i))return n;let a=X(e).getComputedStyle(i);return i!==e&&bl(i,a)&&n.push(i),yl(i,a)?n:r(i.parentNode)}return e?r(e):n}function Sl(e){let[t]=xl(e,1);return t??null}function Cl(e){return!pc||!e?null:mc(e)?e:hc(e)?gc(e)||e===yc(e).scrollingElement?window:_c(e)?e:null:null}function wl(e){return mc(e)?e.scrollX:e.scrollLeft}function Tl(e){return mc(e)?e.scrollY:e.scrollTop}function El(e){return{x:wl(e),y:Tl(e)}}var Q;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(Q||={});function Dl(e){return!pc||!e?!1:e===document.scrollingElement}function Ol(e){let t={x:0,y:0},n=Dl(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var kl={x:.2,y:.2};function Al(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=kl);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=Ol(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=Q.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=Q.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=Q.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=Q.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function jl(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function Ml(e){return e.reduce((e,t)=>Ac(e,El(t)),Qc)}function Nl(e){return e.reduce((e,t)=>e+wl(t),0)}function Pl(e){return e.reduce((e,t)=>e+Tl(t),0)}function Fl(e,t){if(t===void 0&&(t=gl),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);Sl(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var Il=[[`x`,[`left`,`right`],Nl],[`y`,[`top`,`bottom`],Pl]],Ll=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=xl(t),r=Ml(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of Il)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},Rl=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function zl(e){let{EventTarget:t}=X(e);return e instanceof t?e:yc(e)}function Bl(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t&&r>t.y}var Vl;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(Vl||={});function Hl(e){e.preventDefault()}function Ul(e){e.stopPropagation()}var $;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})($||={});var Wl={start:[$.Space,$.Enter],cancel:[$.Esc],end:[$.Space,$.Enter,$.Tab]},Gl=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case $.Right:return{...n,x:n.x+25};case $.Left:return{...n,x:n.x-25};case $.Down:return{...n,y:n.y+25};case $.Up:return{...n,y:n.y-25}}},Kl=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new Rl(yc(t)),this.windowListeners=new Rl(X(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Vl.Resize,this.handleCancel),this.windowListeners.add(Vl.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Vl.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&Fl(n),t(Qc)}handleKeyDown(e){if(Nc(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=Wl,coordinateGetter:a=Gl,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:Qc;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=jc(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=Ol(n),p=jl(n),m={x:Math.min(i===$.Right?p.right-p.width/2:p.right,Math.max(i===$.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===$.Down?p.bottom-p.height/2:p.bottom,Math.max(i===$.Down?p.top:p.top+p.height/2,u.y))},h=i===$.Right&&!s||i===$.Left&&!c,g=i===$.Down&&!l||i===$.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===$.Right&&e<=d.x||i===$.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}a?r.x=n.scrollLeft-e:r.x=i===$.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}else if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===$.Down&&e<=d.y||i===$.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}a?r.y=n.scrollTop-e:r.y=i===$.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,Ac(jc(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};Kl.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=Wl,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function ql(e){return!!(e&&`distance`in e)}function Jl(e){return!!(e&&`delay`in e)}var Yl=class{constructor(e,t,n){n===void 0&&(n=zl(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=yc(i),this.documentListeners=new Rl(this.document),this.listeners=new Rl(n),this.windowListeners=new Rl(X(i)),this.initialCoordinates=Fc(r)??Qc,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(Vl.Resize,this.handleCancel),this.windowListeners.add(Vl.DragStart,Hl),this.windowListeners.add(Vl.VisibilityChange,this.handleCancel),this.windowListeners.add(Vl.ContextMenu,Hl),this.documentListeners.add(Vl.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(Jl(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(ql(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(Vl.Click,Ul,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Vl.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=Fc(e)??Qc,s=jc(n,o);if(!t&&a){if(ql(a)){if(a.tolerance!=null&&Bl(s,a.tolerance))return this.handleCancel();if(Bl(s,a.distance))return this.handleStart()}if(Jl(a)&&Bl(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===$.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},Xl={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},Zl=class extends Yl{constructor(e){let{event:t}=e,n=yc(t.target);super(e,Xl,n)}};Zl.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var Ql={move:{name:`mousemove`},end:{name:`mouseup`}},$l;(function(e){e[e.RightClick=2]=`RightClick`})($l||={});var eu=class extends Yl{constructor(e){super(e,Ql,yc(e.event.target))}};eu.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===$l.RightClick?!1:(r?.({event:n}),!0)}}];var tu={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},nu=class extends Yl{constructor(e){super(e,tu)}static setup(){return window.addEventListener(tu.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(tu.move.name,e)};function e(){}}};nu.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var ru;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(ru||={});var iu;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(iu||={});function au(e){let{acceleration:t,activator:n=ru.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=iu.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=su({delta:d,disabled:!a}),[m,h]=Sc(),g=(0,W.useRef)({x:0,y:0}),_=(0,W.useRef)({x:0,y:0}),v=(0,W.useMemo)(()=>{switch(n){case ru.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case ru.DraggableRect:return i}},[n,i,c]),y=(0,W.useRef)(null),b=(0,W.useCallback)(()=>{let e=y.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),x=(0,W.useMemo)(()=>s===iu.TreeOrder?[...l].reverse():l,[s,l]);(0,W.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of x){if(r?.(e)===!1)continue;let n=l.indexOf(e),i=u[n];if(!i)continue;let{direction:a,speed:s}=Al(e,i,v,t,f);for(let e of[`x`,`y`])p[e][a[e]]||(s[e]=0,a[e]=0);if(s.x>0||s.y>0){h(),y.current=e,m(b,o),g.current=s,_.current=a;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,b,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,x,u,JSON.stringify(f)])}var ou={x:{[Q.Backward]:!1,[Q.Forward]:!1},y:{[Q.Backward]:!1,[Q.Forward]:!1}};function su(e){let{delta:t,disabled:n}=e,r=Ec(t);return wc(e=>{if(n||!r||!e)return ou;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[Q.Backward]:e.x[Q.Backward]||i.x===-1,[Q.Forward]:e.x[Q.Forward]||i.x===1},y:{[Q.Backward]:e.y[Q.Backward]||i.y===-1,[Q.Forward]:e.y[Q.Forward]||i.y===1}}},[n,t,r])}function cu(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return wc(e=>t==null?null:r??e??null,[r,t])}function lu(e,t){return(0,W.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var uu;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(uu||={});var du;(function(e){e.Optimized=`optimized`})(du||={});var fu=new Map;function pu(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,W.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,W.useRef)(e),d=g(),f=Cc(d),p=(0,W.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,W.useRef)(null),h=wc(t=>{if(d&&!n)return fu;if(!t||t===fu||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new Ll(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,W.useEffect)(()=>{u.current=e},[e]),(0,W.useEffect)(()=>{d||p()},[n,d]),(0,W.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,W.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case uu.Always:return!1;case uu.BeforeDragging:return n;default:return!n}}}function mu(e,t){return wc(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function hu(e,t){return mu(e,t)}function gu(e){let{callback:t,disabled:n}=e,r=xc(t),i=(0,W.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,W.useEffect)(()=>()=>i?.disconnect(),[i]),i}function _u(e){let{callback:t,disabled:n}=e,r=xc(t),i=(0,W.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,W.useEffect)(()=>()=>i?.disconnect(),[i]),i}function vu(e){return new Ll(gl(e),e)}function yu(e,t,n){t===void 0&&(t=vu);let[r,i]=(0,W.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=gu({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=_u({callback:a});return bc(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function bu(e){return ul(e,mu(e))}var xu=[];function Su(e){let t=(0,W.useRef)(e),n=wc(n=>e?n&&n!==xu&&e&&t.current&&e.parentNode===t.current.parentNode?n:xl(e):xu,[e]);return(0,W.useEffect)(()=>{t.current=e},[e]),n}function Cu(e){let[t,n]=(0,W.useState)(null),r=(0,W.useRef)(e),i=(0,W.useCallback)(e=>{let t=Cl(e.target);t&&n(e=>e?(e.set(t,El(t)),new Map(e)):null)},[]);return(0,W.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=Cl(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,El(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{Cl(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,W.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>Ac(e,t),Qc):Ml(e):Qc,[e,t])}function wu(e,t){t===void 0&&(t=[]);let n=(0,W.useRef)(null);return(0,W.useEffect)(()=>{n.current=null},t),(0,W.useEffect)(()=>{let t=e!==Qc;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?jc(e,n.current):Qc}function Tu(e){(0,W.useEffect)(()=>{if(!pc)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function Eu(e,t){return(0,W.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function Du(e){return(0,W.useMemo)(()=>e?vl(e):null,[e])}var Ou=[];function ku(e,t){t===void 0&&(t=gl);let[n]=e,r=Du(n?X(n):null),[i,a]=(0,W.useState)(Ou);function o(){a(()=>e.length?e.map(e=>Dl(e)?r:new Ll(t(e),e)):Ou)}let s=_u({callback:o});return bc(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function Au(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return _c(t)?t:e}function ju(e){let{measure:t}=e,[n,r]=(0,W.useState)(null),i=_u({callback:(0,W.useCallback)(e=>{for(let{target:n}of e)if(_c(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=Tc((0,W.useCallback)(e=>{let n=Au(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,W.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var Mu=[{sensor:Zl,options:{}},{sensor:Kl,options:{}}],Nu={current:{}},Pu={draggable:{measure:_l},droppable:{measure:_l,strategy:uu.WhileDragging,frequency:du.Optimized},dragOverlay:{measure:gl}},Fu=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},Iu={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Fu,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Yc},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Pu,measureDroppableContainers:Yc,windowRect:null,measuringScheduled:!1},Lu={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:Yc,draggableNodes:new Map,over:null,measureDroppableContainers:Yc},Ru=(0,W.createContext)(Lu),zu=(0,W.createContext)(Iu);function Bu(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Fu}}}function Vu(e,t){switch(t.type){case Z.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Z.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case Z.DragEnd:case Z.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Z.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new Fu(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case Z.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new Fu(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case Z.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new Fu(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function Hu(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,W.useContext)(Ru),a=Ec(r),o=Ec(n?.id);return(0,W.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!Nc(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=Rc(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function Uu(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function Wu(e){return(0,W.useMemo)(()=>({draggable:{...Pu.draggable,...e?.draggable},droppable:{...Pu.droppable,...e?.droppable},dragOverlay:{...Pu.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function Gu(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,W.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;bc(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=ul(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=Sl(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var Ku=(0,W.createContext)({...Qc,scaleX:1,scaleY:1}),qu;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(qu||={});var Ju=(0,W.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=Mu,collisionDetection:o=ol,measuring:s,modifiers:c,...l}=e,[u,d]=(0,W.useReducer)(Vu,void 0,Bu),[f,p]=Gc(),[m,h]=(0,W.useState)(qu.Uninitialized),g=m===qu.Initialized,{draggable:{active:_,nodes:v,translate:y},droppable:{containers:b}}=u,x=_==null?null:v.get(_),S=(0,W.useRef)({initial:null,translated:null}),C=(0,W.useMemo)(()=>_==null?null:{id:_,data:x?.data??Nu,rect:S},[_,x]),w=(0,W.useRef)(null),[T,E]=(0,W.useState)(null),[D,ee]=(0,W.useState)(null),O=Cc(l,Object.values(l)),k=Oc(`DndDescribedBy`,t),te=(0,W.useMemo)(()=>b.getEnabled(),[b]),A=Wu(s),{droppableRects:j,measureDroppableContainers:ne,measuringScheduled:re}=pu(te,{dragging:g,dependencies:[y.x,y.y],config:A.droppable}),M=cu(v,_),N=(0,W.useMemo)(()=>D?Fc(D):null,[D]),ie=Ae(),ae=hu(M,A.draggable.measure);Gu({activeNode:_==null?null:v.get(_),config:ie.layoutShiftCompensation,initialRect:ae,measure:A.draggable.measure});let P=yu(M,A.draggable.measure,ae),oe=yu(M?M.parentElement:null),se=(0,W.useRef)({activatorEvent:null,active:null,activeNode:M,collisionRect:null,collisions:null,droppableRects:j,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:b,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ce=b.getNodeFor(se.current.over?.id),F=ju({measure:A.dragOverlay.measure}),I=F.nodeRef.current??M,le=g?F.rect??P:null,ue=!!(F.nodeRef.current&&F.rect),de=bu(ue?null:P),L=Du(I?X(I):null),fe=Su(g?ce??M:null),pe=ku(fe),me=Uu(c,{transform:{x:y.x-de.x,y:y.y-de.y,scaleX:1,scaleY:1},activatorEvent:D,active:C,activeNodeRect:P,containerNodeRect:oe,draggingNodeRect:le,over:se.current.over,overlayNodeRect:F.rect,scrollableAncestors:fe,scrollableAncestorRects:pe,windowRect:L}),he=N?Ac(N,y):null,R=Cu(fe),ge=wu(R),_e=wu(R,[P]),ve=Ac(me,ge),ye=le?fl(le,me):null,be=C&&ye?o({active:C,collisionRect:ye,droppableRects:j,droppableContainers:te,pointerCoordinates:he}):null,xe=il(be,`id`),[Se,Ce]=(0,W.useState)(null),we=ll(ue?me:Ac(me,_e),Se?.rect??null,P),Te=(0,W.useRef)(null),Ee=(0,W.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(w.current==null)return;let i=v.get(w.current);if(!i)return;let a=e.nativeEvent,o=new n({active:w.current,activeNode:i,event:a,options:r,context:se,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=O.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=O.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=w.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=O.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:S}};(0,Fi.unstable_batchedUpdates)(()=>{r?.(i),h(qu.Initializing),d({type:Z.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),E(Te.current),ee(a)})},onMove(e){d({type:Z.DragMove,coordinates:e})},onEnd:s(Z.DragEnd),onCancel:s(Z.DragCancel)});Te.current=o;function s(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=se.current,o=null;if(t&&i){let{cancelDrop:s}=O.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===Z.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=Z.DragCancel)}w.current=null,(0,Fi.unstable_batchedUpdates)(()=>{d({type:e}),h(qu.Uninitialized),Ce(null),E(null),ee(null),Te.current=null;let t=e===Z.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=O.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),De=lu(a,(0,W.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(w.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},w.current=r,Ee(n,t))},[v,Ee]));Tu(a),bc(()=>{P&&m===qu.Initializing&&h(qu.Initialized)},[P,m]),(0,W.useEffect)(()=>{let{onDragMove:e}=O.current,{active:t,activatorEvent:n,collisions:r,over:i}=se.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:ve.x,y:ve.y},over:i};(0,Fi.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[ve.x,ve.y]),(0,W.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=se.current;if(!e||w.current==null||!t||!i)return;let{onDragOver:a}=O.current,o=r.get(xe),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,Fi.unstable_batchedUpdates)(()=>{Ce(s),a?.(c),f({type:`onDragOver`,event:c})})},[xe]),bc(()=>{se.current={activatorEvent:D,active:C,activeNode:M,collisionRect:ye,collisions:be,droppableRects:j,draggableNodes:v,draggingNode:I,draggingNodeRect:le,droppableContainers:b,over:Se,scrollableAncestors:fe,scrollAdjustedTranslate:ve},S.current={initial:le,translated:ye}},[C,M,be,ye,v,I,le,j,b,Se,fe,ve]),au({...ie,delta:y,draggingRect:ye,pointerCoordinates:he,scrollableAncestors:fe,scrollableAncestorRects:pe});let Oe=(0,W.useMemo)(()=>({active:C,activeNode:M,activeNodeRect:P,activatorEvent:D,collisions:be,containerNodeRect:oe,dragOverlay:F,draggableNodes:v,droppableContainers:b,droppableRects:j,over:Se,measureDroppableContainers:ne,scrollableAncestors:fe,scrollableAncestorRects:pe,measuringConfiguration:A,measuringScheduled:re,windowRect:L}),[C,M,P,D,be,oe,F,v,b,j,Se,ne,fe,pe,A,re,L]),ke=(0,W.useMemo)(()=>({activatorEvent:D,activators:De,active:C,activeNodeRect:P,ariaDescribedById:{draggable:k},dispatch:d,draggableNodes:v,over:Se,measureDroppableContainers:ne}),[D,De,C,P,d,k,v,Se,ne]);return W.createElement(Uc.Provider,{value:p},W.createElement(Ru.Provider,{value:ke},W.createElement(zu.Provider,{value:Oe},W.createElement(Ku.Provider,{value:we},i)),W.createElement(Hu,{disabled:n?.restoreFocus===!1})),W.createElement(Jc,{...n,hiddenTextDescribedById:k}));function Ae(){let e=T?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),Yu=(0,W.createContext)(null),Xu=`button`,Zu=`Draggable`;function Qu(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=Oc(Zu),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,W.useContext)(Ru),{role:p=Xu,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,W.useContext)(g?Ku:Yu),[v,y]=Tc(),[b,x]=Tc(),S=Eu(o,t),C=Cc(n);return bc(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:b,data:C}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,W.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===Xu?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:S,node:v,over:f,setNodeRef:y,setActivatorNodeRef:x,transform:_}}function $u(){return(0,W.useContext)(zu)}var ed=`Droppable`,td={timeout:25};function nd(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=Oc(ed),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,W.useContext)(Ru),u=(0,W.useRef)({disabled:n}),d=(0,W.useRef)(!1),f=(0,W.useRef)(null),p=(0,W.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...td,...i},_=Cc(h??r),v=_u({callback:(0,W.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[y,b]=Tc((0,W.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),x=Cc(t);return(0,W.useEffect)(()=>{!v||!y.current||(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,W.useEffect)(()=>(s({type:Z.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:x}}),()=>s({type:Z.UnregisterDroppable,key:a,id:r})),[r]),(0,W.useEffect)(()=>{n!==u.current.disabled&&(s({type:Z.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:y,over:c,setNodeRef:b}}function rd(e){let{animation:t,children:n}=e,[r,i]=(0,W.useState)(null),[a,o]=(0,W.useState)(null),s=Ec(n);return!n&&!r&&s&&i(s),bc(()=>{if(!a)return;let e=r?.key,n=r?.props.id;if(e==null||n==null){i(null);return}Promise.resolve(t(n,a)).then(()=>{i(null)})},[t,r,a]),W.createElement(W.Fragment,null,n,r?(0,W.cloneElement)(r,{ref:o}):null)}var id={x:0,y:0,scaleX:1,scaleY:1};function ad(e){let{children:t}=e;return W.createElement(Ru.Provider,{value:Lu},W.createElement(Ku.Provider,{value:id},t))}var od={position:`fixed`,touchAction:`none`},sd=e=>Nc(e)?`transform 250ms ease`:void 0,cd=(0,W.forwardRef)((e,t)=>{let{as:n,activatorEvent:r,adjustScale:i,children:a,className:o,rect:s,style:c,transform:l,transition:u=sd}=e;if(!s)return null;let d=i?l:{...l,scaleX:1,scaleY:1},f={...od,width:s.width,height:s.height,top:s.top,left:s.left,transform:Ic.Transform.toString(d),transformOrigin:i&&r?el(r,s):void 0,transition:typeof u==`function`?u(r):u,...c};return W.createElement(n,{className:o,style:f,ref:t},a)}),ld={duration:250,easing:`ease`,keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:Ic.Transform.toString(t)},{transform:Ic.Transform.toString(n)}]},sideEffects:(e=>t=>{let{active:n,dragOverlay:r}=t,i={},{styles:a,className:o}=e;if(a!=null&&a.active)for(let[e,t]of Object.entries(a.active))t!==void 0&&(i[e]=n.node.style.getPropertyValue(e),n.node.style.setProperty(e,t));if(a!=null&&a.dragOverlay)for(let[e,t]of Object.entries(a.dragOverlay))t!==void 0&&r.node.style.setProperty(e,t);return o!=null&&o.active&&n.node.classList.add(o.active),o!=null&&o.dragOverlay&&r.node.classList.add(o.dragOverlay),function(){for(let[e,t]of Object.entries(i))n.node.style.setProperty(e,t);o!=null&&o.active&&n.node.classList.remove(o.active)}})({styles:{active:{opacity:`0`}}})};function ud(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:i}=e;return xc((e,a)=>{if(t===null)return;let o=n.get(e);if(!o)return;let s=o.node.current;if(!s)return;let c=Au(a);if(!c)return;let{transform:l}=X(a).getComputedStyle(a),u=pl(l);if(!u)return;let d=typeof t==`function`?t:dd(t);return Fl(s,i.draggable.measure),d({active:{id:e,data:o.data,node:s,rect:i.draggable.measure(s)},draggableNodes:n,dragOverlay:{node:a,rect:i.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:i,transform:u})})}function dd(e){let{duration:t,easing:n,sideEffects:r,keyframes:i}={...ld,...e};return e=>{let{active:a,dragOverlay:o,transform:s,...c}=e;if(!t)return;let l={x:o.rect.left-a.rect.left,y:o.rect.top-a.rect.top},u={scaleX:s.scaleX===1?1:a.rect.width*s.scaleX/o.rect.width,scaleY:s.scaleY===1?1:a.rect.height*s.scaleY/o.rect.height},d={x:s.x-l.x,y:s.y-l.y,...u},f=i({...c,active:a,dragOverlay:o,transform:{initial:s,final:d}}),[p]=f,m=f[f.length-1];if(JSON.stringify(p)===JSON.stringify(m))return;let h=r?.({active:a,dragOverlay:o,...c}),g=o.node.animate(f,{duration:t,easing:n,fill:`forwards`});return new Promise(e=>{g.onfinish=()=>{h?.(),e()}})}}var fd=0;function pd(e){return(0,W.useMemo)(()=>{if(e!=null)return fd++,fd},[e])}var md=W.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:i,transition:a,modifiers:o,wrapperElement:s=`div`,className:c,zIndex:l=999}=e,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggableNodes:m,droppableContainers:h,dragOverlay:g,over:_,measuringConfiguration:v,scrollableAncestors:y,scrollableAncestorRects:b,windowRect:x}=$u(),S=(0,W.useContext)(Ku),C=pd(d?.id),w=Uu(o,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggingNodeRect:g.rect,over:_,overlayNodeRect:g.rect,scrollableAncestors:y,scrollableAncestorRects:b,transform:S,windowRect:x}),T=mu(f),E=ud({config:r,draggableNodes:m,droppableContainers:h,measuringConfiguration:v}),D=T?g.setRef:void 0;return W.createElement(ad,null,W.createElement(rd,{animation:E},d&&C?W.createElement(cd,{key:C,id:d.id,ref:D,as:s,activatorEvent:u,adjustScale:t,className:c,transition:a,rect:T,style:{zIndex:l,...i},transform:w},n):null))});function hd({className:e}){return(0,U.jsx)(`svg`,{viewBox:`0 0 2000 2000`,fill:`none`,"aria-hidden":`true`,className:e,children:(0,U.jsxs)(`g`,{stroke:`currentColor`,strokeWidth:110,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,U.jsx)(`line`,{x1:`491.66`,y1:`1916.78`,x2:`1558.47`,y2:`83.22`}),(0,U.jsx)(`path`,{d:`M491.66,1916.78c-329.28-191.58-441.36-613.07-250.32-941.41,191.04-328.34,612.84-439.21,942.13-247.62`}),(0,U.jsx)(`path`,{d:`M1558.47,83.22c279.53,162.64,376.25,517.72,216.03,793.09-160.22,275.38-516.71,366.77-796.24,204.13`}),(0,U.jsx)(`path`,{d:`M497.55,1881.96c-222.81-129.63-298.64-414.83-169.38-637,129.26-222.17,414.67-297.19,637.48-167.55`})]})})}var gd=[`running`,`waiting_input`];function _d({sessionId:e,status:t}){let n=gd.includes(t),{data:r}=L(e,n),i=r?.vars??[];return!n||i.length===0?null:(0,U.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1 font-mono text-xs`,children:[(0,U.jsx)(`span`,{className:`text-fg-muted`,children:`env`}),(0,U.jsx)(`div`,{className:`flex flex-wrap items-center gap-1`,children:i.map(e=>(0,U.jsxs)(Tt,{children:[(0,U.jsx)(Ft,{asChild:!0,children:(0,U.jsx)(`span`,{className:`cursor-default rounded px-1.5 py-0.5 text-fg-secondary transition-colors hover:bg-elevated hover:text-fg`,children:e.name})}),(0,U.jsxs)(bt,{children:[e.bytes,` B · captured from this session's shell — re-injected into new shells and agent restarts`]})]},e.name))})]})}function vd(e,t,n){return`ssh -L ${e}:127.0.0.1:${e} ${t}@${n}`}var yd=[`running`,`waiting_input`];function bd({sessionId:e,status:t}){let n=yd.includes(t),{data:r}=se(e,n),i=r?.ports??[];return!n||i.length===0?null:(0,U.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1 font-mono text-xs`,children:[(0,U.jsx)(`span`,{className:`text-fg-muted`,children:`ports`}),(0,U.jsx)(`div`,{className:`flex items-center gap-1`,children:i.map(t=>(0,U.jsx)(xd,{sessionId:e,port:t},t.port))})]})}function xd({sessionId:e,port:t}){let n=xe().data;return(0,U.jsxs)(Ms,{children:[(0,U.jsxs)(Tt,{children:[(0,U.jsx)(Ft,{asChild:!0,children:(0,U.jsx)(Ns,{asChild:!0,children:(0,U.jsx)(`button`,{type:`button`,className:`cursor-pointer rounded px-1.5 py-0.5 tabular-nums text-fg-secondary outline-none transition-colors hover:bg-elevated hover:text-fg focus-visible:bg-elevated focus-visible:text-fg`,children:t.port})})}),(0,U.jsxs)(bt,{children:[t.command,` · pid `,t.pid]})]}),(0,U.jsxs)(Fs,{align:`start`,children:[qt()===null?(0,U.jsx)(Is,{asChild:!0,children:(0,U.jsx)(`a`,{href:`http://localhost:${t.port}`,target:`_blank`,rel:`noopener noreferrer`,children:`Open localhost`})}):(0,U.jsx)(Is,{onSelect:()=>{window.open(`/proxy/${e}/${t.port}/?puddle_token=${E.get()??``}`,`_blank`,`noopener,noreferrer`)},children:`Open via proxy`}),(0,U.jsx)(Is,{onSelect:()=>{n&&navigator.clipboard.writeText(vd(t.port,n.username,n.hostname)).then(()=>D.success(`Copied`))},children:`Copy ssh -L`})]})]})}function Sd(e,t,n=.25){if(e.width<=0||e.height<=0)return`center`;let r=Cd(t.x/e.width),i=Cd(t.y/e.height);if(r>n&&r<1-n&&i>n&&i<1-n)return`center`;let a=r,o=1-r,s=i,c=1-i,l=Math.min(a,o,s,c);return l===s?`top`:l===c?`bottom`:l===a?`left`:`right`}function Cd(e){return e<0?0:e>1?1:e}var wd=[`interrupted`,`exited`];function Td({session:e}){let t=R(`resume`);return wd.includes(e.status)&&!e.worktree_missing?(0,U.jsx)(`div`,{className:`pointer-events-none absolute bottom-2 right-3 z-10`,children:(0,U.jsxs)(j,{size:`sm`,className:`pointer-events-auto`,disabled:t.isPending,onClick:()=>t.mutate(e.id,{onError:e=>D.error(e.message)}),children:[(0,U.jsx)(Dn,{}),`Resume`]})}):null}var Ed=(0,W.createContext)(null);function Dd(){return(0,W.useContext)(Ed)}var Od=`leaf:`,kd=`tabdrop:`,Ad=`strip:`,jd=e=>{let t=cl(e);for(let e of[kd,Ad]){let n=t.filter(t=>String(t.id).startsWith(e));if(n.length>0)return n}return t.length>0?t:ol(e)};function Md({onDrop:e,renderOverlay:t,children:n}){let r=Zc(Xc(Zl,{activationConstraint:{distance:4}})),[i,a]=(0,W.useState)(null),[o,s]=(0,W.useState)(null),c=(0,W.useRef)(null),l=()=>{a(null),s(null),c.current=null};return(0,U.jsxs)(Ju,{sensors:r,collisionDetection:jd,onDragStart:e=>s(e.active.data.current?.ref??null),onDragMove:e=>{let t=e.over,n=Nd(e),r=t&&n?Fd(String(t.id),t.rect,t.data.current,n):null;Pd(c.current,r)||(c.current=r,a(r))},onDragEnd:t=>{let n=c.current,r=t.active.data.current?.ref,i=t.active.data.current?.fromLeafId;l(),n&&r&&i&&e({ref:r,fromLeafId:i,toLeafId:n.leafId,edge:n.zone,index:n.index})},onDragCancel:l,children:[(0,U.jsx)(Ed.Provider,{value:i,children:n}),(0,U.jsx)(md,{dropAnimation:null,children:o?t(o):null})]})}function Nd(e){let t=e.activatorEvent;return typeof t.clientX!=`number`||typeof t.clientY!=`number`?null:{x:t.clientX+e.delta.x,y:t.clientY+e.delta.y}}function Pd(e,t){return e===null||t===null?e===t:e.leafId===t.leafId&&e.zone===t.zone&&e.index===t.index}function Fd(e,t,n,r){if(e.startsWith(kd)){let e=n;if(!e)return null;let i=r.x>t.left+t.width/2;return{leafId:e.leafId,zone:`center`,index:e.index+ +!!i}}if(e.startsWith(Ad)){let e=n;return e?{leafId:e.leafId,zone:`center`,index:e.count}:null}if(e.startsWith(Od)){let n=Sd({width:t.width,height:t.height},{x:r.x-t.left,y:r.y-t.top});return{leafId:e.slice(5),zone:n}}return null}var Id=`group flex min-w-0 max-w-52 cursor-pointer items-center gap-1.5 rounded-t-md px-2.5 text-xs transition-colors`;function Ld({leaf:e,sessions:t,onActivate:n,onClose:r,onPromote:i,onArchived:a,onSetView:o}){let s=new Map(t.map(e=>[e.id,e.branch])),c=e.tabs.flatMap(e=>e.type===`editor`?[e.tab]:[]),l=Dd(),u=l?.leafId===e.id&&l.index!==void 0?l.index:null,{setNodeRef:d}=nd({id:`strip:${e.id}`,data:{leafId:e.id,count:e.tabs.length}}),f=e=>{let t=Kt(e.path,e.session,c,s);return m(e)===`diff`?`${t} (diff)`:m(e)===`commit`?`${t} @${(e.sha??``).slice(0,7)}`:t};return(0,U.jsxs)(`div`,{ref:d,className:`flex h-9 shrink-0 items-stretch gap-0.5 overflow-x-auto bg-surface px-1 pt-1`,children:[e.tabs.map((s,c)=>(0,U.jsxs)(W.Fragment,{children:[u===c&&(0,U.jsx)(Rd,{}),(0,U.jsx)(Bd,{tab:s,leafId:e.id,index:c,active:J(s)===e.activeKey,preview:J(s)===e.previewKey,session:s.type===`terminal`?t.find(e=>e.id===s.session):void 0,label:s.type===`editor`?f(s.tab):``,onActivate:()=>n(s),onClose:()=>r(s),onPromote:()=>i(s),onArchived:a,onSetView:e=>o(s,e)})]},J(s))),u===e.tabs.length&&(0,U.jsx)(Rd,{})]})}function Rd(){return(0,U.jsx)(`div`,{className:`w-0.5 shrink-0 self-stretch rounded-full bg-accent`})}function zd({view:e,onSetView:t}){let n=e===`preview`;return(0,U.jsx)(`button`,{onClick:e=>{e.stopPropagation(),t(n?`source`:`preview`)},className:`rounded-sm p-0.5 text-fg-muted opacity-0 transition-opacity hover:text-fg group-hover:opacity-100`,"aria-label":n?`Show source`:`Show preview`,title:n?`Show source`:`Show preview`,children:n?(0,U.jsx)(H,{className:`size-3`}):(0,U.jsx)($t,{className:`size-3`})})}function Bd({tab:e,leafId:t,index:n,active:r,preview:i,session:a,label:o,onActivate:s,onClose:c,onPromote:l,onArchived:u,onSetView:d}){let f=Dt(),p=J(e),{attributes:h,listeners:_,setNodeRef:v,isDragging:y}=Qu({id:`drag:${t}:${p}`,data:{ref:e,fromLeafId:t}}),{setNodeRef:b}=nd({id:`tabdrop:${t}:${p}`,data:{leafId:t,index:n}}),x=e=>{v(e),b(e)},S=z(Id,r?`bg-ground text-fg`:`text-fg-secondary hover:bg-elevated`,i&&`italic`,y&&`opacity-40`),C=(0,U.jsx)(`div`,{ref:x,...h,..._,onClick:s,onDoubleClick:l,className:S,children:e.type===`terminal`?(0,U.jsxs)(U.Fragment,{children:[a&&(0,U.jsx)(Xs,{status:a.status,kind:a.kind,stale:a.stale_running}),(0,U.jsx)(`span`,{className:`truncate font-mono`,children:a?f(a):e.session.slice(0,8)}),(0,U.jsx)(`button`,{onClick:e=>{e.stopPropagation(),c()},className:`rounded-sm p-0.5 text-fg-muted opacity-0 transition-opacity hover:text-fg group-hover:opacity-100`,"aria-label":`Close tab`,children:(0,U.jsx)(ne,{className:`size-3`})})]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`span`,{className:`truncate font-mono`,children:o}),m(e.tab)===`file`&&g(e.tab.path)!==null&&(0,U.jsx)(zd,{view:e.tab.view??`source`,onSetView:d}),(0,U.jsx)(Pi,{session:e.tab.session,path:e.tab.path,kind:m(e.tab),label:o,onClose:c})]})});return e.type===`terminal`&&a?(0,U.jsx)(ic,{session:a,onArchived:()=>u(e.session),children:C}):C}function Vd({leaf:e,sessions:t,reveal:n,onActivateTab:r,onCloseTab:i,onPromoteTab:a,onArchived:o,onFocusLeaf:s,onDropTab:c,onSetTabView:l}){let u=e.tabs.find(t=>J(t)===e.activeKey)??null,d=u?.type===`terminal`?J(u):null,f=u?.type===`terminal`?t.find(e=>e.id===u.session)??null:null,p=da(d),{setNodeRef:m}=nd({id:`leaf:${e.id}`}),h=Dd(),g=(0,W.useRef)(null),_=(0,W.useRef)(()=>void 0);_.current=()=>{u&&r(e.id,u)},(0,W.useEffect)(()=>{let e=g.current;if(!e)return;let t=()=>_.current();return e.addEventListener(`mousedown`,t,!0),()=>e.removeEventListener(`mousedown`,t,!0)},[]);let[v,y]=(0,W.useState)(null),b=e=>{let t=e.currentTarget.getBoundingClientRect();return Sd({width:t.width,height:t.height},{x:e.clientX-t.left,y:e.clientY-t.top})};return(0,U.jsxs)(`div`,{className:`flex h-full flex-col bg-ground`,onMouseDownCapture:()=>s(e.id),children:[e.tabs.length>0&&(0,U.jsx)(Ld,{leaf:e,sessions:t,onActivate:t=>r(e.id,t),onClose:t=>i(e.id,t),onPromote:a,onArchived:o,onSetView:l}),(0,U.jsxs)(`div`,{ref:e=>{g.current=e,m(e)},className:`relative min-h-0 flex-1`,onDragOver:e=>{fo(e.dataTransfer.types)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,y(b(e)))},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||y(null)},onDrop:t=>{if(!fo(t.dataTransfer.types))return;t.preventDefault(),y(null);let n=uo(t.dataTransfer.getData(co));n&&c(e.id,n,b(t))},children:[u?.type===`editor`&&(0,U.jsx)(`div`,{className:`absolute inset-0`,children:(0,U.jsx)(Ai,{tab:u.tab,reveal:n})}),(0,U.jsx)(`div`,{ref:p,className:z(`absolute inset-0 py-1 pl-4 pr-2`,!d&&`hidden`)}),h?.leafId===e.id&&h.index===void 0&&(0,U.jsx)(Ud,{zone:h.zone}),v!==null&&(0,U.jsx)(Ud,{zone:v}),f&&(0,U.jsx)(Td,{session:f}),!u&&(0,U.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-6 text-center`,children:[(0,U.jsx)(hd,{className:`size-24 text-fg-muted/40`}),(0,U.jsx)(`button`,{type:`button`,onClick:Et,className:`rounded-md bg-elevated px-3 py-1.5 font-mono text-xs text-fg-muted transition-colors hover:bg-border hover:text-fg-secondary`,children:`⌘K`})]})]}),f&&(0,U.jsx)(_d,{sessionId:f.id,status:f.status}),f&&(0,U.jsx)(bd,{sessionId:f.id,status:f.status})]})}var Hd={center:`inset-0`,left:`inset-y-0 left-0 w-1/2`,right:`inset-y-0 right-0 w-1/2`,top:`inset-x-0 top-0 h-1/2`,bottom:`inset-x-0 bottom-0 h-1/2`};function Ud({zone:e}){return(0,U.jsx)(`div`,{className:z(`pointer-events-none absolute z-20 bg-accent/20`,Hd[e])})}var Wd=`bg-border transition-colors hover:bg-accent data-[resizing]:bg-accent`;function Gd({tree:e,...t}){let n=(0,W.useMemo)(()=>{let t=new Set,n=[];for(let r of Wi(e)){if(r.type!==`editor`||m(r.tab)===`commit`)continue;let e=`${r.tab.session}${r.tab.path}`;t.has(e)||(t.add(e),n.push({session:r.tab.session,path:r.tab.path}))}return n},[e]);return(0,U.jsxs)(U.Fragment,{children:[n.length>0&&(0,U.jsx)(Mi,{buffers:n}),(0,U.jsx)(Kd,{node:e,...t})]})}function Kd({node:e,...t}){if(e.kind===`leaf`)return(0,U.jsx)(Vd,{leaf:e,sessions:t.sessions,reveal:t.reveal,onActivateTab:t.onActivateTab,onCloseTab:t.onCloseTab,onPromoteTab:t.onPromoteTab,onArchived:t.onArchived,onFocusLeaf:t.onFocusLeaf,onDropTab:t.onDropTab,onSetTabView:t.onSetTabView});let n=e.direction===`row`?`horizontal`:`vertical`;return(0,U.jsx)(vi,{orientation:n,className:`size-full`,defaultLayout:Object.fromEntries(e.children.map((t,n)=>[t.id,e.sizes[n]??100/e.children.length])),onLayoutChanged:n=>t.onResize(e.id,e.children.map(e=>n[e.id]??0)),children:e.children.map((e,r)=>(0,U.jsxs)(W.Fragment,{children:[r>0&&(0,U.jsx)(wi,{className:n===`horizontal`?`w-px ${Wd}`:`h-px ${Wd}`}),(0,U.jsx)(xi,{id:e.id,minSize:64,children:(0,U.jsx)(Kd,{node:e,...t})})]},e.id))},e.id)}function qd(e){let t=e.snapshot,n=(0,W.useRef)(null);!t.layout_tree&&!n.current&&(n.current=ca(t));let r=t.layout_tree??n.current??zi([]),i=(0,W.useCallback)(t=>e.update({layout_tree:t}),[e]),a=(0,W.useRef)(i);a.current=i;let o=(0,W.useRef)(!1);(0,W.useEffect)(()=>{o.current||e.loaded&&!t.layout_tree&&n.current&&(o.current=!0,Wi(n.current).length>0&&a.current(n.current))},[e.loaded,t.layout_tree]);let[s,c]=(0,W.useState)(null),l=(s?Vi(r,s):null)??Ui(r)[0]??zi([]),u=l.tabs.find(e=>J(e)===l.activeKey)??null,d=u?.type===`editor`?u.tab:null;return(0,W.useMemo)(()=>({tree:r,focusedLeaf:l,activeEditorTab:d,focusLeaf:e=>c(e),activate:(e,t)=>{c(e);let n=J(t),a=Vi(r,e);a&&a.activeKey===n||i(aa(r,e,n))},close:(e,t)=>i(ea(r,e,J(t))),openEditor:(e,t)=>{let n=l.id;c(n);let a={type:`editor`,tab:e};i(t?.preview?na(r,n,a):ta(r,n,a))},ensureTerminal:(e,t)=>{let n=`term:${e}`,a=Hi(r,n);if(a){c(a.id);let e=a.activeKey!==n,o=!t?.preview&&a.previewKey===n;if(e||o){let t=r;e&&(t=aa(t,a.id,n)),o&&(t=ra(t,n)),i(t)}}else{let n=l.id;c(n);let a={type:`terminal`,session:e};i(t?.preview?na(r,n,a):ta(r,n,a))}},promote:e=>i(ra(r,J(e))),setView:(e,t)=>i(ia(r,J(e),t)),removeTerminal:e=>{let t=Hi(r,`term:${e}`);t&&i(ea(r,t.id,`term:${e}`))},pruneSessions:e=>i(sa(r,t=>t.type===`terminal`?e.has(t.session):e.has(t.tab.session))),resize:(e,t)=>i(oa(r,e,t)),drop:e=>{c(e.toLeafId),i(Qi(r,e))}}),[r,l,d,i])}var Jd=2e3,Yd=T.parse({});function Xd(e){return`puddle.ws.${e}`}function Zd(e){if(e===null)return{kind:`absent`};try{return{kind:`present`,snapshot:T.parse(JSON.parse(e))}}catch{return{kind:`corrupt`}}}function Qd(){let e=Ee(),[t,n]=(0,W.useState)(!1),[r,i]=(0,W.useState)(Yd),a=(0,W.useRef)(r);a.current=r;let o=(0,W.useRef)(null),s=(0,W.useMemo)(()=>Gt((e,t)=>{Pe(e,t).catch(e=>console.warn(`ui-state save failed: ${e.message}`))},Jd),[]);return(0,W.useEffect)(()=>{if(e===null){o.current=null;return}let t=Xd(e);o.current=t;let r=!1;n(!1),i(Yd);let a;try{a=Zd(sessionStorage.getItem(t)),a.kind===`corrupt`&&sessionStorage.removeItem(t)}catch(e){console.warn(`ui-state read failed: ${e.message}`),a={kind:`absent`}}return a.kind===`present`?(i(a.snapshot),n(!0)):ge(e).then(e=>{r||(e&&i(e.ui_state),n(!0))}).catch(e=>{console.warn(`ui-state load failed: ${e.message}`),r||n(!0)}),()=>{r=!0,s.flush()}},[e,s]),{loaded:t,snapshot:r,update(t){if(e===null)return;let n={...a.current,...t};a.current=n,i(n);let r=o.current??Xd(e);s(e,n);try{sessionStorage.setItem(r,JSON.stringify(n))}catch(e){console.warn(`ui-state write failed: ${e.message}`)}}}}function $d(){return(0,U.jsx)(s,{children:(0,U.jsx)(ef,{})})}function ef(){let e=Ut(),t=zt(),n=e.id??``,r=/^[0-9a-f]{10}$/.test(n),i=e.sid??null,a=fe(r?n:void 0),o=(0,W.useMemo)(()=>a.data?.sessions??[],[a.data]),s=ve(a.data?.project.profile_id).data??[],c=Dt(),l=Qd(),u=Ce(),d=u.data??o,f=a.data?.project.profile_id,p=It().showAllProjectSessions,m=me(p?f:void 0),h=pe(p?f:void 0),g=(0,W.useMemo)(()=>{let e=e=>e.status!==`archived`;if(!p)return[{projectId:n,name:null,sessions:Be(o.filter(e),l.snapshot.session_order)}];let t=Be((m.data??[]).filter(e=>!e.archived),h.data?.projectOrder??[]),r=u.data??o;return t.map(t=>({projectId:t.id,name:t.name,sessions:Be(r.filter(n=>n.project_id===t.id&&e(n)),l.snapshot.session_order)}))},[p,o,n,l.snapshot.session_order,m.data,h.data,u.data]),v=(0,W.useMemo)(()=>o.filter(e=>e.status===`archived`),[o]),y=qd(l),b=(0,W.useRef)(y);b.current=y;let x=(0,W.useRef)(l);x.current=l;let S=(0,W.useCallback)(e=>x.current.update({session_order:ze(e,x.current.snapshot.session_order)}),[]),[C,w]=(0,W.useState)(!1),[T,E]=(0,W.useState)(!1),[ee,O]=(0,W.useState)(`agent`),[k,te]=(0,W.useState)(void 0),A=(0,W.useCallback)((e=`agent`)=>{te(void 0),O(e),E(!0)},[]),j=(0,W.useRef)(null),{setHandler:ne}=Mt(),[re,M]=(0,W.useState)(null),N=(0,W.useCallback)((e,t,n)=>{y.openEditor(e,{preview:n?.preview}),t&&(e.kind??`file`)===`file`&&M({session:e.session,path:e.path,line:t.line,column:t.column,nonce:Date.now()})},[y]),ie=(0,W.useCallback)((e,t,n,r)=>N({kind:`file`,session:e,path:t,...r?.view?{view:r.view}:{}},n,r),[N]);_(ie);let ae=(0,W.useCallback)((e,t,n)=>ie(e,t,void 0,{preview:n?.preview??!0}),[ie]),P=(0,W.useCallback)(e=>y.promote(e),[y]);(0,W.useEffect)(()=>(ne(e=>{te(e?.accountId),O(e?.kind??`agent`),E(!0)}),()=>ne(null)),[ne]);let[oe,se]=(0,W.useState)(!1);(0,W.useEffect)(()=>{if(!l.loaded||oe)return;let e=Wi(b.current.tree);Promise.all([e.some(e=>e.type===`terminal`)?we():void 0,e.some(e=>e.type===`editor`)?Oi():void 0]).finally(()=>se(!0))},[l.loaded,oe]),(0,W.useEffect)(()=>{if(C||!l.loaded||!a.data)return;w(!0);let e=l.snapshot.active_session,r=o.find(t=>t.id===e);!i&&r&&r.status!==`archived`&&t(`/project/${n}/session/${r.id}`,{replace:!0})},[C,l,a.data,o,i,t,n]);let ce=(0,W.useRef)(!1);(0,W.useEffect)(()=>{if(ce.current||!l.loaded||!u.data)return;ce.current=!0;let e=new Set(u.data.filter(e=>e.status!==`archived`).map(e=>e.id));b.current.pruneSessions(e);let t=x.current.snapshot.session_order,n=t.filter(t=>e.has(t));n.length!==t.length&&x.current.update({session_order:n})},[l.loaded,u.data]),(0,W.useEffect)(()=>{if(!C)return;if(!i){j.current=null;return}if(i===j.current)return;j.current=null,b.current.ensureTerminal(i,{preview:!0});let e=x.current;e.snapshot.active_session!==i&&e.update({active_session:i})},[C,i]);let F=xe();(0,W.useEffect)(()=>{let e=Se(F.data)??`puddle`,t=o.filter(e=>e.status===`waiting_input`).length,n=a.data?.project.name??`puddle`;return document.title=t>0?`● ${t} waiting — ${n}`:`${n} — ${e}`,()=>{document.title=e}},[o,a.data?.project.name,F.data]);let I=(0,W.useCallback)(e=>{let r=i===e;r&&(j.current=e),y.removeTerminal(e),r&&(l.update({active_session:null}),t(`/project/${n}`))},[y,l,i,t,n]),le=(0,W.useCallback)((e,n)=>{if(y.activate(e,n),n.type===`terminal`&&n.session!==i){let e=d.find(e=>e.id===n.session)?.project_id;e&&t(`/project/${e}/session/${n.session}`)}},[y,t,d,i]),ue=(0,W.useCallback)((e,r)=>{y.close(e,r),r.type===`terminal`&&r.session===i&&(j.current=r.session,l.update({active_session:null}),t(`/project/${n}`))},[y,i,l,t,n]),de=(0,W.useCallback)((e,n,r)=>{if(y.drop({ref:n,fromLeafId:e,toLeafId:e,edge:r}),n.type===`terminal`&&n.session!==i){let e=d.find(e=>e.id===n.session)?.project_id;e&&t(`/project/${e}/session/${n.session}`)}},[y,i,d,t]),L=y.focusedLeaf.tabs.find(e=>J(e)===y.focusedLeaf.activeKey)??null,he=Ti(d,(L===null?null:L.type===`terminal`?L.session:L.tab.session)??i,l),R=he.session,ge=Ks(l.snapshot.sidebar_mode),_e=l.snapshot.sidebar_collapsed,ye=l.snapshot.sessions_collapsed,be=(0,W.useCallback)(e=>{let t=y.focusedLeaf,n=t.tabs.find(e=>J(e)===t.activeKey)??null;if(!n||n.type!==`terminal`){D.error(`Focus a terminal or agent to insert`);return}wt.write(n.session,`agent`,`\x1b[200~${e}\x1b[201~`)},[y]);(0,W.useEffect)(()=>(Lt(be),()=>Lt(null)),[be]);let Te=(0,W.useRef)({}),Ee=e=>l.update({sidebar_mode:e,sidebar_collapsed:!1});Te.current={"tab.close":()=>{let e=y.focusedLeaf,t=e.tabs.find(t=>J(t)===e.activeKey);t&&ue(e.id,t)},"sidebar.left":()=>l.update({sidebar_collapsed:!l.snapshot.sidebar_collapsed}),"sidebar.right":()=>l.update({sessions_collapsed:!l.snapshot.sessions_collapsed}),"nav.files":()=>Ee(`files`),"nav.search":()=>Ee(`search`),"nav.changes":()=>Ee(`changes`),"nav.worktrees":()=>Ee(`worktrees`),"session.newAgent":()=>A(`agent`),"session.newTerminal":()=>A(`terminal`)},(0,W.useEffect)(()=>{let e=Object.keys(Te.current).map(e=>Rt(e,()=>Te.current[e]?.()));return()=>e.forEach(e=>e())},[]);let De=y.activeEditorTab,Oe=De?.kind===`diff`&&R&&De.session===R.id?De.path:null,ke=De&&(De.kind??`file`)===`file`&&R&&De.session===R.id?De.path:null,Ae=e=>{R&&N({kind:`diff`,session:R.id,path:e})},je=(e,t)=>{R&&N({kind:`commit`,session:R.id,path:e,sha:t})},Me=(e,t)=>{R&&ie(R.id,e,t===void 0?void 0:{line:t,column:1})},Ne=(0,W.useCallback)(e=>l.update({layout:{...l.snapshot.layout,...e}}),[l]),Pe=fa(l.snapshot.layout,[..._e?[]:[`nav`],`main`,...ye?[]:[`sessions`]]);return r?!l.loaded||!a.data||!oe?(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center text-sm text-fg-muted`,children:`…`}):(0,U.jsxs)(`div`,{className:`flex h-full`,children:[_e&&(0,U.jsx)(qs,{mode:ge,onExpand:()=>l.update({sidebar_collapsed:!1}),onSelect:e=>l.update({sidebar_collapsed:!1,sidebar_mode:e})}),(0,U.jsxs)(vi,{orientation:`horizontal`,className:`h-full min-w-0 flex-1`,defaultLayout:Pe,onLayoutChanged:Ne,children:[!_e&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(xi,{id:`nav`,defaultSize:280,minSize:200,maxSize:560,children:(0,U.jsx)(Js,{mode:ge,onModeChange:e=>l.update({sidebar_mode:e}),onCollapse:()=>l.update({sidebar_collapsed:!0}),projectId:n,repoId:a.data.project.repo_id,sessions:o,target:he,onOpenFile:ae,activeFilePath:ke,activeDiffPath:Oe,onOpenDiff:Ae,onOpenCommitFile:je,onOpenSearchFile:Me})}),(0,U.jsx)(wi,{className:`w-px bg-border transition-colors hover:bg-accent data-[resizing]:bg-accent`})]}),(0,U.jsx)(xi,{id:`main`,children:(0,U.jsx)(ua,{tree:y.tree,onOpenFile:(e,t,n,r)=>ie(e,t,n===void 0?void 0:{line:n,column:r}),children:(0,U.jsx)(`div`,{className:`flex h-full flex-col bg-ground`,children:(0,U.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,U.jsx)(Md,{onDrop:y.drop,renderOverlay:e=>{let t=e.type===`terminal`?d.find(t=>t.id===e.session):void 0;return(0,U.jsx)(`div`,{className:`rounded-md bg-elevated px-2.5 py-1 text-xs font-mono text-fg shadow-lg`,children:e.type===`terminal`?t?c(t):e.session.slice(0,8):e.tab.path.split(`/`).pop()??e.tab.path})},children:(0,U.jsx)(Gd,{tree:y.tree,sessions:d,reveal:re,onActivateTab:le,onCloseTab:ue,onPromoteTab:P,onArchived:I,onFocusLeaf:y.focusLeaf,onResize:y.resize,onDropTab:de,onSetTabView:y.setView})})})})})}),!ye&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(wi,{className:`w-px bg-border transition-colors hover:bg-accent data-[resizing]:bg-accent`}),(0,U.jsx)(xi,{id:`sessions`,defaultSize:260,minSize:180,maxSize:480,children:(0,U.jsx)(dc,{groups:g,accounts:s,activeSessionId:i,onReorder:S,onPromote:e=>y.ensureTerminal(e),archived:v,onNewSession:()=>A(`agent`),onNewTerminal:()=>A(`terminal`),onCollapse:()=>l.update({sessions_collapsed:!0}),onArchived:I})})]}),(0,U.jsx)(Ys,{projectId:n,repoId:a.data.project.repo_id,open:T,kind:ee,seedAccountId:k,onOpenChange:E,onCreated:e=>void t(`/project/${n}/session/${e.id}`)})]}),ye&&(0,U.jsx)(lc,{groups:g,activeSessionId:i,onReorder:S,onPromote:e=>y.ensureTerminal(e),onExpand:()=>l.update({sessions_collapsed:!1}),onNewTerminal:()=>A(`terminal`),onNewSession:()=>A(`agent`),onArchived:I})]}):null}export{$d as Workspace};
|