@jingyi0605/codingns 0.7.0 → 0.7.1

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 (81) hide show
  1. package/dist/public/assets/{AdaptiveButlerPage-B8mg25ze.js → AdaptiveButlerPage-Cd8nPdO0.js} +1 -1
  2. package/dist/public/assets/{App-C2lNmeKL.js → App-CyxK-Nos.js} +3 -3
  3. package/dist/public/assets/{BootstrapPage-CAVA-a8h.js → BootstrapPage-DEwPKWR8.js} +1 -1
  4. package/dist/public/assets/ConversationPage-CxWtRhfz.js +6 -0
  5. package/dist/public/assets/{DesktopDetachPreviewPage-B37DUL15.js → DesktopDetachPreviewPage-DDOWolgB.js} +1 -1
  6. package/dist/public/assets/{DesktopWindowPage-CDA6l7lm.js → DesktopWindowPage-CtS9D8FD.js} +1 -1
  7. package/dist/public/assets/{FileContextPanel-CMGTtAB6.js → FileContextPanel-CNOjhsi5.js} +1 -1
  8. package/dist/public/assets/GitSidebar-DpC4UhFy.js +6 -0
  9. package/dist/public/assets/{MobileCreateSessionSheet-THIrIzJ3.js → MobileCreateSessionSheet-DE4pTyXj.js} +1 -1
  10. package/dist/public/assets/{MobileTopHeaderFrame-D-X7pVnV.js → MobileTopHeaderFrame-D_ZbS0qi.js} +1 -1
  11. package/dist/public/assets/{MobileWorkspaceSwitcherHeader-Cczi7RYu.js → MobileWorkspaceSwitcherHeader-Dc12IAXc.js} +1 -1
  12. package/dist/public/assets/{RelayConnectEntryPage-D417tgWj.js → RelayConnectEntryPage-D8kyZfdm.js} +1 -1
  13. package/dist/public/assets/{ServerSettingsModal-BdTxbRbU.js → ServerSettingsModal-8eRu6VXr.js} +1 -1
  14. package/dist/public/assets/{SessionIndexPage-D5iefVcc.js → SessionIndexPage-DIi0JWKP.js} +1 -1
  15. package/dist/public/assets/{SettingsPage-iCFe_DHP.js → SettingsPage-OQq3kp32.js} +1 -1
  16. package/dist/public/assets/{TerminalManagerPanel-CtldwWz8.js → TerminalManagerPanel-BEMzisSy.js} +1 -1
  17. package/dist/public/assets/{TerminalPage-DAzQTmQC.js → TerminalPage-CXLQfwjU.js} +1 -1
  18. package/dist/public/assets/{TerminalRuntimeFallbackModal-DLOhAvaq.js → TerminalRuntimeFallbackModal-BY_VUAbq.js} +1 -1
  19. package/dist/public/assets/ToolFilesPage-CYx3DgHg.js +1 -0
  20. package/dist/public/assets/ToolGitPage-fgQcvF6v.js +1 -0
  21. package/dist/public/assets/ToolProcessesPage-BL6yDDPV.js +1 -0
  22. package/dist/public/assets/{ToolsHomePage-rU3V8mmh.js → ToolsHomePage-B1n2OeVw.js} +1 -1
  23. package/dist/public/assets/{WorkbenchLandingPage-BudM2C69.js → WorkbenchLandingPage-Cu9yAWYo.js} +1 -1
  24. package/dist/public/assets/WorkbenchLayout-D6hGXWGE.js +244 -0
  25. package/dist/public/assets/{WorkbenchModal-DMQutm1x.js → WorkbenchModal-Bpb_G1-U.js} +1 -1
  26. package/dist/public/assets/WorkbenchShellRoute-BCjcGWhl.js +1 -0
  27. package/dist/public/assets/{WorkspaceDebugDetailPage-CHqo-uDf.js → WorkspaceDebugDetailPage-CZwT99iQ.js} +1 -1
  28. package/dist/public/assets/{WorkspaceDetailPage-CGkAH1W-.js → WorkspaceDetailPage-DCM-olfU.js} +1 -1
  29. package/dist/public/assets/{WorkspaceHomePage-CfuPVITd.js → WorkspaceHomePage-CsIIqIma.js} +1 -1
  30. package/dist/public/assets/{client-runtime-manager-CKbtaemV.js → client-runtime-manager-CMK7kLp8.js} +1 -1
  31. package/dist/public/assets/file-tree-icon-Bv-apgA1.js +3 -0
  32. package/dist/public/assets/index-CkkzIvxs.css +1 -0
  33. package/dist/public/assets/index-O3gOb1E0.js +42 -0
  34. package/dist/public/assets/{login-direct-candidate-resolver-DjJMbqB7.js → login-direct-candidate-resolver-Bn4I5JHh.js} +1 -1
  35. package/dist/public/assets/{model-switch-api-T55eW6D4.js → model-switch-api-ZGnyVir7.js} +1 -1
  36. package/dist/public/assets/{preferences-service-BTKBl5xM.js → preferences-service-scuqVhuA.js} +1 -1
  37. package/dist/public/assets/realtime-client-TRootbbB.js +1 -0
  38. package/dist/public/assets/{relay-entry-sdeFnTbY.js → relay-entry-eyCjVFMA.js} +1 -1
  39. package/dist/public/assets/styles-DkbkRgWw.css +1 -0
  40. package/dist/public/assets/{terminal-runtime-meta-Cvt1ID92.js → terminal-runtime-meta-BGcnzxqn.js} +1 -1
  41. package/dist/public/assets/{useRegisteredDebugTemplates-O-ymgLd9.js → useRegisteredDebugTemplates-BdgPIDVM.js} +1 -1
  42. package/dist/public/index.html +2 -2
  43. package/dist/server/modules/git/git-controller.d.ts +3 -1
  44. package/dist/server/modules/git/git-controller.js +9 -2
  45. package/dist/server/modules/git/git-controller.js.map +1 -1
  46. package/dist/server/modules/git/git-read-service.js +2 -1
  47. package/dist/server/modules/git/git-read-service.js.map +1 -1
  48. package/dist/server/modules/git/git-remote-credential-service.d.ts +1 -0
  49. package/dist/server/modules/git/git-remote-credential-service.js +4 -0
  50. package/dist/server/modules/git/git-remote-credential-service.js.map +1 -1
  51. package/dist/server/modules/git/types.d.ts +1 -0
  52. package/dist/server/modules/provider/codex-model-options.js +14 -15
  53. package/dist/server/modules/provider/codex-model-options.js.map +1 -1
  54. package/dist/server/modules/provider/provider-discovery-helper-process.js +2 -1
  55. package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -1
  56. package/dist/server/server/create-server.js +1 -1
  57. package/dist/server/server/create-server.js.map +1 -1
  58. package/node_modules/@codingns/session-sync-core/dist/patch-builder.d.ts +6 -0
  59. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js +398 -0
  60. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js.map +1 -1
  61. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +47 -4
  62. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
  63. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +32 -4
  64. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  65. package/package.json +5 -1
  66. package/dist/public/assets/ConversationPage-B6BGOX4C.js +0 -6
  67. package/dist/public/assets/GitSidebar--DCqBiGL.js +0 -6
  68. package/dist/public/assets/ToolFilesPage-D7thcDEv.js +0 -1
  69. package/dist/public/assets/ToolGitPage-uPRsxdcn.js +0 -1
  70. package/dist/public/assets/ToolProcessesPage-B1uOk0Ef.js +0 -1
  71. package/dist/public/assets/WorkbenchLayout-Dybarc1V.js +0 -244
  72. package/dist/public/assets/WorkbenchShellRoute-Cy4WBbzq.js +0 -1
  73. package/dist/public/assets/file-tree-icon-Bc0KADEl.js +0 -3
  74. package/dist/public/assets/index-DNRyROOG.css +0 -1
  75. package/dist/public/assets/index-oGylLBIX.js +0 -42
  76. package/dist/public/assets/realtime-client-ww7MnbTD.js +0 -1
  77. package/dist/public/assets/styles-BjPytabP.css +0 -1
  78. package/dist/server/modules/channels/wechat-claw-client.d.ts +0 -51
  79. package/dist/server/modules/channels/wechat-claw-client.js +0 -245
  80. package/dist/server/modules/channels/wechat-claw-client.js.map +0 -1
  81. /package/dist/public/assets/{styles-lhQGDlPF.js → styles-JKFlsYFv.js} +0 -0
@@ -1 +0,0 @@
1
- import{j as t}from"./index-oGylLBIX.js";import{a as e}from"./WorkbenchLayout-Dybarc1V.js";import{e as m,r as s}from"./App-C2lNmeKL.js";import"./model-switch-api-T55eW6D4.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./WorkbenchModal-DMQutm1x.js";import"./relay-entry-sdeFnTbY.js";function u(){const o=m(),r=s(o);return t.jsx(e,{shellMode:r})}export{u as WorkbenchShellRoute};
@@ -1,3 +0,0 @@
1
- import{b as u,j as a,t as d,J as Ie,H as Fe,D as Ue,A as Ae}from"./index-oGylLBIX.js";import{D as De}from"./WorkbenchModal-DMQutm1x.js";import{f as he,e as me}from"./App-C2lNmeKL.js";import{bC as q,bD as Oe,bE as $e,bF as He}from"./WorkbenchLayout-Dybarc1V.js";const A="allow-forms allow-modals allow-scripts",_e=`${A} allow-same-origin`,Ze=new Set(["abstract","as","async","await","break","case","catch","class","const","continue","default","delete","do","else","enum","export","extends","false","finally","for","from","function","if","implements","import","in","instanceof","interface","let","new","null","package","private","protected","public","readonly","return","static","super","switch","this","throw","true","try","type","typeof","undefined","var","void","while","with","yield"]),Be=new Set(["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","False","finally","for","from","global","if","import","in","is","lambda","None","nonlocal","not","or","pass","raise","return","True","try","while","with","yield"]),Ge=new Set(["case","do","done","elif","else","esac","export","fi","for","function","if","in","local","readonly","return","then","until","while"]),Ye=new Set(["add","alter","and","as","asc","between","by","create","delete","desc","drop","from","group","having","insert","into","join","left","like","limit","not","null","offset","on","or","order","right","select","set","table","union","update","values","where"]),Je=new Set(["add","arg","cmd","copy","entrypoint","env","expose","from","healthcheck","label","maintainer","onbuild","run","shell","stopsignal","user","volume","workdir","as"]),qe=new Set(["trace","debug","info","warn","warning","error","fatal"]);function Zt({workspaceId:e,filePath:t,open:n,onClose:r,onSaved:o,diffContent:s}){var de,ue;const[i,l]=u.useState(null),[c,h]=u.useState(""),[f,p]=u.useState(!1),[k,b]=u.useState(!1),[g,w]=u.useState("preview"),[y,$]=u.useState("regular"),[S,N]=u.useState(0),[se,C]=u.useState("fit"),[oe,P]=u.useState(1),[H,W]=u.useState(1),[_,E]=u.useState(110),[Z,V]=u.useState(!0),{showToast:v}=he(),j=me(),ae=u.useRef(r),le=u.useRef(v),I=u.useMemo(()=>re(t),[t]),be=u.useMemo(()=>Ut(s),[s]),x=(i==null?void 0:i.kind)??null,R=!!((de=i==null?void 0:i.capabilities)!=null&&de.canEdit),ye=!!((ue=i==null?void 0:i.capabilities)!=null&&ue.canRefresh),ce=tt(x,I),L=u.useMemo(()=>nt(i,j.isDesktop),[j.isDesktop,i]),B=u.useMemo(()=>rt(i,j.isDesktop),[j.isDesktop,i]),Se=u.useMemo(()=>ee(L,S),[L,S]),je=u.useMemo(()=>st(L,S,H,_,Z),[L,S,H,_,Z]),Le=u.useMemo(()=>ee(L,S),[L,S]),Me=(i==null?void 0:i.content)??"",Ne=u.useDeferredValue(c),G=R&&c!==Me,Ce=we(x),Pe=K(x),We=Qe(x,I);if(u.useEffect(()=>{ae.current=r},[r]),u.useEffect(()=>{le.current=v},[v]),u.useEffect(()=>{if(!n){l(null),h(""),p(!1),b(!1),w(pe(t,null)),ge({setResourceRefreshVersion:N,setImageScale:P,setImageScaleMode:C,setPdfPage:W,setPdfScale:E,setPdfFitWidth:V}),$("regular");return}if(!e||!t)return;const m=e,F=t;let U=!1;async function ze(){p(!0);try{const J=await q(m,F);U||X(J,F,{preserveMode:!1,setPreview:l,setEditorContent:h,setMode:w,setResourceRefreshVersion:N,setImageScale:P,setImageScaleMode:C,setPdfPage:W,setPdfScale:E,setPdfFitWidth:V})}catch(J){U||(le.current({title:Q(J,d("conversation.filePanelOpenFailed")),tone:"error"}),ae.current())}finally{U||p(!1)}}return ze(),()=>{U=!0}},[t,n,e]),!n||!t)return null;const M=t,T=e;async function Ee(){if(!(!T||!(i!=null&&i.version)||!R)){b(!0);try{await Oe(T,M,c,i.version);const m=await q(T,M);X(m,M,{preserveMode:!1,setPreview:l,setEditorContent:h,setMode:w,setResourceRefreshVersion:N,setImageScale:P,setImageScaleMode:C,setPdfPage:W,setPdfScale:E,setPdfFitWidth:V}),await o(M),v({title:d("conversation.filePanelSaveSuccess"),tone:"success"})}catch(m){v({title:Q(m,d("conversation.filePanelSaveFailed")),tone:"error"})}finally{b(!1)}}}async function Ve(){if(!(!T||!ye||G)){p(!0);try{const m=await q(T,M);X(m,M,{preserveMode:!0,setPreview:l,setEditorContent:h,setMode:w,setResourceRefreshVersion:N,setImageScale:P,setImageScaleMode:C,setPdfPage:W,setPdfScale:E,setPdfFitWidth:V}),N(F=>F+1)}catch(m){v({title:Q(m,d("conversation.fileViewerRefreshFailed")),tone:"error"})}finally{p(!1)}}}async function Re(){if(!B)return;const m=await j.bridge.openExternal(B);m.ok||v({title:m.detail??d("conversation.fileViewerOpenExternalFailed"),tone:"error"})}const Y=Ke({canShowPreviewTab:Ce,canShowCodeTab:Pe,canEdit:R}),Te=et({preview:i,canOpenExternal:!!B,isDirty:G,handleRefreshPreview:Ve,handleOpenExternal:Re,imageScaleMode:se,imageScale:oe,setImageScale:P,setImageScaleMode:C,pdfPage:H,setPdfPage:W,pdfScale:_,setPdfScale:E,pdfFitWidth:Z,setPdfFitWidth:V});return a.jsxs(De,{open:n,title:t,description:d("conversation.fileViewerHint").replace("{language}",ce),size:y,layout:"viewer",className:`file-viewer-modal${j.isDesktop&&y!=="full"?" is-resizable":""}`,bodyClassName:"file-viewer-modal-body",onClose:r,children:[a.jsxs("div",{className:"file-viewer-toolbar",children:[a.jsxs("div",{className:"file-viewer-toolbar-start",children:[a.jsxs("div",{className:"file-viewer-tabs",role:"tablist","aria-label":d("conversation.fileViewerModeLabel"),children:[Y.includes("preview")?a.jsx("button",{type:"button",className:"file-viewer-tab","data-active":g==="preview",role:"tab","aria-selected":g==="preview",onClick:()=>w("preview"),children:d("conversation.fileViewerPreview")}):null,Y.includes("code")?a.jsx("button",{type:"button",className:"file-viewer-tab","data-active":g==="code",role:"tab","aria-selected":g==="code",onClick:()=>w("code"),children:d("conversation.fileViewerCode")}):null,Y.includes("edit")?a.jsx("button",{type:"button",className:"file-viewer-tab","data-active":g==="edit",role:"tab","aria-selected":g==="edit",onClick:()=>w("edit"),disabled:!R,children:d("conversation.fileViewerEdit")}):null]}),a.jsx("span",{className:"file-viewer-language",children:ce})]}),a.jsxs("div",{className:"file-viewer-toolbar-end",children:[a.jsxs("div",{className:"file-viewer-size-group",role:"group","aria-label":d("conversation.fileViewerSizeLabel"),children:[a.jsx("button",{type:"button",className:"secondary-button file-viewer-action-button","data-active":y==="regular",onClick:()=>$("regular"),children:d("conversation.fileViewerSizeDefault")}),a.jsx("button",{type:"button",className:"secondary-button file-viewer-action-button","data-active":y==="full",onClick:()=>$("full"),children:d("conversation.fileViewerSizeFull")})]}),a.jsx("div",{className:"file-viewer-actions",children:Te.map(m=>a.jsx("button",{type:"button",className:"secondary-button file-viewer-action-button","data-active":m.active?"true":void 0,onClick:()=>void m.onClick(),disabled:m.disabled,children:m.label},m.id))}),R?a.jsx("button",{type:"button",className:"primary-button",onClick:()=>void Ee(),disabled:!G||k,children:k?d("conversation.filePanelSaving"):d("conversation.filePanelSave")}):null]})]}),a.jsx("div",{className:"file-viewer-body",children:f?a.jsx("p",{className:"status-text",children:d("common.loading")}):(i==null?void 0:i.supported)===!1?a.jsx("p",{className:"status-text",children:i.reason??d("conversation.filePanelUnsupported")}):g==="edit"?a.jsx(lt,{content:c,deferredContent:Ne,language:I,useInlineRenderedEditor:We,onContentChange:h}):g==="preview"&&x==="html"?a.jsx(at,{src:Le,filePath:t}):g==="preview"&&x==="image"?a.jsx(ut,{src:Se,filePath:t,scale:oe,scaleMode:se}):g==="preview"&&x==="pdf"?a.jsx(ft,{src:je,filePath:t}):g==="preview"&&x==="markdown"?a.jsx(ht,{content:c}):a.jsx(mt,{content:c,language:I,overviewMarkers:be})})]})}function pe(e,t){return t==="markdown"||t==="html"||t==="image"||t==="pdf"||Tt(e??"")||zt(e??"")?"preview":"code"}function X(e,t,n){n.setPreview(e),n.setEditorContent(e.content??""),n.setMode(r=>n.preserveMode&&Xe(r,e.kind)?r:pe(t,e.kind)),ge(n)}function ge(e){e.setResourceRefreshVersion(0),e.setImageScale(1),e.setImageScaleMode("fit"),e.setPdfPage(1),e.setPdfScale(110),e.setPdfFitWidth(!0)}function we(e){return e==="markdown"||e==="html"||e==="image"||e==="pdf"}function K(e){return e==="text"||e==="markdown"||e==="html"}function Xe(e,t){return e==="preview"?we(t):K(t)}function Qe(e,t){return e==="text"&&Rt(t)}function Ke(e){const t=[];return e.canShowPreviewTab&&t.push("preview"),e.canShowCodeTab?(t.push("code"),t.push("edit")):e.canEdit&&t.push("edit"),t}function et(e){var r,o;if(!((r=e.preview)!=null&&r.supported))return[];const t=[],n=!((o=e.preview.capabilities)!=null&&o.canRefresh)||e.isDirty;return e.preview.kind==="image"&&t.push({id:"image-zoom-out",label:d("conversation.fileViewerZoomOut"),onClick:()=>{e.setImageScaleMode("custom"),e.setImageScale(s=>Math.max(.25,fe(s-.25)))}},{id:"image-zoom-in",label:d("conversation.fileViewerZoomIn"),onClick:()=>{e.setImageScaleMode("custom"),e.setImageScale(s=>Math.min(4,fe(s+.25)))}},{id:"image-fit",label:d("conversation.fileViewerFit"),active:e.imageScaleMode==="fit",onClick:()=>{e.setImageScaleMode("fit"),e.setImageScale(1)}},{id:"image-actual",label:d("conversation.fileViewerActualSize"),active:e.imageScaleMode==="actual",onClick:()=>{e.setImageScaleMode("actual"),e.setImageScale(1)}},{id:"image-refresh",label:d("conversation.fileViewerRefreshPreview"),disabled:n,onClick:e.handleRefreshPreview}),e.preview.kind==="pdf"&&t.push({id:"pdf-prev-page",label:d("conversation.fileViewerPreviousPage"),disabled:e.pdfPage<=1,onClick:()=>e.setPdfPage(s=>Math.max(1,s-1))},{id:"pdf-page-indicator",label:d("conversation.fileViewerPageIndicator").replace("{page}",String(e.pdfPage)),disabled:!0,onClick:()=>{}},{id:"pdf-next-page",label:d("conversation.fileViewerNextPage"),onClick:()=>e.setPdfPage(s=>s+1)},{id:"pdf-zoom-out",label:d("conversation.fileViewerZoomOut"),onClick:()=>{e.setPdfFitWidth(!1),e.setPdfScale(s=>Math.max(50,Math.round(s-10)))}},{id:"pdf-zoom-in",label:d("conversation.fileViewerZoomIn"),onClick:()=>{e.setPdfFitWidth(!1),e.setPdfScale(s=>Math.min(300,Math.round(s+10)))}},{id:"pdf-fit-width",label:d("conversation.fileViewerFitWidth"),active:e.pdfFitWidth,onClick:()=>e.setPdfFitWidth(!0)},{id:"pdf-refresh",label:d("conversation.fileViewerRefreshPreview"),disabled:n,onClick:e.handleRefreshPreview}),(e.preview.kind==="html"||e.preview.kind==="markdown"||e.preview.kind==="text")&&t.push({id:"text-refresh",label:d("conversation.fileViewerRefreshPreview"),disabled:n,onClick:e.handleRefreshPreview}),e.canOpenExternal&&t.push({id:"open-external",label:d("conversation.fileViewerOpenExternal"),onClick:e.handleOpenExternal}),t}function tt(e,t){switch(e){case"image":return d("conversation.fileViewerImage");case"pdf":return d("conversation.fileViewerPdf");case"html":return"HTML";case"markdown":return"Markdown";default:return ie(t)}}function ee(e,t){if(!e)return null;const n=new URL(e,window.location.origin);return n.searchParams.set("_preview",String(t)),n.hash="",n.toString()}function nt(e,t){var n;return e?!t&&e.previewPath&&typeof window<"u"&&((n=window.location)!=null&&n.origin)?new URL(e.previewPath,window.location.origin).toString():e.previewUrl??null:null}function rt(e,t){var n;if(!e)return null;if(e.previewPath){if(!t&&typeof window<"u"&&((n=window.location)!=null&&n.origin))return new URL(e.previewPath,window.location.origin).toString();if(t){const r=it(e.previewPath);if(r)return r}}return e.previewUrl??null}function it(e){try{const t=Ie(Fe()).baseUrl;return Ue(e,t)}catch{return null}}function st(e,t,n,r,o){const s=ee(e,t);if(!s)return null;const i=new URL(s,window.location.origin),l=new URLSearchParams;return l.set("page",String(n)),l.set("zoom",o?"page-width":String(r)),i.hash=l.toString(),i.toString()}function ot(e){var t;if(typeof window>"u"||!((t=window.location)!=null&&t.origin))return A;try{if(new URL(e,window.location.origin).origin!==window.location.origin)return _e}catch{return A}return A}function fe(e){return Math.round(e*100)/100}function at({src:e,filePath:t}){if(!e)return a.jsx("p",{className:"status-text",children:d("conversation.fileViewerHtmlPreviewUnavailable")});const n=ot(e);return a.jsx("div",{className:"file-viewer-html-frame-shell",children:a.jsx("iframe",{className:"file-viewer-html-frame","data-testid":"file-viewer-html-preview",title:t,src:e,sandbox:n},e)})}function lt(e){return e.useInlineRenderedEditor?a.jsx(ct,{content:e.content,deferredContent:e.deferredContent,language:e.language,onContentChange:e.onContentChange}):a.jsx("textarea",{className:"file-viewer-editor","data-testid":"file-viewer-editor",value:e.content,onChange:t=>e.onContentChange(t.target.value),spellCheck:!1})}function ct(e){const t=u.useRef(null);function n(r){const o=t.current;o&&(o.scrollTop=r.currentTarget.scrollTop,o.scrollLeft=r.currentTarget.scrollLeft)}return a.jsxs("div",{className:"file-viewer-inline-editor-shell",children:[a.jsx("div",{ref:t,className:"file-viewer-inline-editor-render","data-testid":"file-viewer-inline-render","aria-hidden":"true",children:a.jsx(dt,{content:e.deferredContent,language:e.language})}),a.jsx("textarea",{className:"file-viewer-editor file-viewer-editor-input","data-testid":"file-viewer-editor",value:e.content,onChange:r=>e.onContentChange(r.target.value),onScroll:n,spellCheck:!1})]})}function dt({content:e,language:t}){const n=e.split(/\r?\n/);return a.jsx("div",{className:"file-viewer-inline-editor-content",children:n.map((r,o)=>{const s=ve(r,t);return a.jsx("div",{className:"file-viewer-inline-editor-line",children:a.jsx("code",{className:"file-viewer-inline-editor-code",children:s.length?s.map((i,l)=>a.jsx("span",{className:`code-token ${i.kind}`,children:i.text},`${o}-${l}-${i.text}`)):a.jsx("span",{className:"code-token plain",children:" "})})},`${o}-${r}`)})})}function ut({src:e,filePath:t,scale:n,scaleMode:r}){return e?a.jsx("div",{className:"file-viewer-media-shell","data-mode":r,children:a.jsx("div",{className:"file-viewer-image-stage",children:a.jsx("img",{className:"file-viewer-image","data-testid":"file-viewer-image-preview","data-mode":r,src:e,alt:t,style:r==="fit"?void 0:{transform:`scale(${n})`}})})}):a.jsx("p",{className:"status-text",children:d("conversation.fileViewerImageUnavailable")})}function ft({src:e,filePath:t}){return e?a.jsx("div",{className:"file-viewer-pdf-shell",children:a.jsx("iframe",{className:"file-viewer-pdf-frame","data-testid":"file-viewer-pdf-preview",title:t,src:e},e)}):a.jsx("p",{className:"status-text",children:d("conversation.fileViewerPdfUnavailable")})}function ht({content:e}){return a.jsx("div",{className:"markdown-content file-viewer-markdown",children:a.jsx($e,{remarkPlugins:[He],components:{pre(t){const n=gt(t.children);return n?a.jsx(pt,{content:n.content,language:n.language,codeClassName:n.codeClassName}):a.jsx("pre",{children:t.children})},code(t){const n=typeof t.className=="string"?t.className:"";return a.jsx("code",{className:n||void 0,children:t.children})}},children:e})})}function mt({content:e,language:t,overviewMarkers:n=[]}){const r=e.split(/\r?\n/),o=u.useRef(null),s=u.useMemo(()=>{const i=new Map;for(const l of n)for(let c=0;c<l.span;c++)i.set(l.line+c,l.kind);return i},[n]);return a.jsxs("div",{className:"file-viewer-code-block",children:[a.jsxs("div",{className:"file-viewer-code-header",children:[a.jsx("span",{className:"file-viewer-code-header-label",children:ie(t)}),a.jsx(xe,{content:e})]}),a.jsxs("div",{className:"file-viewer-scroll-shell",children:[a.jsx("div",{className:"file-viewer-code-body",ref:o,children:r.map((i,l)=>{const c=ve(i,t),h=l+1,f=s.get(h);return a.jsxs("div",{className:`file-viewer-code-line${f?` diff-line-${f}`:""}`,children:[a.jsx("span",{className:"file-viewer-code-gutter",children:h}),a.jsx("code",{className:"file-viewer-code-content",children:c.length?c.map((p,k)=>a.jsx("span",{className:`code-token ${p.kind}`,children:p.text},`${l}-${k}-${p.text}`)):a.jsx("span",{className:"code-token plain",children:" "})})]},`${l}-${i}`)})}),a.jsx(Dt,{markers:n,totalLines:r.length,scrollContainerRef:o})]})]})}function pt({content:e,language:t,codeClassName:n}){const r=t?O(t):null;return a.jsxs("div",{className:"file-viewer-markdown-copy-block",children:[a.jsxs("div",{className:"file-viewer-markdown-copy-header",children:[a.jsx("span",{className:"file-viewer-markdown-copy-label",children:r?ie(r):d("conversation.fileViewerPlainText")}),a.jsx(xe,{content:e})]}),a.jsx("pre",{className:n,children:a.jsx("code",{children:e})})]})}function xe({content:e}){const{showToast:t}=he(),n=me(),[r,o]=u.useState(!1);if(!e.trim())return null;async function s(){if(!r){o(!0);try{await xt(e,n),t({title:d("conversation.copyContentSuccess"),tone:"success"})}catch(i){t({title:i instanceof Error?i.message:d("conversation.copyContentFailed"),tone:"error"})}finally{o(!1)}}}return a.jsx("button",{type:"button",className:"file-viewer-copy-button","aria-label":d("conversation.copyAction"),title:d("conversation.copyAction"),onClick:()=>void s(),disabled:r,children:a.jsx(It,{})})}function te(e){var t;return typeof e=="string"||typeof e=="number"?String(e):Array.isArray(e)?e.map(n=>te(n)).join(""):u.isValidElement(e)?te(((t=e.props)==null?void 0:t.children)??""):""}function gt(e){const t=Array.isArray(e)?e[0]:e;if(!u.isValidElement(t))return null;const n=t.props,r=typeof n.className=="string"?n.className:"",o=/language-([^\s]+)/.exec(r);return{content:te(n.children).replace(/\n$/,""),codeClassName:r||void 0,language:(o==null?void 0:o[1])??null}}function wt(e){if(typeof document>"u"||typeof document.execCommand!="function")return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly","true"),t.style.position="fixed",t.style.top="-9999px",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();try{return document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(t)}}async function xt(e,t){var n;if(!(t.isDesktop&&(await t.bridge.writeClipboardText(e)).ok)){if(typeof navigator<"u"&&((n=navigator.clipboard)!=null&&n.writeText))try{await navigator.clipboard.writeText(e);return}catch{}if(!wt(e))throw new Error(d("conversation.copyContentFailed"))}}function ve(e,t){const n=O(t);return n==="json"?vt(e):n==="yaml"?St(e):n==="toml"?jt(e):n==="ini"?ke(e):n==="env"?Lt(e):n==="properties"?Mt(e):n==="conf"?Nt(e):n==="editorconfig"?Ct(e):n==="dockerfile"?Pt(e):n==="gitignore"?Wt(e):n==="log"?Et(e):n==="python"?z(e,Be,"#"):n==="shell"?z(e,Ge,"#"):n==="sql"?yt(e):n==="html"||n==="xml"?kt(e):n==="css"?bt(e):n==="markdown"?[{text:e,kind:"plain"}]:z(e,Ze,"//")}function z(e,t,n){const r=[];let o=0;for(;o<e.length;){const s=e.slice(o);if(s.startsWith(n)){r.push({text:s,kind:"comment"});break}const i=/^(?:'[^'\\]*(?:\\.[^'\\]*)*'|"[^"\\]*(?:\\.[^"\\]*)*"|`[^`\\]*(?:\\.[^`\\]*)*`)/.exec(s);if(i){r.push({text:i[0],kind:"string"}),o+=i[0].length;continue}const l=/^(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/.exec(s);if(l){r.push({text:l[0],kind:"number"}),o+=l[0].length;continue}const c=/^[A-Za-z_][\w$-]*/.exec(s);if(c){const f=c[0],p=f.toLowerCase();f==="true"||f==="false"||p==="true"||p==="false"?r.push({text:f,kind:"boolean"}):f==="null"||f==="None"||p==="none"?r.push({text:f,kind:"null"}):t.has(f)||t.has(p)?r.push({text:f,kind:"keyword"}):r.push({text:f,kind:"plain"}),o+=f.length;continue}const h=/^(?:===|!==|==|!=|<=|>=|=>|&&|\|\||[+\-*/%=<>!?:|&^~]+)/.exec(s);if(h){r.push({text:h[0],kind:"operator"}),o+=h[0].length;continue}r.push({text:s[0]??"",kind:"plain"}),o+=1}return r}function vt(e){const t=[];let n=0;for(;n<e.length;){const r=e.slice(n),o=/^"(?:[^"\\]|\\.)*"/.exec(r);if(o){const c=e.slice(n+o[0].length).trimStart()[0];t.push({text:o[0],kind:c===":"?"attr":"string"}),n+=o[0].length;continue}const s=/^(?:-?\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i.exec(r);if(s){t.push({text:s[0],kind:"number"}),n+=s[0].length;continue}const i=/^(?:true|false|null)\b/.exec(r);if(i){const c=i[0]==="null"?"null":"boolean";t.push({text:i[0],kind:c}),n+=i[0].length;continue}const l=/^(?::|,|\{|\}|\[|\])/.exec(r);if(l){t.push({text:l[0],kind:"operator"}),n+=l[0].length;continue}t.push({text:r[0]??"",kind:"plain"}),n+=1}return t}function kt(e){const t=[];let n=0;for(;n<e.length;){const r=e.slice(n);if(r.startsWith("<!--")){t.push({text:r,kind:"comment"});break}const o=/^(<\/?[\w:-]+)/.exec(r);if(o){t.push({text:o[0],kind:"tag"}),n+=o[0].length;continue}const s=/^([\w:-]+)(=)/.exec(r);if(s){t.push({text:s[1]??"",kind:"attr"}),t.push({text:s[2]??"",kind:"operator"}),n+=s[0].length;continue}const i=/^(?:'[^']*'|"[^"]*")/.exec(r);if(i){t.push({text:i[0],kind:"string"}),n+=i[0].length;continue}const l=/^(?:\/?>)/.exec(r);if(l){t.push({text:l[0],kind:"operator"}),n+=l[0].length;continue}t.push({text:r[0]??"",kind:"plain"}),n+=1}return t}function bt(e){const t=[];let n=0;for(;n<e.length;){const r=e.slice(n);if(r.startsWith("/*")){t.push({text:r,kind:"comment"});break}const o=/^(?:'[^']*'|"[^"]*")/.exec(r);if(o){t.push({text:o[0],kind:"string"}),n+=o[0].length;continue}const s=/^([A-Za-z-]+)(\s*:)/.exec(r);if(s){t.push({text:s[1]??"",kind:"attr"}),t.push({text:s[2]??"",kind:"operator"}),n+=s[0].length;continue}const i=/^(?:#(?:[\da-fA-F]{3,8})|\d+(?:\.\d+)?(?:px|rem|em|vh|vw|%)?)/.exec(r);if(i){t.push({text:i[0],kind:"number"}),n+=i[0].length;continue}const l=/^(?:@media|@supports|@import|@keyframes)\b/.exec(r);if(l){t.push({text:l[0],kind:"keyword"}),n+=l[0].length;continue}const c=/^(?:[{}:;(),.>])/.exec(r);if(c){t.push({text:c[0],kind:"operator"}),n+=c[0].length;continue}t.push({text:r[0]??"",kind:"plain"}),n+=1}return t}function yt(e){return z(e,Ye,"--")}function St(e){const t=[];let n=0;for(;n<e.length;){const r=e.slice(n);if(r.startsWith("#")){t.push({text:r,kind:"comment"});break}const o=/^([A-Za-z0-9_.-]+)(\s*:)/.exec(r);if(o){t.push({text:o[1]??"",kind:"attr"}),t.push({text:o[2]??"",kind:"operator"}),n+=o[0].length;continue}const s=/^(?:'[^']*'|"[^"]*")/.exec(r);if(s){t.push({text:s[0],kind:"string"}),n+=s[0].length;continue}const i=/^(?:-?\d+(?:\.\d+)?)/.exec(r);if(i){t.push({text:i[0],kind:"number"}),n+=i[0].length;continue}const l=/^(?:true|false|yes|no|null|~)\b/i.exec(r);if(l){const h=l[0].toLowerCase(),f=h==="null"||h==="~"?"null":"boolean";t.push({text:l[0],kind:f}),n+=l[0].length;continue}const c=/^(?:[-?:,[\]{}|>])/.exec(r);if(c){t.push({text:c[0],kind:"operator"}),n+=c[0].length;continue}t.push({text:r[0]??"",kind:"plain"}),n+=1}return t}function jt(e){const t=[];let n=0;for(;n<e.length;){const r=e.slice(n);if(r.startsWith("#")){t.push({text:r,kind:"comment"});break}const o=/^(\[\[?[^\]]+\]?\])/.exec(r);if(o){t.push({text:o[0],kind:"tag"}),n+=o[0].length;continue}const s=/^([A-Za-z0-9_.-]+)(\s*=)/.exec(r);if(s){t.push({text:s[1]??"",kind:"attr"}),t.push({text:s[2]??"",kind:"operator"}),n+=s[0].length;continue}const i=D(r,{trueValues:["true"],falseValues:["false"],nullValues:[]});if(i){t.push(...i.tokens),n+=i.length;continue}const l=/^(?:[,[\]{}])/.exec(r);if(l){t.push({text:l[0],kind:"operator"}),n+=l[0].length;continue}t.push({text:r[0]??"",kind:"plain"}),n+=1}return t}function ke(e){const t=[];let n=0;for(;n<e.length;){const r=e.slice(n),o=r.trimStart();if(o.startsWith(";")||o.startsWith("#")){t.push({text:r,kind:"comment"});break}const s=/^(\[[^\]]+\])/.exec(r);if(s){t.push({text:s[0],kind:"tag"}),n+=s[0].length;continue}const i=/^([A-Za-z0-9_.-]+)(\s*[=:])/.exec(r);if(i){t.push({text:i[1]??"",kind:"attr"}),t.push({text:i[2]??"",kind:"operator"}),n+=i[0].length;continue}const l=D(r,{trueValues:["true","yes","on"],falseValues:["false","no","off"],nullValues:["null"]});if(l){t.push(...l.tokens),n+=l.length;continue}t.push({text:r[0]??"",kind:"plain"}),n+=1}return t}function Lt(e){if(e.trimStart().startsWith("#"))return[{text:e,kind:"comment"}];const n=/^(\s*)(export)(\s+)/.exec(e),r=n?n[0].length:0,o=[];n&&(o.push({text:n[1]??"",kind:"plain"}),o.push({text:n[2]??"",kind:"keyword"}),o.push({text:n[3]??"",kind:"plain"}));const s=e.slice(r),i=/^([A-Za-z_][A-Za-z0-9_]*)(=)/.exec(s);if(!i)return ke(e);o.push({text:i[1]??"",kind:"attr"}),o.push({text:i[2]??"",kind:"operator"});const l=s.slice(i[0].length),c=D(l,{trueValues:["true"],falseValues:["false"],nullValues:["null"]});return c?(o.push(...c.tokens),o):(o.push({text:l,kind:"plain"}),o)}function Mt(e){return ne(e,{commentPrefixes:["#","!"],allowSection:!1,delimiters:["=",":"]})}function Nt(e){return ne(e,{commentPrefixes:["#",";"],allowSection:!0,delimiters:["=",":"]})}function Ct(e){return ne(e,{commentPrefixes:["#",";"],allowSection:!0,delimiters:["="]})}function Pt(e){return z(e,Je,"#")}function Wt(e){const t=e.trimStart();if(!t)return[];if(t.startsWith("#"))return[{text:e,kind:"comment"}];if(t.startsWith("!")){const n=e.length-t.length,r=e.slice(0,n),o=t.slice(1);return[{text:r,kind:"plain"},{text:"!",kind:"operator"},{text:o,kind:"string"}]}return[{text:e,kind:"string"}]}function Et(e){const t=[];let n=0;for(;n<e.length;){const r=e.slice(n);if(r.startsWith("#")){t.push({text:r,kind:"comment"});break}const o=/^(?:\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}:\d{2}(?:[.,]\d{3,6})?(?:Z|[+-]\d{2}:\d{2})?)/.exec(r);if(o){t.push({text:o[0],kind:"tag"}),n+=o[0].length;continue}const s=/^(?:\[(TRACE|DEBUG|INFO|WARN|WARNING|ERROR|FATAL)\])/.exec(r);if(s){t.push({text:r.slice(0,s[0].length),kind:"keyword"}),n+=s[0].length;continue}const i=/^[A-Za-z_][\w-]*/.exec(r);if(i){const c=i[0];qe.has(c.toLowerCase())?t.push({text:c,kind:"keyword"}):t.push({text:c,kind:"plain"}),n+=c.length;continue}const l=/^(?:\d+(?:\.\d+)?)/.exec(r);if(l){t.push({text:l[0],kind:"number"}),n+=l[0].length;continue}t.push({text:r[0]??"",kind:"plain"}),n+=1}return t}function ne(e,t){const n=e.trimStart();if(t.commentPrefixes.some(c=>n.startsWith(c)))return[{text:e,kind:"comment"}];if(t.allowSection){const c=/^(\[[^\]]+\])/.exec(e);if(c)return[{text:c[0],kind:"tag"}]}const r=/^([A-Za-z0-9_.\-*?]+)(\s*(?:=|:))/.exec(e);if(!r)return[{text:e,kind:"plain"}];const o=(r[2]??"").trim();if(!t.delimiters.includes(o))return[{text:e,kind:"plain"}];const s=[{text:r[1]??"",kind:"attr"},{text:r[2]??"",kind:"operator"}],i=e.slice(r[0].length),l=Vt(i);return l.length&&s.push(...l),s}function Vt(e){if(!e)return[];const t=[];let n=0;for(;n<e.length;){const r=e.slice(n),o=D(r,{trueValues:["true","yes","on"],falseValues:["false","no","off"],nullValues:["null"]});if(o){t.push(...o.tokens),n+=o.length;continue}if(r.startsWith("#")||r.startsWith(";")){t.push({text:r,kind:"comment"});break}t.push({text:r[0]??"",kind:"plain"}),n+=1}return t}function D(e,t){const n=/^(?:'[^']*'|"[^"]*")/.exec(e);if(n)return{tokens:[{text:n[0],kind:"string"}],length:n[0].length};const r=/^(?:-?\d+(?:\.\d+)?)/.exec(e);if(r)return{tokens:[{text:r[0],kind:"number"}],length:r[0].length};const o=/^[A-Za-z0-9_.:+/-]+/.exec(e);if(!o)return null;const s=o[0],i=s.toLowerCase();return t.trueValues.includes(i)?{tokens:[{text:s,kind:"boolean"}],length:s.length}:t.falseValues.includes(i)?{tokens:[{text:s,kind:"boolean"}],length:s.length}:t.nullValues.includes(i)?{tokens:[{text:s,kind:"null"}],length:s.length}:{tokens:[{text:s,kind:"plain"}],length:s.length}}function re(e){var r,o;if(!e)return"plain";const t=((r=e.split(/[\\/]/).pop())==null?void 0:r.toLowerCase())??"";if(t===".env"||t.startsWith(".env."))return"env";if(t===".editorconfig")return"editorconfig";if(t==="dockerfile"||t.endsWith(".dockerfile"))return"dockerfile";if(t===".gitignore")return"gitignore";switch(((o=e.split(".").pop())==null?void 0:o.toLowerCase())??""){case"md":case"markdown":return"markdown";case"ts":case"tsx":return"typescript";case"js":case"jsx":case"mjs":case"cjs":return"javascript";case"json":return"json";case"log":return"log";case"properties":return"properties";case"toml":return"toml";case"ini":return"ini";case"conf":return"conf";case"dockerfile":return"dockerfile";case"css":case"scss":case"less":return"css";case"html":case"htm":return"html";case"xml":case"svg":return"xml";case"py":return"python";case"sh":case"bash":case"zsh":return"shell";case"sql":return"sql";case"yml":case"yaml":return"yaml";case"rs":return"rust";case"go":return"go";case"java":return"java";case"c":case"h":case"cpp":case"cc":case"hpp":return"cpp";default:return"plain"}}function O(e){const t=e.toLowerCase();switch(t){case"ts":case"tsx":case"typescript":return"typescript";case"js":case"jsx":case"javascript":return"javascript";case"bash":case"shell":case"sh":case"zsh":return"shell";case"md":case"markdown":return"markdown";case"properties":return"properties";case"toml":return"toml";case"ini":return"ini";case"env":return"env";case"conf":return"conf";case"editorconfig":return"editorconfig";case"dockerfile":return"dockerfile";case"gitignore":return"gitignore";case"log":return"log";default:return t}}function Rt(e){const t=O(e);return t==="json"||t==="yaml"||t==="toml"||t==="ini"||t==="env"||t==="properties"||t==="conf"||t==="editorconfig"||t==="dockerfile"||t==="gitignore"}function ie(e){switch(O(e)){case"typescript":return"TypeScript";case"javascript":return"JavaScript";case"markdown":return"Markdown";case"json":return"JSON";case"properties":return"Properties";case"toml":return"TOML";case"ini":return"INI";case"env":return"ENV";case"conf":return"CONF";case"editorconfig":return"EditorConfig";case"dockerfile":return"Dockerfile";case"gitignore":return"GitIgnore";case"log":return"Log";case"css":return"CSS";case"html":return"HTML";case"xml":return"XML";case"python":return"Python";case"shell":return"Shell";case"sql":return"SQL";case"yaml":return"YAML";case"rust":return"Rust";case"go":return"Go";case"java":return"Java";case"cpp":return"C/C++";default:return d("conversation.fileViewerPlainText")}}function Tt(e){return re(e)==="markdown"}function zt(e){return re(e)==="html"}function It(){return a.jsxs("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:[a.jsx("path",{d:"M5 2.5h7.5v9H5z",fill:"none",stroke:"currentColor",strokeWidth:"1.2"}),a.jsx("path",{d:"M3.5 5H2.4V13.5H10V12.4",fill:"none",stroke:"currentColor",strokeWidth:"1.2"})]})}function Q(e,t){return e instanceof Ae?e.message:t}function Ft(e){const t=[],n=e.replace(/\r\n/g,`
2
- `).split(`
3
- `);let r=0,o=0;for(const s of n){if(s.startsWith("diff --git")||s.startsWith("index ")||s.startsWith("--- ")||s.startsWith("+++ ")){t.push({kind:"meta",text:s,oldLineNo:null,newLineNo:null});continue}const i=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/.exec(s);if(i){r=parseInt(i[1],10),o=parseInt(i[2],10),t.push({kind:"hunk",text:s,oldLineNo:null,newLineNo:null});continue}if(s.startsWith(" ")||s===""){t.push({kind:"context",text:s.slice(1),oldLineNo:r,newLineNo:o}),r++,o++;continue}if(s.startsWith("+")){t.push({kind:"add",text:s.slice(1),oldLineNo:null,newLineNo:o}),o++;continue}if(s.startsWith("-")){t.push({kind:"remove",text:s.slice(1),oldLineNo:r,newLineNo:null}),r++;continue}t.push({kind:"meta",text:s,oldLineNo:null,newLineNo:null})}return t}function Ut(e){if(!(e!=null&&e.trim()))return[];const t=Ft(e),n=[];let r=0,o=[];function s(){if(o.length===0){r=0;return}const i=r>0?"modify":"add";At(n,o,i),r=0,o=[]}for(const i of t){if(i.kind==="remove"){r+=1;continue}if(i.kind==="add"){i.newLineNo!==null&&o.push(i.newLineNo);continue}s()}return s(),n}function At(e,t,n){const r=t.filter(i=>i>0);if(r.length===0)return;let o=r[0]??1,s=o;for(let i=1;i<r.length;i+=1){const l=r[i]??s;if(l===s+1){s=l;continue}e.push({line:o,span:s-o+1,kind:n}),o=l,s=l}e.push({line:o,span:s-o+1,kind:n})}function Dt({markers:e,totalLines:t,scrollContainerRef:n}){const[r,o]=u.useState({top:0,height:0});if(u.useEffect(()=>{const i=n.current;if(!i){o({top:0,height:0});return}const l=i;function c(){const{clientHeight:h,scrollHeight:f,scrollTop:p}=l;if(f<=0||h<=0||f<=h){o({top:0,height:0});return}const k=h/f,b=Math.min(100,Math.max(12,k*100)),g=f-h,w=Math.max(0,100-b),y=g<=0?0:p/g*w;o({top:y,height:b})}return c(),l.addEventListener("scroll",c,{passive:!0}),window.addEventListener("resize",c),()=>{l.removeEventListener("scroll",c),window.removeEventListener("resize",c)}},[n]),e.length===0&&r.height===0)return null;const s=Math.max(t,1);return a.jsxs("div",{className:"file-overview-ruler","data-testid":"file-overview-ruler","aria-hidden":"true",children:[e.map(i=>{const l=(i.line-1)/s*100,c=Math.max(2,i.span/s*100);return a.jsx("div",{className:`file-overview-marker is-${i.kind}`,"data-kind":i.kind,style:{top:`${l}%`,height:`${c}%`}},`${i.kind}-${i.line}-${i.span}`)}),r.height>0?a.jsx("div",{className:"file-overview-viewport",style:{top:`${r.top}%`,height:`${r.height}%`}}):null]})}function Bt(e){const t=e.toLowerCase();if(t===".env"||t.startsWith(".env."))return"ENV";if(t.endsWith(".d.ts"))return"DTS";switch(t.includes(".")?t.slice(t.lastIndexOf(".")+1):""){case"ts":return"TS";case"tsx":return"TSX";case"js":return"JS";case"jsx":return"JSX";case"json":return"{}";case"md":return"MD";case"css":return"CSS";case"scss":return"SASS";case"html":return"HTML";case"yml":case"yaml":return"YAML";case"png":case"jpg":case"jpeg":case"gif":case"svg":case"webp":return"IMG";case"txt":return"TXT";default:return"FILE"}}function Gt(e){const t=e.toLowerCase();return t===".env"||t.startsWith(".env.")?"env":t.endsWith(".md")?"md":t.endsWith(".css")||t.endsWith(".scss")?"style":t.endsWith(".png")||t.endsWith(".jpg")||t.endsWith(".jpeg")||t.endsWith(".gif")||t.endsWith(".svg")||t.endsWith(".webp")?"image":t.endsWith(".ts")||t.endsWith(".tsx")||t.endsWith(".js")||t.endsWith(".jsx")?"code":t.endsWith(".json")||t.endsWith(".yml")||t.endsWith(".yaml")?"data":"default"}export{Zt as F,Gt as a,Bt as r};