@neuralnomads/codenomad-dev 0.20.1-dev-20261014-9e30e682 → 0.20.1-dev-20261014-4e0b62bc
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/package.json +1 -1
- package/public/assets/{App-DF-Z2Y7J.js → App-CyR2nXSk.js} +12 -12
- package/public/assets/App-CyR2nXSk.js.map +1 -0
- package/public/assets/{FilesPanel-CtTkgrKk.js → FilesPanel-BhtD393e.js} +2 -2
- package/public/assets/{FilesPanel-CtTkgrKk.js.map → FilesPanel-BhtD393e.js.map} +1 -1
- package/public/assets/{StatusTab-D1sGcFfR.js → StatusTab-C7swLZG7.js} +2 -2
- package/public/assets/{StatusTab-D1sGcFfR.js.map → StatusTab-C7swLZG7.js.map} +1 -1
- package/public/assets/{client-state-Ch9KNFCC.js → client-state-CEbyy5wc.js} +2 -2
- package/public/assets/{client-state-Ch9KNFCC.js.map → client-state-CEbyy5wc.js.map} +1 -1
- package/public/assets/{client-state-Dh_BxeBg.js → client-state-O50zqa-f.js} +2 -2
- package/public/assets/{client-state-Dh_BxeBg.js.map → client-state-O50zqa-f.js.map} +1 -1
- package/public/assets/client-state-owner-commands-D5NJRZZh.js +2 -0
- package/public/assets/{client-state-owner-commands-Dgr9k2fS.js.map → client-state-owner-commands-D5NJRZZh.js.map} +1 -1
- package/public/assets/{diff-viewer-O6aLPhDR.js → diff-viewer-BB-WJlPd.js} +2 -2
- package/public/assets/{diff-viewer-O6aLPhDR.js.map → diff-viewer-BB-WJlPd.js.map} +1 -1
- package/public/assets/{main-CVEN0IUx.js → main-CDCxrr5o.js} +4 -4
- package/public/assets/{main-CVEN0IUx.js.map → main-CDCxrr5o.js.map} +1 -1
- package/public/assets/{markdown-DrX3bL5P.js → markdown-D9W8JY6L.js} +2 -2
- package/public/assets/{markdown-DrX3bL5P.js.map → markdown-D9W8JY6L.js.map} +1 -1
- package/public/assets/{opener-startup-state-settings-card-BMol_5cy.js → opener-startup-state-settings-card-CmLuC9U0.js} +2 -2
- package/public/assets/{opener-startup-state-settings-card-BMol_5cy.js.map → opener-startup-state-settings-card-CmLuC9U0.js.map} +1 -1
- package/public/assets/{startup-state-settings-card-DHfd2A4b.js → startup-state-settings-card-A4YIfYvm.js} +2 -2
- package/public/assets/{startup-state-settings-card-DHfd2A4b.js.map → startup-state-settings-card-A4YIfYvm.js.map} +1 -1
- package/public/assets/{startup-state-settings-view-DO-uAJhK.js → startup-state-settings-view-CA6pN1zs.js} +2 -2
- package/public/assets/{startup-state-settings-view-DO-uAJhK.js.map → startup-state-settings-view-CA6pN1zs.js.map} +1 -1
- package/public/assets/{terminal-square-BcW2DumO.js → terminal-square-C-9FQ1fR.js} +2 -2
- package/public/assets/{terminal-square-BcW2DumO.js.map → terminal-square-C-9FQ1fR.js.map} +1 -1
- package/public/assets/{tool-call-DUBWpZyC.js → tool-call-3daACw4Q.js} +4 -4
- package/public/assets/{tool-call-DUBWpZyC.js.map → tool-call-3daACw4Q.js.map} +1 -1
- package/public/assets/{unified-picker-H1_UoI8F.js → unified-picker-BorKgVjt.js} +2 -2
- package/public/assets/{unified-picker-H1_UoI8F.js.map → unified-picker-BorKgVjt.js.map} +1 -1
- package/public/index.html +1 -1
- package/public/sw.js +1 -1
- package/public/sw.js.map +1 -1
- package/public/assets/App-DF-Z2Y7J.js.map +0 -1
- package/public/assets/client-state-owner-commands-Dgr9k2fS.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as _,i,d as b,u as ie,e as ge,g as p,m as B,a as Ie,s as ze}from"./monaco-viewer-DRu1za8n.js";import{k as n,p as re,o as Ee,n as Oe,F as q,a as D,c as se,S as A,e as de,t as Le}from"./git-diff-vendor-CT8HfOQw.js";import{Y as he,Z as De,_ as Me,$ as Re,a0 as Se,a1 as ae,a2 as Te,a3 as je,a4 as Ge,a5 as Ne,a6 as qe,a7 as We,a8 as He}from"./App-DF-Z2Y7J.js";import{I as ce,bA as Pe,aD as le,g1 as Be,bn as Ue,C as Ce,F as Ve,aY as _e,aH as Ye,bf as Xe,s as ke,bg as Ze,b3 as Je,g2 as Ke,W as Qe}from"./main-CVEN0IUx.js";import{T as pe}from"./terminal-square-BcW2DumO.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";import"./index-B8Hn3z1E.js";import"./client-state-Dh_BxeBg.js";import"./client-state-Ch9KNFCC.js";import"./CodeNomad-Icon-DTDWwXip.js";const et=[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["path",{d:"m10 13-2 2 2 2",key:"17smn8"}],["path",{d:"m14 17 2-2-2-2",key:"14mezr"}]],tt=e=>n(ce,re(e,{name:"FileCode",iconNode:et})),it=[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["line",{x1:"16",x2:"8",y1:"13",y2:"13",key:"14keom"}],["line",{x1:"16",x2:"8",y1:"17",y2:"17",key:"17nazh"}],["line",{x1:"10",x2:"8",y1:"9",y2:"9",key:"1a5vjj"}]],nt=e=>n(ce,re(e,{name:"FileText",iconNode:it})),at=[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]],lt=e=>n(ce,re(e,{name:"GitCommitHorizontal",iconNode:at})),st=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],rt=e=>n(ce,re(e,{name:"Image",iconNode:st})),Q=e=>Number.parseFloat(e)||0,ee=new Set;let te=0;function ct(e){ee.add(e),!te&&(te=requestAnimationFrame(()=>{te=0;const v=[...ee];ee.clear();const $=v.map(k=>k());for(const k of $)k==null||k()}))}function Fe(e){var o;if(e.matches(".action-overflow-trigger"))return 0;const v=getComputedStyle(e);if(v.display==="none")return 0;if(e instanceof SVGElement||e.matches("button:not(.git-panel-file-main), .workspace-tree-spacer"))return e.getBoundingClientRect().width;const $=[];for(const d of e.childNodes)if(d instanceof Element)$.push(Fe(d));else if(d.nodeType===Node.TEXT_NODE&&((o=d.textContent)!=null&&o.trim())){const g=document.createRange();g.selectNode(d),$.push(g.getBoundingClientRect().width)}const k=$.filter(d=>d>0),x=v.flexDirection==="column";return(x?Math.max(0,...k):k.reduce((d,g)=>d+g,0))+(x?0:Math.max(0,k.length-1)*Q(v.columnGap))+Q(v.paddingLeft)+Q(v.paddingRight)+Q(v.borderLeftWidth)+Q(v.borderRightWidth)}function ot(e){var g;const v=e.parentElement;if(!v)return;let $=!1;const k=()=>{if($||!e.isConnected||!v.getBoundingClientRect().width)return;const h=e.querySelector(".action-overflow-trigger"),z=e.querySelector(".file-row-inline-actions");if(!h||!z)return;const a=Fe(v),s=v.getBoundingClientRect().width,r=h.hasAttribute("data-expanded")||a>s+.5;if(e.dataset.compact===String(r))return;const I=document.activeElement,E=I instanceof Element&&e.contains(I)&&I.matches(".file-row-inline-actions button, .action-overflow-trigger");return()=>{$||!e.isConnected||(e.dataset.compact=String(r),z.inert=r,E&&queueMicrotask(()=>{if($||!e.isConnected)return;const l=r?h:e.querySelector(".file-row-inline-actions button:not(:disabled)");l==null||l.focus({preventScroll:!0})}))}},x=()=>{$||ct(k)},o=new ResizeObserver(x);o.observe(v),o.observe(e);const d=new MutationObserver(x);d.observe(v,{subtree:!0,childList:!0,characterData:!0,attributes:!0,attributeFilter:["data-expanded"]}),(g=document.fonts)==null||g.addEventListener("loadingdone",x),x(),Ee(()=>{var h;$=!0,ee.delete(k),ee.size||(cancelAnimationFrame(te),te=0),o.disconnect(),d.disconnect(),(h=document.fonts)==null||h.removeEventListener("loadingdone",x)})}var dt=_("<button type=button class=file-row-icon-button>"),gt=_("<span class=file-row-actions data-compact=false><span class=file-row-pinned-actions></span><span class=file-row-inline-actions>");const ue=e=>{let v;Oe(()=>ot(v));const $=()=>e.items.filter(o=>typeof o.checked=="boolean"),k=()=>e.items.filter(o=>typeof o.checked!="boolean"),x=o=>(()=>{var d=dt();return d.$$click=()=>void o.onSelect(),i(d,()=>o.icon),D(g=>{var h=typeof o.checked=="boolean",z=o.label,a=o.label,s=o.checked,r=o.disabled;return h!==g.e&&d.classList.toggle("icon-toggle",g.e=h),z!==g.t&&b(d,"title",g.t=z),a!==g.a&&b(d,"aria-label",g.a=a),s!==g.o&&b(d,"aria-pressed",g.o=s),r!==g.i&&(d.disabled=g.i=r),g},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),d})();return(()=>{var o=gt(),d=o.firstChild,g=d.nextSibling;o.$$pointerdown=z=>z.stopPropagation(),o.$$click=z=>z.stopPropagation();var h=v;return typeof h=="function"?ie(h,o):v=o,i(d,n(q,{get each(){return $()},children:x})),i(g,n(q,{get each(){return k()},children:x})),i(o,n(Pe,{get items(){return k()},get label(){return e.label},triggerClass:"file-row-icon-button action-overflow-trigger"}),null),o})()};ge(["click","pointerdown"]);var ht=_('<p class="p-3 text-xs text-secondary"role=status>'),ut=_("<div class=workspace-tree><div class=workspace-tree-root><strong></strong></div><div role=tree>"),vt=_("<div role=treeitem class=workspace-tree-row><span class=workspace-tree-label>"),mt=_("<span class=workspace-tree-spacer>"),ft=_('<div class="p-3 text-xs text-error"role=alert>: <button>');function bt(e){const v=a=>/\.(png|jpe?g|gif|webp|svg|ico|bmp|avif)$/i.test(a)?rt:/\.(md|mdx|txt|rst)$/i.test(a)?nt:/\.(tsx?|jsx?|json|ya?ml|css|html|py|rs|sh)$/i.test(a)?tt:Be;let $;const k=se(()=>{var a;return e.tree.rows().some(s=>s.path===e.tree.state().selected)?e.tree.state().selected:(a=e.tree.rows()[0])==null?void 0:a.path}),x=a=>{var s;return(s=$.querySelector(`[data-path="${CSS.escape(a)}"]`))==null?void 0:s.focus()},o=a=>{e.tree.select(a.path),a.type==="directory"&&e.tree.toggle(a.path)};function d(a,s){var l;if(a.target!==a.currentTarget)return;const r=e.tree.rows(),I=r.findIndex(L=>L.path===s.path),E=document.documentElement.dir==="rtl";if(a.key==="ArrowDown")x(r[Math.min(I+1,r.length-1)].path);else if(a.key==="ArrowUp")x(r[Math.max(I-1,0)].path);else if(a.key==="Home")x(r[0].path);else if(a.key==="End")x(r[r.length-1].path);else if(a.key===(E?"ArrowLeft":"ArrowRight")&&s.type==="directory")e.tree.state().expanded.has(s.path)?((l=r[I+1])==null?void 0:l.parent)===s.path&&x(r[I+1].path):e.tree.toggle(s.path);else if(a.key===(E?"ArrowRight":"ArrowLeft"))s.type==="directory"&&e.tree.state().expanded.has(s.path)?e.tree.toggle(s.path):x(s.parent);else if(a.key==="Enter"||a.key===" ")o(s);else return;a.preventDefault()}const g=async a=>{const s=await Ze(a);ke({message:s?e.t("instanceShell.filesShell.toast.copyPathSuccess"):e.t("instanceShell.filesShell.toast.copyPathError"),variant:s?"success":"error"})},h=async(a,s)=>{try{await Me({target:a,instanceId:e.instanceId,worktreeSlug:e.worktreeSlug,path:s})}catch(r){ke({message:e.t("instanceShell.filesShell.toast.openError",{message:r instanceof Error?r.message:String(r)}),variant:"error"})}},z=a=>{const s=[];if(a.type==="file"&&s.push({key:"preview",label:`${e.t("filesPanel.viewer")} · ${a.path}`,icon:n(he,{class:"w-3.5 h-3.5"}),disabled:!e.canOpen,checked:e.previewPath===a.path,onSelect:()=>e.onOpen(a.path)}),De())if(a.type==="directory"){const r=yt&&a.path.toLowerCase().endsWith(".app");s.push({key:"open-folder",label:e.t(r?"instanceShell.filesShell.actions.showInFolder":"instanceShell.filesShell.actions.openFolder"),icon:n(le,{class:"w-3.5 h-3.5"}),onSelect:()=>h(r?"reveal":"default",a.path)},{key:"open-terminal",label:e.t("instanceShell.filesShell.actions.openTerminal"),icon:n(pe,{class:"w-3.5 h-3.5"}),onSelect:()=>h("terminal",a.path)})}else Ae&&s.push({key:"open-default",label:e.t({open:"instanceShell.filesShell.actions.openDefault",edit:"instanceShell.filesShell.actions.editDefault",choose:"instanceShell.filesShell.actions.chooseApplication"}[kt(a.path)]),icon:n(Ye,{class:"w-3.5 h-3.5"}),onSelect:()=>h("default",a.path)}),s.push({key:"show-in-folder",label:e.t("instanceShell.filesShell.actions.showInFolder"),icon:n(le,{class:"w-3.5 h-3.5"}),onSelect:()=>h("reveal",a.path)});return s.push({key:"copy-path",label:e.t("instanceShell.filesShell.actions.copyPath"),icon:n(Xe,{class:"w-3.5 h-3.5"}),onSelect:()=>g(a.path)}),s};return(()=>{var a=ut(),s=a.firstChild,r=s.firstChild,I=s.nextSibling;i(s,n(le,{size:15}),r),i(r,()=>e.directory.replace(/\\/g,"/").split("/").pop());var E=$;return typeof E=="function"?ie(E,I):$=I,i(I,n(q,{get each(){return e.tree.rows()},children:l=>{const L=l.type==="directory",T=v(l.name),m=()=>e.tree.state().expanded.has(l.path);return(()=>{var c=vt(),R=c.firstChild;return c.$$click=()=>o(l),c.$$keydown=y=>d(y,l),c.addEventListener("focus",()=>e.tree.select(l.path)),i(c,n(A,{when:L,get fallback(){return mt()},get children(){return n(A,{get when(){return m()},get fallback(){return n(Ce,{size:12})},get children(){return n(Ue,{size:12})}})}}),R),i(c,n(A,{when:L,get fallback(){return n(T,{size:14})},get children(){return n(A,{get when(){return m()},get fallback(){return n(Ve,{size:14})},get children(){return n(le,{size:14})}})}}),R),i(R,()=>l.name),i(c,n(A,{get when(){return e.tree.busy().has(l.path)},get children(){return n(_e,{size:12,class:"animate-spin"})}}),null),i(c,n(ue,{get items(){return z(l)},get label(){return e.t("instanceShell.filesShell.actions.more",{name:l.name})}}),null),D(y=>{var j=l.path,W=l.name,Y=l.depth,Z=L?m():void 0,U=e.tree.state().selected===l.path,V=`${8+l.depth*14}px`,X=l.path,H=k()===l.path?0:-1;return j!==y.e&&b(c,"data-path",y.e=j),W!==y.t&&b(c,"aria-label",y.t=W),Y!==y.a&&b(c,"aria-level",y.a=Y),Z!==y.o&&b(c,"aria-expanded",y.o=Z),U!==y.i&&b(c,"aria-selected",y.i=U),V!==y.n&&p(c,"padding-inline-start",y.n=V),X!==y.s&&b(c,"title",y.s=X),H!==y.h&&b(c,"tabindex",y.h=H),y},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),c})()}})),i(a,n(q,{get each(){return[...e.tree.errors()]},children:([l,L])=>(()=>{var T=ft(),m=T.firstChild,c=m.nextSibling;return i(T,l,m),i(T,L,c),c.$$click=()=>void e.tree.load(l,!0),i(c,()=>e.t("instanceShell.rightPanel.actions.refresh")),T})()}),null),i(a,n(A,{get when(){return e.tree.busy().has(".")},get children(){var l=ht();return i(l,()=>e.t("instanceInfo.loading")),l}}),null),D(l=>{var L=e.directory,T=e.t("filesPanel.workspace");return L!==l.e&&b(s,"title",l.e=L),T!==l.t&&b(I,"aria-label",l.t=T),l},{e:void 0,t:void 0}),a})()}const Ae=typeof navigator<"u"&&/windows/i.test(navigator.userAgent),yt=typeof navigator<"u"&&/macintosh|mac os x/i.test(navigator.userAgent),$t=new Set(["7z","avi","bmp","c","cc","cfg","conf","cpp","cs","css","csv","dart","diff","docx","env","flac","fs","fsx","gif","go","gz","h","hpp","htm","html","ini","java","jpeg","jpg","json","jsonc","jsx","kt","kts","less","lock","log","lua","md","markdown","mkv","mov","mp3","mp4","ogg","patch","pdf","png","pptx","r","rar","rmd","rs","scss","sql","svg","svelte","swift","tar","toml","ts","tsx","txt","vue","wav","webm","webp","xlsx","xml","yaml","yml","zip"]),St=new Set(["bat","cmd","js","jse","pl","ps1","psd1","psm1","py","pyw","rb","reg","vbe","vbs","wsf","wsh"]);function kt(e){const v=e.split(/[\\/]/).pop()??"",$=v.lastIndexOf("."),k=$>0?v.slice($+1).toLowerCase():"";return!Ae||k&&$t.has(k)?"open":k&&St.has(k)?"edit":"choose"}ge(["keydown","click"]);var xe=_("<option>"),xt=_("<span class=git-panel-count>"),wt=_('<div role=alert class="p-3 text-error text-xs">'),oe=_('<p class="p-3 text-xs text-secondary">'),Ct=_('<div class=git-init-empty><p></p><button type=button class="git-change-commit-button git-init-button">'),we=_("<button class=git-panel-more>"),_t=_("<button class=git-panel-back>"),Ft=_('<p class="p-3 text-xs text-secondary"role=status>'),At=_("<section class=git-panel><header class=git-panel-context><div class=git-panel-branch><strong></strong><button class=files-header-icon-button></button></div><select class=git-panel-worktree></select></header><div class=git-panel-tools><div class=git-panel-switch role=group><button></button><button></button><button></button></div></div><div class=git-panel-body></div><div class=git-panel-body><div><input class=git-panel-filter></div></div><div class=git-panel-body>"),It=_("<span class=git-history-refs>"),zt=_("<button class=git-history-row><span class=git-history-row-content><strong></strong><span class=git-history-meta><span> · </span><code>"),Et=_("<div class=git-commit-summary><code></code><p></p><span>"),Ot=_("<div class=git-commit-files>"),Lt=_('<div class=git-panel-file-row><button class="git-panel-file git-panel-file-main"><span></span><span>'),Dt=_('<div class=git-change-commit-box role=group><div class=git-change-commit-input-wrap><textarea class=git-change-commit-input rows=1></textarea><button type=button class="git-change-commit-button git-change-commit-button-overlay">'),Mt=_('<div class="git-drop-zone git-change-section"><button type=button class=git-change-section-header><span class=git-change-section-header-main><span class="git-change-section-chevron disclosure-chevron"></span><span class=git-change-section-title></span></span><span class=git-change-section-count></span></button><div>'),Rt=_('<div class=git-panel-file-row><button class="git-panel-file git-panel-file-main"><span class=git-file-status></span><span></span><small><b class=file-list-item-additions>+</b> <b class=file-list-item-deletions>−');const Zt=e=>{const v=se(()=>Re(e.git.gitStatusEntries())),[$,k]=de(""),[x,o]=de(""),d=m=>{const c=ae(e.instanceId);return!!(c&&c.slug===e.slug&&c.directory===e.directory&&c.path===m.path&&(c.kind??"diff")===(m.kind??"diff")&&c.commit===m.commit&&c.scope===m.scope)},g=m=>{d(m)?Ne(e.instanceId):e.onOpenFile(m)};let h,z=0;const a=m=>{z=(h==null?void 0:h.scrollTop)??0,e.history.select(m)},s=()=>{e.history.back(),requestAnimationFrame(()=>{h!=null&&h.isConnected&&(h.scrollTop=z)})},r=se(()=>{var m;return(((m=e.history.page())==null?void 0:m.commits)??[]).filter(c=>`${c.subject} ${c.author} ${c.id}`.toLowerCase().includes($().toLowerCase()))}),I=({draggable:m,droppable:c})=>{if(!c)return;const R=String(c.id);if(R!=="staged"&&R!=="unstaged")return;const y=v().find(j=>j.id===String(m.id));!y||y.section===R||(R==="staged"?e.git.stageGitFile(y):e.git.unstageGitFile(y))},E=()=>e.mode==="workspace"?e.tree.busy().size>0:e.mode==="history"?e.history.loading()||e.history.detailLoading():e.git.gitStatusLoading(),l=()=>e.mode==="workspace"||!e.gitAvailable?null:e.mode==="history"?e.history.error():e.git.gitStatusError(),L=m=>m.replace(/\\/g,"/").split("/").pop()||m,T=m=>new Date(m).toLocaleDateString(document.documentElement.lang||void 0,{month:"short",day:"numeric"});return(()=>{var m=At(),c=m.firstChild,R=c.firstChild,y=R.firstChild,j=y.nextSibling,W=R.nextSibling,Y=c.nextSibling,Z=Y.firstChild,U=Z.firstChild,V=U.nextSibling,X=V.nextSibling,H=Y.nextSibling,P=H.nextSibling,J=P.firstChild,ne=J.firstChild,ve=P.nextSibling;i(R,n(Se,{size:16}),y),i(y,(()=>{var t=B(()=>!!e.gitAvailable);return()=>t()?e.branch||e.t("gitPanel.detached"):L(e.directory)})()),j.$$click=()=>{e.mode==="workspace"?e.tree.refresh():e.gitAvailable?e.mode==="history"?e.history.refresh():e.git.refreshGitStatus():e.gitInit.recheck()},i(j,n(_e,{size:14,get class(){return E()?"animate-spin":""}})),W.addEventListener("change",t=>e.onWorktreeChange(t.currentTarget.value)),i(W,n(A,{get when(){return!e.worktrees.some(t=>t.slug===e.slug)},get children(){var t=xe();return i(t,()=>L(e.directory)),D(()=>t.value=e.slug),t}}),null),i(W,n(q,{get each(){return e.worktrees},children:t=>(()=>{var f=xe();return i(f,()=>L(t.directory),null),i(f,(()=>{var u=B(()=>!!e.gitAvailable);return()=>u()?` · ${t.branch||e.t("gitPanel.detached")}`:""})(),null),D(()=>f.value=t.slug),f})()}),null),U.$$click=()=>e.onModeChange("workspace"),i(U,()=>e.t("filesPanel.workspace")),V.$$click=()=>e.onModeChange("changes"),i(V,()=>e.t("gitPanel.changes")),X.$$click=()=>e.onModeChange("history"),i(X,()=>e.t("filesPanel.commits")),i(Y,n(A,{get when(){return B(()=>!!(e.gitAvailable&&e.mode==="changes"))()&&e.git.gitStatusEntries()},get children(){var t=xt();return i(t,()=>{var f;return e.t("gitPanel.files",{count:((f=e.git.gitStatusEntries())==null?void 0:f.length)??0})}),t}}),null),i(m,n(A,{get when(){return l()},get children(){var t=wt();return i(t,l),t}}),H),i(m,n(A,{get when(){return!e.canOpenFile},get children(){var t=oe();return i(t,()=>e.t("instanceShell.gitChanges.noSessionSelected")),t}}),H),i(H,n(bt,{get tree(){return e.tree},get t(){return e.t},get directory(){return e.directory},get instanceId(){return e.instanceId},get worktreeSlug(){return e.slug},get canOpen(){return e.canOpenFile},get previewPath(){var t;return B(()=>{var f,u;return((f=ae(e.instanceId))==null?void 0:f.kind)==="workspace"&&((u=ae(e.instanceId))==null?void 0:u.slug)===e.slug})()?(t=ae(e.instanceId))==null?void 0:t.path:void 0},onOpen:t=>g({kind:"workspace",path:t})})),i(m,n(A,{get when(){return B(()=>!e.gitAvailable)()&&e.mode!=="workspace"},get children(){var t=Ct(),f=t.firstChild,u=f.nextSibling;return i(f,()=>e.t("filesPanel.gitInit.notRepository")),u.$$click=()=>void e.gitInit.initialize(),i(u,n(Se,{size:14,"aria-hidden":"true"}),null),i(u,()=>e.t(e.gitInit.pending()?"filesPanel.gitInit.pending":"filesPanel.gitInit.action"),null),D(w=>{var O=e.gitInit.pending(),S=e.gitInit.pending(),F=e.directory;return O!==w.e&&(u.disabled=w.e=O),S!==w.t&&b(u,"aria-busy",w.t=S),F!==w.a&&b(u,"title",w.a=F),w},{e:void 0,t:void 0,a:void 0}),t}}),P);var me=h;return typeof me=="function"?ie(me,P):h=P,ne.$$input=t=>k(t.currentTarget.value),i(J,n(q,{get each(){return r()},children:t=>(()=>{var f=zt(),u=f.firstChild,w=u.firstChild,O=w.nextSibling,S=O.firstChild,F=S.firstChild,G=S.nextSibling;return f.$$click=()=>a(t.id),i(f,n(lt,{class:"git-history-mark",size:16}),u),i(w,()=>t.subject),i(u,n(A,{get when(){return t.refs},get children(){var C=It();return i(C,()=>t.refs),D(()=>b(C,"title",t.refs)),C}}),O),i(S,()=>t.author,F),i(S,()=>T(t.date),null),i(G,()=>t.id.slice(0,7)),f})()}),null),i(J,n(A,{get when(){return B(()=>!E())()&&r().length===0},get children(){var t=oe();return i(t,()=>e.t("gitPanel.emptyHistory")),t}}),null),i(J,n(A,{get when(){var t;return(t=e.history.page())==null?void 0:t.hasMore},get children(){var t=we();return t.$$click=()=>void e.history.refresh(!0),i(t,()=>e.t("gitPanel.more")),D(()=>t.disabled=E()),t}}),null),i(P,n(A,{get when(){return e.history.selected()},get children(){return[(()=>{var t=_t();return t.$$click=s,i(t,n(Je,{size:14}),null),i(t,()=>e.t("filesPanel.commits"),null),t})(),n(A,{get when(){return e.history.details()},children:t=>[(()=>{var f=Et(),u=f.firstChild,w=u.nextSibling,O=w.nextSibling;return i(u,()=>t().id.slice(0,8)),i(w,()=>t().message),i(O,()=>e.t("gitPanel.files",{count:t().files.length})),f})(),(()=>{var f=Ot();return i(f,n(q,{get each(){return t().files},children:u=>{const w=()=>({path:u.path,commit:t().id,subject:t().message.split(`
|
|
1
|
+
import{t as _,i,d as b,u as ie,e as ge,g as p,m as B,a as Ie,s as ze}from"./monaco-viewer-DRu1za8n.js";import{k as n,p as re,o as Ee,n as Oe,F as q,a as D,c as se,S as A,e as de,t as Le}from"./git-diff-vendor-CT8HfOQw.js";import{Y as he,Z as De,_ as Me,$ as Re,a0 as Se,a1 as ae,a2 as Te,a3 as je,a4 as Ge,a5 as Ne,a6 as qe,a7 as We,a8 as He}from"./App-CyR2nXSk.js";import{I as ce,bA as Pe,aD as le,g1 as Be,bn as Ue,C as Ce,F as Ve,aY as _e,aH as Ye,bf as Xe,s as ke,bg as Ze,b3 as Je,g2 as Ke,W as Qe}from"./main-CDCxrr5o.js";import{T as pe}from"./terminal-square-C-9FQ1fR.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";import"./index-B8Hn3z1E.js";import"./client-state-O50zqa-f.js";import"./client-state-CEbyy5wc.js";import"./CodeNomad-Icon-DTDWwXip.js";const et=[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["path",{d:"m10 13-2 2 2 2",key:"17smn8"}],["path",{d:"m14 17 2-2-2-2",key:"14mezr"}]],tt=e=>n(ce,re(e,{name:"FileCode",iconNode:et})),it=[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["line",{x1:"16",x2:"8",y1:"13",y2:"13",key:"14keom"}],["line",{x1:"16",x2:"8",y1:"17",y2:"17",key:"17nazh"}],["line",{x1:"10",x2:"8",y1:"9",y2:"9",key:"1a5vjj"}]],nt=e=>n(ce,re(e,{name:"FileText",iconNode:it})),at=[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]],lt=e=>n(ce,re(e,{name:"GitCommitHorizontal",iconNode:at})),st=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],rt=e=>n(ce,re(e,{name:"Image",iconNode:st})),Q=e=>Number.parseFloat(e)||0,ee=new Set;let te=0;function ct(e){ee.add(e),!te&&(te=requestAnimationFrame(()=>{te=0;const v=[...ee];ee.clear();const $=v.map(k=>k());for(const k of $)k==null||k()}))}function Fe(e){var o;if(e.matches(".action-overflow-trigger"))return 0;const v=getComputedStyle(e);if(v.display==="none")return 0;if(e instanceof SVGElement||e.matches("button:not(.git-panel-file-main), .workspace-tree-spacer"))return e.getBoundingClientRect().width;const $=[];for(const d of e.childNodes)if(d instanceof Element)$.push(Fe(d));else if(d.nodeType===Node.TEXT_NODE&&((o=d.textContent)!=null&&o.trim())){const g=document.createRange();g.selectNode(d),$.push(g.getBoundingClientRect().width)}const k=$.filter(d=>d>0),x=v.flexDirection==="column";return(x?Math.max(0,...k):k.reduce((d,g)=>d+g,0))+(x?0:Math.max(0,k.length-1)*Q(v.columnGap))+Q(v.paddingLeft)+Q(v.paddingRight)+Q(v.borderLeftWidth)+Q(v.borderRightWidth)}function ot(e){var g;const v=e.parentElement;if(!v)return;let $=!1;const k=()=>{if($||!e.isConnected||!v.getBoundingClientRect().width)return;const h=e.querySelector(".action-overflow-trigger"),z=e.querySelector(".file-row-inline-actions");if(!h||!z)return;const a=Fe(v),s=v.getBoundingClientRect().width,r=h.hasAttribute("data-expanded")||a>s+.5;if(e.dataset.compact===String(r))return;const I=document.activeElement,E=I instanceof Element&&e.contains(I)&&I.matches(".file-row-inline-actions button, .action-overflow-trigger");return()=>{$||!e.isConnected||(e.dataset.compact=String(r),z.inert=r,E&&queueMicrotask(()=>{if($||!e.isConnected)return;const l=r?h:e.querySelector(".file-row-inline-actions button:not(:disabled)");l==null||l.focus({preventScroll:!0})}))}},x=()=>{$||ct(k)},o=new ResizeObserver(x);o.observe(v),o.observe(e);const d=new MutationObserver(x);d.observe(v,{subtree:!0,childList:!0,characterData:!0,attributes:!0,attributeFilter:["data-expanded"]}),(g=document.fonts)==null||g.addEventListener("loadingdone",x),x(),Ee(()=>{var h;$=!0,ee.delete(k),ee.size||(cancelAnimationFrame(te),te=0),o.disconnect(),d.disconnect(),(h=document.fonts)==null||h.removeEventListener("loadingdone",x)})}var dt=_("<button type=button class=file-row-icon-button>"),gt=_("<span class=file-row-actions data-compact=false><span class=file-row-pinned-actions></span><span class=file-row-inline-actions>");const ue=e=>{let v;Oe(()=>ot(v));const $=()=>e.items.filter(o=>typeof o.checked=="boolean"),k=()=>e.items.filter(o=>typeof o.checked!="boolean"),x=o=>(()=>{var d=dt();return d.$$click=()=>void o.onSelect(),i(d,()=>o.icon),D(g=>{var h=typeof o.checked=="boolean",z=o.label,a=o.label,s=o.checked,r=o.disabled;return h!==g.e&&d.classList.toggle("icon-toggle",g.e=h),z!==g.t&&b(d,"title",g.t=z),a!==g.a&&b(d,"aria-label",g.a=a),s!==g.o&&b(d,"aria-pressed",g.o=s),r!==g.i&&(d.disabled=g.i=r),g},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),d})();return(()=>{var o=gt(),d=o.firstChild,g=d.nextSibling;o.$$pointerdown=z=>z.stopPropagation(),o.$$click=z=>z.stopPropagation();var h=v;return typeof h=="function"?ie(h,o):v=o,i(d,n(q,{get each(){return $()},children:x})),i(g,n(q,{get each(){return k()},children:x})),i(o,n(Pe,{get items(){return k()},get label(){return e.label},triggerClass:"file-row-icon-button action-overflow-trigger"}),null),o})()};ge(["click","pointerdown"]);var ht=_('<p class="p-3 text-xs text-secondary"role=status>'),ut=_("<div class=workspace-tree><div class=workspace-tree-root><strong></strong></div><div role=tree>"),vt=_("<div role=treeitem class=workspace-tree-row><span class=workspace-tree-label>"),mt=_("<span class=workspace-tree-spacer>"),ft=_('<div class="p-3 text-xs text-error"role=alert>: <button>');function bt(e){const v=a=>/\.(png|jpe?g|gif|webp|svg|ico|bmp|avif)$/i.test(a)?rt:/\.(md|mdx|txt|rst)$/i.test(a)?nt:/\.(tsx?|jsx?|json|ya?ml|css|html|py|rs|sh)$/i.test(a)?tt:Be;let $;const k=se(()=>{var a;return e.tree.rows().some(s=>s.path===e.tree.state().selected)?e.tree.state().selected:(a=e.tree.rows()[0])==null?void 0:a.path}),x=a=>{var s;return(s=$.querySelector(`[data-path="${CSS.escape(a)}"]`))==null?void 0:s.focus()},o=a=>{e.tree.select(a.path),a.type==="directory"&&e.tree.toggle(a.path)};function d(a,s){var l;if(a.target!==a.currentTarget)return;const r=e.tree.rows(),I=r.findIndex(L=>L.path===s.path),E=document.documentElement.dir==="rtl";if(a.key==="ArrowDown")x(r[Math.min(I+1,r.length-1)].path);else if(a.key==="ArrowUp")x(r[Math.max(I-1,0)].path);else if(a.key==="Home")x(r[0].path);else if(a.key==="End")x(r[r.length-1].path);else if(a.key===(E?"ArrowLeft":"ArrowRight")&&s.type==="directory")e.tree.state().expanded.has(s.path)?((l=r[I+1])==null?void 0:l.parent)===s.path&&x(r[I+1].path):e.tree.toggle(s.path);else if(a.key===(E?"ArrowRight":"ArrowLeft"))s.type==="directory"&&e.tree.state().expanded.has(s.path)?e.tree.toggle(s.path):x(s.parent);else if(a.key==="Enter"||a.key===" ")o(s);else return;a.preventDefault()}const g=async a=>{const s=await Ze(a);ke({message:s?e.t("instanceShell.filesShell.toast.copyPathSuccess"):e.t("instanceShell.filesShell.toast.copyPathError"),variant:s?"success":"error"})},h=async(a,s)=>{try{await Me({target:a,instanceId:e.instanceId,worktreeSlug:e.worktreeSlug,path:s})}catch(r){ke({message:e.t("instanceShell.filesShell.toast.openError",{message:r instanceof Error?r.message:String(r)}),variant:"error"})}},z=a=>{const s=[];if(a.type==="file"&&s.push({key:"preview",label:`${e.t("filesPanel.viewer")} · ${a.path}`,icon:n(he,{class:"w-3.5 h-3.5"}),disabled:!e.canOpen,checked:e.previewPath===a.path,onSelect:()=>e.onOpen(a.path)}),De())if(a.type==="directory"){const r=yt&&a.path.toLowerCase().endsWith(".app");s.push({key:"open-folder",label:e.t(r?"instanceShell.filesShell.actions.showInFolder":"instanceShell.filesShell.actions.openFolder"),icon:n(le,{class:"w-3.5 h-3.5"}),onSelect:()=>h(r?"reveal":"default",a.path)},{key:"open-terminal",label:e.t("instanceShell.filesShell.actions.openTerminal"),icon:n(pe,{class:"w-3.5 h-3.5"}),onSelect:()=>h("terminal",a.path)})}else Ae&&s.push({key:"open-default",label:e.t({open:"instanceShell.filesShell.actions.openDefault",edit:"instanceShell.filesShell.actions.editDefault",choose:"instanceShell.filesShell.actions.chooseApplication"}[kt(a.path)]),icon:n(Ye,{class:"w-3.5 h-3.5"}),onSelect:()=>h("default",a.path)}),s.push({key:"show-in-folder",label:e.t("instanceShell.filesShell.actions.showInFolder"),icon:n(le,{class:"w-3.5 h-3.5"}),onSelect:()=>h("reveal",a.path)});return s.push({key:"copy-path",label:e.t("instanceShell.filesShell.actions.copyPath"),icon:n(Xe,{class:"w-3.5 h-3.5"}),onSelect:()=>g(a.path)}),s};return(()=>{var a=ut(),s=a.firstChild,r=s.firstChild,I=s.nextSibling;i(s,n(le,{size:15}),r),i(r,()=>e.directory.replace(/\\/g,"/").split("/").pop());var E=$;return typeof E=="function"?ie(E,I):$=I,i(I,n(q,{get each(){return e.tree.rows()},children:l=>{const L=l.type==="directory",T=v(l.name),m=()=>e.tree.state().expanded.has(l.path);return(()=>{var c=vt(),R=c.firstChild;return c.$$click=()=>o(l),c.$$keydown=y=>d(y,l),c.addEventListener("focus",()=>e.tree.select(l.path)),i(c,n(A,{when:L,get fallback(){return mt()},get children(){return n(A,{get when(){return m()},get fallback(){return n(Ce,{size:12})},get children(){return n(Ue,{size:12})}})}}),R),i(c,n(A,{when:L,get fallback(){return n(T,{size:14})},get children(){return n(A,{get when(){return m()},get fallback(){return n(Ve,{size:14})},get children(){return n(le,{size:14})}})}}),R),i(R,()=>l.name),i(c,n(A,{get when(){return e.tree.busy().has(l.path)},get children(){return n(_e,{size:12,class:"animate-spin"})}}),null),i(c,n(ue,{get items(){return z(l)},get label(){return e.t("instanceShell.filesShell.actions.more",{name:l.name})}}),null),D(y=>{var j=l.path,W=l.name,Y=l.depth,Z=L?m():void 0,U=e.tree.state().selected===l.path,V=`${8+l.depth*14}px`,X=l.path,H=k()===l.path?0:-1;return j!==y.e&&b(c,"data-path",y.e=j),W!==y.t&&b(c,"aria-label",y.t=W),Y!==y.a&&b(c,"aria-level",y.a=Y),Z!==y.o&&b(c,"aria-expanded",y.o=Z),U!==y.i&&b(c,"aria-selected",y.i=U),V!==y.n&&p(c,"padding-inline-start",y.n=V),X!==y.s&&b(c,"title",y.s=X),H!==y.h&&b(c,"tabindex",y.h=H),y},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),c})()}})),i(a,n(q,{get each(){return[...e.tree.errors()]},children:([l,L])=>(()=>{var T=ft(),m=T.firstChild,c=m.nextSibling;return i(T,l,m),i(T,L,c),c.$$click=()=>void e.tree.load(l,!0),i(c,()=>e.t("instanceShell.rightPanel.actions.refresh")),T})()}),null),i(a,n(A,{get when(){return e.tree.busy().has(".")},get children(){var l=ht();return i(l,()=>e.t("instanceInfo.loading")),l}}),null),D(l=>{var L=e.directory,T=e.t("filesPanel.workspace");return L!==l.e&&b(s,"title",l.e=L),T!==l.t&&b(I,"aria-label",l.t=T),l},{e:void 0,t:void 0}),a})()}const Ae=typeof navigator<"u"&&/windows/i.test(navigator.userAgent),yt=typeof navigator<"u"&&/macintosh|mac os x/i.test(navigator.userAgent),$t=new Set(["7z","avi","bmp","c","cc","cfg","conf","cpp","cs","css","csv","dart","diff","docx","env","flac","fs","fsx","gif","go","gz","h","hpp","htm","html","ini","java","jpeg","jpg","json","jsonc","jsx","kt","kts","less","lock","log","lua","md","markdown","mkv","mov","mp3","mp4","ogg","patch","pdf","png","pptx","r","rar","rmd","rs","scss","sql","svg","svelte","swift","tar","toml","ts","tsx","txt","vue","wav","webm","webp","xlsx","xml","yaml","yml","zip"]),St=new Set(["bat","cmd","js","jse","pl","ps1","psd1","psm1","py","pyw","rb","reg","vbe","vbs","wsf","wsh"]);function kt(e){const v=e.split(/[\\/]/).pop()??"",$=v.lastIndexOf("."),k=$>0?v.slice($+1).toLowerCase():"";return!Ae||k&&$t.has(k)?"open":k&&St.has(k)?"edit":"choose"}ge(["keydown","click"]);var xe=_("<option>"),xt=_("<span class=git-panel-count>"),wt=_('<div role=alert class="p-3 text-error text-xs">'),oe=_('<p class="p-3 text-xs text-secondary">'),Ct=_('<div class=git-init-empty><p></p><button type=button class="git-change-commit-button git-init-button">'),we=_("<button class=git-panel-more>"),_t=_("<button class=git-panel-back>"),Ft=_('<p class="p-3 text-xs text-secondary"role=status>'),At=_("<section class=git-panel><header class=git-panel-context><div class=git-panel-branch><strong></strong><button class=files-header-icon-button></button></div><select class=git-panel-worktree></select></header><div class=git-panel-tools><div class=git-panel-switch role=group><button></button><button></button><button></button></div></div><div class=git-panel-body></div><div class=git-panel-body><div><input class=git-panel-filter></div></div><div class=git-panel-body>"),It=_("<span class=git-history-refs>"),zt=_("<button class=git-history-row><span class=git-history-row-content><strong></strong><span class=git-history-meta><span> · </span><code>"),Et=_("<div class=git-commit-summary><code></code><p></p><span>"),Ot=_("<div class=git-commit-files>"),Lt=_('<div class=git-panel-file-row><button class="git-panel-file git-panel-file-main"><span></span><span>'),Dt=_('<div class=git-change-commit-box role=group><div class=git-change-commit-input-wrap><textarea class=git-change-commit-input rows=1></textarea><button type=button class="git-change-commit-button git-change-commit-button-overlay">'),Mt=_('<div class="git-drop-zone git-change-section"><button type=button class=git-change-section-header><span class=git-change-section-header-main><span class="git-change-section-chevron disclosure-chevron"></span><span class=git-change-section-title></span></span><span class=git-change-section-count></span></button><div>'),Rt=_('<div class=git-panel-file-row><button class="git-panel-file git-panel-file-main"><span class=git-file-status></span><span></span><small><b class=file-list-item-additions>+</b> <b class=file-list-item-deletions>−');const Zt=e=>{const v=se(()=>Re(e.git.gitStatusEntries())),[$,k]=de(""),[x,o]=de(""),d=m=>{const c=ae(e.instanceId);return!!(c&&c.slug===e.slug&&c.directory===e.directory&&c.path===m.path&&(c.kind??"diff")===(m.kind??"diff")&&c.commit===m.commit&&c.scope===m.scope)},g=m=>{d(m)?Ne(e.instanceId):e.onOpenFile(m)};let h,z=0;const a=m=>{z=(h==null?void 0:h.scrollTop)??0,e.history.select(m)},s=()=>{e.history.back(),requestAnimationFrame(()=>{h!=null&&h.isConnected&&(h.scrollTop=z)})},r=se(()=>{var m;return(((m=e.history.page())==null?void 0:m.commits)??[]).filter(c=>`${c.subject} ${c.author} ${c.id}`.toLowerCase().includes($().toLowerCase()))}),I=({draggable:m,droppable:c})=>{if(!c)return;const R=String(c.id);if(R!=="staged"&&R!=="unstaged")return;const y=v().find(j=>j.id===String(m.id));!y||y.section===R||(R==="staged"?e.git.stageGitFile(y):e.git.unstageGitFile(y))},E=()=>e.mode==="workspace"?e.tree.busy().size>0:e.mode==="history"?e.history.loading()||e.history.detailLoading():e.git.gitStatusLoading(),l=()=>e.mode==="workspace"||!e.gitAvailable?null:e.mode==="history"?e.history.error():e.git.gitStatusError(),L=m=>m.replace(/\\/g,"/").split("/").pop()||m,T=m=>new Date(m).toLocaleDateString(document.documentElement.lang||void 0,{month:"short",day:"numeric"});return(()=>{var m=At(),c=m.firstChild,R=c.firstChild,y=R.firstChild,j=y.nextSibling,W=R.nextSibling,Y=c.nextSibling,Z=Y.firstChild,U=Z.firstChild,V=U.nextSibling,X=V.nextSibling,H=Y.nextSibling,P=H.nextSibling,J=P.firstChild,ne=J.firstChild,ve=P.nextSibling;i(R,n(Se,{size:16}),y),i(y,(()=>{var t=B(()=>!!e.gitAvailable);return()=>t()?e.branch||e.t("gitPanel.detached"):L(e.directory)})()),j.$$click=()=>{e.mode==="workspace"?e.tree.refresh():e.gitAvailable?e.mode==="history"?e.history.refresh():e.git.refreshGitStatus():e.gitInit.recheck()},i(j,n(_e,{size:14,get class(){return E()?"animate-spin":""}})),W.addEventListener("change",t=>e.onWorktreeChange(t.currentTarget.value)),i(W,n(A,{get when(){return!e.worktrees.some(t=>t.slug===e.slug)},get children(){var t=xe();return i(t,()=>L(e.directory)),D(()=>t.value=e.slug),t}}),null),i(W,n(q,{get each(){return e.worktrees},children:t=>(()=>{var f=xe();return i(f,()=>L(t.directory),null),i(f,(()=>{var u=B(()=>!!e.gitAvailable);return()=>u()?` · ${t.branch||e.t("gitPanel.detached")}`:""})(),null),D(()=>f.value=t.slug),f})()}),null),U.$$click=()=>e.onModeChange("workspace"),i(U,()=>e.t("filesPanel.workspace")),V.$$click=()=>e.onModeChange("changes"),i(V,()=>e.t("gitPanel.changes")),X.$$click=()=>e.onModeChange("history"),i(X,()=>e.t("filesPanel.commits")),i(Y,n(A,{get when(){return B(()=>!!(e.gitAvailable&&e.mode==="changes"))()&&e.git.gitStatusEntries()},get children(){var t=xt();return i(t,()=>{var f;return e.t("gitPanel.files",{count:((f=e.git.gitStatusEntries())==null?void 0:f.length)??0})}),t}}),null),i(m,n(A,{get when(){return l()},get children(){var t=wt();return i(t,l),t}}),H),i(m,n(A,{get when(){return!e.canOpenFile},get children(){var t=oe();return i(t,()=>e.t("instanceShell.gitChanges.noSessionSelected")),t}}),H),i(H,n(bt,{get tree(){return e.tree},get t(){return e.t},get directory(){return e.directory},get instanceId(){return e.instanceId},get worktreeSlug(){return e.slug},get canOpen(){return e.canOpenFile},get previewPath(){var t;return B(()=>{var f,u;return((f=ae(e.instanceId))==null?void 0:f.kind)==="workspace"&&((u=ae(e.instanceId))==null?void 0:u.slug)===e.slug})()?(t=ae(e.instanceId))==null?void 0:t.path:void 0},onOpen:t=>g({kind:"workspace",path:t})})),i(m,n(A,{get when(){return B(()=>!e.gitAvailable)()&&e.mode!=="workspace"},get children(){var t=Ct(),f=t.firstChild,u=f.nextSibling;return i(f,()=>e.t("filesPanel.gitInit.notRepository")),u.$$click=()=>void e.gitInit.initialize(),i(u,n(Se,{size:14,"aria-hidden":"true"}),null),i(u,()=>e.t(e.gitInit.pending()?"filesPanel.gitInit.pending":"filesPanel.gitInit.action"),null),D(w=>{var O=e.gitInit.pending(),S=e.gitInit.pending(),F=e.directory;return O!==w.e&&(u.disabled=w.e=O),S!==w.t&&b(u,"aria-busy",w.t=S),F!==w.a&&b(u,"title",w.a=F),w},{e:void 0,t:void 0,a:void 0}),t}}),P);var me=h;return typeof me=="function"?ie(me,P):h=P,ne.$$input=t=>k(t.currentTarget.value),i(J,n(q,{get each(){return r()},children:t=>(()=>{var f=zt(),u=f.firstChild,w=u.firstChild,O=w.nextSibling,S=O.firstChild,F=S.firstChild,G=S.nextSibling;return f.$$click=()=>a(t.id),i(f,n(lt,{class:"git-history-mark",size:16}),u),i(w,()=>t.subject),i(u,n(A,{get when(){return t.refs},get children(){var C=It();return i(C,()=>t.refs),D(()=>b(C,"title",t.refs)),C}}),O),i(S,()=>t.author,F),i(S,()=>T(t.date),null),i(G,()=>t.id.slice(0,7)),f})()}),null),i(J,n(A,{get when(){return B(()=>!E())()&&r().length===0},get children(){var t=oe();return i(t,()=>e.t("gitPanel.emptyHistory")),t}}),null),i(J,n(A,{get when(){var t;return(t=e.history.page())==null?void 0:t.hasMore},get children(){var t=we();return t.$$click=()=>void e.history.refresh(!0),i(t,()=>e.t("gitPanel.more")),D(()=>t.disabled=E()),t}}),null),i(P,n(A,{get when(){return e.history.selected()},get children(){return[(()=>{var t=_t();return t.$$click=s,i(t,n(Je,{size:14}),null),i(t,()=>e.t("filesPanel.commits"),null),t})(),n(A,{get when(){return e.history.details()},children:t=>[(()=>{var f=Et(),u=f.firstChild,w=u.nextSibling,O=w.nextSibling;return i(u,()=>t().id.slice(0,8)),i(w,()=>t().message),i(O,()=>e.t("gitPanel.files",{count:t().files.length})),f})(),(()=>{var f=Ot();return i(f,n(q,{get each(){return t().files},children:u=>{const w=()=>({path:u.path,commit:t().id,subject:t().message.split(`
|
|
2
2
|
`)[0]});return(()=>{var O=Lt(),S=O.firstChild,F=S.firstChild,G=F.nextSibling;return S.$$click=()=>o(`${t().id}:${u.path}`),i(F,()=>u.status),i(G,()=>u.path),i(O,n(ue,{get label(){return e.t("instanceShell.filesShell.actions.more",{name:u.path})},get items(){return[{key:"preview",label:`${e.t("filesPanel.viewer")} · ${u.path}`,icon:n(he,{size:14}),checked:d(w()),disabled:!e.canOpenFile,onSelect:()=>g(w())}]}}),null),D(C=>{var M=x()===`${t().id}:${u.path}`,N=u.originalPath?`${u.originalPath} → ${u.path}`:u.path,K=`git-file-status git-file-status-${u.status}`;return M!==C.e&&O.classList.toggle("git-panel-file-selected",C.e=M),N!==C.t&&b(S,"title",C.t=N),K!==C.a&&Ie(F,C.a=K),C},{e:void 0,t:void 0,a:void 0}),O})()}})),f})()]})]}}),null),i(P,n(A,{get when(){return E()},get children(){var t=Ft();return i(t,()=>e.t("instanceInfo.loading")),t}}),null),i(ve,n(Ge,{collisionDetector:Te,onDragEnd:I,get children(){return n(je,{get children(){return[n(A,{get when(){return v().length===0},get children(){var t=oe();return i(t,(()=>{var f=B(()=>!!e.git.gitStatusLoading());return()=>f()?e.t("instanceInfo.loading"):e.t("instanceShell.gitChanges.empty")})()),t}}),n(q,{each:["staged","unstaged"],children:t=>n(Tt,{get t(){return e.t},section:t,get items(){return v().filter(f=>f.section===t)},get git(){return e.git},get canOpenFile(){return e.canOpenFile},onOpenFile:g,previewActive:d,get children(){return n(A,{when:t==="staged",get children(){var f=Dt(),u=f.firstChild,w=u.firstChild,O=w.nextSibling;return i(f,n(q,{each:["staged","unstaged"],children:S=>{const F=se(()=>e.git.gitActionItems().filter(C=>C.section===S)),G=S==="staged"?"unstage":"stage";return n(A,{get when(){return F().length>0},get children(){var C=we();return C.$$click=()=>{const M=F()[0];M&&(S==="staged"?e.git.unstageGitFile(M):e.git.stageGitFile(M))},i(C,(()=>{var M=B(()=>F().length>1);return()=>{var N;return M()?e.t(`instanceShell.gitChanges.actions.${G}Selected`,{count:F().length}):`${e.t(`instanceShell.gitChanges.actions.${G}`)} · ${((N=F()[0])==null?void 0:N.path)??""}`}})()),D(()=>b(C,"title",F().map(M=>M.path).join(`
|
|
3
3
|
`))),C}})}}),u),w.$$input=S=>e.git.setGitCommitMessage(S.currentTarget.value),O.$$click=()=>void e.git.submitGitCommit(),i(O,()=>e.t(e.git.gitCommitSubmitting()?"instanceShell.gitChanges.commit.submitting":"instanceShell.gitChanges.commit.submit")),D(S=>{var F=e.t("gitPanel.actions"),G=e.t("instanceShell.gitChanges.commit.placeholder"),C=e.t("instanceShell.gitChanges.commit.placeholder"),M=!e.git.gitCommitMessage().trim()||!v().some(N=>N.section==="staged")||e.git.gitCommitSubmitting();return F!==S.e&&b(f,"aria-label",S.e=F),G!==S.t&&b(w,"aria-label",S.t=G),C!==S.a&&b(w,"placeholder",S.a=C),M!==S.o&&(O.disabled=S.o=M),S},{e:void 0,t:void 0,a:void 0,o:void 0}),D(()=>w.value=e.git.gitCommitMessage()),f}})}})})]}})}})),D(t=>{var f=e.t("instanceShell.rightPanel.tabs.files"),u=e.t("instanceShell.rightPanel.actions.refresh"),w=E(),O=e.t("gitPanel.worktree"),S=e.directory,F=e.t("instanceShell.rightPanel.tabs.files"),G=e.mode==="workspace",C=e.mode==="changes",M=e.mode==="history",N=e.mode==="workspace"?void 0:"none",K=e.gitAvailable&&e.mode==="history"?void 0:"none",fe=e.history.selected()?"none":void 0,be=e.t("gitPanel.filter"),ye=e.t("gitPanel.filter"),$e=e.gitAvailable&&e.mode==="changes"?void 0:"none";return f!==t.e&&b(m,"aria-label",t.e=f),u!==t.t&&b(j,"aria-label",t.t=u),w!==t.a&&(j.disabled=t.a=w),O!==t.o&&b(W,"aria-label",t.o=O),S!==t.i&&b(W,"title",t.i=S),F!==t.n&&b(Z,"aria-label",t.n=F),G!==t.s&&b(U,"aria-pressed",t.s=G),C!==t.h&&b(V,"aria-pressed",t.h=C),M!==t.r&&b(X,"aria-pressed",t.r=M),N!==t.d&&p(H,"display",t.d=N),K!==t.l&&p(P,"display",t.l=K),fe!==t.u&&p(J,"display",t.u=fe),be!==t.c&&b(ne,"aria-label",t.c=be),ye!==t.w&&b(ne,"placeholder",t.w=ye),$e!==t.m&&p(ve,"display",t.m=$e),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0}),D(()=>W.value=e.slug),D(()=>ne.value=$()),m})()},Tt=e=>{const v=qe(e.section),[$,k]=de(!0),x=Le();return(()=>{var o=Mt(),d=o.firstChild,g=d.firstChild,h=g.firstChild,z=h.nextSibling,a=g.nextSibling,s=d.nextSibling;return ie(v,o),d.$$click=()=>k(r=>!r),b(d,"aria-controls",x),i(h,n(Ce,{class:"w-3.5 h-3.5","aria-hidden":"true"})),i(z,()=>e.t(`instanceShell.gitChanges.sections.${e.section}`)),i(a,()=>e.items.length),b(s,"id",x),i(s,()=>e.children,null),i(s,n(q,{get each(){return e.items},children:r=>n(jt,{get t(){return e.t},item:r,get git(){return e.git},get canOpenFile(){return e.canOpenFile},get onOpenFile(){return e.onOpenFile},get previewActive(){return e.previewActive}})}),null),D(r=>{var I=!!v.isActiveDroppable,E=$(),l=!$();return I!==r.e&&o.classList.toggle("git-drop-active",r.e=I),E!==r.t&&b(d,"aria-expanded",r.t=E),l!==r.a&&(s.hidden=r.a=l),r},{e:void 0,t:void 0,a:void 0}),o})()},jt=e=>{const v=We(e.item.id),$=()=>e.item.section==="staged",k=()=>{$()?e.git.unstageGitFile(e.item):e.git.stageGitFile(e.item)},x=()=>e.t($()?"instanceShell.gitChanges.actions.unstage":"instanceShell.gitChanges.actions.stage"),o=()=>({path:e.item.path,originalPath:e.item.originalPath,scope:e.item.section}),d=[{key:"preview",get label(){return`${e.t("filesPanel.viewer")} · ${e.item.path}`},icon:n(he,{size:14}),get checked(){return e.previewActive(o())},get disabled(){return!e.canOpenFile},onSelect:()=>e.onOpenFile(o())},{key:"stage",get label(){return`${x()} · ${e.item.path}`},icon:n(A,{get when(){return $()},get fallback(){return n(Qe,{size:14})},get children(){return n(Ke,{size:14})}}),onSelect:k}];return(()=>{var g=Rt(),h=g.firstChild,z=h.firstChild,a=z.nextSibling,s=a.nextSibling,r=s.firstChild;r.firstChild;var I=r.nextSibling,E=I.nextSibling;return E.firstChild,ie(v,g),h.$$click=l=>{e.git.handleGitRowClick(e.item,l)},i(z,()=>e.item.status.slice(0,1).toUpperCase()),i(a,()=>e.item.path),i(r,()=>e.item.additions,null),i(E,()=>e.item.deletions,null),i(g,n(ue,{get label(){return e.t("instanceShell.filesShell.actions.more",{name:e.item.path})},items:d}),null),D(l=>{var L=!!e.git.gitActionItems().some(j=>j.id===e.item.id),T=He(v.transform),m=e.git.gitActionItems().some(j=>j.id===e.item.id),c=e.git.gitSelectedItemId()===e.item.id?"true":void 0,R=e.item.path,y=!e.canOpenFile;return L!==l.e&&g.classList.toggle("git-panel-file-selected",l.e=L),l.t=ze(g,T,l.t),m!==l.a&&b(h,"aria-pressed",l.a=m),c!==l.o&&b(h,"aria-current",l.o=c),R!==l.i&&b(h,"title",l.i=R),y!==l.n&&(h.disabled=l.n=y),l},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),g})()};ge(["click","input"]);export{Zt as default};
|
|
4
|
-
//# sourceMappingURL=FilesPanel-
|
|
4
|
+
//# sourceMappingURL=FilesPanel-BhtD393e.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilesPanel-CtTkgrKk.js","sources":["../../../../../../node_modules/lucide-solid/dist/source/icons/file-code.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/file-text.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/git-commit-horizontal.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/image.jsx","../../../components/instance/shell/right-panel/row-compact-actions.ts","../../../components/instance/shell/right-panel/FileRowActions.tsx","../../../components/instance/shell/right-panel/components/WorkspaceTree.tsx","../../../components/instance/shell/right-panel/tabs/FilesPanel.tsx"],"sourcesContent":["import Icon from '../Icon';\nconst iconNode = [\n [\n 'path',\n { d: 'M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z', key: '1nnpy2' },\n ],\n ['polyline', { points: '14 2 14 8 20 8', key: '1ew0cm' }],\n ['path', { d: 'm10 13-2 2 2 2', key: '17smn8' }],\n ['path', { d: 'm14 17 2-2-2-2', key: '14mezr' }],\n];\nconst FileCode = (props) => <Icon {...props} name=\"FileCode\" iconNode={iconNode}/>;\nexport default FileCode;\n","import Icon from '../Icon';\nconst iconNode = [\n [\n 'path',\n { d: 'M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z', key: '1nnpy2' },\n ],\n ['polyline', { points: '14 2 14 8 20 8', key: '1ew0cm' }],\n ['line', { x1: '16', x2: '8', y1: '13', y2: '13', key: '14keom' }],\n ['line', { x1: '16', x2: '8', y1: '17', y2: '17', key: '17nazh' }],\n ['line', { x1: '10', x2: '8', y1: '9', y2: '9', key: '1a5vjj' }],\n];\nconst FileText = (props) => <Icon {...props} name=\"FileText\" iconNode={iconNode}/>;\nexport default FileText;\n","import Icon from '../Icon';\nconst iconNode = [\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n ['line', { x1: '3', x2: '9', y1: '12', y2: '12', key: '1dyftd' }],\n ['line', { x1: '15', x2: '21', y1: '12', y2: '12', key: 'oup4p8' }],\n];\nconst GitCommitHorizontal = (props) => (<Icon {...props} name=\"GitCommitHorizontal\" iconNode={iconNode}/>);\nexport default GitCommitHorizontal;\n","import Icon from '../Icon';\nconst iconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2', key: '1m3agn' }],\n ['circle', { cx: '9', cy: '9', r: '2', key: 'af1f0g' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21', key: '1xmnt7' }],\n];\nconst Image = (props) => <Icon {...props} name=\"Image\" iconNode={iconNode}/>;\nexport default Image;\n","import { onCleanup } from \"solid-js\"\n\nconst px = (value: string) => Number.parseFloat(value) || 0\n\ntype Measurement = () => (() => void) | undefined\nconst pendingMeasurements = new Set<Measurement>()\nlet scheduledFrame = 0\nfunction scheduleMeasurement(measure: Measurement) {\n pendingMeasurements.add(measure)\n if (scheduledFrame) return\n scheduledFrame = requestAnimationFrame(() => {\n scheduledFrame = 0\n const pending = [...pendingMeasurements]\n pendingMeasurements.clear()\n // Read every row before changing any DOM. Per-row read/write callbacks\n // repeatedly laid out the entire inventory when thousands of files mounted.\n const updates = pending.map(read => read())\n for (const update of updates) update?.()\n })\n}\n\n// Width of the row content ignoring the overflow trigger, so hidden inline\n// actions stay measurable. Text nodes are measured with a Range because the\n// label truncates with ellipsis.\nfunction rowContentWidth(element: Element): number {\n if (element.matches(\".action-overflow-trigger\")) return 0\n const style = getComputedStyle(element)\n if (style.display === \"none\") return 0\n if (element instanceof SVGElement || element.matches(\"button:not(.git-panel-file-main), .workspace-tree-spacer\")) {\n return element.getBoundingClientRect().width\n }\n const widths: number[] = []\n for (const child of element.childNodes) {\n if (child instanceof Element) widths.push(rowContentWidth(child))\n else if (child.nodeType === Node.TEXT_NODE && child.textContent?.trim()) {\n const range = document.createRange()\n range.selectNode(child)\n widths.push(range.getBoundingClientRect().width)\n }\n }\n const visible = widths.filter((width) => width > 0)\n const stacked = style.flexDirection === \"column\"\n return (stacked ? Math.max(0, ...visible) : visible.reduce((a, b) => a + b, 0))\n + (stacked ? 0 : Math.max(0, visible.length - 1) * px(style.columnGap))\n + px(style.paddingLeft) + px(style.paddingRight) + px(style.borderLeftWidth) + px(style.borderRightWidth)\n}\n\n// Toggle data-compact on a file row: inline icon buttons while they fit, the\n// shared overflow menu only when they don't. An open menu stays mounted\n// across resizes; hidden actions stay measurable but inert.\nexport function observeRowOverflow(element: HTMLElement) {\n const row = element.parentElement\n if (!row) return\n let disposed = false\n const measure = () => {\n if (disposed || !element.isConnected || !row.getBoundingClientRect().width) return\n const menu = element.querySelector<HTMLButtonElement>(\".action-overflow-trigger\")\n const inline = element.querySelector<HTMLElement>(\".file-row-inline-actions\")\n if (!menu || !inline) return\n // Budget against the entire row, not the shrink-wrapped action group.\n // The menu replaces inline actions; it must not add to their width budget.\n const required = rowContentWidth(row)\n const available = row.getBoundingClientRect().width\n const next = menu.hasAttribute(\"data-expanded\") || required > available + 0.5\n if (element.dataset.compact === String(next)) return\n const active = document.activeElement\n const hadActionFocus = active instanceof Element && element.contains(active)\n && active.matches(\".file-row-inline-actions button, .action-overflow-trigger\")\n return () => {\n if (disposed || !element.isConnected) return\n element.dataset.compact = String(next)\n inline.inert = next\n if (hadActionFocus) queueMicrotask(() => {\n if (disposed || !element.isConnected) return\n const target = next ? menu : element.querySelector<HTMLButtonElement>(\".file-row-inline-actions button:not(:disabled)\")\n target?.focus({ preventScroll: true })\n })\n }\n }\n const schedule = () => { if (!disposed) scheduleMeasurement(measure) }\n const resize = new ResizeObserver(schedule)\n resize.observe(row)\n resize.observe(element)\n const mutation = new MutationObserver(schedule)\n mutation.observe(row, { subtree: true, childList: true, characterData: true, attributes: true, attributeFilter: [\"data-expanded\"] })\n document.fonts?.addEventListener(\"loadingdone\", schedule)\n schedule()\n onCleanup(() => {\n disposed = true\n pendingMeasurements.delete(measure)\n if (!pendingMeasurements.size) { cancelAnimationFrame(scheduledFrame); scheduledFrame = 0 }\n resize.disconnect()\n mutation.disconnect()\n document.fonts?.removeEventListener(\"loadingdone\", schedule)\n })\n}\n","import type { Component } from \"solid-js\"\nimport { For, onMount } from \"solid-js\"\nimport ActionOverflowMenu, { type ActionOverflowMenuItem } from \"../../../action-overflow-menu\"\nimport { observeRowOverflow } from \"./row-compact-actions\"\n\n// File row actions with the message/session convention: inline icon buttons\n// while they fit, the shared overflow menu only when they don't. Hidden\n// actions stay measurable but inert; an open menu stays mounted.\nconst FileRowActions: Component<{ items: ActionOverflowMenuItem[]; label: string }> = props => {\n let element!: HTMLSpanElement\n onMount(() => observeRowOverflow(element))\n // Preview toggles remain directly reachable; only secondary actions overflow.\n const toggles = () => props.items.filter(item => typeof item.checked === \"boolean\")\n const secondary = () => props.items.filter(item => typeof item.checked !== \"boolean\")\n const button = (item: ActionOverflowMenuItem) => <button type=\"button\" class=\"file-row-icon-button\"\n classList={{ \"icon-toggle\": typeof item.checked === \"boolean\" }} title={item.label} aria-label={item.label} aria-pressed={item.checked}\n disabled={item.disabled} onClick={() => void item.onSelect()}>{item.icon}</button>\n return <span class=\"file-row-actions\" data-compact=\"false\" ref={element}\n onClick={event => event.stopPropagation()} onPointerDown={event => event.stopPropagation()}>\n <span class=\"file-row-pinned-actions\"><For each={toggles()}>{button}</For></span>\n <span class=\"file-row-inline-actions\">\n <For each={secondary()}>{button}</For>\n </span>\n <ActionOverflowMenu items={secondary()} label={props.label} triggerClass=\"file-row-icon-button action-overflow-trigger\" />\n </span>\n}\n\nexport default FileRowActions\n","import { For, Show, createMemo } from \"solid-js\"\nimport { ChevronDown, ChevronRight, Copy, ExternalLink, Eye, Folder, FolderOpen, FileCode, FileText, Image, File, RefreshCw, TerminalSquare } from \"lucide-solid\"\nimport type { useWorkspaceTree } from \"../useWorkspaceTree\"\nimport type { ActionOverflowMenuItem } from \"../../../../action-overflow-menu\"\nimport FileRowActions from \"../FileRowActions\"\nimport { copyToClipboard } from \"../../../../../lib/clipboard\"\nimport { showToastNotification } from \"../../../../../lib/notifications\"\nimport { canOpenWorkspacePaths, openWorkspacePath } from \"../../../../../lib/workspace-open\"\n\nexport function WorkspaceTree(props: {\n tree: ReturnType<typeof useWorkspaceTree>\n t: (key: string, vars?: Record<string, any>) => string\n directory: string\n instanceId: string\n worktreeSlug: string\n canOpen: boolean\n previewPath?: string\n onOpen: (path: string) => void\n}) {\n const icon = (name: string) => /\\.(png|jpe?g|gif|webp|svg|ico|bmp|avif)$/i.test(name) ? Image\n : /\\.(md|mdx|txt|rst)$/i.test(name) ? FileText\n : /\\.(tsx?|jsx?|json|ya?ml|css|html|py|rs|sh)$/i.test(name) ? FileCode : File\n let root!: HTMLDivElement\n const tabStop = createMemo(() => props.tree.rows().some(row => row.path === props.tree.state().selected)\n ? props.tree.state().selected : props.tree.rows()[0]?.path)\n const focusRow = (path: string) => root.querySelector<HTMLElement>(`[data-path=\"${CSS.escape(path)}\"]`)?.focus()\n const activateRow = (row: ReturnType<typeof props.tree.rows>[number]) => {\n props.tree.select(row.path)\n if (row.type === \"directory\") props.tree.toggle(row.path)\n }\n function keyDown(event: KeyboardEvent, row: ReturnType<typeof props.tree.rows>[number]) {\n // The row menu trigger is a separate tab stop; its keys must not toggle the row.\n if (event.target !== event.currentTarget) return\n const rows = props.tree.rows(), index = rows.findIndex(entry => entry.path === row.path)\n const rtl = document.documentElement.dir === \"rtl\"\n if (event.key === \"ArrowDown\") focusRow(rows[Math.min(index + 1, rows.length - 1)]!.path)\n else if (event.key === \"ArrowUp\") focusRow(rows[Math.max(index - 1, 0)]!.path)\n else if (event.key === \"Home\") focusRow(rows[0]!.path)\n else if (event.key === \"End\") focusRow(rows[rows.length - 1]!.path)\n else if (event.key === (rtl ? \"ArrowLeft\" : \"ArrowRight\") && row.type === \"directory\") {\n if (!props.tree.state().expanded.has(row.path)) props.tree.toggle(row.path)\n else if (rows[index + 1]?.parent === row.path) focusRow(rows[index + 1]!.path)\n } else if (event.key === (rtl ? \"ArrowRight\" : \"ArrowLeft\")) {\n if (row.type === \"directory\" && props.tree.state().expanded.has(row.path)) props.tree.toggle(row.path)\n else focusRow(row.parent)\n } else if (event.key === \"Enter\" || event.key === \" \") {\n activateRow(row)\n } else return\n event.preventDefault()\n }\n\n const handleCopyPath = async (path: string) => {\n const ok = await copyToClipboard(path)\n showToastNotification({\n message: ok ? props.t(\"instanceShell.filesShell.toast.copyPathSuccess\") : props.t(\"instanceShell.filesShell.toast.copyPathError\"),\n variant: ok ? \"success\" : \"error\",\n })\n }\n\n const handleNativeOpen = async (target: \"default\" | \"reveal\" | \"terminal\", path: string) => {\n try {\n await openWorkspacePath({ target, instanceId: props.instanceId, worktreeSlug: props.worktreeSlug, path })\n } catch (error) {\n showToastNotification({\n message: props.t(\"instanceShell.filesShell.toast.openError\", {\n message: error instanceof Error ? error.message : String(error),\n }),\n variant: \"error\",\n })\n }\n }\n\n const rowActions = (row: ReturnType<typeof props.tree.rows>[number]): ActionOverflowMenuItem[] => {\n const items: ActionOverflowMenuItem[] = []\n if (row.type === \"file\") items.push({\n key: \"preview\", label: `${props.t(\"filesPanel.viewer\")} · ${row.path}`,\n icon: <Eye class=\"w-3.5 h-3.5\" />, disabled: !props.canOpen,\n checked: props.previewPath === row.path, onSelect: () => props.onOpen(row.path),\n })\n if (canOpenWorkspacePaths()) {\n if (row.type === \"directory\") {\n const isMacApp = isMacDesktop && row.path.toLowerCase().endsWith(\".app\")\n items.push(\n {\n key: \"open-folder\",\n label: props.t(isMacApp\n ? \"instanceShell.filesShell.actions.showInFolder\"\n : \"instanceShell.filesShell.actions.openFolder\"),\n icon: <FolderOpen class=\"w-3.5 h-3.5\" />,\n onSelect: () => handleNativeOpen(isMacApp ? \"reveal\" : \"default\", row.path),\n },\n {\n key: \"open-terminal\",\n label: props.t(\"instanceShell.filesShell.actions.openTerminal\"),\n icon: <TerminalSquare class=\"w-3.5 h-3.5\" />,\n onSelect: () => handleNativeOpen(\"terminal\", row.path),\n },\n )\n } else {\n if (isWindowsDesktop) {\n items.push({\n key: \"open-default\",\n label: props.t({\n open: \"instanceShell.filesShell.actions.openDefault\",\n edit: \"instanceShell.filesShell.actions.editDefault\",\n choose: \"instanceShell.filesShell.actions.chooseApplication\",\n }[windowsDefaultAction(row.path)]),\n icon: <ExternalLink class=\"w-3.5 h-3.5\" />,\n onSelect: () => handleNativeOpen(\"default\", row.path),\n })\n }\n items.push({\n key: \"show-in-folder\",\n label: props.t(\"instanceShell.filesShell.actions.showInFolder\"),\n icon: <FolderOpen class=\"w-3.5 h-3.5\" />,\n onSelect: () => handleNativeOpen(\"reveal\", row.path),\n })\n }\n }\n items.push({\n key: \"copy-path\",\n label: props.t(\"instanceShell.filesShell.actions.copyPath\"),\n icon: <Copy class=\"w-3.5 h-3.5\" />,\n onSelect: () => handleCopyPath(row.path),\n })\n return items\n }\n\n return <div class=\"workspace-tree\">\n <div class=\"workspace-tree-root\" title={props.directory}><FolderOpen size={15} /><strong>{props.directory.replace(/\\\\/g, \"/\").split(\"/\").pop()}</strong></div>\n <div ref={root} role=\"tree\" aria-label={props.t(\"filesPanel.workspace\")}>\n <For each={props.tree.rows()}>{row => {\n const isFolder = row.type === \"directory\", Icon = icon(row.name)\n const expanded = () => props.tree.state().expanded.has(row.path)\n return <div role=\"treeitem\" data-path={row.path} aria-label={row.name} aria-level={row.depth}\n aria-expanded={isFolder ? expanded() : undefined} aria-selected={props.tree.state().selected === row.path}\n class=\"workspace-tree-row\" style={{ \"padding-inline-start\": `${8 + row.depth * 14}px` }} title={row.path}\n tabIndex={tabStop() === row.path ? 0 : -1}\n onFocus={() => props.tree.select(row.path)} onKeyDown={event => keyDown(event, row)}\n onClick={() => activateRow(row)}>\n <Show when={isFolder} fallback={<span class=\"workspace-tree-spacer\" />}>\n <Show when={expanded()} fallback={<ChevronRight size={12} />}><ChevronDown size={12} /></Show>\n </Show>\n <Show when={isFolder} fallback={<Icon size={14} />}><Show when={expanded()} fallback={<Folder size={14} />}><FolderOpen size={14} /></Show></Show>\n <span class=\"workspace-tree-label\">{row.name}</span><Show when={props.tree.busy().has(row.path)}><RefreshCw size={12} class=\"animate-spin\" /></Show>\n <FileRowActions items={rowActions(row)} label={props.t(\"instanceShell.filesShell.actions.more\", { name: row.name })} />\n </div>\n }}</For>\n </div>\n <For each={[...props.tree.errors()]}>{([path, error]) => <div class=\"p-3 text-xs text-error\" role=\"alert\">{path}: {error}\n <button onClick={() => void props.tree.load(path, true)}>{props.t(\"instanceShell.rightPanel.actions.refresh\")}</button></div>}</For>\n <Show when={props.tree.busy().has(\".\")}><p class=\"p-3 text-xs text-secondary\" role=\"status\">{props.t(\"instanceInfo.loading\")}</p></Show>\n </div>\n}\n\nconst isWindowsDesktop = typeof navigator !== \"undefined\" && /windows/i.test(navigator.userAgent)\nconst isMacDesktop = typeof navigator !== \"undefined\" && /macintosh|mac os x/i.test(navigator.userAgent)\nconst safeWindowsOpenExtensions = new Set([\n \"7z\", \"avi\", \"bmp\", \"c\", \"cc\", \"cfg\", \"conf\", \"cpp\", \"cs\", \"css\", \"csv\", \"dart\", \"diff\", \"docx\",\n \"env\", \"flac\", \"fs\", \"fsx\", \"gif\", \"go\", \"gz\", \"h\", \"hpp\", \"htm\", \"html\", \"ini\", \"java\", \"jpeg\", \"jpg\",\n \"json\", \"jsonc\", \"jsx\", \"kt\", \"kts\", \"less\", \"lock\", \"log\", \"lua\", \"md\", \"markdown\", \"mkv\", \"mov\", \"mp3\",\n \"mp4\", \"ogg\", \"patch\", \"pdf\", \"png\", \"pptx\", \"r\", \"rar\", \"rmd\", \"rs\", \"scss\", \"sql\", \"svg\", \"svelte\",\n \"swift\", \"tar\", \"toml\", \"ts\", \"tsx\", \"txt\", \"vue\", \"wav\", \"webm\", \"webp\", \"xlsx\", \"xml\", \"yaml\", \"yml\", \"zip\",\n])\nconst windowsEditExtensions = new Set([\n \"bat\", \"cmd\", \"js\", \"jse\", \"pl\", \"ps1\", \"psd1\", \"psm1\", \"py\", \"pyw\", \"rb\", \"reg\", \"vbe\", \"vbs\", \"wsf\", \"wsh\",\n])\n\nfunction windowsDefaultAction(path: string): \"open\" | \"edit\" | \"choose\" {\n const name = path.split(/[\\\\/]/).pop() ?? \"\"\n const dot = name.lastIndexOf(\".\")\n const extension = dot > 0 ? name.slice(dot + 1).toLowerCase() : \"\"\n if (!isWindowsDesktop || (extension && safeWindowsOpenExtensions.has(extension))) return \"open\"\n if (extension && windowsEditExtensions.has(extension)) return \"edit\"\n return \"choose\"\n}\n","import { For, Show, createMemo, createSignal, createUniqueId, type Component, type JSX } from \"solid-js\"\nimport {\n DragDropProvider,\n DragDropSensors,\n closestCenter,\n createDraggable,\n createDroppable,\n transformStyle,\n type DragEvent as SolidDndDragEvent,\n} from \"@thisbeyond/solid-dnd\"\nimport { ArrowLeft, ChevronRight, Eye, GitBranch, GitCommitHorizontal, Minus, Plus, RefreshCw } from \"lucide-solid\"\nimport type { useGitChanges } from \"../useGitChanges\"\nimport type { useGitHistory } from \"../useGitHistory\"\nimport type { useGitInit } from \"../useGitInit\"\nimport { closeFilePreview, getFilePreview, type FilePreviewTarget } from \"../../../../../stores/files-preview\"\nimport FileRowActions from \"../FileRowActions\"\nimport type { ActionOverflowMenuItem } from \"../../../../action-overflow-menu\"\nimport { buildGitChangeListItems } from \"../git-changes-model\"\nimport type { GitChangeListItem, GitChangeSection } from \"../types\"\nimport type { useWorkspaceTree } from \"../useWorkspaceTree\"\nimport { WorkspaceTree } from \"../components/WorkspaceTree\"\nimport type { FilesPanelMode } from \"../files-panel-state\"\n\ninterface FilesPanelProps {\n t: (key: string, vars?: Record<string, any>) => string\n git: ReturnType<typeof useGitChanges>\n history: ReturnType<typeof useGitHistory>\n tree: ReturnType<typeof useWorkspaceTree>\n /** False only for a known non-repository; Changes/Commits then offer Initialize Git. */\n gitAvailable: boolean\n gitInit: ReturnType<typeof useGitInit>\n mode: FilesPanelMode\n onModeChange: (mode: FilesPanelMode) => void\n worktrees: Array<{ slug: string; directory: string; branch?: string | null }>\n slug: string\n directory: string\n instanceId: string\n branch: string | null\n onWorktreeChange: (slug: string) => void\n onOpenFile: (file: Pick<FilePreviewTarget, \"kind\" | \"path\" | \"originalPath\" | \"scope\" | \"commit\" | \"subject\">) => void\n canOpenFile: boolean\n}\n\nconst FilesPanel: Component<FilesPanelProps> = props => {\n const items = createMemo(() => buildGitChangeListItems(props.git.gitStatusEntries()))\n const [filter, setFilter] = createSignal(\"\")\n const [selectedCommitFile, setSelectedCommitFile] = createSignal(\"\")\n const previewActive = (file: Parameters<FilesPanelProps[\"onOpenFile\"]>[0]) => {\n const target = getFilePreview(props.instanceId)\n return Boolean(target && target.slug === props.slug && target.directory === props.directory && target.path === file.path\n && (target.kind ?? \"diff\") === (file.kind ?? \"diff\") && target.commit === file.commit && target.scope === file.scope)\n }\n const togglePreview: FilesPanelProps[\"onOpenFile\"] = file => {\n if (previewActive(file)) closeFilePreview(props.instanceId)\n else props.onOpenFile(file)\n }\n let historyBody: HTMLDivElement | undefined\n let historyScroll = 0\n const selectCommit = (id: string) => {\n historyScroll = historyBody?.scrollTop ?? 0\n void props.history.select(id)\n }\n const backToCommits = () => {\n props.history.back()\n requestAnimationFrame(() => { if (historyBody?.isConnected) historyBody.scrollTop = historyScroll })\n }\n const commits = createMemo(() => (props.history.page()?.commits ?? []).filter(commit =>\n `${commit.subject} ${commit.author} ${commit.id}`.toLowerCase().includes(filter().toLowerCase())))\n const handleStageDragEnd = ({ draggable, droppable }: SolidDndDragEvent) => {\n if (!droppable) return\n const target = String(droppable.id)\n if (target !== \"staged\" && target !== \"unstaged\") return\n const item = items().find(entry => entry.id === String(draggable.id))\n if (!item || item.section === target) return\n if (target === \"staged\") props.git.stageGitFile(item)\n else props.git.unstageGitFile(item)\n }\n const loading = () => props.mode === \"workspace\" ? props.tree.busy().size > 0 : props.mode === \"history\" ? props.history.loading() || props.history.detailLoading() : props.git.gitStatusLoading()\n const error = () => props.mode === \"workspace\" || !props.gitAvailable ? null : props.mode === \"history\" ? props.history.error() : props.git.gitStatusError()\n const basename = (path: string) => path.replace(/\\\\/g, \"/\").split(\"/\").pop() || path\n const date = (value: string) => new Date(value).toLocaleDateString(document.documentElement.lang || undefined, { month: \"short\", day: \"numeric\" })\n\n return <section class=\"git-panel\" aria-label={props.t(\"instanceShell.rightPanel.tabs.files\")}>\n <header class=\"git-panel-context\">\n <div class=\"git-panel-branch\"><GitBranch size={16} /><strong>{props.gitAvailable ? props.branch || props.t(\"gitPanel.detached\") : basename(props.directory)}</strong>\n <button class=\"files-header-icon-button\" aria-label={props.t(\"instanceShell.rightPanel.actions.refresh\")} disabled={loading()} onClick={() => {\n if (props.mode === \"workspace\") props.tree.refresh()\n else if (!props.gitAvailable) void props.gitInit.recheck()\n else if (props.mode === \"history\") void props.history.refresh()\n else void props.git.refreshGitStatus()\n }}><RefreshCw size={14} class={loading() ? \"animate-spin\" : \"\"} /></button>\n </div>\n <select class=\"git-panel-worktree\" value={props.slug} aria-label={props.t(\"gitPanel.worktree\")} title={props.directory}\n onChange={event => props.onWorktreeChange(event.currentTarget.value)}>\n <Show when={!props.worktrees.some(tree => tree.slug === props.slug)}><option value={props.slug}>{basename(props.directory)}</option></Show>\n <For each={props.worktrees}>{tree => <option value={tree.slug}>{basename(tree.directory)}{props.gitAvailable ? ` · ${tree.branch || props.t(\"gitPanel.detached\")}` : \"\"}</option>}</For>\n </select>\n </header>\n <div class=\"git-panel-tools\">\n <div class=\"git-panel-switch\" role=\"group\" aria-label={props.t(\"instanceShell.rightPanel.tabs.files\")}>\n <button aria-pressed={props.mode === \"workspace\"} onClick={() => props.onModeChange(\"workspace\")}>{props.t(\"filesPanel.workspace\")}</button>\n <button aria-pressed={props.mode === \"changes\"} onClick={() => props.onModeChange(\"changes\")}>{props.t(\"gitPanel.changes\")}</button>\n <button aria-pressed={props.mode === \"history\"} onClick={() => props.onModeChange(\"history\")}>{props.t(\"filesPanel.commits\")}</button>\n </div>\n <Show when={props.gitAvailable && props.mode === \"changes\" && props.git.gitStatusEntries()}>\n <span class=\"git-panel-count\">{props.t(\"gitPanel.files\", { count: props.git.gitStatusEntries()?.length ?? 0 })}</span>\n </Show>\n </div>\n <Show when={error()}><div role=\"alert\" class=\"p-3 text-error text-xs\">{error()}</div></Show>\n <Show when={!props.canOpenFile}><p class=\"p-3 text-xs text-secondary\">{props.t(\"instanceShell.gitChanges.noSessionSelected\")}</p></Show>\n <div class=\"git-panel-body\" style={{ display: props.mode === \"workspace\" ? undefined : \"none\" }}>\n <WorkspaceTree tree={props.tree} t={props.t} directory={props.directory} instanceId={props.instanceId} worktreeSlug={props.slug} canOpen={props.canOpenFile}\n previewPath={getFilePreview(props.instanceId)?.kind === \"workspace\" && getFilePreview(props.instanceId)?.slug === props.slug ? getFilePreview(props.instanceId)?.path : undefined}\n onOpen={path => togglePreview({ kind: \"workspace\", path })} />\n </div>\n <Show when={!props.gitAvailable && props.mode !== \"workspace\"}>\n <div class=\"git-init-empty\">\n <p>{props.t(\"filesPanel.gitInit.notRepository\")}</p>\n <button type=\"button\" class=\"git-change-commit-button git-init-button\" disabled={props.gitInit.pending()} aria-busy={props.gitInit.pending()}\n title={props.directory} onClick={() => void props.gitInit.initialize()}>\n <GitBranch size={14} aria-hidden=\"true\" />\n {props.t(props.gitInit.pending() ? \"filesPanel.gitInit.pending\" : \"filesPanel.gitInit.action\")}\n </button>\n </div>\n </Show>\n <div ref={historyBody} class=\"git-panel-body\" style={{ display: props.gitAvailable && props.mode === \"history\" ? undefined : \"none\" }}>\n <div style={{ display: props.history.selected() ? \"none\" : undefined }}>\n <input class=\"git-panel-filter\" aria-label={props.t(\"gitPanel.filter\")} placeholder={props.t(\"gitPanel.filter\")} value={filter()} onInput={event => setFilter(event.currentTarget.value)} />\n <For each={commits()}>{commit => <button class=\"git-history-row\" onClick={() => selectCommit(commit.id)}>\n <GitCommitHorizontal class=\"git-history-mark\" size={16} />\n <span class=\"git-history-row-content\"><strong>{commit.subject}</strong>\n <Show when={commit.refs}><span class=\"git-history-refs\" title={commit.refs}>{commit.refs}</span></Show>\n <span class=\"git-history-meta\"><span>{commit.author} · {date(commit.date)}</span><code>{commit.id.slice(0, 7)}</code></span>\n </span>\n </button>}</For>\n <Show when={!loading() && commits().length === 0}><p class=\"p-3 text-xs text-secondary\">{props.t(\"gitPanel.emptyHistory\")}</p></Show>\n <Show when={props.history.page()?.hasMore}><button class=\"git-panel-more\" disabled={loading()} onClick={() => void props.history.refresh(true)}>{props.t(\"gitPanel.more\")}</button></Show>\n </div>\n <Show when={props.history.selected()}>\n <button class=\"git-panel-back\" onClick={backToCommits}><ArrowLeft size={14} />{props.t(\"filesPanel.commits\")}</button>\n <Show when={props.history.details()}>{details => <>\n <div class=\"git-commit-summary\"><code>{details().id.slice(0, 8)}</code><p>{details().message}</p><span>{props.t(\"gitPanel.files\", { count: details().files.length })}</span></div>\n <div class=\"git-commit-files\">\n <For each={details().files}>{file => {\n const target = () => ({ path: file.path, commit: details().id, subject: details().message.split(\"\\n\")[0] })\n return <div class=\"git-panel-file-row\" classList={{ \"git-panel-file-selected\": selectedCommitFile() === `${details().id}:${file.path}` }}>\n <button class=\"git-panel-file git-panel-file-main\" title={file.originalPath ? `${file.originalPath} → ${file.path}` : file.path} onClick={() => setSelectedCommitFile(`${details().id}:${file.path}`)}>\n <span class={`git-file-status git-file-status-${file.status}`}>{file.status}</span><span>{file.path}</span>\n </button>\n <FileRowActions label={props.t(\"instanceShell.filesShell.actions.more\", { name: file.path })} items={[{\n key: \"preview\", label: `${props.t(\"filesPanel.viewer\")} · ${file.path}`, icon: <Eye size={14} />,\n checked: previewActive(target()), disabled: !props.canOpenFile, onSelect: () => togglePreview(target()),\n }]} />\n </div>\n }}</For>\n </div>\n </>}</Show>\n </Show>\n <Show when={loading()}><p class=\"p-3 text-xs text-secondary\" role=\"status\">{props.t(\"instanceInfo.loading\")}</p></Show>\n </div>\n <div class=\"git-panel-body\" style={{ display: props.gitAvailable && props.mode === \"changes\" ? undefined : \"none\" }}>\n <DragDropProvider collisionDetector={closestCenter} onDragEnd={handleStageDragEnd}>\n <DragDropSensors>\n <Show when={items().length === 0}><p class=\"p-3 text-xs text-secondary\">{props.git.gitStatusLoading() ? props.t(\"instanceInfo.loading\") : props.t(\"instanceShell.gitChanges.empty\")}</p></Show>\n <For each={[\"staged\", \"unstaged\"] as const}>{section =>\n <ChangeSection t={props.t} section={section} items={items().filter(item => item.section === section)}\n git={props.git} canOpenFile={props.canOpenFile} onOpenFile={togglePreview} previewActive={previewActive}>\n <Show when={section === \"staged\"}>\n <div class=\"git-change-commit-box\" role=\"group\" aria-label={props.t(\"gitPanel.actions\")}>\n <For each={[\"staged\", \"unstaged\"] as const}>{actionSection => {\n const targets = createMemo(() => props.git.gitActionItems().filter(item => item.section === actionSection))\n const action = actionSection === \"staged\" ? \"unstage\" : \"stage\"\n return <Show when={targets().length > 0}><button class=\"git-panel-more\" title={targets().map(item => item.path).join(\"\\n\")} onClick={() => {\n const item = targets()[0]\n if (item) actionSection === \"staged\" ? props.git.unstageGitFile(item) : props.git.stageGitFile(item)\n }}>{targets().length > 1\n ? props.t(`instanceShell.gitChanges.actions.${action}Selected`, { count: targets().length })\n : `${props.t(`instanceShell.gitChanges.actions.${action}`)} · ${targets()[0]?.path ?? \"\"}`}</button></Show>\n }}</For>\n <div class=\"git-change-commit-input-wrap\">\n <textarea class=\"git-change-commit-input\" rows={1} aria-label={props.t(\"instanceShell.gitChanges.commit.placeholder\")} placeholder={props.t(\"instanceShell.gitChanges.commit.placeholder\")} value={props.git.gitCommitMessage()} onInput={event => props.git.setGitCommitMessage(event.currentTarget.value)} />\n <button type=\"button\" class=\"git-change-commit-button git-change-commit-button-overlay\" disabled={!props.git.gitCommitMessage().trim() || !items().some(item => item.section === \"staged\") || props.git.gitCommitSubmitting()} onClick={() => void props.git.submitGitCommit()}>{props.t(props.git.gitCommitSubmitting() ? \"instanceShell.gitChanges.commit.submitting\" : \"instanceShell.gitChanges.commit.submit\")}</button>\n </div>\n </div>\n </Show>\n </ChangeSection>\n }</For>\n </DragDropSensors>\n </DragDropProvider>\n </div>\n </section>\n}\n\nconst ChangeSection: Component<{\n t: (key: string, vars?: Record<string, any>) => string\n section: GitChangeSection\n items: GitChangeListItem[]\n git: ReturnType<typeof useGitChanges>\n canOpenFile: boolean\n onOpenFile: FilesPanelProps[\"onOpenFile\"]\n previewActive: (file: Parameters<FilesPanelProps[\"onOpenFile\"]>[0]) => boolean\n children?: JSX.Element\n}> = sectionProps => {\n const droppable = createDroppable(sectionProps.section)\n const [open, setOpen] = createSignal(true)\n const contentId = createUniqueId()\n return <div ref={droppable} class=\"git-drop-zone git-change-section\" classList={{ \"git-drop-active\": droppable.isActiveDroppable }}>\n <button type=\"button\" class=\"git-change-section-header\" aria-expanded={open()} aria-controls={contentId} onClick={() => setOpen(value => !value)}>\n <span class=\"git-change-section-header-main\">\n <span class=\"git-change-section-chevron disclosure-chevron\"><ChevronRight class=\"w-3.5 h-3.5\" aria-hidden=\"true\" /></span>\n <span class=\"git-change-section-title\">{sectionProps.t(`instanceShell.gitChanges.sections.${sectionProps.section}`)}</span>\n </span>\n <span class=\"git-change-section-count\">{sectionProps.items.length}</span>\n </button>\n <div id={contentId} hidden={!open()}>\n {sectionProps.children}\n <For each={sectionProps.items}>{item => <GitChangeRow t={sectionProps.t} item={item} git={sectionProps.git}\n canOpenFile={sectionProps.canOpenFile} onOpenFile={sectionProps.onOpenFile} previewActive={sectionProps.previewActive} />}</For>\n </div>\n </div>\n}\n\nconst GitChangeRow: Component<{\n t: (key: string, vars?: Record<string, any>) => string\n item: GitChangeListItem\n git: ReturnType<typeof useGitChanges>\n canOpenFile: boolean\n onOpenFile: FilesPanelProps[\"onOpenFile\"]\n previewActive: (file: Parameters<FilesPanelProps[\"onOpenFile\"]>[0]) => boolean\n}> = rowProps => {\n const draggable = createDraggable(rowProps.item.id)\n const staged = () => rowProps.item.section === \"staged\"\n const toggleStage = () => {\n if (staged()) rowProps.git.unstageGitFile(rowProps.item)\n else rowProps.git.stageGitFile(rowProps.item)\n }\n const stageLabel = () => rowProps.t(staged() ? \"instanceShell.gitChanges.actions.unstage\" : \"instanceShell.gitChanges.actions.stage\")\n const target = () => ({ path: rowProps.item.path, originalPath: rowProps.item.originalPath, scope: rowProps.item.section })\n // Keep action identities stable when another reader opens. Recreating every\n // icon/menu for a preview-state change stalls large inventories, even hidden.\n const actions: ActionOverflowMenuItem[] = [\n { key: \"preview\", get label() { return `${rowProps.t(\"filesPanel.viewer\")} · ${rowProps.item.path}` }, icon: <Eye size={14} />,\n get checked() { return rowProps.previewActive(target()) }, get disabled() { return !rowProps.canOpenFile }, onSelect: () => rowProps.onOpenFile(target()) },\n { key: \"stage\", get label() { return `${stageLabel()} · ${rowProps.item.path}` },\n icon: <Show when={staged()} fallback={<Plus size={14} />}><Minus size={14} /></Show>, onSelect: toggleStage },\n ]\n return <div ref={draggable} class=\"git-panel-file-row\" classList={{ \"git-panel-file-selected\": rowProps.git.gitActionItems().some(selected => selected.id === rowProps.item.id) }} style={transformStyle(draggable.transform)}>\n <button class=\"git-panel-file git-panel-file-main\" aria-pressed={rowProps.git.gitActionItems().some(selected => selected.id === rowProps.item.id)} aria-current={rowProps.git.gitSelectedItemId() === rowProps.item.id ? \"true\" : undefined} title={rowProps.item.path} disabled={!rowProps.canOpenFile} onClick={event => {\n rowProps.git.handleGitRowClick(rowProps.item, event)\n }}><span class=\"git-file-status\">{rowProps.item.status.slice(0, 1).toUpperCase()}</span><span>{rowProps.item.path}</span><small><b class=\"file-list-item-additions\">+{rowProps.item.additions}</b> <b class=\"file-list-item-deletions\">−{rowProps.item.deletions}</b></small></button>\n <FileRowActions label={rowProps.t(\"instanceShell.filesShell.actions.more\", { name: rowProps.item.path })} items={actions} />\n </div>\n}\nexport default FilesPanel\n"],"names":["iconNode","d","key","points","FileCode","props","_$createComponent","Icon","_$mergeProps","name","x1","x2","y1","y2","FileText","cx","cy","r","GitCommitHorizontal","width","height","x","y","rx","ry","Image","px","value","pendingMeasurements","scheduledFrame","scheduleMeasurement","measure","pending","updates","read","update","rowContentWidth","element","style","widths","child","_a","range","visible","stacked","a","b","observeRowOverflow","row","disposed","menu","inline","required","available","next","active","hadActionFocus","target","schedule","resize","mutation","onCleanup","FileRowActions","onMount","toggles","items","filter","item","checked","secondary","button","_el$","_tmpl$","$$click","onSelect","_$insert","icon","_$effect","_p$","_v$","_v$2","label","_v$3","_v$4","_v$5","disabled","e","classList","toggle","t","_$setAttribute","o","i","undefined","_el$2","_tmpl$2","_el$3","firstChild","_el$4","nextSibling","$$pointerdown","event","stopPropagation","_ref$","_$use","For","each","children","ActionOverflowMenu","triggerClass","_$delegateEvents","WorkspaceTree","test","File","root","tabStop","createMemo","tree","rows","some","path","state","selected","focusRow","querySelector","CSS","escape","focus","activateRow","select","type","keyDown","currentTarget","index","findIndex","entry","rtl","document","documentElement","dir","Math","min","length","max","expanded","has","parent","preventDefault","handleCopyPath","ok","copyToClipboard","showToastNotification","message","variant","handleNativeOpen","openWorkspacePath","instanceId","worktreeSlug","error","Error","String","rowActions","push","Eye","canOpen","previewPath","onOpen","canOpenWorkspacePaths","isMacApp","isMacDesktop","toLowerCase","endsWith","FolderOpen","TerminalSquare","isWindowsDesktop","open","edit","choose","windowsDefaultAction","ExternalLink","Copy","size","directory","replace","split","pop","isFolder","_el$6","_tmpl$3","_el$7","$$keydown","addEventListener","Show","when","fallback","_tmpl$4","ChevronRight","ChevronDown","Folder","busy","RefreshCw","depth","_v$6","_v$7","_v$8","_v$9","_v$0","n","_$setStyleProperty","s","h","errors","_el$9","_tmpl$5","_el$0","_el$1","load","_el$5","navigator","userAgent","safeWindowsOpenExtensions","Set","windowsEditExtensions","dot","lastIndexOf","extension","slice","FilesPanel","buildGitChangeListItems","git","gitStatusEntries","setFilter","createSignal","selectedCommitFile","setSelectedCommitFile","previewActive","file","getFilePreview","Boolean","slug","kind","commit","scope","togglePreview","closeFilePreview","onOpenFile","historyBody","historyScroll","selectCommit","id","scrollTop","history","backToCommits","back","requestAnimationFrame","isConnected","commits","page","subject","author","includes","handleStageDragEnd","draggable","droppable","find","section","stageGitFile","unstageGitFile","loading","mode","detailLoading","gitStatusLoading","gitAvailable","gitStatusError","basename","date","Date","toLocaleDateString","lang","month","day","_tmpl$9","_el$8","_el$10","_el$14","_el$18","_el$19","_el$20","_el$25","GitBranch","_c$","_$memo","branch","refresh","refreshGitStatus","gitInit","recheck","onWorktreeChange","worktrees","_el$27","_c$3","onModeChange","_el$11","count","_el$12","canOpenFile","_el$13","_el$15","_el$16","_el$17","initialize","$$input","_el$28","_tmpl$1","_el$29","_el$30","_el$32","_el$33","_el$34","_el$35","refs","_el$31","_tmpl$0","_el$21","hasMore","_el$22","_tmpl$6","_el$23","_tmpl$7","ArrowLeft","details","_el$36","_tmpl$10","_el$37","_el$38","_el$39","files","_el$40","_tmpl$11","_el$41","_tmpl$12","_el$42","_el$43","_el$44","status","_v$17","_v$18","originalPath","_v$19","_$className","_el$24","_tmpl$8","DragDropProvider","collisionDetector","closestCenter","onDragEnd","DragDropSensors","_el$26","_c$2","ChangeSection","_el$45","_tmpl$13","_el$46","_el$47","_el$48","actionSection","targets","gitActionItems","action","_el$49","_c$4","map","join","setGitCommitMessage","submitGitCommit","gitCommitSubmitting","_v$20","_v$21","_v$22","_v$23","gitCommitMessage","trim","_v$1","_v$10","_v$11","_v$12","_v$13","_v$14","_v$15","_v$16","l","u","c","w","m","sectionProps","createDroppable","setOpen","contentId","createUniqueId","_el$50","_tmpl$14","_el$51","_el$52","_el$53","_el$54","_el$55","_el$56","GitChangeRow","_v$24","isActiveDroppable","_v$25","_v$26","hidden","rowProps","createDraggable","staged","toggleStage","stageLabel","actions","Plus","Minus","_el$57","_tmpl$15","_el$58","_el$59","_el$60","_el$61","_el$62","_el$64","_el$65","handleGitRowClick","toUpperCase","additions","deletions","_v$27","_v$28","transformStyle","transform","_v$29","_v$30","gitSelectedItemId","_v$31","_v$32","_$style"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|
|
1
|
+
{"version":3,"file":"FilesPanel-BhtD393e.js","sources":["../../../../../../node_modules/lucide-solid/dist/source/icons/file-code.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/file-text.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/git-commit-horizontal.jsx","../../../../../../node_modules/lucide-solid/dist/source/icons/image.jsx","../../../components/instance/shell/right-panel/row-compact-actions.ts","../../../components/instance/shell/right-panel/FileRowActions.tsx","../../../components/instance/shell/right-panel/components/WorkspaceTree.tsx","../../../components/instance/shell/right-panel/tabs/FilesPanel.tsx"],"sourcesContent":["import Icon from '../Icon';\nconst iconNode = [\n [\n 'path',\n { d: 'M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z', key: '1nnpy2' },\n ],\n ['polyline', { points: '14 2 14 8 20 8', key: '1ew0cm' }],\n ['path', { d: 'm10 13-2 2 2 2', key: '17smn8' }],\n ['path', { d: 'm14 17 2-2-2-2', key: '14mezr' }],\n];\nconst FileCode = (props) => <Icon {...props} name=\"FileCode\" iconNode={iconNode}/>;\nexport default FileCode;\n","import Icon from '../Icon';\nconst iconNode = [\n [\n 'path',\n { d: 'M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z', key: '1nnpy2' },\n ],\n ['polyline', { points: '14 2 14 8 20 8', key: '1ew0cm' }],\n ['line', { x1: '16', x2: '8', y1: '13', y2: '13', key: '14keom' }],\n ['line', { x1: '16', x2: '8', y1: '17', y2: '17', key: '17nazh' }],\n ['line', { x1: '10', x2: '8', y1: '9', y2: '9', key: '1a5vjj' }],\n];\nconst FileText = (props) => <Icon {...props} name=\"FileText\" iconNode={iconNode}/>;\nexport default FileText;\n","import Icon from '../Icon';\nconst iconNode = [\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n ['line', { x1: '3', x2: '9', y1: '12', y2: '12', key: '1dyftd' }],\n ['line', { x1: '15', x2: '21', y1: '12', y2: '12', key: 'oup4p8' }],\n];\nconst GitCommitHorizontal = (props) => (<Icon {...props} name=\"GitCommitHorizontal\" iconNode={iconNode}/>);\nexport default GitCommitHorizontal;\n","import Icon from '../Icon';\nconst iconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2', key: '1m3agn' }],\n ['circle', { cx: '9', cy: '9', r: '2', key: 'af1f0g' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21', key: '1xmnt7' }],\n];\nconst Image = (props) => <Icon {...props} name=\"Image\" iconNode={iconNode}/>;\nexport default Image;\n","import { onCleanup } from \"solid-js\"\n\nconst px = (value: string) => Number.parseFloat(value) || 0\n\ntype Measurement = () => (() => void) | undefined\nconst pendingMeasurements = new Set<Measurement>()\nlet scheduledFrame = 0\nfunction scheduleMeasurement(measure: Measurement) {\n pendingMeasurements.add(measure)\n if (scheduledFrame) return\n scheduledFrame = requestAnimationFrame(() => {\n scheduledFrame = 0\n const pending = [...pendingMeasurements]\n pendingMeasurements.clear()\n // Read every row before changing any DOM. Per-row read/write callbacks\n // repeatedly laid out the entire inventory when thousands of files mounted.\n const updates = pending.map(read => read())\n for (const update of updates) update?.()\n })\n}\n\n// Width of the row content ignoring the overflow trigger, so hidden inline\n// actions stay measurable. Text nodes are measured with a Range because the\n// label truncates with ellipsis.\nfunction rowContentWidth(element: Element): number {\n if (element.matches(\".action-overflow-trigger\")) return 0\n const style = getComputedStyle(element)\n if (style.display === \"none\") return 0\n if (element instanceof SVGElement || element.matches(\"button:not(.git-panel-file-main), .workspace-tree-spacer\")) {\n return element.getBoundingClientRect().width\n }\n const widths: number[] = []\n for (const child of element.childNodes) {\n if (child instanceof Element) widths.push(rowContentWidth(child))\n else if (child.nodeType === Node.TEXT_NODE && child.textContent?.trim()) {\n const range = document.createRange()\n range.selectNode(child)\n widths.push(range.getBoundingClientRect().width)\n }\n }\n const visible = widths.filter((width) => width > 0)\n const stacked = style.flexDirection === \"column\"\n return (stacked ? Math.max(0, ...visible) : visible.reduce((a, b) => a + b, 0))\n + (stacked ? 0 : Math.max(0, visible.length - 1) * px(style.columnGap))\n + px(style.paddingLeft) + px(style.paddingRight) + px(style.borderLeftWidth) + px(style.borderRightWidth)\n}\n\n// Toggle data-compact on a file row: inline icon buttons while they fit, the\n// shared overflow menu only when they don't. An open menu stays mounted\n// across resizes; hidden actions stay measurable but inert.\nexport function observeRowOverflow(element: HTMLElement) {\n const row = element.parentElement\n if (!row) return\n let disposed = false\n const measure = () => {\n if (disposed || !element.isConnected || !row.getBoundingClientRect().width) return\n const menu = element.querySelector<HTMLButtonElement>(\".action-overflow-trigger\")\n const inline = element.querySelector<HTMLElement>(\".file-row-inline-actions\")\n if (!menu || !inline) return\n // Budget against the entire row, not the shrink-wrapped action group.\n // The menu replaces inline actions; it must not add to their width budget.\n const required = rowContentWidth(row)\n const available = row.getBoundingClientRect().width\n const next = menu.hasAttribute(\"data-expanded\") || required > available + 0.5\n if (element.dataset.compact === String(next)) return\n const active = document.activeElement\n const hadActionFocus = active instanceof Element && element.contains(active)\n && active.matches(\".file-row-inline-actions button, .action-overflow-trigger\")\n return () => {\n if (disposed || !element.isConnected) return\n element.dataset.compact = String(next)\n inline.inert = next\n if (hadActionFocus) queueMicrotask(() => {\n if (disposed || !element.isConnected) return\n const target = next ? menu : element.querySelector<HTMLButtonElement>(\".file-row-inline-actions button:not(:disabled)\")\n target?.focus({ preventScroll: true })\n })\n }\n }\n const schedule = () => { if (!disposed) scheduleMeasurement(measure) }\n const resize = new ResizeObserver(schedule)\n resize.observe(row)\n resize.observe(element)\n const mutation = new MutationObserver(schedule)\n mutation.observe(row, { subtree: true, childList: true, characterData: true, attributes: true, attributeFilter: [\"data-expanded\"] })\n document.fonts?.addEventListener(\"loadingdone\", schedule)\n schedule()\n onCleanup(() => {\n disposed = true\n pendingMeasurements.delete(measure)\n if (!pendingMeasurements.size) { cancelAnimationFrame(scheduledFrame); scheduledFrame = 0 }\n resize.disconnect()\n mutation.disconnect()\n document.fonts?.removeEventListener(\"loadingdone\", schedule)\n })\n}\n","import type { Component } from \"solid-js\"\nimport { For, onMount } from \"solid-js\"\nimport ActionOverflowMenu, { type ActionOverflowMenuItem } from \"../../../action-overflow-menu\"\nimport { observeRowOverflow } from \"./row-compact-actions\"\n\n// File row actions with the message/session convention: inline icon buttons\n// while they fit, the shared overflow menu only when they don't. Hidden\n// actions stay measurable but inert; an open menu stays mounted.\nconst FileRowActions: Component<{ items: ActionOverflowMenuItem[]; label: string }> = props => {\n let element!: HTMLSpanElement\n onMount(() => observeRowOverflow(element))\n // Preview toggles remain directly reachable; only secondary actions overflow.\n const toggles = () => props.items.filter(item => typeof item.checked === \"boolean\")\n const secondary = () => props.items.filter(item => typeof item.checked !== \"boolean\")\n const button = (item: ActionOverflowMenuItem) => <button type=\"button\" class=\"file-row-icon-button\"\n classList={{ \"icon-toggle\": typeof item.checked === \"boolean\" }} title={item.label} aria-label={item.label} aria-pressed={item.checked}\n disabled={item.disabled} onClick={() => void item.onSelect()}>{item.icon}</button>\n return <span class=\"file-row-actions\" data-compact=\"false\" ref={element}\n onClick={event => event.stopPropagation()} onPointerDown={event => event.stopPropagation()}>\n <span class=\"file-row-pinned-actions\"><For each={toggles()}>{button}</For></span>\n <span class=\"file-row-inline-actions\">\n <For each={secondary()}>{button}</For>\n </span>\n <ActionOverflowMenu items={secondary()} label={props.label} triggerClass=\"file-row-icon-button action-overflow-trigger\" />\n </span>\n}\n\nexport default FileRowActions\n","import { For, Show, createMemo } from \"solid-js\"\nimport { ChevronDown, ChevronRight, Copy, ExternalLink, Eye, Folder, FolderOpen, FileCode, FileText, Image, File, RefreshCw, TerminalSquare } from \"lucide-solid\"\nimport type { useWorkspaceTree } from \"../useWorkspaceTree\"\nimport type { ActionOverflowMenuItem } from \"../../../../action-overflow-menu\"\nimport FileRowActions from \"../FileRowActions\"\nimport { copyToClipboard } from \"../../../../../lib/clipboard\"\nimport { showToastNotification } from \"../../../../../lib/notifications\"\nimport { canOpenWorkspacePaths, openWorkspacePath } from \"../../../../../lib/workspace-open\"\n\nexport function WorkspaceTree(props: {\n tree: ReturnType<typeof useWorkspaceTree>\n t: (key: string, vars?: Record<string, any>) => string\n directory: string\n instanceId: string\n worktreeSlug: string\n canOpen: boolean\n previewPath?: string\n onOpen: (path: string) => void\n}) {\n const icon = (name: string) => /\\.(png|jpe?g|gif|webp|svg|ico|bmp|avif)$/i.test(name) ? Image\n : /\\.(md|mdx|txt|rst)$/i.test(name) ? FileText\n : /\\.(tsx?|jsx?|json|ya?ml|css|html|py|rs|sh)$/i.test(name) ? FileCode : File\n let root!: HTMLDivElement\n const tabStop = createMemo(() => props.tree.rows().some(row => row.path === props.tree.state().selected)\n ? props.tree.state().selected : props.tree.rows()[0]?.path)\n const focusRow = (path: string) => root.querySelector<HTMLElement>(`[data-path=\"${CSS.escape(path)}\"]`)?.focus()\n const activateRow = (row: ReturnType<typeof props.tree.rows>[number]) => {\n props.tree.select(row.path)\n if (row.type === \"directory\") props.tree.toggle(row.path)\n }\n function keyDown(event: KeyboardEvent, row: ReturnType<typeof props.tree.rows>[number]) {\n // The row menu trigger is a separate tab stop; its keys must not toggle the row.\n if (event.target !== event.currentTarget) return\n const rows = props.tree.rows(), index = rows.findIndex(entry => entry.path === row.path)\n const rtl = document.documentElement.dir === \"rtl\"\n if (event.key === \"ArrowDown\") focusRow(rows[Math.min(index + 1, rows.length - 1)]!.path)\n else if (event.key === \"ArrowUp\") focusRow(rows[Math.max(index - 1, 0)]!.path)\n else if (event.key === \"Home\") focusRow(rows[0]!.path)\n else if (event.key === \"End\") focusRow(rows[rows.length - 1]!.path)\n else if (event.key === (rtl ? \"ArrowLeft\" : \"ArrowRight\") && row.type === \"directory\") {\n if (!props.tree.state().expanded.has(row.path)) props.tree.toggle(row.path)\n else if (rows[index + 1]?.parent === row.path) focusRow(rows[index + 1]!.path)\n } else if (event.key === (rtl ? \"ArrowRight\" : \"ArrowLeft\")) {\n if (row.type === \"directory\" && props.tree.state().expanded.has(row.path)) props.tree.toggle(row.path)\n else focusRow(row.parent)\n } else if (event.key === \"Enter\" || event.key === \" \") {\n activateRow(row)\n } else return\n event.preventDefault()\n }\n\n const handleCopyPath = async (path: string) => {\n const ok = await copyToClipboard(path)\n showToastNotification({\n message: ok ? props.t(\"instanceShell.filesShell.toast.copyPathSuccess\") : props.t(\"instanceShell.filesShell.toast.copyPathError\"),\n variant: ok ? \"success\" : \"error\",\n })\n }\n\n const handleNativeOpen = async (target: \"default\" | \"reveal\" | \"terminal\", path: string) => {\n try {\n await openWorkspacePath({ target, instanceId: props.instanceId, worktreeSlug: props.worktreeSlug, path })\n } catch (error) {\n showToastNotification({\n message: props.t(\"instanceShell.filesShell.toast.openError\", {\n message: error instanceof Error ? error.message : String(error),\n }),\n variant: \"error\",\n })\n }\n }\n\n const rowActions = (row: ReturnType<typeof props.tree.rows>[number]): ActionOverflowMenuItem[] => {\n const items: ActionOverflowMenuItem[] = []\n if (row.type === \"file\") items.push({\n key: \"preview\", label: `${props.t(\"filesPanel.viewer\")} · ${row.path}`,\n icon: <Eye class=\"w-3.5 h-3.5\" />, disabled: !props.canOpen,\n checked: props.previewPath === row.path, onSelect: () => props.onOpen(row.path),\n })\n if (canOpenWorkspacePaths()) {\n if (row.type === \"directory\") {\n const isMacApp = isMacDesktop && row.path.toLowerCase().endsWith(\".app\")\n items.push(\n {\n key: \"open-folder\",\n label: props.t(isMacApp\n ? \"instanceShell.filesShell.actions.showInFolder\"\n : \"instanceShell.filesShell.actions.openFolder\"),\n icon: <FolderOpen class=\"w-3.5 h-3.5\" />,\n onSelect: () => handleNativeOpen(isMacApp ? \"reveal\" : \"default\", row.path),\n },\n {\n key: \"open-terminal\",\n label: props.t(\"instanceShell.filesShell.actions.openTerminal\"),\n icon: <TerminalSquare class=\"w-3.5 h-3.5\" />,\n onSelect: () => handleNativeOpen(\"terminal\", row.path),\n },\n )\n } else {\n if (isWindowsDesktop) {\n items.push({\n key: \"open-default\",\n label: props.t({\n open: \"instanceShell.filesShell.actions.openDefault\",\n edit: \"instanceShell.filesShell.actions.editDefault\",\n choose: \"instanceShell.filesShell.actions.chooseApplication\",\n }[windowsDefaultAction(row.path)]),\n icon: <ExternalLink class=\"w-3.5 h-3.5\" />,\n onSelect: () => handleNativeOpen(\"default\", row.path),\n })\n }\n items.push({\n key: \"show-in-folder\",\n label: props.t(\"instanceShell.filesShell.actions.showInFolder\"),\n icon: <FolderOpen class=\"w-3.5 h-3.5\" />,\n onSelect: () => handleNativeOpen(\"reveal\", row.path),\n })\n }\n }\n items.push({\n key: \"copy-path\",\n label: props.t(\"instanceShell.filesShell.actions.copyPath\"),\n icon: <Copy class=\"w-3.5 h-3.5\" />,\n onSelect: () => handleCopyPath(row.path),\n })\n return items\n }\n\n return <div class=\"workspace-tree\">\n <div class=\"workspace-tree-root\" title={props.directory}><FolderOpen size={15} /><strong>{props.directory.replace(/\\\\/g, \"/\").split(\"/\").pop()}</strong></div>\n <div ref={root} role=\"tree\" aria-label={props.t(\"filesPanel.workspace\")}>\n <For each={props.tree.rows()}>{row => {\n const isFolder = row.type === \"directory\", Icon = icon(row.name)\n const expanded = () => props.tree.state().expanded.has(row.path)\n return <div role=\"treeitem\" data-path={row.path} aria-label={row.name} aria-level={row.depth}\n aria-expanded={isFolder ? expanded() : undefined} aria-selected={props.tree.state().selected === row.path}\n class=\"workspace-tree-row\" style={{ \"padding-inline-start\": `${8 + row.depth * 14}px` }} title={row.path}\n tabIndex={tabStop() === row.path ? 0 : -1}\n onFocus={() => props.tree.select(row.path)} onKeyDown={event => keyDown(event, row)}\n onClick={() => activateRow(row)}>\n <Show when={isFolder} fallback={<span class=\"workspace-tree-spacer\" />}>\n <Show when={expanded()} fallback={<ChevronRight size={12} />}><ChevronDown size={12} /></Show>\n </Show>\n <Show when={isFolder} fallback={<Icon size={14} />}><Show when={expanded()} fallback={<Folder size={14} />}><FolderOpen size={14} /></Show></Show>\n <span class=\"workspace-tree-label\">{row.name}</span><Show when={props.tree.busy().has(row.path)}><RefreshCw size={12} class=\"animate-spin\" /></Show>\n <FileRowActions items={rowActions(row)} label={props.t(\"instanceShell.filesShell.actions.more\", { name: row.name })} />\n </div>\n }}</For>\n </div>\n <For each={[...props.tree.errors()]}>{([path, error]) => <div class=\"p-3 text-xs text-error\" role=\"alert\">{path}: {error}\n <button onClick={() => void props.tree.load(path, true)}>{props.t(\"instanceShell.rightPanel.actions.refresh\")}</button></div>}</For>\n <Show when={props.tree.busy().has(\".\")}><p class=\"p-3 text-xs text-secondary\" role=\"status\">{props.t(\"instanceInfo.loading\")}</p></Show>\n </div>\n}\n\nconst isWindowsDesktop = typeof navigator !== \"undefined\" && /windows/i.test(navigator.userAgent)\nconst isMacDesktop = typeof navigator !== \"undefined\" && /macintosh|mac os x/i.test(navigator.userAgent)\nconst safeWindowsOpenExtensions = new Set([\n \"7z\", \"avi\", \"bmp\", \"c\", \"cc\", \"cfg\", \"conf\", \"cpp\", \"cs\", \"css\", \"csv\", \"dart\", \"diff\", \"docx\",\n \"env\", \"flac\", \"fs\", \"fsx\", \"gif\", \"go\", \"gz\", \"h\", \"hpp\", \"htm\", \"html\", \"ini\", \"java\", \"jpeg\", \"jpg\",\n \"json\", \"jsonc\", \"jsx\", \"kt\", \"kts\", \"less\", \"lock\", \"log\", \"lua\", \"md\", \"markdown\", \"mkv\", \"mov\", \"mp3\",\n \"mp4\", \"ogg\", \"patch\", \"pdf\", \"png\", \"pptx\", \"r\", \"rar\", \"rmd\", \"rs\", \"scss\", \"sql\", \"svg\", \"svelte\",\n \"swift\", \"tar\", \"toml\", \"ts\", \"tsx\", \"txt\", \"vue\", \"wav\", \"webm\", \"webp\", \"xlsx\", \"xml\", \"yaml\", \"yml\", \"zip\",\n])\nconst windowsEditExtensions = new Set([\n \"bat\", \"cmd\", \"js\", \"jse\", \"pl\", \"ps1\", \"psd1\", \"psm1\", \"py\", \"pyw\", \"rb\", \"reg\", \"vbe\", \"vbs\", \"wsf\", \"wsh\",\n])\n\nfunction windowsDefaultAction(path: string): \"open\" | \"edit\" | \"choose\" {\n const name = path.split(/[\\\\/]/).pop() ?? \"\"\n const dot = name.lastIndexOf(\".\")\n const extension = dot > 0 ? name.slice(dot + 1).toLowerCase() : \"\"\n if (!isWindowsDesktop || (extension && safeWindowsOpenExtensions.has(extension))) return \"open\"\n if (extension && windowsEditExtensions.has(extension)) return \"edit\"\n return \"choose\"\n}\n","import { For, Show, createMemo, createSignal, createUniqueId, type Component, type JSX } from \"solid-js\"\nimport {\n DragDropProvider,\n DragDropSensors,\n closestCenter,\n createDraggable,\n createDroppable,\n transformStyle,\n type DragEvent as SolidDndDragEvent,\n} from \"@thisbeyond/solid-dnd\"\nimport { ArrowLeft, ChevronRight, Eye, GitBranch, GitCommitHorizontal, Minus, Plus, RefreshCw } from \"lucide-solid\"\nimport type { useGitChanges } from \"../useGitChanges\"\nimport type { useGitHistory } from \"../useGitHistory\"\nimport type { useGitInit } from \"../useGitInit\"\nimport { closeFilePreview, getFilePreview, type FilePreviewTarget } from \"../../../../../stores/files-preview\"\nimport FileRowActions from \"../FileRowActions\"\nimport type { ActionOverflowMenuItem } from \"../../../../action-overflow-menu\"\nimport { buildGitChangeListItems } from \"../git-changes-model\"\nimport type { GitChangeListItem, GitChangeSection } from \"../types\"\nimport type { useWorkspaceTree } from \"../useWorkspaceTree\"\nimport { WorkspaceTree } from \"../components/WorkspaceTree\"\nimport type { FilesPanelMode } from \"../files-panel-state\"\n\ninterface FilesPanelProps {\n t: (key: string, vars?: Record<string, any>) => string\n git: ReturnType<typeof useGitChanges>\n history: ReturnType<typeof useGitHistory>\n tree: ReturnType<typeof useWorkspaceTree>\n /** False only for a known non-repository; Changes/Commits then offer Initialize Git. */\n gitAvailable: boolean\n gitInit: ReturnType<typeof useGitInit>\n mode: FilesPanelMode\n onModeChange: (mode: FilesPanelMode) => void\n worktrees: Array<{ slug: string; directory: string; branch?: string | null }>\n slug: string\n directory: string\n instanceId: string\n branch: string | null\n onWorktreeChange: (slug: string) => void\n onOpenFile: (file: Pick<FilePreviewTarget, \"kind\" | \"path\" | \"originalPath\" | \"scope\" | \"commit\" | \"subject\">) => void\n canOpenFile: boolean\n}\n\nconst FilesPanel: Component<FilesPanelProps> = props => {\n const items = createMemo(() => buildGitChangeListItems(props.git.gitStatusEntries()))\n const [filter, setFilter] = createSignal(\"\")\n const [selectedCommitFile, setSelectedCommitFile] = createSignal(\"\")\n const previewActive = (file: Parameters<FilesPanelProps[\"onOpenFile\"]>[0]) => {\n const target = getFilePreview(props.instanceId)\n return Boolean(target && target.slug === props.slug && target.directory === props.directory && target.path === file.path\n && (target.kind ?? \"diff\") === (file.kind ?? \"diff\") && target.commit === file.commit && target.scope === file.scope)\n }\n const togglePreview: FilesPanelProps[\"onOpenFile\"] = file => {\n if (previewActive(file)) closeFilePreview(props.instanceId)\n else props.onOpenFile(file)\n }\n let historyBody: HTMLDivElement | undefined\n let historyScroll = 0\n const selectCommit = (id: string) => {\n historyScroll = historyBody?.scrollTop ?? 0\n void props.history.select(id)\n }\n const backToCommits = () => {\n props.history.back()\n requestAnimationFrame(() => { if (historyBody?.isConnected) historyBody.scrollTop = historyScroll })\n }\n const commits = createMemo(() => (props.history.page()?.commits ?? []).filter(commit =>\n `${commit.subject} ${commit.author} ${commit.id}`.toLowerCase().includes(filter().toLowerCase())))\n const handleStageDragEnd = ({ draggable, droppable }: SolidDndDragEvent) => {\n if (!droppable) return\n const target = String(droppable.id)\n if (target !== \"staged\" && target !== \"unstaged\") return\n const item = items().find(entry => entry.id === String(draggable.id))\n if (!item || item.section === target) return\n if (target === \"staged\") props.git.stageGitFile(item)\n else props.git.unstageGitFile(item)\n }\n const loading = () => props.mode === \"workspace\" ? props.tree.busy().size > 0 : props.mode === \"history\" ? props.history.loading() || props.history.detailLoading() : props.git.gitStatusLoading()\n const error = () => props.mode === \"workspace\" || !props.gitAvailable ? null : props.mode === \"history\" ? props.history.error() : props.git.gitStatusError()\n const basename = (path: string) => path.replace(/\\\\/g, \"/\").split(\"/\").pop() || path\n const date = (value: string) => new Date(value).toLocaleDateString(document.documentElement.lang || undefined, { month: \"short\", day: \"numeric\" })\n\n return <section class=\"git-panel\" aria-label={props.t(\"instanceShell.rightPanel.tabs.files\")}>\n <header class=\"git-panel-context\">\n <div class=\"git-panel-branch\"><GitBranch size={16} /><strong>{props.gitAvailable ? props.branch || props.t(\"gitPanel.detached\") : basename(props.directory)}</strong>\n <button class=\"files-header-icon-button\" aria-label={props.t(\"instanceShell.rightPanel.actions.refresh\")} disabled={loading()} onClick={() => {\n if (props.mode === \"workspace\") props.tree.refresh()\n else if (!props.gitAvailable) void props.gitInit.recheck()\n else if (props.mode === \"history\") void props.history.refresh()\n else void props.git.refreshGitStatus()\n }}><RefreshCw size={14} class={loading() ? \"animate-spin\" : \"\"} /></button>\n </div>\n <select class=\"git-panel-worktree\" value={props.slug} aria-label={props.t(\"gitPanel.worktree\")} title={props.directory}\n onChange={event => props.onWorktreeChange(event.currentTarget.value)}>\n <Show when={!props.worktrees.some(tree => tree.slug === props.slug)}><option value={props.slug}>{basename(props.directory)}</option></Show>\n <For each={props.worktrees}>{tree => <option value={tree.slug}>{basename(tree.directory)}{props.gitAvailable ? ` · ${tree.branch || props.t(\"gitPanel.detached\")}` : \"\"}</option>}</For>\n </select>\n </header>\n <div class=\"git-panel-tools\">\n <div class=\"git-panel-switch\" role=\"group\" aria-label={props.t(\"instanceShell.rightPanel.tabs.files\")}>\n <button aria-pressed={props.mode === \"workspace\"} onClick={() => props.onModeChange(\"workspace\")}>{props.t(\"filesPanel.workspace\")}</button>\n <button aria-pressed={props.mode === \"changes\"} onClick={() => props.onModeChange(\"changes\")}>{props.t(\"gitPanel.changes\")}</button>\n <button aria-pressed={props.mode === \"history\"} onClick={() => props.onModeChange(\"history\")}>{props.t(\"filesPanel.commits\")}</button>\n </div>\n <Show when={props.gitAvailable && props.mode === \"changes\" && props.git.gitStatusEntries()}>\n <span class=\"git-panel-count\">{props.t(\"gitPanel.files\", { count: props.git.gitStatusEntries()?.length ?? 0 })}</span>\n </Show>\n </div>\n <Show when={error()}><div role=\"alert\" class=\"p-3 text-error text-xs\">{error()}</div></Show>\n <Show when={!props.canOpenFile}><p class=\"p-3 text-xs text-secondary\">{props.t(\"instanceShell.gitChanges.noSessionSelected\")}</p></Show>\n <div class=\"git-panel-body\" style={{ display: props.mode === \"workspace\" ? undefined : \"none\" }}>\n <WorkspaceTree tree={props.tree} t={props.t} directory={props.directory} instanceId={props.instanceId} worktreeSlug={props.slug} canOpen={props.canOpenFile}\n previewPath={getFilePreview(props.instanceId)?.kind === \"workspace\" && getFilePreview(props.instanceId)?.slug === props.slug ? getFilePreview(props.instanceId)?.path : undefined}\n onOpen={path => togglePreview({ kind: \"workspace\", path })} />\n </div>\n <Show when={!props.gitAvailable && props.mode !== \"workspace\"}>\n <div class=\"git-init-empty\">\n <p>{props.t(\"filesPanel.gitInit.notRepository\")}</p>\n <button type=\"button\" class=\"git-change-commit-button git-init-button\" disabled={props.gitInit.pending()} aria-busy={props.gitInit.pending()}\n title={props.directory} onClick={() => void props.gitInit.initialize()}>\n <GitBranch size={14} aria-hidden=\"true\" />\n {props.t(props.gitInit.pending() ? \"filesPanel.gitInit.pending\" : \"filesPanel.gitInit.action\")}\n </button>\n </div>\n </Show>\n <div ref={historyBody} class=\"git-panel-body\" style={{ display: props.gitAvailable && props.mode === \"history\" ? undefined : \"none\" }}>\n <div style={{ display: props.history.selected() ? \"none\" : undefined }}>\n <input class=\"git-panel-filter\" aria-label={props.t(\"gitPanel.filter\")} placeholder={props.t(\"gitPanel.filter\")} value={filter()} onInput={event => setFilter(event.currentTarget.value)} />\n <For each={commits()}>{commit => <button class=\"git-history-row\" onClick={() => selectCommit(commit.id)}>\n <GitCommitHorizontal class=\"git-history-mark\" size={16} />\n <span class=\"git-history-row-content\"><strong>{commit.subject}</strong>\n <Show when={commit.refs}><span class=\"git-history-refs\" title={commit.refs}>{commit.refs}</span></Show>\n <span class=\"git-history-meta\"><span>{commit.author} · {date(commit.date)}</span><code>{commit.id.slice(0, 7)}</code></span>\n </span>\n </button>}</For>\n <Show when={!loading() && commits().length === 0}><p class=\"p-3 text-xs text-secondary\">{props.t(\"gitPanel.emptyHistory\")}</p></Show>\n <Show when={props.history.page()?.hasMore}><button class=\"git-panel-more\" disabled={loading()} onClick={() => void props.history.refresh(true)}>{props.t(\"gitPanel.more\")}</button></Show>\n </div>\n <Show when={props.history.selected()}>\n <button class=\"git-panel-back\" onClick={backToCommits}><ArrowLeft size={14} />{props.t(\"filesPanel.commits\")}</button>\n <Show when={props.history.details()}>{details => <>\n <div class=\"git-commit-summary\"><code>{details().id.slice(0, 8)}</code><p>{details().message}</p><span>{props.t(\"gitPanel.files\", { count: details().files.length })}</span></div>\n <div class=\"git-commit-files\">\n <For each={details().files}>{file => {\n const target = () => ({ path: file.path, commit: details().id, subject: details().message.split(\"\\n\")[0] })\n return <div class=\"git-panel-file-row\" classList={{ \"git-panel-file-selected\": selectedCommitFile() === `${details().id}:${file.path}` }}>\n <button class=\"git-panel-file git-panel-file-main\" title={file.originalPath ? `${file.originalPath} → ${file.path}` : file.path} onClick={() => setSelectedCommitFile(`${details().id}:${file.path}`)}>\n <span class={`git-file-status git-file-status-${file.status}`}>{file.status}</span><span>{file.path}</span>\n </button>\n <FileRowActions label={props.t(\"instanceShell.filesShell.actions.more\", { name: file.path })} items={[{\n key: \"preview\", label: `${props.t(\"filesPanel.viewer\")} · ${file.path}`, icon: <Eye size={14} />,\n checked: previewActive(target()), disabled: !props.canOpenFile, onSelect: () => togglePreview(target()),\n }]} />\n </div>\n }}</For>\n </div>\n </>}</Show>\n </Show>\n <Show when={loading()}><p class=\"p-3 text-xs text-secondary\" role=\"status\">{props.t(\"instanceInfo.loading\")}</p></Show>\n </div>\n <div class=\"git-panel-body\" style={{ display: props.gitAvailable && props.mode === \"changes\" ? undefined : \"none\" }}>\n <DragDropProvider collisionDetector={closestCenter} onDragEnd={handleStageDragEnd}>\n <DragDropSensors>\n <Show when={items().length === 0}><p class=\"p-3 text-xs text-secondary\">{props.git.gitStatusLoading() ? props.t(\"instanceInfo.loading\") : props.t(\"instanceShell.gitChanges.empty\")}</p></Show>\n <For each={[\"staged\", \"unstaged\"] as const}>{section =>\n <ChangeSection t={props.t} section={section} items={items().filter(item => item.section === section)}\n git={props.git} canOpenFile={props.canOpenFile} onOpenFile={togglePreview} previewActive={previewActive}>\n <Show when={section === \"staged\"}>\n <div class=\"git-change-commit-box\" role=\"group\" aria-label={props.t(\"gitPanel.actions\")}>\n <For each={[\"staged\", \"unstaged\"] as const}>{actionSection => {\n const targets = createMemo(() => props.git.gitActionItems().filter(item => item.section === actionSection))\n const action = actionSection === \"staged\" ? \"unstage\" : \"stage\"\n return <Show when={targets().length > 0}><button class=\"git-panel-more\" title={targets().map(item => item.path).join(\"\\n\")} onClick={() => {\n const item = targets()[0]\n if (item) actionSection === \"staged\" ? props.git.unstageGitFile(item) : props.git.stageGitFile(item)\n }}>{targets().length > 1\n ? props.t(`instanceShell.gitChanges.actions.${action}Selected`, { count: targets().length })\n : `${props.t(`instanceShell.gitChanges.actions.${action}`)} · ${targets()[0]?.path ?? \"\"}`}</button></Show>\n }}</For>\n <div class=\"git-change-commit-input-wrap\">\n <textarea class=\"git-change-commit-input\" rows={1} aria-label={props.t(\"instanceShell.gitChanges.commit.placeholder\")} placeholder={props.t(\"instanceShell.gitChanges.commit.placeholder\")} value={props.git.gitCommitMessage()} onInput={event => props.git.setGitCommitMessage(event.currentTarget.value)} />\n <button type=\"button\" class=\"git-change-commit-button git-change-commit-button-overlay\" disabled={!props.git.gitCommitMessage().trim() || !items().some(item => item.section === \"staged\") || props.git.gitCommitSubmitting()} onClick={() => void props.git.submitGitCommit()}>{props.t(props.git.gitCommitSubmitting() ? \"instanceShell.gitChanges.commit.submitting\" : \"instanceShell.gitChanges.commit.submit\")}</button>\n </div>\n </div>\n </Show>\n </ChangeSection>\n }</For>\n </DragDropSensors>\n </DragDropProvider>\n </div>\n </section>\n}\n\nconst ChangeSection: Component<{\n t: (key: string, vars?: Record<string, any>) => string\n section: GitChangeSection\n items: GitChangeListItem[]\n git: ReturnType<typeof useGitChanges>\n canOpenFile: boolean\n onOpenFile: FilesPanelProps[\"onOpenFile\"]\n previewActive: (file: Parameters<FilesPanelProps[\"onOpenFile\"]>[0]) => boolean\n children?: JSX.Element\n}> = sectionProps => {\n const droppable = createDroppable(sectionProps.section)\n const [open, setOpen] = createSignal(true)\n const contentId = createUniqueId()\n return <div ref={droppable} class=\"git-drop-zone git-change-section\" classList={{ \"git-drop-active\": droppable.isActiveDroppable }}>\n <button type=\"button\" class=\"git-change-section-header\" aria-expanded={open()} aria-controls={contentId} onClick={() => setOpen(value => !value)}>\n <span class=\"git-change-section-header-main\">\n <span class=\"git-change-section-chevron disclosure-chevron\"><ChevronRight class=\"w-3.5 h-3.5\" aria-hidden=\"true\" /></span>\n <span class=\"git-change-section-title\">{sectionProps.t(`instanceShell.gitChanges.sections.${sectionProps.section}`)}</span>\n </span>\n <span class=\"git-change-section-count\">{sectionProps.items.length}</span>\n </button>\n <div id={contentId} hidden={!open()}>\n {sectionProps.children}\n <For each={sectionProps.items}>{item => <GitChangeRow t={sectionProps.t} item={item} git={sectionProps.git}\n canOpenFile={sectionProps.canOpenFile} onOpenFile={sectionProps.onOpenFile} previewActive={sectionProps.previewActive} />}</For>\n </div>\n </div>\n}\n\nconst GitChangeRow: Component<{\n t: (key: string, vars?: Record<string, any>) => string\n item: GitChangeListItem\n git: ReturnType<typeof useGitChanges>\n canOpenFile: boolean\n onOpenFile: FilesPanelProps[\"onOpenFile\"]\n previewActive: (file: Parameters<FilesPanelProps[\"onOpenFile\"]>[0]) => boolean\n}> = rowProps => {\n const draggable = createDraggable(rowProps.item.id)\n const staged = () => rowProps.item.section === \"staged\"\n const toggleStage = () => {\n if (staged()) rowProps.git.unstageGitFile(rowProps.item)\n else rowProps.git.stageGitFile(rowProps.item)\n }\n const stageLabel = () => rowProps.t(staged() ? \"instanceShell.gitChanges.actions.unstage\" : \"instanceShell.gitChanges.actions.stage\")\n const target = () => ({ path: rowProps.item.path, originalPath: rowProps.item.originalPath, scope: rowProps.item.section })\n // Keep action identities stable when another reader opens. Recreating every\n // icon/menu for a preview-state change stalls large inventories, even hidden.\n const actions: ActionOverflowMenuItem[] = [\n { key: \"preview\", get label() { return `${rowProps.t(\"filesPanel.viewer\")} · ${rowProps.item.path}` }, icon: <Eye size={14} />,\n get checked() { return rowProps.previewActive(target()) }, get disabled() { return !rowProps.canOpenFile }, onSelect: () => rowProps.onOpenFile(target()) },\n { key: \"stage\", get label() { return `${stageLabel()} · ${rowProps.item.path}` },\n icon: <Show when={staged()} fallback={<Plus size={14} />}><Minus size={14} /></Show>, onSelect: toggleStage },\n ]\n return <div ref={draggable} class=\"git-panel-file-row\" classList={{ \"git-panel-file-selected\": rowProps.git.gitActionItems().some(selected => selected.id === rowProps.item.id) }} style={transformStyle(draggable.transform)}>\n <button class=\"git-panel-file git-panel-file-main\" aria-pressed={rowProps.git.gitActionItems().some(selected => selected.id === rowProps.item.id)} aria-current={rowProps.git.gitSelectedItemId() === rowProps.item.id ? \"true\" : undefined} title={rowProps.item.path} disabled={!rowProps.canOpenFile} onClick={event => {\n rowProps.git.handleGitRowClick(rowProps.item, event)\n }}><span class=\"git-file-status\">{rowProps.item.status.slice(0, 1).toUpperCase()}</span><span>{rowProps.item.path}</span><small><b class=\"file-list-item-additions\">+{rowProps.item.additions}</b> <b class=\"file-list-item-deletions\">−{rowProps.item.deletions}</b></small></button>\n <FileRowActions label={rowProps.t(\"instanceShell.filesShell.actions.more\", { name: rowProps.item.path })} items={actions} />\n </div>\n}\nexport default FilesPanel\n"],"names":["iconNode","d","key","points","FileCode","props","_$createComponent","Icon","_$mergeProps","name","x1","x2","y1","y2","FileText","cx","cy","r","GitCommitHorizontal","width","height","x","y","rx","ry","Image","px","value","pendingMeasurements","scheduledFrame","scheduleMeasurement","measure","pending","updates","read","update","rowContentWidth","element","style","widths","child","_a","range","visible","stacked","a","b","observeRowOverflow","row","disposed","menu","inline","required","available","next","active","hadActionFocus","target","schedule","resize","mutation","onCleanup","FileRowActions","onMount","toggles","items","filter","item","checked","secondary","button","_el$","_tmpl$","$$click","onSelect","_$insert","icon","_$effect","_p$","_v$","_v$2","label","_v$3","_v$4","_v$5","disabled","e","classList","toggle","t","_$setAttribute","o","i","undefined","_el$2","_tmpl$2","_el$3","firstChild","_el$4","nextSibling","$$pointerdown","event","stopPropagation","_ref$","_$use","For","each","children","ActionOverflowMenu","triggerClass","_$delegateEvents","WorkspaceTree","test","File","root","tabStop","createMemo","tree","rows","some","path","state","selected","focusRow","querySelector","CSS","escape","focus","activateRow","select","type","keyDown","currentTarget","index","findIndex","entry","rtl","document","documentElement","dir","Math","min","length","max","expanded","has","parent","preventDefault","handleCopyPath","ok","copyToClipboard","showToastNotification","message","variant","handleNativeOpen","openWorkspacePath","instanceId","worktreeSlug","error","Error","String","rowActions","push","Eye","canOpen","previewPath","onOpen","canOpenWorkspacePaths","isMacApp","isMacDesktop","toLowerCase","endsWith","FolderOpen","TerminalSquare","isWindowsDesktop","open","edit","choose","windowsDefaultAction","ExternalLink","Copy","size","directory","replace","split","pop","isFolder","_el$6","_tmpl$3","_el$7","$$keydown","addEventListener","Show","when","fallback","_tmpl$4","ChevronRight","ChevronDown","Folder","busy","RefreshCw","depth","_v$6","_v$7","_v$8","_v$9","_v$0","n","_$setStyleProperty","s","h","errors","_el$9","_tmpl$5","_el$0","_el$1","load","_el$5","navigator","userAgent","safeWindowsOpenExtensions","Set","windowsEditExtensions","dot","lastIndexOf","extension","slice","FilesPanel","buildGitChangeListItems","git","gitStatusEntries","setFilter","createSignal","selectedCommitFile","setSelectedCommitFile","previewActive","file","getFilePreview","Boolean","slug","kind","commit","scope","togglePreview","closeFilePreview","onOpenFile","historyBody","historyScroll","selectCommit","id","scrollTop","history","backToCommits","back","requestAnimationFrame","isConnected","commits","page","subject","author","includes","handleStageDragEnd","draggable","droppable","find","section","stageGitFile","unstageGitFile","loading","mode","detailLoading","gitStatusLoading","gitAvailable","gitStatusError","basename","date","Date","toLocaleDateString","lang","month","day","_tmpl$9","_el$8","_el$10","_el$14","_el$18","_el$19","_el$20","_el$25","GitBranch","_c$","_$memo","branch","refresh","refreshGitStatus","gitInit","recheck","onWorktreeChange","worktrees","_el$27","_c$3","onModeChange","_el$11","count","_el$12","canOpenFile","_el$13","_el$15","_el$16","_el$17","initialize","$$input","_el$28","_tmpl$1","_el$29","_el$30","_el$32","_el$33","_el$34","_el$35","refs","_el$31","_tmpl$0","_el$21","hasMore","_el$22","_tmpl$6","_el$23","_tmpl$7","ArrowLeft","details","_el$36","_tmpl$10","_el$37","_el$38","_el$39","files","_el$40","_tmpl$11","_el$41","_tmpl$12","_el$42","_el$43","_el$44","status","_v$17","_v$18","originalPath","_v$19","_$className","_el$24","_tmpl$8","DragDropProvider","collisionDetector","closestCenter","onDragEnd","DragDropSensors","_el$26","_c$2","ChangeSection","_el$45","_tmpl$13","_el$46","_el$47","_el$48","actionSection","targets","gitActionItems","action","_el$49","_c$4","map","join","setGitCommitMessage","submitGitCommit","gitCommitSubmitting","_v$20","_v$21","_v$22","_v$23","gitCommitMessage","trim","_v$1","_v$10","_v$11","_v$12","_v$13","_v$14","_v$15","_v$16","l","u","c","w","m","sectionProps","createDroppable","setOpen","contentId","createUniqueId","_el$50","_tmpl$14","_el$51","_el$52","_el$53","_el$54","_el$55","_el$56","GitChangeRow","_v$24","isActiveDroppable","_v$25","_v$26","hidden","rowProps","createDraggable","staged","toggleStage","stageLabel","actions","Plus","Minus","_el$57","_tmpl$15","_el$58","_el$59","_el$60","_el$61","_el$62","_el$64","_el$65","handleGitRowClick","toUpperCase","additions","deletions","_v$27","_v$28","transformStyle","transform","_v$29","_v$30","gitSelectedItemId","_v$31","_v$32","_$style"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|