@vantran-se/openchamber-web 2.4.2 → 2.5.0

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 (103) hide show
  1. package/dist/assets/{AboutDialog-Dz_8z7Rq.js → AboutDialog-C8mAGhnz.js} +1 -1
  2. package/dist/assets/{ArchiveView-BoMjLD0N.js → ArchiveView-4-LVDLmf.js} +1 -1
  3. package/dist/assets/{ChangedPathLabel-BirEUxH2.js → ChangedPathLabel-BCiU4QDF.js} +1 -1
  4. package/dist/assets/{CommandPalette-DkLX-AKB.js → CommandPalette-DEcmPHdC.js} +1 -1
  5. package/dist/assets/{DiffView-DwyXDHsF.js → DiffView-CaDZ4gTk.js} +3 -3
  6. package/dist/assets/{FilesView-BFi9HBg1.js → FilesView-Csrs_BGv.js} +1 -1
  7. package/dist/assets/{GitView-BzWRNg_F.js → GitView-DvxCZgCW.js} +3 -3
  8. package/dist/assets/{GuestSurfacePane-zDcKyz78.js → GuestSurfacePane-DNg0xBTD.js} +1 -1
  9. package/dist/assets/{HelpDialog-DZVlv3x2.js → HelpDialog-CLyz3_xd.js} +1 -1
  10. package/dist/assets/{InProgressOperationBanner-BiEntIfh.js → InProgressOperationBanner-BVDKUDqn.js} +2 -2
  11. package/dist/assets/{IntegrationsCatalogView-CCHFMcZP.js → IntegrationsCatalogView-u1gS0Vk8.js} +1 -1
  12. package/dist/assets/{JsonTreeView-BwELoub1.js → JsonTreeView-BpJU14WJ.js} +1 -1
  13. package/dist/assets/{MarkdownRendererImpl-DxBYkSKd.js → MarkdownRendererImpl-t3OoYn_0.js} +1 -1
  14. package/dist/assets/{MemoryDebugPanel-C9zpPXVo.js → MemoryDebugPanel-9z1jGWze.js} +1 -1
  15. package/dist/assets/{OnboardingScreen-Cnzzs_TQ.js → OnboardingScreen-xzT7ckY0.js} +1 -1
  16. package/dist/assets/{OpenCodeStatusDialog-DizE9xAy.js → OpenCodeStatusDialog-skpJZSjK.js} +1 -1
  17. package/dist/assets/{PatchDiff-Cz_UxB-k.js → PatchDiff-BWW_8bob.js} +1 -1
  18. package/dist/assets/{PierreDiffViewer-BT3MrXwN.js → PierreDiffViewer-BZDNV4Uj.js} +1 -1
  19. package/dist/assets/{PlanView-B-SCCd7M.js → PlanView-D7wshtfZ.js} +1 -1
  20. package/dist/assets/{ProjectActionsDialog-4OSNuzpG.js → ProjectActionsDialog-BPh74BCt.js} +1 -1
  21. package/dist/assets/{PullRequestComparisonSelector-lp98DrYm.js → PullRequestComparisonSelector-BBdU2rL1.js} +3 -3
  22. package/dist/assets/{RunOverview-DJhjR9uR.js → RunOverview-Cngm2OOp.js} +2 -2
  23. package/dist/assets/{ScheduledTasksDialog-Dwil7zsx.js → ScheduledTasksDialog-DUjDdkw2.js} +1 -1
  24. package/dist/assets/{SettingsView-DVcV2Rk9.js → SettingsView-CCZOw018.js} +2 -2
  25. package/dist/assets/{SettingsWindow-DbbAS4Se.js → SettingsWindow-Cndsj5Vu.js} +1 -1
  26. package/dist/assets/{SourceBoardView-BVcmYpvE.js → SourceBoardView-8Wp0oUvB.js} +1 -1
  27. package/dist/assets/{SpaceAccessDialog-DxjFUcHZ.js → SpaceAccessDialog-CxfCzTpe.js} +1 -1
  28. package/dist/assets/{SpaceApplyDialog-Dbrbh-j4.js → SpaceApplyDialog-CYp0A76N.js} +1 -1
  29. package/dist/assets/{SpaceRow-Cwam4mHh.js → SpaceRow-CQp4PkPJ.js} +1 -1
  30. package/dist/assets/{SpaceSetupOutput-B_w02jDi.js → SpaceSetupOutput-RNo0mWrR.js} +1 -1
  31. package/dist/assets/{SpacesView-CGrFWnO-.js → SpacesView-BwcDCv3D.js} +1 -1
  32. package/dist/assets/{SubmoduleDiffSummary-DFL-m_eu.js → SubmoduleDiffSummary-BQduif5s.js} +1 -1
  33. package/dist/assets/{ToolOutputDialog-Co0VXa0y.js → ToolOutputDialog-BVCvqYsK.js} +1 -1
  34. package/dist/assets/{ToolPartDiffPreview-CBSzwkat.js → ToolPartDiffPreview-BXpCHBW9.js} +1 -1
  35. package/dist/assets/{UsageStatsView-BjtTNSt8.js → UsageStatsView-CsC_RzAH.js} +1 -1
  36. package/dist/assets/{Virtualizer-Cmng0Q1E.js → Virtualizer-nenVQKi3.js} +1 -1
  37. package/dist/assets/{WalkthroughView-C7AkVuHQ.js → WalkthroughView-CdIYpttA.js} +1 -1
  38. package/dist/assets/{WorktreesView-CYU2KJ6E.js → WorktreesView-D102xE1o.js} +1 -1
  39. package/dist/assets/{appThemeRegistry-CDGE1wtP.js → appThemeRegistry-BWap7OfW.js} +1 -1
  40. package/dist/assets/{ar-BlEU--PN.js → ar-9CiK5cuu.js} +3 -3
  41. package/dist/assets/{computeVirtualFileMetrics-BgqasG86.js → computeVirtualFileMetrics-DDyA16hp.js} +1 -1
  42. package/dist/assets/{de-DWs4Mcjc.js → de-Drq6oIkP.js} +3 -3
  43. package/dist/assets/{decorate-CpxLqoVw.js → decorate-CemSwkUs.js} +1 -1
  44. package/dist/assets/{es-k5T7CE97.js → es-0bkFr34F.js} +3 -3
  45. package/dist/assets/{flexokiTheme-BG4cSAMb.js → flexokiTheme-PoX6Vqyn.js} +1 -1
  46. package/dist/assets/{fr-CzmypgZ8.js → fr-CjgWVupK.js} +3 -3
  47. package/dist/assets/{he-DdkxJnUn.js → he-BrJa9oPB.js} +4 -4
  48. package/dist/assets/{index-BrL960j-.js → index-B2WHEal3.js} +1 -1
  49. package/dist/assets/{initializeSharedPreferences-CrnmmfFs.js → initializeSharedPreferences-1Vo6G7CM.js} +1 -1
  50. package/dist/assets/{install-DvRQsTjX.js → install-FletzeYD.js} +1 -1
  51. package/dist/assets/{isDiffPlainText-KGYbp86N.js → isDiffPlainText-yXcpftjI.js} +1 -1
  52. package/dist/assets/{isFilePlainText-D7rclQrA.js → isFilePlainText-Dpm-_Qu8.js} +1 -1
  53. package/dist/assets/{ja-Qqkyglaf.js → ja-cfyrqWPa.js} +3 -3
  54. package/dist/assets/katex.min-F4TD1ekM.js +69 -0
  55. package/dist/assets/{ko-B8idPK2d.js → ko-herKAlGO.js} +3 -3
  56. package/dist/assets/{main-D4-y6PQ0.js → main-CO7wKNtS.js} +2 -2
  57. package/dist/assets/{main-Cmc8m6dZ.js → main-DN47yDMe.js} +19 -19
  58. package/dist/assets/markdownCore-BY21GJ_M.js +10 -0
  59. package/dist/assets/{miniChat-CjJ77DDL.js → miniChat-BmFJFQph.js} +2 -2
  60. package/dist/assets/{mobile-DlFdLxjR.js → mobile-DTi98S93.js} +2 -2
  61. package/dist/assets/{moveWorkspacePath-CVdEBQ6v.js → moveWorkspacePath-CENAo75W.js} +1 -1
  62. package/dist/assets/{nl-CFXZKHp7.js → nl-mZ4VCoiQ.js} +3 -3
  63. package/dist/assets/{parseDiffFromFile-DWemyyqU.js → parseDiffFromFile-BSmRvd3V.js} +1 -1
  64. package/dist/assets/{pierreDiffTint-B7qPTZmL.js → pierreDiffTint-cyYFR1bm.js} +1 -1
  65. package/dist/assets/{pl-slLgZWDu.js → pl-C98lvkcZ.js} +4 -4
  66. package/dist/assets/{pt-BR-C319g_nn.js → pt-BR-CB63WPLS.js} +3 -3
  67. package/dist/assets/{relocateRestoredSession-cOuWlgWB.js → relocateRestoredSession-D8Sf_FG_.js} +1 -1
  68. package/dist/assets/{renderElectronMiniChatApp-DFnEi5Tr.js → renderElectronMiniChatApp-DmQ8i5jp.js} +2 -2
  69. package/dist/assets/{renderMobileApp-C2TYqVOV.js → renderMobileApp-CND9CafV.js} +3 -3
  70. package/dist/assets/{restartOpenCode-Dvk4CWW7.js → restartOpenCode-D8ExMl55.js} +1 -1
  71. package/dist/assets/{runtimeEndpointReset-D7viEboD.js → runtimeEndpointReset-lg1O2gVX.js} +3 -3
  72. package/dist/assets/{scheduledTasksApi-FZ9stPNl.js → scheduledTasksApi-CJBNpwgy.js} +1 -1
  73. package/dist/assets/{selectionMarkdown-CCursbAw.js → selectionMarkdown-B_3WTOUr.js} +1 -1
  74. package/dist/assets/{shikiHighlight-CLj7Oan9.js → shikiHighlight-DBj_a_TN.js} +1 -1
  75. package/dist/assets/{space-apply-DdhqZWNy.js → space-apply-COMscpEL.js} +1 -1
  76. package/dist/assets/{space-close-KXdazynX.js → space-close-DDLvYCUc.js} +1 -1
  77. package/dist/assets/{spaceNetwork-DzU3SK9K.js → spaceNetwork-CNxs51y4.js} +1 -1
  78. package/dist/assets/{textMateThemeFromAppTheme-C-jxkZJj.js → textMateThemeFromAppTheme-tYpAceV3.js} +1 -1
  79. package/dist/assets/{tr-DNnJ5oqk.js → tr-C5KUa-8X.js} +3 -3
  80. package/dist/assets/{uk-Bw0BJwHw.js → uk-D44Grdmc.js} +3 -3
  81. package/dist/assets/{useAppFontEffects-DAUhSLPu.js → useAppFontEffects-Dm6zEvrf.js} +200 -199
  82. package/dist/assets/{useCallableModelProviders-B-UCRuyn.js → useCallableModelProviders-BK3j8Sde.js} +1 -1
  83. package/dist/assets/{useDiffFindSurface-CU_63uoI.js → useDiffFindSurface-CaCh-qt2.js} +1 -1
  84. package/dist/assets/{useInlineCommentController-bYCeqE6r.js → useInlineCommentController-a2JepiF3.js} +1 -1
  85. package/dist/assets/{useMarkdownLocalAssets-CnMxnDdI.js → useMarkdownLocalAssets-BEApAshz.js} +2 -2
  86. package/dist/assets/{useRootScrollLock-DNYaZ34X.js → useRootScrollLock-mqVhK2HB.js} +2 -2
  87. package/dist/assets/{useWalkthroughReview-DGPyQ634.js → useWalkthroughReview-BspAr9Aa.js} +1 -1
  88. package/dist/assets/{vendor-codemirror-language-data-KulAIuMz.js → vendor-codemirror-language-data-VzNDjH03.js} +2 -2
  89. package/dist/assets/{zh-CN-Brx5Btej.js → zh-CN-DwBC4Qtd.js} +3 -3
  90. package/dist/assets/{zh-TW-WokiutLA.js → zh-TW-DXEqDBAm.js} +3 -3
  91. package/dist/index.html +2 -2
  92. package/dist/mini-chat.html +2 -2
  93. package/dist/mobile.html +2 -2
  94. package/package.json +2 -2
  95. package/server/lib/git/service.test.js +1 -1
  96. package/server/lib/opencode/openchamber-routes.test.js +1 -0
  97. package/server/lib/opencode/settings-helpers.js +2 -2
  98. package/server/lib/opencode/settings-helpers.test.js +1 -1
  99. package/server/lib/opencode/settings-registry.json +1 -1
  100. package/server/lib/outbound-proxy.test.js +2 -2
  101. package/server/lib/spaces/tools.test.js +2 -2
  102. package/dist/assets/katex.min-u4DtE8E5.js +0 -69
  103. package/dist/assets/markdownCore-D_5e0Wl7.js +0 -10
@@ -1 +1 @@
1
- import{et as B,f3 as ae,f4 as Ve,eh as Ae,f5 as Pe,f6 as De,f7 as _e,f8 as Be,ei as Ue,u as We,B as le,I as he,f9 as Ge}from"./useAppFontEffects-DAUhSLPu.js";import{g as F,b as je,c as we,i as Ke,s as He,e as $e,f as de,h as qe,j as Je,k as Ye,l as Xe,m as Qe,R as Ze,I as et,n as ce,r as tt,o as ue,w as it,t as nt,u as st,v as rt,x as ot,y as at,z as fe,A as lt,B as ht,C as dt,D as ct,E as ut,F as ft,G as ge,S as gt,H as pt,J as mt,K as St,a as Ee,L as Ct,M as vt}from"./parseDiffFromFile-DWemyyqU.js";import{c as R,G as Rt,u as yt,W as Lt,a as Tt,b as W,n as pe,t as At}from"./Virtualizer-BP6uuKe_.js";import{j as v,r as b,R as I}from"./vendor-react-BUCujlKS.js";import{x as G,y as ie,g as Y,n as me,i as xe,z as Se,A as wt,B as Ce,k as be,C as ve,a as Ht,l as Et,D as xt,E as Re,F as j,G as ye}from"./computeVirtualFileMetrics-BgqasG86.js";import{a as x,i as X,l as K,h as bt,r as Mt}from"./isFilePlainText-D7rclQrA.js";import{t as V}from"./vendor-hast-util-to-html-BKBhbTDb.js";import{s as Ft}from"./vendor-strip-json-comments-5dJlOkP1.js";import"./katex.min-u4DtE8E5.js";function $(i,e){return e.cacheKey==null?i.file===e&&i.sourceContents===e.contents:i.cacheKey===e.cacheKey}let kt=-1;var zt=class{options;annotationSlotName;onRenderUpdate;workerManager;__id=`file-renderer:${++kt}`;highlighter;file;renderCache;pendingHighlightResult;computedLang="text";lineAnnotations={};lineCache;pendingStructuralRows;textDocumentCache=new WeakMap;editSessionActive=!1;get fileCache(){return this.renderCache?.file}constructor(i={theme:B},e=F,t,n){this.options=i,this.annotationSlotName=e,this.onRenderUpdate=t,this.workerManager=n,n?.isWorkingPool()!==!0&&(this.highlighter=G(i.theme??B)?ie():void 0)}setOptions(i){this.options=i}mergeOptions(i){this.options={...this.options,...i}}setLineAnnotations(i){this.lineAnnotations={};for(const e of i){const t=this.lineAnnotations[e.lineNumber]??[];this.lineAnnotations[e.lineNumber]=t,t.push(e)}}cleanUp(){this.endEditSession(),this.recycle(),this.workerManager=void 0,this.onRenderUpdate=void 0}beginEditSession(i,e){const{editSessionActive:t,renderCache:n}=this;if(this.editSessionActive=!0,t||(this.pendingHighlightResult=void 0),this.file=i,n==null||t&&n.file===i)return;if(t){this.clearRenderCache(),this.lineCache=void 0,this.textDocumentCache=new WeakMap;return}const{options:r}=this.getRenderOptions(i),s=n.file===i,o=e!=null&&R(n.file,e),{result:a}=n;if(!n.highlighted||a==null||!x(n.options,r)||!s&&!o){this.clearRenderCache(),this.lineCache=void 0,this.textDocumentCache=new WeakMap;return}if(s)return;this.renderCache={...n,file:i,result:{...a,code:[...a.code]}};const{lineCache:l}=this;l!=null&&e!=null&&$(l,e)?this.lineCache={cacheKey:void 0,file:i,sourceContents:i.contents,lines:l.lines}:this.lineCache=void 0}endEditSession(i){if(this.editSessionActive=!1,this.pendingHighlightResult=void 0,this.file==null){this.clearRenderCache(),this.lineCache=void 0,this.textDocumentCache=new WeakMap;return}const{renderCache:e}=this;i==null||e==null||e.file===i||!R(e.file,i)||(e.file=i)}editorRenderReady(){return this.renderCache?.options.useTokenTransformer===!0&&this.renderCache.highlighted&&this.renderCache.result!=null}recycle(){this.editSessionActive?(this.renderCache!=null&&(this.renderCache.renderRange=void 0),this.pendingHighlightResult=void 0,this.pendingStructuralRows=void 0):(this.clearRenderCache(),this.lineCache=void 0,this.textDocumentCache=new WeakMap),this.highlighter=void 0,this.workerManager?.cleanUpTasks(this),this.file=void 0}clearRenderCache(){this.pendingStructuralRows=void 0,this.renderCache=void 0,this.pendingHighlightResult=void 0}hydrate(i){this.file=i;const{options:e}=this.getRenderOptions(i),t=q(this.getOrCreateLineCache(i).length,this.getTokenizeMaxLength());let n=this.workerManager?.getFileResultCache(i);n!=null&&!x(e,n.options)&&(n=void 0),this.renderCache??={file:i,hydrated:!0,options:e,highlighted:!t&&!X(i),result:t?void 0:n?.result,renderRange:void 0},!this.editSessionActive&&this.workerManager?.isWorkingPool()===!0?this.renderCache.result==null&&!t&&this.workerManager.highlightFileAST(this,i):this.highlighter==null&&(this.computedLang=i.lang??Y(i.name),this.initializeHighlighter())}getLocalHighlightTheme(){return this.workerManager?.getFileRenderOptions().theme??this.options.theme??B}getEffectiveCodeOptions(){const i=this.workerManager?.isWorkingPool()===!0?this.workerManager.getFileRenderOptions():void 0;return{theme:this.getLocalHighlightTheme(),tokenizeMaxLineLength:i?.tokenizeMaxLineLength??this.options.tokenizeMaxLineLength}}getRenderOptions(i){const e=(()=>{if(this.workerManager?.isWorkingPool()===!0){const r=this.workerManager.getFileRenderOptions();return this.editSessionActive&&r.useTokenTransformer!==!0?{...r,useTokenTransformer:!0}:r}const{tokenizeMaxLineLength:n=1e3}=this.options;return{theme:this.getLocalHighlightTheme(),useTokenTransformer:this.editSessionActive||this.options.useTokenTransformer===!0,tokenizeMaxLineLength:n}})(),{renderCache:t}=this;return t?.result==null?{options:e,forceHighlight:!0}:!R(i,t.file)||!x(e,t.options)?{options:e,forceHighlight:!0}:{options:e,forceHighlight:!1}}getFileForNextRender(i){const{options:e}=this.getRenderOptions(i);if(this.getReadyRenderResult(i,e)!=null)return i;const{renderCache:t}=this;if(t==null)return i;if(R(t.file,i))return t.file;const n=K(i.contents),r=i.contents.length===0||X(i)||q(n.length,this.getTokenizeMaxLength());return this.canRenderFile(i,e,r)?i:t.file}canRenderFile(i,e,t){const{renderCache:n}=this;return n==null||R(n.file,i)?!0:t?n.result==null&&n.hydrated!==!0||this.workerManager?.isWorkingPool()===!0||this.highlighter!=null&&G(e.theme):n.result==null&&n.hydrated!==!0?!0:!this.editSessionActive&&this.workerManager?.isWorkingPool()===!0?!n.highlighted:this.highlighter!=null&&G(e.theme)}getOrCreateLineCache(i){let{lineCache:e}=this;return(e==null||!$(e,i))&&(e={cacheKey:i.cacheKey,file:i,sourceContents:i.contents,lines:K(i.contents)}),this.lineCache=e,e.lines}getLineCount(i){const e=this.getOrCreateLineCache(i);return this.textDocumentCache.get(i)?.lineCount??e.length}updateRenderCache(i,e,t=!1){this.pendingStructuralRows=void 0;const{renderCache:n}=this;if(n==null)return;const{file:r,result:s}=n;if(s==null)return;const o=t?new Map:void 0;this.pendingStructuralRows=o;const a=this.lineCache!=null&&$(this.lineCache,r)?this.lineCache:void 0;for(const[l,h]of i){if(o==null&&a!=null&&l<a.lines.length){const u=h.map(c=>c[2]).join("");a.lines[l]=je(a.lines[l]??"",u)}const d={type:"element",tagName:"div",properties:{"data-line":l+1,"data-line-type":"context","data-line-index":l},children:h.map(([u,c,f])=>u===0&&c===""?f===""?{type:"element",tagName:"br",properties:{},children:[]}:{type:"text",value:f}:{type:"element",tagName:"span",properties:{"data-char":u,style:`color:${c};`},children:[{type:"text",value:f}]})};o!=null?o.set(l,d):s.code[l]=d}s.baseThemeType=e,n.isDirty=!0,o==null&&a!=null&&(r.contents=a.lines.join(""),a.sourceContents=r.contents)}applyDocumentChange(i){const{pendingStructuralRows:e,renderCache:t}=this;this.pendingStructuralRows=void 0;const n=this.file??t?.file;if(n==null)return;const r=t?.result,s=this.lineCache!=null&&$(this.lineCache,n)?this.lineCache.lines:K(n.contents),o=K(i.getText());if(r!=null&&s.length!==o.length){const l=Math.min(s.length,o.length);let h=0;for(;h<l&&s[h]===o[h];)h++;let d=0;for(;d<l-h&&s[s.length-1-d]===o[o.length-1-d];)d++;const u=r.code;r.code=new Array(o.length);for(let c=0;c<h;c++)r.code[c]=u[c];for(let c=0;c<d;c++)r.code[o.length-1-c]=u[s.length-1-c];if(e!==void 0)for(const[c,f]of e)c<o.length&&(r.code[c]=f);for(let c=h;c<o.length-d;c++)r.code[c]??={type:"element",tagName:"div",properties:{"data-line":c+1,"data-line-type":"context","data-line-index":c},children:[{type:"element",tagName:"span",properties:{"data-char":0},children:[{type:"text",value:i.getLineText(c)}]}]};for(let c=0;c<r.code.length;c++){const f=r.code[c];f?.type==="element"&&(f.properties["data-line"]=c+1,f.properties["data-line-index"]=c)}t!=null&&(t.isDirty=!0)}const a=i.getText();this.lineCache={cacheKey:n.cacheKey,file:n,sourceContents:a,lines:o},this.textDocumentCache.set(n,i),n.contents=a}renderFile(i=this.file,e=ae){if(this.file=i,i==null){this.pendingHighlightResult=void 0;return}let{options:t,forceHighlight:n}=this.getRenderOptions(i);const r=this.getReadyRenderResult(i,t);this.pendingHighlightResult=void 0,r!=null&&(this.renderCache={...r,file:i,renderRange:void 0},n=!1),this.renderCache??={file:i,highlighted:!1,options:t,result:void 0,renderRange:void 0};const s=this.getOrCreateLineCache(i),o=i.contents.length>0,a=!o||X(i)||q(s.length,this.getTokenizeMaxLength()),l=this.canRenderFile(i,t,a),h=!R(i,this.renderCache.file),d=!we(this.renderCache.renderRange,e);if(!this.editSessionActive&&this.workerManager?.isWorkingPool()===!0){const u=this.renderCache.result==null&&this.renderCache.highlighted&&!a&&!h&&Ke(e);l&&!u&&(a||this.renderCache.result==null||!this.renderCache.highlighted&&(h||d))&&(this.renderCache.file=i,this.renderCache.options=t,this.renderCache.highlighted=!1,(this.renderCache.result==null||h||d||n)&&(this.renderCache.result=this.workerManager.getPlainFileAST(i,e.startingLine,e.totalLines,s)),this.renderCache.renderRange=e),!a&&o&&(!this.renderCache.highlighted||n)&&this.workerManager.highlightFileAST(this,i)}else{this.computedLang=i.lang??Y(i.name),this.highlighter??=ie();const u=this.highlighter!=null&&G(t.theme),c=this.highlighter!=null&&me(this.computedLang),f=!a&&c;if(l&&this.highlighter!=null&&u&&(n||a||!this.renderCache.highlighted&&f||this.renderCache.result==null)){const{result:p,options:g}=this.renderFileWithHighlighter(i,this.highlighter,a||!c);this.renderCache={file:i,options:g,highlighted:f,result:p,renderRange:void 0}}(!u||!a&&!c)&&this.asyncHighlight(i).then(({result:p,options:g})=>{this.applyHighlightResult(i,p,g,!a)})}return this.renderCache.result!=null?this.processFileResult(this.renderCache.file,e,this.renderCache.result):void 0}async asyncRender(i,e=ae){this.file=i;const{result:t}=await this.asyncHighlight(i);return this.processFileResult(i,e,t)}async asyncHighlight(i){const e=q(this.getOrCreateLineCache(i).length,this.getTokenizeMaxLength());this.computedLang=e?"text":i.lang??Y(i.name);const t=this.highlighter!=null&&bt(xe(this.getLocalHighlightTheme())),n=e||this.highlighter!=null&&me(this.computedLang);return(this.highlighter==null||!t||!n)&&(this.highlighter=await this.initializeHighlighter()),this.renderFileWithHighlighter(i,this.highlighter,e)}renderFileWithHighlighter(i,e,t=!1){const{options:n}=this.getRenderOptions(i);return{result:Mt(i,e,n,{forcePlainText:t}),options:n}}processFileResult(i,e,{code:t,themeStyles:n,baseThemeType:r}){const s=this.getLineCount(i),{disableFileHeader:o=!1}=this.options,a=[],l=ve(),h=Math.min(e.startingLine+e.totalLines,s);let d=0;const u=He(e)?$e(this.lineAnnotations):void 0;u!=null&&(l.children.push(Se("context","annotation",1)),a.push(de({hunkIndex:-1,lineIndex:-1,annotations:u.map(c=>this.annotationSlotName(c))})),d++);for(let c=e.startingLine;c<h;c++){const f=c+1,p=t[c];if(p==null){const S="FileRenderer.processFileResult: Line doesnt exist";throw console.error(S,{name:i.name,lineIndex:c,lineNumber:f}),new Error(S)}l.children.push(wt("context",f,`${c}`)),a.push(p),d++;const g=this.lineAnnotations[f];g!=null&&(l.children.push(Se("context","annotation",1)),a.push(de({hunkIndex:0,lineIndex:f,annotations:g.map(S=>this.annotationSlotName(S))})),d++)}return l.properties.style=`grid-row: span ${d}`,{file:i,gutterAST:l.children??[],contentAST:a,preAST:this.createPreElement(s),headerAST:o?void 0:this.renderHeader(i),totalLines:s,rowCount:d,themeStyles:n,baseThemeType:r,bufferBefore:e.bufferBefore,bufferAfter:e.bufferAfter,css:""}}renderHeader(i){const{headerRenderMode:e="default",stickyHeader:t=!1}=this.options;return qe({fileOrDiff:i,mode:e,stickyHeader:t})}renderFullHTML(i){return V(this.renderFullAST(i))}renderFullAST(i,e=[]){return e.push(Ce({tagName:"code",children:this.renderCodeAST(i),properties:{"data-code":""}})),{...i.preAST,children:e}}renderCodeAST(i){const e=ve();return e.children=i.gutterAST,e.properties.style=`grid-row: span ${i.rowCount}`,[e,Je(i.contentAST,i.rowCount)]}renderPartialHTML(i,e=!1){return e?V(Ce({tagName:"code",children:i,properties:{"data-code":""}})):V(i)}async initializeHighlighter(){return this.highlighter=await be(Ye(this.computedLang,{theme:this.getLocalHighlightTheme(),preferredHighlighter:this.workerManager?.getPreferredHighlighter()??this.options.preferredHighlighter})),this.highlighter}onHighlightSuccess(i,e,t,n=!0){this.editSessionActive||this.applyHighlightResult(i,e,t,n)}applyHighlightResult(i,e,t,n=!0){const{file:r,renderCache:s}=this;r==null||s==null||!R(i,r)||!x(t,this.getRenderOptions(r).options)||(s.result==null||!s.highlighted||!x(s.options,t)||!R(s.file,r))&&(this.pendingHighlightResult={file:r,options:t,highlighted:n,result:e},this.onRenderUpdate?.())}getMatchingWorkerResultCache(i,e){if(this.editSessionActive)return;const t=this.workerManager?.getFileResultCache(i);if(!(t==null||!x(e,t.options)))return t}getReadyRenderResult(i,e){const{pendingHighlightResult:t}=this;if(t!=null&&R(t.file,i)&&x(t.options,e))return t;const n=this.getMatchingWorkerResultCache(i,e);if(!(n==null||this.hasHighlightedRenderCache(i,e)))return{file:i,highlighted:!0,...n}}hasHighlightedRenderCache(i,e){const{renderCache:t}=this;return t?.result!=null&&t.highlighted&&R(i,t.file)&&x(e,t.options)}onHighlightError(i){console.error(i)}getTokenizeMaxLength(){return this.options.tokenizeMaxLength??1e5}createPreElement(i){const{disableLineNumbers:e=!1,overflow:t="scroll"}=this.options;return Xe({type:"file",diffIndicators:"none",disableBackground:!0,disableLineNumbers:e,overflow:t,split:!1,totalLines:i})}};function q(i,e){return i>e}function Nt(i,e){return i.lineNumber===e.lineNumber&&i.metadata===e.metadata}function Le(i){return{theme:i?.theme,disableLineNumbers:i?.disableLineNumbers,overflow:i?.overflow,themeType:i?.themeType,collapsed:i?.collapsed,disableFileHeader:i?.disableFileHeader,disableVirtualizationBuffers:i?.disableVirtualizationBuffers,stickyHeader:i?.stickyHeader,preferredHighlighter:i?.preferredHighlighter,useCSSClasses:i?.useCSSClasses,useTokenTransformer:Qe(i),tokenizeMaxLineLength:i?.tokenizeMaxLineLength,tokenizeMaxLength:i?.tokenizeMaxLength,unsafeCSS:i?.unsafeCSS,headerRenderMode:i?.renderCustomHeader!=null?"custom":"default"}}const Ot=[""];function It(i){const e={...i};return delete e.cacheKey,e}let Vt=-1;var Me=class{options;workerManager;isContainerManaged;static LoadedCustomComponent=!0;__id=`file:${++Vt}`;type="file";fileContainer;spriteSVG;pre;code;bufferBefore;bufferAfter;themeCSSStyle;appliedThemeCSS;hasAdoptedThemeCSS=!1;unsafeCSSStyle;appliedUnsafeCSS;gutterUtilityContent;errorWrapper;placeHolder;lastRenderedHeaderHTML;cachedHeaderHTML;appliedPreAttributes;lastRowCount;mounted=!1;headerElement;headerCustom;headerPrefix;headerFilenameSuffix;headerMetadata;fileRenderer;resizeManager;interactionManager;annotationCache=new Map;lineAnnotations=[];managersDirty=!1;file;editSession;renderedFile;renderRange;enabled=!0;editor;constructor(e={theme:B},t,n=!1){this.options=e,this.workerManager=t,this.isContainerManaged=n,this.fileRenderer=new zt(e,this.getAnnotationSlotName,this.handleHighlightRender,this.workerManager),this.resizeManager=new Ze,this.interactionManager=new et("file",ce(e)),this.workerManager?.subscribeToThemeChanges(this)}getAnnotationSlotName=e=>tt(this.editSession?.annotations,e,F);handleHighlightRender=()=>{this.rerender()};rerender(){!this.enabled||this.file==null||this.render({file:this.file,forceRender:!0,renderRange:this.renderRange})}getTheme(){return this.workerManager?.getFileRenderOptions().theme??this.options.theme??B}getLatestFile(e=this.file){return this.editSession?.file??e}getRenderedFile(){return this.renderedFile}getLatestAnnotations(){return this.editSession?.annotations?.current??this.lineAnnotations}isNewAnnotations(e){const t=this.editSession?.annotations;return e===this.lineAnnotations?!1:t==null||e!==t.provided&&e!==t.current}updateExternalFile(e,t){if(R(this.file,e))return!1;const n=this.editSession!=null;return this.file=e,n||this.editor!=null?this.installEditSession(e,n?void 0:this.editor?.__getDocumentContents(e),!0):this.editSession=void 0,this.editSession?.annotations!=null&&t!=null&&(this.lineAnnotations=t,this.editSession.annotations=ue(t,F,this.editSession.annotations)),!0}installEditSession(e,t,n=!1){const r=t==null||t.name===e.name&&t.lang===e.lang&&t.contents===e.contents,s=It(t??e);this.editSession={file:s,externalReplacement:n&&r,annotations:this.editSession?.annotations??ue(this.lineAnnotations,F)},this.fileRenderer.beginEditSession(s,r?e:void 0)}onThemeChange(){this.fileRenderer.clearRenderCache(),this.rerender()}setOptions(e){e!=null&&(this.options=e,this.cachedHeaderHTML=void 0,this.syncInteractionOptions())}syncInteractionOptions(){this.interactionManager.setOptions(ce(this.options))}mergeOptions(e){this.options={...this.options,...e}}setThemeType(e){(this.options.themeType??"system")!==e&&(this.mergeOptions({themeType:e}),this.applyCachedThemeState(e))}applyCachedThemeState(e){if(typeof this.options.theme=="string"||this.fileContainer==null||this.appliedThemeCSS==null)return!1;const t=this.appliedThemeCSS.baseThemeType??e;return this.appliedThemeCSS.themeType===t?!1:(this.applyThemeState(this.fileContainer,this.appliedThemeCSS.themeStyles,e,this.appliedThemeCSS.baseThemeType),!0)}hasThemeChanged(){return this.appliedThemeCSS!=null&&!Ht(this.appliedThemeCSS.theme,this.getTheme())}getHoveredLine=()=>this.interactionManager.getHoveredLine();setLineAnnotations(e){const t=this.editSession?.annotations;if(t==null){this.lineAnnotations=e;return}this.isNewAnnotations(e)&&(this.lineAnnotations=e,it(t,e,F))}syncEditSessionAnnotationsFromEditor(e){const t=this.editSession?.annotations;return t==null||e===t.current?!1:(t.current=e,this.fileRenderer.setLineAnnotations(e),this.renderAnnotations(),!0)}setSelectedLines(e,t){this.interactionManager.setSelection(e,t)}setEditorActiveLine(e,t){this.interactionManager.setEditorActiveLine(e,{lineNumberOnly:t?.lineNumberOnly,side:t?.side??"additions"})}getCodeScrollLeft(){return this.code?.scrollLeft??0}setCodeScrollLeft(e){this.code!=null&&(this.code.scrollLeft=e)}__getEffectiveCodeOptions(){return{...this.options,...this.fileRenderer.getEffectiveCodeOptions()}}flushManagers(){if(!this.managersDirty||this.pre==null){this.managersDirty=!1;return}const{overflow:e="scroll"}=this.options;this.interactionManager.setup(this.pre),this.resizeManager.setup(this.pre,{disableAnnotations:e==="wrap",columnVariables:this.shouldApplyColumnVariables(e)?"apply":"measure"}),this.managersDirty=!1}shouldApplyColumnVariables(e){return e==="scroll"&&this.getLatestAnnotations().length>0}cleanUp(e=!1){const t=this.editor;this.emitPostRender(!0),t?.cleanUp(e?"recycle":"discard"),e||(this.editor=void 0),this.resizeManager.cleanUp(),this.interactionManager.cleanUp(),this.managersDirty=!1,this.workerManager?.unsubscribeToThemeChanges(this),this.renderRange=void 0,this.isContainerManaged||this.fileContainer?.remove(),this.fileContainer=void 0,this.mounted=!1,e||(this.lineAnnotations=[]),this.clearAuxiliaryNodes(),this.pre=void 0,this.code=void 0,this.bufferBefore?.remove(),this.bufferBefore=void 0,this.bufferAfter?.remove(),this.bufferAfter=void 0,this.appliedPreAttributes=void 0,this.lastRowCount=void 0,this.headerElement=void 0,this.headerPrefix=void 0,this.headerFilenameSuffix=void 0,this.headerMetadata=void 0,this.headerCustom=void 0,this.lastRenderedHeaderHTML=void 0,e||(this.cachedHeaderHTML=void 0),this.errorWrapper?.remove(),this.errorWrapper=void 0,this.spriteSVG=void 0,this.themeCSSStyle=void 0,this.appliedThemeCSS=void 0,this.hasAdoptedThemeCSS=!1,this.unsafeCSSStyle=void 0,this.appliedUnsafeCSS=void 0,this.placeHolder?.remove(),this.placeHolder=void 0,e?this.fileRenderer.recycle():(this.fileRenderer.cleanUp(),this.workerManager=void 0,this.file=void 0,this.editSession=void 0,this.renderedFile=void 0),this.enabled=!1}virtualizedSetup(){this.enabled=!0,this.workerManager?.subscribeToThemeChanges(this)}hydrate(e){const{fileContainer:t,prerenderedHTML:n,preventEmit:r=!1,file:s,lineAnnotations:o}=e;if(!this.enabled)throw new Error("File.hydrate: attempting to call hydrate after cleaned up");if(this.fileContainer!=null)throw new Error("File.hydrate: hydrate can only be called before the instance has rendered or hydrated");this.hydrateElements(t,n);const a=this.editor!=null;a||Pt(this.pre,s,this.options.collapsed)||Dt(this.headerElement,s,this.options.disableFileHeader)?this.render({...e,forceRender:a||e.forceRender,preventEmit:!0}):this.hydrationSetup({file:s,lineAnnotations:o}),r||this.emitPostRender()}hydrateElements(e,t){this.fileContainer!==e&&this.emitPostRender(!0),nt(e,t);for(const n of Array.from(e.shadowRoot?.children??[])){if(n instanceof SVGElement){this.spriteSVG=n;continue}if(n instanceof HTMLElement){if(n instanceof HTMLPreElement){this.pre=n,this.appliedPreAttributes=void 0;continue}if(n instanceof HTMLStyleElement&&n.hasAttribute("data-theme-css")){this.themeCSSStyle=n;continue}if(n instanceof HTMLStyleElement&&n.hasAttribute("data-unsafe-css")){this.unsafeCSSStyle=n,this.appliedUnsafeCSS=n.textContent;continue}if("diffsHeader"in n.dataset){this.headerElement=n,this.lastRenderedHeaderHTML=void 0;continue}}}this.pre!=null&&(this.syncCodeNodeFromPre(this.pre),this.pre.removeAttribute("data-dehydrated")),this.fileContainer=e,this.hydrateMeasuredScrollbar()}hydrationSetup({file:e,lineAnnotations:t}){this.lineAnnotations=t??this.lineAnnotations,this.file=e,this.fileRenderer.setOptions(Le(this.options)),this.syncInteractionOptions(),this.pre!=null&&(this.fileRenderer.hydrate(e),this.renderedFile=e,this.renderAnnotations(),this.renderGutterUtility(),this.injectUnsafeCSS(),this.managersDirty=!0,this.flushManagers())}getOrCreateLineCache(e=this.getLatestFile()){return e!=null?this.fileRenderer.getOrCreateLineCache(e):Ot}updateBuffers(e){this.pre!=null&&this.applyBuffers(this.pre,e)}syncRenderViewToEditor(){const{editor:e,fileContainer:t,renderRange:n}=this,r=this.getLatestAnnotations(),s=this.getLatestFile();if(e==null||t==null||s==null)return;const o=d=>{!this.enabled||this.editor!==e||this.fileContainer!==t||this.getLatestFile()!==s||e.__syncRenderView({highlighter:d,fileContainer:t,file:s,lineAnnotations:r,renderRange:n,externalDocument:this.editSession?.externalReplacement===!0})},a=this.getTheme(),l=s.lang??Y(s.name),h=ie({theme:a,lang:l});h!=null?o(h):be({themes:xe(a),langs:Array.from(new Set(["text",l])),preferredHighlighter:this.workerManager?.getPreferredHighlighter()??this.options.preferredHighlighter}).then(o)}__acknowledgeDocumentUpdate(){this.editSession!=null&&(this.editSession.externalReplacement=!1)}__acceptEditorChange(e){const{lineAnnotations:t}=e;t!=null&&this.syncEditSessionAnnotationsFromEditor(t)}emitEditChange(e){const{onEditChange:t}=this.options;t?.(e)}__captureDocumentSessionState(){}__attachEditor(e){if(this.editor!=null)throw new Error("File.__attachEditor: an editor is already attached");this.editor=e;const t=()=>{this.editor=void 0,this.fileRenderer.endEditSession()};try{return this.resumeEditorRendering(e),t}catch(n){throw t(),n}}__resumeEditor(e){if(this.editor!==e)throw new Error("File.__resumeEditor: editor association changed");this.resumeEditorRendering(e)}resumeEditorRendering(e){this.editSession!=null?this.fileRenderer.beginEditSession(this.editSession.file):this.file!=null&&this.installEditSession(this.file,e.__getDocumentContents(this.file));const t=this.editSession?.file;this.fileRenderer.editorRenderReady()?(this.fileRenderer.fileCache===t&&(this.renderedFile=t),this.syncRenderViewToEditor()):this.rerender()}__completeEditSession(e,t){this.settleEditSession(t==="install",e)}settleEditSession(e,t){const{editSession:n,file:r,lineAnnotations:s}=this;if(n==null||r==null)return;const{file:o,annotations:a}=n;if(this.editor!=null)throw new Error("File.__completeEditSession: detach the editor before completing the session");const l=a?.current;let h,d=!1,u;if(t==null)throw new Error("File.__completeEditSession: editor is required for completion");const c={...o},f={file:c,editor:t,originalFile:r,lineAnnotations:l,originalLineAnnotations:s};Object.freeze(f);try{if(t.__emitEditComplete(f),this.options.onEditComplete?.(f)==="accept"){if(c.cacheKey!=null&&c.cacheKey===r.cacheKey)throw new Error("File.__completeEditSession: an accepted file must not reuse the replaced file cacheKey");h=c}}catch(S){d=!0,u=S}e&&h!=null&&(this.file=h,l!=null&&(this.lineAnnotations=l)),this.editSession=void 0;const{renderedFile:p,file:g}=this;if(this.fileRenderer.endEditSession(g),p!=null&&g!=null&&p!==g&&R(p,g)&&(this.renderedFile=g),e&&this.fileContainer!=null&&this.rerender(),d)throw u}applyDocumentChange(e,t){const n=this.editSession?.file;if(n==null)throw new Error("File.applyDocumentChange: requires an active edit session");this.fileRenderer.beginEditSession(n),this.fileRenderer.applyDocumentChange(e),t!=null&&this.syncEditSessionAnnotationsFromEditor(t)}applySuspendedDocumentChange(e,t){this.editSession!=null&&(this.applyDocumentChange(e,t),this.fileRenderer.clearRenderCache())}updateRenderCache(e,t,n){const r=this.editSession?.file;if(r==null)throw new Error("File.updateRenderCache: requires an active edit session");this.fileRenderer.beginEditSession(r),this.fileRenderer.updateRenderCache(e,t,n?.lineCountChangeInFlight)}render({file:e,fileContainer:t,forceRender:n=!1,preventEmit:r=!1,containerWrapper:s,deferManagers:o=!1,lineAnnotations:a,renderRange:l}){if(!this.enabled)throw new Error("File.render: attempting to call render after cleaned up");this.editor?.__postponeBgTokenizeToNextFrame();const{collapsed:h=!1,themeType:d="system"}=this.options,u=h?void 0:l,c=this.renderRange,f=this.hasThemeChanged(),p=a!=null&&(a.length>0||this.getLatestAnnotations().length>0)?this.isNewAnnotations(a):!1,g=!R(this.file,e);g&&this.updateExternalFile(e,a);const S=this.getLatestFile(e)??e;if(!h&&!n&&we(u,this.renderRange)&&!g&&!p&&!f){const m=this.applyCachedThemeState(d);return m&&this.finalizeRender(),m}this.renderRange=u,g&&(this.cachedHeaderHTML=void 0),this.fileRenderer.setOptions(Le(this.options)),this.syncInteractionOptions(),a!=null&&this.setLineAnnotations(a),this.fileRenderer.setLineAnnotations(this.getLatestAnnotations());const{disableErrorHandling:H=!1,disableFileHeader:A=!1}=this.options;if(A&&(this.headerElement!=null&&(this.headerElement.remove(),this.headerElement=void 0,this.lastRenderedHeaderHTML=void 0),this.clearHeaderSlots()),t=this.getOrCreateFileContainerNode(t,s),this.applyCachedThemeState(d),h){this.removeRenderedCode(),this.clearAuxiliaryNodes();try{const m=this.fileRenderer.renderFile(S,Ve);m!=null&&this.applyThemeState(t,m.themeStyles,d,m.baseThemeType),m?.headerAST!=null&&this.applyHeaderToDOM(m.headerAST,t,m.file),this.renderedFile=m?.file??S,this.injectUnsafeCSS()}catch(m){if(H)throw m;console.error(m),m instanceof Error&&this.applyErrorToDOM(m,t)}return this.finalizeRender(),r||this.emitPostRender(),!0}try{const m=this.getOrCreatePreNode(t);if(!this.canPartiallyRender(n,p,g||f||!R(this.renderedFile,S))||!this.applyPartialRender(S,c,u)){const y=this.fileRenderer.renderFile(S,u);if(y==null)return this.workerManager?.isInitialized()===!1&&this.workerManager.isWorkingPool()&&this.workerManager.initialize().catch(()=>{}).then(()=>this.rerender()),!1;this.applyThemeState(t,y.themeStyles,d,y.baseThemeType),y.headerAST!=null&&this.applyHeaderToDOM(y.headerAST,t,y.file),this.applyFullRender(y,m),this.renderedFile=y.file}this.applyBuffers(m,u),this.injectUnsafeCSS(),this.renderAnnotations(),this.renderGutterUtility(),this.managersDirty=!0,o||this.flushManagers(),this.finalizeRender(),this.editor!=null&&this.syncRenderViewToEditor()}catch(m){if(H)throw m;console.error(m),m instanceof Error&&this.applyErrorToDOM(m,t)}return r||this.emitPostRender(),!0}finalizeRender(){}emitPostRender(e=!1){const{fileContainer:t,options:{onPostRender:n}}=this;if(e){if(!this.mounted||(this.mounted=!1,t==null))return;n?.(t,this,"unmount");return}if(t==null)return;const r=this.mounted?"update":"mount";this.mounted=!0,n?.(t,this,r)}removeRenderedCode(){this.resizeManager.cleanUp(),this.interactionManager.cleanUp(),this.bufferBefore?.remove(),this.bufferBefore=void 0,this.bufferAfter?.remove(),this.bufferAfter=void 0,this.code?.remove(),this.code=void 0,this.pre?.remove(),this.pre=void 0,this.appliedPreAttributes=void 0,this.lastRowCount=void 0}clearAuxiliaryNodes(){for(const{element:e}of this.annotationCache.values())e.remove();this.annotationCache.clear(),this.gutterUtilityContent?.remove(),this.gutterUtilityContent=void 0}canPartiallyRender(e,t,n){return!(e||t||n)}renderPlaceholder(e){if(this.fileContainer==null)return!1;if(this.emitPostRender(!0),this.cleanChildNodes(),this.placeHolder==null){const t=this.fileContainer.shadowRoot??this.fileContainer.attachShadow({mode:"open"});this.placeHolder=document.createElement("div"),this.placeHolder.dataset.placeholder="",t.appendChild(this.placeHolder)}return this.setPlaceholderHeight(e)}setPlaceholderHeight(e){return this.placeHolder==null?!1:(this.placeHolder.style.setProperty("height",`${e}px`),!0)}async primeHighlightCache(e=this.file){const{workerManager:t}=this;if(e==null||t==null||!t.isWorkingPool()||e.cacheKey==null||X(e))return;const n=this.options.tokenizeMaxLength??1e5;this.fileRenderer.getOrCreateLineCache(e).length>n||await t.primeFileHighlightCache(e).catch(r=>{Et(r)||console.error(r)})}cleanChildNodes(){this.resizeManager.cleanUp(),this.interactionManager.cleanUp(),this.clearAuxiliaryNodes(),this.bufferAfter?.remove(),this.bufferBefore?.remove(),this.code?.remove(),this.errorWrapper?.remove(),this.headerElement?.remove(),this.headerPrefix?.remove(),this.headerFilenameSuffix?.remove(),this.headerMetadata?.remove(),this.headerCustom?.remove(),this.pre?.remove(),this.spriteSVG?.remove(),this.themeCSSStyle?.remove(),this.unsafeCSSStyle?.remove(),this.bufferAfter=void 0,this.bufferBefore=void 0,this.code=void 0,this.errorWrapper=void 0,this.headerElement=void 0,this.headerPrefix=void 0,this.headerFilenameSuffix=void 0,this.headerMetadata=void 0,this.headerCustom=void 0,this.pre=void 0,this.spriteSVG=void 0,this.themeCSSStyle=void 0,this.appliedThemeCSS=void 0,this.hasAdoptedThemeCSS=!1,this.unsafeCSSStyle=void 0,this.appliedUnsafeCSS=void 0,this.lastRenderedHeaderHTML=void 0,this.lastRowCount=void 0,this.mounted=!1}renderAnnotations(){if(this.isContainerManaged||this.fileContainer==null){for(const{element:r}of this.annotationCache.values())r.remove();this.annotationCache.clear();return}const e=new Map(this.annotationCache),{renderAnnotation:t}=this.options,n=this.getLatestAnnotations();if(t!=null&&n.length>0)for(const[r,s]of n.entries()){const o=this.getAnnotationSlotName(s),a=`${r}-${o}`;let l=this.annotationCache.get(a);if(l==null||!Nt(s,l.annotation)){l?.element.remove();const h=t(s);if(h==null)continue;l={element:st(o),annotation:s},l.element.appendChild(h),this.fileContainer.appendChild(l.element),this.annotationCache.set(a,l)}e.delete(a)}for(const[r,{element:s}]of e.entries())this.annotationCache.delete(r),s.remove()}renderGutterUtility(){const{renderGutterUtility:e}=this.options;if(this.fileContainer==null||e==null){this.gutterUtilityContent?.remove(),this.gutterUtilityContent=void 0;return}const t=e(this.interactionManager.getHoveredLine);if(t!=null&&this.gutterUtilityContent!=null)return;if(t==null){this.gutterUtilityContent?.remove(),this.gutterUtilityContent=void 0;return}const n=rt();n.appendChild(t),this.fileContainer.appendChild(n),this.gutterUtilityContent=n}injectUnsafeCSS(){const{unsafeCSS:e}=this.options,t=this.fileContainer?.shadowRoot;if(t!=null){if(e==null||e===""){this.unsafeCSSStyle!=null&&(this.unsafeCSSStyle.remove(),this.unsafeCSSStyle=void 0),this.appliedUnsafeCSS=void 0;return}this.unsafeCSSStyle?.parentNode===t&&this.appliedUnsafeCSS===e||(this.unsafeCSSStyle??=ot(),this.unsafeCSSStyle.parentNode!==t&&t.appendChild(this.unsafeCSSStyle),this.unsafeCSSStyle.textContent=at(e),this.appliedUnsafeCSS=e)}}applyThemeState(e,t,n,r){const s=e.shadowRoot??e.attachShadow({mode:"open"}),o=r??n,a=this.getTheme(),l=typeof a=="string"?a:{...a},h=fe(s);if(this.themeCSSStyle?.parentNode===s&&this.appliedThemeCSS?.themeStyles===t&&this.appliedThemeCSS.themeType===o&&this.appliedThemeCSS.scrollbarGutter===h){this.appliedThemeCSS.theme=l;return}if(this.hasAdoptedThemeCSS&&this.themeCSSStyle?.parentNode===s){this.hasAdoptedThemeCSS=!1,this.appliedThemeCSS={theme:l,themeStyles:t,themeType:o,baseThemeType:r,scrollbarGutter:h};return}this.themeCSSStyle=lt({shadowRoot:s,currentNode:this.themeCSSStyle,themeCSS:ht(t,o,h)}),this.appliedThemeCSS=this.themeCSSStyle!=null?{theme:l,themeStyles:t,themeType:o,baseThemeType:r,scrollbarGutter:h}:void 0}hydrateMeasuredScrollbar(){const e=this.fileContainer?.shadowRoot;e==null||this.themeCSSStyle==null||(this.themeCSSStyle.textContent=dt(this.themeCSSStyle.textContent??"",fe(e)))}shouldGuardRebuildScroll(){return this.editor!=null&&ct()}applyFullRender(e,t){this.cleanupErrorWrapper(),this.applyPreNodeAttributes(t,e);const n=this.code=ut({code:this.code}),r=this.fileRenderer.renderCodeAST(e);this.editor?.__captureFocusForDOMReplacement();const s=()=>{if(n.childElementCount>=2)for(let o=0;o<2;o++){const a=n.children[o],l=r[o];a.innerHTML=V(l.children),a.style.cssText=l.properties.style}else n.innerHTML=V(r);t.contains(n)||t.replaceChildren(n)};this.shouldGuardRebuildScroll()?ft(t,s):s(),this.lastRowCount=e.rowCount}applyPartialRender(e,t,n){if(t==null||n==null)return!1;const{code:r}=this,s=r!=null?this.getColumns(r):void 0;if(r==null||s==null)return!1;const o=t.startingLine,a=n.startingLine,l=t.totalLines===1/0?Number.POSITIVE_INFINITY:o+t.totalLines,h=n.totalLines===1/0?Number.POSITIVE_INFINITY:a+n.totalLines,d=Math.max(o,a),u=Math.min(l,h);if(u<=d)return!1;if(!this.trimDOMToOverlap(s.gutter,d,u)||!this.trimDOMToOverlap(s.content,d,u))throw new Error("File.applyPartialRender: failed to trim to overlap");let{length:c}=s.content.children;const f=(H,A)=>{if(!(A<=0))return this.fileRenderer.renderFile(e,{startingLine:H,totalLines:A,bufferBefore:0,bufferAfter:0})},p=a<d?f(a,d-a):void 0;if(p===void 0&&a<d)return!1;const g=h===Number.POSITIVE_INFINITY?Number.POSITIVE_INFINITY:Math.max(0,h-u),S=h>u?f(u,g):void 0;return S===void 0&&h>u?!1:(this.cleanupErrorWrapper(),p!=null&&(s.gutter.insertAdjacentHTML("afterbegin",this.fileRenderer.renderPartialHTML(p.gutterAST)),s.content.insertAdjacentHTML("afterbegin",this.fileRenderer.renderPartialHTML(p.contentAST)),c+=p.rowCount),S!=null&&(s.gutter.insertAdjacentHTML("beforeend",this.fileRenderer.renderPartialHTML(S.gutterAST)),s.content.insertAdjacentHTML("beforeend",this.fileRenderer.renderPartialHTML(S.contentAST)),c+=S.rowCount),this.lastRowCount!==c&&(s.gutter.style.setProperty("grid-row",`span ${c}`),s.content.style.setProperty("grid-row",`span ${c}`),this.lastRowCount=c),!0)}getColumns(e){const t=e.children[0],n=e.children[1];if(!(!(t instanceof HTMLElement)||!(n instanceof HTMLElement)||t.dataset.gutter==null||n.dataset.content==null))return{gutter:t,content:n}}trimDOMToOverlap(e,t,n){const r=this.getDOMBoundaryIndices(e,[t,n]),s=r.get(t)??e.children.length,o=r.get(n)??e.children.length;if(s>o)return!1;for(let a=e.children.length-1;a>=o;a-=1)e.children[a]?.remove();for(let a=s-1;a>=0;a-=1)e.children[a]?.remove();return!0}getDOMBoundaryIndices(e,t){const n=[...new Set(t)].sort((l,h)=>l-h),r=new Map;if(n.length===0)return r;let s=0,o=n[s];const{children:a}=e;o===0&&(r.set(0,0),s+=1,o=n[s]);for(let l=0;l<a.length;l+=1){const h=a[l];if(!(h instanceof HTMLElement))continue;const d=this.getLineIndexFromDOMNode(h);if(d!=null){for(;o!=null&&d>=o;)r.set(o,l),s+=1,o=n[s];if(s>=n.length)break}}for(const l of n)r.has(l)||r.set(l,a.length);return r}getLineIndexFromDOMNode(e){const t=e.dataset.lineIndex;if(t==null)return;const n=Number(t);return Number.isNaN(n)?void 0:n}applyBuffers(e,t){if(t==null||this.shouldDisableVirtualizationBuffers()){this.bufferBefore!=null&&(this.bufferBefore.remove(),this.bufferBefore=void 0),this.bufferAfter!=null&&(this.bufferAfter.remove(),this.bufferAfter=void 0);return}t.bufferBefore>0?(this.bufferBefore==null&&(this.bufferBefore=document.createElement("div"),this.bufferBefore.dataset.virtualizerBuffer="before",e.before(this.bufferBefore)),this.bufferBefore.style.setProperty("height",`${t.bufferBefore}px`),this.bufferBefore.style.setProperty("contain","strict")):this.bufferBefore!=null&&(this.bufferBefore.remove(),this.bufferBefore=void 0),t.bufferAfter>0?(this.bufferAfter==null&&(this.bufferAfter=document.createElement("div"),this.bufferAfter.dataset.virtualizerBuffer="after",e.after(this.bufferAfter)),this.bufferAfter.style.setProperty("height",`${t.bufferAfter}px`),this.bufferAfter.style.setProperty("contain","strict")):this.bufferAfter!=null&&(this.bufferAfter.remove(),this.bufferAfter=void 0)}shouldDisableVirtualizationBuffers(){return this.options.disableVirtualizationBuffers??!1}applyHeaderToDOM(e,t,n){this.cleanupErrorWrapper(),this.placeHolder?.remove(),this.placeHolder=void 0;const r=this.cachedHeaderHTML??V(e);if(this.cachedHeaderHTML=r,r!==this.lastRenderedHeaderHTML){const h=document.createElement("div");h.innerHTML=r;const d=h.firstElementChild;if(!(d instanceof HTMLElement))return;this.headerElement!=null?t.shadowRoot?.replaceChild(d,this.headerElement):t.shadowRoot?.prepend(d),this.headerElement=d,this.lastRenderedHeaderHTML=r}if(this.isContainerManaged)return;const{renderHeaderPrefix:s,renderHeaderFilenameSuffix:o,renderCustomHeader:a,renderHeaderMetadata:l}=this.options;if(a!=null){const h=a(n)??void 0;this.headerCustom=this.upsertHeaderSlotElement(t,this.headerCustom,Ae,h),this.headerPrefix?.remove(),this.headerFilenameSuffix?.remove(),this.headerMetadata?.remove(),this.headerPrefix=void 0,this.headerFilenameSuffix=void 0,this.headerMetadata=void 0}else{const h=s?.(n)??void 0,d=o?.(n)??void 0,u=l?.(n)??void 0;this.headerPrefix=this.upsertHeaderSlotElement(t,this.headerPrefix,Pe,h),this.headerFilenameSuffix=this.upsertHeaderSlotElement(t,this.headerFilenameSuffix,De,d),this.headerMetadata=this.upsertHeaderSlotElement(t,this.headerMetadata,_e,u),this.headerCustom?.remove(),this.headerCustom=void 0}}clearHeaderSlots(){this.headerPrefix?.remove(),this.headerFilenameSuffix?.remove(),this.headerMetadata?.remove(),this.headerCustom?.remove(),this.headerPrefix=void 0,this.headerFilenameSuffix=void 0,this.headerMetadata=void 0,this.headerCustom=void 0}upsertHeaderSlotElement(e,t,n,r){if(r==null){t?.remove();return}const s=t??this.createHeaderSlotElement(n);return t==null&&e.appendChild(s),this.replaceHeaderSlotContent(s,r),s}replaceHeaderSlotContent(e,t){e.replaceChildren(),t instanceof Element?e.appendChild(t):e.innerText=`${t}`}createHeaderSlotElement(e){const t=document.createElement("div");return t.slot=e,t}getOrCreateFileContainerNode(e,t){const{fileContainer:n}=this,r=e??n??document.createElement("diffs-container"),s=n!==r;return n!=null&&s&&this.editor?.__captureFocusForDOMReplacement(),s&&this.emitPostRender(!0),this.fileContainer=r,n!=null&&s&&(this.lastRenderedHeaderHTML=void 0,this.headerElement=void 0),t!=null&&this.fileContainer.parentNode!==t&&t.appendChild(this.fileContainer),s&&this.adoptReusableShellElements(this.fileContainer),this.ensureSpriteSVG(this.fileContainer),this.fileContainer}adoptReusableShellElements(e){const{shadowRoot:t}=e;if(t!=null)for(const n of t.children)n instanceof SVGElement?this.spriteSVG??=n:ge(n)&&n.hasAttribute("data-theme-css")?(this.themeCSSStyle??=n,this.hasAdoptedThemeCSS=!0):ge(n)&&n.hasAttribute("data-unsafe-css")&&(this.unsafeCSSStyle??=n,this.appliedUnsafeCSS??=this.options.unsafeCSS??void 0)}ensureSpriteSVG(e){const t=e.shadowRoot??e.attachShadow({mode:"open"});if(this.spriteSVG==null){const n=document.createElement("div");n.innerHTML=gt;const r=n.firstChild;r instanceof SVGElement&&(this.spriteSVG=r)}this.spriteSVG!=null&&this.spriteSVG.parentNode!==t&&t.appendChild(this.spriteSVG)}getOrCreatePreNode(e){const t=e.shadowRoot??e.attachShadow({mode:"open"});return this.pre==null?(this.pre=document.createElement("pre"),this.appliedPreAttributes=void 0,this.code=void 0,t.appendChild(this.pre)):this.pre.parentNode!==t&&(this.editor?.__captureFocusForDOMReplacement(),e.shadowRoot?.appendChild(this.pre),this.appliedPreAttributes=void 0),this.placeHolder?.remove(),this.placeHolder=void 0,this.pre}syncCodeNodeFromPre(e){this.code=void 0;for(const t of Array.from(e.children))if(t instanceof HTMLElement&&t.hasAttribute("data-code")){this.code=t;return}}applyPreNodeAttributes(e,{totalLines:t}){const{overflow:n="scroll",disableLineNumbers:r=!1}=this.options,s={type:"file",split:!1,overflow:n,disableLineNumbers:r,diffIndicators:"none",disableBackground:!0,totalLines:t};pt(s,this.appliedPreAttributes)||(mt(e,s),this.appliedPreAttributes=s)}applyErrorToDOM(e,t){this.cleanupErrorWrapper(),this.pre?.remove(),this.pre=void 0,this.appliedPreAttributes=void 0;const n=t.shadowRoot??t.attachShadow({mode:"open"});this.errorWrapper??=document.createElement("div"),this.errorWrapper.dataset.errorWrapper="",this.errorWrapper.textContent="",n.appendChild(this.errorWrapper);const r=document.createElement("div");r.dataset.errorMessage="",r.innerText=e.message,this.errorWrapper.appendChild(r);const s=document.createElement("pre");s.dataset.errorStack="",s.innerText=e.stack??"No Error Stack",this.errorWrapper.appendChild(s)}cleanupErrorWrapper(){this.errorWrapper?.remove(),this.errorWrapper=void 0}};function Pt(i,e,t=!1){return!t&&i==null&&e!=null}function Dt(i,e,t=!1){return i==null&&e!=null&&!t}const _t=5e3,J=new Map;let Bt=-1;function Ut(i,e){return(i.overflow??"scroll")!==(e.overflow??"scroll")||(i.collapsed??!1)!==(e.collapsed??!1)||(i.disableLineNumbers??!1)!==(e.disableLineNumbers??!1)||(i.disableFileHeader??!1)!==(e.disableFileHeader??!1)||i.unsafeCSS!==e.unsafeCSS}var Wt=class extends Me{virtualizer;metrics;__id=`virtualized-file:${++Bt}`;renderType="virtualized";top;height=0;cache={heights:new Map,checkpoints:[],fileAnnotationHeight:0,ghostTextRows:J};pendingRender;isVisible=!1;isSetup=!1;layoutDirty=!0;forceRenderOverride;currentCollapsed;constructor(i,e,t=Be,n,r=!1){super(i,n,r),this.virtualizer=e,this.metrics=t}setMetrics(i,e=!1){const t=xt(i);!e&&St(this.metrics,t)||(this.metrics=t,this.resetLayoutCache())}setLineAnnotations(i){this.syncLineAnnotations(i)&&(this.forceRenderOverride=!0)}syncLineAnnotations(i){return i==null||!this.isNewAnnotations(i)||i.length===0&&this.getLatestAnnotations().length===0?!1:(super.setLineAnnotations(i),!0)}syncEditSessionAnnotationsFromEditor(i){return super.syncEditSessionAnnotationsFromEditor(i)?(this.forceRenderOverride=!0,!0):!1}hasLineAnnotations(){return this.getLatestAnnotations().some(i=>i.lineNumber>0)}hasUniformLineHeights(){const{overflow:i="scroll"}=this.options;return i==="scroll"&&!this.hasLineAnnotations()&&this.cache.heights.size===0}getLineHeight(i,e=!1){const t=this.cache.heights.get(i);if(t!=null)return t;const n=e?2:1;return this.metrics.lineHeight*n}setOptions(i){if(this.isAdvancedMode())throw new Error("VirtualizedFile.setOptions cannot be used inside CodeView. Update CodeView options instead.");if(i==null)return;const{options:e}=this,t=!Ee(e,i),n=Ut(e,i);super.setOptions(i),n&&this.resetLayoutCache(!0),t&&(this.forceRenderOverride=!0),t&&this.virtualizer.instanceChanged(this,n)}setThemeType(i){if(this.isAdvancedMode())throw new Error("VirtualizedFile.setThemeType cannot be used inside CodeView. Update CodeView options instead.");super.setThemeType(i)}resetLayoutCache(i=!1,e=!0){this.layoutDirty=!0,this.cache.fileAnnotationHeight=0,this.cache.heights.size>0&&this.cache.heights.clear(),this.cache.checkpoints.length>0&&(this.cache.checkpoints.length=0),this.cache.ghostTextRows=J,this.renderRange!=null&&e&&(this.renderRange=void 0),i&&this.isSimpleMode()&&this.computeApproximateSize()}applyGhostTextRows(i){const{heights:e,ghostTextRows:t}=this.cache;if(t===i)return!1;const{lineHeight:n}=this.metrics;let r=!1;for(const s of new Set([...t.keys(),...i.keys()])){const o=t.get(s)??0,a=i.get(s)??0;if(a===o)continue;const l=(e.get(s)??n)-o*n+a*n;l===n?e.delete(s):e.set(s,l),r=!0}return this.cache.ghostTextRows=i,r}reconcileHeights(){let i=!1;if(this.fileContainer==null||this.getLayoutFile()==null)return this.height!==0&&(i=!0),this.height=0,i;const{overflow:e="scroll"}=this.options;this.top=this.getVirtualizedTop();const t=this.editor?.__getGhostTextRows()??J;i=this.applyGhostTextRows(t);const n=e!=="scroll"||this.getLatestAnnotations().length>0||this.isResizeDebuggingEnabled();if(this.placeHolder!=null||!n&&this.cache.heights.size===0&&this.cache.fileAnnotationHeight===0)return i&&(this.computeApproximateSize(!0),this.setPlaceholderHeight(this.height)),i;const{lineHeight:r}=this.metrics;if(this.code==null)return i;const s=this.code.children[1];if(!(s instanceof HTMLElement))return i;if(this.renderRange!=null&&He(this.renderRange)){const o=Gt(s)??0;o!==this.cache.fileAnnotationHeight&&(this.cache.fileAnnotationHeight=o,i=!0)}for(const o of s.children){if(!(o instanceof HTMLElement))continue;const a=o.dataset.lineIndex;if(a==null)continue;const l=Number(a),h=(t.get(l)??0)*r,d=this.cache.heights.get(l);if(!n&&(d==null||d===r+h))continue;let u=o.getBoundingClientRect().height+h,c=!1;o.nextElementSibling instanceof HTMLElement&&("lineAnnotation"in o.nextElementSibling.dataset||"noNewline"in o.nextElementSibling.dataset)&&("noNewline"in o.nextElementSibling.dataset&&(c=!0),u+=o.nextElementSibling.getBoundingClientRect().height);const f=this.getLineHeight(l,c);u!==f&&(i=!0,u===this.metrics.lineHeight*(c?2:1)?this.cache.heights.delete(l):this.cache.heights.set(l,u))}return(i||this.isResizeDebuggingEnabled())&&this.computeApproximateSize(!0),i}onRender=i=>this.fileContainer==null||this.file==null?!1:(i&&(this.top=this.getVirtualizedTop()),this.render({file:this.file}));updateCodeViewLayout(i,e,t,n){const r=!R(this.file,i);r&&this.updateExternalFile(i,n);const{pendingRenderFile:s,layoutFileChanged:o,renderedFileChanged:a,annotationsChanged:l}=this.updatePendingRender(i,n);let h=t?.resetFileLayoutCache===!0||o;t?.metrics!=null&&(this.metrics=t.metrics,h=!0);const{collapsed:d=!1}=this.options;return this.currentCollapsed!==d&&(this.currentCollapsed=d,h=!0),h&&this.resetLayoutCache(),r&&(this.layoutDirty=!0),!this.forceRenderOverride&&(r||a||l)&&(this.forceRenderOverride=!0),this.top=e,this.computeApproximateSize(!1,s),this.height}getLayoutFile(){return this.pendingRender?.file??this.getRenderedFile()}getLinePosition(i){const e=this.getLayoutFile();if(e==null||i<1)return;const{disableFileHeader:t=!1,collapsed:n=!1}=this.options,r=this.fileRenderer.getLineCount(e)-1;if(n)return{top:Re(this.metrics,t),height:0};let s=j(this.metrics,t);if(r<0)return{top:s,height:0};const o=Math.min(Math.max(i-1,0),r),{lineHeight:a}=this.metrics;if(s+=this.cache.fileAnnotationHeight,this.hasUniformLineHeights())return{top:s+o*a,height:a};const l=this.getLayoutCheckpointBeforeLineIndex(o);s=l?.top??s;for(let h=l?.lineIndex??0;h<o;h++)s+=this.getLineHeight(h,!1);return{top:s,height:this.getLineHeight(o,!1)}}getEditorViewport(){return this.virtualizer.type==="simple"?this.virtualizer.getRoot():this.virtualizer.getContainerElement()}getNumericScrollAnchor(i){const e=this.getLayoutFile();if(e==null||this.renderRange==null)return;const{disableFileHeader:t=!1,collapsed:n=!1}=this.options;if(n||this.renderRange.totalLines<=0)return;const r=this.fileRenderer.getLineCount(e)-1;if(r<0)return;const s=j(this.metrics,t),o=Math.min(this.renderRange.startingLine,r),a=Math.min(o+this.renderRange.totalLines-1,r);if(a<o)return;const{fileAnnotationHeight:l}=this.cache;if(this.hasUniformLineHeights()){const{lineHeight:d}=this.metrics,u=s+(o===0?l:this.renderRange.bufferBefore),c=o+Math.max(Math.ceil((i-u)/d),0);return c>a?void 0:{lineNumber:c+1,top:s+l+c*d}}let h=s+(o===0?l:this.renderRange.bufferBefore);for(let d=o;d<=a;d++){if(h>=i)return{lineNumber:d+1,top:h};h+=this.getLineHeight(d)}}getVirtualizedHeight(){return this.height}getAdvancedStickySpecs(i){const e=this.getLayoutFile();if(this.top==null||e==null)return;if(this.options.collapsed===!0)return{topOffset:this.top,height:this.height};const t=i!=null?this.computeRenderRangeFromWindow(e,this.top,i):this.renderRange;if(t==null)return;const{bufferBefore:n,bufferAfter:r,totalLines:s}=t;let o=0;if(s===0){const a=i??this.virtualizer.getWindowSpecs();this.top<a.top&&(o=r)}return{topOffset:this.top+n+o,height:this.height-(n+r)}}cleanUp(i=!1){const e=this.cache.ghostTextRows.size>0;e&&(this.layoutDirty=!0);const t=i&&this.isAdvancedMode()&&this.fileContainer!=null&&(e||!R(this.getRenderedFile(),this.getLatestFile()));this.fileContainer!=null&&this.isSimpleMode()&&this.getSimpleVirtualizer()?.disconnect(this.fileContainer),i||this.resetLayoutCache(),this.pendingRender=void 0,this.isSetup=!1,super.cleanUp(i),t&&this.virtualizer.instanceChanged(this,!0)}computeApproximateSize(i=!1,e=this.getLayoutFile()){const t=this.isResizeDebuggingEnabled();if(!i&&!this.layoutDirty&&!t)return;const n=this.height===0;if(this.height=0,this.cache.checkpoints=[],e==null){this.layoutDirty=!1;return}this.applyGhostTextRows(this.editor?.__getGhostTextRows()??J);const{disableFileHeader:r=!1,collapsed:s=!1}=this.options,{lineHeight:o}=this.metrics,a=this.fileRenderer.getLineCount(e);if(s){this.height+=Re(this.metrics,r),this.layoutDirty=!1;return}const l=j(this.metrics,r),h=ye(this.metrics);if(this.height+=l,this.height+=this.cache.fileAnnotationHeight,this.hasUniformLineHeights())this.height+=a*o;else for(let d=0;d<a;d++)this.addLayoutCheckpoint(d,this.height),this.height+=this.getLineHeight(d,!1);if(a>0&&(this.height+=h),this.fileContainer!=null&&t&&!n){const d=this.fileContainer.getBoundingClientRect();d.height!==this.height?console.log("VirtualizedFile.computeApproximateSize: computed height doesnt match",{name:e.name,elementHeight:d.height,computedHeight:this.height}):console.log("VirtualizedFile.computeApproximateSize: computed height IS CORRECT")}this.layoutDirty=!1}setVisibility(i){this.isAdvancedMode()||this.fileContainer==null||(this.renderRange=void 0,i&&!this.isVisible?(this.top=this.getVirtualizedTop(),this.isVisible=!0):!i&&this.isVisible&&(this.isVisible=!1,this.rerender()))}rerender(){if(!this.enabled||this.file==null)return;const i=this.getLatestFile(),e=i==null?void 0:this.fileRenderer.getFileForNextRender(i);this.isSimpleMode()&&(this.pendingRender=void 0),this.forceRenderOverride=!0,this.virtualizer.instanceChanged(this,!R(this.getRenderedFile(),e))}syncGhostTextRows(){const i=this.getAdvancedVirtualizer();i!=null?(i.capturePendingLayoutAnchor(),this.layoutDirty=!0,i.instanceChanged(this,!0)):this.getSimpleVirtualizer()?.requestHeightReconcile(this)}applyDocumentChange(i,e,t=!1){const{renderRange:n}=this;this.getAdvancedVirtualizer()?.capturePendingLayoutAnchor(),super.applyDocumentChange(i,e),this.getSimpleVirtualizer()?.markDOMDirty(),this.resetLayoutCache(this.isSimpleMode(),!1);const r=this.getRenderedFile();if(!this.isSimpleMode())this.computeApproximateSize(!0);else if(t&&n!=null&&r!=null){const s=this.virtualizer.getWindowSpecs(),o=this.computeRenderRangeFromWindow(r,this.top??0,s);o.bufferAfter!==n.bufferAfter&&this.updateBuffers(o)}this.forceRenderOverride=!0,this.virtualizer.instanceChanged(this,!0)}render({fileContainer:i,file:e,forceRender:t=!1,lineAnnotations:n,...r}){const s=!R(this.file,e);s&&(this.updateExternalFile(e,n),this.cachedHeaderHTML=void 0);const{pendingRenderFile:o,layoutFileChanged:a,renderedFileChanged:l,annotationsChanged:h}=this.pendingRender!=null&&this.pendingRender.latestFile===(this.getLatestFile(e)??e)?{pendingRenderFile:this.pendingRender.file,layoutFileChanged:!1,renderedFileChanged:!1,annotationsChanged:this.syncLineAnnotations(n)}:this.updatePendingRender(e,n),{forceRenderOverride:d,isSetup:u}=this;if(this.forceRenderOverride=void 0,a&&this.resetLayoutCache(),i=this.getOrCreateFileContainerNode(i),u)this.top??=this.getVirtualizedTop(),this.layoutDirty&&this.isSimpleMode()&&(this.getSimpleVirtualizer()?.markDOMDirty(),this.computeApproximateSize(!1,o));else{this.computeApproximateSize(!1,o);const g=this.getSimpleVirtualizer();if(this.top??=this.getVirtualizedTop(),this.isAdvancedMode())this.isVisible=!0;else{if(g==null)throw new Error("VirtualizedFile.render: simple virtualizer is not available");g.connect(i,this),this.isVisible=g.isInstanceVisible(this.top??0,this.height)}this.isSetup=!0}if(!this.isVisible&&this.isSimpleMode()&&(!s||!u))return this.renderPlaceholder(this.height);const c=this.virtualizer.getWindowSpecs(),f=this.top??0,p=this.computeRenderRangeFromWindow(o,f,c);return super.render({file:e,fileContainer:i,renderRange:p,lineAnnotations:n,forceRender:(d??t)||h||l||s,...r})}finalizeRender(){if(this.getRenderedFile()!==this.pendingRender?.file)throw new Error("VirtualizedFile.render: rendered a different file than its prepared layout");this.pendingRender=void 0,this.isSimpleMode()&&this.getSimpleVirtualizer()?.requestHeightReconcile(this)}updatePendingRender(i,e){const t=this.getLatestFile(i)??i,n=this.getRenderedFile(),r=this.pendingRender?.file??n,s=this.fileRenderer.getFileForNextRender(t);return this.pendingRender={latestFile:t,file:s},{pendingRenderFile:s,annotationsChanged:this.syncLineAnnotations(e),layoutFileChanged:!R(r,s),renderedFileChanged:!R(n,s)}}syncVirtualizedTop(){this.top=this.getVirtualizedTop()}shouldDisableVirtualizationBuffers(){return this.isAdvancedMode()||super.shouldDisableVirtualizationBuffers()}shouldGuardRebuildScroll(){return!1}isSimpleMode(){return this.virtualizer.type==="simple"}isAdvancedMode(){return this.virtualizer.type==="advanced"}addLayoutCheckpoint(i,e){i%_t===0&&this.cache.checkpoints.push({lineIndex:i,top:e})}getLayoutCheckpointBeforeLineIndex(i){if(i<=0||this.cache.checkpoints.length===0)return;let e=0,t=this.cache.checkpoints.length-1,n;for(;e<=t;){const r=e+t>>1,s=this.cache.checkpoints[r];if(s==null)throw new Error("VirtualizedFile: invalid checkpoint index");s.lineIndex<=i?(n=s,e=r+1):t=r-1}return n}getLayoutCheckpointBeforeTop(i,e){let t=0,n=this.cache.checkpoints.length-1,r=-1;for(;t<=n;){const s=t+n>>1,o=this.cache.checkpoints[s];if(o==null)throw new Error("VirtualizedFile: invalid checkpoint index");o.top<=i?(r=s,t=s+1):n=s-1}if(e==null)return r>=0?this.cache.checkpoints[r]:void 0;for(let s=r;s>=0;s--){const o=this.cache.checkpoints[s];if(o==null)throw new Error("VirtualizedFile: invalid checkpoint index");if(o.lineIndex%e===0)return o}}getVirtualizedTop(){return this.virtualizer.type==="advanced"?this.virtualizer.getLocalTopForInstance(this):this.fileContainer!=null?this.virtualizer.getOffsetInScrollContainer(this.fileContainer):0}getSimpleVirtualizer(){return this.virtualizer.type==="simple"?this.virtualizer:void 0}getAdvancedVirtualizer(){return this.virtualizer.type==="advanced"?this.virtualizer:void 0}isResizeDebuggingEnabled(){return this.getSimpleVirtualizer()?.config.resizeDebugging??!1}computeRenderRangeFromWindow(i,e,{top:t,bottom:n}){const{disableFileHeader:r=!1}=this.options,{hunkLineCount:s,lineHeight:o}=this.metrics,a=this.fileRenderer.getLineCount(i),l=this.height,h=j(this.metrics,r),d=a>0?ye(this.metrics):0,{fileAnnotationHeight:u}=this.cache,c=h+u,f=Math.max(0,l-h-u-d),p=Ct(this.getLatestAnnotations()),g=e+h,S=u>0&&p&&g<n&&g+u>t;if(e<t-l||e>n)return{startingLine:0,totalLines:0,bufferBefore:0,bufferAfter:l-h-d};if(a<=s)return{startingLine:0,totalLines:s,bufferBefore:0,bufferAfter:0};const H=Math.ceil(Math.max(n-t,0)/o),A=Math.ceil(H/s)*s+s,m=A/s,y=(t+n)/2;if(this.hasUniformLineHeights()){const O=e+c,U=O+f;if(!S&&!(O<n&&U>t))return{startingLine:0,totalLines:0,bufferBefore:0,bufferAfter:l-h-d};const D=Math.floor(S&&y<e+c?0:(y-(e+c))/o),M=Math.floor(D/s)-Math.floor(m/2),Ne=Math.ceil(a/s),_=Math.max(0,Math.min(M,Ne))*s,oe=M<0?A+M*s:A,Oe=_===0?0:u+_*o,Ie=Math.min(oe,a-_);return{startingLine:_,totalLines:oe,bufferBefore:Oe,bufferAfter:Math.max(0,(a-_-Ie)*o)}}const P=m,E=[],L=this.getLayoutCheckpointBeforeTop(Math.max(0,t-e-A*o*2),s);let T=e+(L?.top??c),k=L?.lineIndex??0,z,C,w;const Q=L?.lineIndex??0;for(let O=Q;O<a;O++){const U=k%s===0,D=Math.floor(k/s);if(U&&(E[D]=T-(e+c),w!=null)){if(w<=0)break;w--}const M=this.getLineHeight(O,!1);T>t-M&&T<n&&(z??=D),T+M>y&&(C??=D),w==null&&T>=n&&U&&(w=P),k++,T+=M}if(z==null)if(S)z=0,C=0;else return{startingLine:0,totalLines:0,bufferBefore:0,bufferAfter:l-h-d};C??=z;const N=Math.round(C-m/2),Z=Math.max(0,Math.ceil(a/s)-m),ee=Math.max(0,Math.min(N,Z)),ne=ee*s,se=N<0?A+N*s:A,Fe=E[ee]??0,ke=ne===0?0:u+Fe,re=ee+se/s,ze=re<E.length?f-E[re]:f-(T-e-c);return{startingLine:ne,totalLines:se,bufferBefore:ke,bufferAfter:Math.max(0,ze)}}};function Gt(i){let e;for(const t of i.children)t instanceof HTMLElement&&t.dataset.lineAnnotation===vt&&(e=Math.max(e??0,t.getBoundingClientRect().height));return e}function jt({file:i,renderCustomHeader:e,renderHeaderPrefix:t,renderHeaderFilenameSuffix:n,renderHeaderMetadata:r,renderAnnotation:s,lineAnnotations:o,renderGutterUtility:a,getHoveredLine:l,getAnnotationSlotName:h=F}){const d=e?.(i),u=t?.(i),c=n?.(i),f=r?.(i);return v.jsxs(v.Fragment,{children:[d!=null?v.jsx("div",{slot:Ae,children:d}):v.jsxs(v.Fragment,{children:[u!=null&&v.jsx("div",{slot:"header-prefix",children:u}),c!=null&&v.jsx("div",{slot:"header-filename-suffix",children:c}),f!=null&&v.jsx("div",{slot:"header-metadata",children:f})]}),s!=null&&o?.map((p,g)=>v.jsx("div",{slot:h(p),children:s(p)},g)),a!=null&&v.jsx("div",{slot:"gutter-utility-slot",style:Rt,children:a(l)})]})}const Kt=typeof window>"u"?b.useEffect:b.useLayoutEffect;function $t({file:i,options:e,editorOptions:t,editStateKey:n,lineAnnotations:r,selectedLines:s,prerenderedHTML:o,metrics:a,hasGutterRenderUtility:l,hasCustomHeader:h,disableWorkerPool:d,edit:u,onEditChange:c,onEditComplete:f}){const p=yt(),g=s!==void 0,S=b.useContext(Lt),H=Tt(),A=W(C=>c?.(C)),m=c!=null?A:void 0,y=b.useRef(null),P=W(C=>{const w=f?.(C)??"reject";return w==="accept"&&(y.current={file:{installed:C.file,stale:C.originalFile},annotations:{installed:C.lineAnnotations,stale:C.originalLineAnnotations}}),w}),E=f!=null?P:void 0,L=b.useRef(null),T=b.useRef(null),k=W(()=>{if(H==null)throw new Error("File: EditContext is not attached");return H("file",t??{},n)}),z=W(C=>{if(C!=null){if(L.current!=null)throw new Error("File: An instance should not already exist when a node is created");p!=null?L.current=new Wt(te({controlledSelection:g,hasCustomHeader:h,hasGutterRenderUtility:l,onEditChange:m,onEditComplete:E,options:e}),p,a,d?void 0:S,!0):L.current=new Me(te({controlledSelection:g,hasCustomHeader:h,hasGutterRenderUtility:l,onEditChange:m,onEditComplete:E,options:e}),d?void 0:S,!0),u&&T.current==null&&(T.current=Te(L.current,k)),L.current.hydrate({file:i,fileContainer:C,lineAnnotations:r,prerenderedHTML:o})}else{if(L.current==null)throw new Error("File: A File instance should exist when unmounting");L.current.cleanUp(),L.current=null,T.current=null}});return Kt(()=>{const{current:C}=L;if(C==null)return;const w=te({controlledSelection:g,hasCustomHeader:h,hasGutterRenderUtility:l,onEditChange:m,onEditComplete:E,options:e}),Q=w!==void 0&&!Ee(C.options,w);if(C.setOptions(w),!u&&T.current!=null){const{current:Z}=T;T.current=null,Z()}const N=qt(i,r,y);C.render({file:N.file,lineAnnotations:N.lineAnnotations,forceRender:Q}),s!==void 0&&C.setSelectedLines(s),u&&T.current==null&&(T.current=Te(C,k))}),{ref:z,getHoveredLine:b.useCallback(()=>L.current?.getHoveredLine(),[]),getAnnotationSlotName:b.useCallback(C=>L.current?.getAnnotationSlotName(C)??F(C),[])}}function qt(i,e,t){const{current:n}=t;if(n==null)return{file:i,lineAnnotations:e};const{file:r,annotations:s}=n;let o=i;r!=null&&(R(i,r.stale)?o=r.installed:n.file=null);let a=e;return s!=null&&(e===s.stale?a=s.installed:n.annotations=null),n.file==null&&n.annotations==null&&(t.current=null),{file:o,lineAnnotations:a}}function te({options:i,controlledSelection:e,hasCustomHeader:t,hasGutterRenderUtility:n,onEditChange:r,onEditComplete:s}){return e||n||t||r!=null||s!=null?{...i,controlledSelection:e,renderCustomHeader:t?pe:i?.renderCustomHeader,renderGutterUtility:n?pe:i?.renderGutterUtility,onEditChange:r,onEditComplete:s}:i}function Te(i,e){const t=e();try{return t.edit(i)}catch(n){throw t.cleanUp(),n}}function ri({file:i,lineAnnotations:e,selectedLines:t,options:n,editorOptions:r,editStateKey:s,metrics:o,className:a,style:l,renderAnnotation:h,renderCustomHeader:d,renderHeaderPrefix:u,renderHeaderFilenameSuffix:c,renderHeaderMetadata:f,prerenderedHTML:p,renderGutterUtility:g,disableWorkerPool:S=!1,edit:H=!1,onEditChange:A,onEditComplete:m}){const{ref:y,getHoveredLine:P,getAnnotationSlotName:E}=$t({file:i,options:n,editorOptions:r,editStateKey:s,metrics:o,lineAnnotations:e,selectedLines:t,prerenderedHTML:p,hasGutterRenderUtility:g!=null,hasCustomHeader:d!=null,disableWorkerPool:S,edit:H,onEditChange:A,onEditComplete:m}),L=jt({file:i,renderAnnotation:h,renderCustomHeader:d,renderHeaderPrefix:u,renderHeaderFilenameSuffix:c,renderHeaderMetadata:f,renderGutterUtility:g,lineAnnotations:e,getHoveredLine:P,getAnnotationSlotName:E});return v.jsx(Ue,{ref:y,className:a,style:l,children:At(L,p)})}const oi=I.memo(function({jsonString:e,format:t="json",className:n,maxHeight:r="100%",initiallyExpandedDepth:s=2}){const{t:o}=We(),a=I.useRef(null),[l,h]=I.useState(null),d=I.useMemo(()=>{try{const f=e.trim();if(!f)return h(o("jsonTreeView.error.emptyJson")),null;const p=t==="jsonc"?Ft(f,{trailingCommas:!0}):f,g=JSON.parse(p);return h(null),g}catch(f){return h(f instanceof Error?f.message:o("jsonTreeView.error.invalidJson")),null}},[e,t,o]),u=I.useCallback(()=>{a.current?.expandAll()},[]),c=I.useCallback(()=>{a.current?.collapseAll()},[]);return l?v.jsx("div",{className:n,children:v.jsxs("div",{className:"oc-surface-code rounded-md border border-[var(--interactive-border)] bg-[var(--syntax-background)] p-4",children:[v.jsx("div",{className:"mb-1 font-medium text-foreground",children:o("jsonTreeView.error.invalidJsonTitle")}),v.jsx("div",{className:"font-mono text-xs text-muted-foreground",children:l})]})}):d===null?null:v.jsxs("div",{className:n,children:[v.jsxs("div",{className:"flex items-center gap-1 border-b border-[var(--interactive-border)] px-2 py-1",children:[v.jsxs(le,{variant:"ghost",size:"xs",onClick:u,className:"gap-1 text-xs text-muted-foreground",children:[v.jsx(he,{name:"arrow-down-s",className:"h-3 w-3"}),o("jsonTreeView.actions.expandAll")]}),v.jsxs(le,{variant:"ghost",size:"xs",onClick:c,className:"gap-1 text-xs text-muted-foreground",children:[v.jsx(he,{name:"arrow-up-s",className:"h-3 w-3"}),o("jsonTreeView.actions.collapseAll")]})]}),v.jsx("div",{className:"oc-surface-code bg-[var(--syntax-background)] py-1",style:{maxHeight:r,overflow:"auto"},children:v.jsx(Ge,{ref:a,data:d,maxHeight:r,initiallyExpandedDepth:s})})]})});export{ri as F,oi as J,Wt as V};
1
+ import{eu as B,f4 as ae,f5 as Ve,ei as Ae,f6 as Pe,f7 as De,f8 as _e,f9 as Be,ej as Ue,u as We,B as le,I as he,fa as Ge}from"./useAppFontEffects-Dm6zEvrf.js";import{g as F,b as je,c as we,i as Ke,s as He,e as $e,f as de,h as qe,j as Je,k as Ye,l as Xe,m as Qe,R as Ze,I as et,n as ce,r as tt,o as ue,w as it,t as nt,u as st,v as rt,x as ot,y as at,z as fe,A as lt,B as ht,C as dt,D as ct,E as ut,F as ft,G as ge,S as gt,H as pt,J as mt,K as St,a as Ee,L as Ct,M as vt}from"./parseDiffFromFile-BSmRvd3V.js";import{c as R,G as Rt,u as yt,W as Lt,a as Tt,b as W,n as pe,t as At}from"./Virtualizer-BP6uuKe_.js";import{j as v,r as b,R as I}from"./vendor-react-BUCujlKS.js";import{x as G,y as ie,g as Y,n as me,i as xe,z as Se,A as wt,B as Ce,k as be,C as ve,a as Ht,l as Et,D as xt,E as Re,F as j,G as ye}from"./computeVirtualFileMetrics-DDyA16hp.js";import{a as x,i as X,l as K,h as bt,r as Mt}from"./isFilePlainText-Dpm-_Qu8.js";import{t as V}from"./vendor-hast-util-to-html-BKBhbTDb.js";import{s as Ft}from"./vendor-strip-json-comments-5dJlOkP1.js";import"./katex.min-F4TD1ekM.js";function $(i,e){return e.cacheKey==null?i.file===e&&i.sourceContents===e.contents:i.cacheKey===e.cacheKey}let kt=-1;var zt=class{options;annotationSlotName;onRenderUpdate;workerManager;__id=`file-renderer:${++kt}`;highlighter;file;renderCache;pendingHighlightResult;computedLang="text";lineAnnotations={};lineCache;pendingStructuralRows;textDocumentCache=new WeakMap;editSessionActive=!1;get fileCache(){return this.renderCache?.file}constructor(i={theme:B},e=F,t,n){this.options=i,this.annotationSlotName=e,this.onRenderUpdate=t,this.workerManager=n,n?.isWorkingPool()!==!0&&(this.highlighter=G(i.theme??B)?ie():void 0)}setOptions(i){this.options=i}mergeOptions(i){this.options={...this.options,...i}}setLineAnnotations(i){this.lineAnnotations={};for(const e of i){const t=this.lineAnnotations[e.lineNumber]??[];this.lineAnnotations[e.lineNumber]=t,t.push(e)}}cleanUp(){this.endEditSession(),this.recycle(),this.workerManager=void 0,this.onRenderUpdate=void 0}beginEditSession(i,e){const{editSessionActive:t,renderCache:n}=this;if(this.editSessionActive=!0,t||(this.pendingHighlightResult=void 0),this.file=i,n==null||t&&n.file===i)return;if(t){this.clearRenderCache(),this.lineCache=void 0,this.textDocumentCache=new WeakMap;return}const{options:r}=this.getRenderOptions(i),s=n.file===i,o=e!=null&&R(n.file,e),{result:a}=n;if(!n.highlighted||a==null||!x(n.options,r)||!s&&!o){this.clearRenderCache(),this.lineCache=void 0,this.textDocumentCache=new WeakMap;return}if(s)return;this.renderCache={...n,file:i,result:{...a,code:[...a.code]}};const{lineCache:l}=this;l!=null&&e!=null&&$(l,e)?this.lineCache={cacheKey:void 0,file:i,sourceContents:i.contents,lines:l.lines}:this.lineCache=void 0}endEditSession(i){if(this.editSessionActive=!1,this.pendingHighlightResult=void 0,this.file==null){this.clearRenderCache(),this.lineCache=void 0,this.textDocumentCache=new WeakMap;return}const{renderCache:e}=this;i==null||e==null||e.file===i||!R(e.file,i)||(e.file=i)}editorRenderReady(){return this.renderCache?.options.useTokenTransformer===!0&&this.renderCache.highlighted&&this.renderCache.result!=null}recycle(){this.editSessionActive?(this.renderCache!=null&&(this.renderCache.renderRange=void 0),this.pendingHighlightResult=void 0,this.pendingStructuralRows=void 0):(this.clearRenderCache(),this.lineCache=void 0,this.textDocumentCache=new WeakMap),this.highlighter=void 0,this.workerManager?.cleanUpTasks(this),this.file=void 0}clearRenderCache(){this.pendingStructuralRows=void 0,this.renderCache=void 0,this.pendingHighlightResult=void 0}hydrate(i){this.file=i;const{options:e}=this.getRenderOptions(i),t=q(this.getOrCreateLineCache(i).length,this.getTokenizeMaxLength());let n=this.workerManager?.getFileResultCache(i);n!=null&&!x(e,n.options)&&(n=void 0),this.renderCache??={file:i,hydrated:!0,options:e,highlighted:!t&&!X(i),result:t?void 0:n?.result,renderRange:void 0},!this.editSessionActive&&this.workerManager?.isWorkingPool()===!0?this.renderCache.result==null&&!t&&this.workerManager.highlightFileAST(this,i):this.highlighter==null&&(this.computedLang=i.lang??Y(i.name),this.initializeHighlighter())}getLocalHighlightTheme(){return this.workerManager?.getFileRenderOptions().theme??this.options.theme??B}getEffectiveCodeOptions(){const i=this.workerManager?.isWorkingPool()===!0?this.workerManager.getFileRenderOptions():void 0;return{theme:this.getLocalHighlightTheme(),tokenizeMaxLineLength:i?.tokenizeMaxLineLength??this.options.tokenizeMaxLineLength}}getRenderOptions(i){const e=(()=>{if(this.workerManager?.isWorkingPool()===!0){const r=this.workerManager.getFileRenderOptions();return this.editSessionActive&&r.useTokenTransformer!==!0?{...r,useTokenTransformer:!0}:r}const{tokenizeMaxLineLength:n=1e3}=this.options;return{theme:this.getLocalHighlightTheme(),useTokenTransformer:this.editSessionActive||this.options.useTokenTransformer===!0,tokenizeMaxLineLength:n}})(),{renderCache:t}=this;return t?.result==null?{options:e,forceHighlight:!0}:!R(i,t.file)||!x(e,t.options)?{options:e,forceHighlight:!0}:{options:e,forceHighlight:!1}}getFileForNextRender(i){const{options:e}=this.getRenderOptions(i);if(this.getReadyRenderResult(i,e)!=null)return i;const{renderCache:t}=this;if(t==null)return i;if(R(t.file,i))return t.file;const n=K(i.contents),r=i.contents.length===0||X(i)||q(n.length,this.getTokenizeMaxLength());return this.canRenderFile(i,e,r)?i:t.file}canRenderFile(i,e,t){const{renderCache:n}=this;return n==null||R(n.file,i)?!0:t?n.result==null&&n.hydrated!==!0||this.workerManager?.isWorkingPool()===!0||this.highlighter!=null&&G(e.theme):n.result==null&&n.hydrated!==!0?!0:!this.editSessionActive&&this.workerManager?.isWorkingPool()===!0?!n.highlighted:this.highlighter!=null&&G(e.theme)}getOrCreateLineCache(i){let{lineCache:e}=this;return(e==null||!$(e,i))&&(e={cacheKey:i.cacheKey,file:i,sourceContents:i.contents,lines:K(i.contents)}),this.lineCache=e,e.lines}getLineCount(i){const e=this.getOrCreateLineCache(i);return this.textDocumentCache.get(i)?.lineCount??e.length}updateRenderCache(i,e,t=!1){this.pendingStructuralRows=void 0;const{renderCache:n}=this;if(n==null)return;const{file:r,result:s}=n;if(s==null)return;const o=t?new Map:void 0;this.pendingStructuralRows=o;const a=this.lineCache!=null&&$(this.lineCache,r)?this.lineCache:void 0;for(const[l,h]of i){if(o==null&&a!=null&&l<a.lines.length){const u=h.map(c=>c[2]).join("");a.lines[l]=je(a.lines[l]??"",u)}const d={type:"element",tagName:"div",properties:{"data-line":l+1,"data-line-type":"context","data-line-index":l},children:h.map(([u,c,f])=>u===0&&c===""?f===""?{type:"element",tagName:"br",properties:{},children:[]}:{type:"text",value:f}:{type:"element",tagName:"span",properties:{"data-char":u,style:`color:${c};`},children:[{type:"text",value:f}]})};o!=null?o.set(l,d):s.code[l]=d}s.baseThemeType=e,n.isDirty=!0,o==null&&a!=null&&(r.contents=a.lines.join(""),a.sourceContents=r.contents)}applyDocumentChange(i){const{pendingStructuralRows:e,renderCache:t}=this;this.pendingStructuralRows=void 0;const n=this.file??t?.file;if(n==null)return;const r=t?.result,s=this.lineCache!=null&&$(this.lineCache,n)?this.lineCache.lines:K(n.contents),o=K(i.getText());if(r!=null&&s.length!==o.length){const l=Math.min(s.length,o.length);let h=0;for(;h<l&&s[h]===o[h];)h++;let d=0;for(;d<l-h&&s[s.length-1-d]===o[o.length-1-d];)d++;const u=r.code;r.code=new Array(o.length);for(let c=0;c<h;c++)r.code[c]=u[c];for(let c=0;c<d;c++)r.code[o.length-1-c]=u[s.length-1-c];if(e!==void 0)for(const[c,f]of e)c<o.length&&(r.code[c]=f);for(let c=h;c<o.length-d;c++)r.code[c]??={type:"element",tagName:"div",properties:{"data-line":c+1,"data-line-type":"context","data-line-index":c},children:[{type:"element",tagName:"span",properties:{"data-char":0},children:[{type:"text",value:i.getLineText(c)}]}]};for(let c=0;c<r.code.length;c++){const f=r.code[c];f?.type==="element"&&(f.properties["data-line"]=c+1,f.properties["data-line-index"]=c)}t!=null&&(t.isDirty=!0)}const a=i.getText();this.lineCache={cacheKey:n.cacheKey,file:n,sourceContents:a,lines:o},this.textDocumentCache.set(n,i),n.contents=a}renderFile(i=this.file,e=ae){if(this.file=i,i==null){this.pendingHighlightResult=void 0;return}let{options:t,forceHighlight:n}=this.getRenderOptions(i);const r=this.getReadyRenderResult(i,t);this.pendingHighlightResult=void 0,r!=null&&(this.renderCache={...r,file:i,renderRange:void 0},n=!1),this.renderCache??={file:i,highlighted:!1,options:t,result:void 0,renderRange:void 0};const s=this.getOrCreateLineCache(i),o=i.contents.length>0,a=!o||X(i)||q(s.length,this.getTokenizeMaxLength()),l=this.canRenderFile(i,t,a),h=!R(i,this.renderCache.file),d=!we(this.renderCache.renderRange,e);if(!this.editSessionActive&&this.workerManager?.isWorkingPool()===!0){const u=this.renderCache.result==null&&this.renderCache.highlighted&&!a&&!h&&Ke(e);l&&!u&&(a||this.renderCache.result==null||!this.renderCache.highlighted&&(h||d))&&(this.renderCache.file=i,this.renderCache.options=t,this.renderCache.highlighted=!1,(this.renderCache.result==null||h||d||n)&&(this.renderCache.result=this.workerManager.getPlainFileAST(i,e.startingLine,e.totalLines,s)),this.renderCache.renderRange=e),!a&&o&&(!this.renderCache.highlighted||n)&&this.workerManager.highlightFileAST(this,i)}else{this.computedLang=i.lang??Y(i.name),this.highlighter??=ie();const u=this.highlighter!=null&&G(t.theme),c=this.highlighter!=null&&me(this.computedLang),f=!a&&c;if(l&&this.highlighter!=null&&u&&(n||a||!this.renderCache.highlighted&&f||this.renderCache.result==null)){const{result:p,options:g}=this.renderFileWithHighlighter(i,this.highlighter,a||!c);this.renderCache={file:i,options:g,highlighted:f,result:p,renderRange:void 0}}(!u||!a&&!c)&&this.asyncHighlight(i).then(({result:p,options:g})=>{this.applyHighlightResult(i,p,g,!a)})}return this.renderCache.result!=null?this.processFileResult(this.renderCache.file,e,this.renderCache.result):void 0}async asyncRender(i,e=ae){this.file=i;const{result:t}=await this.asyncHighlight(i);return this.processFileResult(i,e,t)}async asyncHighlight(i){const e=q(this.getOrCreateLineCache(i).length,this.getTokenizeMaxLength());this.computedLang=e?"text":i.lang??Y(i.name);const t=this.highlighter!=null&&bt(xe(this.getLocalHighlightTheme())),n=e||this.highlighter!=null&&me(this.computedLang);return(this.highlighter==null||!t||!n)&&(this.highlighter=await this.initializeHighlighter()),this.renderFileWithHighlighter(i,this.highlighter,e)}renderFileWithHighlighter(i,e,t=!1){const{options:n}=this.getRenderOptions(i);return{result:Mt(i,e,n,{forcePlainText:t}),options:n}}processFileResult(i,e,{code:t,themeStyles:n,baseThemeType:r}){const s=this.getLineCount(i),{disableFileHeader:o=!1}=this.options,a=[],l=ve(),h=Math.min(e.startingLine+e.totalLines,s);let d=0;const u=He(e)?$e(this.lineAnnotations):void 0;u!=null&&(l.children.push(Se("context","annotation",1)),a.push(de({hunkIndex:-1,lineIndex:-1,annotations:u.map(c=>this.annotationSlotName(c))})),d++);for(let c=e.startingLine;c<h;c++){const f=c+1,p=t[c];if(p==null){const S="FileRenderer.processFileResult: Line doesnt exist";throw console.error(S,{name:i.name,lineIndex:c,lineNumber:f}),new Error(S)}l.children.push(wt("context",f,`${c}`)),a.push(p),d++;const g=this.lineAnnotations[f];g!=null&&(l.children.push(Se("context","annotation",1)),a.push(de({hunkIndex:0,lineIndex:f,annotations:g.map(S=>this.annotationSlotName(S))})),d++)}return l.properties.style=`grid-row: span ${d}`,{file:i,gutterAST:l.children??[],contentAST:a,preAST:this.createPreElement(s),headerAST:o?void 0:this.renderHeader(i),totalLines:s,rowCount:d,themeStyles:n,baseThemeType:r,bufferBefore:e.bufferBefore,bufferAfter:e.bufferAfter,css:""}}renderHeader(i){const{headerRenderMode:e="default",stickyHeader:t=!1}=this.options;return qe({fileOrDiff:i,mode:e,stickyHeader:t})}renderFullHTML(i){return V(this.renderFullAST(i))}renderFullAST(i,e=[]){return e.push(Ce({tagName:"code",children:this.renderCodeAST(i),properties:{"data-code":""}})),{...i.preAST,children:e}}renderCodeAST(i){const e=ve();return e.children=i.gutterAST,e.properties.style=`grid-row: span ${i.rowCount}`,[e,Je(i.contentAST,i.rowCount)]}renderPartialHTML(i,e=!1){return e?V(Ce({tagName:"code",children:i,properties:{"data-code":""}})):V(i)}async initializeHighlighter(){return this.highlighter=await be(Ye(this.computedLang,{theme:this.getLocalHighlightTheme(),preferredHighlighter:this.workerManager?.getPreferredHighlighter()??this.options.preferredHighlighter})),this.highlighter}onHighlightSuccess(i,e,t,n=!0){this.editSessionActive||this.applyHighlightResult(i,e,t,n)}applyHighlightResult(i,e,t,n=!0){const{file:r,renderCache:s}=this;r==null||s==null||!R(i,r)||!x(t,this.getRenderOptions(r).options)||(s.result==null||!s.highlighted||!x(s.options,t)||!R(s.file,r))&&(this.pendingHighlightResult={file:r,options:t,highlighted:n,result:e},this.onRenderUpdate?.())}getMatchingWorkerResultCache(i,e){if(this.editSessionActive)return;const t=this.workerManager?.getFileResultCache(i);if(!(t==null||!x(e,t.options)))return t}getReadyRenderResult(i,e){const{pendingHighlightResult:t}=this;if(t!=null&&R(t.file,i)&&x(t.options,e))return t;const n=this.getMatchingWorkerResultCache(i,e);if(!(n==null||this.hasHighlightedRenderCache(i,e)))return{file:i,highlighted:!0,...n}}hasHighlightedRenderCache(i,e){const{renderCache:t}=this;return t?.result!=null&&t.highlighted&&R(i,t.file)&&x(e,t.options)}onHighlightError(i){console.error(i)}getTokenizeMaxLength(){return this.options.tokenizeMaxLength??1e5}createPreElement(i){const{disableLineNumbers:e=!1,overflow:t="scroll"}=this.options;return Xe({type:"file",diffIndicators:"none",disableBackground:!0,disableLineNumbers:e,overflow:t,split:!1,totalLines:i})}};function q(i,e){return i>e}function Nt(i,e){return i.lineNumber===e.lineNumber&&i.metadata===e.metadata}function Le(i){return{theme:i?.theme,disableLineNumbers:i?.disableLineNumbers,overflow:i?.overflow,themeType:i?.themeType,collapsed:i?.collapsed,disableFileHeader:i?.disableFileHeader,disableVirtualizationBuffers:i?.disableVirtualizationBuffers,stickyHeader:i?.stickyHeader,preferredHighlighter:i?.preferredHighlighter,useCSSClasses:i?.useCSSClasses,useTokenTransformer:Qe(i),tokenizeMaxLineLength:i?.tokenizeMaxLineLength,tokenizeMaxLength:i?.tokenizeMaxLength,unsafeCSS:i?.unsafeCSS,headerRenderMode:i?.renderCustomHeader!=null?"custom":"default"}}const Ot=[""];function It(i){const e={...i};return delete e.cacheKey,e}let Vt=-1;var Me=class{options;workerManager;isContainerManaged;static LoadedCustomComponent=!0;__id=`file:${++Vt}`;type="file";fileContainer;spriteSVG;pre;code;bufferBefore;bufferAfter;themeCSSStyle;appliedThemeCSS;hasAdoptedThemeCSS=!1;unsafeCSSStyle;appliedUnsafeCSS;gutterUtilityContent;errorWrapper;placeHolder;lastRenderedHeaderHTML;cachedHeaderHTML;appliedPreAttributes;lastRowCount;mounted=!1;headerElement;headerCustom;headerPrefix;headerFilenameSuffix;headerMetadata;fileRenderer;resizeManager;interactionManager;annotationCache=new Map;lineAnnotations=[];managersDirty=!1;file;editSession;renderedFile;renderRange;enabled=!0;editor;constructor(e={theme:B},t,n=!1){this.options=e,this.workerManager=t,this.isContainerManaged=n,this.fileRenderer=new zt(e,this.getAnnotationSlotName,this.handleHighlightRender,this.workerManager),this.resizeManager=new Ze,this.interactionManager=new et("file",ce(e)),this.workerManager?.subscribeToThemeChanges(this)}getAnnotationSlotName=e=>tt(this.editSession?.annotations,e,F);handleHighlightRender=()=>{this.rerender()};rerender(){!this.enabled||this.file==null||this.render({file:this.file,forceRender:!0,renderRange:this.renderRange})}getTheme(){return this.workerManager?.getFileRenderOptions().theme??this.options.theme??B}getLatestFile(e=this.file){return this.editSession?.file??e}getRenderedFile(){return this.renderedFile}getLatestAnnotations(){return this.editSession?.annotations?.current??this.lineAnnotations}isNewAnnotations(e){const t=this.editSession?.annotations;return e===this.lineAnnotations?!1:t==null||e!==t.provided&&e!==t.current}updateExternalFile(e,t){if(R(this.file,e))return!1;const n=this.editSession!=null;return this.file=e,n||this.editor!=null?this.installEditSession(e,n?void 0:this.editor?.__getDocumentContents(e),!0):this.editSession=void 0,this.editSession?.annotations!=null&&t!=null&&(this.lineAnnotations=t,this.editSession.annotations=ue(t,F,this.editSession.annotations)),!0}installEditSession(e,t,n=!1){const r=t==null||t.name===e.name&&t.lang===e.lang&&t.contents===e.contents,s=It(t??e);this.editSession={file:s,externalReplacement:n&&r,annotations:this.editSession?.annotations??ue(this.lineAnnotations,F)},this.fileRenderer.beginEditSession(s,r?e:void 0)}onThemeChange(){this.fileRenderer.clearRenderCache(),this.rerender()}setOptions(e){e!=null&&(this.options=e,this.cachedHeaderHTML=void 0,this.syncInteractionOptions())}syncInteractionOptions(){this.interactionManager.setOptions(ce(this.options))}mergeOptions(e){this.options={...this.options,...e}}setThemeType(e){(this.options.themeType??"system")!==e&&(this.mergeOptions({themeType:e}),this.applyCachedThemeState(e))}applyCachedThemeState(e){if(typeof this.options.theme=="string"||this.fileContainer==null||this.appliedThemeCSS==null)return!1;const t=this.appliedThemeCSS.baseThemeType??e;return this.appliedThemeCSS.themeType===t?!1:(this.applyThemeState(this.fileContainer,this.appliedThemeCSS.themeStyles,e,this.appliedThemeCSS.baseThemeType),!0)}hasThemeChanged(){return this.appliedThemeCSS!=null&&!Ht(this.appliedThemeCSS.theme,this.getTheme())}getHoveredLine=()=>this.interactionManager.getHoveredLine();setLineAnnotations(e){const t=this.editSession?.annotations;if(t==null){this.lineAnnotations=e;return}this.isNewAnnotations(e)&&(this.lineAnnotations=e,it(t,e,F))}syncEditSessionAnnotationsFromEditor(e){const t=this.editSession?.annotations;return t==null||e===t.current?!1:(t.current=e,this.fileRenderer.setLineAnnotations(e),this.renderAnnotations(),!0)}setSelectedLines(e,t){this.interactionManager.setSelection(e,t)}setEditorActiveLine(e,t){this.interactionManager.setEditorActiveLine(e,{lineNumberOnly:t?.lineNumberOnly,side:t?.side??"additions"})}getCodeScrollLeft(){return this.code?.scrollLeft??0}setCodeScrollLeft(e){this.code!=null&&(this.code.scrollLeft=e)}__getEffectiveCodeOptions(){return{...this.options,...this.fileRenderer.getEffectiveCodeOptions()}}flushManagers(){if(!this.managersDirty||this.pre==null){this.managersDirty=!1;return}const{overflow:e="scroll"}=this.options;this.interactionManager.setup(this.pre),this.resizeManager.setup(this.pre,{disableAnnotations:e==="wrap",columnVariables:this.shouldApplyColumnVariables(e)?"apply":"measure"}),this.managersDirty=!1}shouldApplyColumnVariables(e){return e==="scroll"&&this.getLatestAnnotations().length>0}cleanUp(e=!1){const t=this.editor;this.emitPostRender(!0),t?.cleanUp(e?"recycle":"discard"),e||(this.editor=void 0),this.resizeManager.cleanUp(),this.interactionManager.cleanUp(),this.managersDirty=!1,this.workerManager?.unsubscribeToThemeChanges(this),this.renderRange=void 0,this.isContainerManaged||this.fileContainer?.remove(),this.fileContainer=void 0,this.mounted=!1,e||(this.lineAnnotations=[]),this.clearAuxiliaryNodes(),this.pre=void 0,this.code=void 0,this.bufferBefore?.remove(),this.bufferBefore=void 0,this.bufferAfter?.remove(),this.bufferAfter=void 0,this.appliedPreAttributes=void 0,this.lastRowCount=void 0,this.headerElement=void 0,this.headerPrefix=void 0,this.headerFilenameSuffix=void 0,this.headerMetadata=void 0,this.headerCustom=void 0,this.lastRenderedHeaderHTML=void 0,e||(this.cachedHeaderHTML=void 0),this.errorWrapper?.remove(),this.errorWrapper=void 0,this.spriteSVG=void 0,this.themeCSSStyle=void 0,this.appliedThemeCSS=void 0,this.hasAdoptedThemeCSS=!1,this.unsafeCSSStyle=void 0,this.appliedUnsafeCSS=void 0,this.placeHolder?.remove(),this.placeHolder=void 0,e?this.fileRenderer.recycle():(this.fileRenderer.cleanUp(),this.workerManager=void 0,this.file=void 0,this.editSession=void 0,this.renderedFile=void 0),this.enabled=!1}virtualizedSetup(){this.enabled=!0,this.workerManager?.subscribeToThemeChanges(this)}hydrate(e){const{fileContainer:t,prerenderedHTML:n,preventEmit:r=!1,file:s,lineAnnotations:o}=e;if(!this.enabled)throw new Error("File.hydrate: attempting to call hydrate after cleaned up");if(this.fileContainer!=null)throw new Error("File.hydrate: hydrate can only be called before the instance has rendered or hydrated");this.hydrateElements(t,n);const a=this.editor!=null;a||Pt(this.pre,s,this.options.collapsed)||Dt(this.headerElement,s,this.options.disableFileHeader)?this.render({...e,forceRender:a||e.forceRender,preventEmit:!0}):this.hydrationSetup({file:s,lineAnnotations:o}),r||this.emitPostRender()}hydrateElements(e,t){this.fileContainer!==e&&this.emitPostRender(!0),nt(e,t);for(const n of Array.from(e.shadowRoot?.children??[])){if(n instanceof SVGElement){this.spriteSVG=n;continue}if(n instanceof HTMLElement){if(n instanceof HTMLPreElement){this.pre=n,this.appliedPreAttributes=void 0;continue}if(n instanceof HTMLStyleElement&&n.hasAttribute("data-theme-css")){this.themeCSSStyle=n;continue}if(n instanceof HTMLStyleElement&&n.hasAttribute("data-unsafe-css")){this.unsafeCSSStyle=n,this.appliedUnsafeCSS=n.textContent;continue}if("diffsHeader"in n.dataset){this.headerElement=n,this.lastRenderedHeaderHTML=void 0;continue}}}this.pre!=null&&(this.syncCodeNodeFromPre(this.pre),this.pre.removeAttribute("data-dehydrated")),this.fileContainer=e,this.hydrateMeasuredScrollbar()}hydrationSetup({file:e,lineAnnotations:t}){this.lineAnnotations=t??this.lineAnnotations,this.file=e,this.fileRenderer.setOptions(Le(this.options)),this.syncInteractionOptions(),this.pre!=null&&(this.fileRenderer.hydrate(e),this.renderedFile=e,this.renderAnnotations(),this.renderGutterUtility(),this.injectUnsafeCSS(),this.managersDirty=!0,this.flushManagers())}getOrCreateLineCache(e=this.getLatestFile()){return e!=null?this.fileRenderer.getOrCreateLineCache(e):Ot}updateBuffers(e){this.pre!=null&&this.applyBuffers(this.pre,e)}syncRenderViewToEditor(){const{editor:e,fileContainer:t,renderRange:n}=this,r=this.getLatestAnnotations(),s=this.getLatestFile();if(e==null||t==null||s==null)return;const o=d=>{!this.enabled||this.editor!==e||this.fileContainer!==t||this.getLatestFile()!==s||e.__syncRenderView({highlighter:d,fileContainer:t,file:s,lineAnnotations:r,renderRange:n,externalDocument:this.editSession?.externalReplacement===!0})},a=this.getTheme(),l=s.lang??Y(s.name),h=ie({theme:a,lang:l});h!=null?o(h):be({themes:xe(a),langs:Array.from(new Set(["text",l])),preferredHighlighter:this.workerManager?.getPreferredHighlighter()??this.options.preferredHighlighter}).then(o)}__acknowledgeDocumentUpdate(){this.editSession!=null&&(this.editSession.externalReplacement=!1)}__acceptEditorChange(e){const{lineAnnotations:t}=e;t!=null&&this.syncEditSessionAnnotationsFromEditor(t)}emitEditChange(e){const{onEditChange:t}=this.options;t?.(e)}__captureDocumentSessionState(){}__attachEditor(e){if(this.editor!=null)throw new Error("File.__attachEditor: an editor is already attached");this.editor=e;const t=()=>{this.editor=void 0,this.fileRenderer.endEditSession()};try{return this.resumeEditorRendering(e),t}catch(n){throw t(),n}}__resumeEditor(e){if(this.editor!==e)throw new Error("File.__resumeEditor: editor association changed");this.resumeEditorRendering(e)}resumeEditorRendering(e){this.editSession!=null?this.fileRenderer.beginEditSession(this.editSession.file):this.file!=null&&this.installEditSession(this.file,e.__getDocumentContents(this.file));const t=this.editSession?.file;this.fileRenderer.editorRenderReady()?(this.fileRenderer.fileCache===t&&(this.renderedFile=t),this.syncRenderViewToEditor()):this.rerender()}__completeEditSession(e,t){this.settleEditSession(t==="install",e)}settleEditSession(e,t){const{editSession:n,file:r,lineAnnotations:s}=this;if(n==null||r==null)return;const{file:o,annotations:a}=n;if(this.editor!=null)throw new Error("File.__completeEditSession: detach the editor before completing the session");const l=a?.current;let h,d=!1,u;if(t==null)throw new Error("File.__completeEditSession: editor is required for completion");const c={...o},f={file:c,editor:t,originalFile:r,lineAnnotations:l,originalLineAnnotations:s};Object.freeze(f);try{if(t.__emitEditComplete(f),this.options.onEditComplete?.(f)==="accept"){if(c.cacheKey!=null&&c.cacheKey===r.cacheKey)throw new Error("File.__completeEditSession: an accepted file must not reuse the replaced file cacheKey");h=c}}catch(S){d=!0,u=S}e&&h!=null&&(this.file=h,l!=null&&(this.lineAnnotations=l)),this.editSession=void 0;const{renderedFile:p,file:g}=this;if(this.fileRenderer.endEditSession(g),p!=null&&g!=null&&p!==g&&R(p,g)&&(this.renderedFile=g),e&&this.fileContainer!=null&&this.rerender(),d)throw u}applyDocumentChange(e,t){const n=this.editSession?.file;if(n==null)throw new Error("File.applyDocumentChange: requires an active edit session");this.fileRenderer.beginEditSession(n),this.fileRenderer.applyDocumentChange(e),t!=null&&this.syncEditSessionAnnotationsFromEditor(t)}applySuspendedDocumentChange(e,t){this.editSession!=null&&(this.applyDocumentChange(e,t),this.fileRenderer.clearRenderCache())}updateRenderCache(e,t,n){const r=this.editSession?.file;if(r==null)throw new Error("File.updateRenderCache: requires an active edit session");this.fileRenderer.beginEditSession(r),this.fileRenderer.updateRenderCache(e,t,n?.lineCountChangeInFlight)}render({file:e,fileContainer:t,forceRender:n=!1,preventEmit:r=!1,containerWrapper:s,deferManagers:o=!1,lineAnnotations:a,renderRange:l}){if(!this.enabled)throw new Error("File.render: attempting to call render after cleaned up");this.editor?.__postponeBgTokenizeToNextFrame();const{collapsed:h=!1,themeType:d="system"}=this.options,u=h?void 0:l,c=this.renderRange,f=this.hasThemeChanged(),p=a!=null&&(a.length>0||this.getLatestAnnotations().length>0)?this.isNewAnnotations(a):!1,g=!R(this.file,e);g&&this.updateExternalFile(e,a);const S=this.getLatestFile(e)??e;if(!h&&!n&&we(u,this.renderRange)&&!g&&!p&&!f){const m=this.applyCachedThemeState(d);return m&&this.finalizeRender(),m}this.renderRange=u,g&&(this.cachedHeaderHTML=void 0),this.fileRenderer.setOptions(Le(this.options)),this.syncInteractionOptions(),a!=null&&this.setLineAnnotations(a),this.fileRenderer.setLineAnnotations(this.getLatestAnnotations());const{disableErrorHandling:H=!1,disableFileHeader:A=!1}=this.options;if(A&&(this.headerElement!=null&&(this.headerElement.remove(),this.headerElement=void 0,this.lastRenderedHeaderHTML=void 0),this.clearHeaderSlots()),t=this.getOrCreateFileContainerNode(t,s),this.applyCachedThemeState(d),h){this.removeRenderedCode(),this.clearAuxiliaryNodes();try{const m=this.fileRenderer.renderFile(S,Ve);m!=null&&this.applyThemeState(t,m.themeStyles,d,m.baseThemeType),m?.headerAST!=null&&this.applyHeaderToDOM(m.headerAST,t,m.file),this.renderedFile=m?.file??S,this.injectUnsafeCSS()}catch(m){if(H)throw m;console.error(m),m instanceof Error&&this.applyErrorToDOM(m,t)}return this.finalizeRender(),r||this.emitPostRender(),!0}try{const m=this.getOrCreatePreNode(t);if(!this.canPartiallyRender(n,p,g||f||!R(this.renderedFile,S))||!this.applyPartialRender(S,c,u)){const y=this.fileRenderer.renderFile(S,u);if(y==null)return this.workerManager?.isInitialized()===!1&&this.workerManager.isWorkingPool()&&this.workerManager.initialize().catch(()=>{}).then(()=>this.rerender()),!1;this.applyThemeState(t,y.themeStyles,d,y.baseThemeType),y.headerAST!=null&&this.applyHeaderToDOM(y.headerAST,t,y.file),this.applyFullRender(y,m),this.renderedFile=y.file}this.applyBuffers(m,u),this.injectUnsafeCSS(),this.renderAnnotations(),this.renderGutterUtility(),this.managersDirty=!0,o||this.flushManagers(),this.finalizeRender(),this.editor!=null&&this.syncRenderViewToEditor()}catch(m){if(H)throw m;console.error(m),m instanceof Error&&this.applyErrorToDOM(m,t)}return r||this.emitPostRender(),!0}finalizeRender(){}emitPostRender(e=!1){const{fileContainer:t,options:{onPostRender:n}}=this;if(e){if(!this.mounted||(this.mounted=!1,t==null))return;n?.(t,this,"unmount");return}if(t==null)return;const r=this.mounted?"update":"mount";this.mounted=!0,n?.(t,this,r)}removeRenderedCode(){this.resizeManager.cleanUp(),this.interactionManager.cleanUp(),this.bufferBefore?.remove(),this.bufferBefore=void 0,this.bufferAfter?.remove(),this.bufferAfter=void 0,this.code?.remove(),this.code=void 0,this.pre?.remove(),this.pre=void 0,this.appliedPreAttributes=void 0,this.lastRowCount=void 0}clearAuxiliaryNodes(){for(const{element:e}of this.annotationCache.values())e.remove();this.annotationCache.clear(),this.gutterUtilityContent?.remove(),this.gutterUtilityContent=void 0}canPartiallyRender(e,t,n){return!(e||t||n)}renderPlaceholder(e){if(this.fileContainer==null)return!1;if(this.emitPostRender(!0),this.cleanChildNodes(),this.placeHolder==null){const t=this.fileContainer.shadowRoot??this.fileContainer.attachShadow({mode:"open"});this.placeHolder=document.createElement("div"),this.placeHolder.dataset.placeholder="",t.appendChild(this.placeHolder)}return this.setPlaceholderHeight(e)}setPlaceholderHeight(e){return this.placeHolder==null?!1:(this.placeHolder.style.setProperty("height",`${e}px`),!0)}async primeHighlightCache(e=this.file){const{workerManager:t}=this;if(e==null||t==null||!t.isWorkingPool()||e.cacheKey==null||X(e))return;const n=this.options.tokenizeMaxLength??1e5;this.fileRenderer.getOrCreateLineCache(e).length>n||await t.primeFileHighlightCache(e).catch(r=>{Et(r)||console.error(r)})}cleanChildNodes(){this.resizeManager.cleanUp(),this.interactionManager.cleanUp(),this.clearAuxiliaryNodes(),this.bufferAfter?.remove(),this.bufferBefore?.remove(),this.code?.remove(),this.errorWrapper?.remove(),this.headerElement?.remove(),this.headerPrefix?.remove(),this.headerFilenameSuffix?.remove(),this.headerMetadata?.remove(),this.headerCustom?.remove(),this.pre?.remove(),this.spriteSVG?.remove(),this.themeCSSStyle?.remove(),this.unsafeCSSStyle?.remove(),this.bufferAfter=void 0,this.bufferBefore=void 0,this.code=void 0,this.errorWrapper=void 0,this.headerElement=void 0,this.headerPrefix=void 0,this.headerFilenameSuffix=void 0,this.headerMetadata=void 0,this.headerCustom=void 0,this.pre=void 0,this.spriteSVG=void 0,this.themeCSSStyle=void 0,this.appliedThemeCSS=void 0,this.hasAdoptedThemeCSS=!1,this.unsafeCSSStyle=void 0,this.appliedUnsafeCSS=void 0,this.lastRenderedHeaderHTML=void 0,this.lastRowCount=void 0,this.mounted=!1}renderAnnotations(){if(this.isContainerManaged||this.fileContainer==null){for(const{element:r}of this.annotationCache.values())r.remove();this.annotationCache.clear();return}const e=new Map(this.annotationCache),{renderAnnotation:t}=this.options,n=this.getLatestAnnotations();if(t!=null&&n.length>0)for(const[r,s]of n.entries()){const o=this.getAnnotationSlotName(s),a=`${r}-${o}`;let l=this.annotationCache.get(a);if(l==null||!Nt(s,l.annotation)){l?.element.remove();const h=t(s);if(h==null)continue;l={element:st(o),annotation:s},l.element.appendChild(h),this.fileContainer.appendChild(l.element),this.annotationCache.set(a,l)}e.delete(a)}for(const[r,{element:s}]of e.entries())this.annotationCache.delete(r),s.remove()}renderGutterUtility(){const{renderGutterUtility:e}=this.options;if(this.fileContainer==null||e==null){this.gutterUtilityContent?.remove(),this.gutterUtilityContent=void 0;return}const t=e(this.interactionManager.getHoveredLine);if(t!=null&&this.gutterUtilityContent!=null)return;if(t==null){this.gutterUtilityContent?.remove(),this.gutterUtilityContent=void 0;return}const n=rt();n.appendChild(t),this.fileContainer.appendChild(n),this.gutterUtilityContent=n}injectUnsafeCSS(){const{unsafeCSS:e}=this.options,t=this.fileContainer?.shadowRoot;if(t!=null){if(e==null||e===""){this.unsafeCSSStyle!=null&&(this.unsafeCSSStyle.remove(),this.unsafeCSSStyle=void 0),this.appliedUnsafeCSS=void 0;return}this.unsafeCSSStyle?.parentNode===t&&this.appliedUnsafeCSS===e||(this.unsafeCSSStyle??=ot(),this.unsafeCSSStyle.parentNode!==t&&t.appendChild(this.unsafeCSSStyle),this.unsafeCSSStyle.textContent=at(e),this.appliedUnsafeCSS=e)}}applyThemeState(e,t,n,r){const s=e.shadowRoot??e.attachShadow({mode:"open"}),o=r??n,a=this.getTheme(),l=typeof a=="string"?a:{...a},h=fe(s);if(this.themeCSSStyle?.parentNode===s&&this.appliedThemeCSS?.themeStyles===t&&this.appliedThemeCSS.themeType===o&&this.appliedThemeCSS.scrollbarGutter===h){this.appliedThemeCSS.theme=l;return}if(this.hasAdoptedThemeCSS&&this.themeCSSStyle?.parentNode===s){this.hasAdoptedThemeCSS=!1,this.appliedThemeCSS={theme:l,themeStyles:t,themeType:o,baseThemeType:r,scrollbarGutter:h};return}this.themeCSSStyle=lt({shadowRoot:s,currentNode:this.themeCSSStyle,themeCSS:ht(t,o,h)}),this.appliedThemeCSS=this.themeCSSStyle!=null?{theme:l,themeStyles:t,themeType:o,baseThemeType:r,scrollbarGutter:h}:void 0}hydrateMeasuredScrollbar(){const e=this.fileContainer?.shadowRoot;e==null||this.themeCSSStyle==null||(this.themeCSSStyle.textContent=dt(this.themeCSSStyle.textContent??"",fe(e)))}shouldGuardRebuildScroll(){return this.editor!=null&&ct()}applyFullRender(e,t){this.cleanupErrorWrapper(),this.applyPreNodeAttributes(t,e);const n=this.code=ut({code:this.code}),r=this.fileRenderer.renderCodeAST(e);this.editor?.__captureFocusForDOMReplacement();const s=()=>{if(n.childElementCount>=2)for(let o=0;o<2;o++){const a=n.children[o],l=r[o];a.innerHTML=V(l.children),a.style.cssText=l.properties.style}else n.innerHTML=V(r);t.contains(n)||t.replaceChildren(n)};this.shouldGuardRebuildScroll()?ft(t,s):s(),this.lastRowCount=e.rowCount}applyPartialRender(e,t,n){if(t==null||n==null)return!1;const{code:r}=this,s=r!=null?this.getColumns(r):void 0;if(r==null||s==null)return!1;const o=t.startingLine,a=n.startingLine,l=t.totalLines===1/0?Number.POSITIVE_INFINITY:o+t.totalLines,h=n.totalLines===1/0?Number.POSITIVE_INFINITY:a+n.totalLines,d=Math.max(o,a),u=Math.min(l,h);if(u<=d)return!1;if(!this.trimDOMToOverlap(s.gutter,d,u)||!this.trimDOMToOverlap(s.content,d,u))throw new Error("File.applyPartialRender: failed to trim to overlap");let{length:c}=s.content.children;const f=(H,A)=>{if(!(A<=0))return this.fileRenderer.renderFile(e,{startingLine:H,totalLines:A,bufferBefore:0,bufferAfter:0})},p=a<d?f(a,d-a):void 0;if(p===void 0&&a<d)return!1;const g=h===Number.POSITIVE_INFINITY?Number.POSITIVE_INFINITY:Math.max(0,h-u),S=h>u?f(u,g):void 0;return S===void 0&&h>u?!1:(this.cleanupErrorWrapper(),p!=null&&(s.gutter.insertAdjacentHTML("afterbegin",this.fileRenderer.renderPartialHTML(p.gutterAST)),s.content.insertAdjacentHTML("afterbegin",this.fileRenderer.renderPartialHTML(p.contentAST)),c+=p.rowCount),S!=null&&(s.gutter.insertAdjacentHTML("beforeend",this.fileRenderer.renderPartialHTML(S.gutterAST)),s.content.insertAdjacentHTML("beforeend",this.fileRenderer.renderPartialHTML(S.contentAST)),c+=S.rowCount),this.lastRowCount!==c&&(s.gutter.style.setProperty("grid-row",`span ${c}`),s.content.style.setProperty("grid-row",`span ${c}`),this.lastRowCount=c),!0)}getColumns(e){const t=e.children[0],n=e.children[1];if(!(!(t instanceof HTMLElement)||!(n instanceof HTMLElement)||t.dataset.gutter==null||n.dataset.content==null))return{gutter:t,content:n}}trimDOMToOverlap(e,t,n){const r=this.getDOMBoundaryIndices(e,[t,n]),s=r.get(t)??e.children.length,o=r.get(n)??e.children.length;if(s>o)return!1;for(let a=e.children.length-1;a>=o;a-=1)e.children[a]?.remove();for(let a=s-1;a>=0;a-=1)e.children[a]?.remove();return!0}getDOMBoundaryIndices(e,t){const n=[...new Set(t)].sort((l,h)=>l-h),r=new Map;if(n.length===0)return r;let s=0,o=n[s];const{children:a}=e;o===0&&(r.set(0,0),s+=1,o=n[s]);for(let l=0;l<a.length;l+=1){const h=a[l];if(!(h instanceof HTMLElement))continue;const d=this.getLineIndexFromDOMNode(h);if(d!=null){for(;o!=null&&d>=o;)r.set(o,l),s+=1,o=n[s];if(s>=n.length)break}}for(const l of n)r.has(l)||r.set(l,a.length);return r}getLineIndexFromDOMNode(e){const t=e.dataset.lineIndex;if(t==null)return;const n=Number(t);return Number.isNaN(n)?void 0:n}applyBuffers(e,t){if(t==null||this.shouldDisableVirtualizationBuffers()){this.bufferBefore!=null&&(this.bufferBefore.remove(),this.bufferBefore=void 0),this.bufferAfter!=null&&(this.bufferAfter.remove(),this.bufferAfter=void 0);return}t.bufferBefore>0?(this.bufferBefore==null&&(this.bufferBefore=document.createElement("div"),this.bufferBefore.dataset.virtualizerBuffer="before",e.before(this.bufferBefore)),this.bufferBefore.style.setProperty("height",`${t.bufferBefore}px`),this.bufferBefore.style.setProperty("contain","strict")):this.bufferBefore!=null&&(this.bufferBefore.remove(),this.bufferBefore=void 0),t.bufferAfter>0?(this.bufferAfter==null&&(this.bufferAfter=document.createElement("div"),this.bufferAfter.dataset.virtualizerBuffer="after",e.after(this.bufferAfter)),this.bufferAfter.style.setProperty("height",`${t.bufferAfter}px`),this.bufferAfter.style.setProperty("contain","strict")):this.bufferAfter!=null&&(this.bufferAfter.remove(),this.bufferAfter=void 0)}shouldDisableVirtualizationBuffers(){return this.options.disableVirtualizationBuffers??!1}applyHeaderToDOM(e,t,n){this.cleanupErrorWrapper(),this.placeHolder?.remove(),this.placeHolder=void 0;const r=this.cachedHeaderHTML??V(e);if(this.cachedHeaderHTML=r,r!==this.lastRenderedHeaderHTML){const h=document.createElement("div");h.innerHTML=r;const d=h.firstElementChild;if(!(d instanceof HTMLElement))return;this.headerElement!=null?t.shadowRoot?.replaceChild(d,this.headerElement):t.shadowRoot?.prepend(d),this.headerElement=d,this.lastRenderedHeaderHTML=r}if(this.isContainerManaged)return;const{renderHeaderPrefix:s,renderHeaderFilenameSuffix:o,renderCustomHeader:a,renderHeaderMetadata:l}=this.options;if(a!=null){const h=a(n)??void 0;this.headerCustom=this.upsertHeaderSlotElement(t,this.headerCustom,Ae,h),this.headerPrefix?.remove(),this.headerFilenameSuffix?.remove(),this.headerMetadata?.remove(),this.headerPrefix=void 0,this.headerFilenameSuffix=void 0,this.headerMetadata=void 0}else{const h=s?.(n)??void 0,d=o?.(n)??void 0,u=l?.(n)??void 0;this.headerPrefix=this.upsertHeaderSlotElement(t,this.headerPrefix,Pe,h),this.headerFilenameSuffix=this.upsertHeaderSlotElement(t,this.headerFilenameSuffix,De,d),this.headerMetadata=this.upsertHeaderSlotElement(t,this.headerMetadata,_e,u),this.headerCustom?.remove(),this.headerCustom=void 0}}clearHeaderSlots(){this.headerPrefix?.remove(),this.headerFilenameSuffix?.remove(),this.headerMetadata?.remove(),this.headerCustom?.remove(),this.headerPrefix=void 0,this.headerFilenameSuffix=void 0,this.headerMetadata=void 0,this.headerCustom=void 0}upsertHeaderSlotElement(e,t,n,r){if(r==null){t?.remove();return}const s=t??this.createHeaderSlotElement(n);return t==null&&e.appendChild(s),this.replaceHeaderSlotContent(s,r),s}replaceHeaderSlotContent(e,t){e.replaceChildren(),t instanceof Element?e.appendChild(t):e.innerText=`${t}`}createHeaderSlotElement(e){const t=document.createElement("div");return t.slot=e,t}getOrCreateFileContainerNode(e,t){const{fileContainer:n}=this,r=e??n??document.createElement("diffs-container"),s=n!==r;return n!=null&&s&&this.editor?.__captureFocusForDOMReplacement(),s&&this.emitPostRender(!0),this.fileContainer=r,n!=null&&s&&(this.lastRenderedHeaderHTML=void 0,this.headerElement=void 0),t!=null&&this.fileContainer.parentNode!==t&&t.appendChild(this.fileContainer),s&&this.adoptReusableShellElements(this.fileContainer),this.ensureSpriteSVG(this.fileContainer),this.fileContainer}adoptReusableShellElements(e){const{shadowRoot:t}=e;if(t!=null)for(const n of t.children)n instanceof SVGElement?this.spriteSVG??=n:ge(n)&&n.hasAttribute("data-theme-css")?(this.themeCSSStyle??=n,this.hasAdoptedThemeCSS=!0):ge(n)&&n.hasAttribute("data-unsafe-css")&&(this.unsafeCSSStyle??=n,this.appliedUnsafeCSS??=this.options.unsafeCSS??void 0)}ensureSpriteSVG(e){const t=e.shadowRoot??e.attachShadow({mode:"open"});if(this.spriteSVG==null){const n=document.createElement("div");n.innerHTML=gt;const r=n.firstChild;r instanceof SVGElement&&(this.spriteSVG=r)}this.spriteSVG!=null&&this.spriteSVG.parentNode!==t&&t.appendChild(this.spriteSVG)}getOrCreatePreNode(e){const t=e.shadowRoot??e.attachShadow({mode:"open"});return this.pre==null?(this.pre=document.createElement("pre"),this.appliedPreAttributes=void 0,this.code=void 0,t.appendChild(this.pre)):this.pre.parentNode!==t&&(this.editor?.__captureFocusForDOMReplacement(),e.shadowRoot?.appendChild(this.pre),this.appliedPreAttributes=void 0),this.placeHolder?.remove(),this.placeHolder=void 0,this.pre}syncCodeNodeFromPre(e){this.code=void 0;for(const t of Array.from(e.children))if(t instanceof HTMLElement&&t.hasAttribute("data-code")){this.code=t;return}}applyPreNodeAttributes(e,{totalLines:t}){const{overflow:n="scroll",disableLineNumbers:r=!1}=this.options,s={type:"file",split:!1,overflow:n,disableLineNumbers:r,diffIndicators:"none",disableBackground:!0,totalLines:t};pt(s,this.appliedPreAttributes)||(mt(e,s),this.appliedPreAttributes=s)}applyErrorToDOM(e,t){this.cleanupErrorWrapper(),this.pre?.remove(),this.pre=void 0,this.appliedPreAttributes=void 0;const n=t.shadowRoot??t.attachShadow({mode:"open"});this.errorWrapper??=document.createElement("div"),this.errorWrapper.dataset.errorWrapper="",this.errorWrapper.textContent="",n.appendChild(this.errorWrapper);const r=document.createElement("div");r.dataset.errorMessage="",r.innerText=e.message,this.errorWrapper.appendChild(r);const s=document.createElement("pre");s.dataset.errorStack="",s.innerText=e.stack??"No Error Stack",this.errorWrapper.appendChild(s)}cleanupErrorWrapper(){this.errorWrapper?.remove(),this.errorWrapper=void 0}};function Pt(i,e,t=!1){return!t&&i==null&&e!=null}function Dt(i,e,t=!1){return i==null&&e!=null&&!t}const _t=5e3,J=new Map;let Bt=-1;function Ut(i,e){return(i.overflow??"scroll")!==(e.overflow??"scroll")||(i.collapsed??!1)!==(e.collapsed??!1)||(i.disableLineNumbers??!1)!==(e.disableLineNumbers??!1)||(i.disableFileHeader??!1)!==(e.disableFileHeader??!1)||i.unsafeCSS!==e.unsafeCSS}var Wt=class extends Me{virtualizer;metrics;__id=`virtualized-file:${++Bt}`;renderType="virtualized";top;height=0;cache={heights:new Map,checkpoints:[],fileAnnotationHeight:0,ghostTextRows:J};pendingRender;isVisible=!1;isSetup=!1;layoutDirty=!0;forceRenderOverride;currentCollapsed;constructor(i,e,t=Be,n,r=!1){super(i,n,r),this.virtualizer=e,this.metrics=t}setMetrics(i,e=!1){const t=xt(i);!e&&St(this.metrics,t)||(this.metrics=t,this.resetLayoutCache())}setLineAnnotations(i){this.syncLineAnnotations(i)&&(this.forceRenderOverride=!0)}syncLineAnnotations(i){return i==null||!this.isNewAnnotations(i)||i.length===0&&this.getLatestAnnotations().length===0?!1:(super.setLineAnnotations(i),!0)}syncEditSessionAnnotationsFromEditor(i){return super.syncEditSessionAnnotationsFromEditor(i)?(this.forceRenderOverride=!0,!0):!1}hasLineAnnotations(){return this.getLatestAnnotations().some(i=>i.lineNumber>0)}hasUniformLineHeights(){const{overflow:i="scroll"}=this.options;return i==="scroll"&&!this.hasLineAnnotations()&&this.cache.heights.size===0}getLineHeight(i,e=!1){const t=this.cache.heights.get(i);if(t!=null)return t;const n=e?2:1;return this.metrics.lineHeight*n}setOptions(i){if(this.isAdvancedMode())throw new Error("VirtualizedFile.setOptions cannot be used inside CodeView. Update CodeView options instead.");if(i==null)return;const{options:e}=this,t=!Ee(e,i),n=Ut(e,i);super.setOptions(i),n&&this.resetLayoutCache(!0),t&&(this.forceRenderOverride=!0),t&&this.virtualizer.instanceChanged(this,n)}setThemeType(i){if(this.isAdvancedMode())throw new Error("VirtualizedFile.setThemeType cannot be used inside CodeView. Update CodeView options instead.");super.setThemeType(i)}resetLayoutCache(i=!1,e=!0){this.layoutDirty=!0,this.cache.fileAnnotationHeight=0,this.cache.heights.size>0&&this.cache.heights.clear(),this.cache.checkpoints.length>0&&(this.cache.checkpoints.length=0),this.cache.ghostTextRows=J,this.renderRange!=null&&e&&(this.renderRange=void 0),i&&this.isSimpleMode()&&this.computeApproximateSize()}applyGhostTextRows(i){const{heights:e,ghostTextRows:t}=this.cache;if(t===i)return!1;const{lineHeight:n}=this.metrics;let r=!1;for(const s of new Set([...t.keys(),...i.keys()])){const o=t.get(s)??0,a=i.get(s)??0;if(a===o)continue;const l=(e.get(s)??n)-o*n+a*n;l===n?e.delete(s):e.set(s,l),r=!0}return this.cache.ghostTextRows=i,r}reconcileHeights(){let i=!1;if(this.fileContainer==null||this.getLayoutFile()==null)return this.height!==0&&(i=!0),this.height=0,i;const{overflow:e="scroll"}=this.options;this.top=this.getVirtualizedTop();const t=this.editor?.__getGhostTextRows()??J;i=this.applyGhostTextRows(t);const n=e!=="scroll"||this.getLatestAnnotations().length>0||this.isResizeDebuggingEnabled();if(this.placeHolder!=null||!n&&this.cache.heights.size===0&&this.cache.fileAnnotationHeight===0)return i&&(this.computeApproximateSize(!0),this.setPlaceholderHeight(this.height)),i;const{lineHeight:r}=this.metrics;if(this.code==null)return i;const s=this.code.children[1];if(!(s instanceof HTMLElement))return i;if(this.renderRange!=null&&He(this.renderRange)){const o=Gt(s)??0;o!==this.cache.fileAnnotationHeight&&(this.cache.fileAnnotationHeight=o,i=!0)}for(const o of s.children){if(!(o instanceof HTMLElement))continue;const a=o.dataset.lineIndex;if(a==null)continue;const l=Number(a),h=(t.get(l)??0)*r,d=this.cache.heights.get(l);if(!n&&(d==null||d===r+h))continue;let u=o.getBoundingClientRect().height+h,c=!1;o.nextElementSibling instanceof HTMLElement&&("lineAnnotation"in o.nextElementSibling.dataset||"noNewline"in o.nextElementSibling.dataset)&&("noNewline"in o.nextElementSibling.dataset&&(c=!0),u+=o.nextElementSibling.getBoundingClientRect().height);const f=this.getLineHeight(l,c);u!==f&&(i=!0,u===this.metrics.lineHeight*(c?2:1)?this.cache.heights.delete(l):this.cache.heights.set(l,u))}return(i||this.isResizeDebuggingEnabled())&&this.computeApproximateSize(!0),i}onRender=i=>this.fileContainer==null||this.file==null?!1:(i&&(this.top=this.getVirtualizedTop()),this.render({file:this.file}));updateCodeViewLayout(i,e,t,n){const r=!R(this.file,i);r&&this.updateExternalFile(i,n);const{pendingRenderFile:s,layoutFileChanged:o,renderedFileChanged:a,annotationsChanged:l}=this.updatePendingRender(i,n);let h=t?.resetFileLayoutCache===!0||o;t?.metrics!=null&&(this.metrics=t.metrics,h=!0);const{collapsed:d=!1}=this.options;return this.currentCollapsed!==d&&(this.currentCollapsed=d,h=!0),h&&this.resetLayoutCache(),r&&(this.layoutDirty=!0),!this.forceRenderOverride&&(r||a||l)&&(this.forceRenderOverride=!0),this.top=e,this.computeApproximateSize(!1,s),this.height}getLayoutFile(){return this.pendingRender?.file??this.getRenderedFile()}getLinePosition(i){const e=this.getLayoutFile();if(e==null||i<1)return;const{disableFileHeader:t=!1,collapsed:n=!1}=this.options,r=this.fileRenderer.getLineCount(e)-1;if(n)return{top:Re(this.metrics,t),height:0};let s=j(this.metrics,t);if(r<0)return{top:s,height:0};const o=Math.min(Math.max(i-1,0),r),{lineHeight:a}=this.metrics;if(s+=this.cache.fileAnnotationHeight,this.hasUniformLineHeights())return{top:s+o*a,height:a};const l=this.getLayoutCheckpointBeforeLineIndex(o);s=l?.top??s;for(let h=l?.lineIndex??0;h<o;h++)s+=this.getLineHeight(h,!1);return{top:s,height:this.getLineHeight(o,!1)}}getEditorViewport(){return this.virtualizer.type==="simple"?this.virtualizer.getRoot():this.virtualizer.getContainerElement()}getNumericScrollAnchor(i){const e=this.getLayoutFile();if(e==null||this.renderRange==null)return;const{disableFileHeader:t=!1,collapsed:n=!1}=this.options;if(n||this.renderRange.totalLines<=0)return;const r=this.fileRenderer.getLineCount(e)-1;if(r<0)return;const s=j(this.metrics,t),o=Math.min(this.renderRange.startingLine,r),a=Math.min(o+this.renderRange.totalLines-1,r);if(a<o)return;const{fileAnnotationHeight:l}=this.cache;if(this.hasUniformLineHeights()){const{lineHeight:d}=this.metrics,u=s+(o===0?l:this.renderRange.bufferBefore),c=o+Math.max(Math.ceil((i-u)/d),0);return c>a?void 0:{lineNumber:c+1,top:s+l+c*d}}let h=s+(o===0?l:this.renderRange.bufferBefore);for(let d=o;d<=a;d++){if(h>=i)return{lineNumber:d+1,top:h};h+=this.getLineHeight(d)}}getVirtualizedHeight(){return this.height}getAdvancedStickySpecs(i){const e=this.getLayoutFile();if(this.top==null||e==null)return;if(this.options.collapsed===!0)return{topOffset:this.top,height:this.height};const t=i!=null?this.computeRenderRangeFromWindow(e,this.top,i):this.renderRange;if(t==null)return;const{bufferBefore:n,bufferAfter:r,totalLines:s}=t;let o=0;if(s===0){const a=i??this.virtualizer.getWindowSpecs();this.top<a.top&&(o=r)}return{topOffset:this.top+n+o,height:this.height-(n+r)}}cleanUp(i=!1){const e=this.cache.ghostTextRows.size>0;e&&(this.layoutDirty=!0);const t=i&&this.isAdvancedMode()&&this.fileContainer!=null&&(e||!R(this.getRenderedFile(),this.getLatestFile()));this.fileContainer!=null&&this.isSimpleMode()&&this.getSimpleVirtualizer()?.disconnect(this.fileContainer),i||this.resetLayoutCache(),this.pendingRender=void 0,this.isSetup=!1,super.cleanUp(i),t&&this.virtualizer.instanceChanged(this,!0)}computeApproximateSize(i=!1,e=this.getLayoutFile()){const t=this.isResizeDebuggingEnabled();if(!i&&!this.layoutDirty&&!t)return;const n=this.height===0;if(this.height=0,this.cache.checkpoints=[],e==null){this.layoutDirty=!1;return}this.applyGhostTextRows(this.editor?.__getGhostTextRows()??J);const{disableFileHeader:r=!1,collapsed:s=!1}=this.options,{lineHeight:o}=this.metrics,a=this.fileRenderer.getLineCount(e);if(s){this.height+=Re(this.metrics,r),this.layoutDirty=!1;return}const l=j(this.metrics,r),h=ye(this.metrics);if(this.height+=l,this.height+=this.cache.fileAnnotationHeight,this.hasUniformLineHeights())this.height+=a*o;else for(let d=0;d<a;d++)this.addLayoutCheckpoint(d,this.height),this.height+=this.getLineHeight(d,!1);if(a>0&&(this.height+=h),this.fileContainer!=null&&t&&!n){const d=this.fileContainer.getBoundingClientRect();d.height!==this.height?console.log("VirtualizedFile.computeApproximateSize: computed height doesnt match",{name:e.name,elementHeight:d.height,computedHeight:this.height}):console.log("VirtualizedFile.computeApproximateSize: computed height IS CORRECT")}this.layoutDirty=!1}setVisibility(i){this.isAdvancedMode()||this.fileContainer==null||(this.renderRange=void 0,i&&!this.isVisible?(this.top=this.getVirtualizedTop(),this.isVisible=!0):!i&&this.isVisible&&(this.isVisible=!1,this.rerender()))}rerender(){if(!this.enabled||this.file==null)return;const i=this.getLatestFile(),e=i==null?void 0:this.fileRenderer.getFileForNextRender(i);this.isSimpleMode()&&(this.pendingRender=void 0),this.forceRenderOverride=!0,this.virtualizer.instanceChanged(this,!R(this.getRenderedFile(),e))}syncGhostTextRows(){const i=this.getAdvancedVirtualizer();i!=null?(i.capturePendingLayoutAnchor(),this.layoutDirty=!0,i.instanceChanged(this,!0)):this.getSimpleVirtualizer()?.requestHeightReconcile(this)}applyDocumentChange(i,e,t=!1){const{renderRange:n}=this;this.getAdvancedVirtualizer()?.capturePendingLayoutAnchor(),super.applyDocumentChange(i,e),this.getSimpleVirtualizer()?.markDOMDirty(),this.resetLayoutCache(this.isSimpleMode(),!1);const r=this.getRenderedFile();if(!this.isSimpleMode())this.computeApproximateSize(!0);else if(t&&n!=null&&r!=null){const s=this.virtualizer.getWindowSpecs(),o=this.computeRenderRangeFromWindow(r,this.top??0,s);o.bufferAfter!==n.bufferAfter&&this.updateBuffers(o)}this.forceRenderOverride=!0,this.virtualizer.instanceChanged(this,!0)}render({fileContainer:i,file:e,forceRender:t=!1,lineAnnotations:n,...r}){const s=!R(this.file,e);s&&(this.updateExternalFile(e,n),this.cachedHeaderHTML=void 0);const{pendingRenderFile:o,layoutFileChanged:a,renderedFileChanged:l,annotationsChanged:h}=this.pendingRender!=null&&this.pendingRender.latestFile===(this.getLatestFile(e)??e)?{pendingRenderFile:this.pendingRender.file,layoutFileChanged:!1,renderedFileChanged:!1,annotationsChanged:this.syncLineAnnotations(n)}:this.updatePendingRender(e,n),{forceRenderOverride:d,isSetup:u}=this;if(this.forceRenderOverride=void 0,a&&this.resetLayoutCache(),i=this.getOrCreateFileContainerNode(i),u)this.top??=this.getVirtualizedTop(),this.layoutDirty&&this.isSimpleMode()&&(this.getSimpleVirtualizer()?.markDOMDirty(),this.computeApproximateSize(!1,o));else{this.computeApproximateSize(!1,o);const g=this.getSimpleVirtualizer();if(this.top??=this.getVirtualizedTop(),this.isAdvancedMode())this.isVisible=!0;else{if(g==null)throw new Error("VirtualizedFile.render: simple virtualizer is not available");g.connect(i,this),this.isVisible=g.isInstanceVisible(this.top??0,this.height)}this.isSetup=!0}if(!this.isVisible&&this.isSimpleMode()&&(!s||!u))return this.renderPlaceholder(this.height);const c=this.virtualizer.getWindowSpecs(),f=this.top??0,p=this.computeRenderRangeFromWindow(o,f,c);return super.render({file:e,fileContainer:i,renderRange:p,lineAnnotations:n,forceRender:(d??t)||h||l||s,...r})}finalizeRender(){if(this.getRenderedFile()!==this.pendingRender?.file)throw new Error("VirtualizedFile.render: rendered a different file than its prepared layout");this.pendingRender=void 0,this.isSimpleMode()&&this.getSimpleVirtualizer()?.requestHeightReconcile(this)}updatePendingRender(i,e){const t=this.getLatestFile(i)??i,n=this.getRenderedFile(),r=this.pendingRender?.file??n,s=this.fileRenderer.getFileForNextRender(t);return this.pendingRender={latestFile:t,file:s},{pendingRenderFile:s,annotationsChanged:this.syncLineAnnotations(e),layoutFileChanged:!R(r,s),renderedFileChanged:!R(n,s)}}syncVirtualizedTop(){this.top=this.getVirtualizedTop()}shouldDisableVirtualizationBuffers(){return this.isAdvancedMode()||super.shouldDisableVirtualizationBuffers()}shouldGuardRebuildScroll(){return!1}isSimpleMode(){return this.virtualizer.type==="simple"}isAdvancedMode(){return this.virtualizer.type==="advanced"}addLayoutCheckpoint(i,e){i%_t===0&&this.cache.checkpoints.push({lineIndex:i,top:e})}getLayoutCheckpointBeforeLineIndex(i){if(i<=0||this.cache.checkpoints.length===0)return;let e=0,t=this.cache.checkpoints.length-1,n;for(;e<=t;){const r=e+t>>1,s=this.cache.checkpoints[r];if(s==null)throw new Error("VirtualizedFile: invalid checkpoint index");s.lineIndex<=i?(n=s,e=r+1):t=r-1}return n}getLayoutCheckpointBeforeTop(i,e){let t=0,n=this.cache.checkpoints.length-1,r=-1;for(;t<=n;){const s=t+n>>1,o=this.cache.checkpoints[s];if(o==null)throw new Error("VirtualizedFile: invalid checkpoint index");o.top<=i?(r=s,t=s+1):n=s-1}if(e==null)return r>=0?this.cache.checkpoints[r]:void 0;for(let s=r;s>=0;s--){const o=this.cache.checkpoints[s];if(o==null)throw new Error("VirtualizedFile: invalid checkpoint index");if(o.lineIndex%e===0)return o}}getVirtualizedTop(){return this.virtualizer.type==="advanced"?this.virtualizer.getLocalTopForInstance(this):this.fileContainer!=null?this.virtualizer.getOffsetInScrollContainer(this.fileContainer):0}getSimpleVirtualizer(){return this.virtualizer.type==="simple"?this.virtualizer:void 0}getAdvancedVirtualizer(){return this.virtualizer.type==="advanced"?this.virtualizer:void 0}isResizeDebuggingEnabled(){return this.getSimpleVirtualizer()?.config.resizeDebugging??!1}computeRenderRangeFromWindow(i,e,{top:t,bottom:n}){const{disableFileHeader:r=!1}=this.options,{hunkLineCount:s,lineHeight:o}=this.metrics,a=this.fileRenderer.getLineCount(i),l=this.height,h=j(this.metrics,r),d=a>0?ye(this.metrics):0,{fileAnnotationHeight:u}=this.cache,c=h+u,f=Math.max(0,l-h-u-d),p=Ct(this.getLatestAnnotations()),g=e+h,S=u>0&&p&&g<n&&g+u>t;if(e<t-l||e>n)return{startingLine:0,totalLines:0,bufferBefore:0,bufferAfter:l-h-d};if(a<=s)return{startingLine:0,totalLines:s,bufferBefore:0,bufferAfter:0};const H=Math.ceil(Math.max(n-t,0)/o),A=Math.ceil(H/s)*s+s,m=A/s,y=(t+n)/2;if(this.hasUniformLineHeights()){const O=e+c,U=O+f;if(!S&&!(O<n&&U>t))return{startingLine:0,totalLines:0,bufferBefore:0,bufferAfter:l-h-d};const D=Math.floor(S&&y<e+c?0:(y-(e+c))/o),M=Math.floor(D/s)-Math.floor(m/2),Ne=Math.ceil(a/s),_=Math.max(0,Math.min(M,Ne))*s,oe=M<0?A+M*s:A,Oe=_===0?0:u+_*o,Ie=Math.min(oe,a-_);return{startingLine:_,totalLines:oe,bufferBefore:Oe,bufferAfter:Math.max(0,(a-_-Ie)*o)}}const P=m,E=[],L=this.getLayoutCheckpointBeforeTop(Math.max(0,t-e-A*o*2),s);let T=e+(L?.top??c),k=L?.lineIndex??0,z,C,w;const Q=L?.lineIndex??0;for(let O=Q;O<a;O++){const U=k%s===0,D=Math.floor(k/s);if(U&&(E[D]=T-(e+c),w!=null)){if(w<=0)break;w--}const M=this.getLineHeight(O,!1);T>t-M&&T<n&&(z??=D),T+M>y&&(C??=D),w==null&&T>=n&&U&&(w=P),k++,T+=M}if(z==null)if(S)z=0,C=0;else return{startingLine:0,totalLines:0,bufferBefore:0,bufferAfter:l-h-d};C??=z;const N=Math.round(C-m/2),Z=Math.max(0,Math.ceil(a/s)-m),ee=Math.max(0,Math.min(N,Z)),ne=ee*s,se=N<0?A+N*s:A,Fe=E[ee]??0,ke=ne===0?0:u+Fe,re=ee+se/s,ze=re<E.length?f-E[re]:f-(T-e-c);return{startingLine:ne,totalLines:se,bufferBefore:ke,bufferAfter:Math.max(0,ze)}}};function Gt(i){let e;for(const t of i.children)t instanceof HTMLElement&&t.dataset.lineAnnotation===vt&&(e=Math.max(e??0,t.getBoundingClientRect().height));return e}function jt({file:i,renderCustomHeader:e,renderHeaderPrefix:t,renderHeaderFilenameSuffix:n,renderHeaderMetadata:r,renderAnnotation:s,lineAnnotations:o,renderGutterUtility:a,getHoveredLine:l,getAnnotationSlotName:h=F}){const d=e?.(i),u=t?.(i),c=n?.(i),f=r?.(i);return v.jsxs(v.Fragment,{children:[d!=null?v.jsx("div",{slot:Ae,children:d}):v.jsxs(v.Fragment,{children:[u!=null&&v.jsx("div",{slot:"header-prefix",children:u}),c!=null&&v.jsx("div",{slot:"header-filename-suffix",children:c}),f!=null&&v.jsx("div",{slot:"header-metadata",children:f})]}),s!=null&&o?.map((p,g)=>v.jsx("div",{slot:h(p),children:s(p)},g)),a!=null&&v.jsx("div",{slot:"gutter-utility-slot",style:Rt,children:a(l)})]})}const Kt=typeof window>"u"?b.useEffect:b.useLayoutEffect;function $t({file:i,options:e,editorOptions:t,editStateKey:n,lineAnnotations:r,selectedLines:s,prerenderedHTML:o,metrics:a,hasGutterRenderUtility:l,hasCustomHeader:h,disableWorkerPool:d,edit:u,onEditChange:c,onEditComplete:f}){const p=yt(),g=s!==void 0,S=b.useContext(Lt),H=Tt(),A=W(C=>c?.(C)),m=c!=null?A:void 0,y=b.useRef(null),P=W(C=>{const w=f?.(C)??"reject";return w==="accept"&&(y.current={file:{installed:C.file,stale:C.originalFile},annotations:{installed:C.lineAnnotations,stale:C.originalLineAnnotations}}),w}),E=f!=null?P:void 0,L=b.useRef(null),T=b.useRef(null),k=W(()=>{if(H==null)throw new Error("File: EditContext is not attached");return H("file",t??{},n)}),z=W(C=>{if(C!=null){if(L.current!=null)throw new Error("File: An instance should not already exist when a node is created");p!=null?L.current=new Wt(te({controlledSelection:g,hasCustomHeader:h,hasGutterRenderUtility:l,onEditChange:m,onEditComplete:E,options:e}),p,a,d?void 0:S,!0):L.current=new Me(te({controlledSelection:g,hasCustomHeader:h,hasGutterRenderUtility:l,onEditChange:m,onEditComplete:E,options:e}),d?void 0:S,!0),u&&T.current==null&&(T.current=Te(L.current,k)),L.current.hydrate({file:i,fileContainer:C,lineAnnotations:r,prerenderedHTML:o})}else{if(L.current==null)throw new Error("File: A File instance should exist when unmounting");L.current.cleanUp(),L.current=null,T.current=null}});return Kt(()=>{const{current:C}=L;if(C==null)return;const w=te({controlledSelection:g,hasCustomHeader:h,hasGutterRenderUtility:l,onEditChange:m,onEditComplete:E,options:e}),Q=w!==void 0&&!Ee(C.options,w);if(C.setOptions(w),!u&&T.current!=null){const{current:Z}=T;T.current=null,Z()}const N=qt(i,r,y);C.render({file:N.file,lineAnnotations:N.lineAnnotations,forceRender:Q}),s!==void 0&&C.setSelectedLines(s),u&&T.current==null&&(T.current=Te(C,k))}),{ref:z,getHoveredLine:b.useCallback(()=>L.current?.getHoveredLine(),[]),getAnnotationSlotName:b.useCallback(C=>L.current?.getAnnotationSlotName(C)??F(C),[])}}function qt(i,e,t){const{current:n}=t;if(n==null)return{file:i,lineAnnotations:e};const{file:r,annotations:s}=n;let o=i;r!=null&&(R(i,r.stale)?o=r.installed:n.file=null);let a=e;return s!=null&&(e===s.stale?a=s.installed:n.annotations=null),n.file==null&&n.annotations==null&&(t.current=null),{file:o,lineAnnotations:a}}function te({options:i,controlledSelection:e,hasCustomHeader:t,hasGutterRenderUtility:n,onEditChange:r,onEditComplete:s}){return e||n||t||r!=null||s!=null?{...i,controlledSelection:e,renderCustomHeader:t?pe:i?.renderCustomHeader,renderGutterUtility:n?pe:i?.renderGutterUtility,onEditChange:r,onEditComplete:s}:i}function Te(i,e){const t=e();try{return t.edit(i)}catch(n){throw t.cleanUp(),n}}function ri({file:i,lineAnnotations:e,selectedLines:t,options:n,editorOptions:r,editStateKey:s,metrics:o,className:a,style:l,renderAnnotation:h,renderCustomHeader:d,renderHeaderPrefix:u,renderHeaderFilenameSuffix:c,renderHeaderMetadata:f,prerenderedHTML:p,renderGutterUtility:g,disableWorkerPool:S=!1,edit:H=!1,onEditChange:A,onEditComplete:m}){const{ref:y,getHoveredLine:P,getAnnotationSlotName:E}=$t({file:i,options:n,editorOptions:r,editStateKey:s,metrics:o,lineAnnotations:e,selectedLines:t,prerenderedHTML:p,hasGutterRenderUtility:g!=null,hasCustomHeader:d!=null,disableWorkerPool:S,edit:H,onEditChange:A,onEditComplete:m}),L=jt({file:i,renderAnnotation:h,renderCustomHeader:d,renderHeaderPrefix:u,renderHeaderFilenameSuffix:c,renderHeaderMetadata:f,renderGutterUtility:g,lineAnnotations:e,getHoveredLine:P,getAnnotationSlotName:E});return v.jsx(Ue,{ref:y,className:a,style:l,children:At(L,p)})}const oi=I.memo(function({jsonString:e,format:t="json",className:n,maxHeight:r="100%",initiallyExpandedDepth:s=2}){const{t:o}=We(),a=I.useRef(null),[l,h]=I.useState(null),d=I.useMemo(()=>{try{const f=e.trim();if(!f)return h(o("jsonTreeView.error.emptyJson")),null;const p=t==="jsonc"?Ft(f,{trailingCommas:!0}):f,g=JSON.parse(p);return h(null),g}catch(f){return h(f instanceof Error?f.message:o("jsonTreeView.error.invalidJson")),null}},[e,t,o]),u=I.useCallback(()=>{a.current?.expandAll()},[]),c=I.useCallback(()=>{a.current?.collapseAll()},[]);return l?v.jsx("div",{className:n,children:v.jsxs("div",{className:"oc-surface-code rounded-md border border-[var(--interactive-border)] bg-[var(--syntax-background)] p-4",children:[v.jsx("div",{className:"mb-1 font-medium text-foreground",children:o("jsonTreeView.error.invalidJsonTitle")}),v.jsx("div",{className:"font-mono text-xs text-muted-foreground",children:l})]})}):d===null?null:v.jsxs("div",{className:n,children:[v.jsxs("div",{className:"flex items-center gap-1 border-b border-[var(--interactive-border)] px-2 py-1",children:[v.jsxs(le,{variant:"ghost",size:"xs",onClick:u,className:"gap-1 text-xs text-muted-foreground",children:[v.jsx(he,{name:"arrow-down-s",className:"h-3 w-3"}),o("jsonTreeView.actions.expandAll")]}),v.jsxs(le,{variant:"ghost",size:"xs",onClick:c,className:"gap-1 text-xs text-muted-foreground",children:[v.jsx(he,{name:"arrow-up-s",className:"h-3 w-3"}),o("jsonTreeView.actions.collapseAll")]})]}),v.jsx("div",{className:"oc-surface-code bg-[var(--syntax-background)] py-1",style:{maxHeight:r,overflow:"auto"},children:v.jsx(Ge,{ref:a,data:d,maxHeight:r,initiallyExpandedDepth:s})})]})});export{ri as F,oi as J,Wt as V};
@@ -1 +1 @@
1
- import{f as j,j as D,R as S}from"./vendor-react-BUCujlKS.js";import{m as xt}from"./vendor-morphdom-B7dS_VPB.js";import{r as It,a as Pt}from"./vendor-beautiful-mermaid-DztCUpLZ.js";import{aZ as Qe,fs as Ft,bF as Oe,ft as Ot,aY as Wt,fu as De,fv as Bt,fw as Dt,fx as $t,fy as Ht,fz as qt,fA as Kt,b7 as et,aE as tt,bM as nt,u as rt,N as ot,a9 as Ut,aa as $e,fB as Vt,fC as zt,fD as jt,d0 as Gt,fE as Zt,c$ as Xt,fF as Yt,fG as Jt,dm as Qt}from"./useAppFontEffects-DAUhSLPu.js";import{ac as en,l as de,k as st,b0 as le,b1 as tn,u as U,ax as nn,a5 as rn,b2 as on,b3 as at,b4 as sn,b5 as an}from"./katex.min-u4DtE8E5.js";import{L as Ie,c as ln,s as cn,i as dn,r as un,g as mn,a as fn,b as pn}from"./markdownCore-D_5e0Wl7.js";import{a as hn,r as bn}from"./textMateThemeFromAppTheme-C-jxkZJj.js";import{s as K,c as wn,a as He,b as gn,d as kn,e as Me,f as yn,M as Re}from"./decorate-CpxLqoVw.js";import{p as En,i as An,a as Pe,b as vn,s as it}from"./vendor-yaml-CE-D_49-.js";import{o as Sn,a as Cn,s as Ln}from"./vendor-zod-DDir2TeQ.js";import{a as Mn}from"./openFenceIncremental-7wgnc2ZL.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-elkjs-BRwcR927.js";import"./vendor-entities-C3BA0AJP.js";import"./vendor-base-ui-CPKyhvxM.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-Bmi0tTrf.js";import"./vendor-tanstack-virtual-core-CdGDGrnp.js";import"./vendor-framer-motion-DxDVhOLc.js";import"./vendor-motion-dom-HXPOMxb7.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-codemirror-commands-dar6chwA.js";import"./vendor-codemirror-state-Dek9sMtw.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-B66jUSmE.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-codemirror-language-DyL0aCoH.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-streamparser-CmlTsbN2.js";import"./vendor-codemirror-lang-javascript-Cem6LjJ8.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-CIqXJolH.js";import"./vendor-codemirror-lang-json-C9rLLO0q.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-9qjxcVkg.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-D7VQUxeE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-Cikh4w2I.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-KulAIuMz.js";import"./vendor-codemirror-lang-python-DVl8-2Op.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-capacitor-core-B4EWRrHz.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-legendapp-list-D2O6oUGf.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-opencode-client-h8RufjAw.js";import"./vendor-marked-CkSbCoiw.js";import"./vendor-marked-linkify-it-CXI_LHIE.js";import"./vendor-linkify-it-DZCzzDkK.js";import"./vendor-uc.micro-BAd0H0z4.js";import"./vendor-remend-DcBOpbSu.js";import"./vendor-katex-CBXxfSPY.js";import"./vendor-dompurify-r8glNMJW.js";import"./themeResolver-yJ9XpNMI.js";import"./vendor-pierre-theming-Dgp7B_O4.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./selectionMarkdown-CCursbAw.js";const We=t=>{const e=t.target;if(!(e instanceof Element))return null;const n=e.closest("a[href]");return!(n instanceof HTMLAnchorElement)||n.getAttribute("data-openchamber-file-link")==="true"?null:n},Te=(t,e)=>{if(t.defaultPrevented)return!1;const r=We(t)?.getAttribute("href")??"";return Oe(r)?(t.preventDefault(),t.stopPropagation(),e?.(r),!0):!1},lt=t=>t.button===0&&!t.metaKey&&!t.ctrlKey&&!t.altKey&&!t.shiftKey,Rn=(t,e)=>{const n=e.openSessionLink;if(!n||t.defaultPrevented)return!1;const r=We(t)?.getAttribute("href")??"",o=Ft(r,e.ownOrigins??[]);return!o||Qe(r)&&!lt(t)?!1:(t.preventDefault(),t.stopPropagation(),n(o),!0)},Tn=(t,e)=>{const n=s=>{if(Rn(s,e)||Te(s,e.openAppLink)||!e.allowExternalHttp||s.defaultPrevented||!lt(s))return;const i=We(s)?.getAttribute("href")??"";Qe(i)&&(s.preventDefault(),s.stopPropagation(),e.openExternalHttp(i))},r=s=>{s.button===1&&Te(s,e.openAppLink)},o=s=>{Te(s)};return t.addEventListener("click",n),t.addEventListener("auxclick",r),t.addEventListener("dragstart",o),()=>{t.removeEventListener("click",n),t.removeEventListener("auxclick",r),t.removeEventListener("dragstart",o)}},ct='[data-openchamber-file-link="true"]',Nn=t=>{if(!(t instanceof Element))return null;const e=t.closest(ct);return e instanceof HTMLElement?e:null},_n=(t,e)=>{if(!(t instanceof Element))return null;const n=t.closest("a[href]");if(!(n instanceof HTMLAnchorElement))return null;const r=e.hrefCandidate(n);return!r||!e.isResolvable(r)?null:n},xn=(t,e)=>{const n=r=>{const o=Nn(r.target)??_n(r.target,e);if(!o||(r.preventDefault(),r.stopPropagation(),Ot(t)))return;const s=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.platform);e.openFileReference(o,{external:s?r.metaKey:r.ctrlKey})};return t.addEventListener("click",n),()=>t.removeEventListener("click",n)},dt="openchamber-md",ge={background:"transparent",foreground:"var(--md-syntax-foreground)",comment:"var(--md-syntax-comment)",keyword:"var(--md-syntax-keyword)",string:"var(--md-syntax-string)",number:"var(--md-syntax-number)",function:"var(--md-syntax-function)",variable:"var(--md-syntax-variable)",type:"var(--md-syntax-type)",operator:"var(--md-syntax-operator)"},In=Object.fromEntries(Object.keys(Wt({base:ge})).map(t=>[t,`var(--md-token-${t})`])),Pn={name:dt,colors:{"editor.background":"transparent","editor.foreground":ge.foreground},tokenColors:[...hn({base:ge,tokens:In}),{scope:["markup.bold","punctuation.definition.bold"],settings:{fontStyle:"bold"}},{scope:["markup.italic","punctuation.definition.italic"],settings:{fontStyle:"italic"}},{scope:["markup.heading","markup.heading entity.name"],settings:{foreground:ge.keyword,fontStyle:"bold"}},{scope:["markup.inserted","punctuation.definition.inserted"],settings:{foreground:"var(--md-syntax-inserted)"}},{scope:["markup.deleted","punctuation.definition.deleted","invalid","invalid.illegal"],settings:{foreground:"var(--md-syntax-deleted)"}}]};let qe=!1;const Fn=()=>{qe||(qe=!0,bn(dt,()=>Promise.resolve(Pn)))},Ae="[data-openchamber-markdown-image-source]",ut="data-openchamber-markdown-inline-image",ke=`[${ut}]`,On="[data-message-id]",mt=12,ft="inline-block max-w-[min(100%,30rem)] align-top my-1 me-1",Wn="block max-w-full cursor-zoom-in overflow-hidden rounded-lg border border-border/40 bg-muted/10 outline-none focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)]",Bn="block h-auto max-h-[30rem] w-auto max-w-full object-contain",ye=new WeakMap,Ke=new WeakMap,te=t=>t.getAttribute("data-openchamber-markdown-image-source")??"",Dn=t=>t.textContent?.trim()||"image",$n=t=>{const e=[];for(const n of Array.from(t.querySelectorAll(Ae))){const r=te(n);if(r&&!e.includes(r)&&e.push(r),e.length>=mt)break}return e},Hn=async(t,e)=>{const n=document.createElement("img");return n.alt=e,n.decoding="async",n.referrerPolicy="no-referrer",n.draggable=!1,n.className=Bn,n.src=t,await n.decode(),n},qn=(t,e,n)=>new Promise((r,o)=>{const s=document.createElement("video");s.controls=!0,s.preload="metadata",s.playsInline=!0,s.title=e,s.setAttribute(Ie,"true");const i=()=>{s.removeEventListener("loadedmetadata",d),s.removeEventListener("error",p),n.removeEventListener("abort",p)},d=()=>{i(),r(s)},p=()=>{i(),s.removeAttribute("src"),o(new Error("Video is not available"))};s.addEventListener("loadedmetadata",d),s.addEventListener("error",p),n.addEventListener("abort",p),s.src=t}),Kn=(t,e,n)=>{const r=document.createElement("button");r.type="button",r.className=Wn,r.setAttribute(ut,"true"),r.setAttribute("aria-label",n.filename),r.appendChild(e),ye.set(r,n),t.className=ft,t.replaceChildren(r)},Un=8,Ue=.5,Vn=t=>t.querySelector(ke)?.querySelector("img")??null,Ve=t=>{if(!(t instanceof HTMLElement)||t.tagName!=="P")return;const e=[];for(const l of Array.from(t.childNodes))if(!(l.nodeType===3&&!l.textContent?.trim())){if(!(l instanceof HTMLElement)||!l.matches(Ae))return;e.push(l)}if(e.length<2)return;const n=e.map(Vn),r=n.map(l=>l&&l.naturalWidth>0&&l.naturalHeight>0?{width:l.naturalWidth,height:l.naturalHeight}:null);if(r.some(l=>l===null))return;const o=r.filter(l=>l!==null),s=o.map(({width:l,height:m})=>l/m),i=s.reduce((l,m)=>l+m,0),d=Math.min(...o.map(({height:l})=>l)),p=(e.length-1)*Ue;t.setAttribute("data-openchamber-markdown-image-row","true"),Object.assign(t.style,{display:"flex",flexWrap:"wrap",alignItems:"flex-start",gap:`${Ue}rem`,maxWidth:`calc(min(30rem, ${d}px) * ${i} + ${p}rem)`}),e.forEach((l,m)=>{const L=s[m]??1,w=o[m];Object.assign(l.style,{flex:`${L} 1 0px`,minWidth:`${Un*L}rem`,maxWidth:`min(${w?.width??0}px, ${30*L}rem)`,margin:"0"});const y=n[m];y&&(y.style.width="100%")})},zn=t=>{const{container:e,sessionId:n,messageId:r,directory:o,apiBaseUrl:s,useWorkspaceFsBridge:i,onShowPopup:d}=t,p=new AbortController,{signal:l}=p,m=new WeakSet,L=new Set;let w=null;const y=a=>{const c=$n(e).filter(De),u=c.join("\0");return(!w||w.sources!==u||a)&&(w={sources:u,result:Ht({sources:c,directory:o,sessionId:n,messageId:r,signal:l})}),w.result},g=async(a,c)=>{if(!De(a))return Bt(a,l);if(i)return Dt(a,o,l);const u=(await y(c)).get(a);if(u?.status!=="ready")throw new Error("Image is not available");return await en(s),$t(u,o)},P=async a=>{const c=te(a),u=Dn(a);m.add(a);try{if(dn(c)){if(i)throw new Error("Video is not available");const k=await qn(await g(c,!1),u,l);if(l.aborted||!a.isConnected||te(a)!==c)return;Ke.set(a,a.className),a.className=ft,a.replaceChildren(k);return}const E=await Hn(await g(c,!1),u);if(l.aborted||!a.isConnected||te(a)!==c)return;Kn(a,E,{filename:u,resolveUrl:()=>g(c,!0)}),Ve(a.parentElement)}catch{l.aborted||L.add(c)}finally{m.delete(a)}},_=a=>{const c=a.target;if(!(c instanceof HTMLVideoElement)||!c.hasAttribute(Ie))return;const u=c.closest(Ae);if(!u||!e.contains(u))return;const E=te(u),k=()=>{L.add(E),u.className=Ke.get(u)??"",u.textContent=c.title||E};if(!ln(c)){k();return}g(E,!0).then(h=>{c.isConnected&&cn(c,h)},()=>{!l.aborted&&c.isConnected&&k()})};e.addEventListener("error",_,!0);const T=typeof IntersectionObserver>"u"?null:new IntersectionObserver(a=>{for(const c of a)!c.isIntersecting||!(c.target instanceof HTMLElement)||(T?.unobserve(c.target),P(c.target))},{rootMargin:"200px"}),F=()=>{const a=new Set;for(const c of Array.from(e.querySelectorAll(Ae))){const u=te(c);if(a.add(u),a.size>mt)break;if(c.querySelector(`[${Ie}]`))continue;const E=c.querySelector(ke);if(E){const k=ye.get(E)?.filename??E.getAttribute("aria-label")??"image";ye.set(E,{filename:k,resolveUrl:()=>g(u,!0)}),Ve(c.parentElement);continue}!u||L.has(u)||m.has(c)||c.closest("a")||(T?(m.add(c),T.observe(c)):P(c))}};let x=null;const I=()=>{x===null&&(x=window.requestAnimationFrame(()=>{x=null,l.aborted||F()}))},M=new MutationObserver(I);M.observe(e,{childList:!0,subtree:!0});const b=async a=>{const c=e.closest(On)??e,u=Array.from(c.querySelectorAll(ke)).flatMap(A=>{const N=ye.get(A);return N?[{button:A,entry:N}]:[]});if(!u.some(A=>A.button===a))return;const E=await Promise.allSettled(u.map(({entry:A})=>A.resolveUrl()));if(l.aborted)return;const k=u.flatMap(({button:A,entry:N},B)=>{const C=E[B];return C?.status!=="fulfilled"?[]:[{url:C.value,filename:N.filename,button:A}]}),h=k.findIndex(A=>A.button===a),R=k[h];R&&d({open:!0,title:R.filename,content:"",metadata:{tool:"markdown-image-preview",filename:R.filename},image:{url:R.url,filename:R.filename,gallery:k.map(({url:A,filename:N})=>({url:A,filename:N})),index:h}})},f=a=>{const c=a.target;if(!(c instanceof Element))return;const u=c.closest(ke);!u||!e.contains(u)||(a.preventDefault(),b(u))};return e.addEventListener("click",f),F(),()=>{p.abort(),x!==null&&window.cancelAnimationFrame(x),M.disconnect(),T?.disconnect(),e.removeEventListener("click",f),e.removeEventListener("error",_,!0)}},Ee=new Map;let ie=null;const jn=()=>{if(ie)return ie;const t=globalThis.ResizeObserver;return t?(ie=new t(e=>{for(const n of e){const r=Ee.get(n.target);if(!r)continue;const{width:o}=n.contentRect;if(o===r.width)continue;const s=r.width===null;r.width=o,s||r.onWidthChange()}}),ie):null},Gn=(t,e)=>{const n=jn();return n?(Ee.set(t,{width:null,onWidthChange:e}),n.observe(t),()=>{Ee.delete(t)&&(n.unobserve(t),!(Ee.size>0)&&(n.disconnect(),ie=null))}):()=>{}},ze=(t,e,n)=>{let r=0;for(const s of t){const i=r+s.data.length;if(e<i||e===i&&n==="left")return{node:s,offset:Math.max(0,e-r)};r=i}const o=t.at(-1);return o?{node:o,offset:o.data.length}:null},Zn=/^(?:\uFEFF)?(---|\+\+\+)[^\S\r\n]*\r?\n([\s\S]*?)\r?\n\1[^\S\r\n]*(?:\r?\n|$)/,Fe=t=>Pe(t)?String(t.value??""):it(t).trimEnd(),Xn=t=>t?Pe(t)?{kind:"text",text:Fe(t)}:vn(t)&&t.items.every(e=>Pe(e))?{kind:"list",items:t.items.map(e=>Fe(e))}:{kind:"code",text:it(t).trimEnd()}:{kind:"text",text:""},Yn=(t,e)=>{if(t!=="---")return{kind:"raw",text:e};const n=En(e);return n.errors.length>0?{kind:"raw",text:e}:n.contents===null?null:An(n.contents)?{kind:"properties",properties:n.contents.items.map(r=>({key:r.key?Fe(r.key):"",value:Xn(r.value)}))}:{kind:"raw",text:e}},Jn=t=>{const e=t.match(Zn);return e?{frontmatter:Yn(e[1],e[2]),body:t.slice(e[0].length)}:{frontmatter:null,body:t}},pt="oc-surface-code m-0 whitespace-pre-wrap break-words font-mono text-[0.95em]",Qn=t=>{const e=j.c(8),{value:n}=t;if(n.kind==="list"){let o;e[0]!==n.items?(o=n.items.map(tr),e[0]=n.items,e[1]=o):o=e[1];let s;return e[2]!==o?(s=D.jsx("span",{className:"flex flex-wrap gap-1",children:o}),e[2]=o,e[3]=s):s=e[3],s}if(n.kind==="code"){let o;return e[4]!==n.text?(o=D.jsx("pre",{dir:"ltr",className:pt,children:n.text}),e[4]=n.text,e[5]=o):o=e[5],o}let r;return e[6]!==n.text?(r=D.jsx("span",{dir:"auto",className:"whitespace-pre-wrap",children:n.text}),e[6]=n.text,e[7]=r):r=e[7],r},er=t=>{const e=j.c(6),{frontmatter:n}=t;if(n.kind==="raw"){let s;return e[0]!==n.text?(s=D.jsx("pre",{dir:"ltr",className:`${pt} mb-4 rounded-lg border border-[var(--interactive-border)] bg-[var(--syntax-background)] px-3 py-2.5 typography-meta`,children:n.text}),e[0]=n.text,e[1]=s):s=e[1],s}let r;e[2]!==n.properties?(r=n.properties.map(nr),e[2]=n.properties,e[3]=r):r=e[3];let o;return e[4]!==r?(o=D.jsx("dl",{className:"mb-4 grid grid-cols-[fit-content(40%)_minmax(0,1fr)] items-baseline gap-x-4 gap-y-1.5 rounded-lg border border-[var(--interactive-border)] px-3 py-2.5 typography-meta",children:r}),e[4]=r,e[5]=o):o=e[5],o};function tr(t,e){return D.jsx("span",{dir:"auto",className:"rounded-full bg-[var(--surface-subtle)] px-2 py-px",children:t},e)}function nr(t,e){const{key:n,value:r}=t;return D.jsxs("div",{className:"contents",children:[D.jsx("dt",{dir:"auto",className:"oc-ui-start-align break-words text-muted-foreground",children:n}),D.jsx("dd",{className:"m-0 min-w-0 break-words text-foreground",children:D.jsx(Qn,{value:r})})]},e)}const rr=new Set(["dockerfile","makefile","readme","license",".env",".gitignore",".npmrc"]),je=Array.from(rr).map(t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),ht=t=>Kt(t),or=t=>qt(t),bt=t=>{let e;try{e=new URL(t.trim())}catch{return null}if(e.protocol!=="file:"||e.hostname&&e.hostname!=="localhost")return null;try{const n=decodeURIComponent(e.pathname);return/^\/[A-Za-z]:\//.test(n)?n.slice(1):n.startsWith("/")?n:null}catch{return null}},ve=t=>{let e=(t||"").trim();return e?((e.startsWith("`")&&e.endsWith("`")||e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1).trim()),e=e.replace(/[.,;!?]+$/g,""),e.endsWith(")")&&!e.includes("(")&&(e=e.slice(0,-1)),e.endsWith("]")&&!e.includes("[")&&(e=e.slice(0,-1)),e):""},be=t=>{let e=ve(t);if(!e)return"";const n=e.indexOf(";");n>=0&&(e=e.slice(0,n)),e=e.replace(/#.*$/,"");const r=e.match(/^(.*\.[A-Za-z0-9_-]{1,16}):.*$/);r&&(e=r[1]??e);const o=je.length>0?e.match(new RegExp(`^(.*(?:/|^)(${je})):.*$`,"i")):null;return o&&(e=o[1]??e),ve(e)},wt=t=>{const e=ve(t);if(!e)return null;const n=e.indexOf(";"),r=n>=0?ve(e.slice(0,n)):e;if(!r)return null;const o=r.match(/^(.*?):(\d+)-(\d+)$/);if(o){const p=be(o[1]??""),l=Number.parseInt(o[2]??"",10),m=Number.parseInt(o[3]??"",10);return!p||!Number.isFinite(l)||!Number.isFinite(m)||m<l?null:{path:p,line:l,endLine:m}}const s=r.match(/^(.*)#L(\d+)(?:C(\d+))?$/i);if(s){const p=be(s[1]??""),l=Number.parseInt(s[2]??"",10),m=s[3]?Number.parseInt(s[3],10):void 0;return!p||!Number.isFinite(l)?null:{path:p,line:l,column:Number.isFinite(m??Number.NaN)?m:void 0}}const i=r.match(/^(.*?):(\d+)(?::(\d+))?$/);if(i){const p=be(i[1]??""),l=Number.parseInt(i[2]??"",10),m=i[3]?Number.parseInt(i[3],10):void 0;return!p||!Number.isFinite(l)?null:{path:p,line:l,column:Number.isFinite(m??Number.NaN)?m:void 0}}const d=be(r);return d?{path:d}:null},sr=/(?:[A-Za-z]:[\\/])?[\w.\-/@+]*[\w\-/@+]\.[A-Za-z0-9]{1,8}(?::\d+(?:-\d+)?(?::\d+)?)?/g,ar=4,ir=1e3,lr=200,Z=new Map;let we=0;const Ge=[],cr=()=>de()?lr:ir,gt=(t,e)=>`${t}\0${e}`,dr=(t,e)=>{const n=ht(t);if(!n)return Promise.resolve(!1);const r=gt(e,n),o=Z.get(r);if(o)return Z.delete(r),Z.set(r,o),o;const s=new Promise(d=>{const p=()=>{we+=1,st(`/api/fs/stat?path=${encodeURIComponent(n)}&optional=true`,{method:"GET",cache:"no-store",headers:e?{"x-opencode-directory":e}:void 0}).then(async l=>{if(!l.ok){d(!1);return}const m=await l.json().catch(()=>null);d(m?.exists!==!1)}).catch(()=>d(!1)).finally(()=>{we=Math.max(0,we-1),Ge.shift()?.()})};if(we<ar){p();return}Ge.push(p)}),i=cr();for(;Z.size>=i;){const d=Z.keys().next().value;if(typeof d!="string")break;Z.delete(d)}return Z.set(r,s),s},ur=Sn({paths:Cn(Ln())}),se=new Map,mr=200,fr=(t,e)=>{if(!t||!e||de())return Promise.resolve(null);const n=gt(e,t),r=se.get(n);if(r)return r;const o=st(`/api/fs/find-by-name?name=${encodeURIComponent(t)}`,{method:"GET",cache:"no-store",headers:{"x-opencode-directory":e}}).then(async s=>{if(!s.ok)return null;const i=ur.safeParse(await s.json().catch(()=>null)),d=i.success?i.data.paths:[];return d.length===1?d[0]:null}).catch(()=>null);for(;se.size>=mr;){const s=se.keys().next();if(s.done)break;se.delete(s.value)}return se.set(n,o),o},pr={maxSessions:8,maxEntriesPerSession:4};class hr{maxSessions;maxEntriesPerSession;sessions=new Map;constructor(e=pr){this.maxSessions=Math.max(1,e.maxSessions),this.maxEntriesPerSession=Math.max(1,e.maxEntriesPerSession)}store(e){const n=e.scope,r=e.id;let o=this.sessions.get(n);for(o===void 0?(o=new Map,this.sessions.set(n,o)):this.refreshSession(n,o),o.delete(r),o.set(r,e);o.size>this.maxEntriesPerSession;)this.removeOldestEntry(o);for(;this.sessions.size>this.maxSessions;)this.removeOldestSession()}take(e){const n=e.scope,r=this.sessions.get(n);if(!r)return null;const o=e.id;this.refreshSession(n,r);const s=r.get(o);return s===void 0||s.locale!==e.locale||s.directory!==e.directory?null:(r.delete(o),r.size===0&&this.sessions.delete(n),s.fragment)}clear(){this.sessions.clear()}stats(){let e=0;for(const n of this.sessions.values())e+=n.size;return{sessions:this.sessions.size,entries:e}}refreshSession(e,n){this.sessions.delete(e),this.sessions.set(e,n)}removeOldestEntry(e){const n=e.keys().next().value;n!==void 0&&e.delete(n)}removeOldestSession(){const e=this.sessions.keys().next().value;e!==void 0&&this.sessions.delete(e)}}const Ze=new hr,kt=()=>{const t=j.c(4),e=Ut();let n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n=$e(!1),t[0]=n):n=t[0];const r=n;let o;t[1]===Symbol.for("react.memo_cache_sentinel")?(o=$e(!0),t[1]=o):o=t[1];const s=o;let i;return t[2]!==e?.currentTheme?(i=e?.currentTheme??(typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches?s:r),t[2]=e?.currentTheme,t[3]=i):i=t[3],i},br=()=>{if(typeof window>"u")return[];const t=[window.location.origin];try{const e=new URL(at()||window.location.href,window.location.href).origin;t.includes(e)||t.push(e)}catch{}return t},yt=t=>{const e=j.c(3);let n,r;e[0]!==t?(n=()=>{const o=t.current;return o?pn(o):void 0},r=[t],e[0]=t,e[1]=n,e[2]=r):(n=e[1],r=e[2]),S.useEffect(n,r)},Et=t=>{const e=j.c(5),{containerRef:n,enabled:r,directory:o}=t,s=Vt(o);let i,d;e[0]!==n||e[1]!==r||e[2]!==s?(i=()=>{const p=n.current;if(!p)return;const l=!de();return Tn(p,{allowExternalHttp:r!==!1,openAppLink:Hr,openExternalHttp:s,openSessionLink:l?qr:void 0,ownOrigins:br()})},d=[n,r,s],e[0]=n,e[1]=r,e[2]=s,e[3]=i,e[4]=d):(i=e[3],d=e[4]),S.useEffect(i,d)},ne={download:!0,copy:!0,showPanZoomControls:!0},At=!0,vt="data-openchamber-block-path-token",St=`[${vt}]`,ce="data-openchamber-block-paths-scanned",wr=2e5,gr=80,kr=40,Xe=160,yr=()=>de()?kr:gr,Er=new Set(["dockerfile","makefile","readme","license",".env",".gitignore",".npmrc"]),Ct=t=>ht(t),Ar=t=>or(t),vr=(t,e)=>Xt(t,e),Sr=t=>{const e=t.split("/").filter(Boolean).pop()??"";return!e||e.endsWith(".")?!1:/\.[A-Za-z0-9_-]{1,16}$/.test(e)},Lt=t=>{if(!t||t.startsWith("--")||t.includes("://")||/[<>]/.test(t)||/\s{2,}/.test(t))return!1;const e=Ct(t),n=e.split("/").filter(Boolean).pop()??e;if(!n||n==="."||n==="..")return!1;const r=n.toLowerCase();return Er.has(r)||r.startsWith(".")&&r.length>1?!0:Sr(e)},Be=t=>{const e=wt(t);return e?Lt(e.path):!1},Cr=t=>{const e=t.querySelectorAll(St);for(const r of Array.from(e))r.replaceWith(t.ownerDocument.createTextNode(r.textContent??""));const n=t.querySelectorAll(`code[${ce}]`);for(const r of Array.from(n))r.removeAttribute(ce),r.normalize()},Ne=t=>{if(t.tagName.toLowerCase()==="a"){const e=t.getAttribute("href")?.trim();if(e&&Oe(e))return"";const n=e?bt(e):null;if(n)return n;if(e&&Be(e))return e}return(t.textContent||"").trim()},Lr=t=>{const e=t.getAttribute("href")?.trim();if(!e||Oe(e))return null;const n=bt(e);return n||(Be(e)?e:null)},Mr=t=>{const e=[];for(const n of Array.from(t.querySelectorAll("pre code"))){if(n.hasAttribute(ce))continue;const r=[],o=n.textContent??"",s=o.length>wr?"":o;if(s.includes("."))for(const i of s.matchAll(sr)){const d=i[0];d&&Be(d)&&r.push({start:i.index,end:i.index+d.length,raw:d})}e.push({codeBlock:n,tokens:r})}return e},Rr=(t,e)=>{const n=t.ownerDocument;if(e.length>0){const r=n.createTreeWalker(t,NodeFilter.SHOW_TEXT),o=[];for(let i=r.nextNode();i;i=r.nextNode())i instanceof Text&&o.push(i);const s=t.textContent??"";for(const{start:i,end:d,raw:p,decorate:l}of[...e].sort((m,L)=>L.start-m.start)){if(s.slice(i,d)!==p)continue;const m=ze(o,i,"right"),L=ze(o,d,"left");if(!m||!L)continue;const w=n.createRange();w.setStart(m.node,m.offset),w.setEnd(L.node,L.offset);const y=n.createElement("span");y.setAttribute(vt,"true"),y.textContent=p,l(y),w.deleteContents(),w.insertNode(y)}}t.setAttribute(ce,"true")},ae=(t,e)=>{const n=wt(t);if(!n||!Lt(n.path))return null;const r=Ar(n.path)?Ct(n.path):vr(e,n.path);return r?{...n,resolvedPath:r}:null},Tr=(t,e)=>t||Zt(t,e),Mt=({containerRef:t,effectiveDirectory:e,editor:n,preferRuntimeEditor:r,enabled:o})=>{const s=S.useRef(null);S.useEffect(()=>{const i=t.current;if(!i||o&&!e)return;let d=!1;const p=yr(),l=o&&!on(),m=a=>{a.removeAttribute("data-openchamber-file-link"),a.removeAttribute("data-openchamber-file-ref"),a.removeAttribute("data-openchamber-file-path"),a.getAttribute("title")==="Open file"&&a.removeAttribute("title"),a.tagName.toLowerCase()!=="a"&&(a.removeAttribute("role"),a.removeAttribute("tabindex"))},L=()=>{const a=i.querySelectorAll(ct);for(const c of Array.from(a))m(c);Cr(i)},w=async(a,c)=>{const u=a.getAttribute("data-openchamber-file-ref")||Ne(a),E=ae(u,e);if(!E)return;const k=a.getAttribute("data-openchamber-file-path"),h=k?{...E,resolvedPath:k}:E;if(c?.external&&sn()&&await an(h.resolvedPath))return;const R=Tr(e,h.resolvedPath);if(r&&n){n.openFile(h.resolvedPath,Number.isFinite(h.line??Number.NaN)?Math.max(1,Math.trunc(h.line)):void 0,Number.isFinite(h.column??Number.NaN)?Math.max(1,Math.trunc(h.column)):void 0);return}const A=U.getState();Number.isFinite(h.line??Number.NaN)?A.openContextFileAtLine(R,h.resolvedPath,Math.max(1,Math.trunc(h.line)),Number.isFinite(h.column??Number.NaN)?Math.max(1,Math.trunc(h.column)):1):A.openContextFile(R,h.resolvedPath)},y=()=>xn(i,{hrefCandidate:Lr,isResolvable:a=>ae(a,e)!==null,openFileReference:w});if(!l)return L(),o?y():void 0;const g=(a=0)=>{if(s.current!==null&&typeof window<"u"&&window.clearTimeout(s.current),typeof window>"u"){x();return}s.current=window.setTimeout(()=>{s.current=null,window.requestAnimationFrame(()=>{d||x()})},a)},P=a=>{M+=1;try{a()}finally{queueMicrotask(()=>{M-=1})}},_=(a,c,u)=>{a.getAttribute(c)!==u&&a.setAttribute(c,u)},T=(a,c,u)=>{_(a,"data-openchamber-file-link","true"),_(a,"data-openchamber-file-ref",c),_(a,"data-openchamber-file-path",u),_(a,"title","Open file"),a.tagName.toLowerCase()!=="a"&&(_(a,"role","button"),_(a,"tabindex","0"))},F=a=>{if(!Gt(a.resolvedPath,e))return Promise.resolve(a.resolvedPath);const c=!a.path.includes("/")&&!a.path.includes("\\");return dr(a.resolvedPath,e).then(u=>u?a.resolvedPath:c?fr(a.path,e):null)},x=()=>{const a=i.querySelectorAll(`[data-markdown="inline-code"], a, ${St}`);let c=0;const u=[],E=[];for(const h of Array.from(a)){const R=ae(Ne(h),e);if(!R||c>=p){E.push(h);continue}c+=1,u.push({candidate:h,resolvedPath:R.resolvedPath,target:F(R)})}const k=Mr(i).map(({codeBlock:h,tokens:R})=>({codeBlock:h,tokens:R.flatMap(A=>{const N=ae(A.raw,e);return!N||c>=p?[]:(c+=1,[{...A,target:F(N)}])})}));P(()=>{for(const h of E)m(h)}),!(u.length===0&&k.length===0)&&Promise.all([Promise.all(u.map(h=>h.target.then(R=>({...h,targetPath:R})))),Promise.all(k.map(async({codeBlock:h,tokens:R})=>({codeBlock:h,tokens:await Promise.all(R.map(A=>A.target.then(N=>({...A,targetPath:N}))))})))]).then(([h,R])=>{d||P(()=>{for(const{candidate:A,resolvedPath:N,targetPath:B}of h){if(!i.contains(A))continue;const C=Ne(A);ae(C,e)?.resolvedPath===N&&(B?T(A,C,B):m(A))}for(const{codeBlock:A,tokens:N}of R)!i.contains(A)||A.hasAttribute(ce)||Rr(A,N.flatMap(({start:B,end:C,raw:O,targetPath:v})=>v?[{start:B,end:C,raw:O,decorate:V=>T(V,O,v)}]:[]))})})},I=a=>{if(a.key!=="Enter"&&a.key!==" ")return;const c=a.target;!(c instanceof HTMLElement)||c.getAttribute("data-openchamber-file-link")!=="true"||(a.preventDefault(),a.stopPropagation(),w(c))};g(Xe);let M=0;const b=new MutationObserver(()=>{M>0||g(Xe)});b.observe(i,{childList:!0,subtree:!0}),i.addEventListener("keydown",I);const f=y();return()=>{d=!0,s.current!==null&&typeof window<"u"&&window.clearTimeout(s.current),s.current=null,b.disconnect(),f(),i.removeEventListener("keydown",I)}},[t,n,e,r,o])},Nr=t=>{const e=j.c(10),{containerRef:n,sessionId:r,messageId:o,directory:s,onShowPopup:i}=t,d=S.useRef(i);let p,l;e[0]!==i?(p=()=>{d.current=i},l=[i],e[0]=i,e[1]=p,e[2]=l):(p=e[1],l=e[2]),S.useEffect(p,l);let m;e[3]===Symbol.for("react.memo_cache_sentinel")?(m=at(),e[3]=m):m=e[3];const L=m;let w,y;e[4]!==n||e[5]!==s||e[6]!==o||e[7]!==r?(w=()=>{const g=n.current;if(!(!g||!r||!o))return zn({container:g,sessionId:r,messageId:o,directory:s,apiBaseUrl:L,useWorkspaceFsBridge:de(),onShowPopup:P=>d.current?.(P)})},y=[L,n,s,o,r],e[4]=n,e[5]=s,e[6]=o,e[7]=r,e[8]=w,e[9]=y):(w=e[8],y=e[9]),S.useEffect(w,y)},Rt=t=>{const e=j.c(7),{containerRef:n,onShowPopup:r,enableFullscreen:o,enablePanZoom:s,allowMermaidWheelEvents:i}=t;let d,p;e[0]!==i||e[1]!==n||e[2]!==o||e[3]!==s||e[4]!==r?(d=()=>{const l=n.current;if(!l)return;const m=w=>{if(!o||!r)return;const y=w.target;if(!(y instanceof Element)||y.closest('button, a, [role="button"]'))return;const g=y.closest(Re);if(!g)return;if(g instanceof HTMLElement&&g.hasAttribute("data-mermaid-suppress-click")){g.removeAttribute("data-mermaid-suppress-click");return}const _=Array.from(l.querySelectorAll(Re)).indexOf(g);if(_<0)return;const T=g instanceof HTMLElement?g.getAttribute("data-md-source"):null;if(!T||T.trim().length===0)return;const F=`Diagram ${_+1}`;r({open:!0,title:F,content:"",metadata:{tool:"mermaid-preview",filename:F},mermaid:{url:`data:text/plain;charset=utf-8,${encodeURIComponent(T)}`,source:T,filename:F}})},L=w=>{if(i||(w.ctrlKey||w.metaKey)&&s)return;const y=w.target;!(y instanceof Element)||!y.closest(Re)||w.stopPropagation()};return l.addEventListener("click",m),l.addEventListener("wheel",L,{capture:!0,passive:!0}),()=>{l.removeEventListener("click",m),l.removeEventListener("wheel",L,!0)}},p=[i,n,o,s,r],e[0]=i,e[1]=n,e[2]=o,e[3]=s,e[4]=r,e[5]=d,e[6]=p):(d=e[5],p=e[6]),S.useEffect(d,p)},X=new Map,_r=100,Y="data-md-decoration-id",_e=t=>{const e=t.lastElementChild;for(const n of Array.from(t.children))n!==e&&n.hasAttribute("data-md-last")&&n.removeAttribute("data-md-last");e?.hasAttribute("data-md-block")&&!e.hasAttribute("data-md-last")&&e.setAttribute("data-md-last","")},Se="oc-md-block-enter",xr=t=>{for(const e of Array.from(t.querySelectorAll(`.${Se}`)))e.classList.remove(Se),e.style.removeProperty("--oc-md-enter-delay")},Ir=t=>{for(const e of Array.from(t.children))!(e instanceof HTMLElement)||!e.classList.contains(Se)||(e.classList.remove(Se),e.style.removeProperty("--oc-md-enter-delay"),e.getAttribute("style")||e.removeAttribute("style"))},Pr=(t,e,n)=>{const r=t.children;if(r.length!==e.length)return!1;for(let o=0;o<e.length;o+=1){const s=r[o];if(!s||s.getAttribute("data-md-id")!==e[o]?.id||s.getAttribute(Y)!==n)return!1}return!0},Ye=new WeakMap;let Je=0;const Fr=2e5,xe=t=>{const e=Ye.get(t);if(e)return e;const n=`decoration-${Je}`;return Je+=1,Ye.set(t,n),n},Or=(t,e)=>{const n=X.get(t);if(n)return X.delete(t),X.set(t,n),n;const r=e();if(X.set(t,r),X.size>_r){const o=X.keys().next().value;o&&X.delete(o)}return r},Wr=t=>({bg:t.colors.surface.elevated,fg:t.colors.surface.foreground,line:t.colors.surface.mutedForeground,accent:t.colors.primary.base,muted:t.colors.surface.mutedForeground,surface:t.colors.surface.muted,border:t.colors.interactive.border,transparent:!0,font:"system-ui, sans-serif"}),Br=()=>U.getState().copyMessagesAsPlainText?"plain":"markdown",Tt=(t,e,n=ne)=>{const{t:r}=rt(),o=S.useMemo(()=>({copy:r("markdownRenderer.code.actions.copyTitle"),copied:r("markdownRenderer.code.actions.copiedTitle"),enableCodeWrap:r("markdownRenderer.code.actions.enableWrapTitle"),disableCodeWrap:r("markdownRenderer.code.actions.disableWrapTitle"),enableTableWrap:r("markdownRenderer.table.actions.enableWrapTitle"),disableTableWrap:r("markdownRenderer.table.actions.disableWrapTitle"),copyTable:r("markdownRenderer.table.actions.copyTitle"),downloadTable:r("markdownRenderer.table.actions.downloadTitle"),copyDiagram:r("markdownRenderer.mermaid.actions.copySourceTitle"),downloadDiagram:r("markdownRenderer.mermaid.actions.downloadSvgTitle"),zoomInDiagram:r("markdownRenderer.mermaid.actions.zoomInTitle"),zoomOutDiagram:r("markdownRenderer.mermaid.actions.zoomOutTitle"),resetDiagramView:r("markdownRenderer.mermaid.actions.resetViewTitle"),previewLabel:r("terminalView.preview.open"),previewTitle:r("terminalView.preview.openTitle")}),[r]),s=U(w=>w.codeBlockLineWrap),i=U(w=>w.setCodeBlockLineWrap),d=S.useCallback(()=>{i(!U.getState().codeBlockLineWrap)},[i]),p=U(w=>w.tableCellWrap),l=U(w=>w.setTableCellWrap),m=S.useCallback(()=>{l(!U.getState().tableCellWrap)},[l]);return S.useMemo(()=>{const w=Wr(t),y=U.getState().mermaidRenderingMode,g=t.metadata?.id??"theme";return{labels:o,mermaidControls:n,codeBlockLineWrap:s,onToggleCodeBlockLineWrap:d,tableCellWrap:p,onToggleTableCellWrap:m,renderMermaid:_=>Or(`${g}:${y}:${_}`,()=>{try{return y==="ascii"?{ascii:It(_)}:{svg:Pt(_,w)}}catch{return{}}}),onPreviewLoopback:e,getCopyFormat:Br}},[t,o,n,s,d,p,m,e])},Nt=({containerRef:t,text:e,streaming:n,imageMode:r="inline",rawHtml:o="escape",syntaxVars:s,ctx:i,domCacheKey:d,tableLayoutSettled:p})=>{S.useEffect(()=>{Fn()},[]);const l=S.useRef(null),m=S.useRef(0),L=S.useRef(null),w=S.useRef(null),y=S.useRef(null),g=S.useCallback(()=>{const b=t.current;if(b){if(!l.current){if(!K(b))return;l.current=wn(b);return}l.current.refresh()}},[t]),{tableCellWrap:P}=i,_=S.useRef(P);_.current=P;const T=S.useCallback(()=>M.current(),[]),F=S.useCallback(()=>{const b=t.current,f=b?.querySelector("[data-markdown-content]")??b;f&&(He(f,P),!w.current&&f.querySelector('table[data-markdown="table"]')&&(w.current=Gn(f,()=>{He(f,_.current,{cachedOnly:!0})||jt(T)})))},[t,T,P]),x=S.useCallback(()=>{if(!p)return;const b=L.current;b!==null&&window.cancelAnimationFrame(b);const f=m.current,a=window.requestAnimationFrame(()=>{L.current===a&&(L.current=null,m.current===f&&F())});L.current=a},[F,p]),I=S.useCallback(()=>{const b=L.current;b!==null&&window.cancelAnimationFrame(b),L.current=null,F()},[F]),M=S.useRef(x);S.useEffect(()=>{M.current=x},[x]),S.useEffect(()=>()=>{w.current?.(),w.current=null,zt(T);const b=L.current;b!==null&&(window.cancelAnimationFrame(b),L.current=null)},[T]),S.useLayoutEffect(()=>{const b=t.current,f=b?.querySelector("[data-markdown-content]")??b;if(f)for(const[a,c]of Object.entries(s))f.style.setProperty(a,c)},[t,s]),S.useLayoutEffect(()=>{m.current+=1,y.current=null},[i,r,o,n,e]),S.useLayoutEffect(()=>{if(!d)return;const b=t.current,f=b?.querySelector("[data-markdown-content]")??b;if(!f||f.childNodes.length>0)return;const a=Ze.take(d);if(a){f.appendChild(a),_e(f);const c=xe(i);for(const u of Array.from(f.children))u.setAttribute(Y,c);gn(f,i.codeBlockLineWrap,i.labels),kn(f,i.tableCellWrap,i.labels),y.current={key:d,copiedLabel:i.labels.copied},le("ui.markdown_renderer.dom_cache.hit")}},[t,i,d,e.length]),S.useLayoutEffect(()=>{const b=t.current,f=b?.querySelector("[data-markdown-content]")??b;if(f)return()=>{const a=y.current;if(!a||f.childNodes.length===0||K(f)||Array.from(f.children).some(h=>!h.hasAttribute("data-md-id"))||f.querySelector("[data-md-copy-pending]"))return;const c=window.getSelection();if(c?.rangeCount&&!c.isCollapsed&&c.getRangeAt(0).intersectsNode(f))return;const u=f.querySelector("[data-md-menu]:not(.hidden)"),E=Array.from(f.querySelectorAll("[data-md-action]")).some(h=>h.getAttribute("title")===a.copiedLabel);if(u||E)return;xr(f);const k=document.createDocumentFragment();k.append(...Array.from(f.childNodes)),Ze.store({...a.key,fragment:k}),le("ui.markdown_renderer.dom_cache.capture")}},[t]),S.useLayoutEffect(()=>{const b=t.current,f=b?.querySelector("[data-markdown-content]")??b;if(!f)return;const a=xe(i);if(e&&f.childNodes.length===0){const c=un(e,n,r,o);let u=!1;for(const E of c){const k=document.createElement("div");k.setAttribute("data-md-block",""),k.style.display="contents",k.innerHTML=E.html,Me(k,i),k.setAttribute("data-md-id",E.id),k.setAttribute(Y,a),u||=K(k),f.appendChild(k)}u&&g(),_e(f),p&&I()}else!l.current&&K(f)&&g()},[t,e,n,r,o,i,g,p,I]),S.useEffect(()=>()=>{l.current?.cleanup(),l.current=null},[]),S.useEffect(()=>{const b=t.current;if(!b)return;const f=b.querySelector("[data-markdown-content]")??b;let a=!0;const c=m.current,u=xe(i);if(!n){const E=mn(e,r,o);if(E&&Pr(f,E,u)){y.current=d?{key:d,copiedLabel:i.labels.copied}:null,le("ui.markdown_renderer.settled_paint.reused"),x();return}}return fn(e,n,r,o).then(E=>{if(!a||m.current!==c)return;const k=Array.from(f.children),h=p&&f.querySelector('table[data-md-table-layout="fixed"]')!==null,R=Array.from(f.querySelectorAll("details[data-md-details]")).map(C=>({summary:C.querySelector("summary")?.textContent,open:C.open}));let A=0;E.forEach((C,O)=>{let v=k[O],V=!1;if(v||(v=document.createElement("div"),v.setAttribute("data-md-block",""),v.style.display="contents",f.appendChild(v),V=!0),v.getAttribute("data-md-id")===C.id){if(v.getAttribute(Y)!==u){const $=K(v);$&&(l.current?.cleanup(),l.current=null);const W=document.createElement("div");W.setAttribute("data-md-block",""),W.style.display="contents",W.innerHTML=C.html,Me(W,i),W.setAttribute("data-md-id",C.id),W.setAttribute(Y,u),v.replaceWith(W),($||K(W))&&g()}!l.current&&K(v)&&g();return}const H=v.getAttribute("data-md-id"),q=H&&v.getAttribute(Y)===u?C.patchFrom?.(H):null;if(q&&Mn(v,q)){Ir(v),v.setAttribute("data-md-id",C.id);return}const G=document.createElement("div");if(G.innerHTML=C.html,Me(G,i),V&&n&&O>0){const $=Math.min(A,4)*55;A+=1;for(const W of Array.from(G.children))W.classList.add("oc-md-block-enter"),$>0&&W instanceof HTMLElement&&W.style.setProperty("--oc-md-enter-delay",`${$}ms`)}const re=K(v),oe=K(G);xt(v,G,{childrenOnly:!0,onBeforeElUpdated:($,W)=>($.matches("details[data-md-details]")&&W.matches("details[data-md-details]")&&$.querySelector("summary")?.textContent===W.querySelector("summary")?.textContent&&W.toggleAttribute("open",$.hasAttribute("open")),!$.isEqualNode(W))}),v.setAttribute("data-md-id",C.id),v.setAttribute(Y,u),(re||oe||K(v))&&g()});const N=K(f);let B=!1;for(let C=k.length-1;C>=E.length;C-=1){const O=k[C];O&&K(O)&&(B=!0),O?.remove()}_e(f),(B||k.length>E.length&&N)&&g(),R.length>0&&f.querySelectorAll("details[data-md-details]").forEach((C,O)=>{const v=R[O];v&&v.summary===C.querySelector("summary")?.textContent&&(C.open=v.open)}),y.current=d?{key:d,copiedLabel:i.labels.copied}:null,h?I():x()}),()=>{a=!1}},[t,i,d,r,o,g,I,x,n,p,e]),S.useEffect(()=>{const b=t.current;if(b)return yn(b,i)},[t,i])},_t=t=>t==="tool"?"markdown-content markdown-tool":t==="reasoning"?"markdown-content markdown-reasoning":"markdown-content leading-relaxed",Dr=t=>{const e=j.c(46),{content:n,part:r,messageId:o,isAnimated:s,skipFadeIn:i,className:d,isStreaming:p,variant:l,onShowPopup:m,enableFileReferences:L}=t,w=s===void 0?!0:s,y=i===void 0?!1:i,g=p===void 0?!1:p,P=l===void 0?"assistant":l,_=L===void 0?!0:L;le("ui.markdown_renderer.render"),g&&le("ui.markdown_renderer.render.streaming"),tn("ui.markdown_renderer.content_len",n.length);const T=kt(),{editor:F,runtime:x}=et(),I=S.useRef(null),M=tt()??"",b=U(Kr);let f;e[0]!==M||e[1]!==b?(f=z=>{M&&b(M,z)},e[0]=M,e[1]=b,e[2]=f):f=e[2];const a=f;let c;e[3]!==m?(c={containerRef:I,onShowPopup:m,enableFullscreen:At,enablePanZoom:ne.showPanZoomControls},e[3]=m,e[4]=c):c=e[4],Rt(c);const u=_&&!g;let E;e[5]!==F||e[6]!==M||e[7]!==x.isVSCode||e[8]!==u?(E={containerRef:I,effectiveDirectory:M,editor:F,preferRuntimeEditor:x.isVSCode,enabled:u},e[5]=F,e[6]=M,e[7]=x.isVSCode,e[8]=u,e[9]=E):E=e[9],Mt(E);let k;e[10]!==M?(k={containerRef:I,directory:M},e[10]=M,e[11]=k):k=e[11],Et(k),yt(I);let h;e[12]!==T?(h=nt(T),e[12]=T,e[13]=h):h=e[13];const R=h,A=U(Ur)&&nn(),N=Tt(T,M&&!A?a:void 0,ne),{locale:B}=rt(),C=P==="assistant"?"label":"local",O=r&&(r.type==="text"||r.type==="reasoning")&&r.time?.end!==void 0?r:null;let v;e[14]===Symbol.for("react.memo_cache_sentinel")?(v=rn(),e[14]=v):v=e[14];const V=v,H=O?.sessionID,q=O?.messageID,G=O?.id;let re;e:{if(g||!H||!q||!G||n.length===0||n.length>Fr){re=null;break e}const z=`${V}\0${H}`,Le=`${q}\0${G}\0${C}\0${n.length}`;let he;e[15]!==M||e[16]!==B||e[17]!==z||e[18]!==Le?(he={scope:z,id:Le,locale:B,directory:M},e[15]=M,e[16]=B,e[17]=z,e[18]=Le,e[19]=he):he=e[19],re=he}const oe=re,$=`markdown-${r?.id?`part-${r.id}`:`message-${o}`}`,W=!g;let ue;e[20]!==n||e[21]!==N||e[22]!==oe||e[23]!==C||e[24]!==g||e[25]!==R||e[26]!==W?(ue={containerRef:I,text:n,streaming:g,imageMode:C,syntaxVars:R,ctx:N,domCacheKey:oe,tableLayoutSettled:W},e[20]=n,e[21]=N,e[22]=oe,e[23]=C,e[24]=g,e[25]=R,e[26]=W,e[27]=ue):ue=e[27],Nt(ue);const Ce=C==="label"&&!g?H:void 0;let me;e[28]!==M||e[29]!==m||e[30]!==q||e[31]!==Ce?(me={containerRef:I,sessionId:Ce,messageId:q,directory:M,onShowPopup:m},e[28]=M,e[29]=m,e[30]=q,e[31]=Ce,e[32]=me):me=e[32],Nr(me);let J;e[33]!==d?(J=ot("break-words w-full min-w-0",d),e[33]=d,e[34]=J):J=e[34];let Q;e[35]!==P?(Q=_t(P),e[35]=P,e[36]=Q):Q=e[36];let ee;e[37]!==Q?(ee=D.jsx("div",{className:Q,"data-markdown-content":!0}),e[37]=Q,e[38]=ee):ee=e[38];let fe;e[39]!==J||e[40]!==ee?(fe=D.jsx("div",{className:J,ref:I,children:ee}),e[39]=J,e[40]=ee,e[41]=fe):fe=e[41];const pe=fe;if(w){let z;return e[42]!==$||e[43]!==pe||e[44]!==y?(z=D.jsx(Yt,{skipAnimation:y,children:pe},$),e[42]=$,e[43]=pe,e[44]=y,e[45]=z):z=e[45],z}return pe},Qs=S.memo(Dr,(t,e)=>t.content===e.content&&t.isStreaming===e.isStreaming&&t.variant===e.variant&&t.isAnimated===e.isAnimated&&t.skipFadeIn===e.skipFadeIn&&t.className===e.className&&t.messageId===e.messageId&&t.onShowPopup===e.onShowPopup&&t.enableFileReferences===e.enableFileReferences&&t.part?.id===e.part?.id),$r=t=>{const e=j.c(36),{content:n,className:r,variant:o,disableLinkSafety:s,frontmatter:i,onShowPopup:d,mermaidControls:p,allowMermaidWheelEvents:l,enableFileReferences:m,allowRawHtml:L}=t,w=o===void 0?"assistant":o,y=p===void 0?ne:p,g=l===void 0?!1:l,P=m===void 0?!0:m,_=L===void 0?!1:L,{editor:T,runtime:F}=et(),x=kt(),I=S.useRef(null),M=tt()??"";let b;e[0]!==n||e[1]!==i?(b=i?Jn(n):{frontmatter:null,body:n},e[0]=n,e[1]=i,e[2]=b):b=e[2];const{frontmatter:f,body:a}=b;let c;e[3]!==g||e[4]!==y.showPanZoomControls||e[5]!==d?(c={containerRef:I,onShowPopup:d,enableFullscreen:At,enablePanZoom:y.showPanZoomControls,allowMermaidWheelEvents:g},e[3]=g,e[4]=y.showPanZoomControls,e[5]=d,e[6]=c):c=e[6],Rt(c);let u;e[7]!==T||e[8]!==M||e[9]!==P||e[10]!==F.isVSCode?(u={containerRef:I,effectiveDirectory:M,editor:T,preferRuntimeEditor:F.isVSCode,enabled:P},e[7]=T,e[8]=M,e[9]=P,e[10]=F.isVSCode,e[11]=u):u=e[11],Mt(u);const E=!s;let k;e[12]!==M||e[13]!==E?(k={containerRef:I,enabled:E,directory:M},e[12]=M,e[13]=E,e[14]=k):k=e[14],Et(k),yt(I);let h;e[15]!==x?(h=nt(x),e[15]=x,e[16]=h):h=e[16];const R=h,A=Tt(x,void 0,y),N=_?"sanitize":"escape";let B;e[17]!==A||e[18]!==a||e[19]!==R||e[20]!==N?(B={containerRef:I,text:a,streaming:!1,imageMode:"local",rawHtml:N,syntaxVars:R,ctx:A,tableLayoutSettled:!0},e[17]=A,e[18]=a,e[19]=R,e[20]=N,e[21]=B):B=e[21],Nt(B);let C;e[22]!==r?(C=ot("break-words w-full min-w-0",r),e[22]=r,e[23]=C):C=e[23];let O;e[24]!==f||e[25]!==i?(O=i==="properties"&&f?D.jsx(er,{frontmatter:f}):null,e[24]=f,e[25]=i,e[26]=O):O=e[26];let v;e[27]!==w?(v=_t(w),e[27]=w,e[28]=v):v=e[28];const V=_?"":void 0;let H;e[29]!==v||e[30]!==V?(H=D.jsx("div",{className:v,"data-markdown-content":!0,"data-markdown-html":V}),e[29]=v,e[30]=V,e[31]=H):H=e[31];let q;return e[32]!==C||e[33]!==O||e[34]!==H?(q=D.jsxs("div",{className:C,ref:I,children:[O,H]}),e[32]=C,e[33]=O,e[34]=H,e[35]=q):q=e[35],q},ea=S.memo($r,(t,e)=>{const n=t.mermaidControls??ne,r=e.mermaidControls??ne;return t.content===e.content&&t.variant===e.variant&&t.className===e.className&&t.disableLinkSafety===e.disableLinkSafety&&t.frontmatter===e.frontmatter&&t.onShowPopup===e.onShowPopup&&n.download===r.download&&n.copy===r.copy&&n.showPanZoomControls===r.showPanZoomControls&&t.allowMermaidWheelEvents===e.allowMermaidWheelEvents&&t.enableFileReferences===e.enableFileReferences&&t.allowRawHtml===e.allowRawHtml});function Hr(t){Jt(t)}function qr(t){Qt(t.sessionId,t.messageId)}function Kr(t){return t.openContextPreview}function Ur(t){return t.openLinksInBrowserPanel}export{Qs as MarkdownRenderer,ea as SimpleMarkdownRenderer};
1
+ import{f as j,j as D,R as S}from"./vendor-react-BUCujlKS.js";import{m as xt}from"./vendor-morphdom-B7dS_VPB.js";import{r as It,a as Pt}from"./vendor-beautiful-mermaid-DztCUpLZ.js";import{aZ as Qe,ft as Ft,bG as Oe,fu as Ot,aY as Wt,fv as De,fw as Bt,fx as Dt,fy as $t,fz as Ht,fA as qt,fB as Kt,b7 as et,aE as tt,bN as nt,u as rt,N as ot,a9 as Ut,aa as $e,fC as Vt,fD as zt,fE as jt,d1 as Gt,fF as Zt,d0 as Xt,fG as Yt,fH as Jt,dn as Qt}from"./useAppFontEffects-Dm6zEvrf.js";import{ac as en,l as de,k as st,b0 as le,b1 as tn,u as U,ax as nn,a5 as rn,b2 as on,b3 as at,b4 as sn,b5 as an}from"./katex.min-F4TD1ekM.js";import{L as Ie,c as ln,s as cn,i as dn,r as un,g as mn,a as fn,b as pn}from"./markdownCore-BY21GJ_M.js";import{a as hn,r as bn}from"./textMateThemeFromAppTheme-tYpAceV3.js";import{s as K,c as wn,a as He,b as gn,d as kn,e as Me,f as yn,M as Re}from"./decorate-CemSwkUs.js";import{p as En,i as An,a as Pe,b as vn,s as it}from"./vendor-yaml-CE-D_49-.js";import{o as Sn,a as Cn,s as Ln}from"./vendor-zod-DDir2TeQ.js";import{a as Mn}from"./openFenceIncremental-7wgnc2ZL.js";import"./vendor-scheduler-7OC5HNn7.js";import"./vendor-elkjs-BRwcR927.js";import"./vendor-entities-C3BA0AJP.js";import"./vendor-base-ui-CPKyhvxM.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-Bmi0tTrf.js";import"./vendor-tanstack-virtual-core-CdGDGrnp.js";import"./vendor-framer-motion-DxDVhOLc.js";import"./vendor-motion-dom-HXPOMxb7.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-codemirror-commands-dar6chwA.js";import"./vendor-codemirror-state-Dek9sMtw.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-B66jUSmE.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-codemirror-language-DyL0aCoH.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-streamparser-CmlTsbN2.js";import"./vendor-codemirror-lang-javascript-Cem6LjJ8.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-CIqXJolH.js";import"./vendor-codemirror-lang-json-C9rLLO0q.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-9qjxcVkg.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-D7VQUxeE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-Cikh4w2I.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-VzNDjH03.js";import"./vendor-codemirror-lang-python-DVl8-2Op.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-capacitor-core-B4EWRrHz.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-legendapp-list-D2O6oUGf.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-opencode-client-h8RufjAw.js";import"./vendor-marked-CkSbCoiw.js";import"./vendor-marked-linkify-it-CXI_LHIE.js";import"./vendor-linkify-it-DZCzzDkK.js";import"./vendor-uc.micro-BAd0H0z4.js";import"./vendor-remend-DcBOpbSu.js";import"./vendor-katex-CBXxfSPY.js";import"./vendor-dompurify-r8glNMJW.js";import"./themeResolver-yJ9XpNMI.js";import"./vendor-pierre-theming-Dgp7B_O4.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./selectionMarkdown-B_3WTOUr.js";const We=t=>{const e=t.target;if(!(e instanceof Element))return null;const n=e.closest("a[href]");return!(n instanceof HTMLAnchorElement)||n.getAttribute("data-openchamber-file-link")==="true"?null:n},Te=(t,e)=>{if(t.defaultPrevented)return!1;const r=We(t)?.getAttribute("href")??"";return Oe(r)?(t.preventDefault(),t.stopPropagation(),e?.(r),!0):!1},lt=t=>t.button===0&&!t.metaKey&&!t.ctrlKey&&!t.altKey&&!t.shiftKey,Rn=(t,e)=>{const n=e.openSessionLink;if(!n||t.defaultPrevented)return!1;const r=We(t)?.getAttribute("href")??"",o=Ft(r,e.ownOrigins??[]);return!o||Qe(r)&&!lt(t)?!1:(t.preventDefault(),t.stopPropagation(),n(o),!0)},Tn=(t,e)=>{const n=s=>{if(Rn(s,e)||Te(s,e.openAppLink)||!e.allowExternalHttp||s.defaultPrevented||!lt(s))return;const i=We(s)?.getAttribute("href")??"";Qe(i)&&(s.preventDefault(),s.stopPropagation(),e.openExternalHttp(i))},r=s=>{s.button===1&&Te(s,e.openAppLink)},o=s=>{Te(s)};return t.addEventListener("click",n),t.addEventListener("auxclick",r),t.addEventListener("dragstart",o),()=>{t.removeEventListener("click",n),t.removeEventListener("auxclick",r),t.removeEventListener("dragstart",o)}},ct='[data-openchamber-file-link="true"]',Nn=t=>{if(!(t instanceof Element))return null;const e=t.closest(ct);return e instanceof HTMLElement?e:null},_n=(t,e)=>{if(!(t instanceof Element))return null;const n=t.closest("a[href]");if(!(n instanceof HTMLAnchorElement))return null;const r=e.hrefCandidate(n);return!r||!e.isResolvable(r)?null:n},xn=(t,e)=>{const n=r=>{const o=Nn(r.target)??_n(r.target,e);if(!o||(r.preventDefault(),r.stopPropagation(),Ot(t)))return;const s=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.platform);e.openFileReference(o,{external:s?r.metaKey:r.ctrlKey})};return t.addEventListener("click",n),()=>t.removeEventListener("click",n)},dt="openchamber-md",ge={background:"transparent",foreground:"var(--md-syntax-foreground)",comment:"var(--md-syntax-comment)",keyword:"var(--md-syntax-keyword)",string:"var(--md-syntax-string)",number:"var(--md-syntax-number)",function:"var(--md-syntax-function)",variable:"var(--md-syntax-variable)",type:"var(--md-syntax-type)",operator:"var(--md-syntax-operator)"},In=Object.fromEntries(Object.keys(Wt({base:ge})).map(t=>[t,`var(--md-token-${t})`])),Pn={name:dt,colors:{"editor.background":"transparent","editor.foreground":ge.foreground},tokenColors:[...hn({base:ge,tokens:In}),{scope:["markup.bold","punctuation.definition.bold"],settings:{fontStyle:"bold"}},{scope:["markup.italic","punctuation.definition.italic"],settings:{fontStyle:"italic"}},{scope:["markup.heading","markup.heading entity.name"],settings:{foreground:ge.keyword,fontStyle:"bold"}},{scope:["markup.inserted","punctuation.definition.inserted"],settings:{foreground:"var(--md-syntax-inserted)"}},{scope:["markup.deleted","punctuation.definition.deleted","invalid","invalid.illegal"],settings:{foreground:"var(--md-syntax-deleted)"}}]};let qe=!1;const Fn=()=>{qe||(qe=!0,bn(dt,()=>Promise.resolve(Pn)))},Ae="[data-openchamber-markdown-image-source]",ut="data-openchamber-markdown-inline-image",ke=`[${ut}]`,On="[data-message-id]",mt=12,ft="inline-block max-w-[min(100%,30rem)] align-top my-1 me-1",Wn="block max-w-full cursor-zoom-in overflow-hidden rounded-lg border border-border/40 bg-muted/10 outline-none focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)]",Bn="block h-auto max-h-[30rem] w-auto max-w-full object-contain",ye=new WeakMap,Ke=new WeakMap,te=t=>t.getAttribute("data-openchamber-markdown-image-source")??"",Dn=t=>t.textContent?.trim()||"image",$n=t=>{const e=[];for(const n of Array.from(t.querySelectorAll(Ae))){const r=te(n);if(r&&!e.includes(r)&&e.push(r),e.length>=mt)break}return e},Hn=async(t,e)=>{const n=document.createElement("img");return n.alt=e,n.decoding="async",n.referrerPolicy="no-referrer",n.draggable=!1,n.className=Bn,n.src=t,await n.decode(),n},qn=(t,e,n)=>new Promise((r,o)=>{const s=document.createElement("video");s.controls=!0,s.preload="metadata",s.playsInline=!0,s.title=e,s.setAttribute(Ie,"true");const i=()=>{s.removeEventListener("loadedmetadata",d),s.removeEventListener("error",p),n.removeEventListener("abort",p)},d=()=>{i(),r(s)},p=()=>{i(),s.removeAttribute("src"),o(new Error("Video is not available"))};s.addEventListener("loadedmetadata",d),s.addEventListener("error",p),n.addEventListener("abort",p),s.src=t}),Kn=(t,e,n)=>{const r=document.createElement("button");r.type="button",r.className=Wn,r.setAttribute(ut,"true"),r.setAttribute("aria-label",n.filename),r.appendChild(e),ye.set(r,n),t.className=ft,t.replaceChildren(r)},Un=8,Ue=.5,Vn=t=>t.querySelector(ke)?.querySelector("img")??null,Ve=t=>{if(!(t instanceof HTMLElement)||t.tagName!=="P")return;const e=[];for(const l of Array.from(t.childNodes))if(!(l.nodeType===3&&!l.textContent?.trim())){if(!(l instanceof HTMLElement)||!l.matches(Ae))return;e.push(l)}if(e.length<2)return;const n=e.map(Vn),r=n.map(l=>l&&l.naturalWidth>0&&l.naturalHeight>0?{width:l.naturalWidth,height:l.naturalHeight}:null);if(r.some(l=>l===null))return;const o=r.filter(l=>l!==null),s=o.map(({width:l,height:m})=>l/m),i=s.reduce((l,m)=>l+m,0),d=Math.min(...o.map(({height:l})=>l)),p=(e.length-1)*Ue;t.setAttribute("data-openchamber-markdown-image-row","true"),Object.assign(t.style,{display:"flex",flexWrap:"wrap",alignItems:"flex-start",gap:`${Ue}rem`,maxWidth:`calc(min(30rem, ${d}px) * ${i} + ${p}rem)`}),e.forEach((l,m)=>{const L=s[m]??1,w=o[m];Object.assign(l.style,{flex:`${L} 1 0px`,minWidth:`${Un*L}rem`,maxWidth:`min(${w?.width??0}px, ${30*L}rem)`,margin:"0"});const y=n[m];y&&(y.style.width="100%")})},zn=t=>{const{container:e,sessionId:n,messageId:r,directory:o,apiBaseUrl:s,useWorkspaceFsBridge:i,onShowPopup:d}=t,p=new AbortController,{signal:l}=p,m=new WeakSet,L=new Set;let w=null;const y=a=>{const c=$n(e).filter(De),u=c.join("\0");return(!w||w.sources!==u||a)&&(w={sources:u,result:Ht({sources:c,directory:o,sessionId:n,messageId:r,signal:l})}),w.result},g=async(a,c)=>{if(!De(a))return Bt(a,l);if(i)return Dt(a,o,l);const u=(await y(c)).get(a);if(u?.status!=="ready")throw new Error("Image is not available");return await en(s),$t(u,o)},P=async a=>{const c=te(a),u=Dn(a);m.add(a);try{if(dn(c)){if(i)throw new Error("Video is not available");const k=await qn(await g(c,!1),u,l);if(l.aborted||!a.isConnected||te(a)!==c)return;Ke.set(a,a.className),a.className=ft,a.replaceChildren(k);return}const E=await Hn(await g(c,!1),u);if(l.aborted||!a.isConnected||te(a)!==c)return;Kn(a,E,{filename:u,resolveUrl:()=>g(c,!0)}),Ve(a.parentElement)}catch{l.aborted||L.add(c)}finally{m.delete(a)}},_=a=>{const c=a.target;if(!(c instanceof HTMLVideoElement)||!c.hasAttribute(Ie))return;const u=c.closest(Ae);if(!u||!e.contains(u))return;const E=te(u),k=()=>{L.add(E),u.className=Ke.get(u)??"",u.textContent=c.title||E};if(!ln(c)){k();return}g(E,!0).then(h=>{c.isConnected&&cn(c,h)},()=>{!l.aborted&&c.isConnected&&k()})};e.addEventListener("error",_,!0);const T=typeof IntersectionObserver>"u"?null:new IntersectionObserver(a=>{for(const c of a)!c.isIntersecting||!(c.target instanceof HTMLElement)||(T?.unobserve(c.target),P(c.target))},{rootMargin:"200px"}),F=()=>{const a=new Set;for(const c of Array.from(e.querySelectorAll(Ae))){const u=te(c);if(a.add(u),a.size>mt)break;if(c.querySelector(`[${Ie}]`))continue;const E=c.querySelector(ke);if(E){const k=ye.get(E)?.filename??E.getAttribute("aria-label")??"image";ye.set(E,{filename:k,resolveUrl:()=>g(u,!0)}),Ve(c.parentElement);continue}!u||L.has(u)||m.has(c)||c.closest("a")||(T?(m.add(c),T.observe(c)):P(c))}};let x=null;const I=()=>{x===null&&(x=window.requestAnimationFrame(()=>{x=null,l.aborted||F()}))},M=new MutationObserver(I);M.observe(e,{childList:!0,subtree:!0});const b=async a=>{const c=e.closest(On)??e,u=Array.from(c.querySelectorAll(ke)).flatMap(A=>{const N=ye.get(A);return N?[{button:A,entry:N}]:[]});if(!u.some(A=>A.button===a))return;const E=await Promise.allSettled(u.map(({entry:A})=>A.resolveUrl()));if(l.aborted)return;const k=u.flatMap(({button:A,entry:N},B)=>{const C=E[B];return C?.status!=="fulfilled"?[]:[{url:C.value,filename:N.filename,button:A}]}),h=k.findIndex(A=>A.button===a),R=k[h];R&&d({open:!0,title:R.filename,content:"",metadata:{tool:"markdown-image-preview",filename:R.filename},image:{url:R.url,filename:R.filename,gallery:k.map(({url:A,filename:N})=>({url:A,filename:N})),index:h}})},f=a=>{const c=a.target;if(!(c instanceof Element))return;const u=c.closest(ke);!u||!e.contains(u)||(a.preventDefault(),b(u))};return e.addEventListener("click",f),F(),()=>{p.abort(),x!==null&&window.cancelAnimationFrame(x),M.disconnect(),T?.disconnect(),e.removeEventListener("click",f),e.removeEventListener("error",_,!0)}},Ee=new Map;let ie=null;const jn=()=>{if(ie)return ie;const t=globalThis.ResizeObserver;return t?(ie=new t(e=>{for(const n of e){const r=Ee.get(n.target);if(!r)continue;const{width:o}=n.contentRect;if(o===r.width)continue;const s=r.width===null;r.width=o,s||r.onWidthChange()}}),ie):null},Gn=(t,e)=>{const n=jn();return n?(Ee.set(t,{width:null,onWidthChange:e}),n.observe(t),()=>{Ee.delete(t)&&(n.unobserve(t),!(Ee.size>0)&&(n.disconnect(),ie=null))}):()=>{}},ze=(t,e,n)=>{let r=0;for(const s of t){const i=r+s.data.length;if(e<i||e===i&&n==="left")return{node:s,offset:Math.max(0,e-r)};r=i}const o=t.at(-1);return o?{node:o,offset:o.data.length}:null},Zn=/^(?:\uFEFF)?(---|\+\+\+)[^\S\r\n]*\r?\n([\s\S]*?)\r?\n\1[^\S\r\n]*(?:\r?\n|$)/,Fe=t=>Pe(t)?String(t.value??""):it(t).trimEnd(),Xn=t=>t?Pe(t)?{kind:"text",text:Fe(t)}:vn(t)&&t.items.every(e=>Pe(e))?{kind:"list",items:t.items.map(e=>Fe(e))}:{kind:"code",text:it(t).trimEnd()}:{kind:"text",text:""},Yn=(t,e)=>{if(t!=="---")return{kind:"raw",text:e};const n=En(e);return n.errors.length>0?{kind:"raw",text:e}:n.contents===null?null:An(n.contents)?{kind:"properties",properties:n.contents.items.map(r=>({key:r.key?Fe(r.key):"",value:Xn(r.value)}))}:{kind:"raw",text:e}},Jn=t=>{const e=t.match(Zn);return e?{frontmatter:Yn(e[1],e[2]),body:t.slice(e[0].length)}:{frontmatter:null,body:t}},pt="oc-surface-code m-0 whitespace-pre-wrap break-words font-mono text-[0.95em]",Qn=t=>{const e=j.c(8),{value:n}=t;if(n.kind==="list"){let o;e[0]!==n.items?(o=n.items.map(tr),e[0]=n.items,e[1]=o):o=e[1];let s;return e[2]!==o?(s=D.jsx("span",{className:"flex flex-wrap gap-1",children:o}),e[2]=o,e[3]=s):s=e[3],s}if(n.kind==="code"){let o;return e[4]!==n.text?(o=D.jsx("pre",{dir:"ltr",className:pt,children:n.text}),e[4]=n.text,e[5]=o):o=e[5],o}let r;return e[6]!==n.text?(r=D.jsx("span",{dir:"auto",className:"whitespace-pre-wrap",children:n.text}),e[6]=n.text,e[7]=r):r=e[7],r},er=t=>{const e=j.c(6),{frontmatter:n}=t;if(n.kind==="raw"){let s;return e[0]!==n.text?(s=D.jsx("pre",{dir:"ltr",className:`${pt} mb-4 rounded-lg border border-[var(--interactive-border)] bg-[var(--syntax-background)] px-3 py-2.5 typography-meta`,children:n.text}),e[0]=n.text,e[1]=s):s=e[1],s}let r;e[2]!==n.properties?(r=n.properties.map(nr),e[2]=n.properties,e[3]=r):r=e[3];let o;return e[4]!==r?(o=D.jsx("dl",{className:"mb-4 grid grid-cols-[fit-content(40%)_minmax(0,1fr)] items-baseline gap-x-4 gap-y-1.5 rounded-lg border border-[var(--interactive-border)] px-3 py-2.5 typography-meta",children:r}),e[4]=r,e[5]=o):o=e[5],o};function tr(t,e){return D.jsx("span",{dir:"auto",className:"rounded-full bg-[var(--surface-subtle)] px-2 py-px",children:t},e)}function nr(t,e){const{key:n,value:r}=t;return D.jsxs("div",{className:"contents",children:[D.jsx("dt",{dir:"auto",className:"oc-ui-start-align break-words text-muted-foreground",children:n}),D.jsx("dd",{className:"m-0 min-w-0 break-words text-foreground",children:D.jsx(Qn,{value:r})})]},e)}const rr=new Set(["dockerfile","makefile","readme","license",".env",".gitignore",".npmrc"]),je=Array.from(rr).map(t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),ht=t=>Kt(t),or=t=>qt(t),bt=t=>{let e;try{e=new URL(t.trim())}catch{return null}if(e.protocol!=="file:"||e.hostname&&e.hostname!=="localhost")return null;try{const n=decodeURIComponent(e.pathname);return/^\/[A-Za-z]:\//.test(n)?n.slice(1):n.startsWith("/")?n:null}catch{return null}},ve=t=>{let e=(t||"").trim();return e?((e.startsWith("`")&&e.endsWith("`")||e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1).trim()),e=e.replace(/[.,;!?]+$/g,""),e.endsWith(")")&&!e.includes("(")&&(e=e.slice(0,-1)),e.endsWith("]")&&!e.includes("[")&&(e=e.slice(0,-1)),e):""},be=t=>{let e=ve(t);if(!e)return"";const n=e.indexOf(";");n>=0&&(e=e.slice(0,n)),e=e.replace(/#.*$/,"");const r=e.match(/^(.*\.[A-Za-z0-9_-]{1,16}):.*$/);r&&(e=r[1]??e);const o=je.length>0?e.match(new RegExp(`^(.*(?:/|^)(${je})):.*$`,"i")):null;return o&&(e=o[1]??e),ve(e)},wt=t=>{const e=ve(t);if(!e)return null;const n=e.indexOf(";"),r=n>=0?ve(e.slice(0,n)):e;if(!r)return null;const o=r.match(/^(.*?):(\d+)-(\d+)$/);if(o){const p=be(o[1]??""),l=Number.parseInt(o[2]??"",10),m=Number.parseInt(o[3]??"",10);return!p||!Number.isFinite(l)||!Number.isFinite(m)||m<l?null:{path:p,line:l,endLine:m}}const s=r.match(/^(.*)#L(\d+)(?:C(\d+))?$/i);if(s){const p=be(s[1]??""),l=Number.parseInt(s[2]??"",10),m=s[3]?Number.parseInt(s[3],10):void 0;return!p||!Number.isFinite(l)?null:{path:p,line:l,column:Number.isFinite(m??Number.NaN)?m:void 0}}const i=r.match(/^(.*?):(\d+)(?::(\d+))?$/);if(i){const p=be(i[1]??""),l=Number.parseInt(i[2]??"",10),m=i[3]?Number.parseInt(i[3],10):void 0;return!p||!Number.isFinite(l)?null:{path:p,line:l,column:Number.isFinite(m??Number.NaN)?m:void 0}}const d=be(r);return d?{path:d}:null},sr=/(?:[A-Za-z]:[\\/])?[\w.\-/@+]*[\w\-/@+]\.[A-Za-z0-9]{1,8}(?::\d+(?:-\d+)?(?::\d+)?)?/g,ar=4,ir=1e3,lr=200,Z=new Map;let we=0;const Ge=[],cr=()=>de()?lr:ir,gt=(t,e)=>`${t}\0${e}`,dr=(t,e)=>{const n=ht(t);if(!n)return Promise.resolve(!1);const r=gt(e,n),o=Z.get(r);if(o)return Z.delete(r),Z.set(r,o),o;const s=new Promise(d=>{const p=()=>{we+=1,st(`/api/fs/stat?path=${encodeURIComponent(n)}&optional=true`,{method:"GET",cache:"no-store",headers:e?{"x-opencode-directory":e}:void 0}).then(async l=>{if(!l.ok){d(!1);return}const m=await l.json().catch(()=>null);d(m?.exists!==!1)}).catch(()=>d(!1)).finally(()=>{we=Math.max(0,we-1),Ge.shift()?.()})};if(we<ar){p();return}Ge.push(p)}),i=cr();for(;Z.size>=i;){const d=Z.keys().next().value;if(typeof d!="string")break;Z.delete(d)}return Z.set(r,s),s},ur=Sn({paths:Cn(Ln())}),se=new Map,mr=200,fr=(t,e)=>{if(!t||!e||de())return Promise.resolve(null);const n=gt(e,t),r=se.get(n);if(r)return r;const o=st(`/api/fs/find-by-name?name=${encodeURIComponent(t)}`,{method:"GET",cache:"no-store",headers:{"x-opencode-directory":e}}).then(async s=>{if(!s.ok)return null;const i=ur.safeParse(await s.json().catch(()=>null)),d=i.success?i.data.paths:[];return d.length===1?d[0]:null}).catch(()=>null);for(;se.size>=mr;){const s=se.keys().next();if(s.done)break;se.delete(s.value)}return se.set(n,o),o},pr={maxSessions:8,maxEntriesPerSession:4};class hr{maxSessions;maxEntriesPerSession;sessions=new Map;constructor(e=pr){this.maxSessions=Math.max(1,e.maxSessions),this.maxEntriesPerSession=Math.max(1,e.maxEntriesPerSession)}store(e){const n=e.scope,r=e.id;let o=this.sessions.get(n);for(o===void 0?(o=new Map,this.sessions.set(n,o)):this.refreshSession(n,o),o.delete(r),o.set(r,e);o.size>this.maxEntriesPerSession;)this.removeOldestEntry(o);for(;this.sessions.size>this.maxSessions;)this.removeOldestSession()}take(e){const n=e.scope,r=this.sessions.get(n);if(!r)return null;const o=e.id;this.refreshSession(n,r);const s=r.get(o);return s===void 0||s.locale!==e.locale||s.directory!==e.directory?null:(r.delete(o),r.size===0&&this.sessions.delete(n),s.fragment)}clear(){this.sessions.clear()}stats(){let e=0;for(const n of this.sessions.values())e+=n.size;return{sessions:this.sessions.size,entries:e}}refreshSession(e,n){this.sessions.delete(e),this.sessions.set(e,n)}removeOldestEntry(e){const n=e.keys().next().value;n!==void 0&&e.delete(n)}removeOldestSession(){const e=this.sessions.keys().next().value;e!==void 0&&this.sessions.delete(e)}}const Ze=new hr,kt=()=>{const t=j.c(4),e=Ut();let n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n=$e(!1),t[0]=n):n=t[0];const r=n;let o;t[1]===Symbol.for("react.memo_cache_sentinel")?(o=$e(!0),t[1]=o):o=t[1];const s=o;let i;return t[2]!==e?.currentTheme?(i=e?.currentTheme??(typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches?s:r),t[2]=e?.currentTheme,t[3]=i):i=t[3],i},br=()=>{if(typeof window>"u")return[];const t=[window.location.origin];try{const e=new URL(at()||window.location.href,window.location.href).origin;t.includes(e)||t.push(e)}catch{}return t},yt=t=>{const e=j.c(3);let n,r;e[0]!==t?(n=()=>{const o=t.current;return o?pn(o):void 0},r=[t],e[0]=t,e[1]=n,e[2]=r):(n=e[1],r=e[2]),S.useEffect(n,r)},Et=t=>{const e=j.c(5),{containerRef:n,enabled:r,directory:o}=t,s=Vt(o);let i,d;e[0]!==n||e[1]!==r||e[2]!==s?(i=()=>{const p=n.current;if(!p)return;const l=!de();return Tn(p,{allowExternalHttp:r!==!1,openAppLink:Hr,openExternalHttp:s,openSessionLink:l?qr:void 0,ownOrigins:br()})},d=[n,r,s],e[0]=n,e[1]=r,e[2]=s,e[3]=i,e[4]=d):(i=e[3],d=e[4]),S.useEffect(i,d)},ne={download:!0,copy:!0,showPanZoomControls:!0},At=!0,vt="data-openchamber-block-path-token",St=`[${vt}]`,ce="data-openchamber-block-paths-scanned",wr=2e5,gr=80,kr=40,Xe=160,yr=()=>de()?kr:gr,Er=new Set(["dockerfile","makefile","readme","license",".env",".gitignore",".npmrc"]),Ct=t=>ht(t),Ar=t=>or(t),vr=(t,e)=>Xt(t,e),Sr=t=>{const e=t.split("/").filter(Boolean).pop()??"";return!e||e.endsWith(".")?!1:/\.[A-Za-z0-9_-]{1,16}$/.test(e)},Lt=t=>{if(!t||t.startsWith("--")||t.includes("://")||/[<>]/.test(t)||/\s{2,}/.test(t))return!1;const e=Ct(t),n=e.split("/").filter(Boolean).pop()??e;if(!n||n==="."||n==="..")return!1;const r=n.toLowerCase();return Er.has(r)||r.startsWith(".")&&r.length>1?!0:Sr(e)},Be=t=>{const e=wt(t);return e?Lt(e.path):!1},Cr=t=>{const e=t.querySelectorAll(St);for(const r of Array.from(e))r.replaceWith(t.ownerDocument.createTextNode(r.textContent??""));const n=t.querySelectorAll(`code[${ce}]`);for(const r of Array.from(n))r.removeAttribute(ce),r.normalize()},Ne=t=>{if(t.tagName.toLowerCase()==="a"){const e=t.getAttribute("href")?.trim();if(e&&Oe(e))return"";const n=e?bt(e):null;if(n)return n;if(e&&Be(e))return e}return(t.textContent||"").trim()},Lr=t=>{const e=t.getAttribute("href")?.trim();if(!e||Oe(e))return null;const n=bt(e);return n||(Be(e)?e:null)},Mr=t=>{const e=[];for(const n of Array.from(t.querySelectorAll("pre code"))){if(n.hasAttribute(ce))continue;const r=[],o=n.textContent??"",s=o.length>wr?"":o;if(s.includes("."))for(const i of s.matchAll(sr)){const d=i[0];d&&Be(d)&&r.push({start:i.index,end:i.index+d.length,raw:d})}e.push({codeBlock:n,tokens:r})}return e},Rr=(t,e)=>{const n=t.ownerDocument;if(e.length>0){const r=n.createTreeWalker(t,NodeFilter.SHOW_TEXT),o=[];for(let i=r.nextNode();i;i=r.nextNode())i instanceof Text&&o.push(i);const s=t.textContent??"";for(const{start:i,end:d,raw:p,decorate:l}of[...e].sort((m,L)=>L.start-m.start)){if(s.slice(i,d)!==p)continue;const m=ze(o,i,"right"),L=ze(o,d,"left");if(!m||!L)continue;const w=n.createRange();w.setStart(m.node,m.offset),w.setEnd(L.node,L.offset);const y=n.createElement("span");y.setAttribute(vt,"true"),y.textContent=p,l(y),w.deleteContents(),w.insertNode(y)}}t.setAttribute(ce,"true")},ae=(t,e)=>{const n=wt(t);if(!n||!Lt(n.path))return null;const r=Ar(n.path)?Ct(n.path):vr(e,n.path);return r?{...n,resolvedPath:r}:null},Tr=(t,e)=>t||Zt(t,e),Mt=({containerRef:t,effectiveDirectory:e,editor:n,preferRuntimeEditor:r,enabled:o})=>{const s=S.useRef(null);S.useEffect(()=>{const i=t.current;if(!i||o&&!e)return;let d=!1;const p=yr(),l=o&&!on(),m=a=>{a.removeAttribute("data-openchamber-file-link"),a.removeAttribute("data-openchamber-file-ref"),a.removeAttribute("data-openchamber-file-path"),a.getAttribute("title")==="Open file"&&a.removeAttribute("title"),a.tagName.toLowerCase()!=="a"&&(a.removeAttribute("role"),a.removeAttribute("tabindex"))},L=()=>{const a=i.querySelectorAll(ct);for(const c of Array.from(a))m(c);Cr(i)},w=async(a,c)=>{const u=a.getAttribute("data-openchamber-file-ref")||Ne(a),E=ae(u,e);if(!E)return;const k=a.getAttribute("data-openchamber-file-path"),h=k?{...E,resolvedPath:k}:E;if(c?.external&&sn()&&await an(h.resolvedPath))return;const R=Tr(e,h.resolvedPath);if(r&&n){n.openFile(h.resolvedPath,Number.isFinite(h.line??Number.NaN)?Math.max(1,Math.trunc(h.line)):void 0,Number.isFinite(h.column??Number.NaN)?Math.max(1,Math.trunc(h.column)):void 0);return}const A=U.getState();Number.isFinite(h.line??Number.NaN)?A.openContextFileAtLine(R,h.resolvedPath,Math.max(1,Math.trunc(h.line)),Number.isFinite(h.column??Number.NaN)?Math.max(1,Math.trunc(h.column)):1):A.openContextFile(R,h.resolvedPath)},y=()=>xn(i,{hrefCandidate:Lr,isResolvable:a=>ae(a,e)!==null,openFileReference:w});if(!l)return L(),o?y():void 0;const g=(a=0)=>{if(s.current!==null&&typeof window<"u"&&window.clearTimeout(s.current),typeof window>"u"){x();return}s.current=window.setTimeout(()=>{s.current=null,window.requestAnimationFrame(()=>{d||x()})},a)},P=a=>{M+=1;try{a()}finally{queueMicrotask(()=>{M-=1})}},_=(a,c,u)=>{a.getAttribute(c)!==u&&a.setAttribute(c,u)},T=(a,c,u)=>{_(a,"data-openchamber-file-link","true"),_(a,"data-openchamber-file-ref",c),_(a,"data-openchamber-file-path",u),_(a,"title","Open file"),a.tagName.toLowerCase()!=="a"&&(_(a,"role","button"),_(a,"tabindex","0"))},F=a=>{if(!Gt(a.resolvedPath,e))return Promise.resolve(a.resolvedPath);const c=!a.path.includes("/")&&!a.path.includes("\\");return dr(a.resolvedPath,e).then(u=>u?a.resolvedPath:c?fr(a.path,e):null)},x=()=>{const a=i.querySelectorAll(`[data-markdown="inline-code"], a, ${St}`);let c=0;const u=[],E=[];for(const h of Array.from(a)){const R=ae(Ne(h),e);if(!R||c>=p){E.push(h);continue}c+=1,u.push({candidate:h,resolvedPath:R.resolvedPath,target:F(R)})}const k=Mr(i).map(({codeBlock:h,tokens:R})=>({codeBlock:h,tokens:R.flatMap(A=>{const N=ae(A.raw,e);return!N||c>=p?[]:(c+=1,[{...A,target:F(N)}])})}));P(()=>{for(const h of E)m(h)}),!(u.length===0&&k.length===0)&&Promise.all([Promise.all(u.map(h=>h.target.then(R=>({...h,targetPath:R})))),Promise.all(k.map(async({codeBlock:h,tokens:R})=>({codeBlock:h,tokens:await Promise.all(R.map(A=>A.target.then(N=>({...A,targetPath:N}))))})))]).then(([h,R])=>{d||P(()=>{for(const{candidate:A,resolvedPath:N,targetPath:B}of h){if(!i.contains(A))continue;const C=Ne(A);ae(C,e)?.resolvedPath===N&&(B?T(A,C,B):m(A))}for(const{codeBlock:A,tokens:N}of R)!i.contains(A)||A.hasAttribute(ce)||Rr(A,N.flatMap(({start:B,end:C,raw:O,targetPath:v})=>v?[{start:B,end:C,raw:O,decorate:V=>T(V,O,v)}]:[]))})})},I=a=>{if(a.key!=="Enter"&&a.key!==" ")return;const c=a.target;!(c instanceof HTMLElement)||c.getAttribute("data-openchamber-file-link")!=="true"||(a.preventDefault(),a.stopPropagation(),w(c))};g(Xe);let M=0;const b=new MutationObserver(()=>{M>0||g(Xe)});b.observe(i,{childList:!0,subtree:!0}),i.addEventListener("keydown",I);const f=y();return()=>{d=!0,s.current!==null&&typeof window<"u"&&window.clearTimeout(s.current),s.current=null,b.disconnect(),f(),i.removeEventListener("keydown",I)}},[t,n,e,r,o])},Nr=t=>{const e=j.c(10),{containerRef:n,sessionId:r,messageId:o,directory:s,onShowPopup:i}=t,d=S.useRef(i);let p,l;e[0]!==i?(p=()=>{d.current=i},l=[i],e[0]=i,e[1]=p,e[2]=l):(p=e[1],l=e[2]),S.useEffect(p,l);let m;e[3]===Symbol.for("react.memo_cache_sentinel")?(m=at(),e[3]=m):m=e[3];const L=m;let w,y;e[4]!==n||e[5]!==s||e[6]!==o||e[7]!==r?(w=()=>{const g=n.current;if(!(!g||!r||!o))return zn({container:g,sessionId:r,messageId:o,directory:s,apiBaseUrl:L,useWorkspaceFsBridge:de(),onShowPopup:P=>d.current?.(P)})},y=[L,n,s,o,r],e[4]=n,e[5]=s,e[6]=o,e[7]=r,e[8]=w,e[9]=y):(w=e[8],y=e[9]),S.useEffect(w,y)},Rt=t=>{const e=j.c(7),{containerRef:n,onShowPopup:r,enableFullscreen:o,enablePanZoom:s,allowMermaidWheelEvents:i}=t;let d,p;e[0]!==i||e[1]!==n||e[2]!==o||e[3]!==s||e[4]!==r?(d=()=>{const l=n.current;if(!l)return;const m=w=>{if(!o||!r)return;const y=w.target;if(!(y instanceof Element)||y.closest('button, a, [role="button"]'))return;const g=y.closest(Re);if(!g)return;if(g instanceof HTMLElement&&g.hasAttribute("data-mermaid-suppress-click")){g.removeAttribute("data-mermaid-suppress-click");return}const _=Array.from(l.querySelectorAll(Re)).indexOf(g);if(_<0)return;const T=g instanceof HTMLElement?g.getAttribute("data-md-source"):null;if(!T||T.trim().length===0)return;const F=`Diagram ${_+1}`;r({open:!0,title:F,content:"",metadata:{tool:"mermaid-preview",filename:F},mermaid:{url:`data:text/plain;charset=utf-8,${encodeURIComponent(T)}`,source:T,filename:F}})},L=w=>{if(i||(w.ctrlKey||w.metaKey)&&s)return;const y=w.target;!(y instanceof Element)||!y.closest(Re)||w.stopPropagation()};return l.addEventListener("click",m),l.addEventListener("wheel",L,{capture:!0,passive:!0}),()=>{l.removeEventListener("click",m),l.removeEventListener("wheel",L,!0)}},p=[i,n,o,s,r],e[0]=i,e[1]=n,e[2]=o,e[3]=s,e[4]=r,e[5]=d,e[6]=p):(d=e[5],p=e[6]),S.useEffect(d,p)},X=new Map,_r=100,Y="data-md-decoration-id",_e=t=>{const e=t.lastElementChild;for(const n of Array.from(t.children))n!==e&&n.hasAttribute("data-md-last")&&n.removeAttribute("data-md-last");e?.hasAttribute("data-md-block")&&!e.hasAttribute("data-md-last")&&e.setAttribute("data-md-last","")},Se="oc-md-block-enter",xr=t=>{for(const e of Array.from(t.querySelectorAll(`.${Se}`)))e.classList.remove(Se),e.style.removeProperty("--oc-md-enter-delay")},Ir=t=>{for(const e of Array.from(t.children))!(e instanceof HTMLElement)||!e.classList.contains(Se)||(e.classList.remove(Se),e.style.removeProperty("--oc-md-enter-delay"),e.getAttribute("style")||e.removeAttribute("style"))},Pr=(t,e,n)=>{const r=t.children;if(r.length!==e.length)return!1;for(let o=0;o<e.length;o+=1){const s=r[o];if(!s||s.getAttribute("data-md-id")!==e[o]?.id||s.getAttribute(Y)!==n)return!1}return!0},Ye=new WeakMap;let Je=0;const Fr=2e5,xe=t=>{const e=Ye.get(t);if(e)return e;const n=`decoration-${Je}`;return Je+=1,Ye.set(t,n),n},Or=(t,e)=>{const n=X.get(t);if(n)return X.delete(t),X.set(t,n),n;const r=e();if(X.set(t,r),X.size>_r){const o=X.keys().next().value;o&&X.delete(o)}return r},Wr=t=>({bg:t.colors.surface.elevated,fg:t.colors.surface.foreground,line:t.colors.surface.mutedForeground,accent:t.colors.primary.base,muted:t.colors.surface.mutedForeground,surface:t.colors.surface.muted,border:t.colors.interactive.border,transparent:!0,font:"system-ui, sans-serif"}),Br=()=>U.getState().copyMessagesAsPlainText?"plain":"markdown",Tt=(t,e,n=ne)=>{const{t:r}=rt(),o=S.useMemo(()=>({copy:r("markdownRenderer.code.actions.copyTitle"),copied:r("markdownRenderer.code.actions.copiedTitle"),enableCodeWrap:r("markdownRenderer.code.actions.enableWrapTitle"),disableCodeWrap:r("markdownRenderer.code.actions.disableWrapTitle"),enableTableWrap:r("markdownRenderer.table.actions.enableWrapTitle"),disableTableWrap:r("markdownRenderer.table.actions.disableWrapTitle"),copyTable:r("markdownRenderer.table.actions.copyTitle"),downloadTable:r("markdownRenderer.table.actions.downloadTitle"),copyDiagram:r("markdownRenderer.mermaid.actions.copySourceTitle"),downloadDiagram:r("markdownRenderer.mermaid.actions.downloadSvgTitle"),zoomInDiagram:r("markdownRenderer.mermaid.actions.zoomInTitle"),zoomOutDiagram:r("markdownRenderer.mermaid.actions.zoomOutTitle"),resetDiagramView:r("markdownRenderer.mermaid.actions.resetViewTitle"),previewLabel:r("terminalView.preview.open"),previewTitle:r("terminalView.preview.openTitle")}),[r]),s=U(w=>w.codeBlockLineWrap),i=U(w=>w.setCodeBlockLineWrap),d=S.useCallback(()=>{i(!U.getState().codeBlockLineWrap)},[i]),p=U(w=>w.tableCellWrap),l=U(w=>w.setTableCellWrap),m=S.useCallback(()=>{l(!U.getState().tableCellWrap)},[l]);return S.useMemo(()=>{const w=Wr(t),y=U.getState().mermaidRenderingMode,g=t.metadata?.id??"theme";return{labels:o,mermaidControls:n,codeBlockLineWrap:s,onToggleCodeBlockLineWrap:d,tableCellWrap:p,onToggleTableCellWrap:m,renderMermaid:_=>Or(`${g}:${y}:${_}`,()=>{try{return y==="ascii"?{ascii:It(_)}:{svg:Pt(_,w)}}catch{return{}}}),onPreviewLoopback:e,getCopyFormat:Br}},[t,o,n,s,d,p,m,e])},Nt=({containerRef:t,text:e,streaming:n,imageMode:r="inline",rawHtml:o="escape",syntaxVars:s,ctx:i,domCacheKey:d,tableLayoutSettled:p})=>{S.useEffect(()=>{Fn()},[]);const l=S.useRef(null),m=S.useRef(0),L=S.useRef(null),w=S.useRef(null),y=S.useRef(null),g=S.useCallback(()=>{const b=t.current;if(b){if(!l.current){if(!K(b))return;l.current=wn(b);return}l.current.refresh()}},[t]),{tableCellWrap:P}=i,_=S.useRef(P);_.current=P;const T=S.useCallback(()=>M.current(),[]),F=S.useCallback(()=>{const b=t.current,f=b?.querySelector("[data-markdown-content]")??b;f&&(He(f,P),!w.current&&f.querySelector('table[data-markdown="table"]')&&(w.current=Gn(f,()=>{He(f,_.current,{cachedOnly:!0})||jt(T)})))},[t,T,P]),x=S.useCallback(()=>{if(!p)return;const b=L.current;b!==null&&window.cancelAnimationFrame(b);const f=m.current,a=window.requestAnimationFrame(()=>{L.current===a&&(L.current=null,m.current===f&&F())});L.current=a},[F,p]),I=S.useCallback(()=>{const b=L.current;b!==null&&window.cancelAnimationFrame(b),L.current=null,F()},[F]),M=S.useRef(x);S.useEffect(()=>{M.current=x},[x]),S.useEffect(()=>()=>{w.current?.(),w.current=null,zt(T);const b=L.current;b!==null&&(window.cancelAnimationFrame(b),L.current=null)},[T]),S.useLayoutEffect(()=>{const b=t.current,f=b?.querySelector("[data-markdown-content]")??b;if(f)for(const[a,c]of Object.entries(s))f.style.setProperty(a,c)},[t,s]),S.useLayoutEffect(()=>{m.current+=1,y.current=null},[i,r,o,n,e]),S.useLayoutEffect(()=>{if(!d)return;const b=t.current,f=b?.querySelector("[data-markdown-content]")??b;if(!f||f.childNodes.length>0)return;const a=Ze.take(d);if(a){f.appendChild(a),_e(f);const c=xe(i);for(const u of Array.from(f.children))u.setAttribute(Y,c);gn(f,i.codeBlockLineWrap,i.labels),kn(f,i.tableCellWrap,i.labels),y.current={key:d,copiedLabel:i.labels.copied},le("ui.markdown_renderer.dom_cache.hit")}},[t,i,d,e.length]),S.useLayoutEffect(()=>{const b=t.current,f=b?.querySelector("[data-markdown-content]")??b;if(f)return()=>{const a=y.current;if(!a||f.childNodes.length===0||K(f)||Array.from(f.children).some(h=>!h.hasAttribute("data-md-id"))||f.querySelector("[data-md-copy-pending]"))return;const c=window.getSelection();if(c?.rangeCount&&!c.isCollapsed&&c.getRangeAt(0).intersectsNode(f))return;const u=f.querySelector("[data-md-menu]:not(.hidden)"),E=Array.from(f.querySelectorAll("[data-md-action]")).some(h=>h.getAttribute("title")===a.copiedLabel);if(u||E)return;xr(f);const k=document.createDocumentFragment();k.append(...Array.from(f.childNodes)),Ze.store({...a.key,fragment:k}),le("ui.markdown_renderer.dom_cache.capture")}},[t]),S.useLayoutEffect(()=>{const b=t.current,f=b?.querySelector("[data-markdown-content]")??b;if(!f)return;const a=xe(i);if(e&&f.childNodes.length===0){const c=un(e,n,r,o);let u=!1;for(const E of c){const k=document.createElement("div");k.setAttribute("data-md-block",""),k.style.display="contents",k.innerHTML=E.html,Me(k,i),k.setAttribute("data-md-id",E.id),k.setAttribute(Y,a),u||=K(k),f.appendChild(k)}u&&g(),_e(f),p&&I()}else!l.current&&K(f)&&g()},[t,e,n,r,o,i,g,p,I]),S.useEffect(()=>()=>{l.current?.cleanup(),l.current=null},[]),S.useEffect(()=>{const b=t.current;if(!b)return;const f=b.querySelector("[data-markdown-content]")??b;let a=!0;const c=m.current,u=xe(i);if(!n){const E=mn(e,r,o);if(E&&Pr(f,E,u)){y.current=d?{key:d,copiedLabel:i.labels.copied}:null,le("ui.markdown_renderer.settled_paint.reused"),x();return}}return fn(e,n,r,o).then(E=>{if(!a||m.current!==c)return;const k=Array.from(f.children),h=p&&f.querySelector('table[data-md-table-layout="fixed"]')!==null,R=Array.from(f.querySelectorAll("details[data-md-details]")).map(C=>({summary:C.querySelector("summary")?.textContent,open:C.open}));let A=0;E.forEach((C,O)=>{let v=k[O],V=!1;if(v||(v=document.createElement("div"),v.setAttribute("data-md-block",""),v.style.display="contents",f.appendChild(v),V=!0),v.getAttribute("data-md-id")===C.id){if(v.getAttribute(Y)!==u){const $=K(v);$&&(l.current?.cleanup(),l.current=null);const W=document.createElement("div");W.setAttribute("data-md-block",""),W.style.display="contents",W.innerHTML=C.html,Me(W,i),W.setAttribute("data-md-id",C.id),W.setAttribute(Y,u),v.replaceWith(W),($||K(W))&&g()}!l.current&&K(v)&&g();return}const H=v.getAttribute("data-md-id"),q=H&&v.getAttribute(Y)===u?C.patchFrom?.(H):null;if(q&&Mn(v,q)){Ir(v),v.setAttribute("data-md-id",C.id);return}const G=document.createElement("div");if(G.innerHTML=C.html,Me(G,i),V&&n&&O>0){const $=Math.min(A,4)*55;A+=1;for(const W of Array.from(G.children))W.classList.add("oc-md-block-enter"),$>0&&W instanceof HTMLElement&&W.style.setProperty("--oc-md-enter-delay",`${$}ms`)}const re=K(v),oe=K(G);xt(v,G,{childrenOnly:!0,onBeforeElUpdated:($,W)=>($.matches("details[data-md-details]")&&W.matches("details[data-md-details]")&&$.querySelector("summary")?.textContent===W.querySelector("summary")?.textContent&&W.toggleAttribute("open",$.hasAttribute("open")),!$.isEqualNode(W))}),v.setAttribute("data-md-id",C.id),v.setAttribute(Y,u),(re||oe||K(v))&&g()});const N=K(f);let B=!1;for(let C=k.length-1;C>=E.length;C-=1){const O=k[C];O&&K(O)&&(B=!0),O?.remove()}_e(f),(B||k.length>E.length&&N)&&g(),R.length>0&&f.querySelectorAll("details[data-md-details]").forEach((C,O)=>{const v=R[O];v&&v.summary===C.querySelector("summary")?.textContent&&(C.open=v.open)}),y.current=d?{key:d,copiedLabel:i.labels.copied}:null,h?I():x()}),()=>{a=!1}},[t,i,d,r,o,g,I,x,n,p,e]),S.useEffect(()=>{const b=t.current;if(b)return yn(b,i)},[t,i])},_t=t=>t==="tool"?"markdown-content markdown-tool":t==="reasoning"?"markdown-content markdown-reasoning":"markdown-content leading-relaxed",Dr=t=>{const e=j.c(46),{content:n,part:r,messageId:o,isAnimated:s,skipFadeIn:i,className:d,isStreaming:p,variant:l,onShowPopup:m,enableFileReferences:L}=t,w=s===void 0?!0:s,y=i===void 0?!1:i,g=p===void 0?!1:p,P=l===void 0?"assistant":l,_=L===void 0?!0:L;le("ui.markdown_renderer.render"),g&&le("ui.markdown_renderer.render.streaming"),tn("ui.markdown_renderer.content_len",n.length);const T=kt(),{editor:F,runtime:x}=et(),I=S.useRef(null),M=tt()??"",b=U(Kr);let f;e[0]!==M||e[1]!==b?(f=z=>{M&&b(M,z)},e[0]=M,e[1]=b,e[2]=f):f=e[2];const a=f;let c;e[3]!==m?(c={containerRef:I,onShowPopup:m,enableFullscreen:At,enablePanZoom:ne.showPanZoomControls},e[3]=m,e[4]=c):c=e[4],Rt(c);const u=_&&!g;let E;e[5]!==F||e[6]!==M||e[7]!==x.isVSCode||e[8]!==u?(E={containerRef:I,effectiveDirectory:M,editor:F,preferRuntimeEditor:x.isVSCode,enabled:u},e[5]=F,e[6]=M,e[7]=x.isVSCode,e[8]=u,e[9]=E):E=e[9],Mt(E);let k;e[10]!==M?(k={containerRef:I,directory:M},e[10]=M,e[11]=k):k=e[11],Et(k),yt(I);let h;e[12]!==T?(h=nt(T),e[12]=T,e[13]=h):h=e[13];const R=h,A=U(Ur)&&nn(),N=Tt(T,M&&!A?a:void 0,ne),{locale:B}=rt(),C=P==="assistant"?"label":"local",O=r&&(r.type==="text"||r.type==="reasoning")&&r.time?.end!==void 0?r:null;let v;e[14]===Symbol.for("react.memo_cache_sentinel")?(v=rn(),e[14]=v):v=e[14];const V=v,H=O?.sessionID,q=O?.messageID,G=O?.id;let re;e:{if(g||!H||!q||!G||n.length===0||n.length>Fr){re=null;break e}const z=`${V}\0${H}`,Le=`${q}\0${G}\0${C}\0${n.length}`;let he;e[15]!==M||e[16]!==B||e[17]!==z||e[18]!==Le?(he={scope:z,id:Le,locale:B,directory:M},e[15]=M,e[16]=B,e[17]=z,e[18]=Le,e[19]=he):he=e[19],re=he}const oe=re,$=`markdown-${r?.id?`part-${r.id}`:`message-${o}`}`,W=!g;let ue;e[20]!==n||e[21]!==N||e[22]!==oe||e[23]!==C||e[24]!==g||e[25]!==R||e[26]!==W?(ue={containerRef:I,text:n,streaming:g,imageMode:C,syntaxVars:R,ctx:N,domCacheKey:oe,tableLayoutSettled:W},e[20]=n,e[21]=N,e[22]=oe,e[23]=C,e[24]=g,e[25]=R,e[26]=W,e[27]=ue):ue=e[27],Nt(ue);const Ce=C==="label"&&!g?H:void 0;let me;e[28]!==M||e[29]!==m||e[30]!==q||e[31]!==Ce?(me={containerRef:I,sessionId:Ce,messageId:q,directory:M,onShowPopup:m},e[28]=M,e[29]=m,e[30]=q,e[31]=Ce,e[32]=me):me=e[32],Nr(me);let J;e[33]!==d?(J=ot("break-words w-full min-w-0",d),e[33]=d,e[34]=J):J=e[34];let Q;e[35]!==P?(Q=_t(P),e[35]=P,e[36]=Q):Q=e[36];let ee;e[37]!==Q?(ee=D.jsx("div",{className:Q,"data-markdown-content":!0}),e[37]=Q,e[38]=ee):ee=e[38];let fe;e[39]!==J||e[40]!==ee?(fe=D.jsx("div",{className:J,ref:I,children:ee}),e[39]=J,e[40]=ee,e[41]=fe):fe=e[41];const pe=fe;if(w){let z;return e[42]!==$||e[43]!==pe||e[44]!==y?(z=D.jsx(Yt,{skipAnimation:y,children:pe},$),e[42]=$,e[43]=pe,e[44]=y,e[45]=z):z=e[45],z}return pe},Qs=S.memo(Dr,(t,e)=>t.content===e.content&&t.isStreaming===e.isStreaming&&t.variant===e.variant&&t.isAnimated===e.isAnimated&&t.skipFadeIn===e.skipFadeIn&&t.className===e.className&&t.messageId===e.messageId&&t.onShowPopup===e.onShowPopup&&t.enableFileReferences===e.enableFileReferences&&t.part?.id===e.part?.id),$r=t=>{const e=j.c(36),{content:n,className:r,variant:o,disableLinkSafety:s,frontmatter:i,onShowPopup:d,mermaidControls:p,allowMermaidWheelEvents:l,enableFileReferences:m,allowRawHtml:L}=t,w=o===void 0?"assistant":o,y=p===void 0?ne:p,g=l===void 0?!1:l,P=m===void 0?!0:m,_=L===void 0?!1:L,{editor:T,runtime:F}=et(),x=kt(),I=S.useRef(null),M=tt()??"";let b;e[0]!==n||e[1]!==i?(b=i?Jn(n):{frontmatter:null,body:n},e[0]=n,e[1]=i,e[2]=b):b=e[2];const{frontmatter:f,body:a}=b;let c;e[3]!==g||e[4]!==y.showPanZoomControls||e[5]!==d?(c={containerRef:I,onShowPopup:d,enableFullscreen:At,enablePanZoom:y.showPanZoomControls,allowMermaidWheelEvents:g},e[3]=g,e[4]=y.showPanZoomControls,e[5]=d,e[6]=c):c=e[6],Rt(c);let u;e[7]!==T||e[8]!==M||e[9]!==P||e[10]!==F.isVSCode?(u={containerRef:I,effectiveDirectory:M,editor:T,preferRuntimeEditor:F.isVSCode,enabled:P},e[7]=T,e[8]=M,e[9]=P,e[10]=F.isVSCode,e[11]=u):u=e[11],Mt(u);const E=!s;let k;e[12]!==M||e[13]!==E?(k={containerRef:I,enabled:E,directory:M},e[12]=M,e[13]=E,e[14]=k):k=e[14],Et(k),yt(I);let h;e[15]!==x?(h=nt(x),e[15]=x,e[16]=h):h=e[16];const R=h,A=Tt(x,void 0,y),N=_?"sanitize":"escape";let B;e[17]!==A||e[18]!==a||e[19]!==R||e[20]!==N?(B={containerRef:I,text:a,streaming:!1,imageMode:"local",rawHtml:N,syntaxVars:R,ctx:A,tableLayoutSettled:!0},e[17]=A,e[18]=a,e[19]=R,e[20]=N,e[21]=B):B=e[21],Nt(B);let C;e[22]!==r?(C=ot("break-words w-full min-w-0",r),e[22]=r,e[23]=C):C=e[23];let O;e[24]!==f||e[25]!==i?(O=i==="properties"&&f?D.jsx(er,{frontmatter:f}):null,e[24]=f,e[25]=i,e[26]=O):O=e[26];let v;e[27]!==w?(v=_t(w),e[27]=w,e[28]=v):v=e[28];const V=_?"":void 0;let H;e[29]!==v||e[30]!==V?(H=D.jsx("div",{className:v,"data-markdown-content":!0,"data-markdown-html":V}),e[29]=v,e[30]=V,e[31]=H):H=e[31];let q;return e[32]!==C||e[33]!==O||e[34]!==H?(q=D.jsxs("div",{className:C,ref:I,children:[O,H]}),e[32]=C,e[33]=O,e[34]=H,e[35]=q):q=e[35],q},ea=S.memo($r,(t,e)=>{const n=t.mermaidControls??ne,r=e.mermaidControls??ne;return t.content===e.content&&t.variant===e.variant&&t.className===e.className&&t.disableLinkSafety===e.disableLinkSafety&&t.frontmatter===e.frontmatter&&t.onShowPopup===e.onShowPopup&&n.download===r.download&&n.copy===r.copy&&n.showPanZoomControls===r.showPanZoomControls&&t.allowMermaidWheelEvents===e.allowMermaidWheelEvents&&t.enableFileReferences===e.enableFileReferences&&t.allowRawHtml===e.allowRawHtml});function Hr(t){Jt(t)}function qr(t){Qt(t.sessionId,t.messageId)}function Kr(t){return t.openContextPreview}function Ur(t){return t.openLinksInBrowserPanel}export{Qs as MarkdownRenderer,ea as SimpleMarkdownRenderer};