@neuralnomads/codenomad-dev 0.20.0-dev-20260907-e9e94a67 → 0.20.0-dev-20260908-e5115fe8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/package.json +1 -1
  2. package/public/assets/{App-lAZZOE--.js → App-DPj4p3An.js} +16 -16
  3. package/public/assets/App-DPj4p3An.js.map +1 -0
  4. package/public/assets/{FilesTab-CgfwF6tR.js → FilesTab-C8fnWsM4.js} +2 -2
  5. package/public/assets/{FilesTab-CgfwF6tR.js.map → FilesTab-C8fnWsM4.js.map} +1 -1
  6. package/public/assets/{GitChangesTab-r1JoAD9n.js → GitChangesTab-C3rapWwl.js} +2 -2
  7. package/public/assets/{GitChangesTab-r1JoAD9n.js.map → GitChangesTab-C3rapWwl.js.map} +1 -1
  8. package/public/assets/{SplitFilePanel-D9FfoZUZ.js → SplitFilePanel-D3S7Zfcc.js} +2 -2
  9. package/public/assets/{SplitFilePanel-D9FfoZUZ.js.map → SplitFilePanel-D3S7Zfcc.js.map} +1 -1
  10. package/public/assets/{StatusTab-DMnWj5WS.js → StatusTab-DHvQ-0to.js} +2 -2
  11. package/public/assets/{StatusTab-DMnWj5WS.js.map → StatusTab-DHvQ-0to.js.map} +1 -1
  12. package/public/assets/{align-justify-Dc1gjAkp.js → align-justify-BIN0BnZw.js} +2 -2
  13. package/public/assets/{align-justify-Dc1gjAkp.js.map → align-justify-BIN0BnZw.js.map} +1 -1
  14. package/public/assets/{bundle-full-CXK0RpEe.js → bundle-full-BfEvraVO.js} +2 -2
  15. package/public/assets/{bundle-full-CXK0RpEe.js.map → bundle-full-BfEvraVO.js.map} +1 -1
  16. package/public/assets/{client-state-DmImbmIC.js → client-state-CBKOWfhu.js} +2 -2
  17. package/public/assets/{client-state-DmImbmIC.js.map → client-state-CBKOWfhu.js.map} +1 -1
  18. package/public/assets/{diff-viewer-CbJWj99J.js → diff-viewer-6oxyPi3-.js} +2 -2
  19. package/public/assets/{diff-viewer-CbJWj99J.js.map → diff-viewer-6oxyPi3-.js.map} +1 -1
  20. package/public/assets/{index-CF7UTwOC.js → index-BJrZpSe6.js} +2 -2
  21. package/public/assets/{index-CF7UTwOC.js.map → index-BJrZpSe6.js.map} +1 -1
  22. package/public/assets/{index-UtSy15g1.js → index-B_9dhJTl.js} +2 -2
  23. package/public/assets/{index-UtSy15g1.js.map → index-B_9dhJTl.js.map} +1 -1
  24. package/public/assets/{index-xkTcWbMt.js → index-BeWVYvfJ.js} +2 -2
  25. package/public/assets/{index-xkTcWbMt.js.map → index-BeWVYvfJ.js.map} +1 -1
  26. package/public/assets/{index-C1AVy0gw.js → index-BhBg6Tnf.js} +2 -2
  27. package/public/assets/{index-C1AVy0gw.js.map → index-BhBg6Tnf.js.map} +1 -1
  28. package/public/assets/{index-Bv4cVEdt.js → index-C9znv1NB.js} +2 -2
  29. package/public/assets/{index-Bv4cVEdt.js.map → index-C9znv1NB.js.map} +1 -1
  30. package/public/assets/{index-kaTj6a0V.js → index-CD9b6FoA.js} +2 -2
  31. package/public/assets/{index-kaTj6a0V.js.map → index-CD9b6FoA.js.map} +1 -1
  32. package/public/assets/{index-D5cfewGV.js → index-CmJg6xjr.js} +2 -2
  33. package/public/assets/{index-D5cfewGV.js.map → index-CmJg6xjr.js.map} +1 -1
  34. package/public/assets/{index-C8aIk3bb.js → index-DHNlQHw2.js} +2 -2
  35. package/public/assets/{index-C8aIk3bb.js.map → index-DHNlQHw2.js.map} +1 -1
  36. package/public/assets/{index-AwBa5De4.js → index-DdklToXY.js} +2 -2
  37. package/public/assets/{index-AwBa5De4.js.map → index-DdklToXY.js.map} +1 -1
  38. package/public/assets/{index-Dggdc5Fz.js → index-Dr5L4afe.js} +2 -2
  39. package/public/assets/{index-Dggdc5Fz.js.map → index-Dr5L4afe.js.map} +1 -1
  40. package/public/assets/{index-BJSdILt0.js → index-DsmOPul3.js} +2 -2
  41. package/public/assets/{index-BJSdILt0.js.map → index-DsmOPul3.js.map} +1 -1
  42. package/public/assets/{index-BfORYhCR.js → index-ef9_CbWU.js} +3 -3
  43. package/public/assets/index-ef9_CbWU.js.map +1 -0
  44. package/public/assets/{loading-CLjF2dnt.js → loading-CanSHf7z.js} +2 -2
  45. package/public/assets/{loading-CLjF2dnt.js.map → loading-CanSHf7z.js.map} +1 -1
  46. package/public/assets/{main-CA9pw_Mr.js → main-COtTRZe6.js} +25 -25
  47. package/public/assets/main-COtTRZe6.js.map +1 -0
  48. package/public/assets/{markdown-DP0osupz.js → markdown-B04qkFuc.js} +4 -4
  49. package/public/assets/{markdown-DP0osupz.js.map → markdown-B04qkFuc.js.map} +1 -1
  50. package/public/assets/{startup-state-settings-card-Bc27wplD.js → startup-state-settings-card-DE11-Je6.js} +2 -2
  51. package/public/assets/{startup-state-settings-card-Bc27wplD.js.map → startup-state-settings-card-DE11-Je6.js.map} +1 -1
  52. package/public/assets/{terminal-square-4t6I40X6.js → terminal-square-W8UL0Uzs.js} +2 -2
  53. package/public/assets/{terminal-square-4t6I40X6.js.map → terminal-square-W8UL0Uzs.js.map} +1 -1
  54. package/public/assets/{tool-call-BIHyGWIy.js → tool-call-irc_6gLg.js} +4 -4
  55. package/public/assets/{tool-call-BIHyGWIy.js.map → tool-call-irc_6gLg.js.map} +1 -1
  56. package/public/assets/{unified-picker-CpvYPG8V.js → unified-picker-CkVc32ly.js} +2 -2
  57. package/public/assets/{unified-picker-CpvYPG8V.js.map → unified-picker-CkVc32ly.js.map} +1 -1
  58. package/public/assets/{wrap-text-Dq8UDb8D.js → wrap-text-CR-cuiJP.js} +2 -2
  59. package/public/assets/{wrap-text-Dq8UDb8D.js.map → wrap-text-CR-cuiJP.js.map} +1 -1
  60. package/public/index.html +2 -2
  61. package/public/loading.html +2 -2
  62. package/public/sw.js +1 -1
  63. package/public/sw.js.map +1 -1
  64. package/public/assets/App-lAZZOE--.js.map +0 -1
  65. package/public/assets/index-BfORYhCR.js.map +0 -1
  66. package/public/assets/main-CA9pw_Mr.js.map +0 -1
@@ -1,3 +1,3 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/monaco-viewer-BB3_mBkA.js","assets/git-diff-vendor-ChbWBukG.js","assets/fast-diff-vendor-DgdwVvTQ.js","assets/highlight-vendor-8FKMu9os.js","assets/git-diff-vendor-HAZkIolJ.css"])))=>i.map(i=>d[i]);
2
- import{_ as X}from"./index-BfORYhCR.js";import{k as Z,m as $,t as u,i as o,d as f,a as D,u as ee,e as te}from"./monaco-viewer-BB3_mBkA.js";import{e as j,d as F,c as C,k as s,a as g,S as w,B as ne,z as le,F as ae}from"./git-diff-vendor-ChbWBukG.js";import{S as re}from"./SplitFilePanel-D9FfoZUZ.js";import{M as ie,p as se,A as oe,C as R,q,c as ce,s as de}from"./App-lAZZOE--.js";import{bP as K,eY as he,r as V,E as ue,a as p}from"./main-CA9pw_Mr.js";import{W as fe}from"./wrap-text-Dq8UDb8D.js";import{T as ve}from"./terminal-square-4t6I40X6.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";import"./client-state-DmImbmIC.js";var ge=u('<div class="px-2 py-2 border-b border-base"><div class=selector-input-group><div class="flex items-center gap-2 px-3 text-muted"></div><input type=text class=selector-input>'),we=u("<div class=file-list-header><span class=file-list-title></span><span class=file-list-count>"),N=u('<div class="p-3 text-xs text-secondary">'),Se=u("<div class=file-list-item><div class=file-list-item-content><div class=file-list-item-path><span class=file-path-text>.."),me=u('<div class="p-3 text-xs text-error">'),be=u("<div>"),$e=u('<div><div class=file-list-item-content><div class=file-list-item-path><span class=file-path-text></span></div><div class="flex items-center gap-2 shrink-0"><div class=file-list-item-stats><span class="text-[10px] text-secondary">'),ye=u("<button type=button class=git-change-row-action>"),W=u("<div class=file-viewer-empty><span class=file-viewer-empty-text>"),_e=u('<div class="file-viewer-panel flex-1"><div>'),ke=u('<div class="h-full outline-none"tabindex=0>'),xe=u("<span>"),Ce=u("<div class=files-tab-stats><span class=files-tab-stat><span class=files-tab-selected-path><span class=file-path-text>"),Pe=u("<button type=button style=margin-inline-start:auto>"),Q=u("<button type=button class=files-header-icon-button>"),Ee=u("<span class=text-error>"),Le=u('<button type=button class="file-viewer-toolbar-icon-button icon-toggle">');const We=le(()=>X(()=>import("./monaco-viewer-BB3_mBkA.js").then(e=>e.ao),__vite__mapDeps([0,1,2,3,4])).then(e=>({default:e.MonacoFileViewer}))),B=typeof navigator<"u"&&/windows/i.test(navigator.userAgent),Me=typeof navigator<"u"&&/macintosh|mac os x/i.test(navigator.userAgent),De=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"]),Fe=new Set(["bat","cmd","js","jse","pl","ps1","psd1","psm1","py","pyw","rb","reg","vbe","vbs","wsf","wsh"]);function Te(e){const y=e.split(/[\\/]/).pop()??"",_=y.lastIndexOf("."),m=_>0?y.slice(_+1).toLowerCase():"";return!B||m&&De.has(m)?"open":m&&Fe.has(m)?"edit":"choose"}function Ae(e){return e?/\.(md|markdown|mdown|mkdn)$/i.test(e):!1}const He=e=>{const[y,_]=j(""),{isDark:m}=Z(),[H,T]=j(!1);let S;F(()=>{e.browserPath(),_("")});const Y=C(()=>[...e.browserEntries()||[]].sort((r,c)=>{const l=r.type==="directory"?0:1,n=c.type==="directory"?0:1;return l!==n?l-n:String(r.name||"").localeCompare(String(c.name||""))})),A=C(()=>y().trim().toLowerCase()),M=C(()=>{const t=A(),r=Y();return t?r.filter(c=>String(c.name||"").toLowerCase().includes(t)):r}),P=()=>e.browserLoading()&&e.browserEntries()===null,G=()=>A()?e.t("instanceShell.filesShell.search.empty"):e.t("instanceShell.filesShell.listEmpty"),E=C(()=>Ae(e.browserSelectedPath())),b=C(()=>E()&&H());F(()=>{E()||T(!1)});const z=()=>{const t=e.browserSelectedContent();t!=null&&e.onSave(t)},I=async(t,r)=>{r==null||r.stopPropagation();const c=await ce(t);p({message:c?e.t("instanceShell.filesShell.toast.copyPathSuccess"):e.t("instanceShell.filesShell.toast.copyPathError"),variant:c?"success":"error"})},L=async(t,r)=>{try{await de({target:t,instanceId:e.instanceId,worktreeSlug:e.worktreeSlug(),path:r})}catch(c){p({message:e.t("instanceShell.filesShell.toast.openError",{message:c instanceof Error?c.message:String(c)}),variant:"error"})}},J=t=>{const r=[];if(q())if(t.type==="directory"){const c=Me&&t.path.toLowerCase().endsWith(".app");r.push({key:"open-folder",label:e.t(c?"instanceShell.filesShell.actions.showInFolder":"instanceShell.filesShell.actions.openFolder"),icon:s(V,{class:"w-3.5 h-3.5"}),onSelect:()=>L(c?"reveal":"default",t.path)},{key:"open-terminal",label:e.t("instanceShell.filesShell.actions.openTerminal"),icon:s(ve,{class:"w-3.5 h-3.5"}),onSelect:()=>L("terminal",t.path)})}else B&&r.push({key:"open-default",label:e.t({open:"instanceShell.filesShell.actions.openDefault",edit:"instanceShell.filesShell.actions.editDefault",choose:"instanceShell.filesShell.actions.chooseApplication"}[Te(t.path)]),icon:s(ue,{class:"w-3.5 h-3.5"}),onSelect:()=>L("default",t.path)}),r.push({key:"show-in-folder",label:e.t("instanceShell.filesShell.actions.showInFolder"),icon:s(V,{class:"w-3.5 h-3.5"}),onSelect:()=>L("reveal",t.path)});return r.push({key:"copy-path",label:e.t("instanceShell.filesShell.actions.copyPath"),icon:s(R,{class:"w-3.5 h-3.5"}),onSelect:()=>I(t.path)}),r};F(()=>{b()&&requestAnimationFrame(()=>S==null?void 0:S.focus())});const O=()=>[(()=>{var t=ge(),r=t.firstChild,c=r.firstChild,l=c.nextSibling;return o(c,s(se,{class:"w-4 h-4"})),l.$$input=n=>_(n.currentTarget.value),g(n=>{var i=e.t("instanceShell.filesShell.search.placeholder"),a=e.t("instanceShell.filesShell.search.ariaLabel");return i!==n.e&&f(l,"placeholder",n.e=i),a!==n.t&&f(l,"aria-label",n.t=a),n},{e:void 0,t:void 0}),g(()=>l.value=y()),t})(),(()=>{var t=we(),r=t.firstChild,c=r.nextSibling;return o(r,()=>e.t("instanceShell.filesShell.fileListTitle")),o(c,()=>M().length),t})(),s(w,{get when(){return e.parentPath()},children:t=>(()=>{var r=Se(),c=r.firstChild,l=c.firstChild;return r.$$click=()=>e.onLoadEntries(t()),g(()=>f(l,"title",t())),r})()}),s(w,{get when(){return P()},get children(){var t=N();return o(t,()=>e.t("instanceInfo.loading")),t}}),s(w,{get when(){return $(()=>!e.browserError()&&!P())()&&M().length>0},get fallback(){return $(()=>!P())()?$(()=>!!e.browserError())()?(()=>{var t=me();return o(t,()=>e.browserError()),t})():(()=>{var t=N();return o(t,G),t})():void 0},get children(){return s(ae,{get each(){return M()},children:t=>(()=>{var r=$e(),c=r.firstChild,l=c.firstChild,n=l.firstChild,i=l.nextSibling,a=i.firstChild,h=a.firstChild;return r.$$click=()=>{if(t.type==="directory"){e.onLoadEntries(t.path);return}e.onRequestOpenFile(t.path)},o(n,()=>t.name),o(h,()=>t.type),o(i,s(w,{get when(){return q()},get fallback(){return(()=>{var d=ye();return d.$$click=v=>void I(t.path,v),o(d,s(R,{class:"w-3 h-3"})),g(v=>{var k=e.t("instanceShell.filesShell.actions.copyPath"),x=e.t("instanceShell.filesShell.actions.copyPath");return k!==v.e&&f(d,"title",v.e=k),x!==v.t&&f(d,"aria-label",v.t=x),v},{e:void 0,t:void 0}),d})()},get children(){var d=be();return d.$$pointerdown=v=>v.stopPropagation(),d.$$click=v=>v.stopPropagation(),o(d,s(oe,{get items(){return J(t)},get label(){return e.t("instanceShell.filesShell.actions.more",{name:t.name})},triggerClass:"git-change-row-action file-row-action-menu"})),d}}),null),g(d=>{var v=`file-list-item ${e.browserSelectedPath()===t.path?"file-list-item-active":""}`,k=t.path,x=t.path;return v!==d.e&&D(r,d.e=v),k!==d.t&&f(r,"title",d.t=k),x!==d.a&&f(l,"title",d.a=x),d},{e:void 0,t:void 0,a:void 0}),r})()})}})],U=t=>{!(t.ctrlKey||t.metaKey)||t.key.toLowerCase()!=="s"||e.browserSelectedSaving()||!e.browserSelectedDirty()||(t.preventDefault(),z())};return $(()=>{const t=()=>e.browserSelectedPath()||e.browserPath(),r=()=>P()?e.t("instanceInfo.loading"):e.t("instanceShell.filesShell.viewerEmpty"),c=()=>(()=>{var l=_e(),n=l.firstChild;return o(n,s(w,{get when(){return e.browserSelectedLoading()},get fallback(){return s(w,{get when(){return e.browserSelectedError()},get fallback(){return s(w,{get when(){return $(()=>!!(e.browserSelectedPath()&&e.browserSelectedContent()!==null))()?{path:e.browserSelectedPath(),content:e.browserSelectedContent()}:null},get fallback(){return(()=>{var i=W(),a=i.firstChild;return o(a,r),i})()},children:i=>s(w,{get when(){return b()},get fallback(){return s(ne,{get fallback(){return(()=>{var a=W(),h=a.firstChild;return o(h,()=>e.t("instanceInfo.loading")),a})()},get children(){return s(We,{get scopeKey(){return e.scopeKey()},get path(){return i().path},get content(){return i().content},get wordWrap(){return e.wordWrapMode()},get onSave(){return e.onSave},get onContentChange(){return e.onContentChange}})}})},get children(){var a=ke();a.$$mousedown=()=>S==null?void 0:S.focus(),a.$$keydown=U;var h=S;return typeof h=="function"?ee(h,a):S=a,o(a,s(ie,{get part(){return{type:"text",text:i().content}},get isDark(){return m()},escapeRawHtml:!0})),a}})})},children:i=>(()=>{var a=W(),h=a.firstChild;return o(h,i),a})()})},get children(){var i=W(),a=i.firstChild;return o(a,()=>e.t("instanceInfo.loading")),i}})),g(()=>D(n,b()?"file-viewer-content":"file-viewer-content file-viewer-content--monaco")),l})();return s(re,{get header(){return[(()=>{var l=Ce(),n=l.firstChild,i=n.firstChild,a=i.firstChild;return o(a,t),o(l,s(w,{get when(){return e.browserLoading()},get children(){var h=xe();return o(h,()=>e.t("instanceInfo.loading")),h}}),null),o(l,s(w,{get when(){return e.browserError()},children:h=>(()=>{var d=Ee();return o(d,h),d})()}),null),g(()=>f(i,"title",t())),l})(),(()=>{var l=Pe();return l.$$click=()=>E()&&T(n=>!n),o(l,(()=>{var n=$(()=>!!b());return()=>n()?e.t("instanceShell.filesShell.showSource"):e.t("instanceShell.filesShell.previewMarkdown")})()),g(n=>{var i=`file-viewer-toolbar-button${b()?" active":""}`,a=!E();return i!==n.e&&D(l,n.e=i),a!==n.t&&(l.disabled=n.t=a),n},{e:void 0,t:void 0}),l})(),(()=>{var l=Q();return l.$$click=z,o(l,s(w,{get when(){return e.browserSelectedSaving()},get fallback(){return s(he,{class:"h-4 w-4"})},get children(){return s(K,{class:"h-4 w-4 animate-spin"})}})),g(n=>{var i=e.t("instanceShell.rightPanel.actions.save")||"Save (Ctrl+S)",a=e.t("instanceShell.rightPanel.actions.save")||"Save",h=e.browserSelectedSaving()||!e.browserSelectedDirty();return i!==n.e&&f(l,"title",n.e=i),a!==n.t&&f(l,"aria-label",n.t=a),h!==n.a&&(l.disabled=n.a=h),n},{e:void 0,t:void 0,a:void 0}),l})(),(()=>{var l=Q();return l.$$click=()=>e.onRefresh(),o(l,s(K,{get class(){return`h-4 w-4${e.browserLoading()?" animate-spin":""}`}})),g(n=>{var i=e.t("instanceShell.rightPanel.actions.refresh"),a=e.t("instanceShell.rightPanel.actions.refresh"),h=e.browserLoading();return i!==n.e&&f(l,"title",n.e=i),a!==n.t&&f(l,"aria-label",n.t=a),h!==n.a&&(l.disabled=n.a=h),n},{e:void 0,t:void 0,a:void 0}),l})()]},list:{panel:()=>s(O,{}),overlay:()=>s(O,{})},get viewer(){return c()},get viewerActions(){return(()=>{var l=Le();return l.$$click=()=>e.onWordWrapModeChange(e.wordWrapMode()==="on"?"off":"on"),o(l,s(fe,{class:"h-4 w-4"})),g(n=>{var i=e.wordWrapMode()==="on"?e.t("instanceShell.filesShell.disableWordWrap"):e.t("instanceShell.filesShell.enableWordWrap"),a=e.wordWrapMode()==="on"?e.t("instanceShell.filesShell.disableWordWrap"):e.t("instanceShell.filesShell.enableWordWrap"),h=e.wordWrapMode()==="on"?"true":void 0,d=b();return i!==n.e&&f(l,"title",n.e=i),a!==n.t&&f(l,"aria-label",n.t=a),h!==n.a&&f(l,"data-active",n.a=h),d!==n.o&&(l.disabled=n.o=d),n},{e:void 0,t:void 0,a:void 0,o:void 0}),l})()},get listOpen(){return e.listOpen()},get onToggleList(){return e.onToggleList},get splitWidth(){return e.splitWidth()},get onResizeMouseDown(){return e.onResizeMouseDown},get onResizeTouchStart(){return e.onResizeTouchStart},get isPhoneLayout(){return e.isPhoneLayout()},get overlayAriaLabel(){return e.t("instanceShell.rightPanel.tabs.files")}})})};te(["input","click","pointerdown","keydown","mousedown"]);export{He as default};
3
- //# sourceMappingURL=FilesTab-CgfwF6tR.js.map
2
+ import{_ as X}from"./index-ef9_CbWU.js";import{k as Z,m as $,t as u,i as o,d as f,a as D,u as ee,e as te}from"./monaco-viewer-BB3_mBkA.js";import{e as j,d as F,c as C,k as s,a as g,S as w,B as ne,z as le,F as ae}from"./git-diff-vendor-ChbWBukG.js";import{S as re}from"./SplitFilePanel-D3S7Zfcc.js";import{M as ie,p as se,A as oe,C as R,q,c as ce,s as de}from"./App-DPj4p3An.js";import{bP as K,eY as he,r as V,E as ue,a as p}from"./main-COtTRZe6.js";import{W as fe}from"./wrap-text-CR-cuiJP.js";import{T as ve}from"./terminal-square-W8UL0Uzs.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";import"./client-state-CBKOWfhu.js";var ge=u('<div class="px-2 py-2 border-b border-base"><div class=selector-input-group><div class="flex items-center gap-2 px-3 text-muted"></div><input type=text class=selector-input>'),we=u("<div class=file-list-header><span class=file-list-title></span><span class=file-list-count>"),N=u('<div class="p-3 text-xs text-secondary">'),Se=u("<div class=file-list-item><div class=file-list-item-content><div class=file-list-item-path><span class=file-path-text>.."),me=u('<div class="p-3 text-xs text-error">'),be=u("<div>"),$e=u('<div><div class=file-list-item-content><div class=file-list-item-path><span class=file-path-text></span></div><div class="flex items-center gap-2 shrink-0"><div class=file-list-item-stats><span class="text-[10px] text-secondary">'),ye=u("<button type=button class=git-change-row-action>"),W=u("<div class=file-viewer-empty><span class=file-viewer-empty-text>"),_e=u('<div class="file-viewer-panel flex-1"><div>'),ke=u('<div class="h-full outline-none"tabindex=0>'),xe=u("<span>"),Ce=u("<div class=files-tab-stats><span class=files-tab-stat><span class=files-tab-selected-path><span class=file-path-text>"),Pe=u("<button type=button style=margin-inline-start:auto>"),Q=u("<button type=button class=files-header-icon-button>"),Ee=u("<span class=text-error>"),Le=u('<button type=button class="file-viewer-toolbar-icon-button icon-toggle">');const We=le(()=>X(()=>import("./monaco-viewer-BB3_mBkA.js").then(e=>e.ao),__vite__mapDeps([0,1,2,3,4])).then(e=>({default:e.MonacoFileViewer}))),B=typeof navigator<"u"&&/windows/i.test(navigator.userAgent),Me=typeof navigator<"u"&&/macintosh|mac os x/i.test(navigator.userAgent),De=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"]),Fe=new Set(["bat","cmd","js","jse","pl","ps1","psd1","psm1","py","pyw","rb","reg","vbe","vbs","wsf","wsh"]);function Te(e){const y=e.split(/[\\/]/).pop()??"",_=y.lastIndexOf("."),m=_>0?y.slice(_+1).toLowerCase():"";return!B||m&&De.has(m)?"open":m&&Fe.has(m)?"edit":"choose"}function Ae(e){return e?/\.(md|markdown|mdown|mkdn)$/i.test(e):!1}const He=e=>{const[y,_]=j(""),{isDark:m}=Z(),[H,T]=j(!1);let S;F(()=>{e.browserPath(),_("")});const Y=C(()=>[...e.browserEntries()||[]].sort((r,c)=>{const l=r.type==="directory"?0:1,n=c.type==="directory"?0:1;return l!==n?l-n:String(r.name||"").localeCompare(String(c.name||""))})),A=C(()=>y().trim().toLowerCase()),M=C(()=>{const t=A(),r=Y();return t?r.filter(c=>String(c.name||"").toLowerCase().includes(t)):r}),P=()=>e.browserLoading()&&e.browserEntries()===null,G=()=>A()?e.t("instanceShell.filesShell.search.empty"):e.t("instanceShell.filesShell.listEmpty"),E=C(()=>Ae(e.browserSelectedPath())),b=C(()=>E()&&H());F(()=>{E()||T(!1)});const z=()=>{const t=e.browserSelectedContent();t!=null&&e.onSave(t)},I=async(t,r)=>{r==null||r.stopPropagation();const c=await ce(t);p({message:c?e.t("instanceShell.filesShell.toast.copyPathSuccess"):e.t("instanceShell.filesShell.toast.copyPathError"),variant:c?"success":"error"})},L=async(t,r)=>{try{await de({target:t,instanceId:e.instanceId,worktreeSlug:e.worktreeSlug(),path:r})}catch(c){p({message:e.t("instanceShell.filesShell.toast.openError",{message:c instanceof Error?c.message:String(c)}),variant:"error"})}},J=t=>{const r=[];if(q())if(t.type==="directory"){const c=Me&&t.path.toLowerCase().endsWith(".app");r.push({key:"open-folder",label:e.t(c?"instanceShell.filesShell.actions.showInFolder":"instanceShell.filesShell.actions.openFolder"),icon:s(V,{class:"w-3.5 h-3.5"}),onSelect:()=>L(c?"reveal":"default",t.path)},{key:"open-terminal",label:e.t("instanceShell.filesShell.actions.openTerminal"),icon:s(ve,{class:"w-3.5 h-3.5"}),onSelect:()=>L("terminal",t.path)})}else B&&r.push({key:"open-default",label:e.t({open:"instanceShell.filesShell.actions.openDefault",edit:"instanceShell.filesShell.actions.editDefault",choose:"instanceShell.filesShell.actions.chooseApplication"}[Te(t.path)]),icon:s(ue,{class:"w-3.5 h-3.5"}),onSelect:()=>L("default",t.path)}),r.push({key:"show-in-folder",label:e.t("instanceShell.filesShell.actions.showInFolder"),icon:s(V,{class:"w-3.5 h-3.5"}),onSelect:()=>L("reveal",t.path)});return r.push({key:"copy-path",label:e.t("instanceShell.filesShell.actions.copyPath"),icon:s(R,{class:"w-3.5 h-3.5"}),onSelect:()=>I(t.path)}),r};F(()=>{b()&&requestAnimationFrame(()=>S==null?void 0:S.focus())});const O=()=>[(()=>{var t=ge(),r=t.firstChild,c=r.firstChild,l=c.nextSibling;return o(c,s(se,{class:"w-4 h-4"})),l.$$input=n=>_(n.currentTarget.value),g(n=>{var i=e.t("instanceShell.filesShell.search.placeholder"),a=e.t("instanceShell.filesShell.search.ariaLabel");return i!==n.e&&f(l,"placeholder",n.e=i),a!==n.t&&f(l,"aria-label",n.t=a),n},{e:void 0,t:void 0}),g(()=>l.value=y()),t})(),(()=>{var t=we(),r=t.firstChild,c=r.nextSibling;return o(r,()=>e.t("instanceShell.filesShell.fileListTitle")),o(c,()=>M().length),t})(),s(w,{get when(){return e.parentPath()},children:t=>(()=>{var r=Se(),c=r.firstChild,l=c.firstChild;return r.$$click=()=>e.onLoadEntries(t()),g(()=>f(l,"title",t())),r})()}),s(w,{get when(){return P()},get children(){var t=N();return o(t,()=>e.t("instanceInfo.loading")),t}}),s(w,{get when(){return $(()=>!e.browserError()&&!P())()&&M().length>0},get fallback(){return $(()=>!P())()?$(()=>!!e.browserError())()?(()=>{var t=me();return o(t,()=>e.browserError()),t})():(()=>{var t=N();return o(t,G),t})():void 0},get children(){return s(ae,{get each(){return M()},children:t=>(()=>{var r=$e(),c=r.firstChild,l=c.firstChild,n=l.firstChild,i=l.nextSibling,a=i.firstChild,h=a.firstChild;return r.$$click=()=>{if(t.type==="directory"){e.onLoadEntries(t.path);return}e.onRequestOpenFile(t.path)},o(n,()=>t.name),o(h,()=>t.type),o(i,s(w,{get when(){return q()},get fallback(){return(()=>{var d=ye();return d.$$click=v=>void I(t.path,v),o(d,s(R,{class:"w-3 h-3"})),g(v=>{var k=e.t("instanceShell.filesShell.actions.copyPath"),x=e.t("instanceShell.filesShell.actions.copyPath");return k!==v.e&&f(d,"title",v.e=k),x!==v.t&&f(d,"aria-label",v.t=x),v},{e:void 0,t:void 0}),d})()},get children(){var d=be();return d.$$pointerdown=v=>v.stopPropagation(),d.$$click=v=>v.stopPropagation(),o(d,s(oe,{get items(){return J(t)},get label(){return e.t("instanceShell.filesShell.actions.more",{name:t.name})},triggerClass:"git-change-row-action file-row-action-menu"})),d}}),null),g(d=>{var v=`file-list-item ${e.browserSelectedPath()===t.path?"file-list-item-active":""}`,k=t.path,x=t.path;return v!==d.e&&D(r,d.e=v),k!==d.t&&f(r,"title",d.t=k),x!==d.a&&f(l,"title",d.a=x),d},{e:void 0,t:void 0,a:void 0}),r})()})}})],U=t=>{!(t.ctrlKey||t.metaKey)||t.key.toLowerCase()!=="s"||e.browserSelectedSaving()||!e.browserSelectedDirty()||(t.preventDefault(),z())};return $(()=>{const t=()=>e.browserSelectedPath()||e.browserPath(),r=()=>P()?e.t("instanceInfo.loading"):e.t("instanceShell.filesShell.viewerEmpty"),c=()=>(()=>{var l=_e(),n=l.firstChild;return o(n,s(w,{get when(){return e.browserSelectedLoading()},get fallback(){return s(w,{get when(){return e.browserSelectedError()},get fallback(){return s(w,{get when(){return $(()=>!!(e.browserSelectedPath()&&e.browserSelectedContent()!==null))()?{path:e.browserSelectedPath(),content:e.browserSelectedContent()}:null},get fallback(){return(()=>{var i=W(),a=i.firstChild;return o(a,r),i})()},children:i=>s(w,{get when(){return b()},get fallback(){return s(ne,{get fallback(){return(()=>{var a=W(),h=a.firstChild;return o(h,()=>e.t("instanceInfo.loading")),a})()},get children(){return s(We,{get scopeKey(){return e.scopeKey()},get path(){return i().path},get content(){return i().content},get wordWrap(){return e.wordWrapMode()},get onSave(){return e.onSave},get onContentChange(){return e.onContentChange}})}})},get children(){var a=ke();a.$$mousedown=()=>S==null?void 0:S.focus(),a.$$keydown=U;var h=S;return typeof h=="function"?ee(h,a):S=a,o(a,s(ie,{get part(){return{type:"text",text:i().content}},get isDark(){return m()},escapeRawHtml:!0})),a}})})},children:i=>(()=>{var a=W(),h=a.firstChild;return o(h,i),a})()})},get children(){var i=W(),a=i.firstChild;return o(a,()=>e.t("instanceInfo.loading")),i}})),g(()=>D(n,b()?"file-viewer-content":"file-viewer-content file-viewer-content--monaco")),l})();return s(re,{get header(){return[(()=>{var l=Ce(),n=l.firstChild,i=n.firstChild,a=i.firstChild;return o(a,t),o(l,s(w,{get when(){return e.browserLoading()},get children(){var h=xe();return o(h,()=>e.t("instanceInfo.loading")),h}}),null),o(l,s(w,{get when(){return e.browserError()},children:h=>(()=>{var d=Ee();return o(d,h),d})()}),null),g(()=>f(i,"title",t())),l})(),(()=>{var l=Pe();return l.$$click=()=>E()&&T(n=>!n),o(l,(()=>{var n=$(()=>!!b());return()=>n()?e.t("instanceShell.filesShell.showSource"):e.t("instanceShell.filesShell.previewMarkdown")})()),g(n=>{var i=`file-viewer-toolbar-button${b()?" active":""}`,a=!E();return i!==n.e&&D(l,n.e=i),a!==n.t&&(l.disabled=n.t=a),n},{e:void 0,t:void 0}),l})(),(()=>{var l=Q();return l.$$click=z,o(l,s(w,{get when(){return e.browserSelectedSaving()},get fallback(){return s(he,{class:"h-4 w-4"})},get children(){return s(K,{class:"h-4 w-4 animate-spin"})}})),g(n=>{var i=e.t("instanceShell.rightPanel.actions.save")||"Save (Ctrl+S)",a=e.t("instanceShell.rightPanel.actions.save")||"Save",h=e.browserSelectedSaving()||!e.browserSelectedDirty();return i!==n.e&&f(l,"title",n.e=i),a!==n.t&&f(l,"aria-label",n.t=a),h!==n.a&&(l.disabled=n.a=h),n},{e:void 0,t:void 0,a:void 0}),l})(),(()=>{var l=Q();return l.$$click=()=>e.onRefresh(),o(l,s(K,{get class(){return`h-4 w-4${e.browserLoading()?" animate-spin":""}`}})),g(n=>{var i=e.t("instanceShell.rightPanel.actions.refresh"),a=e.t("instanceShell.rightPanel.actions.refresh"),h=e.browserLoading();return i!==n.e&&f(l,"title",n.e=i),a!==n.t&&f(l,"aria-label",n.t=a),h!==n.a&&(l.disabled=n.a=h),n},{e:void 0,t:void 0,a:void 0}),l})()]},list:{panel:()=>s(O,{}),overlay:()=>s(O,{})},get viewer(){return c()},get viewerActions(){return(()=>{var l=Le();return l.$$click=()=>e.onWordWrapModeChange(e.wordWrapMode()==="on"?"off":"on"),o(l,s(fe,{class:"h-4 w-4"})),g(n=>{var i=e.wordWrapMode()==="on"?e.t("instanceShell.filesShell.disableWordWrap"):e.t("instanceShell.filesShell.enableWordWrap"),a=e.wordWrapMode()==="on"?e.t("instanceShell.filesShell.disableWordWrap"):e.t("instanceShell.filesShell.enableWordWrap"),h=e.wordWrapMode()==="on"?"true":void 0,d=b();return i!==n.e&&f(l,"title",n.e=i),a!==n.t&&f(l,"aria-label",n.t=a),h!==n.a&&f(l,"data-active",n.a=h),d!==n.o&&(l.disabled=n.o=d),n},{e:void 0,t:void 0,a:void 0,o:void 0}),l})()},get listOpen(){return e.listOpen()},get onToggleList(){return e.onToggleList},get splitWidth(){return e.splitWidth()},get onResizeMouseDown(){return e.onResizeMouseDown},get onResizeTouchStart(){return e.onResizeTouchStart},get isPhoneLayout(){return e.isPhoneLayout()},get overlayAriaLabel(){return e.t("instanceShell.rightPanel.tabs.files")}})})};te(["input","click","pointerdown","keydown","mousedown"]);export{He as default};
3
+ //# sourceMappingURL=FilesTab-C8fnWsM4.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":"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","names":["LazyMonacoFileViewer","lazy","__vitePreload","n","then","module","default","MonacoFileViewer","isWindowsDesktop","navigator","test","userAgent","isMacDesktop","safeWindowsOpenExtensions","Set","windowsEditExtensions","windowsDefaultAction","path","name","split","pop","dot","lastIndexOf","extension","slice","toLowerCase","has","isMarkdownPath","FilesTab","props","filterQuery","setFilterQuery","createSignal","isDark","useTheme","markdownPreviewEnabled","setMarkdownPreviewEnabled","markdownPreviewRef","createEffect","browserPath","sortedEntries","createMemo","browserEntries","sort","a","b","aDir","type","bDir","String","localeCompare","normalizedQuery","trim","filteredEntries","query","entries","filter","item","includes","initialListLoading","browserLoading","listEmptyMessage","t","selectedMarkdownFile","browserSelectedPath","showingMarkdownPreview","handleSave","content","browserSelectedContent","onSave","handleCopyPath","event","stopPropagation","ok","copyToClipboard","showToastNotification","message","variant","handleNativeOpen","target","openWorkspacePath","instanceId","worktreeSlug","error","Error","rowActions","items","canOpenWorkspacePaths","isMacApp","endsWith","push","key","label","icon","_$createComponent","FolderOpen","onSelect","TerminalSquare","open","edit","choose","ExternalLink","Copy","requestAnimationFrame","focus","FileList","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","_$insert","Search","$$input","currentTarget","value","_$effect","_p$","_v$","_v$2","e","_$setAttribute","undefined","_el$5","_tmpl$2","_el$6","_el$7","length","Show","when","parentPath","children","_el$9","_tmpl$4","_el$0","_el$1","$$click","onLoadEntries","p","_el$8","_tmpl$3","_$memo","browserError","fallback","_el$10","_tmpl$5","_el$11","For","each","_el$12","_tmpl$7","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","onRequestOpenFile","_el$20","_tmpl$8","_v$6","_v$7","_el$19","_tmpl$6","$$pointerdown","ActionOverflowMenu","triggerClass","_v$3","_v$4","_v$5","_$className","handleMarkdownPreviewKeyDown","ctrlKey","metaKey","browserSelectedSaving","browserSelectedDirty","preventDefault","renderContent","headerDisplayedPath","emptyViewerMessage","renderViewer","_el$21","_tmpl$0","_el$22","browserSelectedLoading","browserSelectedError","_el$25","_tmpl$9","_el$26","payload","Suspense","_el$28","_el$29","scopeKey","wordWrap","wordWrapMode","onContentChange","_el$27","_tmpl$1","$$mousedown","$$keydown","_ref$","_$use","Markdown","part","text","escapeRawHtml","_el$30","_el$31","err","_el$23","_el$24","SplitFilePanel","header","_el$32","_tmpl$11","_el$33","_el$34","_el$35","_el$36","_tmpl$10","_el$40","_tmpl$14","_el$37","_tmpl$12","prev","_c$","_v$8","_v$9","disabled","_el$38","_tmpl$13","Save","RefreshCw","_v$0","_v$1","_v$10","_el$39","onRefresh","_v$11","_v$12","_v$13","list","panel","overlay","viewer","viewerActions","_el$41","_tmpl$15","onWordWrapModeChange","WrapText","_v$14","_v$15","_v$16","_v$17","o","listOpen","onToggleList","splitWidth","onResizeMouseDown","onResizeTouchStart","isPhoneLayout","overlayAriaLabel","_$delegateEvents"],"ignoreList":[],"sources":["../../../components/instance/shell/right-panel/tabs/FilesTab.tsx"],"sourcesContent":["import { For, Show, Suspense, createEffect, createMemo, createSignal, lazy, type Accessor, type Component, type JSX } from \"solid-js\"\n\nimport { Copy, ExternalLink, FolderOpen, RefreshCw, Save, Search, TerminalSquare, WrapText } from \"lucide-solid\"\n\nimport SplitFilePanel from \"../components/SplitFilePanel\"\nimport { Markdown } from \"../../../../markdown\"\nimport { copyToClipboard } from \"../../../../../lib/clipboard\"\nimport { showToastNotification } from \"../../../../../lib/notifications\"\nimport { useTheme } from \"../../../../../lib/theme\"\nimport ActionOverflowMenu, { type ActionOverflowMenuItem } from \"../../../../action-overflow-menu\"\nimport { canOpenWorkspacePaths, openWorkspacePath } from \"../../../../../lib/workspace-open\"\n\nconst LazyMonacoFileViewer = lazy(() =>\n import(\"../../../../file-viewer/monaco-file-viewer\").then((module) => ({ default: module.MonacoFileViewer })),\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\nfunction isMarkdownPath(path: string | null | undefined): boolean {\n if (!path) return false\n return /\\.(md|markdown|mdown|mkdn)$/i.test(path)\n}\n\nexport interface FileBrowserEntry {\n name: string\n path: string\n type: \"file\" | \"directory\"\n}\n\ninterface FilesTabProps {\n t: (key: string, vars?: Record<string, any>) => string\n\n browserPath: Accessor<string>\n browserEntries: Accessor<FileBrowserEntry[] | null>\n browserLoading: Accessor<boolean>\n browserError: Accessor<string | null>\n\n browserSelectedPath: Accessor<string | null>\n browserSelectedContent: Accessor<string | null>\n browserSelectedLoading: Accessor<boolean>\n browserSelectedError: Accessor<string | null>\n browserSelectedDirty: Accessor<boolean>\n browserSelectedSaving: Accessor<boolean>\n wordWrapMode: Accessor<\"on\" | \"off\">\n\n parentPath: Accessor<string | null>\n scopeKey: Accessor<string>\n instanceId: string\n worktreeSlug: Accessor<string>\n\n onLoadEntries: (path: string) => void\n onRequestOpenFile: (path: string) => void\n onRefresh: () => void\n onSave: (content: string) => void\n onContentChange: (content: string) => void\n onWordWrapModeChange: (mode: \"on\" | \"off\") => void\n\n listOpen: Accessor<boolean>\n onToggleList: () => void\n splitWidth: Accessor<number>\n onResizeMouseDown: (event: MouseEvent) => void\n onResizeTouchStart: (event: TouchEvent) => void\n isPhoneLayout: Accessor<boolean>\n}\n\nconst FilesTab: Component<FilesTabProps> = (props) => {\n const [filterQuery, setFilterQuery] = createSignal(\"\")\n const { isDark } = useTheme()\n const [markdownPreviewEnabled, setMarkdownPreviewEnabled] = createSignal(false)\n let markdownPreviewRef: HTMLDivElement | undefined\n\n createEffect(() => {\n props.browserPath()\n setFilterQuery(\"\")\n })\n\n const sortedEntries = createMemo(() => {\n const entries = props.browserEntries() || []\n return [...entries].sort((a, b) => {\n const aDir = a.type === \"directory\" ? 0 : 1\n const bDir = b.type === \"directory\" ? 0 : 1\n if (aDir !== bDir) return aDir - bDir\n return String(a.name || \"\").localeCompare(String(b.name || \"\"))\n })\n })\n\n const normalizedQuery = createMemo(() => filterQuery().trim().toLowerCase())\n\n const filteredEntries = createMemo(() => {\n const query = normalizedQuery()\n const entries = sortedEntries()\n if (!query) return entries\n return entries.filter((item) => {\n const name = String(item.name || \"\").toLowerCase()\n return name.includes(query)\n })\n })\n\n const initialListLoading = () => props.browserLoading() && props.browserEntries() === null\n\n const listEmptyMessage = () =>\n normalizedQuery() ? props.t(\"instanceShell.filesShell.search.empty\") : props.t(\"instanceShell.filesShell.listEmpty\")\n\n const selectedMarkdownFile = createMemo(() => isMarkdownPath(props.browserSelectedPath()))\n const showingMarkdownPreview = createMemo(() => selectedMarkdownFile() && markdownPreviewEnabled())\n\n createEffect(() => {\n if (!selectedMarkdownFile()) {\n setMarkdownPreviewEnabled(false)\n }\n })\n const handleSave = () => {\n const content = props.browserSelectedContent()\n if (content !== undefined && content !== null) {\n props.onSave(content)\n }\n }\n\n const handleCopyPath = async (path: string, event?: MouseEvent) => {\n event?.stopPropagation()\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 (\n target: \"default\" | \"reveal\" | \"terminal\",\n path: string,\n ) => {\n try {\n await openWorkspacePath({\n target,\n instanceId: props.instanceId,\n worktreeSlug: props.worktreeSlug(),\n path,\n })\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 = (item: FileBrowserEntry): ActionOverflowMenuItem[] => {\n const items: ActionOverflowMenuItem[] = []\n if (canOpenWorkspacePaths()) {\n if (item.type === \"directory\") {\n const isMacApp = isMacDesktop && item.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\", item.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\", item.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(item.path)]),\n icon: <ExternalLink class=\"w-3.5 h-3.5\" />,\n onSelect: () => handleNativeOpen(\"default\", item.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\", item.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(item.path),\n })\n return items\n }\n\n createEffect(() => {\n if (!showingMarkdownPreview()) return\n requestAnimationFrame(() => markdownPreviewRef?.focus())\n })\n\n const FileList: Component = () => (\n <>\n <div class=\"px-2 py-2 border-b border-base\">\n <div class=\"selector-input-group\">\n <div class=\"flex items-center gap-2 px-3 text-muted\">\n <Search class=\"w-4 h-4\" />\n </div>\n <input\n type=\"text\"\n value={filterQuery()}\n onInput={(event) => setFilterQuery(event.currentTarget.value)}\n placeholder={props.t(\"instanceShell.filesShell.search.placeholder\")}\n aria-label={props.t(\"instanceShell.filesShell.search.ariaLabel\")}\n class=\"selector-input\"\n />\n </div>\n </div>\n\n <div class=\"file-list-header\">\n <span class=\"file-list-title\">{props.t(\"instanceShell.filesShell.fileListTitle\")}</span>\n <span class=\"file-list-count\">{filteredEntries().length}</span>\n </div>\n\n <Show when={props.parentPath()}>\n {(p) => (\n <div class=\"file-list-item\" onClick={() => props.onLoadEntries(p())}>\n <div class=\"file-list-item-content\">\n <div class=\"file-list-item-path\" title={p()}>\n <span class=\"file-path-text\">..</span>\n </div>\n </div>\n </div>\n )}\n </Show>\n\n <Show when={initialListLoading()}>\n <div class=\"p-3 text-xs text-secondary\">{props.t(\"instanceInfo.loading\")}</div>\n </Show>\n\n <Show\n when={!props.browserError() && !initialListLoading() && filteredEntries().length > 0}\n fallback={\n !initialListLoading()\n ? props.browserError()\n ? <div class=\"p-3 text-xs text-error\">{props.browserError()}</div>\n : <div class=\"p-3 text-xs text-secondary\">{listEmptyMessage()}</div>\n : undefined\n }\n >\n <For each={filteredEntries()}>\n {(item) => (\n <div\n class={`file-list-item ${props.browserSelectedPath() === item.path ? \"file-list-item-active\" : \"\"}`}\n onClick={() => {\n if (item.type === \"directory\") {\n props.onLoadEntries(item.path)\n return\n }\n props.onRequestOpenFile(item.path)\n }}\n title={item.path}\n >\n <div class=\"file-list-item-content\">\n <div class=\"file-list-item-path\" title={item.path}>\n <span class=\"file-path-text\">{item.name}</span>\n </div>\n <div class=\"flex items-center gap-2 shrink-0\">\n <div class=\"file-list-item-stats\">\n <span class=\"text-[10px] text-secondary\">{item.type}</span>\n </div>\n <Show\n when={canOpenWorkspacePaths()}\n fallback={\n <button\n type=\"button\"\n class=\"git-change-row-action\"\n title={props.t(\"instanceShell.filesShell.actions.copyPath\")}\n aria-label={props.t(\"instanceShell.filesShell.actions.copyPath\")}\n onClick={(event) => void handleCopyPath(item.path, event)}\n >\n <Copy class=\"w-3 h-3\" />\n </button>\n }\n >\n <div onClick={(event) => event.stopPropagation()} onPointerDown={(event) => event.stopPropagation()}>\n <ActionOverflowMenu\n items={rowActions(item)}\n label={props.t(\"instanceShell.filesShell.actions.more\", { name: item.name })}\n triggerClass=\"git-change-row-action file-row-action-menu\"\n />\n </div>\n </Show>\n </div>\n </div>\n </div>\n )}\n </For>\n </Show>\n </>\n )\n\n const handleMarkdownPreviewKeyDown = (event: KeyboardEvent) => {\n if (!(event.ctrlKey || event.metaKey) || event.key.toLowerCase() !== \"s\") return\n if (props.browserSelectedSaving() || !props.browserSelectedDirty()) return\n event.preventDefault()\n handleSave()\n }\n\n const renderContent = (): JSX.Element => {\n const headerDisplayedPath = () => props.browserSelectedPath() || props.browserPath()\n\n const emptyViewerMessage = () => {\n if (initialListLoading()) return props.t(\"instanceInfo.loading\")\n return props.t(\"instanceShell.filesShell.viewerEmpty\")\n }\n\n const renderViewer = () => (\n <div class=\"file-viewer-panel flex-1\">\n <div class={showingMarkdownPreview() ? \"file-viewer-content\" : \"file-viewer-content file-viewer-content--monaco\"}>\n <Show\n when={props.browserSelectedLoading()}\n fallback={\n <Show\n when={props.browserSelectedError()}\n fallback={\n <Show\n when={\n props.browserSelectedPath() && props.browserSelectedContent() !== null\n ? { path: props.browserSelectedPath() as string, content: props.browserSelectedContent() as string }\n : null\n }\n fallback={\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{emptyViewerMessage()}</span>\n </div>\n }\n >\n {(payload) => (\n <Show\n when={showingMarkdownPreview()}\n fallback={\n <Suspense\n fallback={\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{props.t(\"instanceInfo.loading\")}</span>\n </div>\n }\n >\n <LazyMonacoFileViewer\n scopeKey={props.scopeKey()}\n path={payload().path}\n content={payload().content}\n wordWrap={props.wordWrapMode()}\n onSave={props.onSave}\n onContentChange={props.onContentChange}\n />\n </Suspense>\n }\n >\n <div\n ref={markdownPreviewRef}\n class=\"h-full outline-none\"\n tabIndex={0}\n onKeyDown={handleMarkdownPreviewKeyDown}\n onMouseDown={() => markdownPreviewRef?.focus()}\n >\n <Markdown part={{ type: \"text\", text: payload().content }} isDark={isDark()} escapeRawHtml />\n </div>\n </Show>\n )}\n </Show>\n }\n >\n {(err) => (\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{err()}</span>\n </div>\n )}\n </Show>\n }\n >\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{props.t(\"instanceInfo.loading\")}</span>\n </div>\n </Show>\n </div>\n </div>\n )\n\n return (\n <SplitFilePanel\n header={\n <>\n <div class=\"files-tab-stats\">\n <span class=\"files-tab-stat\">\n <span class=\"files-tab-selected-path\" title={headerDisplayedPath()}>\n <span class=\"file-path-text\">{headerDisplayedPath()}</span>\n </span>\n </span>\n <Show when={props.browserLoading()}>\n <span>{props.t(\"instanceInfo.loading\")}</span>\n </Show>\n <Show when={props.browserError()}>{(err) => <span class=\"text-error\">{err()}</span>}</Show>\n </div>\n <button\n type=\"button\"\n class={`file-viewer-toolbar-button${showingMarkdownPreview() ? \" active\" : \"\"}`}\n disabled={!selectedMarkdownFile()}\n style={{ \"margin-inline-start\": \"auto\" }}\n onClick={() => selectedMarkdownFile() && setMarkdownPreviewEnabled((prev) => !prev)}\n >\n {showingMarkdownPreview()\n ? props.t(\"instanceShell.filesShell.showSource\")\n : props.t(\"instanceShell.filesShell.previewMarkdown\")}\n </button>\n <button\n type=\"button\"\n class=\"files-header-icon-button\"\n title={props.t(\"instanceShell.rightPanel.actions.save\") || \"Save (Ctrl+S)\"}\n aria-label={props.t(\"instanceShell.rightPanel.actions.save\") || \"Save\"}\n disabled={props.browserSelectedSaving() || !props.browserSelectedDirty()}\n onClick={handleSave}\n >\n <Show when={props.browserSelectedSaving()} fallback={<Save class=\"h-4 w-4\" />}>\n <RefreshCw class=\"h-4 w-4 animate-spin\" />\n </Show>\n </button>\n <button\n type=\"button\"\n class=\"files-header-icon-button\"\n title={props.t(\"instanceShell.rightPanel.actions.refresh\")}\n aria-label={props.t(\"instanceShell.rightPanel.actions.refresh\")}\n disabled={props.browserLoading()}\n onClick={() => props.onRefresh()}\n >\n <RefreshCw class={`h-4 w-4${props.browserLoading() ? \" animate-spin\" : \"\"}`} />\n </button>\n </>\n }\n list={{ panel: () => <FileList />, overlay: () => <FileList /> }}\n viewer={renderViewer()}\n viewerActions={\n <button\n type=\"button\"\n class=\"file-viewer-toolbar-icon-button icon-toggle\"\n title={props.wordWrapMode() === \"on\" ? props.t(\"instanceShell.filesShell.disableWordWrap\") : props.t(\"instanceShell.filesShell.enableWordWrap\")}\n aria-label={props.wordWrapMode() === \"on\" ? props.t(\"instanceShell.filesShell.disableWordWrap\") : props.t(\"instanceShell.filesShell.enableWordWrap\")}\n data-active={props.wordWrapMode() === \"on\" ? \"true\" : undefined}\n disabled={showingMarkdownPreview()}\n onClick={() => props.onWordWrapModeChange(props.wordWrapMode() === \"on\" ? \"off\" : \"on\")}\n >\n <WrapText class=\"h-4 w-4\" />\n </button>\n }\n listOpen={props.listOpen()}\n onToggleList={props.onToggleList}\n splitWidth={props.splitWidth()}\n onResizeMouseDown={props.onResizeMouseDown}\n onResizeTouchStart={props.onResizeTouchStart}\n isPhoneLayout={props.isPhoneLayout()}\n overlayAriaLabel={props.t(\"instanceShell.rightPanel.tabs.files\")}\n />\n )\n }\n\n return <>{renderContent()}</>\n}\n\nexport default FilesTab\n"],"file":"assets/FilesTab-CgfwF6tR.js"}
1
+ {"version":3,"mappings":"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","names":["LazyMonacoFileViewer","lazy","__vitePreload","n","then","module","default","MonacoFileViewer","isWindowsDesktop","navigator","test","userAgent","isMacDesktop","safeWindowsOpenExtensions","Set","windowsEditExtensions","windowsDefaultAction","path","name","split","pop","dot","lastIndexOf","extension","slice","toLowerCase","has","isMarkdownPath","FilesTab","props","filterQuery","setFilterQuery","createSignal","isDark","useTheme","markdownPreviewEnabled","setMarkdownPreviewEnabled","markdownPreviewRef","createEffect","browserPath","sortedEntries","createMemo","browserEntries","sort","a","b","aDir","type","bDir","String","localeCompare","normalizedQuery","trim","filteredEntries","query","entries","filter","item","includes","initialListLoading","browserLoading","listEmptyMessage","t","selectedMarkdownFile","browserSelectedPath","showingMarkdownPreview","handleSave","content","browserSelectedContent","onSave","handleCopyPath","event","stopPropagation","ok","copyToClipboard","showToastNotification","message","variant","handleNativeOpen","target","openWorkspacePath","instanceId","worktreeSlug","error","Error","rowActions","items","canOpenWorkspacePaths","isMacApp","endsWith","push","key","label","icon","_$createComponent","FolderOpen","onSelect","TerminalSquare","open","edit","choose","ExternalLink","Copy","requestAnimationFrame","focus","FileList","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","_$insert","Search","$$input","currentTarget","value","_$effect","_p$","_v$","_v$2","e","_$setAttribute","undefined","_el$5","_tmpl$2","_el$6","_el$7","length","Show","when","parentPath","children","_el$9","_tmpl$4","_el$0","_el$1","$$click","onLoadEntries","p","_el$8","_tmpl$3","_$memo","browserError","fallback","_el$10","_tmpl$5","_el$11","For","each","_el$12","_tmpl$7","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","onRequestOpenFile","_el$20","_tmpl$8","_v$6","_v$7","_el$19","_tmpl$6","$$pointerdown","ActionOverflowMenu","triggerClass","_v$3","_v$4","_v$5","_$className","handleMarkdownPreviewKeyDown","ctrlKey","metaKey","browserSelectedSaving","browserSelectedDirty","preventDefault","renderContent","headerDisplayedPath","emptyViewerMessage","renderViewer","_el$21","_tmpl$0","_el$22","browserSelectedLoading","browserSelectedError","_el$25","_tmpl$9","_el$26","payload","Suspense","_el$28","_el$29","scopeKey","wordWrap","wordWrapMode","onContentChange","_el$27","_tmpl$1","$$mousedown","$$keydown","_ref$","_$use","Markdown","part","text","escapeRawHtml","_el$30","_el$31","err","_el$23","_el$24","SplitFilePanel","header","_el$32","_tmpl$11","_el$33","_el$34","_el$35","_el$36","_tmpl$10","_el$40","_tmpl$14","_el$37","_tmpl$12","prev","_c$","_v$8","_v$9","disabled","_el$38","_tmpl$13","Save","RefreshCw","_v$0","_v$1","_v$10","_el$39","onRefresh","_v$11","_v$12","_v$13","list","panel","overlay","viewer","viewerActions","_el$41","_tmpl$15","onWordWrapModeChange","WrapText","_v$14","_v$15","_v$16","_v$17","o","listOpen","onToggleList","splitWidth","onResizeMouseDown","onResizeTouchStart","isPhoneLayout","overlayAriaLabel","_$delegateEvents"],"ignoreList":[],"sources":["../../../components/instance/shell/right-panel/tabs/FilesTab.tsx"],"sourcesContent":["import { For, Show, Suspense, createEffect, createMemo, createSignal, lazy, type Accessor, type Component, type JSX } from \"solid-js\"\n\nimport { Copy, ExternalLink, FolderOpen, RefreshCw, Save, Search, TerminalSquare, WrapText } from \"lucide-solid\"\n\nimport SplitFilePanel from \"../components/SplitFilePanel\"\nimport { Markdown } from \"../../../../markdown\"\nimport { copyToClipboard } from \"../../../../../lib/clipboard\"\nimport { showToastNotification } from \"../../../../../lib/notifications\"\nimport { useTheme } from \"../../../../../lib/theme\"\nimport ActionOverflowMenu, { type ActionOverflowMenuItem } from \"../../../../action-overflow-menu\"\nimport { canOpenWorkspacePaths, openWorkspacePath } from \"../../../../../lib/workspace-open\"\n\nconst LazyMonacoFileViewer = lazy(() =>\n import(\"../../../../file-viewer/monaco-file-viewer\").then((module) => ({ default: module.MonacoFileViewer })),\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\nfunction isMarkdownPath(path: string | null | undefined): boolean {\n if (!path) return false\n return /\\.(md|markdown|mdown|mkdn)$/i.test(path)\n}\n\nexport interface FileBrowserEntry {\n name: string\n path: string\n type: \"file\" | \"directory\"\n}\n\ninterface FilesTabProps {\n t: (key: string, vars?: Record<string, any>) => string\n\n browserPath: Accessor<string>\n browserEntries: Accessor<FileBrowserEntry[] | null>\n browserLoading: Accessor<boolean>\n browserError: Accessor<string | null>\n\n browserSelectedPath: Accessor<string | null>\n browserSelectedContent: Accessor<string | null>\n browserSelectedLoading: Accessor<boolean>\n browserSelectedError: Accessor<string | null>\n browserSelectedDirty: Accessor<boolean>\n browserSelectedSaving: Accessor<boolean>\n wordWrapMode: Accessor<\"on\" | \"off\">\n\n parentPath: Accessor<string | null>\n scopeKey: Accessor<string>\n instanceId: string\n worktreeSlug: Accessor<string>\n\n onLoadEntries: (path: string) => void\n onRequestOpenFile: (path: string) => void\n onRefresh: () => void\n onSave: (content: string) => void\n onContentChange: (content: string) => void\n onWordWrapModeChange: (mode: \"on\" | \"off\") => void\n\n listOpen: Accessor<boolean>\n onToggleList: () => void\n splitWidth: Accessor<number>\n onResizeMouseDown: (event: MouseEvent) => void\n onResizeTouchStart: (event: TouchEvent) => void\n isPhoneLayout: Accessor<boolean>\n}\n\nconst FilesTab: Component<FilesTabProps> = (props) => {\n const [filterQuery, setFilterQuery] = createSignal(\"\")\n const { isDark } = useTheme()\n const [markdownPreviewEnabled, setMarkdownPreviewEnabled] = createSignal(false)\n let markdownPreviewRef: HTMLDivElement | undefined\n\n createEffect(() => {\n props.browserPath()\n setFilterQuery(\"\")\n })\n\n const sortedEntries = createMemo(() => {\n const entries = props.browserEntries() || []\n return [...entries].sort((a, b) => {\n const aDir = a.type === \"directory\" ? 0 : 1\n const bDir = b.type === \"directory\" ? 0 : 1\n if (aDir !== bDir) return aDir - bDir\n return String(a.name || \"\").localeCompare(String(b.name || \"\"))\n })\n })\n\n const normalizedQuery = createMemo(() => filterQuery().trim().toLowerCase())\n\n const filteredEntries = createMemo(() => {\n const query = normalizedQuery()\n const entries = sortedEntries()\n if (!query) return entries\n return entries.filter((item) => {\n const name = String(item.name || \"\").toLowerCase()\n return name.includes(query)\n })\n })\n\n const initialListLoading = () => props.browserLoading() && props.browserEntries() === null\n\n const listEmptyMessage = () =>\n normalizedQuery() ? props.t(\"instanceShell.filesShell.search.empty\") : props.t(\"instanceShell.filesShell.listEmpty\")\n\n const selectedMarkdownFile = createMemo(() => isMarkdownPath(props.browserSelectedPath()))\n const showingMarkdownPreview = createMemo(() => selectedMarkdownFile() && markdownPreviewEnabled())\n\n createEffect(() => {\n if (!selectedMarkdownFile()) {\n setMarkdownPreviewEnabled(false)\n }\n })\n const handleSave = () => {\n const content = props.browserSelectedContent()\n if (content !== undefined && content !== null) {\n props.onSave(content)\n }\n }\n\n const handleCopyPath = async (path: string, event?: MouseEvent) => {\n event?.stopPropagation()\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 (\n target: \"default\" | \"reveal\" | \"terminal\",\n path: string,\n ) => {\n try {\n await openWorkspacePath({\n target,\n instanceId: props.instanceId,\n worktreeSlug: props.worktreeSlug(),\n path,\n })\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 = (item: FileBrowserEntry): ActionOverflowMenuItem[] => {\n const items: ActionOverflowMenuItem[] = []\n if (canOpenWorkspacePaths()) {\n if (item.type === \"directory\") {\n const isMacApp = isMacDesktop && item.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\", item.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\", item.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(item.path)]),\n icon: <ExternalLink class=\"w-3.5 h-3.5\" />,\n onSelect: () => handleNativeOpen(\"default\", item.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\", item.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(item.path),\n })\n return items\n }\n\n createEffect(() => {\n if (!showingMarkdownPreview()) return\n requestAnimationFrame(() => markdownPreviewRef?.focus())\n })\n\n const FileList: Component = () => (\n <>\n <div class=\"px-2 py-2 border-b border-base\">\n <div class=\"selector-input-group\">\n <div class=\"flex items-center gap-2 px-3 text-muted\">\n <Search class=\"w-4 h-4\" />\n </div>\n <input\n type=\"text\"\n value={filterQuery()}\n onInput={(event) => setFilterQuery(event.currentTarget.value)}\n placeholder={props.t(\"instanceShell.filesShell.search.placeholder\")}\n aria-label={props.t(\"instanceShell.filesShell.search.ariaLabel\")}\n class=\"selector-input\"\n />\n </div>\n </div>\n\n <div class=\"file-list-header\">\n <span class=\"file-list-title\">{props.t(\"instanceShell.filesShell.fileListTitle\")}</span>\n <span class=\"file-list-count\">{filteredEntries().length}</span>\n </div>\n\n <Show when={props.parentPath()}>\n {(p) => (\n <div class=\"file-list-item\" onClick={() => props.onLoadEntries(p())}>\n <div class=\"file-list-item-content\">\n <div class=\"file-list-item-path\" title={p()}>\n <span class=\"file-path-text\">..</span>\n </div>\n </div>\n </div>\n )}\n </Show>\n\n <Show when={initialListLoading()}>\n <div class=\"p-3 text-xs text-secondary\">{props.t(\"instanceInfo.loading\")}</div>\n </Show>\n\n <Show\n when={!props.browserError() && !initialListLoading() && filteredEntries().length > 0}\n fallback={\n !initialListLoading()\n ? props.browserError()\n ? <div class=\"p-3 text-xs text-error\">{props.browserError()}</div>\n : <div class=\"p-3 text-xs text-secondary\">{listEmptyMessage()}</div>\n : undefined\n }\n >\n <For each={filteredEntries()}>\n {(item) => (\n <div\n class={`file-list-item ${props.browserSelectedPath() === item.path ? \"file-list-item-active\" : \"\"}`}\n onClick={() => {\n if (item.type === \"directory\") {\n props.onLoadEntries(item.path)\n return\n }\n props.onRequestOpenFile(item.path)\n }}\n title={item.path}\n >\n <div class=\"file-list-item-content\">\n <div class=\"file-list-item-path\" title={item.path}>\n <span class=\"file-path-text\">{item.name}</span>\n </div>\n <div class=\"flex items-center gap-2 shrink-0\">\n <div class=\"file-list-item-stats\">\n <span class=\"text-[10px] text-secondary\">{item.type}</span>\n </div>\n <Show\n when={canOpenWorkspacePaths()}\n fallback={\n <button\n type=\"button\"\n class=\"git-change-row-action\"\n title={props.t(\"instanceShell.filesShell.actions.copyPath\")}\n aria-label={props.t(\"instanceShell.filesShell.actions.copyPath\")}\n onClick={(event) => void handleCopyPath(item.path, event)}\n >\n <Copy class=\"w-3 h-3\" />\n </button>\n }\n >\n <div onClick={(event) => event.stopPropagation()} onPointerDown={(event) => event.stopPropagation()}>\n <ActionOverflowMenu\n items={rowActions(item)}\n label={props.t(\"instanceShell.filesShell.actions.more\", { name: item.name })}\n triggerClass=\"git-change-row-action file-row-action-menu\"\n />\n </div>\n </Show>\n </div>\n </div>\n </div>\n )}\n </For>\n </Show>\n </>\n )\n\n const handleMarkdownPreviewKeyDown = (event: KeyboardEvent) => {\n if (!(event.ctrlKey || event.metaKey) || event.key.toLowerCase() !== \"s\") return\n if (props.browserSelectedSaving() || !props.browserSelectedDirty()) return\n event.preventDefault()\n handleSave()\n }\n\n const renderContent = (): JSX.Element => {\n const headerDisplayedPath = () => props.browserSelectedPath() || props.browserPath()\n\n const emptyViewerMessage = () => {\n if (initialListLoading()) return props.t(\"instanceInfo.loading\")\n return props.t(\"instanceShell.filesShell.viewerEmpty\")\n }\n\n const renderViewer = () => (\n <div class=\"file-viewer-panel flex-1\">\n <div class={showingMarkdownPreview() ? \"file-viewer-content\" : \"file-viewer-content file-viewer-content--monaco\"}>\n <Show\n when={props.browserSelectedLoading()}\n fallback={\n <Show\n when={props.browserSelectedError()}\n fallback={\n <Show\n when={\n props.browserSelectedPath() && props.browserSelectedContent() !== null\n ? { path: props.browserSelectedPath() as string, content: props.browserSelectedContent() as string }\n : null\n }\n fallback={\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{emptyViewerMessage()}</span>\n </div>\n }\n >\n {(payload) => (\n <Show\n when={showingMarkdownPreview()}\n fallback={\n <Suspense\n fallback={\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{props.t(\"instanceInfo.loading\")}</span>\n </div>\n }\n >\n <LazyMonacoFileViewer\n scopeKey={props.scopeKey()}\n path={payload().path}\n content={payload().content}\n wordWrap={props.wordWrapMode()}\n onSave={props.onSave}\n onContentChange={props.onContentChange}\n />\n </Suspense>\n }\n >\n <div\n ref={markdownPreviewRef}\n class=\"h-full outline-none\"\n tabIndex={0}\n onKeyDown={handleMarkdownPreviewKeyDown}\n onMouseDown={() => markdownPreviewRef?.focus()}\n >\n <Markdown part={{ type: \"text\", text: payload().content }} isDark={isDark()} escapeRawHtml />\n </div>\n </Show>\n )}\n </Show>\n }\n >\n {(err) => (\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{err()}</span>\n </div>\n )}\n </Show>\n }\n >\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{props.t(\"instanceInfo.loading\")}</span>\n </div>\n </Show>\n </div>\n </div>\n )\n\n return (\n <SplitFilePanel\n header={\n <>\n <div class=\"files-tab-stats\">\n <span class=\"files-tab-stat\">\n <span class=\"files-tab-selected-path\" title={headerDisplayedPath()}>\n <span class=\"file-path-text\">{headerDisplayedPath()}</span>\n </span>\n </span>\n <Show when={props.browserLoading()}>\n <span>{props.t(\"instanceInfo.loading\")}</span>\n </Show>\n <Show when={props.browserError()}>{(err) => <span class=\"text-error\">{err()}</span>}</Show>\n </div>\n <button\n type=\"button\"\n class={`file-viewer-toolbar-button${showingMarkdownPreview() ? \" active\" : \"\"}`}\n disabled={!selectedMarkdownFile()}\n style={{ \"margin-inline-start\": \"auto\" }}\n onClick={() => selectedMarkdownFile() && setMarkdownPreviewEnabled((prev) => !prev)}\n >\n {showingMarkdownPreview()\n ? props.t(\"instanceShell.filesShell.showSource\")\n : props.t(\"instanceShell.filesShell.previewMarkdown\")}\n </button>\n <button\n type=\"button\"\n class=\"files-header-icon-button\"\n title={props.t(\"instanceShell.rightPanel.actions.save\") || \"Save (Ctrl+S)\"}\n aria-label={props.t(\"instanceShell.rightPanel.actions.save\") || \"Save\"}\n disabled={props.browserSelectedSaving() || !props.browserSelectedDirty()}\n onClick={handleSave}\n >\n <Show when={props.browserSelectedSaving()} fallback={<Save class=\"h-4 w-4\" />}>\n <RefreshCw class=\"h-4 w-4 animate-spin\" />\n </Show>\n </button>\n <button\n type=\"button\"\n class=\"files-header-icon-button\"\n title={props.t(\"instanceShell.rightPanel.actions.refresh\")}\n aria-label={props.t(\"instanceShell.rightPanel.actions.refresh\")}\n disabled={props.browserLoading()}\n onClick={() => props.onRefresh()}\n >\n <RefreshCw class={`h-4 w-4${props.browserLoading() ? \" animate-spin\" : \"\"}`} />\n </button>\n </>\n }\n list={{ panel: () => <FileList />, overlay: () => <FileList /> }}\n viewer={renderViewer()}\n viewerActions={\n <button\n type=\"button\"\n class=\"file-viewer-toolbar-icon-button icon-toggle\"\n title={props.wordWrapMode() === \"on\" ? props.t(\"instanceShell.filesShell.disableWordWrap\") : props.t(\"instanceShell.filesShell.enableWordWrap\")}\n aria-label={props.wordWrapMode() === \"on\" ? props.t(\"instanceShell.filesShell.disableWordWrap\") : props.t(\"instanceShell.filesShell.enableWordWrap\")}\n data-active={props.wordWrapMode() === \"on\" ? \"true\" : undefined}\n disabled={showingMarkdownPreview()}\n onClick={() => props.onWordWrapModeChange(props.wordWrapMode() === \"on\" ? \"off\" : \"on\")}\n >\n <WrapText class=\"h-4 w-4\" />\n </button>\n }\n listOpen={props.listOpen()}\n onToggleList={props.onToggleList}\n splitWidth={props.splitWidth()}\n onResizeMouseDown={props.onResizeMouseDown}\n onResizeTouchStart={props.onResizeTouchStart}\n isPhoneLayout={props.isPhoneLayout()}\n overlayAriaLabel={props.t(\"instanceShell.rightPanel.tabs.files\")}\n />\n )\n }\n\n return <>{renderContent()}</>\n}\n\nexport default FilesTab\n"],"file":"assets/FilesTab-C8fnWsM4.js"}
@@ -1,3 +1,3 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/monaco-viewer-BB3_mBkA.js","assets/git-diff-vendor-ChbWBukG.js","assets/fast-diff-vendor-DgdwVvTQ.js","assets/highlight-vendor-8FKMu9os.js","assets/git-diff-vendor-HAZkIolJ.css"])))=>i.map(i=>d[i]);
2
- import{u as re,_ as ce}from"./index-BfORYhCR.js";import{t as u,i as n,m as F,d as c,e as ie,r as p,a as ee}from"./monaco-viewer-BB3_mBkA.js";import{k as r,p as oe,a as M,c as b,S as x,F as te,B as de,z as ge}from"./git-diff-vendor-ChbWBukG.js";import{S as he,d as ue,e as fe,G as ve}from"./App-lAZZOE--.js";import{A as me}from"./align-justify-Dc1gjAkp.js";import{I as be,bP as $e,C as ne}from"./main-CA9pw_Mr.js";import{S as Ce}from"./SplitFilePanel-D9FfoZUZ.js";import{W as we}from"./wrap-text-Dq8UDb8D.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";import"./client-state-DmImbmIC.js";const _e=[["path",{d:"M12 22v-6",key:"6o8u61"}],["path",{d:"M12 8V2",key:"1wkif3"}],["path",{d:"M4 12H2",key:"rhcxmi"}],["path",{d:"M10 12H8",key:"s88cx1"}],["path",{d:"M16 12h-2",key:"10asgb"}],["path",{d:"M22 12h-2",key:"14jgyd"}],["path",{d:"m15 19-3 3-3-3",key:"11eu04"}],["path",{d:"m15 5-3-3-3 3",key:"itvq4r"}]],Se=e=>r(be,oe(e,{name:"UnfoldVertical",iconNode:_e}));var ye=u('<div class=file-viewer-toolbar><button type=button class="file-viewer-toolbar-icon-button icon-toggle"></button><button type=button class="file-viewer-toolbar-icon-button icon-toggle">');const xe=e=>{const{t:k}=re(),I=()=>e.viewMode==="split"?"unified":"split",L=()=>e.contextMode==="collapsed"?"expanded":"collapsed",O=()=>I()==="split"?k("instanceShell.diff.switchToSplit"):k("instanceShell.diff.switchToUnified"),C=()=>L()==="collapsed"?k("instanceShell.diff.hideUnchanged"):k("instanceShell.diff.showFull");return(()=>{var U=ye(),S=U.firstChild,W=S.nextSibling;return S.$$click=()=>e.onViewModeChange(I()),n(S,(()=>{var g=F(()=>I()==="split");return()=>g()?r(he,{class:"h-4 w-4","aria-hidden":"true"}):r(me,{class:"h-4 w-4","aria-hidden":"true"})})()),W.$$click=()=>e.onContextModeChange(L()),n(W,(()=>{var g=F(()=>L()==="collapsed");return()=>g()?r(ue,{class:"h-4 w-4","aria-hidden":"true"}):r(Se,{class:"h-4 w-4","aria-hidden":"true"})})()),M(g=>{var G=O(),R=e.viewMode==="split"?"true":void 0,K=O(),z=C(),H=e.contextMode==="expanded"?"true":void 0,o=C();return G!==g.e&&c(S,"aria-label",g.e=G),R!==g.t&&c(S,"data-active",g.t=R),K!==g.a&&c(S,"title",g.a=K),z!==g.o&&c(W,"aria-label",g.o=z),H!==g.i&&c(W,"data-active",g.i=H),o!==g.n&&c(W,"title",g.n=o),g},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),U})()};ie(["click"]);var q=u("<div class=file-viewer-empty><span class=file-viewer-empty-text>"),Me=u('<div class="file-viewer-panel flex-1"><div class="file-viewer-content file-viewer-content--monaco">'),ke=u('<div class="p-3 text-xs text-secondary">'),Ie=u('<span class="git-change-row-action-bar git-change-row-action-bar-vertical">'),Le=u('<div><div class=file-list-item-content><div class=file-list-item-path><span class=file-path-text></span></div><div class=git-change-list-item-right><div class=file-list-item-stats><span class=file-list-item-additions>+</span><span class=file-list-item-deletions>-</span></div></div></div><div class=git-change-list-item-actions-zone><div class=git-change-list-item-actions><button type=button class=git-change-row-action><span aria-hidden=true><span class="git-change-row-action-bar git-change-row-action-bar-horizontal">'),We=u("<div class=git-change-section-items>"),Ve=u('<div class=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>'),Te=u('<div class=git-change-section-items><div class=git-change-commit-box><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">'),Ee=u('<div class=git-change-sections><div class=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-row><span class=git-change-section-title></span></span></span><span class=git-change-section-count>'),Pe=u('<span class="status-indicator session-status-list worktree-indicator git-change-section-badge"><span class=worktree-indicator-label>'),Ae=u("<span class=files-tab-selected-path><span class=file-path-text>"),Re=u('<div class=files-tab-stats style="flex:0 0 auto"><span class="files-tab-stat files-tab-stat-additions"><span class=files-tab-stat-value>+</span></span><span class="files-tab-stat files-tab-stat-deletions"><span class=files-tab-stat-value>-'),ze=u("<button type=button class=files-header-icon-button style=margin-left:auto>"),Be=u("<span class=text-error>"),De=u('<button type=button class="file-viewer-toolbar-icon-button icon-toggle">');const Fe=ge(()=>ce(()=>import("./monaco-viewer-BB3_mBkA.js").then(e=>e.ap),__vite__mapDeps([0,1,2,3,4])).then(e=>({default:e.MonacoDiffViewer}))),Ye=e=>{const k=b(()=>e.activeSessionId()),I=b(()=>!!(k()&&k()!=="info")),L=b(()=>I()?e.entries():null),O=b(()=>{const o=L();return Array.isArray(o)?[...o].sort((h,T)=>String(h.path||"").localeCompare(String(T.path||""))):[]}),C=b(()=>fe(O())),U=b(()=>C().reduce((o,h)=>(o.additions+=typeof h.additions=="number"?h.additions:0,o.deletions+=typeof h.deletions=="number"?h.deletions:0,o),{additions:0,deletions:0})),S=b(()=>C().filter(o=>o.section==="staged")),W=b(()=>C().filter(o=>o.section==="unstaged")),g=b(()=>S().length>0&&e.commitMessage().trim().length>0&&!e.commitSubmitting()),G=b(()=>{const o=C(),h=e.selectedItemId(),T=e.mostChangedItemId(),E=o.find(B=>B.id===h)||(T?o.find(B=>B.id===T):void 0);return(E==null?void 0:E.entry)??null}),R=b(()=>I()?L()===null?e.t("instanceShell.gitChanges.loading"):C().length===0?e.t("instanceShell.gitChanges.empty"):e.t("instanceShell.filesShell.viewerEmpty"):e.t("instanceShell.gitChanges.noSessionSelected")),K=b(()=>e.selectedError()===e.t("instanceShell.gitChanges.binaryViewer")),z=()=>e.diffWordWrapMode()==="on"?e.t("instanceShell.diff.disableWordWrap"):e.t("instanceShell.diff.enableWordWrap");return F(()=>{const o=U(),h=G(),T=C(),E=S(),B=W(),ae=()=>(()=>{var t=Me(),i=t.firstChild;return n(i,r(x,{get when(){return e.selectedLoading()},get fallback(){return r(x,{get when(){return e.selectedError()},get fallback(){return r(x,{get when(){return F(()=>!!(h&&e.selectedBefore()!==null&&e.selectedAfter()!==null))()?{path:h.path,before:e.selectedBefore(),after:e.selectedAfter()}:null},get fallback(){return(()=>{var a=q(),s=a.firstChild;return n(s,R),a})()},children:a=>r(de,{get fallback(){return(()=>{var s=q(),l=s.firstChild;return n(l,()=>e.t("instanceInfo.loading")),s})()},get children(){return r(Fe,{get scopeKey(){return e.scopeKey()},get path(){return String(a().path||"")},get before(){return String(a().before||"")},get after(){return String(a().after||"")},get viewMode(){return e.diffViewMode()},get contextMode(){return e.diffContextMode()},get wordWrap(){return e.diffWordWrapMode()},get insertContextLabel(){return e.t("instanceShell.gitChanges.actions.insertContext")},get onRequestInsertContext(){return K()?void 0:s=>{const l=e.selectedItemId();if(!l)return;const f=C().find(v=>v.id===l);f&&e.onInsertContext(f,s)}}})}})})},children:a=>(()=>{var s=q(),l=s.firstChild;return n(l,a),s})()})},get children(){var a=q(),s=a.firstChild;return n(s,()=>e.t("instanceInfo.loading")),a}})),t})(),le=()=>(()=>{var t=ke();return n(t,R),t})(),N=t=>{const i=b(()=>e.selectedBulkItemIds().has(t.id)),a=t.section==="staged"?e.t("instanceShell.gitChanges.actions.unstage"):e.t("instanceShell.gitChanges.actions.stage"),s=()=>{t.section==="staged"?e.onUnstageFile(t):e.onStageFile(t)};return(()=>{var l=Le(),f=l.firstChild,v=f.firstChild,P=v.firstChild,w=v.nextSibling,_=w.firstChild,$=_.firstChild;$.firstChild;var y=$.nextSibling;y.firstChild;var D=f.nextSibling,m=D.firstChild,V=m.firstChild,A=V.firstChild;return A.firstChild,l.$$click=d=>e.onRowClick(t,d),l.$$mousedown=d=>{(d.shiftKey||d.ctrlKey||d.metaKey)&&d.preventDefault()},n(P,()=>t.path),n($,()=>t.additions,null),n(y,()=>t.deletions,null),V.$$click=d=>{d.stopPropagation(),s()},c(V,"title",a),c(V,"aria-label",a),n(A,r(x,{get when(){return t.section!=="staged"},get children(){return Ie()}}),null),M(d=>{var J=`file-list-item git-change-list-item ${e.selectedItemId()===t.id?"file-list-item-active":""} ${i()?"git-change-list-item-bulk-selected":""}`,Q=t.path,X=t.path,Y=t.path,Z=`git-change-row-action-glyph ${t.section==="staged"?"git-change-row-action-glyph-minus":"git-change-row-action-glyph-plus"}`;return J!==d.e&&ee(l,d.e=J),Q!==d.t&&c(l,"title",d.t=Q),X!==d.a&&c(f,"title",d.a=X),Y!==d.o&&c(v,"title",d.o=Y),Z!==d.i&&ee(A,d.i=Z),d},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),l})()},se=(t,i,a,s)=>(()=>{var l=Ve(),f=l.firstChild,v=f.firstChild,P=v.firstChild,w=P.nextSibling,_=v.nextSibling;return p(f,"click",s,!0),c(f,"aria-expanded",a),n(P,r(ne,{class:"h-3.5 w-3.5"})),n(w,t),n(_,()=>i.length),n(l,r(x,{when:a,get children(){var $=We();return n($,r(te,{each:i,children:y=>N(y)})),$}}),null),l})(),j=()=>r(x,{get when(){return T.length>0},get fallback(){return le()},get children(){var t=Ee(),i=t.firstChild,a=i.firstChild,s=a.firstChild,l=s.firstChild,f=l.nextSibling,v=f.firstChild,P=s.nextSibling;return p(a,"click",e.onToggleStagedOpen,!0),n(l,r(ne,{class:"h-3.5 w-3.5"})),n(v,()=>e.t("instanceShell.gitChanges.sections.staged")),n(f,r(x,{get when(){return e.branchLabel()},children:w=>(()=>{var _=Pe(),$=_.firstChild;return n(_,r(ve,{class:"w-3.5 h-3.5","aria-hidden":"true"}),$),n($,w),M(()=>c(_,"title",`Branch: ${w()}`)),_})()}),null),n(P,()=>E.length),n(i,r(x,{get when(){return e.stagedOpen()},get children(){var w=Te(),_=w.firstChild,$=_.firstChild,y=$.firstChild,D=y.nextSibling;return y.$$input=m=>e.onCommitMessageInput(m.currentTarget.value),D.$$click=()=>e.onSubmitCommit(),n(D,(()=>{var m=F(()=>!!e.commitSubmitting());return()=>m()?e.t("instanceShell.gitChanges.commit.submitting"):e.t("instanceShell.gitChanges.commit.submit")})()),n(w,r(te,{each:E,children:m=>N(m)}),null),M(m=>{var V=e.t("instanceShell.gitChanges.commit.placeholder"),A=!g();return V!==m.e&&c(y,"placeholder",m.e=V),A!==m.t&&(D.disabled=m.t=A),m},{e:void 0,t:void 0}),M(()=>y.value=e.commitMessage()),w}}),null),n(t,()=>se(e.t("instanceShell.gitChanges.sections.unstaged"),B,e.unstagedOpen(),e.onToggleUnstagedOpen),null),M(()=>c(a,"aria-expanded",e.stagedOpen())),t}});return r(Ce,{get header(){return[(()=>{var t=Ae(),i=t.firstChild;return n(i,()=>(h==null?void 0:h.path)||e.t("instanceShell.rightPanel.tabs.gitChanges")),M(()=>c(t,"title",(h==null?void 0:h.path)||e.t("instanceShell.rightPanel.tabs.gitChanges"))),t})(),(()=>{var t=Re(),i=t.firstChild,a=i.firstChild;a.firstChild;var s=i.nextSibling,l=s.firstChild;return l.firstChild,n(a,()=>o.additions,null),n(l,()=>o.deletions,null),n(t,r(x,{get when(){return e.statusError()},children:f=>(()=>{var v=Be();return n(v,f),v})()}),null),t})(),(()=>{var t=ze();return t.$$click=()=>e.onRefresh(),n(t,r($e,{get class(){return`h-4 w-4${e.statusLoading()?" animate-spin":""}`}})),M(i=>{var a=e.t("instanceShell.rightPanel.actions.refresh"),s=e.t("instanceShell.rightPanel.actions.refresh"),l=!I()||e.statusLoading()||L()===null;return a!==i.e&&c(t,"title",i.e=a),s!==i.t&&c(t,"aria-label",i.t=s),l!==i.a&&(t.disabled=i.a=l),i},{e:void 0,t:void 0,a:void 0}),t})(),r(xe,{get viewMode(){return e.diffViewMode()},get contextMode(){return e.diffContextMode()},get onViewModeChange(){return e.onViewModeChange},get onContextModeChange(){return e.onContextModeChange}})]},list:{panel:j,overlay:j},get viewer(){return ae()},get viewerActions(){return(()=>{var t=De();return t.$$click=()=>e.onWordWrapModeChange(e.diffWordWrapMode()==="on"?"off":"on"),n(t,r(we,{class:"h-4 w-4","aria-hidden":"true"})),M(i=>{var a=z(),s=e.diffWordWrapMode()==="on",l=z();return a!==i.e&&c(t,"aria-label",i.e=a),s!==i.t&&c(t,"aria-pressed",i.t=s),l!==i.a&&c(t,"title",i.a=l),i},{e:void 0,t:void 0,a:void 0}),t})()},get listOpen(){return e.listOpen()},get onToggleList(){return e.onToggleList},get splitWidth(){return e.splitWidth()},get onResizeMouseDown(){return e.onResizeMouseDown},get onResizeTouchStart(){return e.onResizeTouchStart},get isPhoneLayout(){return e.isPhoneLayout()},get overlayAriaLabel(){return e.t("instanceShell.rightPanel.tabs.gitChanges")}})})};ie(["mousedown","click","input"]);export{Ye as default};
3
- //# sourceMappingURL=GitChangesTab-r1JoAD9n.js.map
2
+ import{u as re,_ as ce}from"./index-ef9_CbWU.js";import{t as u,i as n,m as F,d as c,e as ie,r as p,a as ee}from"./monaco-viewer-BB3_mBkA.js";import{k as r,p as oe,a as M,c as b,S as x,F as te,B as de,z as ge}from"./git-diff-vendor-ChbWBukG.js";import{S as he,d as ue,e as fe,G as ve}from"./App-DPj4p3An.js";import{A as me}from"./align-justify-BIN0BnZw.js";import{I as be,bP as $e,C as ne}from"./main-COtTRZe6.js";import{S as Ce}from"./SplitFilePanel-D3S7Zfcc.js";import{W as we}from"./wrap-text-CR-cuiJP.js";import"./fast-diff-vendor-DgdwVvTQ.js";import"./highlight-vendor-8FKMu9os.js";import"./client-state-CBKOWfhu.js";const _e=[["path",{d:"M12 22v-6",key:"6o8u61"}],["path",{d:"M12 8V2",key:"1wkif3"}],["path",{d:"M4 12H2",key:"rhcxmi"}],["path",{d:"M10 12H8",key:"s88cx1"}],["path",{d:"M16 12h-2",key:"10asgb"}],["path",{d:"M22 12h-2",key:"14jgyd"}],["path",{d:"m15 19-3 3-3-3",key:"11eu04"}],["path",{d:"m15 5-3-3-3 3",key:"itvq4r"}]],Se=e=>r(be,oe(e,{name:"UnfoldVertical",iconNode:_e}));var ye=u('<div class=file-viewer-toolbar><button type=button class="file-viewer-toolbar-icon-button icon-toggle"></button><button type=button class="file-viewer-toolbar-icon-button icon-toggle">');const xe=e=>{const{t:k}=re(),I=()=>e.viewMode==="split"?"unified":"split",L=()=>e.contextMode==="collapsed"?"expanded":"collapsed",O=()=>I()==="split"?k("instanceShell.diff.switchToSplit"):k("instanceShell.diff.switchToUnified"),C=()=>L()==="collapsed"?k("instanceShell.diff.hideUnchanged"):k("instanceShell.diff.showFull");return(()=>{var U=ye(),S=U.firstChild,W=S.nextSibling;return S.$$click=()=>e.onViewModeChange(I()),n(S,(()=>{var g=F(()=>I()==="split");return()=>g()?r(he,{class:"h-4 w-4","aria-hidden":"true"}):r(me,{class:"h-4 w-4","aria-hidden":"true"})})()),W.$$click=()=>e.onContextModeChange(L()),n(W,(()=>{var g=F(()=>L()==="collapsed");return()=>g()?r(ue,{class:"h-4 w-4","aria-hidden":"true"}):r(Se,{class:"h-4 w-4","aria-hidden":"true"})})()),M(g=>{var G=O(),R=e.viewMode==="split"?"true":void 0,K=O(),z=C(),H=e.contextMode==="expanded"?"true":void 0,o=C();return G!==g.e&&c(S,"aria-label",g.e=G),R!==g.t&&c(S,"data-active",g.t=R),K!==g.a&&c(S,"title",g.a=K),z!==g.o&&c(W,"aria-label",g.o=z),H!==g.i&&c(W,"data-active",g.i=H),o!==g.n&&c(W,"title",g.n=o),g},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),U})()};ie(["click"]);var q=u("<div class=file-viewer-empty><span class=file-viewer-empty-text>"),Me=u('<div class="file-viewer-panel flex-1"><div class="file-viewer-content file-viewer-content--monaco">'),ke=u('<div class="p-3 text-xs text-secondary">'),Ie=u('<span class="git-change-row-action-bar git-change-row-action-bar-vertical">'),Le=u('<div><div class=file-list-item-content><div class=file-list-item-path><span class=file-path-text></span></div><div class=git-change-list-item-right><div class=file-list-item-stats><span class=file-list-item-additions>+</span><span class=file-list-item-deletions>-</span></div></div></div><div class=git-change-list-item-actions-zone><div class=git-change-list-item-actions><button type=button class=git-change-row-action><span aria-hidden=true><span class="git-change-row-action-bar git-change-row-action-bar-horizontal">'),We=u("<div class=git-change-section-items>"),Ve=u('<div class=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>'),Te=u('<div class=git-change-section-items><div class=git-change-commit-box><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">'),Ee=u('<div class=git-change-sections><div class=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-row><span class=git-change-section-title></span></span></span><span class=git-change-section-count>'),Pe=u('<span class="status-indicator session-status-list worktree-indicator git-change-section-badge"><span class=worktree-indicator-label>'),Ae=u("<span class=files-tab-selected-path><span class=file-path-text>"),Re=u('<div class=files-tab-stats style="flex:0 0 auto"><span class="files-tab-stat files-tab-stat-additions"><span class=files-tab-stat-value>+</span></span><span class="files-tab-stat files-tab-stat-deletions"><span class=files-tab-stat-value>-'),ze=u("<button type=button class=files-header-icon-button style=margin-left:auto>"),Be=u("<span class=text-error>"),De=u('<button type=button class="file-viewer-toolbar-icon-button icon-toggle">');const Fe=ge(()=>ce(()=>import("./monaco-viewer-BB3_mBkA.js").then(e=>e.ap),__vite__mapDeps([0,1,2,3,4])).then(e=>({default:e.MonacoDiffViewer}))),Ye=e=>{const k=b(()=>e.activeSessionId()),I=b(()=>!!(k()&&k()!=="info")),L=b(()=>I()?e.entries():null),O=b(()=>{const o=L();return Array.isArray(o)?[...o].sort((h,T)=>String(h.path||"").localeCompare(String(T.path||""))):[]}),C=b(()=>fe(O())),U=b(()=>C().reduce((o,h)=>(o.additions+=typeof h.additions=="number"?h.additions:0,o.deletions+=typeof h.deletions=="number"?h.deletions:0,o),{additions:0,deletions:0})),S=b(()=>C().filter(o=>o.section==="staged")),W=b(()=>C().filter(o=>o.section==="unstaged")),g=b(()=>S().length>0&&e.commitMessage().trim().length>0&&!e.commitSubmitting()),G=b(()=>{const o=C(),h=e.selectedItemId(),T=e.mostChangedItemId(),E=o.find(B=>B.id===h)||(T?o.find(B=>B.id===T):void 0);return(E==null?void 0:E.entry)??null}),R=b(()=>I()?L()===null?e.t("instanceShell.gitChanges.loading"):C().length===0?e.t("instanceShell.gitChanges.empty"):e.t("instanceShell.filesShell.viewerEmpty"):e.t("instanceShell.gitChanges.noSessionSelected")),K=b(()=>e.selectedError()===e.t("instanceShell.gitChanges.binaryViewer")),z=()=>e.diffWordWrapMode()==="on"?e.t("instanceShell.diff.disableWordWrap"):e.t("instanceShell.diff.enableWordWrap");return F(()=>{const o=U(),h=G(),T=C(),E=S(),B=W(),ae=()=>(()=>{var t=Me(),i=t.firstChild;return n(i,r(x,{get when(){return e.selectedLoading()},get fallback(){return r(x,{get when(){return e.selectedError()},get fallback(){return r(x,{get when(){return F(()=>!!(h&&e.selectedBefore()!==null&&e.selectedAfter()!==null))()?{path:h.path,before:e.selectedBefore(),after:e.selectedAfter()}:null},get fallback(){return(()=>{var a=q(),s=a.firstChild;return n(s,R),a})()},children:a=>r(de,{get fallback(){return(()=>{var s=q(),l=s.firstChild;return n(l,()=>e.t("instanceInfo.loading")),s})()},get children(){return r(Fe,{get scopeKey(){return e.scopeKey()},get path(){return String(a().path||"")},get before(){return String(a().before||"")},get after(){return String(a().after||"")},get viewMode(){return e.diffViewMode()},get contextMode(){return e.diffContextMode()},get wordWrap(){return e.diffWordWrapMode()},get insertContextLabel(){return e.t("instanceShell.gitChanges.actions.insertContext")},get onRequestInsertContext(){return K()?void 0:s=>{const l=e.selectedItemId();if(!l)return;const f=C().find(v=>v.id===l);f&&e.onInsertContext(f,s)}}})}})})},children:a=>(()=>{var s=q(),l=s.firstChild;return n(l,a),s})()})},get children(){var a=q(),s=a.firstChild;return n(s,()=>e.t("instanceInfo.loading")),a}})),t})(),le=()=>(()=>{var t=ke();return n(t,R),t})(),N=t=>{const i=b(()=>e.selectedBulkItemIds().has(t.id)),a=t.section==="staged"?e.t("instanceShell.gitChanges.actions.unstage"):e.t("instanceShell.gitChanges.actions.stage"),s=()=>{t.section==="staged"?e.onUnstageFile(t):e.onStageFile(t)};return(()=>{var l=Le(),f=l.firstChild,v=f.firstChild,P=v.firstChild,w=v.nextSibling,_=w.firstChild,$=_.firstChild;$.firstChild;var y=$.nextSibling;y.firstChild;var D=f.nextSibling,m=D.firstChild,V=m.firstChild,A=V.firstChild;return A.firstChild,l.$$click=d=>e.onRowClick(t,d),l.$$mousedown=d=>{(d.shiftKey||d.ctrlKey||d.metaKey)&&d.preventDefault()},n(P,()=>t.path),n($,()=>t.additions,null),n(y,()=>t.deletions,null),V.$$click=d=>{d.stopPropagation(),s()},c(V,"title",a),c(V,"aria-label",a),n(A,r(x,{get when(){return t.section!=="staged"},get children(){return Ie()}}),null),M(d=>{var J=`file-list-item git-change-list-item ${e.selectedItemId()===t.id?"file-list-item-active":""} ${i()?"git-change-list-item-bulk-selected":""}`,Q=t.path,X=t.path,Y=t.path,Z=`git-change-row-action-glyph ${t.section==="staged"?"git-change-row-action-glyph-minus":"git-change-row-action-glyph-plus"}`;return J!==d.e&&ee(l,d.e=J),Q!==d.t&&c(l,"title",d.t=Q),X!==d.a&&c(f,"title",d.a=X),Y!==d.o&&c(v,"title",d.o=Y),Z!==d.i&&ee(A,d.i=Z),d},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),l})()},se=(t,i,a,s)=>(()=>{var l=Ve(),f=l.firstChild,v=f.firstChild,P=v.firstChild,w=P.nextSibling,_=v.nextSibling;return p(f,"click",s,!0),c(f,"aria-expanded",a),n(P,r(ne,{class:"h-3.5 w-3.5"})),n(w,t),n(_,()=>i.length),n(l,r(x,{when:a,get children(){var $=We();return n($,r(te,{each:i,children:y=>N(y)})),$}}),null),l})(),j=()=>r(x,{get when(){return T.length>0},get fallback(){return le()},get children(){var t=Ee(),i=t.firstChild,a=i.firstChild,s=a.firstChild,l=s.firstChild,f=l.nextSibling,v=f.firstChild,P=s.nextSibling;return p(a,"click",e.onToggleStagedOpen,!0),n(l,r(ne,{class:"h-3.5 w-3.5"})),n(v,()=>e.t("instanceShell.gitChanges.sections.staged")),n(f,r(x,{get when(){return e.branchLabel()},children:w=>(()=>{var _=Pe(),$=_.firstChild;return n(_,r(ve,{class:"w-3.5 h-3.5","aria-hidden":"true"}),$),n($,w),M(()=>c(_,"title",`Branch: ${w()}`)),_})()}),null),n(P,()=>E.length),n(i,r(x,{get when(){return e.stagedOpen()},get children(){var w=Te(),_=w.firstChild,$=_.firstChild,y=$.firstChild,D=y.nextSibling;return y.$$input=m=>e.onCommitMessageInput(m.currentTarget.value),D.$$click=()=>e.onSubmitCommit(),n(D,(()=>{var m=F(()=>!!e.commitSubmitting());return()=>m()?e.t("instanceShell.gitChanges.commit.submitting"):e.t("instanceShell.gitChanges.commit.submit")})()),n(w,r(te,{each:E,children:m=>N(m)}),null),M(m=>{var V=e.t("instanceShell.gitChanges.commit.placeholder"),A=!g();return V!==m.e&&c(y,"placeholder",m.e=V),A!==m.t&&(D.disabled=m.t=A),m},{e:void 0,t:void 0}),M(()=>y.value=e.commitMessage()),w}}),null),n(t,()=>se(e.t("instanceShell.gitChanges.sections.unstaged"),B,e.unstagedOpen(),e.onToggleUnstagedOpen),null),M(()=>c(a,"aria-expanded",e.stagedOpen())),t}});return r(Ce,{get header(){return[(()=>{var t=Ae(),i=t.firstChild;return n(i,()=>(h==null?void 0:h.path)||e.t("instanceShell.rightPanel.tabs.gitChanges")),M(()=>c(t,"title",(h==null?void 0:h.path)||e.t("instanceShell.rightPanel.tabs.gitChanges"))),t})(),(()=>{var t=Re(),i=t.firstChild,a=i.firstChild;a.firstChild;var s=i.nextSibling,l=s.firstChild;return l.firstChild,n(a,()=>o.additions,null),n(l,()=>o.deletions,null),n(t,r(x,{get when(){return e.statusError()},children:f=>(()=>{var v=Be();return n(v,f),v})()}),null),t})(),(()=>{var t=ze();return t.$$click=()=>e.onRefresh(),n(t,r($e,{get class(){return`h-4 w-4${e.statusLoading()?" animate-spin":""}`}})),M(i=>{var a=e.t("instanceShell.rightPanel.actions.refresh"),s=e.t("instanceShell.rightPanel.actions.refresh"),l=!I()||e.statusLoading()||L()===null;return a!==i.e&&c(t,"title",i.e=a),s!==i.t&&c(t,"aria-label",i.t=s),l!==i.a&&(t.disabled=i.a=l),i},{e:void 0,t:void 0,a:void 0}),t})(),r(xe,{get viewMode(){return e.diffViewMode()},get contextMode(){return e.diffContextMode()},get onViewModeChange(){return e.onViewModeChange},get onContextModeChange(){return e.onContextModeChange}})]},list:{panel:j,overlay:j},get viewer(){return ae()},get viewerActions(){return(()=>{var t=De();return t.$$click=()=>e.onWordWrapModeChange(e.diffWordWrapMode()==="on"?"off":"on"),n(t,r(we,{class:"h-4 w-4","aria-hidden":"true"})),M(i=>{var a=z(),s=e.diffWordWrapMode()==="on",l=z();return a!==i.e&&c(t,"aria-label",i.e=a),s!==i.t&&c(t,"aria-pressed",i.t=s),l!==i.a&&c(t,"title",i.a=l),i},{e:void 0,t:void 0,a:void 0}),t})()},get listOpen(){return e.listOpen()},get onToggleList(){return e.onToggleList},get splitWidth(){return e.splitWidth()},get onResizeMouseDown(){return e.onResizeMouseDown},get onResizeTouchStart(){return e.onResizeTouchStart},get isPhoneLayout(){return e.isPhoneLayout()},get overlayAriaLabel(){return e.t("instanceShell.rightPanel.tabs.gitChanges")}})})};ie(["mousedown","click","input"]);export{Ye as default};
3
+ //# sourceMappingURL=GitChangesTab-C3rapWwl.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":"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","names":["iconNode","d","key","UnfoldVertical","props","_$createComponent","Icon","_$mergeProps","name","DiffToolbar","t","useI18n","nextViewMode","viewMode","nextContextMode","contextMode","viewModeTitle","contextModeTitle","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","$$click","onViewModeChange","_$insert","_c$","_$memo","Split","AlignJustify","onContextModeChange","_c$2","FoldVertical","_$effect","_p$","_v$","_v$2","undefined","_v$3","_v$4","_v$5","_v$6","e","_$setAttribute","a","o","i","n","_$delegateEvents","LazyMonacoDiffViewer","lazy","__vitePreload","then","module","default","MonacoDiffViewer","GitChangesTab","sessionId","createMemo","activeSessionId","hasSession","Boolean","entries","sorted","list","Array","isArray","sort","b","String","path","localeCompare","listItems","buildGitChangeListItems","totals","reduce","acc","item","additions","deletions","stagedItems","filter","section","unstagedItems","canCommit","length","commitMessage","trim","commitSubmitting","selectedEntry","selectedId","selectedItemId","fallbackId","mostChangedItemId","found","find","id","entry","emptyViewerMessage","binaryViewerActive","selectedError","wordWrapTitle","diffWordWrapMode","renderContent","totalsValue","selected","allItems","stagedList","unstagedList","renderViewer","_tmpl$2","Show","when","selectedLoading","fallback","selectedBefore","selectedAfter","before","after","_el$5","_el$6","children","file","Suspense","_el$7","_el$8","scopeKey","diffViewMode","diffContextMode","wordWrap","insertContextLabel","onRequestInsertContext","selection","onInsertContext","_el$9","_el$0","err","_el$4","renderEmptyList","_el$1","_tmpl$3","renderListItem","isBulkSelected","selectedBulkItemIds","has","actionLabel","triggerAction","onUnstageFile","onStageFile","_el$10","_tmpl$5","_el$11","_el$12","_el$13","_el$14","_el$15","_el$16","_el$18","_el$20","_el$21","_el$22","_el$23","event","onRowClick","$$mousedown","shiftKey","ctrlKey","metaKey","preventDefault","stopPropagation","_tmpl$4","_$className","renderSection","title","items","isOpen","onToggle","_el$26","_tmpl$7","_el$27","_el$28","_el$29","_el$30","_el$31","_$addEventListener","ChevronRight","_el$32","_tmpl$6","For","each","renderGroupedList","_el$33","_tmpl$9","_el$34","_el$35","_el$36","_el$37","_el$38","_el$39","_el$40","onToggleStagedOpen","branchLabel","_el$46","_tmpl$0","_el$47","GitBranch","label","stagedOpen","_el$41","_tmpl$8","_el$42","_el$43","_el$44","_el$45","$$input","onCommitMessageInput","currentTarget","value","onSubmitCommit","_v$7","disabled","unstagedOpen","onToggleUnstagedOpen","SplitFilePanel","header","_el$48","_tmpl$1","_el$49","_el$50","_tmpl$10","_el$51","_el$52","_el$54","_el$55","statusError","_el$58","_tmpl$12","_el$57","_tmpl$11","onRefresh","RefreshCw","statusLoading","_v$8","_v$9","_v$0","panel","overlay","viewer","viewerActions","_el$59","_tmpl$13","onWordWrapModeChange","WrapText","_v$1","_v$10","_v$11","listOpen","onToggleList","splitWidth","onResizeMouseDown","onResizeTouchStart","isPhoneLayout","overlayAriaLabel"],"ignoreList":[0],"sources":["../../../../../../node_modules/lucide-solid/dist/source/icons/unfold-vertical.jsx","../../../components/instance/shell/right-panel/components/DiffToolbar.tsx","../../../components/instance/shell/right-panel/tabs/GitChangesTab.tsx"],"sourcesContent":["import Icon from '../Icon';\nconst iconNode = [\n ['path', { d: 'M12 22v-6', key: '6o8u61' }],\n ['path', { d: 'M12 8V2', key: '1wkif3' }],\n ['path', { d: 'M4 12H2', key: 'rhcxmi' }],\n ['path', { d: 'M10 12H8', key: 's88cx1' }],\n ['path', { d: 'M16 12h-2', key: '10asgb' }],\n ['path', { d: 'M22 12h-2', key: '14jgyd' }],\n ['path', { d: 'm15 19-3 3-3-3', key: '11eu04' }],\n ['path', { d: 'm15 5-3-3-3 3', key: 'itvq4r' }],\n];\nconst UnfoldVertical = (props) => (<Icon {...props} name=\"UnfoldVertical\" iconNode={iconNode}/>);\nexport default UnfoldVertical;\n","import type { Component } from \"solid-js\"\n\nimport { AlignJustify, FoldVertical, Split, UnfoldVertical } from \"lucide-solid\"\n\nimport { useI18n } from \"../../../../../lib/i18n\"\nimport type { DiffContextMode, DiffViewMode } from \"../types\"\n\ninterface DiffToolbarProps {\n viewMode: DiffViewMode\n contextMode: DiffContextMode\n onViewModeChange: (mode: DiffViewMode) => void\n onContextModeChange: (mode: DiffContextMode) => void\n}\n\nconst DiffToolbar: Component<DiffToolbarProps> = (props) => {\n const { t } = useI18n()\n const nextViewMode = (): DiffViewMode => (props.viewMode === \"split\" ? \"unified\" : \"split\")\n const nextContextMode = (): DiffContextMode => (props.contextMode === \"collapsed\" ? \"expanded\" : \"collapsed\")\n\n const viewModeTitle = () => (nextViewMode() === \"split\" ? t(\"instanceShell.diff.switchToSplit\") : t(\"instanceShell.diff.switchToUnified\"))\n const contextModeTitle = () =>\n nextContextMode() === \"collapsed\" ? t(\"instanceShell.diff.hideUnchanged\") : t(\"instanceShell.diff.showFull\")\n\n return (\n <div class=\"file-viewer-toolbar\">\n <button\n type=\"button\"\n class=\"file-viewer-toolbar-icon-button icon-toggle\"\n onClick={() => props.onViewModeChange(nextViewMode())}\n aria-label={viewModeTitle()}\n data-active={props.viewMode === \"split\" ? \"true\" : undefined}\n title={viewModeTitle()}\n >\n {nextViewMode() === \"split\" ? <Split class=\"h-4 w-4\" aria-hidden=\"true\" /> : <AlignJustify class=\"h-4 w-4\" aria-hidden=\"true\" />}\n </button>\n <button\n type=\"button\"\n class=\"file-viewer-toolbar-icon-button icon-toggle\"\n onClick={() => props.onContextModeChange(nextContextMode())}\n aria-label={contextModeTitle()}\n data-active={props.contextMode === \"expanded\" ? \"true\" : undefined}\n title={contextModeTitle()}\n >\n {nextContextMode() === \"collapsed\" ? (\n <FoldVertical class=\"h-4 w-4\" aria-hidden=\"true\" />\n ) : (\n <UnfoldVertical class=\"h-4 w-4\" aria-hidden=\"true\" />\n )}\n </button>\n </div>\n )\n}\n\nexport default DiffToolbar\n","import {\n For,\n Show,\n Suspense,\n createMemo,\n lazy,\n type Accessor,\n type Component,\n type JSX,\n} from \"solid-js\"\n\nimport { ChevronRight, GitBranch, RefreshCw, WrapText } from \"lucide-solid\"\n\nimport DiffToolbar from \"../components/DiffToolbar\"\nimport SplitFilePanel from \"../components/SplitFilePanel\"\nimport type { DiffContextMode, DiffViewMode, DiffWordWrapMode, GitChangeEntry, GitChangeListItem } from \"../types\"\nimport { buildGitChangeListItems } from \"../git-changes-model\"\n\nconst LazyMonacoDiffViewer = lazy(() =>\n import(\"../../../../file-viewer/monaco-diff-viewer\").then((module) => ({ default: module.MonacoDiffViewer })),\n)\n\ninterface GitChangesTabProps {\n t: (key: string, vars?: Record<string, any>) => string\n\n activeSessionId: Accessor<string | null>\n\n entries: Accessor<GitChangeEntry[] | null>\n statusLoading: Accessor<boolean>\n statusError: Accessor<string | null>\n\n selectedItemId: Accessor<string | null>\n selectedBulkItemIds: Accessor<Set<string>>\n selectedLoading: Accessor<boolean>\n selectedError: Accessor<string | null>\n selectedBefore: Accessor<string | null>\n selectedAfter: Accessor<string | null>\n mostChangedItemId: Accessor<string | null>\n\n scopeKey: Accessor<string>\n\n diffViewMode: Accessor<DiffViewMode>\n diffContextMode: Accessor<DiffContextMode>\n diffWordWrapMode: Accessor<DiffWordWrapMode>\n onViewModeChange: (mode: DiffViewMode) => void\n onContextModeChange: (mode: DiffContextMode) => void\n onWordWrapModeChange: (mode: DiffWordWrapMode) => void\n\n onRowClick: (item: GitChangeListItem, event: MouseEvent) => void\n onRefresh: () => void\n onInsertContext: (item: GitChangeListItem, selection: { startLine: number; endLine: number }) => void\n onStageFile: (item: GitChangeListItem) => void\n onUnstageFile: (item: GitChangeListItem) => void\n commitMessage: Accessor<string>\n commitSubmitting: Accessor<boolean>\n onCommitMessageInput: (value: string) => void\n onSubmitCommit: () => void\n branchLabel: Accessor<string | null>\n\n stagedOpen: Accessor<boolean>\n unstagedOpen: Accessor<boolean>\n onToggleStagedOpen: () => void\n onToggleUnstagedOpen: () => void\n\n listOpen: Accessor<boolean>\n onToggleList: () => void\n splitWidth: Accessor<number>\n onResizeMouseDown: (event: MouseEvent) => void\n onResizeTouchStart: (event: TouchEvent) => void\n isPhoneLayout: Accessor<boolean>\n}\n\nconst GitChangesTab: Component<GitChangesTabProps> = (props) => {\n const sessionId = createMemo(() => props.activeSessionId())\n const hasSession = createMemo(() => Boolean(sessionId() && sessionId() !== \"info\"))\n const entries = createMemo(() => (hasSession() ? props.entries() : null))\n\n const sorted = createMemo<GitChangeEntry[]>(() => {\n const list = entries()\n if (!Array.isArray(list)) return []\n return [...list].sort((a, b) => String(a.path || \"\").localeCompare(String(b.path || \"\")))\n })\n\n const listItems = createMemo<GitChangeListItem[]>(() => buildGitChangeListItems(sorted()))\n\n const totals = createMemo(() => {\n return listItems().reduce(\n (acc, item) => {\n acc.additions += typeof item.additions === \"number\" ? item.additions : 0\n acc.deletions += typeof item.deletions === \"number\" ? item.deletions : 0\n return acc\n },\n { additions: 0, deletions: 0 },\n )\n })\n const stagedItems = createMemo(() => listItems().filter((item) => item.section === \"staged\"))\n const unstagedItems = createMemo(() => listItems().filter((item) => item.section === \"unstaged\"))\n const canCommit = createMemo(() => stagedItems().length > 0 && props.commitMessage().trim().length > 0 && !props.commitSubmitting())\n\n const selectedEntry = createMemo<GitChangeEntry | null>(() => {\n const list = listItems()\n const selectedId = props.selectedItemId()\n const fallbackId = props.mostChangedItemId()\n const found =\n list.find((item) => item.id === selectedId) ||\n (fallbackId ? list.find((item) => item.id === fallbackId) : undefined)\n return found?.entry ?? null\n })\n\n const emptyViewerMessage = createMemo(() => {\n if (!hasSession()) return props.t(\"instanceShell.gitChanges.noSessionSelected\")\n const currentEntries = entries()\n if (currentEntries === null) return props.t(\"instanceShell.gitChanges.loading\")\n if (listItems().length === 0) return props.t(\"instanceShell.gitChanges.empty\")\n return props.t(\"instanceShell.filesShell.viewerEmpty\")\n })\n\n const binaryViewerActive = createMemo(() => props.selectedError() === props.t(\"instanceShell.gitChanges.binaryViewer\"))\n const wordWrapTitle = () => props.diffWordWrapMode() === \"on\"\n ? props.t(\"instanceShell.diff.disableWordWrap\")\n : props.t(\"instanceShell.diff.enableWordWrap\")\n\n const renderContent = (): JSX.Element => {\n const totalsValue = totals()\n const selected = selectedEntry()\n const allItems = listItems()\n const stagedList = stagedItems()\n const unstagedList = unstagedItems()\n\n const renderViewer = () => (\n <div class=\"file-viewer-panel flex-1\">\n <div class=\"file-viewer-content file-viewer-content--monaco\">\n <Show\n when={props.selectedLoading()}\n fallback={\n <Show\n when={props.selectedError()}\n fallback={\n <Show\n when={\n selected &&\n props.selectedBefore() !== null &&\n props.selectedAfter() !== null &&\n true\n ? {\n path: selected.path,\n before: props.selectedBefore() as string,\n after: props.selectedAfter() as string,\n }\n : null\n }\n fallback={\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{emptyViewerMessage()}</span>\n </div>\n }\n >\n {(file) => (\n <Suspense\n fallback={\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{props.t(\"instanceInfo.loading\")}</span>\n </div>\n }\n >\n <LazyMonacoDiffViewer\n scopeKey={props.scopeKey()}\n path={String(file().path || \"\")}\n before={String((file() as any).before || \"\")}\n after={String((file() as any).after || \"\")}\n viewMode={props.diffViewMode()}\n contextMode={props.diffContextMode()}\n wordWrap={props.diffWordWrapMode()}\n insertContextLabel={props.t(\"instanceShell.gitChanges.actions.insertContext\")}\n onRequestInsertContext={binaryViewerActive() ? undefined : (selection) => {\n const selectedId = props.selectedItemId()\n if (!selectedId) return\n const item = listItems().find((entry) => entry.id === selectedId)\n if (!item) return\n props.onInsertContext(item, selection)\n }}\n />\n </Suspense>\n )}\n </Show>\n }\n >\n {(err) => (\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{err()}</span>\n </div>\n )}\n </Show>\n }\n >\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{props.t(\"instanceInfo.loading\")}</span>\n </div>\n </Show>\n </div>\n </div>\n )\n\n const renderEmptyList = () => <div class=\"p-3 text-xs text-secondary\">{emptyViewerMessage()}</div>\n\n const renderListItem = (item: GitChangeListItem) => {\n const isBulkSelected = createMemo(() => props.selectedBulkItemIds().has(item.id))\n const actionLabel =\n item.section === \"staged\"\n ? props.t(\"instanceShell.gitChanges.actions.unstage\")\n : props.t(\"instanceShell.gitChanges.actions.stage\")\n\n const triggerAction = () => {\n if (item.section === \"staged\") props.onUnstageFile(item)\n else props.onStageFile(item)\n }\n\n return (\n <div\n class={`file-list-item git-change-list-item ${props.selectedItemId() === item.id ? \"file-list-item-active\" : \"\"} ${isBulkSelected() ? \"git-change-list-item-bulk-selected\" : \"\"}`}\n onMouseDown={(event) => {\n if (event.shiftKey || event.ctrlKey || event.metaKey) {\n event.preventDefault()\n }\n }}\n onClick={(event) => props.onRowClick(item, event)}\n title={item.path}\n >\n <div class=\"file-list-item-content\" title={item.path}>\n <div class=\"file-list-item-path\" title={item.path}>\n <span class=\"file-path-text\">{item.path}</span>\n </div>\n <div class=\"git-change-list-item-right\">\n <div class=\"file-list-item-stats\">\n <span class=\"file-list-item-additions\">+{item.additions}</span>\n <span class=\"file-list-item-deletions\">-{item.deletions}</span>\n </div>\n </div>\n </div>\n <div class=\"git-change-list-item-actions-zone\">\n <div class=\"git-change-list-item-actions\">\n <button\n type=\"button\"\n class=\"git-change-row-action\"\n title={actionLabel}\n aria-label={actionLabel}\n onClick={(event) => {\n event.stopPropagation()\n triggerAction()\n }}\n >\n <span\n class={`git-change-row-action-glyph ${item.section === \"staged\" ? \"git-change-row-action-glyph-minus\" : \"git-change-row-action-glyph-plus\"}`}\n aria-hidden=\"true\"\n >\n <span class=\"git-change-row-action-bar git-change-row-action-bar-horizontal\" />\n <Show when={item.section !== \"staged\"}>\n <span class=\"git-change-row-action-bar git-change-row-action-bar-vertical\" />\n </Show>\n </span>\n </button>\n </div>\n </div>\n </div>\n )\n }\n\n const renderSection = (\n title: string,\n items: GitChangeListItem[],\n isOpen: boolean,\n onToggle: () => void,\n ) => (\n <div class=\"git-change-section\">\n <button type=\"button\" class=\"git-change-section-header\" aria-expanded={isOpen} onClick={onToggle}>\n <span class=\"git-change-section-header-main\">\n <span class=\"git-change-section-chevron disclosure-chevron\">\n <ChevronRight class=\"h-3.5 w-3.5\" />\n </span>\n <span class=\"git-change-section-title\">{title}</span>\n </span>\n <span class=\"git-change-section-count\">{items.length}</span>\n </button>\n <Show when={isOpen}>\n <div class=\"git-change-section-items\">\n <For each={items}>{(item) => renderListItem(item)}</For>\n </div>\n </Show>\n </div>\n )\n\n const renderGroupedList = () => (\n <Show when={allItems.length > 0} fallback={renderEmptyList()}>\n <div class=\"git-change-sections\">\n <div class=\"git-change-section\">\n <button type=\"button\" class=\"git-change-section-header\" aria-expanded={props.stagedOpen()} onClick={props.onToggleStagedOpen}>\n <span class=\"git-change-section-header-main\">\n <span class=\"git-change-section-chevron disclosure-chevron\">\n <ChevronRight class=\"h-3.5 w-3.5\" />\n </span>\n <span class=\"git-change-section-title-row\">\n <span class=\"git-change-section-title\">{props.t(\"instanceShell.gitChanges.sections.staged\")}</span>\n <Show when={props.branchLabel()}>\n {(label) => (\n <span class=\"status-indicator session-status-list worktree-indicator git-change-section-badge\" title={`Branch: ${label()}`}>\n <GitBranch class=\"w-3.5 h-3.5\" aria-hidden=\"true\" />\n <span class=\"worktree-indicator-label\">{label()}</span>\n </span>\n )}\n </Show>\n </span>\n </span>\n <span class=\"git-change-section-count\">{stagedList.length}</span>\n </button>\n <Show when={props.stagedOpen()}>\n <div class=\"git-change-section-items\">\n <div class=\"git-change-commit-box\">\n <div class=\"git-change-commit-input-wrap\">\n <textarea\n class=\"git-change-commit-input\"\n value={props.commitMessage()}\n rows={1}\n placeholder={props.t(\"instanceShell.gitChanges.commit.placeholder\")}\n onInput={(event) => props.onCommitMessageInput(event.currentTarget.value)}\n />\n <button\n type=\"button\"\n class=\"git-change-commit-button git-change-commit-button-overlay\"\n disabled={!canCommit()}\n onClick={() => props.onSubmitCommit()}\n >\n {props.commitSubmitting()\n ? props.t(\"instanceShell.gitChanges.commit.submitting\")\n : props.t(\"instanceShell.gitChanges.commit.submit\")}\n </button>\n </div>\n </div>\n <For each={stagedList}>{(item) => renderListItem(item)}</For>\n </div>\n </Show>\n </div>\n {renderSection(\n props.t(\"instanceShell.gitChanges.sections.unstaged\"),\n unstagedList,\n props.unstagedOpen(),\n props.onToggleUnstagedOpen,\n )}\n </div>\n </Show>\n )\n\n return (\n <SplitFilePanel\n header={\n <>\n <span class=\"files-tab-selected-path\" title={selected?.path || props.t(\"instanceShell.rightPanel.tabs.gitChanges\")}>\n <span class=\"file-path-text\">{selected?.path || props.t(\"instanceShell.rightPanel.tabs.gitChanges\")}</span>\n </span>\n\n <div class=\"files-tab-stats\" style={{ flex: \"0 0 auto\" }}>\n <span class=\"files-tab-stat files-tab-stat-additions\">\n <span class=\"files-tab-stat-value\">+{totalsValue.additions}</span>\n </span>\n <span class=\"files-tab-stat files-tab-stat-deletions\">\n <span class=\"files-tab-stat-value\">-{totalsValue.deletions}</span>\n </span>\n <Show when={props.statusError()}>{(err) => <span class=\"text-error\">{err()}</span>}</Show>\n </div>\n\n <button\n type=\"button\"\n class=\"files-header-icon-button\"\n title={props.t(\"instanceShell.rightPanel.actions.refresh\")}\n aria-label={props.t(\"instanceShell.rightPanel.actions.refresh\")}\n disabled={!hasSession() || props.statusLoading() || entries() === null}\n style={{ \"margin-left\": \"auto\" }}\n onClick={() => props.onRefresh()}\n >\n <RefreshCw class={`h-4 w-4${props.statusLoading() ? \" animate-spin\" : \"\"}`} />\n </button>\n\n <DiffToolbar\n viewMode={props.diffViewMode()}\n contextMode={props.diffContextMode()}\n onViewModeChange={props.onViewModeChange}\n onContextModeChange={props.onContextModeChange}\n />\n\n </>\n }\n list={{ panel: renderGroupedList, overlay: renderGroupedList }}\n viewer={renderViewer()}\n viewerActions={\n <button\n type=\"button\"\n class=\"file-viewer-toolbar-icon-button icon-toggle\"\n onClick={() => props.onWordWrapModeChange(props.diffWordWrapMode() === \"on\" ? \"off\" : \"on\")}\n aria-label={wordWrapTitle()}\n aria-pressed={props.diffWordWrapMode() === \"on\"}\n title={wordWrapTitle()}\n >\n <WrapText class=\"h-4 w-4\" aria-hidden=\"true\" />\n </button>\n }\n listOpen={props.listOpen()}\n onToggleList={props.onToggleList}\n splitWidth={props.splitWidth()}\n onResizeMouseDown={props.onResizeMouseDown}\n onResizeTouchStart={props.onResizeTouchStart}\n isPhoneLayout={props.isPhoneLayout()}\n overlayAriaLabel={props.t(\"instanceShell.rightPanel.tabs.gitChanges\")}\n />\n )\n }\n\n return <>{renderContent()}</>\n}\n\nexport default GitChangesTab\n"],"file":"assets/GitChangesTab-r1JoAD9n.js"}
1
+ {"version":3,"mappings":"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","names":["iconNode","d","key","UnfoldVertical","props","_$createComponent","Icon","_$mergeProps","name","DiffToolbar","t","useI18n","nextViewMode","viewMode","nextContextMode","contextMode","viewModeTitle","contextModeTitle","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","$$click","onViewModeChange","_$insert","_c$","_$memo","Split","AlignJustify","onContextModeChange","_c$2","FoldVertical","_$effect","_p$","_v$","_v$2","undefined","_v$3","_v$4","_v$5","_v$6","e","_$setAttribute","a","o","i","n","_$delegateEvents","LazyMonacoDiffViewer","lazy","__vitePreload","then","module","default","MonacoDiffViewer","GitChangesTab","sessionId","createMemo","activeSessionId","hasSession","Boolean","entries","sorted","list","Array","isArray","sort","b","String","path","localeCompare","listItems","buildGitChangeListItems","totals","reduce","acc","item","additions","deletions","stagedItems","filter","section","unstagedItems","canCommit","length","commitMessage","trim","commitSubmitting","selectedEntry","selectedId","selectedItemId","fallbackId","mostChangedItemId","found","find","id","entry","emptyViewerMessage","binaryViewerActive","selectedError","wordWrapTitle","diffWordWrapMode","renderContent","totalsValue","selected","allItems","stagedList","unstagedList","renderViewer","_tmpl$2","Show","when","selectedLoading","fallback","selectedBefore","selectedAfter","before","after","_el$5","_el$6","children","file","Suspense","_el$7","_el$8","scopeKey","diffViewMode","diffContextMode","wordWrap","insertContextLabel","onRequestInsertContext","selection","onInsertContext","_el$9","_el$0","err","_el$4","renderEmptyList","_el$1","_tmpl$3","renderListItem","isBulkSelected","selectedBulkItemIds","has","actionLabel","triggerAction","onUnstageFile","onStageFile","_el$10","_tmpl$5","_el$11","_el$12","_el$13","_el$14","_el$15","_el$16","_el$18","_el$20","_el$21","_el$22","_el$23","event","onRowClick","$$mousedown","shiftKey","ctrlKey","metaKey","preventDefault","stopPropagation","_tmpl$4","_$className","renderSection","title","items","isOpen","onToggle","_el$26","_tmpl$7","_el$27","_el$28","_el$29","_el$30","_el$31","_$addEventListener","ChevronRight","_el$32","_tmpl$6","For","each","renderGroupedList","_el$33","_tmpl$9","_el$34","_el$35","_el$36","_el$37","_el$38","_el$39","_el$40","onToggleStagedOpen","branchLabel","_el$46","_tmpl$0","_el$47","GitBranch","label","stagedOpen","_el$41","_tmpl$8","_el$42","_el$43","_el$44","_el$45","$$input","onCommitMessageInput","currentTarget","value","onSubmitCommit","_v$7","disabled","unstagedOpen","onToggleUnstagedOpen","SplitFilePanel","header","_el$48","_tmpl$1","_el$49","_el$50","_tmpl$10","_el$51","_el$52","_el$54","_el$55","statusError","_el$58","_tmpl$12","_el$57","_tmpl$11","onRefresh","RefreshCw","statusLoading","_v$8","_v$9","_v$0","panel","overlay","viewer","viewerActions","_el$59","_tmpl$13","onWordWrapModeChange","WrapText","_v$1","_v$10","_v$11","listOpen","onToggleList","splitWidth","onResizeMouseDown","onResizeTouchStart","isPhoneLayout","overlayAriaLabel"],"ignoreList":[0],"sources":["../../../../../../node_modules/lucide-solid/dist/source/icons/unfold-vertical.jsx","../../../components/instance/shell/right-panel/components/DiffToolbar.tsx","../../../components/instance/shell/right-panel/tabs/GitChangesTab.tsx"],"sourcesContent":["import Icon from '../Icon';\nconst iconNode = [\n ['path', { d: 'M12 22v-6', key: '6o8u61' }],\n ['path', { d: 'M12 8V2', key: '1wkif3' }],\n ['path', { d: 'M4 12H2', key: 'rhcxmi' }],\n ['path', { d: 'M10 12H8', key: 's88cx1' }],\n ['path', { d: 'M16 12h-2', key: '10asgb' }],\n ['path', { d: 'M22 12h-2', key: '14jgyd' }],\n ['path', { d: 'm15 19-3 3-3-3', key: '11eu04' }],\n ['path', { d: 'm15 5-3-3-3 3', key: 'itvq4r' }],\n];\nconst UnfoldVertical = (props) => (<Icon {...props} name=\"UnfoldVertical\" iconNode={iconNode}/>);\nexport default UnfoldVertical;\n","import type { Component } from \"solid-js\"\n\nimport { AlignJustify, FoldVertical, Split, UnfoldVertical } from \"lucide-solid\"\n\nimport { useI18n } from \"../../../../../lib/i18n\"\nimport type { DiffContextMode, DiffViewMode } from \"../types\"\n\ninterface DiffToolbarProps {\n viewMode: DiffViewMode\n contextMode: DiffContextMode\n onViewModeChange: (mode: DiffViewMode) => void\n onContextModeChange: (mode: DiffContextMode) => void\n}\n\nconst DiffToolbar: Component<DiffToolbarProps> = (props) => {\n const { t } = useI18n()\n const nextViewMode = (): DiffViewMode => (props.viewMode === \"split\" ? \"unified\" : \"split\")\n const nextContextMode = (): DiffContextMode => (props.contextMode === \"collapsed\" ? \"expanded\" : \"collapsed\")\n\n const viewModeTitle = () => (nextViewMode() === \"split\" ? t(\"instanceShell.diff.switchToSplit\") : t(\"instanceShell.diff.switchToUnified\"))\n const contextModeTitle = () =>\n nextContextMode() === \"collapsed\" ? t(\"instanceShell.diff.hideUnchanged\") : t(\"instanceShell.diff.showFull\")\n\n return (\n <div class=\"file-viewer-toolbar\">\n <button\n type=\"button\"\n class=\"file-viewer-toolbar-icon-button icon-toggle\"\n onClick={() => props.onViewModeChange(nextViewMode())}\n aria-label={viewModeTitle()}\n data-active={props.viewMode === \"split\" ? \"true\" : undefined}\n title={viewModeTitle()}\n >\n {nextViewMode() === \"split\" ? <Split class=\"h-4 w-4\" aria-hidden=\"true\" /> : <AlignJustify class=\"h-4 w-4\" aria-hidden=\"true\" />}\n </button>\n <button\n type=\"button\"\n class=\"file-viewer-toolbar-icon-button icon-toggle\"\n onClick={() => props.onContextModeChange(nextContextMode())}\n aria-label={contextModeTitle()}\n data-active={props.contextMode === \"expanded\" ? \"true\" : undefined}\n title={contextModeTitle()}\n >\n {nextContextMode() === \"collapsed\" ? (\n <FoldVertical class=\"h-4 w-4\" aria-hidden=\"true\" />\n ) : (\n <UnfoldVertical class=\"h-4 w-4\" aria-hidden=\"true\" />\n )}\n </button>\n </div>\n )\n}\n\nexport default DiffToolbar\n","import {\n For,\n Show,\n Suspense,\n createMemo,\n lazy,\n type Accessor,\n type Component,\n type JSX,\n} from \"solid-js\"\n\nimport { ChevronRight, GitBranch, RefreshCw, WrapText } from \"lucide-solid\"\n\nimport DiffToolbar from \"../components/DiffToolbar\"\nimport SplitFilePanel from \"../components/SplitFilePanel\"\nimport type { DiffContextMode, DiffViewMode, DiffWordWrapMode, GitChangeEntry, GitChangeListItem } from \"../types\"\nimport { buildGitChangeListItems } from \"../git-changes-model\"\n\nconst LazyMonacoDiffViewer = lazy(() =>\n import(\"../../../../file-viewer/monaco-diff-viewer\").then((module) => ({ default: module.MonacoDiffViewer })),\n)\n\ninterface GitChangesTabProps {\n t: (key: string, vars?: Record<string, any>) => string\n\n activeSessionId: Accessor<string | null>\n\n entries: Accessor<GitChangeEntry[] | null>\n statusLoading: Accessor<boolean>\n statusError: Accessor<string | null>\n\n selectedItemId: Accessor<string | null>\n selectedBulkItemIds: Accessor<Set<string>>\n selectedLoading: Accessor<boolean>\n selectedError: Accessor<string | null>\n selectedBefore: Accessor<string | null>\n selectedAfter: Accessor<string | null>\n mostChangedItemId: Accessor<string | null>\n\n scopeKey: Accessor<string>\n\n diffViewMode: Accessor<DiffViewMode>\n diffContextMode: Accessor<DiffContextMode>\n diffWordWrapMode: Accessor<DiffWordWrapMode>\n onViewModeChange: (mode: DiffViewMode) => void\n onContextModeChange: (mode: DiffContextMode) => void\n onWordWrapModeChange: (mode: DiffWordWrapMode) => void\n\n onRowClick: (item: GitChangeListItem, event: MouseEvent) => void\n onRefresh: () => void\n onInsertContext: (item: GitChangeListItem, selection: { startLine: number; endLine: number }) => void\n onStageFile: (item: GitChangeListItem) => void\n onUnstageFile: (item: GitChangeListItem) => void\n commitMessage: Accessor<string>\n commitSubmitting: Accessor<boolean>\n onCommitMessageInput: (value: string) => void\n onSubmitCommit: () => void\n branchLabel: Accessor<string | null>\n\n stagedOpen: Accessor<boolean>\n unstagedOpen: Accessor<boolean>\n onToggleStagedOpen: () => void\n onToggleUnstagedOpen: () => void\n\n listOpen: Accessor<boolean>\n onToggleList: () => void\n splitWidth: Accessor<number>\n onResizeMouseDown: (event: MouseEvent) => void\n onResizeTouchStart: (event: TouchEvent) => void\n isPhoneLayout: Accessor<boolean>\n}\n\nconst GitChangesTab: Component<GitChangesTabProps> = (props) => {\n const sessionId = createMemo(() => props.activeSessionId())\n const hasSession = createMemo(() => Boolean(sessionId() && sessionId() !== \"info\"))\n const entries = createMemo(() => (hasSession() ? props.entries() : null))\n\n const sorted = createMemo<GitChangeEntry[]>(() => {\n const list = entries()\n if (!Array.isArray(list)) return []\n return [...list].sort((a, b) => String(a.path || \"\").localeCompare(String(b.path || \"\")))\n })\n\n const listItems = createMemo<GitChangeListItem[]>(() => buildGitChangeListItems(sorted()))\n\n const totals = createMemo(() => {\n return listItems().reduce(\n (acc, item) => {\n acc.additions += typeof item.additions === \"number\" ? item.additions : 0\n acc.deletions += typeof item.deletions === \"number\" ? item.deletions : 0\n return acc\n },\n { additions: 0, deletions: 0 },\n )\n })\n const stagedItems = createMemo(() => listItems().filter((item) => item.section === \"staged\"))\n const unstagedItems = createMemo(() => listItems().filter((item) => item.section === \"unstaged\"))\n const canCommit = createMemo(() => stagedItems().length > 0 && props.commitMessage().trim().length > 0 && !props.commitSubmitting())\n\n const selectedEntry = createMemo<GitChangeEntry | null>(() => {\n const list = listItems()\n const selectedId = props.selectedItemId()\n const fallbackId = props.mostChangedItemId()\n const found =\n list.find((item) => item.id === selectedId) ||\n (fallbackId ? list.find((item) => item.id === fallbackId) : undefined)\n return found?.entry ?? null\n })\n\n const emptyViewerMessage = createMemo(() => {\n if (!hasSession()) return props.t(\"instanceShell.gitChanges.noSessionSelected\")\n const currentEntries = entries()\n if (currentEntries === null) return props.t(\"instanceShell.gitChanges.loading\")\n if (listItems().length === 0) return props.t(\"instanceShell.gitChanges.empty\")\n return props.t(\"instanceShell.filesShell.viewerEmpty\")\n })\n\n const binaryViewerActive = createMemo(() => props.selectedError() === props.t(\"instanceShell.gitChanges.binaryViewer\"))\n const wordWrapTitle = () => props.diffWordWrapMode() === \"on\"\n ? props.t(\"instanceShell.diff.disableWordWrap\")\n : props.t(\"instanceShell.diff.enableWordWrap\")\n\n const renderContent = (): JSX.Element => {\n const totalsValue = totals()\n const selected = selectedEntry()\n const allItems = listItems()\n const stagedList = stagedItems()\n const unstagedList = unstagedItems()\n\n const renderViewer = () => (\n <div class=\"file-viewer-panel flex-1\">\n <div class=\"file-viewer-content file-viewer-content--monaco\">\n <Show\n when={props.selectedLoading()}\n fallback={\n <Show\n when={props.selectedError()}\n fallback={\n <Show\n when={\n selected &&\n props.selectedBefore() !== null &&\n props.selectedAfter() !== null &&\n true\n ? {\n path: selected.path,\n before: props.selectedBefore() as string,\n after: props.selectedAfter() as string,\n }\n : null\n }\n fallback={\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{emptyViewerMessage()}</span>\n </div>\n }\n >\n {(file) => (\n <Suspense\n fallback={\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{props.t(\"instanceInfo.loading\")}</span>\n </div>\n }\n >\n <LazyMonacoDiffViewer\n scopeKey={props.scopeKey()}\n path={String(file().path || \"\")}\n before={String((file() as any).before || \"\")}\n after={String((file() as any).after || \"\")}\n viewMode={props.diffViewMode()}\n contextMode={props.diffContextMode()}\n wordWrap={props.diffWordWrapMode()}\n insertContextLabel={props.t(\"instanceShell.gitChanges.actions.insertContext\")}\n onRequestInsertContext={binaryViewerActive() ? undefined : (selection) => {\n const selectedId = props.selectedItemId()\n if (!selectedId) return\n const item = listItems().find((entry) => entry.id === selectedId)\n if (!item) return\n props.onInsertContext(item, selection)\n }}\n />\n </Suspense>\n )}\n </Show>\n }\n >\n {(err) => (\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{err()}</span>\n </div>\n )}\n </Show>\n }\n >\n <div class=\"file-viewer-empty\">\n <span class=\"file-viewer-empty-text\">{props.t(\"instanceInfo.loading\")}</span>\n </div>\n </Show>\n </div>\n </div>\n )\n\n const renderEmptyList = () => <div class=\"p-3 text-xs text-secondary\">{emptyViewerMessage()}</div>\n\n const renderListItem = (item: GitChangeListItem) => {\n const isBulkSelected = createMemo(() => props.selectedBulkItemIds().has(item.id))\n const actionLabel =\n item.section === \"staged\"\n ? props.t(\"instanceShell.gitChanges.actions.unstage\")\n : props.t(\"instanceShell.gitChanges.actions.stage\")\n\n const triggerAction = () => {\n if (item.section === \"staged\") props.onUnstageFile(item)\n else props.onStageFile(item)\n }\n\n return (\n <div\n class={`file-list-item git-change-list-item ${props.selectedItemId() === item.id ? \"file-list-item-active\" : \"\"} ${isBulkSelected() ? \"git-change-list-item-bulk-selected\" : \"\"}`}\n onMouseDown={(event) => {\n if (event.shiftKey || event.ctrlKey || event.metaKey) {\n event.preventDefault()\n }\n }}\n onClick={(event) => props.onRowClick(item, event)}\n title={item.path}\n >\n <div class=\"file-list-item-content\" title={item.path}>\n <div class=\"file-list-item-path\" title={item.path}>\n <span class=\"file-path-text\">{item.path}</span>\n </div>\n <div class=\"git-change-list-item-right\">\n <div class=\"file-list-item-stats\">\n <span class=\"file-list-item-additions\">+{item.additions}</span>\n <span class=\"file-list-item-deletions\">-{item.deletions}</span>\n </div>\n </div>\n </div>\n <div class=\"git-change-list-item-actions-zone\">\n <div class=\"git-change-list-item-actions\">\n <button\n type=\"button\"\n class=\"git-change-row-action\"\n title={actionLabel}\n aria-label={actionLabel}\n onClick={(event) => {\n event.stopPropagation()\n triggerAction()\n }}\n >\n <span\n class={`git-change-row-action-glyph ${item.section === \"staged\" ? \"git-change-row-action-glyph-minus\" : \"git-change-row-action-glyph-plus\"}`}\n aria-hidden=\"true\"\n >\n <span class=\"git-change-row-action-bar git-change-row-action-bar-horizontal\" />\n <Show when={item.section !== \"staged\"}>\n <span class=\"git-change-row-action-bar git-change-row-action-bar-vertical\" />\n </Show>\n </span>\n </button>\n </div>\n </div>\n </div>\n )\n }\n\n const renderSection = (\n title: string,\n items: GitChangeListItem[],\n isOpen: boolean,\n onToggle: () => void,\n ) => (\n <div class=\"git-change-section\">\n <button type=\"button\" class=\"git-change-section-header\" aria-expanded={isOpen} onClick={onToggle}>\n <span class=\"git-change-section-header-main\">\n <span class=\"git-change-section-chevron disclosure-chevron\">\n <ChevronRight class=\"h-3.5 w-3.5\" />\n </span>\n <span class=\"git-change-section-title\">{title}</span>\n </span>\n <span class=\"git-change-section-count\">{items.length}</span>\n </button>\n <Show when={isOpen}>\n <div class=\"git-change-section-items\">\n <For each={items}>{(item) => renderListItem(item)}</For>\n </div>\n </Show>\n </div>\n )\n\n const renderGroupedList = () => (\n <Show when={allItems.length > 0} fallback={renderEmptyList()}>\n <div class=\"git-change-sections\">\n <div class=\"git-change-section\">\n <button type=\"button\" class=\"git-change-section-header\" aria-expanded={props.stagedOpen()} onClick={props.onToggleStagedOpen}>\n <span class=\"git-change-section-header-main\">\n <span class=\"git-change-section-chevron disclosure-chevron\">\n <ChevronRight class=\"h-3.5 w-3.5\" />\n </span>\n <span class=\"git-change-section-title-row\">\n <span class=\"git-change-section-title\">{props.t(\"instanceShell.gitChanges.sections.staged\")}</span>\n <Show when={props.branchLabel()}>\n {(label) => (\n <span class=\"status-indicator session-status-list worktree-indicator git-change-section-badge\" title={`Branch: ${label()}`}>\n <GitBranch class=\"w-3.5 h-3.5\" aria-hidden=\"true\" />\n <span class=\"worktree-indicator-label\">{label()}</span>\n </span>\n )}\n </Show>\n </span>\n </span>\n <span class=\"git-change-section-count\">{stagedList.length}</span>\n </button>\n <Show when={props.stagedOpen()}>\n <div class=\"git-change-section-items\">\n <div class=\"git-change-commit-box\">\n <div class=\"git-change-commit-input-wrap\">\n <textarea\n class=\"git-change-commit-input\"\n value={props.commitMessage()}\n rows={1}\n placeholder={props.t(\"instanceShell.gitChanges.commit.placeholder\")}\n onInput={(event) => props.onCommitMessageInput(event.currentTarget.value)}\n />\n <button\n type=\"button\"\n class=\"git-change-commit-button git-change-commit-button-overlay\"\n disabled={!canCommit()}\n onClick={() => props.onSubmitCommit()}\n >\n {props.commitSubmitting()\n ? props.t(\"instanceShell.gitChanges.commit.submitting\")\n : props.t(\"instanceShell.gitChanges.commit.submit\")}\n </button>\n </div>\n </div>\n <For each={stagedList}>{(item) => renderListItem(item)}</For>\n </div>\n </Show>\n </div>\n {renderSection(\n props.t(\"instanceShell.gitChanges.sections.unstaged\"),\n unstagedList,\n props.unstagedOpen(),\n props.onToggleUnstagedOpen,\n )}\n </div>\n </Show>\n )\n\n return (\n <SplitFilePanel\n header={\n <>\n <span class=\"files-tab-selected-path\" title={selected?.path || props.t(\"instanceShell.rightPanel.tabs.gitChanges\")}>\n <span class=\"file-path-text\">{selected?.path || props.t(\"instanceShell.rightPanel.tabs.gitChanges\")}</span>\n </span>\n\n <div class=\"files-tab-stats\" style={{ flex: \"0 0 auto\" }}>\n <span class=\"files-tab-stat files-tab-stat-additions\">\n <span class=\"files-tab-stat-value\">+{totalsValue.additions}</span>\n </span>\n <span class=\"files-tab-stat files-tab-stat-deletions\">\n <span class=\"files-tab-stat-value\">-{totalsValue.deletions}</span>\n </span>\n <Show when={props.statusError()}>{(err) => <span class=\"text-error\">{err()}</span>}</Show>\n </div>\n\n <button\n type=\"button\"\n class=\"files-header-icon-button\"\n title={props.t(\"instanceShell.rightPanel.actions.refresh\")}\n aria-label={props.t(\"instanceShell.rightPanel.actions.refresh\")}\n disabled={!hasSession() || props.statusLoading() || entries() === null}\n style={{ \"margin-left\": \"auto\" }}\n onClick={() => props.onRefresh()}\n >\n <RefreshCw class={`h-4 w-4${props.statusLoading() ? \" animate-spin\" : \"\"}`} />\n </button>\n\n <DiffToolbar\n viewMode={props.diffViewMode()}\n contextMode={props.diffContextMode()}\n onViewModeChange={props.onViewModeChange}\n onContextModeChange={props.onContextModeChange}\n />\n\n </>\n }\n list={{ panel: renderGroupedList, overlay: renderGroupedList }}\n viewer={renderViewer()}\n viewerActions={\n <button\n type=\"button\"\n class=\"file-viewer-toolbar-icon-button icon-toggle\"\n onClick={() => props.onWordWrapModeChange(props.diffWordWrapMode() === \"on\" ? \"off\" : \"on\")}\n aria-label={wordWrapTitle()}\n aria-pressed={props.diffWordWrapMode() === \"on\"}\n title={wordWrapTitle()}\n >\n <WrapText class=\"h-4 w-4\" aria-hidden=\"true\" />\n </button>\n }\n listOpen={props.listOpen()}\n onToggleList={props.onToggleList}\n splitWidth={props.splitWidth()}\n onResizeMouseDown={props.onResizeMouseDown}\n onResizeTouchStart={props.onResizeTouchStart}\n isPhoneLayout={props.isPhoneLayout()}\n overlayAriaLabel={props.t(\"instanceShell.rightPanel.tabs.gitChanges\")}\n />\n )\n }\n\n return <>{renderContent()}</>\n}\n\nexport default GitChangesTab\n"],"file":"assets/GitChangesTab-C3rapWwl.js"}
@@ -1,2 +1,2 @@
1
- import{t as d,i as l,d as w,r as v,m as _,f as L,e as x}from"./monaco-viewer-BB3_mBkA.js";import{a as S,k as n,S as o}from"./git-diff-vendor-ChbWBukG.js";import{u as C}from"./index-BfORYhCR.js";var k=d("<div class=file-list-overlay role=dialog><div class=file-list-scroll>");const z=e=>(()=>{var t=k(),c=t.firstChild;return l(c,()=>e.children),S(()=>w(t,"aria-label",e.ariaLabel)),t})();var A=d('<div class="absolute bottom-2 left-2 z-40 flex items-center gap-1">'),F=d('<div class="relative flex flex-1 min-h-0 min-w-0">'),O=d("<div class=files-split><div class=file-list-panel><div class=file-list-scroll></div></div><div class=file-split-handle role=separator aria-orientation=vertical>"),P=d("<div class=files-tab-container><div class=files-tab-header><div class=files-tab-header-row><button type=button class=files-toggle-button></button></div></div><div class=files-tab-body>");const D=e=>{const{t}=C(),c=()=>(()=>{var i=F();return l(i,()=>e.viewer,null),l(i,n(o,{get when(){return e.viewerActions},get children(){var a=A();return l(a,()=>e.viewerActions),a}}),null),i})();return(()=>{var i=P(),a=i.firstChild,h=a.firstChild,f=h.firstChild,m=a.nextSibling;return v(f,"click",e.onToggleList,!0),l(f,(()=>{var r=_(()=>!!e.listOpen);return()=>r()?t("instanceShell.filesShell.hideFiles"):t("instanceShell.filesShell.showFiles")})()),l(h,()=>e.header,null),l(m,n(o,{get when(){return _(()=>!e.isPhoneLayout)()&&e.listOpen},get fallback(){return c()},get children(){var r=O(),b=r.firstChild,y=b.firstChild,u=b.nextSibling;return l(y,()=>e.list.panel()),v(u,"touchstart",e.onResizeTouchStart,!0),v(u,"mousedown",e.onResizeMouseDown,!0),l(r,c,null),S(s=>{var g=`${e.splitWidth}px`,$=t("instanceShell.filesShell.resizeFiles");return g!==s.e&&L(r,"--files-pane-width",s.e=g),$!==s.t&&w(u,"aria-label",s.t=$),s},{e:void 0,t:void 0}),r}}),null),l(m,n(o,{get when(){return e.isPhoneLayout},get children(){return n(o,{get when(){return e.listOpen},get children(){return n(z,{get ariaLabel(){return e.overlayAriaLabel},get children(){return e.list.overlay()}})}})}}),null),i})()};x(["click","mousedown","touchstart"]);export{D as S};
2
- //# sourceMappingURL=SplitFilePanel-D9FfoZUZ.js.map
1
+ import{t as d,i as l,d as w,r as v,m as _,f as L,e as x}from"./monaco-viewer-BB3_mBkA.js";import{a as S,k as n,S as o}from"./git-diff-vendor-ChbWBukG.js";import{u as C}from"./index-ef9_CbWU.js";var k=d("<div class=file-list-overlay role=dialog><div class=file-list-scroll>");const z=e=>(()=>{var t=k(),c=t.firstChild;return l(c,()=>e.children),S(()=>w(t,"aria-label",e.ariaLabel)),t})();var A=d('<div class="absolute bottom-2 left-2 z-40 flex items-center gap-1">'),F=d('<div class="relative flex flex-1 min-h-0 min-w-0">'),O=d("<div class=files-split><div class=file-list-panel><div class=file-list-scroll></div></div><div class=file-split-handle role=separator aria-orientation=vertical>"),P=d("<div class=files-tab-container><div class=files-tab-header><div class=files-tab-header-row><button type=button class=files-toggle-button></button></div></div><div class=files-tab-body>");const D=e=>{const{t}=C(),c=()=>(()=>{var i=F();return l(i,()=>e.viewer,null),l(i,n(o,{get when(){return e.viewerActions},get children(){var a=A();return l(a,()=>e.viewerActions),a}}),null),i})();return(()=>{var i=P(),a=i.firstChild,h=a.firstChild,f=h.firstChild,m=a.nextSibling;return v(f,"click",e.onToggleList,!0),l(f,(()=>{var r=_(()=>!!e.listOpen);return()=>r()?t("instanceShell.filesShell.hideFiles"):t("instanceShell.filesShell.showFiles")})()),l(h,()=>e.header,null),l(m,n(o,{get when(){return _(()=>!e.isPhoneLayout)()&&e.listOpen},get fallback(){return c()},get children(){var r=O(),b=r.firstChild,y=b.firstChild,u=b.nextSibling;return l(y,()=>e.list.panel()),v(u,"touchstart",e.onResizeTouchStart,!0),v(u,"mousedown",e.onResizeMouseDown,!0),l(r,c,null),S(s=>{var g=`${e.splitWidth}px`,$=t("instanceShell.filesShell.resizeFiles");return g!==s.e&&L(r,"--files-pane-width",s.e=g),$!==s.t&&w(u,"aria-label",s.t=$),s},{e:void 0,t:void 0}),r}}),null),l(m,n(o,{get when(){return e.isPhoneLayout},get children(){return n(o,{get when(){return e.listOpen},get children(){return n(z,{get ariaLabel(){return e.overlayAriaLabel},get children(){return e.list.overlay()}})}})}}),null),i})()};x(["click","mousedown","touchstart"]);export{D as S};
2
+ //# sourceMappingURL=SplitFilePanel-D3S7Zfcc.js.map