@fabiofiorita/porcelain 0.65.2 → 0.65.4

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 (58) hide show
  1. package/README.md +12 -7
  2. package/package.json +1 -1
  3. package/server/src/cli/main.mjs +2699 -2564
  4. package/web/dist/assets/_paired-BGQByqTx.js +1 -0
  5. package/web/dist/assets/_paired-C-OPMHd_.js +1 -0
  6. package/web/dist/assets/_paired-DR1ndZmE.js +1 -0
  7. package/web/dist/assets/_paired-qSHXbKkl.js +1 -0
  8. package/web/dist/assets/_section-D25X_IP_.js +1 -0
  9. package/web/dist/assets/_worktreeId-2AckLnuR.js +1 -0
  10. package/web/dist/assets/_worktreeId-Cfr9rr3q.js +1 -0
  11. package/web/dist/assets/_worktreeId-DR1ndZmE.js +1 -0
  12. package/web/dist/assets/_worktreeId-qSHXbKkl.js +1 -0
  13. package/web/dist/assets/access-CnKxJMA6.js +1 -0
  14. package/web/dist/assets/connected-workspace-DDQUa7Bv.js +1 -0
  15. package/web/dist/assets/desktop-actions-C6IPObdg.js +11 -0
  16. package/web/dist/assets/{edit-file-DOZdUUk9.js → edit-file-CqSI_R_G.js} +35 -35
  17. package/web/dist/assets/{file-editor-DvHSzrST.js → file-editor-CY822nHE.js} +14 -14
  18. package/web/dist/assets/files-Dq4t9_xQ.js +17 -0
  19. package/web/dist/assets/git-actions-BrTzG9I2.js +1345 -0
  20. package/web/dist/assets/{index-Cia9YleJ.js → index-D5KKCKKt.js} +4 -4
  21. package/web/dist/assets/index-DddS8Xzd.css +2 -0
  22. package/web/dist/assets/lazyRouteComponent-BpzFu5o7.js +1 -0
  23. package/web/dist/assets/link-B0k0Dw1r.js +1 -0
  24. package/web/dist/assets/pair-D3O7jbtO.js +1 -0
  25. package/web/dist/assets/pair-DR1ndZmE.js +1 -0
  26. package/web/dist/assets/search-CVF8YG8C.js +1 -0
  27. package/web/dist/assets/useRouterState-GGrtXzjn.js +1 -0
  28. package/web/dist/assets/workspace-error-CpgoRLTX.js +1 -0
  29. package/web/dist/assets/workspace-pending-CSj0ENeH.js +1 -0
  30. package/web/dist/index.html +10 -13
  31. package/web/dist/assets/_paired-B3CMUVff.js +0 -1
  32. package/web/dist/assets/_paired-B8xCvrtN.js +0 -1
  33. package/web/dist/assets/_paired-YiNqIqrL.js +0 -1
  34. package/web/dist/assets/_paired-rl3uQlkr.js +0 -1
  35. package/web/dist/assets/_section-DJ3o28t3.js +0 -1
  36. package/web/dist/assets/_worktreeId-B3CMUVff.js +0 -1
  37. package/web/dist/assets/_worktreeId-B8xCvrtN.js +0 -1
  38. package/web/dist/assets/_worktreeId-DS7C0JfB.js +0 -1
  39. package/web/dist/assets/_worktreeId-DzWffY3l.js +0 -1
  40. package/web/dist/assets/access-yiNkcsHW.js +0 -1
  41. package/web/dist/assets/connected-workspace-HwRJynH2.js +0 -1
  42. package/web/dist/assets/desktop-UhAM-aem.js +0 -14
  43. package/web/dist/assets/desktop-actions-_GPqaBVU.js +0 -12
  44. package/web/dist/assets/files-DGG-rGAk.js +0 -4
  45. package/web/dist/assets/git-actions-PSyqF5Ms.js +0 -1345
  46. package/web/dist/assets/index-DUPxq0qw.css +0 -2
  47. package/web/dist/assets/lazyRouteComponent-C0cxtC0x.js +0 -1
  48. package/web/dist/assets/link-Cr7ETqcH.js +0 -1
  49. package/web/dist/assets/pair-B3CMUVff.js +0 -1
  50. package/web/dist/assets/pair-pADUBfPY.js +0 -1
  51. package/web/dist/assets/preferences-gCf_-ng1.js +0 -1
  52. package/web/dist/assets/review-diagram-CK76VybL.js +0 -7
  53. package/web/dist/assets/review-diagram-DLioOiRN.css +0 -1
  54. package/web/dist/assets/search-YI2tNMg7.js +0 -1
  55. package/web/dist/assets/server-CO1nBw31.js +0 -1
  56. package/web/dist/assets/useRouterState-DpORzQ8V.js +0 -1
  57. package/web/dist/assets/workspace-error-DILP6VTh.js +0 -1
  58. package/web/dist/assets/workspace-pending-6RKmflS9.js +0 -1
@@ -1,14 +1,14 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Z as t,mo as n,nt as r,rt as i}from"./desktop-UhAM-aem.js";import{nt as a,tt as o}from"./files-DGG-rGAk.js";import{En as s,Fn as c,In as l,Jt as u,Ln as d,Lt as f,Mn as p,Nn as m,O as h,Pn as g,Rn as _,Rt as v,Vn as y,X as b,a as x,at as S,b as C,dn as w,en as T,h as ee,i as te,it as ne,jn as re,k as E,kn as ie,m as ae,p as oe,qt as D,r as se,ut as O,y as k,zn as ce,zt as le}from"./edit-file-DOZdUUk9.js";import{i as A,l as ue,n as j,u as de}from"./preferences-gCf_-ng1.js";import{n as M}from"./cloneFileDiffMetadata-zVRGqYgv.js";var fe={compositeOverBg:re,contrastRatio:p,deriveMutedFg:m,hoverWouldEraseText:g,isDarkSurface:c,isFullyTransparent:l,pickReadableForeground:d,relativeLuminance:_,surfacesMatch:ce},N=100,P=`insert`,F=`backspace`,I=`delete`,pe=class e{#e=[];#t=[];#n;#r=!1;constructor(e){this.#n=Math.max(1,e?.maxEntries??N)}get canUndo(){return this.#e.length>0}get canRedo(){return this.#t.length>0}getState(){return{undoStack:this.#e.map(he),redoStack:this.#t.map(he),maxEntries:this.#n,canCoalesce:this.#r}}getLiveState(){return Object.defineProperties({},{undoStack:{enumerable:!0,get:()=>this.#e},redoStack:{enumerable:!0,get:()=>this.#t},maxEntries:{enumerable:!0,get:()=>this.#n},canCoalesce:{enumerable:!0,get:()=>this.#r}})}static fromState(t){let n=new e({maxEntries:t.maxEntries});return n.#e=t.undoStack,n.#t=t.redoStack,n.#r=t.canCoalesce,n}clear(){this.#e.length=0,this.#t.length=0,this.#r=!1}clearRedo(){this.#t.length=0}push(e){this.#e.push(e),this.clearRedo(),this.#r=!0,this.#e.length>this.#n&&this.#e.shift()}setLastUndoSelectionsAfter(e){let t=this.#e[this.#e.length-1];t!==void 0&&(t.selectionsAfter=e.map(e=>({...e})))}setLastUndoLineAnnotations(e,t){let n=this.#e[this.#e.length-1];n!==void 0&&(n.lineAnnotationsBefore=e.slice(),n.lineAnnotationsAfter=t.slice())}peekUndo(){return this.#e[this.#e.length-1]}peekUndoForCoalescing(){return this.#r?this.peekUndo():void 0}replaceLastUndo(e){if(this.#e.length===0){this.push(e);return}this.#e[this.#e.length-1]=e,this.clearRedo(),this.#r=!0}popUndoToRedo(){let e=this.#e.pop();if(e!==void 0)return this.#t.push(e),this.#r=!1,e}popRedoToUndo(){let e=this.#t.pop();if(e!==void 0)return this.#e.push(e),this.#r=!1,e}};function me(e){return{...e,forwardEdits:e.forwardEdits.map(e=>({...e})),inverseEdits:e.inverseEdits.map(e=>({...e})),selectionsBefore:e.selectionsBefore?.map(ge),selectionsAfter:e.selectionsAfter?.map(ge),lineAnnotationsBefore:e.lineAnnotationsBefore?.slice(),lineAnnotationsAfter:e.lineAnnotationsAfter?.slice()}}function he(e){return{...me(e),lineAnnotationsBefore:e.lineAnnotationsBefore?.map(e=>({...e})),lineAnnotationsAfter:e.lineAnnotationsAfter?.map(e=>({...e}))}}function ge(e){return{...e,start:{...e.start},end:{...e.end}}}function _e(e,t,n,r,i,a,o,s){let c=[...t].sort((e,t)=>e.start-t.start),l=[],u;if(i?.length===c.length){let t=[];for(let n of i){if(n.start.line!==n.end.line||n.start.character!==n.end.character)break;t.push(e.offsetAt(n.start))}if(t.length===c.length){t.sort((e,t)=>e-t);let e=!0,n=!0;for(let r=0;r<c.length;r++){let i=c[r];if(i.text.length>0||i.start===i.end){e=!1,n=!1;break}e&&=t[r]===i.end,n&&=t[r]===i.start}u=e?F:n?I:void 0}}for(let t=0,n=0;t<c.length;t++){let r=c[t],i=e.getTextSlice(r.start,r.end),a=r.start+n;l.push({start:a,end:a+r.text.length,text:i}),n+=r.text.length-(r.end-r.start)}return{forwardEdits:c.map(e=>({...e})),inverseEdits:l,versionBefore:n,versionAfter:r,selectionsBefore:i?.map(e=>({...e})),selectionsAfter:a?.map(e=>({...e})),lineAnnotationsBefore:o?.slice(),lineAnnotationsAfter:s?.slice(),coalescingMode:u}}function ve(e,t){if(e===void 0||e.undoBoundary===!0||t.undoBoundary===!0||e.forwardEdits.length===0||e.forwardEdits.length!==e.inverseEdits.length||e.forwardEdits.length!==t.forwardEdits.length||t.forwardEdits.length!==t.inverseEdits.length)return!1;let n;for(let r=0;r<e.forwardEdits.length;r++){let i=e.forwardEdits[r],a=e.inverseEdits[r],o=t.forwardEdits[r],s=t.inverseEdits[r],c=xe(o.start,e.forwardEdits),l=i.start<=i.end&&i.text.length>0&&!i.text.includes(`
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{It as t,Pt as n,Qs as r,ai as i,di as a,ui as o}from"./files-Dq4t9_xQ.js";import{A as s,B as c,Bn as l,E as u,Gn as d,Hn as f,Jn as p,Jt as m,Kn as h,Ln as g,Qn as _,Sn as v,T as y,Un as b,Wn as x,Xn as S,Xt as C,Yn as w,Yt as T,_ as ee,a as te,an as E,d as ne,dn as re,g as ie,gt as D,ht as O,i as k,in as A,j,l as M,qn as ae,r as oe,st as se,w as ce,xt as N,z as P}from"./edit-file-CqSI_R_G.js";import{n as F}from"./cloneFileDiffMetadata-zVRGqYgv.js";var le={compositeOverBg:f,contrastRatio:b,deriveMutedFg:x,hoverWouldEraseText:d,isDarkSurface:h,isFullyTransparent:ae,pickReadableForeground:p,relativeLuminance:w,surfacesMatch:S},I=100,L=`insert`,R=`backspace`,z=`delete`,ue=class e{#e=[];#t=[];#n;#r=!1;constructor(e){this.#n=Math.max(1,e?.maxEntries??I)}get canUndo(){return this.#e.length>0}get canRedo(){return this.#t.length>0}getState(){return{undoStack:this.#e.map(fe),redoStack:this.#t.map(fe),maxEntries:this.#n,canCoalesce:this.#r}}getLiveState(){return Object.defineProperties({},{undoStack:{enumerable:!0,get:()=>this.#e},redoStack:{enumerable:!0,get:()=>this.#t},maxEntries:{enumerable:!0,get:()=>this.#n},canCoalesce:{enumerable:!0,get:()=>this.#r}})}static fromState(t){let n=new e({maxEntries:t.maxEntries});return n.#e=t.undoStack,n.#t=t.redoStack,n.#r=t.canCoalesce,n}clear(){this.#e.length=0,this.#t.length=0,this.#r=!1}clearRedo(){this.#t.length=0}push(e){this.#e.push(e),this.clearRedo(),this.#r=!0,this.#e.length>this.#n&&this.#e.shift()}setLastUndoSelectionsAfter(e){let t=this.#e[this.#e.length-1];t!==void 0&&(t.selectionsAfter=e.map(e=>({...e})))}setLastUndoLineAnnotations(e,t){let n=this.#e[this.#e.length-1];n!==void 0&&(n.lineAnnotationsBefore=e.slice(),n.lineAnnotationsAfter=t.slice())}peekUndo(){return this.#e[this.#e.length-1]}peekUndoForCoalescing(){return this.#r?this.peekUndo():void 0}replaceLastUndo(e){if(this.#e.length===0){this.push(e);return}this.#e[this.#e.length-1]=e,this.clearRedo(),this.#r=!0}popUndoToRedo(){let e=this.#e.pop();if(e!==void 0)return this.#t.push(e),this.#r=!1,e}popRedoToUndo(){let e=this.#t.pop();if(e!==void 0)return this.#e.push(e),this.#r=!1,e}};function de(e){return{...e,forwardEdits:e.forwardEdits.map(e=>({...e})),inverseEdits:e.inverseEdits.map(e=>({...e})),selectionsBefore:e.selectionsBefore?.map(pe),selectionsAfter:e.selectionsAfter?.map(pe),lineAnnotationsBefore:e.lineAnnotationsBefore?.slice(),lineAnnotationsAfter:e.lineAnnotationsAfter?.slice()}}function fe(e){return{...de(e),lineAnnotationsBefore:e.lineAnnotationsBefore?.map(e=>({...e})),lineAnnotationsAfter:e.lineAnnotationsAfter?.map(e=>({...e}))}}function pe(e){return{...e,start:{...e.start},end:{...e.end}}}function me(e,t,n,r,i,a,o,s){let c=[...t].sort((e,t)=>e.start-t.start),l=[],u;if(i?.length===c.length){let t=[];for(let n of i){if(n.start.line!==n.end.line||n.start.character!==n.end.character)break;t.push(e.offsetAt(n.start))}if(t.length===c.length){t.sort((e,t)=>e-t);let e=!0,n=!0;for(let r=0;r<c.length;r++){let i=c[r];if(i.text.length>0||i.start===i.end){e=!1,n=!1;break}e&&=t[r]===i.end,n&&=t[r]===i.start}u=e?R:n?z:void 0}}for(let t=0,n=0;t<c.length;t++){let r=c[t],i=e.getTextSlice(r.start,r.end),a=r.start+n;l.push({start:a,end:a+r.text.length,text:i}),n+=r.text.length-(r.end-r.start)}return{forwardEdits:c.map(e=>({...e})),inverseEdits:l,versionBefore:n,versionAfter:r,selectionsBefore:i?.map(e=>({...e})),selectionsAfter:a?.map(e=>({...e})),lineAnnotationsBefore:o?.slice(),lineAnnotationsAfter:s?.slice(),coalescingMode:u}}function he(e,t){if(e===void 0||e.undoBoundary===!0||t.undoBoundary===!0||e.forwardEdits.length===0||e.forwardEdits.length!==e.inverseEdits.length||e.forwardEdits.length!==t.forwardEdits.length||t.forwardEdits.length!==t.inverseEdits.length)return!1;let n;for(let r=0;r<e.forwardEdits.length;r++){let i=e.forwardEdits[r],a=e.inverseEdits[r],o=t.forwardEdits[r],s=t.inverseEdits[r],c=ve(o.start,e.forwardEdits),l=i.start<=i.end&&i.text.length>0&&!i.text.includes(`
2
2
  `)&&!a.text.includes(`
3
3
  `),u=o.start===o.end&&o.text.length>0&&!o.text.includes(`
4
- `)&&s.text.length===0;if(l&&u){if(o.start!==a.end||(n??=P,n!==P||e.coalescingMode!==void 0&&e.coalescingMode!==P||t.coalescingMode!==void 0&&t.coalescingMode!==P))return!1;continue}let d=i.text.length===0&&i.end>i.start&&a.text.length>0,f=o.text.length===0&&o.end>o.start&&s.text.length>0;if(d&&f){let r;if(c===i.end)r=I;else if(c+(o.end-o.start)!==i.start)return!1;else r=F;if(n??=r,n!==r||e.coalescingMode!==void 0&&e.coalescingMode!==r||t.coalescingMode!==void 0&&t.coalescingMode!==r)return!1;continue}return!1}return n!==void 0}function ye(e,t){let n=[],r=[],i;for(let a=0;a<e.forwardEdits.length;a++){let o=e.forwardEdits[a],s=e.inverseEdits[a],c=t.forwardEdits[a],l=t.inverseEdits[a],u=xe(c.start,e.forwardEdits);if(o.text.length>0){i??=P,n.push({start:o.start,end:o.end,text:o.text+c.text}),r.push(s.text);continue}if(u===o.end){i??=I,n.push({start:o.start,end:u+(c.end-c.start),text:``}),r.push(s.text+l.text);continue}i??=F,n.push({start:Math.min(o.start,u),end:o.end,text:``}),r.push(l.text+s.text)}return{forwardEdits:n,inverseEdits:be(n,r),versionBefore:e.versionBefore,versionAfter:t.versionAfter,selectionsBefore:e.selectionsBefore?.slice(),selectionsAfter:t.selectionsAfter?.slice(),lineAnnotationsBefore:e.lineAnnotationsBefore?.slice(),lineAnnotationsAfter:t.lineAnnotationsAfter?.slice(),coalescingMode:i}}function be(e,t){let n=[];for(let r=0,i=0;r<e.length;r++){let a=e[r],o=a.start+i;n.push({start:o,end:o+a.text.length,text:t[r]}),i+=a.text.length-(a.end-a.start)}return n}function xe(e,t){let n=e;for(let e of t){let t=e.end-e.start,r=e.text.length,i=r-t;if(!(n<e.start)){if(n>=e.start+r){n-=i;continue}n=e.start+Math.min(n-e.start,t)}}return n}var Se=1e5,Ce=10,we=13,Te=`\`~!@#$%^&*()-=+[{]}\\|;:'",.<>/?`,Ee=class{source;offset;length;lineOffsetStart;lineOffsetEnd;hasVirtualTrailingCRBreak;firstCharCode;lastCharCode;static Original=0;static Added=1;constructor(e,t,n,r,i,a,o,s){this.source=e,this.offset=t,this.length=n,this.lineOffsetStart=r,this.lineOffsetEnd=i,this.hasVirtualTrailingCRBreak=a,this.firstCharCode=o,this.lastCharCode=s}get lineBreakCount(){return this.lineOffsetEnd-this.lineOffsetStart+ +!!this.hasVirtualTrailingCRBreak}},De=class{text;lineOffsets;constructor(e){this.text=e,this.lineOffsets=f(e)}append(e){let t=this.text.length;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);(r===Ce||r===we)&&(r===we&&e.charCodeAt(n+1)===Ce&&n++,this.lineOffsets.push(t+n+1))}return this.text+=e,t}},Oe=class{piece;subtreeLength;subtreeLineBreakCount;subtreeFirstCharCode;subtreeLastCharCode;left=null;right=null;parent=null;priority=0;constructor(e,t=e.length,n=e.lineBreakCount,r=e.firstCharCode,i=e.lastCharCode){this.piece=e,this.subtreeLength=t,this.subtreeLineBreakCount=n,this.subtreeFirstCharCode=r,this.subtreeLastCharCode=i}updateSubtreeLength(){this.subtreeLength=(this.left?.subtreeLength??0)+this.piece.length+(this.right?.subtreeLength??0),this.subtreeLineBreakCount=(this.left?.subtreeLineBreakCount??0)+this.piece.lineBreakCount+(this.right?.subtreeLineBreakCount??0)-+!!R(this.left?.subtreeLastCharCode,this.piece.firstCharCode)-!!R(this.piece.lastCharCode,this.right?.subtreeFirstCharCode),this.subtreeFirstCharCode=this.left?.subtreeFirstCharCode??this.piece.firstCharCode,this.subtreeLastCharCode=this.right?.subtreeLastCharCode??this.piece.lastCharCode}},ke=class{#e;#t=new De(``);#n=null;#r=0;#i=0;#a=null;#o=null;#s=null;#c=2654435769;constructor(e){this.#e=new De(e);let t=this.#y(Ee.Original,0,e.length);this.#n=t.length>0?this.#C(t):null,this.#r=this.#n?.subtreeLength??0,this.#i=(this.#n?.subtreeLineBreakCount??0)+1}get lineCount(){return this.#i}getText(e){if(e===void 0)return this.#g();let t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this.getTextSlice(t,n)}getLineText(e,t=!1){if(this.#a!==null&&this.#a[0]===e&&this.#a[1]===t)return this.#a[2];let n=this.#f(e);if(n===void 0)throw Error(`Line index out of range: ${e}`);let r=this.getTextSlice(n[0],n[1],!t);return this.#a=[e,t,r],this.#o=[e,t,r.length],r}getLineLength(e,t=!1){let n=this.#o,r=this.#a;if(n!==null&&n[0]===e&&n[1]===t)return n[2];if(r!==null&&r[0]===e&&r[1]===t){let n=r[2].length;return this.#o=[e,t,n],n}let i=this.#f(e);if(i===void 0)throw Error(`Line index out of range: ${e}`);let[a,o]=i,s=o-a;if(!t)for(;s>0&&Ae(this.charAt(a+s-1).charCodeAt(0));)s--;return this.#o=[e,t,s],s}getTextSlice(e,t,n=!1){if(e>=t)return``;let r=L(e,0,this.#r),i=L(t,r,this.#r);if(r>=i)return``;let a=this.#u(r);if(a===void 0)return``;let o=[],[s,c]=a,l=i-r;for(;s!==null&&l>0;){let e=Math.min(s.piece.length-c,l),t=this.#v(s.piece.source),r=s.piece.offset+c,i=r+e;if(n)for(;i>r&&Ae(t.text.charCodeAt(i-1));)i--;o.push(t.text.slice(r,i)),l-=e,c=0,s=this.#d(s)}return o.join(``)}charAt(e){let t=this.#u(e);if(t===void 0)return``;let[n,r]=t;return this.#v(n.piece.source).text.charAt(n.piece.offset+r)}includes(e){if(e.length===0)return!0;let t=je(e),n=0,r=!1;return this.#_(i=>{for(let a=i.start;a<i.end;a++){let o=i.text.charCodeAt(a);for(;n>0&&o!==e.charCodeAt(n);)n=t[n-1];if(o===e.charCodeAt(n)&&n++,n===e.length)return r=!0,!1}return!0}),r}findNextNonOverlappingSubstring(e,t){if(e.length===0||e.length>this.#r)return;let n=Me(t,this.#r),r=n.reduce((e,[,t])=>Math.max(e,t),0),i=je(e),a=0,o=0,s,c;return this.#_(t=>{for(let l=t.start;l<t.end;l++){let u=t.text.charCodeAt(l);for(;a>0&&u!==e.charCodeAt(a);)a=i[a-1];if(u===e.charCodeAt(a)&&a++,a===e.length){let t=o-e.length+1;if(!Ne(n,t,t+e.length)){if(t>=r)return c=t,!1;s??=t}a=i[a-1]}o++}return!0}),c??s}search(e){if(e.text.length===0||this.#r===0||e.text.includes(`
5
- `)||e.text.includes(`\r`)||e.regex&&(e.text.includes(`\\n`)||e.text.includes(`\\r`)))return[];let t;try{t=Be(e.text,e.regex,e.caseSensitive)}catch{return[]}return this.#l(t,e.wholeWord,Se)}#l(e,t,n){let r=[],i=this.#g(),a=i.length,o=f(i);for(let s=0;s<o.length;s++){let c=o[s],l=o[s+1]??a;for(;l>c&&Ae(i.charCodeAt(l-1));)l--;let u=i.slice(c,l);e.lastIndex=0;let d;for(;(d=e.exec(u))!==null;){let a=d.index,o=d[0];if(o.length===0){e.lastIndex=Ue(u,a);continue}let s=c+a;if((!t||ze(i,s,o.length))&&(r.push([s,s+o.length]),r.length>=n))return r;a===e.lastIndex&&(e.lastIndex=Ue(u,a))}}return r}insert(e,t){if(e.length===0)return;let n=L(t,0,this.#r);this.#b(n,n,e),this.#x()}delete(e,t){if(t<=0||this.#r===0)return;let n=L(e,0,this.#r),r=L(n+t,n,this.#r);n!==r&&(this.#b(n,r,``),this.#x())}applyEdits(e){if(e.length!==0){for(let t=e.length-1;t>=0;t--){let n=e[t],r=L(n.start,0,this.#r),i=L(n.end,r,this.#r);this.#b(r,i,n.text)}this.#x()}}positionAt(e){let t=L(e,0,this.#r);if(this.#r===0)return{line:0,character:0};let n=this.#p(t),r=t-(n===0?0:this.#m(n-1));return this.#s=[n,r,t],{line:n,character:r}}positionsAt(e){let t=Array.from({length:e.length});if(e.length===0)return t;if(this.#r===0)return t.fill({line:0,character:0});for(let n=0;n<e.length;n++)t[n]=this.positionAt(e[n]);return t}offsetAt(e){if(e.line<0||this.#r===0)return 0;if(e.line>=this.#i)throw Error(`Line index out of range: ${e.line}`);let t=this.#s;if(t!==null&&t[0]===e.line&&t[1]===e.character)return t[2];let n=this.#f(e.line);if(n===void 0)throw Error(`Line index out of range: ${e.line}`);let r=L(e.character,0,n[1]-n[0]);return n[0]+r}#u(e){if(e<0||e>=this.#r)return;let t=this.#n,n=e;for(;t!==null;){let e=t.left?.subtreeLength??0;if(n<e){t=t.left;continue}if(n-=e,n<t.piece.length)return[t,n];n-=t.piece.length,t=t.right}}#d(e){if(e.right!==null){let t=e.right;for(;t.left!==null;)t=t.left;return t}let t=e;for(;t.parent!==null&&t===t.parent.right;)t=t.parent;return t.parent}#f(e){if(e<0)throw Error(`Line index out of range: ${e}`);if(this.#r===0){if(e===0)return[0,0];throw Error(`Line index out of range: ${e}`)}if(e>=this.#i)throw Error(`Line index out of range: ${e}`);return[e===0?0:this.#m(e-1),e<this.#i-1?this.#m(e):this.#r]}#p(e){let t=this.#n,n=L(e,0,this.#r),r=0;for(;t!==null;){let e=t.left?.subtreeLength??0;if(n<e){t=t.left;continue}if(r+=(t.left?.subtreeLineBreakCount??0)-+!!R(t.left?.subtreeLastCharCode,t.piece.firstCharCode),n-=e,n<=t.piece.length){let e=this.#v(t.piece.source),i=Math.min(Ie(e.lineOffsets,t.piece.offset+n),t.piece.lineOffsetEnd);return r+=i-t.piece.lineOffsetStart,n===t.piece.length&&t.piece.hasVirtualTrailingCRBreak&&r++,n===t.piece.length&&R(t.piece.lastCharCode,this.#d(t)?.piece.firstCharCode)&&r--,r}r+=t.piece.lineBreakCount-+!!R(t.piece.lastCharCode,t.right?.subtreeFirstCharCode),n-=t.piece.length,t=t.right}return this.#i-1}#m(e){let t=this.#n,n=e,r=0,i;for(;t!==null;){let e=(t.left?.subtreeLineBreakCount??0)-+!!R(t.left?.subtreeLastCharCode,t.piece.firstCharCode);if(n<e){i=t.piece.firstCharCode,t=t.left;continue}let a=t.left?.subtreeLength??0;r+=a,n-=e;let o=t.right?.subtreeFirstCharCode??i,s=t.piece.lineBreakCount-+!!R(t.piece.lastCharCode,o);if(n<s)return r+this.#h(t.piece,n);r+=t.piece.length,n-=s,t=t.right}return this.#r}#h(e,t){return t<e.lineOffsetEnd-e.lineOffsetStart?this.#v(e.source).lineOffsets[e.lineOffsetStart+t]-e.offset:e.length}#g(){let e=[];return this.#_(t=>{e.push(t.text.slice(t.start,t.end))}),e.join(``)}#_(e){this.#j(this.#n,t=>{let n=this.#v(t.piece.source);return e({text:n.text,lineOffsets:n.lineOffsets,lineOffsetStart:t.piece.lineOffsetStart,lineOffsetEnd:t.piece.lineOffsetEnd,start:t.piece.offset,end:t.piece.offset+t.piece.length})})}#v(e){return e===Ee.Original?this.#e:this.#t}#y(e,t,n){let r=this.#v(e),i=t+n,a=Ie(r.lineOffsets,t),o=Ie(r.lineOffsets,i),s=r.text.charCodeAt(i-1);return new Ee(e,t,n,a,o,s===we&&r.lineOffsets[o-1]!==i,r.text.charCodeAt(t),s)}#b(e,t,n){if(e===t&&n.length===0)return;let[r,i]=this.#E(this.#n,e),a=this.#D(i,t-e),o;if(n.length>0){let e=this.#y(Ee.Added,this.#t.append(n),n.length);o=this.#O(this.#k(r,e),a)}else{let[e,t]=this.#A(a);o=e===void 0?r:this.#O(this.#k(r,e),t)}o!==null&&(o.parent=null),this.#n=o,this.#r=o?.subtreeLength??0,this.#i=(o?.subtreeLineBreakCount??0)+1}#x(){this.#a=null,this.#o=null,this.#s=null}#S(){return this.#c=Math.imul(this.#c,1664525)+1013904223>>>0,this.#c}#C(e){let t=new Oe(e);return t.priority=this.#S(),t}#w(e,t){e.left=t,t!==null&&(t.parent=e)}#T(e,t){e.right=t,t!==null&&(t.parent=e)}#E(e,t){if(e===null)return[null,null];if(t<=0)return[null,e];if(t>=e.subtreeLength)return[e,null];let n=e.left?.subtreeLength??0;if(t<=n){let[n,r]=this.#E(e.left,t);return this.#w(e,r),e.updateSubtreeLength(),[n,e]}let r=e.piece.length;if(t>=n+r){let[i,a]=this.#E(e.right,t-n-r);return this.#T(e,i),e.updateSubtreeLength(),[e,a]}let i=t-n,a=new Oe(this.#y(e.piece.source,e.piece.offset,i)),o=new Oe(this.#y(e.piece.source,e.piece.offset+i,r-i));return a.priority=e.priority,o.priority=e.priority,this.#w(a,e.left),this.#T(o,e.right),a.updateSubtreeLength(),o.updateSubtreeLength(),[a,o]}#D(e,t){if(e===null||t>=e.subtreeLength)return null;if(t<=0)return e;let n=e.left?.subtreeLength??0;if(t<=n)return this.#w(e,this.#D(e.left,t)),e.updateSubtreeLength(),e;let r=n+e.piece.length;if(t>=r)return this.#D(e.right,t-r);let i=t-n,a=new Oe(this.#y(e.piece.source,e.piece.offset+i,e.piece.length-i));return a.priority=e.priority,this.#T(a,e.right),a.updateSubtreeLength(),a}#O(e,t){return e===null?t:t===null?e:e.priority>=t.priority?(this.#T(e,this.#O(e.right,t)),e.updateSubtreeLength(),e):(this.#w(t,this.#O(e,t.left)),t.updateSubtreeLength(),t)}#k(e,t){if(e===null)return this.#C(t);let n=e;for(;n.right!==null;)n=n.right;if(Pe(n.piece,t)){n.piece=Fe(n.piece,t);for(let t=n;t!==null&&(t.updateSubtreeLength(),t!==e);)t=t.parent;return e}return this.#O(e,this.#C(t))}#A(e){if(e===null)return[void 0,null];if(e.left===null)return[e.piece,e.right];let[t,n]=this.#A(e.left);return this.#w(e,n),e.updateSubtreeLength(),[t,e]}#j(e,t){return e===null?!0:!this.#j(e.left,t)||t(e)===!1?!1:this.#j(e.right,t)}};function Ae(e){return e===10||e===13}function L(e,t,n){return Math.min(Math.max(e,t),n)}function je(e){let t=Array.from({length:e.length}).fill(0),n=0;for(let r=1;r<e.length;r++){let i=e.charCodeAt(r);for(;n>0&&i!==e.charCodeAt(n);)n=t[n-1];i===e.charCodeAt(n)&&n++,t[r]=n}return t}function Me(e,t){let n=[];for(let[r,i]of e){let e=L(r,0,t),a=L(i,e,t);e<a&&n.push([e,a])}n.sort((e,t)=>e[0]-t[0]);let r=[];for(let e of n){let t=r[r.length-1];if(t!==void 0&&e[0]<=t[1]){t[1]=Math.max(t[1],e[1]);continue}r.push(e)}return r}function Ne(e,t,n){let r=0,i=e.length;for(;r<i;){let n=r+Math.floor((i-r)/2);e[n][1]<=t?r=n+1:i=n}let a=e[r];return a!==void 0&&a[0]<n}function Pe(e,t){return e.source===t.source&&e.offset+e.length===t.offset&&!R(e.lastCharCode,t.firstCharCode)}function Fe(e,t){return new Ee(e.source,e.offset,e.length+t.length,e.lineOffsetStart,t.lineOffsetEnd,t.hasVirtualTrailingCRBreak,e.firstCharCode,t.lastCharCode)}function R(e,t){return e===we&&t===Ce}function Ie(e,t){let n=0,r=e.length;for(;n<r;){let i=n+Math.floor((r-n)/2);e[i]<=t?n=i+1:r=i}return n}function Le(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Re(e){if(e<=32||e===127)return!0;let t=String.fromCharCode(e);return Te.includes(t)}function ze(e,t,n){let r=t<=0||Re(e.charCodeAt(t-1)),i=t+n>=e.length||Re(e.charCodeAt(t+n));return r&&i}function Be(e,t,n){let r=t?e:Le(e);return new RegExp(r,`g${n?``:`i`}${t?`m`:``}`)}function Ve(e,t){return e.replace(/\$([$&]|\d+)/g,(e,n)=>n===`$`?`$`:n===`&`?t[0]??``:t[Number(n)]??``)}function He(e,t,n,r,i,a){if(!r.regex)return r.replaceText;let o=e(i),s=n(o.line),c=i-t({line:o.line,character:0}),l;try{l=Be(r.text,!0,r.caseSensitive)}catch{return r.replaceText}l.lastIndex=c;let u=l.exec(s);return u===null||u.index!==c||u[0].length!==a-i?r.replaceText:Ve(r.replaceText,u)}function Ue(e,t){if(t+1<e.length){let n=e.charCodeAt(t),r=e.charCodeAt(t+1);if(n>=55296&&n<=56319&&r>=56320&&r<=57343)return t+2}return t+1}var We=new WeakMap;function Ge(e){return We.get(e)}function Ke(e,t){We.set(e,t)}var qe=class e{#e;#t;#n;#r;#i;#a;constructor(e,t,n=`text`,r=0,i=new pe,a){if(this.#e=new URL(e,`file://`).toString(),this.#t=n,this.#n=r,this.#r=new ke(t),this.#i=i,a!=null)this.#a=a;else{let e=this.#r.getLineText(0,!0);this.#a=e.endsWith(`\r
4
+ `)&&s.text.length===0;if(l&&u){if(o.start!==a.end||(n??=L,n!==L||e.coalescingMode!==void 0&&e.coalescingMode!==L||t.coalescingMode!==void 0&&t.coalescingMode!==L))return!1;continue}let d=i.text.length===0&&i.end>i.start&&a.text.length>0,f=o.text.length===0&&o.end>o.start&&s.text.length>0;if(d&&f){let r;if(c===i.end)r=z;else if(c+(o.end-o.start)!==i.start)return!1;else r=R;if(n??=r,n!==r||e.coalescingMode!==void 0&&e.coalescingMode!==r||t.coalescingMode!==void 0&&t.coalescingMode!==r)return!1;continue}return!1}return n!==void 0}function ge(e,t){let n=[],r=[],i;for(let a=0;a<e.forwardEdits.length;a++){let o=e.forwardEdits[a],s=e.inverseEdits[a],c=t.forwardEdits[a],l=t.inverseEdits[a],u=ve(c.start,e.forwardEdits);if(o.text.length>0){i??=L,n.push({start:o.start,end:o.end,text:o.text+c.text}),r.push(s.text);continue}if(u===o.end){i??=z,n.push({start:o.start,end:u+(c.end-c.start),text:``}),r.push(s.text+l.text);continue}i??=R,n.push({start:Math.min(o.start,u),end:o.end,text:``}),r.push(l.text+s.text)}return{forwardEdits:n,inverseEdits:_e(n,r),versionBefore:e.versionBefore,versionAfter:t.versionAfter,selectionsBefore:e.selectionsBefore?.slice(),selectionsAfter:t.selectionsAfter?.slice(),lineAnnotationsBefore:e.lineAnnotationsBefore?.slice(),lineAnnotationsAfter:t.lineAnnotationsAfter?.slice(),coalescingMode:i}}function _e(e,t){let n=[];for(let r=0,i=0;r<e.length;r++){let a=e[r],o=a.start+i;n.push({start:o,end:o+a.text.length,text:t[r]}),i+=a.text.length-(a.end-a.start)}return n}function ve(e,t){let n=e;for(let e of t){let t=e.end-e.start,r=e.text.length,i=r-t;if(!(n<e.start)){if(n>=e.start+r){n-=i;continue}n=e.start+Math.min(n-e.start,t)}}return n}var ye=1e5,be=10,xe=13,Se=`\`~!@#$%^&*()-=+[{]}\\|;:'",.<>/?`,Ce=class{source;offset;length;lineOffsetStart;lineOffsetEnd;hasVirtualTrailingCRBreak;firstCharCode;lastCharCode;static Original=0;static Added=1;constructor(e,t,n,r,i,a,o,s){this.source=e,this.offset=t,this.length=n,this.lineOffsetStart=r,this.lineOffsetEnd=i,this.hasVirtualTrailingCRBreak=a,this.firstCharCode=o,this.lastCharCode=s}get lineBreakCount(){return this.lineOffsetEnd-this.lineOffsetStart+ +!!this.hasVirtualTrailingCRBreak}},we=class{text;lineOffsets;constructor(e){this.text=e,this.lineOffsets=m(e)}append(e){let t=this.text.length;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);(r===be||r===xe)&&(r===xe&&e.charCodeAt(n+1)===be&&n++,this.lineOffsets.push(t+n+1))}return this.text+=e,t}},Te=class{piece;subtreeLength;subtreeLineBreakCount;subtreeFirstCharCode;subtreeLastCharCode;left=null;right=null;parent=null;priority=0;constructor(e,t=e.length,n=e.lineBreakCount,r=e.firstCharCode,i=e.lastCharCode){this.piece=e,this.subtreeLength=t,this.subtreeLineBreakCount=n,this.subtreeFirstCharCode=r,this.subtreeLastCharCode=i}updateSubtreeLength(){this.subtreeLength=(this.left?.subtreeLength??0)+this.piece.length+(this.right?.subtreeLength??0),this.subtreeLineBreakCount=(this.left?.subtreeLineBreakCount??0)+this.piece.lineBreakCount+(this.right?.subtreeLineBreakCount??0)-+!!V(this.left?.subtreeLastCharCode,this.piece.firstCharCode)-!!V(this.piece.lastCharCode,this.right?.subtreeFirstCharCode),this.subtreeFirstCharCode=this.left?.subtreeFirstCharCode??this.piece.firstCharCode,this.subtreeLastCharCode=this.right?.subtreeLastCharCode??this.piece.lastCharCode}},Ee=class{#e;#t=new we(``);#n=null;#r=0;#i=0;#a=null;#o=null;#s=null;#c=2654435769;constructor(e){this.#e=new we(e);let t=this.#y(Ce.Original,0,e.length);this.#n=t.length>0?this.#C(t):null,this.#r=this.#n?.subtreeLength??0,this.#i=(this.#n?.subtreeLineBreakCount??0)+1}get lineCount(){return this.#i}getText(e){if(e===void 0)return this.#g();let t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this.getTextSlice(t,n)}getLineText(e,t=!1){if(this.#a!==null&&this.#a[0]===e&&this.#a[1]===t)return this.#a[2];let n=this.#f(e);if(n===void 0)throw Error(`Line index out of range: ${e}`);let r=this.getTextSlice(n[0],n[1],!t);return this.#a=[e,t,r],this.#o=[e,t,r.length],r}getLineLength(e,t=!1){let n=this.#o,r=this.#a;if(n!==null&&n[0]===e&&n[1]===t)return n[2];if(r!==null&&r[0]===e&&r[1]===t){let n=r[2].length;return this.#o=[e,t,n],n}let i=this.#f(e);if(i===void 0)throw Error(`Line index out of range: ${e}`);let[a,o]=i,s=o-a;if(!t)for(;s>0&&De(this.charAt(a+s-1).charCodeAt(0));)s--;return this.#o=[e,t,s],s}getTextSlice(e,t,n=!1){if(e>=t)return``;let r=B(e,0,this.#r),i=B(t,r,this.#r);if(r>=i)return``;let a=this.#u(r);if(a===void 0)return``;let o=[],[s,c]=a,l=i-r;for(;s!==null&&l>0;){let e=Math.min(s.piece.length-c,l),t=this.#v(s.piece.source),r=s.piece.offset+c,i=r+e;if(n)for(;i>r&&De(t.text.charCodeAt(i-1));)i--;o.push(t.text.slice(r,i)),l-=e,c=0,s=this.#d(s)}return o.join(``)}charAt(e){let t=this.#u(e);if(t===void 0)return``;let[n,r]=t;return this.#v(n.piece.source).text.charAt(n.piece.offset+r)}includes(e){if(e.length===0)return!0;let t=Oe(e),n=0,r=!1;return this.#_(i=>{for(let a=i.start;a<i.end;a++){let o=i.text.charCodeAt(a);for(;n>0&&o!==e.charCodeAt(n);)n=t[n-1];if(o===e.charCodeAt(n)&&n++,n===e.length)return r=!0,!1}return!0}),r}findNextNonOverlappingSubstring(e,t){if(e.length===0||e.length>this.#r)return;let n=ke(t,this.#r),r=n.reduce((e,[,t])=>Math.max(e,t),0),i=Oe(e),a=0,o=0,s,c;return this.#_(t=>{for(let l=t.start;l<t.end;l++){let u=t.text.charCodeAt(l);for(;a>0&&u!==e.charCodeAt(a);)a=i[a-1];if(u===e.charCodeAt(a)&&a++,a===e.length){let t=o-e.length+1;if(!Ae(n,t,t+e.length)){if(t>=r)return c=t,!1;s??=t}a=i[a-1]}o++}return!0}),c??s}search(e){if(e.text.length===0||this.#r===0||e.text.includes(`
5
+ `)||e.text.includes(`\r`)||e.regex&&(e.text.includes(`\\n`)||e.text.includes(`\\r`)))return[];let t;try{t=Le(e.text,e.regex,e.caseSensitive)}catch{return[]}return this.#l(t,e.wholeWord,ye)}#l(e,t,n){let r=[],i=this.#g(),a=i.length,o=m(i);for(let s=0;s<o.length;s++){let c=o[s],l=o[s+1]??a;for(;l>c&&De(i.charCodeAt(l-1));)l--;let u=i.slice(c,l);e.lastIndex=0;let d;for(;(d=e.exec(u))!==null;){let a=d.index,o=d[0];if(o.length===0){e.lastIndex=Be(u,a);continue}let s=c+a;if((!t||Ie(i,s,o.length))&&(r.push([s,s+o.length]),r.length>=n))return r;a===e.lastIndex&&(e.lastIndex=Be(u,a))}}return r}insert(e,t){if(e.length===0)return;let n=B(t,0,this.#r);this.#b(n,n,e),this.#x()}delete(e,t){if(t<=0||this.#r===0)return;let n=B(e,0,this.#r),r=B(n+t,n,this.#r);n!==r&&(this.#b(n,r,``),this.#x())}applyEdits(e){if(e.length!==0){for(let t=e.length-1;t>=0;t--){let n=e[t],r=B(n.start,0,this.#r),i=B(n.end,r,this.#r);this.#b(r,i,n.text)}this.#x()}}positionAt(e){let t=B(e,0,this.#r);if(this.#r===0)return{line:0,character:0};let n=this.#p(t),r=t-(n===0?0:this.#m(n-1));return this.#s=[n,r,t],{line:n,character:r}}positionsAt(e){let t=Array.from({length:e.length});if(e.length===0)return t;if(this.#r===0)return t.fill({line:0,character:0});for(let n=0;n<e.length;n++)t[n]=this.positionAt(e[n]);return t}offsetAt(e){if(e.line<0||this.#r===0)return 0;if(e.line>=this.#i)throw Error(`Line index out of range: ${e.line}`);let t=this.#s;if(t!==null&&t[0]===e.line&&t[1]===e.character)return t[2];let n=this.#f(e.line);if(n===void 0)throw Error(`Line index out of range: ${e.line}`);let r=B(e.character,0,n[1]-n[0]);return n[0]+r}#u(e){if(e<0||e>=this.#r)return;let t=this.#n,n=e;for(;t!==null;){let e=t.left?.subtreeLength??0;if(n<e){t=t.left;continue}if(n-=e,n<t.piece.length)return[t,n];n-=t.piece.length,t=t.right}}#d(e){if(e.right!==null){let t=e.right;for(;t.left!==null;)t=t.left;return t}let t=e;for(;t.parent!==null&&t===t.parent.right;)t=t.parent;return t.parent}#f(e){if(e<0)throw Error(`Line index out of range: ${e}`);if(this.#r===0){if(e===0)return[0,0];throw Error(`Line index out of range: ${e}`)}if(e>=this.#i)throw Error(`Line index out of range: ${e}`);return[e===0?0:this.#m(e-1),e<this.#i-1?this.#m(e):this.#r]}#p(e){let t=this.#n,n=B(e,0,this.#r),r=0;for(;t!==null;){let e=t.left?.subtreeLength??0;if(n<e){t=t.left;continue}if(r+=(t.left?.subtreeLineBreakCount??0)-+!!V(t.left?.subtreeLastCharCode,t.piece.firstCharCode),n-=e,n<=t.piece.length){let e=this.#v(t.piece.source),i=Math.min(Ne(e.lineOffsets,t.piece.offset+n),t.piece.lineOffsetEnd);return r+=i-t.piece.lineOffsetStart,n===t.piece.length&&t.piece.hasVirtualTrailingCRBreak&&r++,n===t.piece.length&&V(t.piece.lastCharCode,this.#d(t)?.piece.firstCharCode)&&r--,r}r+=t.piece.lineBreakCount-+!!V(t.piece.lastCharCode,t.right?.subtreeFirstCharCode),n-=t.piece.length,t=t.right}return this.#i-1}#m(e){let t=this.#n,n=e,r=0,i;for(;t!==null;){let e=(t.left?.subtreeLineBreakCount??0)-+!!V(t.left?.subtreeLastCharCode,t.piece.firstCharCode);if(n<e){i=t.piece.firstCharCode,t=t.left;continue}let a=t.left?.subtreeLength??0;r+=a,n-=e;let o=t.right?.subtreeFirstCharCode??i,s=t.piece.lineBreakCount-+!!V(t.piece.lastCharCode,o);if(n<s)return r+this.#h(t.piece,n);r+=t.piece.length,n-=s,t=t.right}return this.#r}#h(e,t){return t<e.lineOffsetEnd-e.lineOffsetStart?this.#v(e.source).lineOffsets[e.lineOffsetStart+t]-e.offset:e.length}#g(){let e=[];return this.#_(t=>{e.push(t.text.slice(t.start,t.end))}),e.join(``)}#_(e){this.#j(this.#n,t=>{let n=this.#v(t.piece.source);return e({text:n.text,lineOffsets:n.lineOffsets,lineOffsetStart:t.piece.lineOffsetStart,lineOffsetEnd:t.piece.lineOffsetEnd,start:t.piece.offset,end:t.piece.offset+t.piece.length})})}#v(e){return e===Ce.Original?this.#e:this.#t}#y(e,t,n){let r=this.#v(e),i=t+n,a=Ne(r.lineOffsets,t),o=Ne(r.lineOffsets,i),s=r.text.charCodeAt(i-1);return new Ce(e,t,n,a,o,s===xe&&r.lineOffsets[o-1]!==i,r.text.charCodeAt(t),s)}#b(e,t,n){if(e===t&&n.length===0)return;let[r,i]=this.#E(this.#n,e),a=this.#D(i,t-e),o;if(n.length>0){let e=this.#y(Ce.Added,this.#t.append(n),n.length);o=this.#O(this.#k(r,e),a)}else{let[e,t]=this.#A(a);o=e===void 0?r:this.#O(this.#k(r,e),t)}o!==null&&(o.parent=null),this.#n=o,this.#r=o?.subtreeLength??0,this.#i=(o?.subtreeLineBreakCount??0)+1}#x(){this.#a=null,this.#o=null,this.#s=null}#S(){return this.#c=Math.imul(this.#c,1664525)+1013904223>>>0,this.#c}#C(e){let t=new Te(e);return t.priority=this.#S(),t}#w(e,t){e.left=t,t!==null&&(t.parent=e)}#T(e,t){e.right=t,t!==null&&(t.parent=e)}#E(e,t){if(e===null)return[null,null];if(t<=0)return[null,e];if(t>=e.subtreeLength)return[e,null];let n=e.left?.subtreeLength??0;if(t<=n){let[n,r]=this.#E(e.left,t);return this.#w(e,r),e.updateSubtreeLength(),[n,e]}let r=e.piece.length;if(t>=n+r){let[i,a]=this.#E(e.right,t-n-r);return this.#T(e,i),e.updateSubtreeLength(),[e,a]}let i=t-n,a=new Te(this.#y(e.piece.source,e.piece.offset,i)),o=new Te(this.#y(e.piece.source,e.piece.offset+i,r-i));return a.priority=e.priority,o.priority=e.priority,this.#w(a,e.left),this.#T(o,e.right),a.updateSubtreeLength(),o.updateSubtreeLength(),[a,o]}#D(e,t){if(e===null||t>=e.subtreeLength)return null;if(t<=0)return e;let n=e.left?.subtreeLength??0;if(t<=n)return this.#w(e,this.#D(e.left,t)),e.updateSubtreeLength(),e;let r=n+e.piece.length;if(t>=r)return this.#D(e.right,t-r);let i=t-n,a=new Te(this.#y(e.piece.source,e.piece.offset+i,e.piece.length-i));return a.priority=e.priority,this.#T(a,e.right),a.updateSubtreeLength(),a}#O(e,t){return e===null?t:t===null?e:e.priority>=t.priority?(this.#T(e,this.#O(e.right,t)),e.updateSubtreeLength(),e):(this.#w(t,this.#O(e,t.left)),t.updateSubtreeLength(),t)}#k(e,t){if(e===null)return this.#C(t);let n=e;for(;n.right!==null;)n=n.right;if(je(n.piece,t)){n.piece=Me(n.piece,t);for(let t=n;t!==null&&(t.updateSubtreeLength(),t!==e);)t=t.parent;return e}return this.#O(e,this.#C(t))}#A(e){if(e===null)return[void 0,null];if(e.left===null)return[e.piece,e.right];let[t,n]=this.#A(e.left);return this.#w(e,n),e.updateSubtreeLength(),[t,e]}#j(e,t){return e===null?!0:!this.#j(e.left,t)||t(e)===!1?!1:this.#j(e.right,t)}};function De(e){return e===10||e===13}function B(e,t,n){return Math.min(Math.max(e,t),n)}function Oe(e){let t=Array.from({length:e.length}).fill(0),n=0;for(let r=1;r<e.length;r++){let i=e.charCodeAt(r);for(;n>0&&i!==e.charCodeAt(n);)n=t[n-1];i===e.charCodeAt(n)&&n++,t[r]=n}return t}function ke(e,t){let n=[];for(let[r,i]of e){let e=B(r,0,t),a=B(i,e,t);e<a&&n.push([e,a])}n.sort((e,t)=>e[0]-t[0]);let r=[];for(let e of n){let t=r[r.length-1];if(t!==void 0&&e[0]<=t[1]){t[1]=Math.max(t[1],e[1]);continue}r.push(e)}return r}function Ae(e,t,n){let r=0,i=e.length;for(;r<i;){let n=r+Math.floor((i-r)/2);e[n][1]<=t?r=n+1:i=n}let a=e[r];return a!==void 0&&a[0]<n}function je(e,t){return e.source===t.source&&e.offset+e.length===t.offset&&!V(e.lastCharCode,t.firstCharCode)}function Me(e,t){return new Ce(e.source,e.offset,e.length+t.length,e.lineOffsetStart,t.lineOffsetEnd,t.hasVirtualTrailingCRBreak,e.firstCharCode,t.lastCharCode)}function V(e,t){return e===xe&&t===be}function Ne(e,t){let n=0,r=e.length;for(;n<r;){let i=n+Math.floor((r-n)/2);e[i]<=t?n=i+1:r=i}return n}function Pe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Fe(e){if(e<=32||e===127)return!0;let t=String.fromCharCode(e);return Se.includes(t)}function Ie(e,t,n){let r=t<=0||Fe(e.charCodeAt(t-1)),i=t+n>=e.length||Fe(e.charCodeAt(t+n));return r&&i}function Le(e,t,n){let r=t?e:Pe(e);return new RegExp(r,`g${n?``:`i`}${t?`m`:``}`)}function Re(e,t){return e.replace(/\$([$&]|\d+)/g,(e,n)=>n===`$`?`$`:n===`&`?t[0]??``:t[Number(n)]??``)}function ze(e,t,n,r,i,a){if(!r.regex)return r.replaceText;let o=e(i),s=n(o.line),c=i-t({line:o.line,character:0}),l;try{l=Le(r.text,!0,r.caseSensitive)}catch{return r.replaceText}l.lastIndex=c;let u=l.exec(s);return u===null||u.index!==c||u[0].length!==a-i?r.replaceText:Re(r.replaceText,u)}function Be(e,t){if(t+1<e.length){let n=e.charCodeAt(t),r=e.charCodeAt(t+1);if(n>=55296&&n<=56319&&r>=56320&&r<=57343)return t+2}return t+1}var Ve=new WeakMap;function He(e){return Ve.get(e)}function Ue(e,t){Ve.set(e,t)}var We=class e{#e;#t;#n;#r;#i;#a;constructor(e,t,n=`text`,r=0,i=new ue,a){if(this.#e=new URL(e,`file://`).toString(),this.#t=n,this.#n=r,this.#r=new Ee(t),this.#i=i,a!=null)this.#a=a;else{let e=this.#r.getLineText(0,!0);this.#a=e.endsWith(`\r
6
6
  `)?`\r
7
7
  `:e.endsWith(`\r`)?`\r`:`
8
- `}}get uri(){return this.#e}get languageId(){return this.#t}get version(){return this.#n}get lineCount(){return this.#r.lineCount}get eol(){return this.#a}get history(){return this.#i.getLiveState()}get canUndo(){return this.#i.canUndo}get canRedo(){return this.#i.canRedo}clearHistory(){this.#i.clear()}positionAt(e){return this.normalizePosition(this.#r.positionAt(e))}positionsAt(e){let t=this.#r.positionsAt(e);for(let e=0;e<t.length;e++)t[e]=this.normalizePosition(t[e]);return t}offsetAt(e){return this.#r.offsetAt(this.normalizePosition(e))}getText(e){return e===void 0?this.#r.getText():this.#r.getText({start:this.normalizePosition(e.start),end:this.normalizePosition(e.end)})}getLineText(e,t){return this.#r.getLineText(e,t)}normalizeEol(e){return e.replace(/\r\n|\r|\n/g,this.eol)}getLineLength(e,t){return this.#r.getLineLength(e,t)}charAt(e){return typeof e==`number`?this.#r.charAt(e):this.#r.charAt(this.offsetAt(e))}getTextSlice(e,t){return this.#r.getTextSlice(e,t)}findNextNonOverlappingSubstring(e,t){return this.#r.findNextNonOverlappingSubstring(e,t)}search(e){return this.#r.search(e)}applyEdits(e,t=!0,n,r,i=!1){if(e.length!==0)return this.#o(this.#d(this.resolveEdits(e)),t,n,r,i)}resolveEdits(e){return e.map(e=>this.#c(e))}applyResolvedEdits(e,t=!0,n,r,i=!1){if(e.length!==0)return this.#o(this.#d(e.map(e=>this.#l(e))),t,n,r,i)}#o(e,t,n,r,i){let a=_e(this,e,this.#n,this.#n+1,t?n:void 0,t?r:void 0);t&&i&&(a.undoBoundary=!0);let o=this.#i.peekUndoForCoalescing(),s=this.#f(e);return this.#n++,s.lineDelta===0&&ve(o,a)?this.#i.replaceLastUndo(ye(o,a)):this.#i.push(a),Ke(s,{appliedEdits:a.forwardEdits,inverseEdits:a.inverseEdits}),s}setLastUndoSelectionsAfter(e){this.#i.setLastUndoSelectionsAfter(e)}setLastUndoLineAnnotations(e,t){this.#i.setLastUndoLineAnnotations(e,t)}undo(){let e=this.#i.popUndoToRedo();if(e===void 0)return;let t=this.#f(e.inverseEdits);if(t===void 0)return;Ke(t,{appliedEdits:e.inverseEdits,inverseEdits:e.forwardEdits}),this.#n=e.versionBefore;let n=e.selectionsBefore?.slice();return[t,n,e.lineAnnotationsBefore?.slice(),n===void 0?e.inverseEdits.map(e=>({...e})):void 0]}redo(){let e=this.#i.popRedoToUndo();if(e===void 0)return;let t=this.#f(e.forwardEdits);if(t===void 0)return;Ke(t,{appliedEdits:e.forwardEdits,inverseEdits:e.inverseEdits}),this.#n=e.versionAfter;let n=e.selectionsAfter?.slice();return[t,n,e.lineAnnotationsAfter?.slice(),n===void 0?e.forwardEdits.map(e=>({...e})):void 0]}normalizePosition(t){let n=e.#s(t.line,this.lineCount-1);return{line:n,character:e.#s(t.character,this.getLineLength(n))}}static#s(e,t){return Number.isNaN(e)?0:Math.max(0,Math.min(Math.floor(e),t))}#c(e){let t=this.offsetAt(e.range.start),n=this.offsetAt(e.range.end);if(t>n){let e=t;t=n,n=e}return this.#l({start:t,end:n,text:e.newText})}#l(e){let{start:t,end:n}=e,r=t===n;return this.#u(t)&&t--,r?n=t:this.#u(n)&&n++,{start:t,end:n,text:e.text}}#u(e){let t=this.#r.charAt(e-1).charCodeAt(0),n=this.#r.charAt(e).charCodeAt(0);return t>=55296&&t<=56319&&n>=56320&&n<=57343}#d(e){let t=[...e].sort((e,t)=>{let n=e.start-t.start;return n===0?e.end-t.end:n});for(let e=0;e<t.length-1;e++)if(t[e].end>t[e+1].start)throw Error(`Overlapping text edits are not supported`);return t}#f(e){let t=this.#r.lineCount,n=this.positionsAt(e.flatMap(e=>[e.start,e.end])),r=this.#p(e,n),i=n[0],a=n[n.length-1],o=a.line===t-1&&a.character===this.#r.getLineLength(a.line);this.#r.applyEdits(e);let s=this.#r.lineCount;return{changes:e.map((e,t)=>({...e,range:{start:n[t*2],end:n[t*2+1]}})),startLine:r.startLine,startCharacter:i.character,endCharacter:a.character,endLine:Math.min(r.endLine,Math.max(0,s-1)),endedAtDocumentEnd:o,previousLineCount:t,lineCount:s,lineDelta:s-t,changedLineRanges:r.ranges,changedLineChanges:r.changes}}#p(e,t){let n=1/0,r=0,i=0,a=[],o=[],s=this.#r.lineCount-1,c=this.#r.getLineLength(s);for(let l=0;l<e.length;l++){let u=e[l],d=t[l*2],f=t[l*2+1],p=d.line,m=f.line,h=v(u.text),g=p+i,_=g+h,y=h-(m-p);n=Math.min(n,p),r=Math.max(r,_);let b=a[a.length-1];b!==void 0&&g<=b[1]+1?a[a.length-1]=[b[0],Math.max(b[1],_)]:a.push([g,_]),o.push([g,_,y,d.character,f.character,m===s&&f.character===c]),i+=y}return n===1/0?{startLine:0,endLine:0,ranges:[[0,0]],changes:[[0,0,0,0,0,!1]]}:{startLine:n,endLine:r,ranges:a,changes:o}}},Je=e(O(),1),Ye=100,Xe=class{type;#e=new Je.default.LRUMap(Ye);#t=new Map;constructor(e){this.type=e}activate(e,t,n){let r=this.#t.get(e);if(r!=null&&r.owner!==t)throw Error(`Editor: editStateKey "${e}" is already attached to another editor`);if(r!=null)return n!=null&&(r.session=n),r.session;let i=this.#e.delete(e),a={type:this.type},o=n??i??a;return this.#t.set(e,{owner:t,session:o}),o}release(e,t,n=!1){let r=this.#t.get(e);if(r?.owner!==t||(this.#t.delete(e),n))return;let i=$e(r.session);i!=null&&this.#e.set(e,i)}get(e){let t=this.#t.get(e);return t==null?this.#e.find(e):$e(t.session)??void 0}clear(e,t){if(this.#t.has(e))return!1;let n=this.#e.find(e);return n!=null&&(t==null||t.document===!0?this.#e.delete(e):et(n,t),!0)}clearAll(){this.#e.clear()}setCapacity(e){if(!Number.isSafeInteger(e)||e<1)throw RangeError(`EditStateManager: capacity must be a positive integer`);for(;this.#e.size>e;)this.#e.shift();this.#e.limit=e}},Ze=class{#e=new Xe(`file`);#t=new Xe(`file-diff`);activate(e,t,n,r){return e===`file`?this.#e.activate(t,n,r):this.#t.activate(t,n,r)}releaseFile(e,t,n=!1){this.#e.release(e,t,n)}releaseFileDiff(e,t,n=!1){this.#t.release(e,t,n)}get(e,t){return e===`file`?this.#e.get(t):this.#t.get(t)}clear(e,t,n){return e===`file`?this.#e.clear(t,n):this.#t.clear(t,n)}clearAll(){this.#e.clearAll(),this.#t.clearAll()}setCapacity(e){this.#e.setCapacity(e),this.#t.setCapacity(e)}};function Qe(e){return{selections:e.selections?.map(e=>({...e,start:{...e.start},end:{...e.end}})),view:e.view==null?void 0:{...e.view}}}function $e(e){if(e.document!=null&&e.fileInfo!=null&&(e.type===`file`||e.diffSession!=null))return e.editor??={},e}function et(e,t){e!=null&&(t.history===!0&&e.document?.clearHistory(),e.editor!=null&&((t.editor===!0||t.selections===!0)&&(e.editor.selections=void 0),(t.editor===!0||t.view===!0)&&(e.editor.view=void 0)))}var tt=new Ze;function nt({metaKey:e,ctrlKey:t},n=k()){return n?e&&!t:t&&!e}function rt(e){if(k()&&e.ctrlKey&&!e.altKey&&!e.metaKey)switch(e.key){case`a`:return`start`;case`e`:return`end`;case`p`:return`up`;case`n`:return`down`;case`f`:return`right`;case`b`:return`left`}if(!e.altKey&&!e.ctrlKey&&!e.metaKey){if(e.key===`ArrowUp`)return`up`;if(e.key===`ArrowDown`)return`down`;if(e.key===`ArrowLeft`)return`left`;if(e.key===`ArrowRight`)return`right`;if(e.key===`Home`)return`start`;if(e.key===`End`)return`end`}if(nt(e)){if(e.key===`ArrowLeft`)return`textStart`;if(e.key===`ArrowRight`)return`end`}}var it=new WeakMap,at=st([{bindings:{Tab:`indent`,"shift+Tab":`outdent`,"cmdOrCtrl+[":`indentLess`,"cmdOrCtrl+]":`indentMore`,"cmdOrCtrl+z":`undo`,"cmdOrCtrl+shift+z":`redo`,"cmdOrCtrl+a":`selectAll`,"cmdOrCtrl+d":`findNextMatch`,"cmdOrCtrl+f":`openSearchPanel`,"cmdOrCtrl+alt+f":`openSearchReplacePanel`,"alt+ArrowUp":`moveLineUp`,"alt+ArrowDown":`moveLineDown`,"shift+alt+ArrowUp":`copyLineUp`,"shift+alt+ArrowDown":`copyLineDown`,Escape:`simplifySelection`,"cmdOrCtrl+Enter":`insertBlankLine`,"cmdOrCtrl+/":`toggleComment`,"shift+alt+a":`toggleBlockComment`,"cmdOrCtrl+Home":`moveCursorToDocStart`,"cmdOrCtrl+End":`moveCursorToDocEnd`,"cmdOrCtrl+shift+Home":`expandSelectionDocStart`,"cmdOrCtrl+shift+End":`expandSelectionDocEnd`}},{platform:`mac`,bindings:{"ctrl+k":`deleteHardLineForward`,"ctrl+alt+p":`moveLineUp`,"ctrl+alt+n":`moveLineDown`,"cmd+ArrowUp":`moveCursorToDocStart`,"cmd+ArrowDown":`moveCursorToDocEnd`,"cmd+shift+ArrowUp":`expandSelectionDocStart`,"cmd+shift+ArrowDown":`expandSelectionDocEnd`}},{platform:`windows`,bindings:{"ctrl+y":`redo`}},{platform:`linux`,bindings:{"ctrl+y":`redo`,"ctrl+alt+p":`moveLineUp`,"ctrl+alt+n":`moveLineDown`}}]),ot={Backquote:"`",Minus:`-`,Equal:`=`,Comma:`,`,Period:`.`,Slash:`/`,Semicolon:`;`,Quote:`'`,BracketLeft:`[`,BracketRight:`]`,Backslash:`\\`,Space:`Space`};function st(e){let t=it.get(e);if(t===void 0){t={mac:new Map,windows:new Map,linux:new Map};for(let n of e)for(let e of Object.keys(n.bindings)){let r=n.bindings[e];if(r===void 0)continue;let i=e.split(`+`),a=i.pop();for(let e of[`mac`,`windows`,`linux`]){if(n.platform!==void 0&&n.platform!==e)continue;let o=0;for(let t of i)t===`alt`?o|=1:t===`ctrl`?o|=2:t===`cmd`?o|=4:t===`shift`?o|=8:t===`cmdOrCtrl`&&(o|=e===`mac`?4:2);let s=t[e].get(o);s===void 0&&(s=new Map,t[e].set(o,s)),s.set(a,r)}}it.set(e,t)}return t}function ct(e,t,n=k()){let r=e.key===` `?`Space`:e.key.length===1?e.key.toLowerCase():e.key,i=e.code??``,a=i.startsWith(`Key`)&&i.length===4?i.slice(3).toLowerCase():i.startsWith(`Digit`)&&i.length===6?i.slice(5):ot[i],o=n?`mac`:globalThis.navigator?.platform.includes(`Linux`)===!0?`linux`:`windows`,s=+!!e.altKey|(e.ctrlKey?2:0)|(e.metaKey?4:0)|(e.shiftKey?8:0);if(t!==void 0){let e=st(t)[o].get(s),n=e?.get(r)??(a===void 0?void 0:e?.get(a));if(n!==void 0)return n}let c=at[o].get(s);return c?.get(r)??(a===void 0?void 0:c?.get(a))}function lt(e,t=k()){if(!e.altKey&&nt(e,t)&&((e.key.length===1?e.key.toLowerCase():e.key)===`g`||e.code===`KeyG`))return e.shiftKey?`previous`:`next`}function z(e,t,n){let{style:r,dataset:i,children:a,...o}=t??{},s=document.createElement(e);return Object.assign(s,o),r!==void 0&&(typeof r==`string`?s.style.cssText=r:Object.assign(s.style,r)),i!==void 0&&(typeof i==`string`?s.dataset[i]=``:Array.isArray(i)?i.forEach(e=>{s.dataset[e]=``}):Object.assign(s.dataset,i)),a!==void 0&&s.replaceChildren(...a),n!==void 0&&n.appendChild(s),s}function B(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}function V(e,t=`line`){let n=e.dataset[t];if(n===void 0)return;let r=parseInt(n,10);if(!Number.isNaN(r))return r}function ut(e,t){if(e.nodeType===3){let n=e.textContent?.length??0;return Math.max(0,Math.min(t,n))}return e.nodeType===1?Math.max(0,Math.min(t,e.childNodes.length)):0}function dt(e,t){return Object.assign(e,t)}function ft(e,t){let n;return function(...r){clearTimeout(n),n=setTimeout(()=>e.apply(this,r),t)}}function H(e,t=1e3){return Math.round(e*t)/t}function pt(e){return e.endsWith(`
9
- `)||e.endsWith(`\r`)}function mt(e){if(!(typeof Intl>`u`||typeof Intl.Segmenter!=`function`))return new Intl.Segmenter(void 0,e)}var ht,gt=!1;function U(){return gt||=(ht=mt({granularity:`grapheme`}),!0),ht}function _t(e){let t=e.ownerDocument,n=e.parentElement;for(;n!=null&&n!==t.body&&n!==t.documentElement;){let e=n.ownerDocument.defaultView?.getComputedStyle(n).overflowY;if(e===`auto`||e===`scroll`||e===`overlay`)return n;n=n.parentElement}return t}var vt=class{#e;#t;#n;#r;#i;#a;#o=0;#s=0;#c=0;#l=!0;#u;#d=new Map;#f;#p;constructor(e){this.#f=e.hasActivePopover,this.#p=e.updateActivePopover}setViewportElements(e,t){let n=this.#e!==e||this.#t!==t;this.#e=e,n&&(this.#t=t,this.#l=!0,this.#u?.forEach(e=>e()),this.#u=void 0)}cleanUp(){this.#t=void 0,this.#e=void 0,this.#n=void 0,this.#r=void 0,this.#i=void 0,this.#a=void 0,this.#o=0,this.#s=0,this.#c=0,this.#l=!0,this.#u?.forEach(e=>e()),this.#u=void 0,this.#d.clear()}resetPlacement(e=`default`){this.#d.delete(e)}setPlacement(e,t=`default`){this.#d.set(t,e)}choosePlacement(e){let{preferred:t,fallback:n,viewport:r,popoverHeight:i,atDocumentEdge:a,placementKey:o=`default`}=e,s=this.#d.get(o),c;if(r!==void 0&&i>0){let e=(e,t=0)=>e.top>=r.top+t&&e.bottom<=r.bottom-t;c=s===`fallback`&&e(n)&&!e(t,4)||!e(t)&&e(n)?`fallback`:`preferred`}else c=a?`fallback`:`preferred`;return this.#d.set(o,c),c}getPlacementBounds(){let e=this.#g();if(e===void 0)return;let t=this.#_(),n,r;if(t===void 0?(n=0,r=window.innerHeight):(n=t.top,r=t.bottom),n=Math.max(n,e.top),r=Math.min(r,e.bottom),r<=n)return;let i=this.#o,a=this.#s,o=this.#c>0?this.#c:e.width,s=t===void 0?0:t.left,c=t===void 0?window.innerWidth:t.right,l=i,u=i+o,d=Math.max(l,s-e.left+i),f=Math.min(u,c-e.left+i);return{top:n-e.top+a,bottom:r-e.top+a,left:d,right:Math.max(d,f)}}#m(){let e=this.#e;if(e===void 0)return;if(this.#r===e&&(this.#n===void 0||this.#n.isConnected))return this.#n;let t=e.parentElement;for(;t!==null;){let n=getComputedStyle(t).overflowY;if(n===`auto`||n===`scroll`||n===`overlay`)return this.#n=t,this.#r=e,t;t=t.parentElement}this.#n=void 0,this.#r=e}#h(){if(!this.#l)return;this.#v();let e=this.#t;this.#i=e?.getBoundingClientRect(),this.#o=e?.scrollLeft??0,this.#s=e?.scrollTop??0,this.#c=e?.clientWidth??0,this.#a=this.#m()?.getBoundingClientRect(),this.#l=!1}#g(){return this.#h(),this.#i}#_(){return this.#h(),this.#a}#v(){if(this.#u!==void 0)return;let e,t=()=>{this.#l=!0,this.#f()&&e===void 0&&(e=requestAnimationFrame(()=>{e=void 0,this.#p()}))},n=this.#m(),r=this.#t;this.#u=[B(n===void 0?window:n,`scroll`,t,{passive:!0}),...r===void 0?[]:[B(r,`scroll`,t,{passive:!0})],B(window,`resize`,t,{passive:!0}),()=>{e!==void 0&&(cancelAnimationFrame(e),e=void 0)}]}};function yt(e,{gutterWidth:t,placeAbove:n,viewport:r,x:i,y:a}){if(e.style.setProperty(`--gutter-width`,t+`px`),e.style.setProperty(`--popover-x`,i+`px`),e.style.setProperty(`--popover-y`,a+`px`),e.style.setProperty(`--popover-y-shift`,n?`-100%`:`0px`),r===void 0){e.style.removeProperty(`--popover-viewport-left`),e.style.removeProperty(`--popover-viewport-right`),e.style.removeProperty(`--popover-viewport-top`),e.style.removeProperty(`--popover-viewport-bottom`);return}e.style.setProperty(`--popover-viewport-left`,r.left+`px`),e.style.setProperty(`--popover-viewport-right`,r.right+`px`),e.style.setProperty(`--popover-viewport-top`,r.top+`px`),e.style.setProperty(`--popover-viewport-bottom`,r.bottom+`px`)}function bt(e){return T(e)}function xt(e,t){let n=St(e);if(n.length===0)return;let r=[],i=!1;for(let a of t){if(`side`in a&&a.side===`deletions`||a.lineNumber<=0){r.push(a);continue}let t=a.lineNumber-1,o=e.previousLineCount,s=!1;for(let e of n){let n=Math.max(1,o+e.lineDelta),r=Ct(t,e,n);if(r===void 0){s=!0,t=void 0;break}(r!==t||Tt(t,e))&&(s=!0),t=r,o=n}if(t===void 0){i=!0;continue}let c=t+1;if(s){if(c===a.lineNumber)r.push(a);else{let e={...a,lineNumber:c};E(e,h(a)),r.push(e)}i=!0;continue}r.push(a)}return i?r:void 0}function St(e){if(e.changedLineChanges!==void 0)return e.changedLineChanges.flatMap(([e,t,n,r=0,i=0,a=!1])=>{if(n===0)return[];let o=Math.max(0,t-e);return[{startLine:e,startCharacter:r,endLine:e+Math.max(0,o-n),deletesEndLine:n<0&&a,insertedLineBreaks:o,lineDelta:n}]});if(e.lineDelta===0)return e.changedLineRanges.flatMap(([e,t])=>{let n=t-e;return n<=0?[]:[{startLine:e,startCharacter:0,endLine:e,deletesEndLine:!1,insertedLineBreaks:n,lineDelta:n}]});let t=Math.max(0,-e.lineDelta),n=e.endedAtDocumentEnd&&e.startLine+t===e.previousLineCount-1;return[{startLine:e.startLine,startCharacter:e.startCharacter,endLine:e.startLine+t,deletesEndLine:n,insertedLineBreaks:Math.max(0,e.lineDelta),lineDelta:e.lineDelta}]}function Ct(e,t,n){if(e<t.startLine)return e;if(e>t.endLine||t.endLine>t.startLine&&e===t.endLine&&!t.deletesEndLine)return e+t.lineDelta;if(t.startLine===t.endLine)return t.startCharacter===0?e+t.insertedLineBreaks:e;if(wt(e,t))return;let r=Math.min(Math.max(0,e-t.startLine),t.insertedLineBreaks);return Et(t.startLine+r,n)}function wt(e,t){return!(t.lineDelta>=0||e<t.startLine||e>t.endLine||e===t.startLine&&t.startCharacter>0||e===t.endLine&&!t.deletesEndLine)}function Tt(e,t){return t.lineDelta===0||e<t.startLine||e>t.endLine?!1:!(t.endLine>t.startLine&&e===t.endLine&&!t.deletesEndLine)}function Et(e,t){return Math.max(0,Math.min(e,Math.max(0,t-1)))}function Dt(e,t,n,r=bt){let i=new Map,a=new Map;for(let t of e){let e=t.lineNumber;i.has(e)||i.set(e,[]),a.has(e)||a.set(e,[]),(`side`in t&&t.side===`deletions`?a:i).get(e).push(r(t))}let o=t.parentElement?.previousElementSibling,s,c;if(o!=null&&o instanceof HTMLElement&&o.dataset.deletions!==void 0)for(let e of o.children){let t=e,{gutter:n,content:r}=t.dataset;n===void 0?r!==void 0&&(c=t):s=t}Ot(t,n),c!==void 0&&Ot(c,s);let l=kt(i,t,n);if(c===void 0)return;let u=kt(a,c,s);requestAnimationFrame(()=>{At(i,a,l,u)})}function Ot(e,t){let n=[];for(let r=1;r<e.childElementCount;r++){let i=e.children[r];i.dataset.lineAnnotation!==void 0&&(n.push(i),t!==void 0&&n.push(t.children[r]))}for(let e of n)e.remove()}function kt(e,t,n){let r=new Map;for(let n of t.children){let t=V(n);if(t!==void 0){let i=e.get(t);if(i!==void 0){let e=z(`div`,{dataset:{lineAnnotation:`0,`+(t-1)},children:[z(`div`,{dataset:`annotationContent`,children:i.map(e=>z(`slot`,{name:e}))})]});n.after(e),r.set(t,e)}}}if(n!==void 0)for(let t of n.children){let n=V(t,`columnNumber`);if(n!==void 0&&e.has(n)){let e=z(`div`,{dataset:{gutterBuffer:`annotation`,bufferSize:`1`},style:{gridRow:`span 1`}});t.after(e)}}return r}function At(e,t,n,r){let i=new Map;for(let[t,n]of e.entries()){let e=r.get(t);if(n.length===0&&e!==void 0){let n=jt(e);n>0&&i.set(t,n)}}for(let[e,r]of t.entries()){let t=n.get(e);if(r.length===0&&t!==void 0){let n=jt(t);n>0&&i.set(e,n)}}Mt(e,n,i),Mt(t,r,i)}function jt(e){let t=e.firstElementChild;return t instanceof HTMLElement?t.getBoundingClientRect().height:0}function Mt(e,t,n){for(let[r,i]of t.entries()){let t=e.get(r),a=n.get(r);t?.length===0&&a!==void 0&&i.style.setProperty(`--diffs-annotation-min-height`,`${a}px`)}}var Nt=new Map([[`'`,`'`],[`"`,`"`],["`","`"],[`{`,`}`],[`[`,`]`],[`<`,`>`],[`(`,`)`]]),Pt=new Set([`'`,`"`,"`"]),Ft=new Set([`{`,`[`,`(`,`<`]);function It(e,t=0){let n=Bn(e.startContainer,e.startOffset),r=Bn(e.endContainer,e.endOffset);if(n!==null&&r!==null)return{start:n,end:r,direction:t}}function Lt(e,t,n,r){if(e===void 0)return[[],t];let{start:i,end:a}=t,o=[],s={...t},c=i.line!==a.line,l=a.line;i.line<a.line&&a.character===0&&l--;for(let t=i.line;t<=l;t++){let l=e.getLineText(t);if(l===void 0||c&&l.trim().length===0)continue;let u=l.startsWith(` `)?` `:` `.repeat(n),d=0,f=u;if(r){if(l.startsWith(` `))d=1;else if(l.startsWith(` `)){let e=l.length-l.trimStart().length;d=Math.min(u.length,e)}if(d===0)continue;f=``}o.push({range:{start:{line:t,character:0},end:{line:t,character:d}},newText:f});let p=f.length-d;t===i.line&&(s={...s,start:{...i,character:Math.max(0,i.character+p)}}),t===a.line&&(s={...s,end:{...a,character:Math.max(0,a.character+p)}})}return[o,s]}function Rt(e,t,n,r={}){let i=e.lineCount;return t.map(t=>{let{line:a,character:o}=n===`up`||n===`left`?t.start:t.end;if(n===`textStart`||n===`start`||n===`end`){let i=G(t);a=i.line,o=i.character;let s=Vt(e,a,o,r);if(n===`textStart`){let t=e.getLineText(a).slice(s.start,s.end),n=s.start+Ln(t);o=o===n?s.start:n}else o=n===`start`?s.start:s.end}else if(n===`up`){let t=zt(e,a,o,-1,r);t===void 0?a>0&&(a=r.resolveRenderableLine==null?a-1:r.resolveRenderableLine(a-1,`up`)??a):(a=t.line,o=t.character)}else if(n===`down`){let t=zt(e,a,o,1,r);if(t!==void 0)a=t.line,o=t.character;else{let e=Math.max(i-1,0);a<e&&(a=r.resolveRenderableLine==null?a+1:Math.min(r.resolveRenderableLine(a+1,`down`)??a,e))}}else if(W(t)){let t=e.getLineLength(a);if(o=Math.min(o,t),n===`left`){if(o>0)o=Nn(e,a,o,!1);else if(a>0){let t=r.resolveRenderableLine==null?a-1:r.resolveRenderableLine(a-1,`up`);t!==void 0&&(a=t,o=e.getLineLength(a))}}else if(o<t)o=Nn(e,a,o,!0);else if(a<i-1){let e=r.resolveRenderableLine==null?a+1:r.resolveRenderableLine(a+1,`down`);e!==void 0&&(a=Math.min(e,i-1),o=0)}}let s={line:a,character:o};return{start:s,end:s,direction:0}})}function zt(e,t,n,r,i){if(i.getSoftLineOffsets===void 0)return;let a=Vt(e,t,n,i),o=a.index+r,s=t,c;if(o>=0&&o<a.count)c=Ut(e,s,o,i);else{let a=t+r;if(a<0||a>=e.lineCount)return{line:t,character:n};let o=i.resolveRenderableLine==null?a:i.resolveRenderableLine(a,r<0?`up`:`down`);if(o===void 0)return{line:t,character:n};s=Math.min(o,e.lineCount-1);let l=Ht(s,i);c=Ut(e,s,r<0?l-1:0,i)}let l=Math.max(0,n-a.start),u=c.start+l,d=c.index===c.count-1?u:Math.min(u,c.end),f=e.getLineText(s);return{line:s,character:d>f.length?d:Bt(f,d)}}function Bt(e,t){if(t<=0||t>=e.length)return t;let n=U();if(n!==void 0){for(let r of n.segment(e)){if(t<=r.index)return t;let e=r.index+r.segment.length;if(t<e)return e}return t}let r=0;for(let n of e){if(t<=r)return t;let e=r+n.length;if(t<e)return e;r=e}return t}function Vt(e,t,n,r){let i=e.getLineLength(t),a=r.getSoftLineOffsets?.(t);if(a===void 0||a.length<2)return{start:0,end:i,index:0,count:1};for(let i=0;i+1<a.length;i++){let a=Ut(e,t,i,r);if(n>=a.start&&n<=a.end)return a}return Ut(e,t,n<(a[0]??0)?0:a.length-2,r)}function Ht(e,t){let n=t.getSoftLineOffsets?.(e);return n===void 0||n.length<2?1:n.length-1}function Ut(e,t,n,r){let i=e.getLineLength(t),a=r.getSoftLineOffsets?.(t);if(a===void 0||a.length<2)return{start:0,end:i,index:0,count:1};let o=a.length-1,s=Math.max(0,Math.min(n,o-1)),c=Math.max(0,Math.min(i,a[s]??0));return{start:c,end:Math.max(c,Math.min(i,a[s+1]??i)),index:s,count:o}}function Wt(e,t,n,r={}){return t.map(t=>{let i=t.direction===-1?t.start:t.end,[a]=Rt(e,[{start:i,end:i,direction:0}],n,r);return ln(t,a)})}function Gt(e,t,n,r,i=2,a=!1){if(t[t.length-1]===void 0)return{nextSelections:[]};let o=[];for(let e of t)o.push(e.start,e.end);let s=o.map(t=>e.offsetAt(t)),c=s[(t.length-1)*2],l=s[(t.length-1)*2+1],u=[],d=!0;for(let e=0;e<t.length;e++){let t={index:e,start:s[e*2],end:s[e*2+1]},n=u[u.length-1];n!==void 0&&(t.start<n.start||t.start===n.start&&t.end<n.end)&&(d=!1),u.push(t)}d||u.sort((e,t)=>{let n=e.start-t.start;if(n!==0)return n;let r=e.end-t.end;return r===0?e.index-t.index:r});let f=zn(e,n,i),p=[],m=Array.from({length:t.length}),h=0,g,_=()=>{if(g===void 0)return;let t=zn(e,{start:g.start,end:g.end,text:f.text},i),n=In(e,t.text,t.start);p.push({start:t.start,end:t.end,text:n});let r=[g.start+h+n.length,g.start+h+n.length];for(let e of g.indices)m[e]=r;h+=n.length-(t.end-t.start),g=void 0};for(let e of u){let t=Math.max(0,e.start+(f.start-c)),n=Math.max(t,e.end+(f.end-l));if(g!==void 0&&t<g.end){g.end=Math.max(g.end,n),g.indices.push(e.index);continue}_(),g={start:t,end:n,indices:[e.index]}}_();let v=e.applyResolvedEdits(p,!0,t,void 0,a),y=Rn(e,m.map(e=>{if(e===void 0)throw Error(`Missing next selection offsets`);return e}));if(e.setLastUndoSelectionsAfter(y),v!==void 0&&r!==void 0){let t=xt(v,r);t!==void 0&&e.setLastUndoLineAnnotations(r,t)}return{nextSelections:y,change:v}}function Kt(e,t){if(t.length!==e.length+2)return;let n=Nt.get(t[0]);if(n!==void 0&&t[t.length-1]===n&&t.slice(1,-1)===e)return 1}function qt(e,t,n,r){let i=t.start+n,a=i+r.length;if(t.end-t.start>0){let n=e.getTextSlice(t.start,t.end),a=Kt(n,r)??r.indexOf(n);if(a!==-1&&a+n.length<=r.length){let e=i+a;return[e,e+n.length]}}return[a,a]}function Jt(e,t,n,r,i=!1,a=`selection`){if(t.length!==n.length)throw Error(`Selection text replacements must match the selection count`);let o=[];for(let e of t)o.push(e.start,e.end);let s=o.map(t=>e.offsetAt(t)),c=[],l=!0;for(let e=0;e<t.length;e++){let t={index:e,start:s[e*2],end:s[e*2+1]},n=c[c.length-1];n!==void 0&&(t.start<n.start||t.start===n.start&&t.end<n.end)&&(l=!1),c.push(t)}l||c.sort((e,t)=>{let n=e.start-t.start;if(n!==0)return n;let r=e.end-t.end;return r===0?e.index-t.index:r});let u=n.every(e=>e===``),d,f=Array.from({length:t.length});if(u){d=[];let e=!1;for(let t of c){if(f[t.index]=[t.end,t.end],t.start>=t.end)continue;e=!0;let n=d[d.length-1];n!==void 0&&t.start<n.end?d[d.length-1]={start:n.start,end:Math.max(n.end,t.end),text:``}:d.push({start:t.start,end:t.end,text:``})}if(!e)return{nextSelections:t};for(let e of c){let t=e.end,n=0,r=t;for(let e of d){if(t<=e.start)break;if(t>=e.end){n-=e.end-e.start;continue}r=e.start+n;break}r===t&&(r+=n),f[e.index]=[r,r]}}else{d=[];let t=0,r=-1;for(let i=0;i<c.length;i++){let o=c[i];if(o.start<r)throw Error(`Overlapping multi-selection edits are not supported`);r=o.end;let s=In(e,n[a===`document`?i:o.index],o.start);d.push({start:o.start,end:o.end,text:s}),f[o.index]=qt(e,o,t,s),t+=s.length-(o.end-o.start)}}let p=e.applyResolvedEdits(d,!0,t,void 0,i),m=Rn(e,f.map(e=>{if(e===void 0)throw Error(`Missing next selection offsets`);return e}));if(e.setLastUndoSelectionsAfter(m),p!==void 0&&r!==void 0){let t=xt(p,r);t!==void 0&&e.setLastUndoLineAnnotations(r,t)}return{nextSelections:m,change:p}}function Yt(e,t){return e===`never`?!1:e===`brackets`?Ft.has(t):e!==`quotes`||Pt.has(t)}function Xt(e,t,n,r){if(n.length!==1||t.length===0)return;let i=Nt.get(n);if(i===void 0||!Yt(r,n))return;let a=[];for(let r of t){if(W(r))return;a.push(n+e.getText(r)+i)}return a}function Zt(e,t,n){let r=[],i=[];for(let n of t){let[t,a]=Pn(e,n);if(!W(n)){i.push([t,a]);continue}let{line:o,character:s}=n.start,c=t,l=e.getLineText(o),u=l.length,d=c-s,f=Mn(l),p;if(s>0&&s<u){let e=jn(l,s,!1,f),t=jn(l,s,!0,f);p={start:d+e,end:d+t,text:l.slice(s,t)+l.slice(e,s)},i.push([d+t,d+t])}else if(s===u&&f.length>=2){let e=f[f.length-1],t=f[f.length-2];p={start:d+t,end:c,text:l.slice(e,u)+l.slice(t,e)},i.push([c,c])}else if(s===0&&o>0&&u>0){let t=o-1,n=e.getLineText(t),r=n.length,a=e.offsetAt({line:t,character:r}),s=r>0?jn(n,r,!1,Mn(n)):r,u=jn(l,0,!0,f),d=a-(r-s),m=l.slice(0,u)+e.getTextSlice(a,c)+n.slice(s,r);p={start:d,end:c+u,text:m};let h=d+m.length;i.push([h,h])}else{i.push([t,a]);continue}r.push(p)}if(r.length===0)return{nextSelections:t};r.sort((e,t)=>e.start-t.start);for(let e=1;e<r.length;e++)if(r[e].start<r[e-1].end)throw Error(`Overlapping multi-selection edits are not supported`);let a=e.applyResolvedEdits(r,!0,t),o=Rn(e,i);if(e.setLastUndoSelectionsAfter(o),a!==void 0&&n!==void 0){let t=xt(a,n);t!==void 0&&e.setLastUndoLineAnnotations(n,t)}return{nextSelections:o,change:a}}function Qt(e,t,n){let r=t.map(t=>{let n=Fn(e,t);return{start:n.start,end:n.end,direction:0}});return Jt(e,r,r.map(()=>``),n)}function $t(e,t,n,r){let i=t.map(t=>{if(!W(t))return{start:t.start,end:t.end,direction:0};let r=G(t),{line:i,character:a}=r,o=n?.(i,a)??0;if(a>o)return{start:{line:i,character:o},end:{line:i,character:a},direction:0};if(i===0)return{start:r,end:r,direction:0};let s=e.getLineLength(i-1);return{start:{line:i-1,character:s},end:{line:i,character:0},direction:0}});return Jt(e,i,i.map(()=>``),r)}function en(e,t,n){let r=t.map(t=>{let[n,r]=An(e,t);return{start:n,end:r,direction:0}});return Jt(e,r,r.map(()=>``),n)}function tn(e,t,n){if(!W(t))return[t.start,t.end];let r=G(t),{line:i,character:a}=r,o=e.getLineLength(i),s=e.lineCount;if(a=Math.min(a,o),n)return a<o?[{line:i,character:a},{line:i,character:Nn(e,i,a,!0)}]:i<s-1?[{line:i,character:o},{line:i+1,character:0}]:[r,r];if(a>0)return[{line:i,character:Nn(e,i,a,!1)},{line:i,character:a}];if(i>0){let t=e.getLineLength(i-1);return[{line:i-1,character:t},{line:i,character:0}]}return[r,r]}function nn(e,t,n,r,i=2){let a=t.map(t=>{let[r,a]=tn(e,t,n);if(!n&&W(t)){let t=zn(e,{start:e.offsetAt(r),end:e.offsetAt(a),text:``},i);r=e.positionAt(t.start),a=e.positionAt(t.end)}return{start:r,end:a,direction:0}});return Jt(e,a,a.map(()=>``),r)}function W(e){return e.start.line===e.end.line&&e.start.character===e.end.character}function G(e){let{start:t,end:n,direction:r}=e;return r===-1?t:n}function rn(e){return e===`context`||e===`context-expanded`||e===`change-addition`}function an(e,t){let n=W(e),r=W(t);return n&&r?K(e.start,t.start)===0:n?K(t.start,e.start)<=0&&K(e.start,t.end)<=0:r?K(e.start,t.start)<=0&&K(t.start,e.end)<=0:K(e.start,t.end)<0&&K(t.start,e.end)<0}function K(e,t){return e.line===t.line?e.character-t.character:e.line-t.line}function on(e,t,n){let r=t===n?0:t<n?1:-1,i=Math.min(t,n),a=Math.max(t,n);return{start:e.positionAt(i),end:e.positionAt(a),direction:r}}function sn(e,t){let n=0;for(let r of t){if(e<r.start)break;if(e>=r.end)n+=r.text.length-(r.end-r.start);else return r.start+n+r.text.length}return e+n}function cn(e,t,n,r){return t.map((t,i)=>{let[a,o]=n[i],s=sn(a,r),c=sn(o,r);return on(e,t.direction===-1?c:s,t.direction===-1?s:c)})}function ln(e,t){let n=e.direction===-1?e.end:e.start,r=K(n,t.start),i=K(n,t.end),a=t.end;a=r<=0?t.end:i>=0?t.start:r===0?t.end:t.start;let o=K(n,a);return{start:o<=0?n:a,end:o<=0?a:n,direction:o===0?0:o<0?1:-1}}function un(e,t){let n=K(t.start,e.start)<0,r=K(t.end,e.end)>0;return n&&!r?{start:t.start,end:e.end,direction:-1}:r&&!n?{start:e.start,end:t.end,direction:1}:e.direction===-1?{start:t.start,end:e.end,direction:K(t.start,e.end)===0?0:-1}:{start:e.start,end:t.end,direction:K(e.start,t.end)===0?0:1}}function dn(e,t){return fn(e.map(e=>un(e,t)))}function fn(e){if(e.length<=1)return e;let t=e.map((e,t)=>({index:t,selection:e})).sort((e,t)=>{let n=K(e.selection.start,t.selection.start);if(n!==0)return n;let r=K(e.selection.end,t.selection.end);return r===0?e.index-t.index:r}),n=[],r=t[0];for(let e of t.slice(1)){if(an(r.selection,e.selection)){let t=e.index>r.index?e:r,n=K(e.selection.start,r.selection.start)<0?e.selection.start:r.selection.start,i=K(e.selection.end,r.selection.end)>0?e.selection.end:r.selection.end,a=t.selection.direction;a===0&&K(n,i)!==0&&(a=K(t.selection.start,n)===0?-1:1),r={index:t.index,selection:{direction:a,end:i,start:n}};continue}n.push(r),r=e}return n.push(r),n.sort((e,t)=>e.index-t.index).map(({selection:e})=>e)}function pn(e){let t=e.map(e=>{let t=e.end.line;return e.end.character===0&&K(e.start,e.end)!==0&&t--,{startLine:e.start.line,endLine:Math.max(e.start.line,t)}}).sort((e,t)=>{let n=e.startLine-t.startLine;return n===0?e.endLine-t.endLine:n}),n=[];for(let e of t){let t=n.at(-1);t!==void 0&&e.startLine<=t.endLine+1?t.endLine=Math.max(t.endLine,e.endLine):n.push({...e})}return n}function mn(e,t,n,r){let i=e=>{let i=e.line+t;if(i>=n){let e=Math.max(0,n-1);return{line:e,character:r(e)}}return i<0?{line:0,character:0}:{line:i,character:e.character}};return{start:i(e.start),end:i(e.end),direction:e.direction}}function hn(e,t){if(t.length===0)return;let n=t.map(t=>W(t)?On(e,t):t),r=n.map(t=>e.getText(t)),i=r[0];if(i.length===0||r.some(e=>e!==i))return;let a=n.map(t=>[e.offsetAt(t.start),e.offsetAt(t.end)]),o=e.findNextNonOverlappingSubstring(i,a);if(o===void 0)return n.some((e,n)=>{let r=t[n];return K(e.start,r.start)!==0||K(e.end,r.end)!==0||e.direction!==r.direction})?n:void 0;let s=on(e,o,o+i.length);return[...n,s]}function gn(e){let t=e.lineCount-1;return{start:{line:0,character:0},end:{line:t,character:e.getLineLength(t)},direction:1}}function _n(e,t,n){let r=0;if(t){let t=e.lineCount-1;r=n===!0&&t>0&&e.getLineLength(t)===0?t-1:t}let i=t?e.getLineLength(r):0,a={line:r,character:i};return{start:a,end:a,direction:1}}function vn(e,t){if(W(t)){let n=t.start.line;return{start:e.offsetAt({line:n,character:0}),end:n<e.lineCount-1?e.offsetAt({line:n+1,character:0}):e.offsetAt({line:n,character:e.getLineLength(n)})}}let n=e.offsetAt(t.start),r=e.offsetAt(t.end);return n<=r?{start:n,end:r}:{start:r,end:n}}function yn(e,t){return t.map(t=>vn(e,t)).sort((e,t)=>{let n=e.start-t.start;return n===0?e.end-t.end:n})}function bn(e,t){return yn(e,t).map(({start:t,end:n})=>e.getTextSlice(t,n))}function xn(e,t){let n=yn(e,t),r=e.eol,i=``,a=-1;for(let t of n)if(!(t.end<=t.start)){if(t.start<=a){t.end>a&&(i+=e.getTextSlice(a,t.end),a=t.end);continue}i.length>0&&!pt(i)&&(i+=r),i+=e.getTextSlice(t.start,t.end),a=t.end}return i}function Sn(e,t){if(W(t))return Cn(e,t);let[n,r]=K(t.start,t.end)<=0?[t.start,t.end]:[t.end,t.start];return{start:e.offsetAt(n),end:e.offsetAt(r),text:``}}function Cn(e,t){let n=t.start.line,r=e.offsetAt({line:n,character:0}),i=e.offsetAt({line:n,character:e.getLineLength(n)});return n<e.lineCount-1?{start:r,end:e.offsetAt({line:n+1,character:0}),text:``}:n>0?{start:e.offsetAt({line:n-1,character:e.getLineLength(n-1)}),end:i,text:``}:{start:r,end:i,text:``}}function wn(e){let t=[];for(let{edit:n}of e){if(n.start>=n.end)continue;let e=t.at(-1);e!==void 0&&n.start<=e.end?t[t.length-1]={start:e.start,end:Math.max(e.end,n.end),text:``}:t.push(n)}return t}function Tn(e,t){let n=Array.from({length:e.length}),r=0,i=0;for(let a of e){for(;r<t.length&&a.edit.start>t[r].end;){let e=t[r];i-=e.end-e.start,r++}let e=t[r];e!==void 0&&a.edit.start>=e.start&&a.edit.start<=e.end?n[a.index]=e.start+i:n[a.index]=a.edit.start+i}return n}function En(e,t){let n=[...t.map((t,n)=>({index:n,edit:Sn(e,t)}))].sort((e,t)=>{let n=e.edit.start-t.edit.start;if(n!==0)return n;let r=e.edit.end-t.edit.end;return r===0?e.index-t.index:r}),r=wn(n);return{text:xn(e,t),edits:r,nextSelectionOffsets:Tn(n,r)}}function Dn(e,t){let n=Math.max(0,t),r=Vn(e),i=null;for(let e of r){i=e;let t=J(e);if(n<=t+(e.textContent?.length??0)){let r=Hn(e,n<t?0:n-t);if(r!==null)return r}}if(i!==null){let e=Hn(i,i.textContent?.length??0);return e===null?[i,0]:e}let a=0,o=null;for(let t of e.childNodes){if(t.nodeType===1&&t.tagName===`BR`)return[t,0];if(t.nodeType!==3)continue;o=t;let e=Y(o.textContent,o.textContent?.length??0);if(n<=a+e)return[o,Y(o.textContent,n-a)];a+=e}return o===null?[e,0]:[o,Y(o.textContent,o.textContent?.length??0)]}function On(e,t){let{line:n,character:r}=t.start,i=e.getLineText(n),a=kn(i,Math.max(0,Math.min(r,i.length)));return a===void 0?t:{start:{line:n,character:a.start},end:{line:n,character:a.end},direction:1}}function kn(e,t){let n=mt({granularity:`word`});if(n!==void 0){for(let r of n.segment(e)){if(r.isWordLike!==!0)continue;let e=r.index,n=e+r.segment.length;if(t>=e&&t<=n)return{start:e,end:n}}return}let r=/[\p{Alphabetic}\p{Number}_]+/gu,i;for(;(i=r.exec(e))!==null;){let e=i.index,n=e+i[0].length;if(t>=e&&t<=n)return{start:e,end:n}}}function An(e,t){if(!W(t))return[t.start,t.end];let n=G(t),{line:r,character:i}=n;if(i===0){if(r===0)return[n,n];let t=e.getLineLength(r-1);return[{line:r-1,character:t},{line:r,character:0}]}let a=e.getLineText(r),o=Mn(a),s=i,c;for(;s>0;){let e=jn(a,s,!1,o),t=a.slice(e,s),n=/\S/.test(t)?/\p{Alphabetic}|\p{Number}|_/u.test(t)?1:2:0;if(c!==void 0&&n!==c)break;(n!==0||s!==i)&&(c=n),s=e}return[{line:r,character:s},{line:r,character:i}]}function jn(e,t,n,r){if(n){for(let e of r)if(e>t)return e;return e.length}for(let e=r.length-1;e>=0;e--){let n=r[e];if(n<t)return n}return 0}function Mn(e){let t=[0],n=U();if(n!==void 0){for(let r of n.segment(e))r.index>0&&t.push(r.index);return t}let r=0;for(let n of e)r>0&&t.push(r),r+=n.length;return t}function Nn(e,t,n,r){let i=e.getLineLength(t);if(r){if(n>=i)return i;let r=e.offsetAt({line:t,character:0}),a=e.getTextSlice(r+n,r+i),o=U();if(o!==void 0){for(let e of o.segment(a))return n+e.segment.length;return i}for(let e of a)return n+e.length;return i}if(n<=0)return 0;let a=e.offsetAt({line:t,character:0}),o=e.getTextSlice(a,a+n),s=0,c=U();if(c!==void 0){for(let e of c.segment(o))s=e.index;return s}let l=0;for(let e of o)s=l,l+=e.length;return s}function Pn(e,t){let n=t.direction===-1;return[e.offsetAt(n?t.end:t.start),e.offsetAt(G(t))]}function Fn(e,t){if(!W(t))return{start:t.start,end:t.end};let{line:n,character:r}=t.start,i=e.getLineText(n).length;return r<i?{start:{line:n,character:r},end:{line:n,character:i}}:n<e.lineCount-1?{start:{line:n,character:r},end:{line:n+1,character:0}}:{start:{line:n,character:r},end:{line:n,character:r}}}function In(e,t,n){if(t!==`
8
+ `}}get uri(){return this.#e}get languageId(){return this.#t}get version(){return this.#n}get lineCount(){return this.#r.lineCount}get eol(){return this.#a}get history(){return this.#i.getLiveState()}get canUndo(){return this.#i.canUndo}get canRedo(){return this.#i.canRedo}clearHistory(){this.#i.clear()}positionAt(e){return this.normalizePosition(this.#r.positionAt(e))}positionsAt(e){let t=this.#r.positionsAt(e);for(let e=0;e<t.length;e++)t[e]=this.normalizePosition(t[e]);return t}offsetAt(e){return this.#r.offsetAt(this.normalizePosition(e))}getText(e){return e===void 0?this.#r.getText():this.#r.getText({start:this.normalizePosition(e.start),end:this.normalizePosition(e.end)})}getLineText(e,t){return this.#r.getLineText(e,t)}normalizeEol(e){return e.replace(/\r\n|\r|\n/g,this.eol)}getLineLength(e,t){return this.#r.getLineLength(e,t)}charAt(e){return typeof e==`number`?this.#r.charAt(e):this.#r.charAt(this.offsetAt(e))}getTextSlice(e,t){return this.#r.getTextSlice(e,t)}findNextNonOverlappingSubstring(e,t){return this.#r.findNextNonOverlappingSubstring(e,t)}search(e){return this.#r.search(e)}applyEdits(e,t=!0,n,r,i=!1){if(e.length!==0)return this.#o(this.#d(this.resolveEdits(e)),t,n,r,i)}resolveEdits(e){return e.map(e=>this.#c(e))}applyResolvedEdits(e,t=!0,n,r,i=!1){if(e.length!==0)return this.#o(this.#d(e.map(e=>this.#l(e))),t,n,r,i)}#o(e,t,n,r,i){let a=me(this,e,this.#n,this.#n+1,t?n:void 0,t?r:void 0);t&&i&&(a.undoBoundary=!0);let o=this.#i.peekUndoForCoalescing(),s=this.#f(e);return this.#n++,s.lineDelta===0&&he(o,a)?this.#i.replaceLastUndo(ge(o,a)):this.#i.push(a),Ue(s,{appliedEdits:a.forwardEdits,inverseEdits:a.inverseEdits}),s}setLastUndoSelectionsAfter(e){this.#i.setLastUndoSelectionsAfter(e)}setLastUndoLineAnnotations(e,t){this.#i.setLastUndoLineAnnotations(e,t)}undo(){let e=this.#i.popUndoToRedo();if(e===void 0)return;let t=this.#f(e.inverseEdits);if(t===void 0)return;Ue(t,{appliedEdits:e.inverseEdits,inverseEdits:e.forwardEdits}),this.#n=e.versionBefore;let n=e.selectionsBefore?.slice();return[t,n,e.lineAnnotationsBefore?.slice(),n===void 0?e.inverseEdits.map(e=>({...e})):void 0]}redo(){let e=this.#i.popRedoToUndo();if(e===void 0)return;let t=this.#f(e.forwardEdits);if(t===void 0)return;Ue(t,{appliedEdits:e.forwardEdits,inverseEdits:e.inverseEdits}),this.#n=e.versionAfter;let n=e.selectionsAfter?.slice();return[t,n,e.lineAnnotationsAfter?.slice(),n===void 0?e.forwardEdits.map(e=>({...e})):void 0]}normalizePosition(t){let n=e.#s(t.line,this.lineCount-1);return{line:n,character:e.#s(t.character,this.getLineLength(n))}}static#s(e,t){return Number.isNaN(e)?0:Math.max(0,Math.min(Math.floor(e),t))}#c(e){let t=this.offsetAt(e.range.start),n=this.offsetAt(e.range.end);if(t>n){let e=t;t=n,n=e}return this.#l({start:t,end:n,text:e.newText})}#l(e){let{start:t,end:n}=e,r=t===n;return this.#u(t)&&t--,r?n=t:this.#u(n)&&n++,{start:t,end:n,text:e.text}}#u(e){let t=this.#r.charAt(e-1).charCodeAt(0),n=this.#r.charAt(e).charCodeAt(0);return t>=55296&&t<=56319&&n>=56320&&n<=57343}#d(e){let t=[...e].sort((e,t)=>{let n=e.start-t.start;return n===0?e.end-t.end:n});for(let e=0;e<t.length-1;e++)if(t[e].end>t[e+1].start)throw Error(`Overlapping text edits are not supported`);return t}#f(e){let t=this.#r.lineCount,n=this.positionsAt(e.flatMap(e=>[e.start,e.end])),r=this.#p(e,n),i=n[0],a=n[n.length-1],o=a.line===t-1&&a.character===this.#r.getLineLength(a.line);this.#r.applyEdits(e);let s=this.#r.lineCount;return{changes:e.map((e,t)=>({...e,range:{start:n[t*2],end:n[t*2+1]}})),startLine:r.startLine,startCharacter:i.character,endCharacter:a.character,endLine:Math.min(r.endLine,Math.max(0,s-1)),endedAtDocumentEnd:o,previousLineCount:t,lineCount:s,lineDelta:s-t,changedLineRanges:r.ranges,changedLineChanges:r.changes}}#p(e,t){let n=1/0,r=0,i=0,a=[],o=[],s=this.#r.lineCount-1,c=this.#r.getLineLength(s);for(let l=0;l<e.length;l++){let u=e[l],d=t[l*2],f=t[l*2+1],p=d.line,m=f.line,h=T(u.text),g=p+i,_=g+h,v=h-(m-p);n=Math.min(n,p),r=Math.max(r,_);let y=a[a.length-1];y!==void 0&&g<=y[1]+1?a[a.length-1]=[y[0],Math.max(y[1],_)]:a.push([g,_]),o.push([g,_,v,d.character,f.character,m===s&&f.character===c]),i+=v}return n===1/0?{startLine:0,endLine:0,ranges:[[0,0]],changes:[[0,0,0,0,0,!1]]}:{startLine:n,endLine:r,ranges:a,changes:o}}},Ge=e(N(),1),Ke=100,qe=class{type;#e=new Ge.default.LRUMap(Ke);#t=new Map;constructor(e){this.type=e}activate(e,t,n){let r=this.#t.get(e);if(r!=null&&r.owner!==t)throw Error(`Editor: editStateKey "${e}" is already attached to another editor`);if(r!=null)return n!=null&&(r.session=n),r.session;let i=this.#e.delete(e),a={type:this.type},o=n??i??a;return this.#t.set(e,{owner:t,session:o}),o}release(e,t,n=!1){let r=this.#t.get(e);if(r?.owner!==t||(this.#t.delete(e),n))return;let i=Xe(r.session);i!=null&&this.#e.set(e,i)}get(e){let t=this.#t.get(e);return t==null?this.#e.find(e):Xe(t.session)??void 0}clear(e,t){if(this.#t.has(e))return!1;let n=this.#e.find(e);return n!=null&&(t==null||t.document===!0?this.#e.delete(e):Ze(n,t),!0)}clearAll(){this.#e.clear()}setCapacity(e){if(!Number.isSafeInteger(e)||e<1)throw RangeError(`EditStateManager: capacity must be a positive integer`);for(;this.#e.size>e;)this.#e.shift();this.#e.limit=e}},Je=class{#e=new qe(`file`);#t=new qe(`file-diff`);activate(e,t,n,r){return e===`file`?this.#e.activate(t,n,r):this.#t.activate(t,n,r)}releaseFile(e,t,n=!1){this.#e.release(e,t,n)}releaseFileDiff(e,t,n=!1){this.#t.release(e,t,n)}get(e,t){return e===`file`?this.#e.get(t):this.#t.get(t)}clear(e,t,n){return e===`file`?this.#e.clear(t,n):this.#t.clear(t,n)}clearAll(){this.#e.clearAll(),this.#t.clearAll()}setCapacity(e){this.#e.setCapacity(e),this.#t.setCapacity(e)}};function Ye(e){return{selections:e.selections?.map(e=>({...e,start:{...e.start},end:{...e.end}})),view:e.view==null?void 0:{...e.view}}}function Xe(e){if(e.document!=null&&e.fileInfo!=null&&(e.type===`file`||e.diffSession!=null))return e.editor??={},e}function Ze(e,t){e!=null&&(t.history===!0&&e.document?.clearHistory(),e.editor!=null&&((t.editor===!0||t.selections===!0)&&(e.editor.selections=void 0),(t.editor===!0||t.view===!0)&&(e.editor.view=void 0)))}var Qe=new Je;function $e({metaKey:e,ctrlKey:t},n=s()){return n?e&&!t:t&&!e}function et(e){if(s()&&e.ctrlKey&&!e.altKey&&!e.metaKey)switch(e.key){case`a`:return`start`;case`e`:return`end`;case`p`:return`up`;case`n`:return`down`;case`f`:return`right`;case`b`:return`left`}if(!e.altKey&&!e.ctrlKey&&!e.metaKey){if(e.key===`ArrowUp`)return`up`;if(e.key===`ArrowDown`)return`down`;if(e.key===`ArrowLeft`)return`left`;if(e.key===`ArrowRight`)return`right`;if(e.key===`Home`)return`start`;if(e.key===`End`)return`end`}if($e(e)){if(e.key===`ArrowLeft`)return`textStart`;if(e.key===`ArrowRight`)return`end`}}var tt=new WeakMap,nt=it([{bindings:{Tab:`indent`,"shift+Tab":`outdent`,"cmdOrCtrl+[":`indentLess`,"cmdOrCtrl+]":`indentMore`,"cmdOrCtrl+z":`undo`,"cmdOrCtrl+shift+z":`redo`,"cmdOrCtrl+a":`selectAll`,"cmdOrCtrl+d":`findNextMatch`,"cmdOrCtrl+f":`openSearchPanel`,"cmdOrCtrl+alt+f":`openSearchReplacePanel`,"alt+ArrowUp":`moveLineUp`,"alt+ArrowDown":`moveLineDown`,"shift+alt+ArrowUp":`copyLineUp`,"shift+alt+ArrowDown":`copyLineDown`,Escape:`simplifySelection`,"cmdOrCtrl+Enter":`insertBlankLine`,"cmdOrCtrl+/":`toggleComment`,"shift+alt+a":`toggleBlockComment`,"cmdOrCtrl+Home":`moveCursorToDocStart`,"cmdOrCtrl+End":`moveCursorToDocEnd`,"cmdOrCtrl+shift+Home":`expandSelectionDocStart`,"cmdOrCtrl+shift+End":`expandSelectionDocEnd`}},{platform:`mac`,bindings:{"ctrl+k":`deleteHardLineForward`,"ctrl+alt+p":`moveLineUp`,"ctrl+alt+n":`moveLineDown`,"cmd+ArrowUp":`moveCursorToDocStart`,"cmd+ArrowDown":`moveCursorToDocEnd`,"cmd+shift+ArrowUp":`expandSelectionDocStart`,"cmd+shift+ArrowDown":`expandSelectionDocEnd`}},{platform:`windows`,bindings:{"ctrl+y":`redo`}},{platform:`linux`,bindings:{"ctrl+y":`redo`,"ctrl+alt+p":`moveLineUp`,"ctrl+alt+n":`moveLineDown`}}]),rt={Backquote:"`",Minus:`-`,Equal:`=`,Comma:`,`,Period:`.`,Slash:`/`,Semicolon:`;`,Quote:`'`,BracketLeft:`[`,BracketRight:`]`,Backslash:`\\`,Space:`Space`};function it(e){let t=tt.get(e);if(t===void 0){t={mac:new Map,windows:new Map,linux:new Map};for(let n of e)for(let e of Object.keys(n.bindings)){let r=n.bindings[e];if(r===void 0)continue;let i=e.split(`+`),a=i.pop();for(let e of[`mac`,`windows`,`linux`]){if(n.platform!==void 0&&n.platform!==e)continue;let o=0;for(let t of i)t===`alt`?o|=1:t===`ctrl`?o|=2:t===`cmd`?o|=4:t===`shift`?o|=8:t===`cmdOrCtrl`&&(o|=e===`mac`?4:2);let s=t[e].get(o);s===void 0&&(s=new Map,t[e].set(o,s)),s.set(a,r)}}tt.set(e,t)}return t}function at(e,t,n=s()){let r=e.key===` `?`Space`:e.key.length===1?e.key.toLowerCase():e.key,i=e.code??``,a=i.startsWith(`Key`)&&i.length===4?i.slice(3).toLowerCase():i.startsWith(`Digit`)&&i.length===6?i.slice(5):rt[i],o=n?`mac`:globalThis.navigator?.platform.includes(`Linux`)===!0?`linux`:`windows`,c=+!!e.altKey|(e.ctrlKey?2:0)|(e.metaKey?4:0)|(e.shiftKey?8:0);if(t!==void 0){let e=it(t)[o].get(c),n=e?.get(r)??(a===void 0?void 0:e?.get(a));if(n!==void 0)return n}let l=nt[o].get(c);return l?.get(r)??(a===void 0?void 0:l?.get(a))}function ot(e,t=s()){if(!e.altKey&&$e(e,t)&&((e.key.length===1?e.key.toLowerCase():e.key)===`g`||e.code===`KeyG`))return e.shiftKey?`previous`:`next`}function H(e,t,n){let{style:r,dataset:i,children:a,...o}=t??{},s=document.createElement(e);return Object.assign(s,o),r!==void 0&&(typeof r==`string`?s.style.cssText=r:Object.assign(s.style,r)),i!==void 0&&(typeof i==`string`?s.dataset[i]=``:Array.isArray(i)?i.forEach(e=>{s.dataset[e]=``}):Object.assign(s.dataset,i)),a!==void 0&&s.replaceChildren(...a),n!==void 0&&n.appendChild(s),s}function U(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}function W(e,t=`line`){let n=e.dataset[t];if(n===void 0)return;let r=parseInt(n,10);if(!Number.isNaN(r))return r}function st(e,t){if(e.nodeType===3){let n=e.textContent?.length??0;return Math.max(0,Math.min(t,n))}return e.nodeType===1?Math.max(0,Math.min(t,e.childNodes.length)):0}function ct(e,t){return Object.assign(e,t)}function lt(e,t){let n;return function(...r){clearTimeout(n),n=setTimeout(()=>e.apply(this,r),t)}}function G(e,t=1e3){return Math.round(e*t)/t}function ut(e){return e.endsWith(`
9
+ `)||e.endsWith(`\r`)}function dt(e){if(!(typeof Intl>`u`||typeof Intl.Segmenter!=`function`))return new Intl.Segmenter(void 0,e)}var ft,pt=!1;function mt(){return pt||=(ft=dt({granularity:`grapheme`}),!0),ft}function ht(e){let t=e.ownerDocument,n=e.parentElement;for(;n!=null&&n!==t.body&&n!==t.documentElement;){let e=n.ownerDocument.defaultView?.getComputedStyle(n).overflowY;if(e===`auto`||e===`scroll`||e===`overlay`)return n;n=n.parentElement}return t}var gt=class{#e;#t;#n;#r;#i;#a;#o=0;#s=0;#c=0;#l=!0;#u;#d=new Map;#f;#p;constructor(e){this.#f=e.hasActivePopover,this.#p=e.updateActivePopover}setViewportElements(e,t){let n=this.#e!==e||this.#t!==t;this.#e=e,n&&(this.#t=t,this.#l=!0,this.#u?.forEach(e=>e()),this.#u=void 0)}cleanUp(){this.#t=void 0,this.#e=void 0,this.#n=void 0,this.#r=void 0,this.#i=void 0,this.#a=void 0,this.#o=0,this.#s=0,this.#c=0,this.#l=!0,this.#u?.forEach(e=>e()),this.#u=void 0,this.#d.clear()}resetPlacement(e=`default`){this.#d.delete(e)}setPlacement(e,t=`default`){this.#d.set(t,e)}choosePlacement(e){let{preferred:t,fallback:n,viewport:r,popoverHeight:i,atDocumentEdge:a,placementKey:o=`default`}=e,s=this.#d.get(o),c;if(r!==void 0&&i>0){let e=(e,t=0)=>e.top>=r.top+t&&e.bottom<=r.bottom-t;c=s===`fallback`&&e(n)&&!e(t,4)||!e(t)&&e(n)?`fallback`:`preferred`}else c=a?`fallback`:`preferred`;return this.#d.set(o,c),c}getPlacementBounds(){let e=this.#g();if(e===void 0)return;let t=this.#_(),n,r;if(t===void 0?(n=0,r=window.innerHeight):(n=t.top,r=t.bottom),n=Math.max(n,e.top),r=Math.min(r,e.bottom),r<=n)return;let i=this.#o,a=this.#s,o=this.#c>0?this.#c:e.width,s=t===void 0?0:t.left,c=t===void 0?window.innerWidth:t.right,l=i,u=i+o,d=Math.max(l,s-e.left+i),f=Math.min(u,c-e.left+i);return{top:n-e.top+a,bottom:r-e.top+a,left:d,right:Math.max(d,f)}}#m(){let e=this.#e;if(e===void 0)return;if(this.#r===e&&(this.#n===void 0||this.#n.isConnected))return this.#n;let t=e.parentElement;for(;t!==null;){let n=getComputedStyle(t).overflowY;if(n===`auto`||n===`scroll`||n===`overlay`)return this.#n=t,this.#r=e,t;t=t.parentElement}this.#n=void 0,this.#r=e}#h(){if(!this.#l)return;this.#v();let e=this.#t;this.#i=e?.getBoundingClientRect(),this.#o=e?.scrollLeft??0,this.#s=e?.scrollTop??0,this.#c=e?.clientWidth??0,this.#a=this.#m()?.getBoundingClientRect(),this.#l=!1}#g(){return this.#h(),this.#i}#_(){return this.#h(),this.#a}#v(){if(this.#u!==void 0)return;let e,t=()=>{this.#l=!0,this.#f()&&e===void 0&&(e=requestAnimationFrame(()=>{e=void 0,this.#p()}))},n=this.#m(),r=this.#t;this.#u=[U(n===void 0?window:n,`scroll`,t,{passive:!0}),...r===void 0?[]:[U(r,`scroll`,t,{passive:!0})],U(window,`resize`,t,{passive:!0}),()=>{e!==void 0&&(cancelAnimationFrame(e),e=void 0)}]}};function _t(e,{gutterWidth:t,placeAbove:n,viewport:r,x:i,y:a}){if(e.style.setProperty(`--gutter-width`,t+`px`),e.style.setProperty(`--popover-x`,i+`px`),e.style.setProperty(`--popover-y`,a+`px`),e.style.setProperty(`--popover-y-shift`,n?`-100%`:`0px`),r===void 0){e.style.removeProperty(`--popover-viewport-left`),e.style.removeProperty(`--popover-viewport-right`),e.style.removeProperty(`--popover-viewport-top`),e.style.removeProperty(`--popover-viewport-bottom`);return}e.style.setProperty(`--popover-viewport-left`,r.left+`px`),e.style.setProperty(`--popover-viewport-right`,r.right+`px`),e.style.setProperty(`--popover-viewport-top`,r.top+`px`),e.style.setProperty(`--popover-viewport-bottom`,r.bottom+`px`)}function vt(e){return re(e)}function yt(e,t){let n=bt(e);if(n.length===0)return;let r=[],i=!1;for(let a of t){if(`side`in a&&a.side===`deletions`||a.lineNumber<=0){r.push(a);continue}let t=a.lineNumber-1,o=e.previousLineCount,s=!1;for(let e of n){let n=Math.max(1,o+e.lineDelta),r=xt(t,e,n);if(r===void 0){s=!0,t=void 0;break}(r!==t||Ct(t,e))&&(s=!0),t=r,o=n}if(t===void 0){i=!0;continue}let l=t+1;if(s){if(l===a.lineNumber)r.push(a);else{let e={...a,lineNumber:l};c(e,P(a)),r.push(e)}i=!0;continue}r.push(a)}return i?r:void 0}function bt(e){if(e.changedLineChanges!==void 0)return e.changedLineChanges.flatMap(([e,t,n,r=0,i=0,a=!1])=>{if(n===0)return[];let o=Math.max(0,t-e);return[{startLine:e,startCharacter:r,endLine:e+Math.max(0,o-n),deletesEndLine:n<0&&a,insertedLineBreaks:o,lineDelta:n}]});if(e.lineDelta===0)return e.changedLineRanges.flatMap(([e,t])=>{let n=t-e;return n<=0?[]:[{startLine:e,startCharacter:0,endLine:e,deletesEndLine:!1,insertedLineBreaks:n,lineDelta:n}]});let t=Math.max(0,-e.lineDelta),n=e.endedAtDocumentEnd&&e.startLine+t===e.previousLineCount-1;return[{startLine:e.startLine,startCharacter:e.startCharacter,endLine:e.startLine+t,deletesEndLine:n,insertedLineBreaks:Math.max(0,e.lineDelta),lineDelta:e.lineDelta}]}function xt(e,t,n){if(e<t.startLine)return e;if(e>t.endLine||t.endLine>t.startLine&&e===t.endLine&&!t.deletesEndLine)return e+t.lineDelta;if(t.startLine===t.endLine)return t.startCharacter===0?e+t.insertedLineBreaks:e;if(St(e,t))return;let r=Math.min(Math.max(0,e-t.startLine),t.insertedLineBreaks);return wt(t.startLine+r,n)}function St(e,t){return!(t.lineDelta>=0||e<t.startLine||e>t.endLine||e===t.startLine&&t.startCharacter>0||e===t.endLine&&!t.deletesEndLine)}function Ct(e,t){return t.lineDelta===0||e<t.startLine||e>t.endLine?!1:!(t.endLine>t.startLine&&e===t.endLine&&!t.deletesEndLine)}function wt(e,t){return Math.max(0,Math.min(e,Math.max(0,t-1)))}function Tt(e,t,n,r=vt){let i=new Map,a=new Map;for(let t of e){let e=t.lineNumber;i.has(e)||i.set(e,[]),a.has(e)||a.set(e,[]),(`side`in t&&t.side===`deletions`?a:i).get(e).push(r(t))}let o=t.parentElement?.previousElementSibling,s,c;if(o!=null&&o instanceof HTMLElement&&o.dataset.deletions!==void 0)for(let e of o.children){let t=e,{gutter:n,content:r}=t.dataset;n===void 0?r!==void 0&&(c=t):s=t}Et(t,n),c!==void 0&&Et(c,s);let l=Dt(i,t,n);if(c===void 0)return;let u=Dt(a,c,s);requestAnimationFrame(()=>{Ot(i,a,l,u)})}function Et(e,t){let n=[];for(let r=1;r<e.childElementCount;r++){let i=e.children[r];i.dataset.lineAnnotation!==void 0&&(n.push(i),t!==void 0&&n.push(t.children[r]))}for(let e of n)e.remove()}function Dt(e,t,n){let r=new Map;for(let n of t.children){let t=W(n);if(t!==void 0){let i=e.get(t);if(i!==void 0){let e=H(`div`,{dataset:{lineAnnotation:`0,`+(t-1)},children:[H(`div`,{dataset:`annotationContent`,children:i.map(e=>H(`slot`,{name:e}))})]});n.after(e),r.set(t,e)}}}if(n!==void 0)for(let t of n.children){let n=W(t,`columnNumber`);if(n!==void 0&&e.has(n)){let e=H(`div`,{dataset:{gutterBuffer:`annotation`,bufferSize:`1`},style:{gridRow:`span 1`}});t.after(e)}}return r}function Ot(e,t,n,r){let i=new Map;for(let[t,n]of e.entries()){let e=r.get(t);if(n.length===0&&e!==void 0){let n=kt(e);n>0&&i.set(t,n)}}for(let[e,r]of t.entries()){let t=n.get(e);if(r.length===0&&t!==void 0){let n=kt(t);n>0&&i.set(e,n)}}At(e,n,i),At(t,r,i)}function kt(e){let t=e.firstElementChild;return t instanceof HTMLElement?t.getBoundingClientRect().height:0}function At(e,t,n){for(let[r,i]of t.entries()){let t=e.get(r),a=n.get(r);t?.length===0&&a!==void 0&&i.style.setProperty(`--diffs-annotation-min-height`,`${a}px`)}}var jt=new Map([[`'`,`'`],[`"`,`"`],["`","`"],[`{`,`}`],[`[`,`]`],[`<`,`>`],[`(`,`)`]]),Mt=new Set([`'`,`"`,"`"]),Nt=new Set([`{`,`[`,`(`,`<`]);function Pt(e,t=0){let n=Rn(e.startContainer,e.startOffset),r=Rn(e.endContainer,e.endOffset);if(n!==null&&r!==null)return{start:n,end:r,direction:t}}function Ft(e,t,n,r){if(e===void 0)return[[],t];let{start:i,end:a}=t,o=[],s={...t},c=i.line!==a.line,l=a.line;i.line<a.line&&a.character===0&&l--;for(let t=i.line;t<=l;t++){let l=e.getLineText(t);if(l===void 0||c&&l.trim().length===0)continue;let u=l.startsWith(` `)?` `:` `.repeat(n),d=0,f=u;if(r){if(l.startsWith(` `))d=1;else if(l.startsWith(` `)){let e=l.length-l.trimStart().length;d=Math.min(u.length,e)}if(d===0)continue;f=``}o.push({range:{start:{line:t,character:0},end:{line:t,character:d}},newText:f});let p=f.length-d;t===i.line&&(s={...s,start:{...i,character:Math.max(0,i.character+p)}}),t===a.line&&(s={...s,end:{...a,character:Math.max(0,a.character+p)}})}return[o,s]}function It(e,t,n,r={}){let i=e.lineCount;return t.map(t=>{let{line:a,character:o}=n===`up`||n===`left`?t.start:t.end;if(n===`textStart`||n===`start`||n===`end`){let i=q(t);a=i.line,o=i.character;let s=zt(e,a,o,r);if(n===`textStart`){let t=e.getLineText(a).slice(s.start,s.end),n=s.start+Fn(t);o=o===n?s.start:n}else o=n===`start`?s.start:s.end}else if(n===`up`){let t=Lt(e,a,o,-1,r);t===void 0?a>0&&(a=r.resolveRenderableLine==null?a-1:r.resolveRenderableLine(a-1,`up`)??a):(a=t.line,o=t.character)}else if(n===`down`){let t=Lt(e,a,o,1,r);if(t!==void 0)a=t.line,o=t.character;else{let e=Math.max(i-1,0);a<e&&(a=r.resolveRenderableLine==null?a+1:Math.min(r.resolveRenderableLine(a+1,`down`)??a,e))}}else if(K(t)){let t=e.getLineLength(a);if(o=Math.min(o,t),n===`left`){if(o>0)o=jn(e,a,o,!1);else if(a>0){let t=r.resolveRenderableLine==null?a-1:r.resolveRenderableLine(a-1,`up`);t!==void 0&&(a=t,o=e.getLineLength(a))}}else if(o<t)o=jn(e,a,o,!0);else if(a<i-1){let e=r.resolveRenderableLine==null?a+1:r.resolveRenderableLine(a+1,`down`);e!==void 0&&(a=Math.min(e,i-1),o=0)}}let s={line:a,character:o};return{start:s,end:s,direction:0}})}function Lt(e,t,n,r,i){if(i.getSoftLineOffsets===void 0)return;let a=zt(e,t,n,i),o=a.index+r,s=t,c;if(o>=0&&o<a.count)c=Vt(e,s,o,i);else{let a=t+r;if(a<0||a>=e.lineCount)return{line:t,character:n};let o=i.resolveRenderableLine==null?a:i.resolveRenderableLine(a,r<0?`up`:`down`);if(o===void 0)return{line:t,character:n};s=Math.min(o,e.lineCount-1);let l=Bt(s,i);c=Vt(e,s,r<0?l-1:0,i)}let l=Math.max(0,n-a.start),u=c.start+l,d=c.index===c.count-1?u:Math.min(u,c.end),f=e.getLineText(s);return{line:s,character:d>f.length?d:Rt(f,d)}}function Rt(e,t){if(t<=0||t>=e.length)return t;let n=mt();if(n!==void 0){for(let r of n.segment(e)){if(t<=r.index)return t;let e=r.index+r.segment.length;if(t<e)return e}return t}let r=0;for(let n of e){if(t<=r)return t;let e=r+n.length;if(t<e)return e;r=e}return t}function zt(e,t,n,r){let i=e.getLineLength(t),a=r.getSoftLineOffsets?.(t);if(a===void 0||a.length<2)return{start:0,end:i,index:0,count:1};for(let i=0;i+1<a.length;i++){let a=Vt(e,t,i,r);if(n>=a.start&&n<=a.end)return a}return Vt(e,t,n<(a[0]??0)?0:a.length-2,r)}function Bt(e,t){let n=t.getSoftLineOffsets?.(e);return n===void 0||n.length<2?1:n.length-1}function Vt(e,t,n,r){let i=e.getLineLength(t),a=r.getSoftLineOffsets?.(t);if(a===void 0||a.length<2)return{start:0,end:i,index:0,count:1};let o=a.length-1,s=Math.max(0,Math.min(n,o-1)),c=Math.max(0,Math.min(i,a[s]??0));return{start:c,end:Math.max(c,Math.min(i,a[s+1]??i)),index:s,count:o}}function Ht(e,t,n,r={}){return t.map(t=>{let i=t.direction===-1?t.start:t.end,[a]=It(e,[{start:i,end:i,direction:0}],n,r);return sn(t,a)})}function Ut(e,t,n,r,i=2,a=!1){if(t[t.length-1]===void 0)return{nextSelections:[]};let o=[];for(let e of t)o.push(e.start,e.end);let s=o.map(t=>e.offsetAt(t)),c=s[(t.length-1)*2],l=s[(t.length-1)*2+1],u=[],d=!0;for(let e=0;e<t.length;e++){let t={index:e,start:s[e*2],end:s[e*2+1]},n=u[u.length-1];n!==void 0&&(t.start<n.start||t.start===n.start&&t.end<n.end)&&(d=!1),u.push(t)}d||u.sort((e,t)=>{let n=e.start-t.start;if(n!==0)return n;let r=e.end-t.end;return r===0?e.index-t.index:r});let f=Ln(e,n,i),p=[],m=Array.from({length:t.length}),h=0,g,_=()=>{if(g===void 0)return;let t=Ln(e,{start:g.start,end:g.end,text:f.text},i),n=Pn(e,t.text,t.start);p.push({start:t.start,end:t.end,text:n});let r=[g.start+h+n.length,g.start+h+n.length];for(let e of g.indices)m[e]=r;h+=n.length-(t.end-t.start),g=void 0};for(let e of u){let t=Math.max(0,e.start+(f.start-c)),n=Math.max(t,e.end+(f.end-l));if(g!==void 0&&t<g.end){g.end=Math.max(g.end,n),g.indices.push(e.index);continue}_(),g={start:t,end:n,indices:[e.index]}}_();let v=e.applyResolvedEdits(p,!0,t,void 0,a),y=In(e,m.map(e=>{if(e===void 0)throw Error(`Missing next selection offsets`);return e}));if(e.setLastUndoSelectionsAfter(y),v!==void 0&&r!==void 0){let t=yt(v,r);t!==void 0&&e.setLastUndoLineAnnotations(r,t)}return{nextSelections:y,change:v}}function Wt(e,t){if(t.length!==e.length+2)return;let n=jt.get(t[0]);if(n!==void 0&&t[t.length-1]===n&&t.slice(1,-1)===e)return 1}function Gt(e,t,n,r){let i=t.start+n,a=i+r.length;if(t.end-t.start>0){let n=e.getTextSlice(t.start,t.end),a=Wt(n,r)??r.indexOf(n);if(a!==-1&&a+n.length<=r.length){let e=i+a;return[e,e+n.length]}}return[a,a]}function Kt(e,t,n,r,i=!1,a=`selection`){if(t.length!==n.length)throw Error(`Selection text replacements must match the selection count`);let o=[];for(let e of t)o.push(e.start,e.end);let s=o.map(t=>e.offsetAt(t)),c=[],l=!0;for(let e=0;e<t.length;e++){let t={index:e,start:s[e*2],end:s[e*2+1]},n=c[c.length-1];n!==void 0&&(t.start<n.start||t.start===n.start&&t.end<n.end)&&(l=!1),c.push(t)}l||c.sort((e,t)=>{let n=e.start-t.start;if(n!==0)return n;let r=e.end-t.end;return r===0?e.index-t.index:r});let u=n.every(e=>e===``),d,f=Array.from({length:t.length});if(u){d=[];let e=!1;for(let t of c){if(f[t.index]=[t.end,t.end],t.start>=t.end)continue;e=!0;let n=d[d.length-1];n!==void 0&&t.start<n.end?d[d.length-1]={start:n.start,end:Math.max(n.end,t.end),text:``}:d.push({start:t.start,end:t.end,text:``})}if(!e)return{nextSelections:t};for(let e of c){let t=e.end,n=0,r=t;for(let e of d){if(t<=e.start)break;if(t>=e.end){n-=e.end-e.start;continue}r=e.start+n;break}r===t&&(r+=n),f[e.index]=[r,r]}}else{d=[];let t=0,r=-1;for(let i=0;i<c.length;i++){let o=c[i];if(o.start<r)throw Error(`Overlapping multi-selection edits are not supported`);r=o.end;let s=Pn(e,n[a===`document`?i:o.index],o.start);d.push({start:o.start,end:o.end,text:s}),f[o.index]=Gt(e,o,t,s),t+=s.length-(o.end-o.start)}}let p=e.applyResolvedEdits(d,!0,t,void 0,i),m=In(e,f.map(e=>{if(e===void 0)throw Error(`Missing next selection offsets`);return e}));if(e.setLastUndoSelectionsAfter(m),p!==void 0&&r!==void 0){let t=yt(p,r);t!==void 0&&e.setLastUndoLineAnnotations(r,t)}return{nextSelections:m,change:p}}function qt(e,t){return e===`never`?!1:e===`brackets`?Nt.has(t):e!==`quotes`||Mt.has(t)}function Jt(e,t,n,r){if(n.length!==1||t.length===0)return;let i=jt.get(n);if(i===void 0||!qt(r,n))return;let a=[];for(let r of t){if(K(r))return;a.push(n+e.getText(r)+i)}return a}function Yt(e,t,n){let r=[],i=[];for(let n of t){let[t,a]=Mn(e,n);if(!K(n)){i.push([t,a]);continue}let{line:o,character:s}=n.start,c=t,l=e.getLineText(o),u=l.length,d=c-s,f=An(l),p;if(s>0&&s<u){let e=kn(l,s,!1,f),t=kn(l,s,!0,f);p={start:d+e,end:d+t,text:l.slice(s,t)+l.slice(e,s)},i.push([d+t,d+t])}else if(s===u&&f.length>=2){let e=f[f.length-1],t=f[f.length-2];p={start:d+t,end:c,text:l.slice(e,u)+l.slice(t,e)},i.push([c,c])}else if(s===0&&o>0&&u>0){let t=o-1,n=e.getLineText(t),r=n.length,a=e.offsetAt({line:t,character:r}),s=r>0?kn(n,r,!1,An(n)):r,u=kn(l,0,!0,f),d=a-(r-s),m=l.slice(0,u)+e.getTextSlice(a,c)+n.slice(s,r);p={start:d,end:c+u,text:m};let h=d+m.length;i.push([h,h])}else{i.push([t,a]);continue}r.push(p)}if(r.length===0)return{nextSelections:t};r.sort((e,t)=>e.start-t.start);for(let e=1;e<r.length;e++)if(r[e].start<r[e-1].end)throw Error(`Overlapping multi-selection edits are not supported`);let a=e.applyResolvedEdits(r,!0,t),o=In(e,i);if(e.setLastUndoSelectionsAfter(o),a!==void 0&&n!==void 0){let t=yt(a,n);t!==void 0&&e.setLastUndoLineAnnotations(n,t)}return{nextSelections:o,change:a}}function Xt(e,t,n){let r=t.map(t=>{let n=Nn(e,t);return{start:n.start,end:n.end,direction:0}});return Kt(e,r,r.map(()=>``),n)}function Zt(e,t,n,r){let i=t.map(t=>{if(!K(t))return{start:t.start,end:t.end,direction:0};let r=q(t),{line:i,character:a}=r,o=n?.(i,a)??0;if(a>o)return{start:{line:i,character:o},end:{line:i,character:a},direction:0};if(i===0)return{start:r,end:r,direction:0};let s=e.getLineLength(i-1);return{start:{line:i-1,character:s},end:{line:i,character:0},direction:0}});return Kt(e,i,i.map(()=>``),r)}function Qt(e,t,n){let r=t.map(t=>{let[n,r]=On(e,t);return{start:n,end:r,direction:0}});return Kt(e,r,r.map(()=>``),n)}function $t(e,t,n){if(!K(t))return[t.start,t.end];let r=q(t),{line:i,character:a}=r,o=e.getLineLength(i),s=e.lineCount;if(a=Math.min(a,o),n)return a<o?[{line:i,character:a},{line:i,character:jn(e,i,a,!0)}]:i<s-1?[{line:i,character:o},{line:i+1,character:0}]:[r,r];if(a>0)return[{line:i,character:jn(e,i,a,!1)},{line:i,character:a}];if(i>0){let t=e.getLineLength(i-1);return[{line:i-1,character:t},{line:i,character:0}]}return[r,r]}function en(e,t,n,r,i=2){let a=t.map(t=>{let[r,a]=$t(e,t,n);if(!n&&K(t)){let t=Ln(e,{start:e.offsetAt(r),end:e.offsetAt(a),text:``},i);r=e.positionAt(t.start),a=e.positionAt(t.end)}return{start:r,end:a,direction:0}});return Kt(e,a,a.map(()=>``),r)}function K(e){return e.start.line===e.end.line&&e.start.character===e.end.character}function q(e){let{start:t,end:n,direction:r}=e;return r===-1?t:n}function tn(e){return e===`context`||e===`context-expanded`||e===`change-addition`}function nn(e,t){let n=K(e),r=K(t);return n&&r?J(e.start,t.start)===0:n?J(t.start,e.start)<=0&&J(e.start,t.end)<=0:r?J(e.start,t.start)<=0&&J(t.start,e.end)<=0:J(e.start,t.end)<0&&J(t.start,e.end)<0}function J(e,t){return e.line===t.line?e.character-t.character:e.line-t.line}function rn(e,t,n){let r=t===n?0:t<n?1:-1,i=Math.min(t,n),a=Math.max(t,n);return{start:e.positionAt(i),end:e.positionAt(a),direction:r}}function an(e,t){let n=0;for(let r of t){if(e<r.start)break;if(e>=r.end)n+=r.text.length-(r.end-r.start);else return r.start+n+r.text.length}return e+n}function on(e,t,n,r){return t.map((t,i)=>{let[a,o]=n[i],s=an(a,r),c=an(o,r);return rn(e,t.direction===-1?c:s,t.direction===-1?s:c)})}function sn(e,t){let n=e.direction===-1?e.end:e.start,r=J(n,t.start),i=J(n,t.end),a=t.end;a=r<=0?t.end:i>=0?t.start:r===0?t.end:t.start;let o=J(n,a);return{start:o<=0?n:a,end:o<=0?a:n,direction:o===0?0:o<0?1:-1}}function cn(e,t){let n=J(t.start,e.start)<0,r=J(t.end,e.end)>0;return n&&!r?{start:t.start,end:e.end,direction:-1}:r&&!n?{start:e.start,end:t.end,direction:1}:e.direction===-1?{start:t.start,end:e.end,direction:J(t.start,e.end)===0?0:-1}:{start:e.start,end:t.end,direction:J(e.start,t.end)===0?0:1}}function ln(e,t){return un(e.map(e=>cn(e,t)))}function un(e){if(e.length<=1)return e;let t=e.map((e,t)=>({index:t,selection:e})).sort((e,t)=>{let n=J(e.selection.start,t.selection.start);if(n!==0)return n;let r=J(e.selection.end,t.selection.end);return r===0?e.index-t.index:r}),n=[],r=t[0];for(let e of t.slice(1)){if(nn(r.selection,e.selection)){let t=e.index>r.index?e:r,n=J(e.selection.start,r.selection.start)<0?e.selection.start:r.selection.start,i=J(e.selection.end,r.selection.end)>0?e.selection.end:r.selection.end,a=t.selection.direction;a===0&&J(n,i)!==0&&(a=J(t.selection.start,n)===0?-1:1),r={index:t.index,selection:{direction:a,end:i,start:n}};continue}n.push(r),r=e}return n.push(r),n.sort((e,t)=>e.index-t.index).map(({selection:e})=>e)}function dn(e){let t=e.map(e=>{let t=e.end.line;return e.end.character===0&&J(e.start,e.end)!==0&&t--,{startLine:e.start.line,endLine:Math.max(e.start.line,t)}}).sort((e,t)=>{let n=e.startLine-t.startLine;return n===0?e.endLine-t.endLine:n}),n=[];for(let e of t){let t=n.at(-1);t!==void 0&&e.startLine<=t.endLine+1?t.endLine=Math.max(t.endLine,e.endLine):n.push({...e})}return n}function fn(e,t,n,r){let i=e=>{let i=e.line+t;if(i>=n){let e=Math.max(0,n-1);return{line:e,character:r(e)}}return i<0?{line:0,character:0}:{line:i,character:e.character}};return{start:i(e.start),end:i(e.end),direction:e.direction}}function pn(e,t){if(t.length===0)return;let n=t.map(t=>K(t)?En(e,t):t),r=n.map(t=>e.getText(t)),i=r[0];if(i.length===0||r.some(e=>e!==i))return;let a=n.map(t=>[e.offsetAt(t.start),e.offsetAt(t.end)]),o=e.findNextNonOverlappingSubstring(i,a);if(o===void 0)return n.some((e,n)=>{let r=t[n];return J(e.start,r.start)!==0||J(e.end,r.end)!==0||e.direction!==r.direction})?n:void 0;let s=rn(e,o,o+i.length);return[...n,s]}function mn(e){let t=e.lineCount-1;return{start:{line:0,character:0},end:{line:t,character:e.getLineLength(t)},direction:1}}function hn(e,t,n){let r=0;if(t){let t=e.lineCount-1;r=n===!0&&t>0&&e.getLineLength(t)===0?t-1:t}let i=t?e.getLineLength(r):0,a={line:r,character:i};return{start:a,end:a,direction:1}}function gn(e,t){if(K(t)){let n=t.start.line;return{start:e.offsetAt({line:n,character:0}),end:n<e.lineCount-1?e.offsetAt({line:n+1,character:0}):e.offsetAt({line:n,character:e.getLineLength(n)})}}let n=e.offsetAt(t.start),r=e.offsetAt(t.end);return n<=r?{start:n,end:r}:{start:r,end:n}}function _n(e,t){return t.map(t=>gn(e,t)).sort((e,t)=>{let n=e.start-t.start;return n===0?e.end-t.end:n})}function vn(e,t){return _n(e,t).map(({start:t,end:n})=>e.getTextSlice(t,n))}function yn(e,t){let n=_n(e,t),r=e.eol,i=``,a=-1;for(let t of n)if(!(t.end<=t.start)){if(t.start<=a){t.end>a&&(i+=e.getTextSlice(a,t.end),a=t.end);continue}i.length>0&&!ut(i)&&(i+=r),i+=e.getTextSlice(t.start,t.end),a=t.end}return i}function bn(e,t){if(K(t))return xn(e,t);let[n,r]=J(t.start,t.end)<=0?[t.start,t.end]:[t.end,t.start];return{start:e.offsetAt(n),end:e.offsetAt(r),text:``}}function xn(e,t){let n=t.start.line,r=e.offsetAt({line:n,character:0}),i=e.offsetAt({line:n,character:e.getLineLength(n)});return n<e.lineCount-1?{start:r,end:e.offsetAt({line:n+1,character:0}),text:``}:n>0?{start:e.offsetAt({line:n-1,character:e.getLineLength(n-1)}),end:i,text:``}:{start:r,end:i,text:``}}function Sn(e){let t=[];for(let{edit:n}of e){if(n.start>=n.end)continue;let e=t.at(-1);e!==void 0&&n.start<=e.end?t[t.length-1]={start:e.start,end:Math.max(e.end,n.end),text:``}:t.push(n)}return t}function Cn(e,t){let n=Array.from({length:e.length}),r=0,i=0;for(let a of e){for(;r<t.length&&a.edit.start>t[r].end;){let e=t[r];i-=e.end-e.start,r++}let e=t[r];e!==void 0&&a.edit.start>=e.start&&a.edit.start<=e.end?n[a.index]=e.start+i:n[a.index]=a.edit.start+i}return n}function wn(e,t){let n=[...t.map((t,n)=>({index:n,edit:bn(e,t)}))].sort((e,t)=>{let n=e.edit.start-t.edit.start;if(n!==0)return n;let r=e.edit.end-t.edit.end;return r===0?e.index-t.index:r}),r=Sn(n);return{text:yn(e,t),edits:r,nextSelectionOffsets:Cn(n,r)}}function Tn(e,t){let n=Math.max(0,t),r=zn(e),i=null;for(let e of r){i=e;let t=Y(e);if(n<=t+(e.textContent?.length??0)){let r=Bn(e,n<t?0:n-t);if(r!==null)return r}}if(i!==null){let e=Bn(i,i.textContent?.length??0);return e===null?[i,0]:e}let a=0,o=null;for(let t of e.childNodes){if(t.nodeType===1&&t.tagName===`BR`)return[t,0];if(t.nodeType!==3)continue;o=t;let e=X(o.textContent,o.textContent?.length??0);if(n<=a+e)return[o,X(o.textContent,n-a)];a+=e}return o===null?[e,0]:[o,X(o.textContent,o.textContent?.length??0)]}function En(e,t){let{line:n,character:r}=t.start,i=e.getLineText(n),a=Dn(i,Math.max(0,Math.min(r,i.length)));return a===void 0?t:{start:{line:n,character:a.start},end:{line:n,character:a.end},direction:1}}function Dn(e,t){let n=dt({granularity:`word`});if(n!==void 0){for(let r of n.segment(e)){if(r.isWordLike!==!0)continue;let e=r.index,n=e+r.segment.length;if(t>=e&&t<=n)return{start:e,end:n}}return}let r=/[\p{Alphabetic}\p{Number}_]+/gu,i;for(;(i=r.exec(e))!==null;){let e=i.index,n=e+i[0].length;if(t>=e&&t<=n)return{start:e,end:n}}}function On(e,t){if(!K(t))return[t.start,t.end];let n=q(t),{line:r,character:i}=n;if(i===0){if(r===0)return[n,n];let t=e.getLineLength(r-1);return[{line:r-1,character:t},{line:r,character:0}]}let a=e.getLineText(r),o=An(a),s=i,c;for(;s>0;){let e=kn(a,s,!1,o),t=a.slice(e,s),n=/\S/.test(t)?/\p{Alphabetic}|\p{Number}|_/u.test(t)?1:2:0;if(c!==void 0&&n!==c)break;(n!==0||s!==i)&&(c=n),s=e}return[{line:r,character:s},{line:r,character:i}]}function kn(e,t,n,r){if(n){for(let e of r)if(e>t)return e;return e.length}for(let e=r.length-1;e>=0;e--){let n=r[e];if(n<t)return n}return 0}function An(e){let t=[0],n=mt();if(n!==void 0){for(let r of n.segment(e))r.index>0&&t.push(r.index);return t}let r=0;for(let n of e)r>0&&t.push(r),r+=n.length;return t}function jn(e,t,n,r){let i=e.getLineLength(t);if(r){if(n>=i)return i;let r=e.offsetAt({line:t,character:0}),a=e.getTextSlice(r+n,r+i),o=mt();if(o!==void 0){for(let e of o.segment(a))return n+e.segment.length;return i}for(let e of a)return n+e.length;return i}if(n<=0)return 0;let a=e.offsetAt({line:t,character:0}),o=e.getTextSlice(a,a+n),s=0,c=mt();if(c!==void 0){for(let e of c.segment(o))s=e.index;return s}let l=0;for(let e of o)s=l,l+=e.length;return s}function Mn(e,t){let n=t.direction===-1;return[e.offsetAt(n?t.end:t.start),e.offsetAt(q(t))]}function Nn(e,t){if(!K(t))return{start:t.start,end:t.end};let{line:n,character:r}=t.start,i=e.getLineText(n).length;return r<i?{start:{line:n,character:r},end:{line:n,character:i}}:n<e.lineCount-1?{start:{line:n,character:r},end:{line:n+1,character:0}}:{start:{line:n,character:r},end:{line:n,character:r}}}function Pn(e,t,n){if(t!==`
10
10
  `&&t!==`\r`&&t!==`\r
11
- `)return t;let r=e.positionAt(n).line,i=e.getLineText(r),a=Ln(i);return a===0?t:t+i.slice(0,a)}function Ln(e){let t=0;for(;t<e.length;t++){let n=e.charCodeAt(t);if(n!==32&&n!==9)break}return t}function Rn(e,t){let n=[];for(let[e,r]of t)n.push(Math.min(e,r),Math.max(e,r));let r=e.positionsAt(n);return t.map(([e,t],n)=>{let i=e===t?0:e<t?1:-1;return{start:r[n*2],end:r[n*2+1],direction:i}})}function zn(e,t,n){if(t.text!==``||t.start!==t.end-1)return t;let r=e.positionAt(t.end);if(r.character===0)return t;let i=e.getLineText(r.line),a=i.slice(0,r.character);if(/[^ \t]/.test(a)||i[r.character-1]===` `)return t;let o=Math.max(0,r.character-n),s=i.slice(o,r.character);return s.length===n&&/^ +$/.test(s)?{...t,start:t.end-s.length}:t}function Bn(e,t){let n=e.nodeType===1?e:e.parentElement;for(;n!==null&&qn(n)===void 0;)n=n.parentElement;if(n===null)return null;let r=qn(n);if(r===void 0)return null;if(e.nodeType===3)return e.parentElement===null?null:Kn(e.parentElement)===null?{line:r,character:Gn(n,e)+Y(e.textContent,t)}:{line:r,character:q(e,t)};if(e.nodeType===1){let i=e;if(i.tagName===`DIV`){let e=0;for(let n=0;n<t;n++)e=q(i.childNodes[n]);return{line:r,character:e}}if(i.tagName===`BR`)return{line:r,character:0};if(i.tagName===`SPAN`){if(t<i.childNodes.length){let e=i.childNodes[t];if(e?.nodeType===1){let t=J(e);if(t!==void 0)return{line:r,character:t};let n=Kn(e),i=n===null?void 0:J(n);if(i!==void 0)return{line:r,character:i}}}return{line:r,character:t>0?q(i.childNodes[t-1]):Gn(n,i)}}return{line:r,character:Gn(n,i)}}return null}function Vn(e){let t=[];for(let n of e.childNodes){if(n.nodeType!==1)continue;let e=n;if(e.tagName===`SPAN`){if(J(e)!==void 0){t.push(e);continue}for(let n of e.childNodes)n.nodeType===1&&J(n)!==void 0&&t.push(n)}}return t}function Hn(e,t){let n=Math.max(0,t),r=[{container:e,index:0}];for(;r.length>0;){let e=r[r.length-1];if(e.index>=e.container.childNodes.length){r.pop();continue}let t=e.container.childNodes[e.index];if(e.index++,t.nodeType===3){let e=Y(t.textContent,t.textContent?.length??0);if(n<=e)return[t,n];n-=e}else t.nodeType===1&&r.push({container:t,index:0})}return null}function Un(e,t){let n=0,r=[{container:e,index:0}];for(;r.length>0;){let e=r[r.length-1];if(e.index>=e.container.childNodes.length){r.pop();continue}let i=e.container.childNodes[e.index];if(i===t)return n;e.index++,i.nodeType===3?n+=Y(i.textContent,i.textContent?.length??0):i.nodeType===1&&r.push({container:i,index:0})}return n}function Wn(e,t){let n=t;for(;n!==null;){if(n===e)return!0;n=n.parentElement}return!1}function Gn(e,t){if(t.parentElement===e){let n=0,r=Array.prototype.indexOf.call(e.childNodes,t);for(let t=0;t<r;t++)n=q(e.childNodes[t]);return n}for(let n of Vn(e))if(Wn(n,t))return J(n)+(t.nodeType===3?Un(n,t):0);let n=0,r=t.nodeType===1?t:t.parentElement;for(;r!==null&&r.parentElement!==null&&qn(r.parentElement)===void 0;){let e=r.parentElement,t=Array.prototype.indexOf.call(e.childNodes,r);for(let r=0;r<t;r++)n=q(e.childNodes[r]);r=e}return n}function Kn(e){let t=e;for(;t!==null;){if(qn(t)!==void 0)return null;if(J(t)!==void 0)return t;t=t.parentElement}return null}function q(e,t){if(e===void 0)return 0;if(e.nodeType===3){let n=e.parentElement;if(n===null)return 0;let r=Kn(n);if(r===null)return 0;let i=J(r);if(i===void 0)return 0;let a=t===void 0?Y(e.textContent,e.textContent?.length??0):Y(e.textContent,t);return i+Un(r,e)+a}if(e.nodeType!==1)return 0;let n=e;if(n.tagName!==`SPAN`&&n.tagName!==`BR`)return 0;let r=J(n);if(r!==void 0)return r+(n.textContent?.length??0);let i=0;for(let e of n.childNodes)i=Math.max(i,q(e));return i}function qn(e){let{line:t,lineType:n}=e.dataset;if(t!==void 0&&n!==`change-deletion`){let e=parseInt(t,10);if(!Number.isNaN(e))return e-1}}function J(e){let{char:t}=e.dataset;if(t!==void 0){let e=parseInt(t,10);if(!Number.isNaN(e))return e}}function Y(e,t){let n=e??``,r=n.search(/[\r\n]/);return Math.min(t,r===-1?n.length:r)}var Jn=300,Yn=100,Xn=`marker-popover`,Zn=class{#e;#t=[];#n=0;#r;#i;#a;#o;#s;#c;#l;#u=!1;constructor(e){this.#e=e}get markers(){return this.#t}isPopoverVisible(){return this.#l!==void 0}updatePopoverPosition(){let e=this.#l,t=this.#r;if(e===void 0||t===void 0)return;let n=this.#t[e];if(n===void 0){this.removePopover();return}this.#_(t,n.start.line,n.start.character)}setMarkers(e,t){this.#n=t.lineCount,this.#t=e.map(e=>({...e,start:t.normalizePosition(e.start),end:t.normalizePosition(e.end)})),this.removePopover()}listenHover(e){this.#a?.forEach(e=>e()),this.#a=void 0,this.#t.length!==0&&(this.#a=[B(e,`mouseover`,e=>{if(this.#e.isMouseDown())return;let t=e.composedPath()[0];if(t===void 0)return;let n=this.#d(t);n===void 0?(this.#f(),this.#h()):this.#m(n)}),B(e,`mouseleave`,()=>{this.#f(),this.#h()})])}removePopover(){this.#f(),this.#p(),this.#v()}cleanup(){this.#a?.forEach(e=>e()),this.#a=void 0,this.removePopover(),this.#t=[]}#d(e){let t=e.closest(`[data-line]`);if(t==null)return;let n=V(t);if(n===void 0)return;let r;if(e.tagName===`SPAN`){let t=e.dataset.char;if(t===void 0||(r=parseInt(t,10),Number.isNaN(r)))return}else if(e.tagName===`BR`)r=0;else return;let i={line:n-1,character:r};for(let e=this.#t.length-1;e>=0;e--)if(an({start:i,end:i},this.#t[e]))return e}#f(){this.#o!==void 0&&(clearTimeout(this.#o),this.#o=void 0),this.#c=void 0}#p(){this.#s!==void 0&&(clearTimeout(this.#s),this.#s=void 0)}#m(e){if(e===this.#l||e===this.#c){this.#p();return}if(this.#f(),this.#p(),this.#r!==void 0){this.#y(e);return}this.#c=e,this.#o=setTimeout(()=>{this.#o=void 0,this.#c=void 0,this.#y(e)},Jn)}#h(){this.#u||(this.#p(),this.#s=setTimeout(()=>{this.#s=void 0,this.#u||this.removePopover()},Yn))}#g(e,t,n,r,i=this.#e.popoverManager.getPlacementBounds()){yt(e,{gutterWidth:this.#e.getGutterWidth(),placeAbove:r,viewport:i,x:t,y:n})}#_(e,t,n){let{getCharX:r,getLineY:i,getLineHeight:a,popoverManager:o}=this.#e,[s,c]=r(t,n),l=a(),u=i(t)+c*l,d=e.offsetHeight,f={top:u+l,bottom:u+l+d},p={top:u-d,bottom:u},m=t>=this.#n-3,h=o.getPlacementBounds(),g=o.choosePlacement({preferred:f,fallback:p,viewport:h,popoverHeight:d,atDocumentEdge:m,placementKey:Xn})===`fallback`;this.#g(e,s,g?u:u+l,g,h)}#v(){this.#i?.forEach(e=>e()),this.#i=void 0,this.#r?.remove(),this.#r=void 0,this.#l=void 0,this.#u=!1,this.#e.popoverManager.resetPlacement(Xn)}#y(e){if(e===this.#l)return;let t=this.#e.getOverlayElement();if(e>=this.#t.length||t==null)return;let{start:n,message:r,severity:i}=this.#t[e],{line:a,character:o}=n,s=this.#r;if(this.#e.popoverManager.resetPlacement(Xn),s!==void 0){$n(s,i);let t=s.firstElementChild;t?.dataset.markerMessage!==void 0&&(typeof r==`string`?t.textContent=r:r instanceof HTMLElement?t.replaceChildren(r):t.innerHTML=r.html),this.#_(s,a,o),this.#l=e;return}this.#r=z(`div`,{dataset:{editorWidget:``,markerPopover:``,[er(i)]:``},children:[z(`div`,{dataset:`markerMessage`,...typeof r==`string`?{textContent:r}:r instanceof HTMLElement?{children:[r]}:{innerHTML:r.html}})]},t),this.#_(this.#r,a,o),this.#l=e,this.#i=[B(this.#r,`mouseenter`,()=>{this.#u=!0,this.#p()}),B(this.#r,`mouseleave`,()=>{this.#u=!1,this.#h()})]}},Qn=[`error`,`warning`,`info`,`hint`];function $n(e,t){for(let t of Qn)delete e.dataset[er(t)];e.dataset[er(t)]=``}function er(e){switch(e){case`error`:return`markerError`;case`warning`:return`markerWarning`;case`info`:return`markerInfo`;case`hint`:return`markerHint`}}function tr(e){return{...e,oldFile:e.oldFile==null?null:{...e.oldFile,lines:[...e.oldFile.lines]},hunks:M(e.hunks)}}var nr=`::selection {
11
+ `)return t;let r=e.positionAt(n).line,i=e.getLineText(r),a=Fn(i);return a===0?t:t+i.slice(0,a)}function Fn(e){let t=0;for(;t<e.length;t++){let n=e.charCodeAt(t);if(n!==32&&n!==9)break}return t}function In(e,t){let n=[];for(let[e,r]of t)n.push(Math.min(e,r),Math.max(e,r));let r=e.positionsAt(n);return t.map(([e,t],n)=>{let i=e===t?0:e<t?1:-1;return{start:r[n*2],end:r[n*2+1],direction:i}})}function Ln(e,t,n){if(t.text!==``||t.start!==t.end-1)return t;let r=e.positionAt(t.end);if(r.character===0)return t;let i=e.getLineText(r.line),a=i.slice(0,r.character);if(/[^ \t]/.test(a)||i[r.character-1]===` `)return t;let o=Math.max(0,r.character-n),s=i.slice(o,r.character);return s.length===n&&/^ +$/.test(s)?{...t,start:t.end-s.length}:t}function Rn(e,t){let n=e.nodeType===1?e:e.parentElement;for(;n!==null&&Kn(n)===void 0;)n=n.parentElement;if(n===null)return null;let r=Kn(n);if(r===void 0)return null;if(e.nodeType===3)return e.parentElement===null?null:Wn(e.parentElement)===null?{line:r,character:Un(n,e)+X(e.textContent,t)}:{line:r,character:Gn(e,t)};if(e.nodeType===1){let i=e;if(i.tagName===`DIV`){let e=0;for(let n=0;n<t;n++)e=Gn(i.childNodes[n]);return{line:r,character:e}}if(i.tagName===`BR`)return{line:r,character:0};if(i.tagName===`SPAN`){if(t<i.childNodes.length){let e=i.childNodes[t];if(e?.nodeType===1){let t=Y(e);if(t!==void 0)return{line:r,character:t};let n=Wn(e),i=n===null?void 0:Y(n);if(i!==void 0)return{line:r,character:i}}}return{line:r,character:t>0?Gn(i.childNodes[t-1]):Un(n,i)}}return{line:r,character:Un(n,i)}}return null}function zn(e){let t=[];for(let n of e.childNodes){if(n.nodeType!==1)continue;let e=n;if(e.tagName===`SPAN`){if(Y(e)!==void 0){t.push(e);continue}for(let n of e.childNodes)n.nodeType===1&&Y(n)!==void 0&&t.push(n)}}return t}function Bn(e,t){let n=Math.max(0,t),r=[{container:e,index:0}];for(;r.length>0;){let e=r[r.length-1];if(e.index>=e.container.childNodes.length){r.pop();continue}let t=e.container.childNodes[e.index];if(e.index++,t.nodeType===3){let e=X(t.textContent,t.textContent?.length??0);if(n<=e)return[t,n];n-=e}else t.nodeType===1&&r.push({container:t,index:0})}return null}function Vn(e,t){let n=0,r=[{container:e,index:0}];for(;r.length>0;){let e=r[r.length-1];if(e.index>=e.container.childNodes.length){r.pop();continue}let i=e.container.childNodes[e.index];if(i===t)return n;e.index++,i.nodeType===3?n+=X(i.textContent,i.textContent?.length??0):i.nodeType===1&&r.push({container:i,index:0})}return n}function Hn(e,t){let n=t;for(;n!==null;){if(n===e)return!0;n=n.parentElement}return!1}function Un(e,t){if(t.parentElement===e){let n=0,r=Array.prototype.indexOf.call(e.childNodes,t);for(let t=0;t<r;t++)n=Gn(e.childNodes[t]);return n}for(let n of zn(e))if(Hn(n,t))return Y(n)+(t.nodeType===3?Vn(n,t):0);let n=0,r=t.nodeType===1?t:t.parentElement;for(;r!==null&&r.parentElement!==null&&Kn(r.parentElement)===void 0;){let e=r.parentElement,t=Array.prototype.indexOf.call(e.childNodes,r);for(let r=0;r<t;r++)n=Gn(e.childNodes[r]);r=e}return n}function Wn(e){let t=e;for(;t!==null;){if(Kn(t)!==void 0)return null;if(Y(t)!==void 0)return t;t=t.parentElement}return null}function Gn(e,t){if(e===void 0)return 0;if(e.nodeType===3){let n=e.parentElement;if(n===null)return 0;let r=Wn(n);if(r===null)return 0;let i=Y(r);if(i===void 0)return 0;let a=t===void 0?X(e.textContent,e.textContent?.length??0):X(e.textContent,t);return i+Vn(r,e)+a}if(e.nodeType!==1)return 0;let n=e;if(n.tagName!==`SPAN`&&n.tagName!==`BR`)return 0;let r=Y(n);if(r!==void 0)return r+(n.textContent?.length??0);let i=0;for(let e of n.childNodes)i=Math.max(i,Gn(e));return i}function Kn(e){let{line:t,lineType:n}=e.dataset;if(t!==void 0&&n!==`change-deletion`){let e=parseInt(t,10);if(!Number.isNaN(e))return e-1}}function Y(e){let{char:t}=e.dataset;if(t!==void 0){let e=parseInt(t,10);if(!Number.isNaN(e))return e}}function X(e,t){let n=e??``,r=n.search(/[\r\n]/);return Math.min(t,r===-1?n.length:r)}var qn=300,Jn=100,Yn=`marker-popover`,Xn=class{#e;#t=[];#n=0;#r;#i;#a;#o;#s;#c;#l;#u=!1;constructor(e){this.#e=e}get markers(){return this.#t}isPopoverVisible(){return this.#l!==void 0}updatePopoverPosition(){let e=this.#l,t=this.#r;if(e===void 0||t===void 0)return;let n=this.#t[e];if(n===void 0){this.removePopover();return}this.#_(t,n.start.line,n.start.character)}setMarkers(e,t){this.#n=t.lineCount,this.#t=e.map(e=>({...e,start:t.normalizePosition(e.start),end:t.normalizePosition(e.end)})),this.removePopover()}listenHover(e){this.#a?.forEach(e=>e()),this.#a=void 0,this.#t.length!==0&&(this.#a=[U(e,`mouseover`,e=>{if(this.#e.isMouseDown())return;let t=e.composedPath()[0];if(t===void 0)return;let n=this.#d(t);n===void 0?(this.#f(),this.#h()):this.#m(n)}),U(e,`mouseleave`,()=>{this.#f(),this.#h()})])}removePopover(){this.#f(),this.#p(),this.#v()}cleanup(){this.#a?.forEach(e=>e()),this.#a=void 0,this.removePopover(),this.#t=[]}#d(e){let t=e.closest(`[data-line]`);if(t==null)return;let n=W(t);if(n===void 0)return;let r;if(e.tagName===`SPAN`){let t=e.dataset.char;if(t===void 0||(r=parseInt(t,10),Number.isNaN(r)))return}else if(e.tagName===`BR`)r=0;else return;let i={line:n-1,character:r};for(let e=this.#t.length-1;e>=0;e--)if(nn({start:i,end:i},this.#t[e]))return e}#f(){this.#o!==void 0&&(clearTimeout(this.#o),this.#o=void 0),this.#c=void 0}#p(){this.#s!==void 0&&(clearTimeout(this.#s),this.#s=void 0)}#m(e){if(e===this.#l||e===this.#c){this.#p();return}if(this.#f(),this.#p(),this.#r!==void 0){this.#y(e);return}this.#c=e,this.#o=setTimeout(()=>{this.#o=void 0,this.#c=void 0,this.#y(e)},qn)}#h(){this.#u||(this.#p(),this.#s=setTimeout(()=>{this.#s=void 0,this.#u||this.removePopover()},Jn))}#g(e,t,n,r,i=this.#e.popoverManager.getPlacementBounds()){_t(e,{gutterWidth:this.#e.getGutterWidth(),placeAbove:r,viewport:i,x:t,y:n})}#_(e,t,n){let{getCharX:r,getLineY:i,getLineHeight:a,popoverManager:o}=this.#e,[s,c]=r(t,n),l=a(),u=i(t)+c*l,d=e.offsetHeight,f={top:u+l,bottom:u+l+d},p={top:u-d,bottom:u},m=t>=this.#n-3,h=o.getPlacementBounds(),g=o.choosePlacement({preferred:f,fallback:p,viewport:h,popoverHeight:d,atDocumentEdge:m,placementKey:Yn})===`fallback`;this.#g(e,s,g?u:u+l,g,h)}#v(){this.#i?.forEach(e=>e()),this.#i=void 0,this.#r?.remove(),this.#r=void 0,this.#l=void 0,this.#u=!1,this.#e.popoverManager.resetPlacement(Yn)}#y(e){if(e===this.#l)return;let t=this.#e.getOverlayElement();if(e>=this.#t.length||t==null)return;let{start:n,message:r,severity:i}=this.#t[e],{line:a,character:o}=n,s=this.#r;if(this.#e.popoverManager.resetPlacement(Yn),s!==void 0){Qn(s,i);let t=s.firstElementChild;t?.dataset.markerMessage!==void 0&&(typeof r==`string`?t.textContent=r:r instanceof HTMLElement?t.replaceChildren(r):t.innerHTML=r.html),this.#_(s,a,o),this.#l=e;return}this.#r=H(`div`,{dataset:{editorWidget:``,markerPopover:``,[$n(i)]:``},children:[H(`div`,{dataset:`markerMessage`,...typeof r==`string`?{textContent:r}:r instanceof HTMLElement?{children:[r]}:{innerHTML:r.html}})]},t),this.#_(this.#r,a,o),this.#l=e,this.#i=[U(this.#r,`mouseenter`,()=>{this.#u=!0,this.#p()}),U(this.#r,`mouseleave`,()=>{this.#u=!1,this.#h()})]}},Zn=[`error`,`warning`,`info`,`hint`];function Qn(e,t){for(let t of Zn)delete e.dataset[$n(t)];e.dataset[$n(t)]=``}function $n(e){switch(e){case`error`:return`markerError`;case`warning`:return`markerWarning`;case`info`:return`markerInfo`;case`hint`:return`markerHint`}}function er(e){return{...e,oldFile:e.oldFile==null?null:{...e.oldFile,lines:[...e.oldFile.lines]},hunks:F(e.hunks)}}var tr=`::selection {
12
12
  background-color: #0000;
13
13
  }
14
14
 
@@ -532,8 +532,8 @@ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Z as t,mo as n,nt as r
532
532
  background-color: var(--diffs-widget-fg);
533
533
  }
534
534
  }
535
- `,rr=350,ir=150,ar=512,or=662,sr=131072,X=6144,cr=1e3,lr=8,ur=3,dr=[11,ur],Z=new TextEncoder;function fr(e){let t=[0];for(let n=0;n<e.length;n++)e.charCodeAt(n)===13&&e.charCodeAt(n+1)===10&&n++,(e.charCodeAt(n)===10||e.charCodeAt(n)===13)&&t.push(n+1);return t}function pr(e,t){return e.length===0?0:t.at(-1)===e.length?t.length-1:t.length}function Q(e,t,n){let r=t[n+1];return r===void 0?e.length:r-(e.charCodeAt(r-1)===10&&e.charCodeAt(r-2)===13?2:1)}function mr(e,t,n,r,i,a){let o=t[n],s=i[a],c=Q(e,t,n)-o;if(c!==Q(r,i,a)-s)return!1;for(let t=0;t<c;t++)if(e.charCodeAt(o+t)!==r.charCodeAt(s+t))return!1;return!0}function hr(e,t,n,r){let i=pr(e,t),a=pr(n,r),o=0;for(;o<i&&o<a&&mr(e,t,o,n,r,o);)o++;let s=0;for(;s<i-o&&s<a-o&&mr(e,t,i-1-s,n,r,a-1-s);)s++;return{oldLineCount:i,newLineCount:a,prefixLines:o,suffixLines:s}}function gr(e,t,n,r=0){if(t===n)return;let i=fr(t),a=fr(n),o=hr(t,i,n,a);if(o.prefixLines===o.oldLineCount&&o.prefixLines===o.newLineCount)return;let s=o.oldLineCount-o.suffixLines,c=o.newLineCount-o.suffixLines,l=t.slice(i[o.prefixLines]??t.length,i[s]??t.length),u=n.slice(a[o.prefixLines]??n.length,a[c]??n.length);if(Z.encode(l).byteLength>X||Z.encode(u).byteLength>X)return;let d=Math.max(0,o.prefixLines-ur),f=Math.min(o.oldLineCount,s+ur),p=Math.min(o.newLineCount,c+ur),m=f-d,h=p-d,g=d+r,_=[`--- a/${e}`,`+++ b/${e}`,`@@ -${m===0?g:g+1},${m} +${h===0?g:g+1},${h} @@`];for(let e=d;e<o.prefixLines;e++)_.push(` ${t.slice(i[e],Q(t,i,e))}`);for(let e=o.prefixLines;e<s;e++)_.push(`-${t.slice(i[e],Q(t,i,e))}`);for(let e=o.prefixLines;e<c;e++)_.push(`+${n.slice(a[e],Q(n,a,e))}`);for(let e=s;e<f;e++)_.push(` ${t.slice(i[e],Q(t,i,e))}`);let v=_.join(`
536
- `);return Z.encode(v).byteLength<=X?{hunk:v,bounds:o}:void 0}function _r(e,t,n){let r=[],i=0;for(let a of n){let n=a.start-t,o=a.end-t;if(n<i||o<n||o>e.length)return;r.push(e.slice(i,n),a.text),i=o}return r.push(e.slice(i)),r.join(``)}function vr(e,t){let n=t.inverseEdits;if(n.length===0)return;let r=n[0].start,i=n[0].end;for(let e=1;e<n.length;e++)r=Math.min(r,n[e].start),i=Math.max(i,n[e].end);let[a,o]=e.positionsAt([r,i]);for(let t of dr){let r=Math.max(0,a.line-t),i=Math.min(e.lineCount-1,o.line+t),s=e.offsetAt({line:r,character:0}),c=i+1<e.lineCount?e.offsetAt({line:i+1,character:0}):e.offsetAt({line:i,character:e.getLineLength(i)});if(c-s>X)continue;let l=e.getTextSlice(s,c);if(Z.encode(l).byteLength>X)continue;let u=_r(l,s,n);if(!(u===void 0||u.length>X||Z.encode(u).byteLength>X))return{beforeText:u,afterText:l,startOffset:s,startLine:r,bounds:hr(u,fr(u),l,fr(l))}}}function yr(e,t,n,r,i,a=Date.now()){let o=e.slice(-10),s=vr(n,r);if(s===void 0){let e=o.at(-1);return e?.fragment!==void 0&&(o[o.length-1]={...e,fragment:void 0}),o}if(s.beforeText===s.afterText)return o;let c=s.startLine+s.bounds.prefixLines,l=s.startLine+s.bounds.oldLineCount-s.bounds.suffixLines,u=o.at(-1),d=u!==void 0&&c>u.end?c-u.end:u!==void 0&&u.start>l?u.start-l:0;if(u!==void 0&&u.fragment!==void 0&&u.path===t&&u.source===i&&a-u.at<cr&&d<=lr){let e=u.fragment,n=s.startOffset+s.beforeText.length,c=Math.max(e.currentStart,s.startOffset),l=Math.min(e.currentEnd,n);if(c<=l&&e.currentText.slice(c-e.currentStart,l-e.currentStart)===s.beforeText.slice(c-s.startOffset,l-s.startOffset)){let c=Math.min(e.currentStart,s.startOffset),l=e.currentStart<=s.startOffset?e.currentText+s.beforeText.slice(Math.max(0,e.currentEnd-s.startOffset)):s.beforeText+e.currentText.slice(Math.max(0,n-e.currentStart)),u=l.slice(0,e.currentStart-c),d=l.slice(e.currentEnd-c),f=u+e.baseText+d,p=_r(l,c,r.appliedEdits),m=e.currentStart<=s.startOffset?e.startLine:s.startLine;if(p!==void 0&&f.length<=X&&p.length<=X&&Z.encode(f).byteLength<=X&&Z.encode(p).byteLength<=X){if(f===p)return o.pop(),o;let e=gr(t,f,p,m);if(e!==void 0)return o[o.length-1]={path:t,hunk:e.hunk,start:m+e.bounds.prefixLines,end:m+e.bounds.newLineCount-e.bounds.suffixLines,at:a,source:i,fragment:{baseText:f,currentText:p,currentStart:c,currentEnd:c+p.length,startLine:m}},o}}}let f=o.at(-1);f?.fragment!==void 0&&(o[o.length-1]={...f,fragment:void 0});let p=gr(t,s.beforeText,s.afterText,s.startLine);return p===void 0?o:(o.push({path:t,hunk:p.hunk,start:c,end:s.startLine+s.bounds.newLineCount-s.bounds.suffixLines,at:a,source:i,fragment:{baseText:s.beforeText,currentText:s.afterText,currentStart:s.startOffset,currentEnd:s.startOffset+s.afterText.length,startLine:s.startLine}}),o.slice(-10))}function br(e,t,n,r,i,a){for(;a>0&&(r>0||i<e-1);){let o=!1;if(r>0&&n(r-1)){let e=t(r-1);e<=a&&(r--,a-=e,o=!0)}if(i<e-1&&n(i+1)){let e=t(i+1);e<=a&&(i++,a-=e,o=!0)}if(!o)break}return{first:r,last:i}}function xr(e,t,n,r,i){if(t.lineCount<=0)return;let a=t.lineCount-1,o=t.offsetAt({line:a,character:t.getLineLength(a)}),s=Math.max(0,Math.min(Number.isFinite(n)?Math.trunc(n):0,o)),c=t.charAt(s-1).charCodeAt(0),l=t.charAt(s).charCodeAt(0);s>0&&s<o&&(c===13&&l===10||c>=55296&&c<=56319&&l>=56320&&l<=57343)&&s--;let u=t.positionAt(s).line,d=new Map,f=e=>{if(e<0||e>=t.lineCount)return!1;let n=d.get(e);return n??(n=i(e),d.set(e,n)),n};if(!f(u))return;let p=new Map,m=e=>{let n=p.get(e);if(n!==void 0)return n;let r=t.getLineLength(e);if(Math.floor(r/3)>or)return p.set(e,663),663;let i=Math.max(1,Math.floor(Z.encode(t.getLineText(e)).byteLength/3));return p.set(e,i),i},h=u,g=u,_=Math.max(0,Math.floor(rr*3/4)-m(u));for(;_>0&&(f(h-1)||f(g+1));){if(f(g+1)){let e=m(g+1);if(e>_)break;g++,_-=e}if(f(h-1)&&_>0){let e=m(h-1);if(e>_)break;h--,_-=e}}_+=88,{first:h,last:g}=br(t.lineCount,m,f,h,g,_);let v=h,y=g;({first:v,last:y}=br(t.lineCount,m,()=>!0,v,y,ir));let b=0;for(let e=h;e<=g;e++)b+=m(e);let x=0;for(let e=v;e<=y;e++)x+=m(e);if(b>ar||x>or)return;let S=t.offsetAt({line:v,character:0}),C=t.offsetAt({line:y,character:t.getLineLength(y)}),w=t.getTextSlice(S,C),T={path:e,version:t.version,eol:t.eol,excerptText:w,excerptStartLine:v,cursorOffsetInExcerpt:s-S,editableRange:{start:t.offsetAt({line:h,character:0})-S,end:t.offsetAt({line:g,character:t.getLineLength(g)})-S},editHistory:r.slice(-10).map(({hunk:e,source:t})=>({diff:e,source:t}))};return Z.encode(JSON.stringify(T)).byteLength<=sr?T:void 0}function Sr(e,t){if(typeof t!=`string`)return new RegExp(t.source,t.flags).test(e);t=t.replaceAll(`\\`,`/`);let n=`^`;for(let e=0;e<t.length;e++){let r=t[e];r===`*`?t[e+1]===`*`?(e++,t[e+1]===`/`?(e++,n+=`(?:.*/)?`):n+=`.*`):n+=`[^/]*`:n+=r===`?`?`[^/]`:/[\\^$.*+?()[\]{}|]/.test(r)?`\\${r}`:r}return RegExp(`${n}$`).test(e)}var Cr=`//`,wr=[`/*`,`*/`],Tr={sql:{lineComment:`--`},ruby:{lineComment:`#`,blockComment:[`=begin`,`=end`]},rst:{lineComment:`..`},coffeescript:{lineComment:`#`,blockComment:[`###`,`###`]},cmd:{lineComment:`@REM`},julia:{lineComment:`#`,blockComment:[`#=`,`=#`]},yaml:{lineComment:`#`},yml:{lineComment:`#`},markdown:{lineComment:null,blockComment:[`<!--`,`-->`]},zsh:{lineComment:`#`},makefile:{lineComment:`#`},handlebars:{lineComment:null,blockComment:[`{{!--`,`--}}`]},ini:{lineComment:`;`,blockComment:[`;`,` `]},powershell:{lineComment:`#`,blockComment:[`<#`,`#>`]},vb:{lineComment:`'`},xml:{lineComment:null,blockComment:[`<!--`,`-->`]},lua:{lineComment:`--`,blockComment:[`--[[`,`]]`]},html:{lineComment:null,blockComment:[`<!--`,`-->`]},diff:{lineComment:`#`,blockComment:[`#`,` `]},r:{lineComment:`#`},fsharp:{blockComment:[`(*`,`*)`]},pug:{lineComment:`//-`},perl:{lineComment:`#`},tex:{lineComment:`%`},clojure:{lineComment:`;;`},css:{lineComment:null},python:{lineComment:`#`,blockComment:[`"""`,`"""`]},dotenv:{lineComment:`#`},dockerfile:{lineComment:`#`},razor:{lineComment:null,blockComment:[`<!--`,`-->`]},prompt:{lineComment:null,blockComment:[`<!--`,`-->`]}};function Er(e,t){let n={...Tr[e],...t?.[e]};return{lineComment:n.lineComment===void 0?Cr:n.lineComment,blockComment:n.blockComment??wr}}function Dr(e,t,n){let r=[],i=new Set;for(let a of t){let t=a.end.line;a.start.line<t&&a.end.character===0&&t--;let o=r.length,s=1/0;for(let o=a.start.line;o<=t;o++){if(i.has(o))continue;i.add(o);let t=e.getLineText(o),a=t.length-t.trimStart().length,c=a===t.length;c||(s=Math.min(s,a)),r.push({line:o,comment:t.slice(a,a+n.length)===n?a:-1,empty:c,indent:a,single:!1})}if(s!==1/0)for(let e=o;e<r.length;e++)r[e].empty||(r[e].indent=s);r.length===o+1&&(r[o].single=!0)}let a=r.some(e=>e.comment<0&&(!e.empty||e.single)),o=[];if(a){for(let e of r){if(e.empty&&!e.single)continue;let t={line:e.line,character:e.indent};o.push({range:{start:t,end:t},newText:n+` `})}return o}for(let t of r){if(t.comment<0)continue;let r=e.getLineText(t.line),i=t.comment,a=i+n.length+ +(r[i+n.length]===` `);o.push({range:{start:{line:t.line,character:i},end:{line:t.line,character:a}},newText:``})}return o}var Or=50;function kr(e,t,n,r,i){let a=Math.max(0,r-Or),o=e.getTextSlice(a,r),s=e.getTextSlice(i,i+Or),c=o.length-o.trimEnd().length,l=s.length-s.trimStart().length,u=o.length-c;if(o.slice(u-t.length,u)===t&&s.slice(l,l+n.length)===n)return{open:{start:r-c-t.length,end:r-c+ +(c>0),text:``},close:{start:i+l-+(l>0),end:i+l+n.length,text:``},contentStart:r,contentEnd:i};let d=i-r<=100?e.getTextSlice(r,i):void 0,f=d??e.getTextSlice(r,r+Or),p=d??e.getTextSlice(i-Or,i),m=f.length-f.trimStart().length,h=i-(p.length-p.trimEnd().length)-n.length;if(f.slice(m,m+t.length)!==t||e.getTextSlice(h,h+n.length)!==n)return;let g=r+m,_=g+t.length+ +!!/\s/.test(f[t.length+m]??``),v=h-+!!/\s/.test(e.getTextSlice(h-1,h));return{open:{start:g,end:_,text:``},close:{start:v,end:h+n.length,text:``},contentStart:_,contentEnd:v}}function Ar(e,t,n,r){let i=0,a=t.length;for(;i<a;){let n=i+a>>>1;t[n].end<e?i=n+1:a=n}let o=n[i];for(let n=i;n<t.length;n++){let i=t[n];if(e<i.start)break;if(i.start===i.end&&e===i.start){if(r<0)break;o+=i.text.length;continue}if(e>i.end){o+=i.text.length-(i.end-i.start);continue}return e===i.end?i.start+o+i.text.length:i.start+o+(r>0?i.text.length:0)}return e+o}function jr(e,t,[n,r],i=!1){let a=t.map(t=>{let{start:n,end:r}=t;if(i){let t=r.line;n.line<t&&r.character===0&&t--;let i=e.getLineText(n.line),a=i.length-i.trimStart().length;n={line:n.line,character:a},r={line:t,character:e.getLineLength(t)}}return{from:e.offsetAt(n),to:e.offsetAt(r),direction:t.direction,comment:void 0}});if(i&&a.length>1){a.sort((e,t)=>{let n=e.from-t.from;return n===0?e.to-t.to:n});let e=0;for(let t=1;t<a.length;t++){let n=a[e],r=a[t];r.from<=n.to?n.to=Math.max(n.to,r.to):a[++e]=r}a.length=e+1}for(let t of a)t.comment=kr(e,n,r,t.from,t.to);let o=a.every(e=>e.comment!==void 0),s=[];for(let e of a){let t=e.comment;if(o&&t!==void 0){s.push(t.open,t.close);continue}if(t===void 0){if(e.from===e.to){s.push({start:e.from,end:e.to,text:n+` `+r});continue}s.push({start:e.from,end:e.from,text:n+` `},{start:e.to,end:e.to,text:` `+r})}}if(s.length===0)return;s.sort((e,t)=>{let n=e.start-t.start;return n===0?e.end-t.end:n});let c=s.map(t=>({range:{start:e.positionAt(t.start),end:e.positionAt(t.end)},newText:t.text}));if(i)return{edits:c,nextSelectionOffsets:[]};let l=a.map(e=>{let t=e.comment;return o&&t!==void 0?{start:t.contentStart,end:t.contentEnd,startAssociation:1,endAssociation:-1}:t===void 0?e.from===e.to?{start:e.from,end:e.to,startAssociation:-1,endAssociation:-1,collapsedInset:n.length+1}:{start:e.from,end:e.to,startAssociation:1,endAssociation:-1}:{start:e.from,end:e.to,startAssociation:1,endAssociation:1}}),u=Array(s.length+1);u[0]=0;for(let e=0;e<s.length;e++){let t=s[e];u[e+1]=u[e]+t.text.length-(t.end-t.start)}return{edits:c,nextSelectionOffsets:l.map((e,t)=>{let n=Ar(e.start,s,u,e.startAssociation)+(e.collapsedInset??0);return[n,e.collapsedInset===void 0?Ar(e.end,s,u,e.endAssociation):n,a[t].direction]})}}var Mr=new Map([[`(`,`)`],[`[`,`]`],[`{`,`}`]]),Nr=new Map([...Mr].map(([e,t])=>[t,e])),Pr=1e3,Fr=5e4;function Ir(e,t,n){let r=Lr(e,t,e.normalizePosition(n));if(r===void 0)return;let i=Mr.get(r.char),a=Nr.get(r.char);if(i!==void 0)return Kr(r,Br(e,t,r,i));if(a!==void 0)return Kr(Vr(e,t,r,a),r)}function Lr(e,t,n){let r=Rr(n);if(r!==void 0){let n=zr(e,t,r);if(n!==void 0)return n}return zr(e,t,n)}function Rr(e){if(e.character>0)return{line:e.line,character:e.character-1}}function zr(e,t,n){let r=e.getLineText(n.line)[n.character];if(!(r===void 0||!Mr.has(r)&&!Nr.has(r)||Hr(t,n)))return{...n,char:r}}function Br(e,t,n,r){let i=0,a=0,o=0;for(let s=n.line;s<e.lineCount;s++){if(a>=Pr)return;a++;let c=e.getLineText(s),l=t.getStringCommentRegexpRangesInLine(s),u={index:0},d=s===n.line?n.character:0;for(let e=d;e<c.length;e++){if(o>=Fr)return;if(o++,Wr(l,e,u))continue;let t=c[e];if(t===n.char)i++;else if(t===r&&(i--,i===0))return{line:s,character:e,char:t}}}}function Vr(e,t,n,r){let i=0,a=0,o=0;for(let s=n.line;s>=0;s--){if(a>=Pr)return;a++;let c=e.getLineText(s),l=t.getStringCommentRegexpRangesInLine(s),u={index:l===null?-1:l.length-1},d=s===n.line?n.character:c.length-1;for(let e=d;e>=0;e--){if(o>=Fr)return;if(o++,Gr(l,e,u))continue;let t=c[e];if(t===n.char)i++;else if(t===r&&(i--,i===0))return{line:s,character:e,char:t}}}}function Hr(e,t){return Ur(e.getStringCommentRegexpRangesInLine(t.line),t.character)}function Ur(e,t){if(e===null)return!1;for(let[n,r]of e){if(t<n)return!1;if(t<r)return!0}return!1}function Wr(e,t,n){if(e===null)return!1;for(;n.index<e.length&&t>=e[n.index][1];)n.index++;let r=e[n.index];return r!==void 0&&t>=r[0]}function Gr(e,t,n){if(e===null)return!1;for(;n.index>=0&&t<e[n.index][0];)n.index--;let r=e[n.index];return r!==void 0&&t<r[1]}function Kr(e,t){if(e!==void 0&&t!==void 0)return[qr(e),qr(t)]}function qr(e){return{start:{line:e.line,character:e.character},end:{line:e.line,character:e.character+1}}}var Jr=`<svg data-icon-sprite aria-hidden="true" width="0" height="0">
535
+ `,nr=350,rr=150,ir=512,ar=662,or=131072,Z=6144,sr=1e3,cr=8,lr=3,ur=[11,lr],Q=new TextEncoder;function dr(e){let t=[0];for(let n=0;n<e.length;n++)e.charCodeAt(n)===13&&e.charCodeAt(n+1)===10&&n++,(e.charCodeAt(n)===10||e.charCodeAt(n)===13)&&t.push(n+1);return t}function fr(e,t){return e.length===0?0:t.at(-1)===e.length?t.length-1:t.length}function pr(e,t,n){let r=t[n+1];return r===void 0?e.length:r-(e.charCodeAt(r-1)===10&&e.charCodeAt(r-2)===13?2:1)}function mr(e,t,n,r,i,a){let o=t[n],s=i[a],c=pr(e,t,n)-o;if(c!==pr(r,i,a)-s)return!1;for(let t=0;t<c;t++)if(e.charCodeAt(o+t)!==r.charCodeAt(s+t))return!1;return!0}function hr(e,t,n,r){let i=fr(e,t),a=fr(n,r),o=0;for(;o<i&&o<a&&mr(e,t,o,n,r,o);)o++;let s=0;for(;s<i-o&&s<a-o&&mr(e,t,i-1-s,n,r,a-1-s);)s++;return{oldLineCount:i,newLineCount:a,prefixLines:o,suffixLines:s}}function gr(e,t,n,r=0){if(t===n)return;let i=dr(t),a=dr(n),o=hr(t,i,n,a);if(o.prefixLines===o.oldLineCount&&o.prefixLines===o.newLineCount)return;let s=o.oldLineCount-o.suffixLines,c=o.newLineCount-o.suffixLines,l=t.slice(i[o.prefixLines]??t.length,i[s]??t.length),u=n.slice(a[o.prefixLines]??n.length,a[c]??n.length);if(Q.encode(l).byteLength>Z||Q.encode(u).byteLength>Z)return;let d=Math.max(0,o.prefixLines-lr),f=Math.min(o.oldLineCount,s+lr),p=Math.min(o.newLineCount,c+lr),m=f-d,h=p-d,g=d+r,_=[`--- a/${e}`,`+++ b/${e}`,`@@ -${m===0?g:g+1},${m} +${h===0?g:g+1},${h} @@`];for(let e=d;e<o.prefixLines;e++)_.push(` ${t.slice(i[e],pr(t,i,e))}`);for(let e=o.prefixLines;e<s;e++)_.push(`-${t.slice(i[e],pr(t,i,e))}`);for(let e=o.prefixLines;e<c;e++)_.push(`+${n.slice(a[e],pr(n,a,e))}`);for(let e=s;e<f;e++)_.push(` ${t.slice(i[e],pr(t,i,e))}`);let v=_.join(`
536
+ `);return Q.encode(v).byteLength<=Z?{hunk:v,bounds:o}:void 0}function _r(e,t,n){let r=[],i=0;for(let a of n){let n=a.start-t,o=a.end-t;if(n<i||o<n||o>e.length)return;r.push(e.slice(i,n),a.text),i=o}return r.push(e.slice(i)),r.join(``)}function vr(e,t){let n=t.inverseEdits;if(n.length===0)return;let r=n[0].start,i=n[0].end;for(let e=1;e<n.length;e++)r=Math.min(r,n[e].start),i=Math.max(i,n[e].end);let[a,o]=e.positionsAt([r,i]);for(let t of ur){let r=Math.max(0,a.line-t),i=Math.min(e.lineCount-1,o.line+t),s=e.offsetAt({line:r,character:0}),c=i+1<e.lineCount?e.offsetAt({line:i+1,character:0}):e.offsetAt({line:i,character:e.getLineLength(i)});if(c-s>Z)continue;let l=e.getTextSlice(s,c);if(Q.encode(l).byteLength>Z)continue;let u=_r(l,s,n);if(!(u===void 0||u.length>Z||Q.encode(u).byteLength>Z))return{beforeText:u,afterText:l,startOffset:s,startLine:r,bounds:hr(u,dr(u),l,dr(l))}}}function yr(e,t,n,r,i,a=Date.now()){let o=e.slice(-10),s=vr(n,r);if(s===void 0){let e=o.at(-1);return e?.fragment!==void 0&&(o[o.length-1]={...e,fragment:void 0}),o}if(s.beforeText===s.afterText)return o;let c=s.startLine+s.bounds.prefixLines,l=s.startLine+s.bounds.oldLineCount-s.bounds.suffixLines,u=o.at(-1),d=u!==void 0&&c>u.end?c-u.end:u!==void 0&&u.start>l?u.start-l:0;if(u!==void 0&&u.fragment!==void 0&&u.path===t&&u.source===i&&a-u.at<sr&&d<=cr){let e=u.fragment,n=s.startOffset+s.beforeText.length,c=Math.max(e.currentStart,s.startOffset),l=Math.min(e.currentEnd,n);if(c<=l&&e.currentText.slice(c-e.currentStart,l-e.currentStart)===s.beforeText.slice(c-s.startOffset,l-s.startOffset)){let c=Math.min(e.currentStart,s.startOffset),l=e.currentStart<=s.startOffset?e.currentText+s.beforeText.slice(Math.max(0,e.currentEnd-s.startOffset)):s.beforeText+e.currentText.slice(Math.max(0,n-e.currentStart)),u=l.slice(0,e.currentStart-c),d=l.slice(e.currentEnd-c),f=u+e.baseText+d,p=_r(l,c,r.appliedEdits),m=e.currentStart<=s.startOffset?e.startLine:s.startLine;if(p!==void 0&&f.length<=Z&&p.length<=Z&&Q.encode(f).byteLength<=Z&&Q.encode(p).byteLength<=Z){if(f===p)return o.pop(),o;let e=gr(t,f,p,m);if(e!==void 0)return o[o.length-1]={path:t,hunk:e.hunk,start:m+e.bounds.prefixLines,end:m+e.bounds.newLineCount-e.bounds.suffixLines,at:a,source:i,fragment:{baseText:f,currentText:p,currentStart:c,currentEnd:c+p.length,startLine:m}},o}}}let f=o.at(-1);f?.fragment!==void 0&&(o[o.length-1]={...f,fragment:void 0});let p=gr(t,s.beforeText,s.afterText,s.startLine);return p===void 0?o:(o.push({path:t,hunk:p.hunk,start:c,end:s.startLine+s.bounds.newLineCount-s.bounds.suffixLines,at:a,source:i,fragment:{baseText:s.beforeText,currentText:s.afterText,currentStart:s.startOffset,currentEnd:s.startOffset+s.afterText.length,startLine:s.startLine}}),o.slice(-10))}function br(e,t,n,r,i,a){for(;a>0&&(r>0||i<e-1);){let o=!1;if(r>0&&n(r-1)){let e=t(r-1);e<=a&&(r--,a-=e,o=!0)}if(i<e-1&&n(i+1)){let e=t(i+1);e<=a&&(i++,a-=e,o=!0)}if(!o)break}return{first:r,last:i}}function xr(e,t,n,r,i){if(t.lineCount<=0)return;let a=t.lineCount-1,o=t.offsetAt({line:a,character:t.getLineLength(a)}),s=Math.max(0,Math.min(Number.isFinite(n)?Math.trunc(n):0,o)),c=t.charAt(s-1).charCodeAt(0),l=t.charAt(s).charCodeAt(0);s>0&&s<o&&(c===13&&l===10||c>=55296&&c<=56319&&l>=56320&&l<=57343)&&s--;let u=t.positionAt(s).line,d=new Map,f=e=>{if(e<0||e>=t.lineCount)return!1;let n=d.get(e);return n??(n=i(e),d.set(e,n)),n};if(!f(u))return;let p=new Map,m=e=>{let n=p.get(e);if(n!==void 0)return n;let r=t.getLineLength(e);if(Math.floor(r/3)>ar)return p.set(e,663),663;let i=Math.max(1,Math.floor(Q.encode(t.getLineText(e)).byteLength/3));return p.set(e,i),i},h=u,g=u,_=Math.max(0,Math.floor(nr*3/4)-m(u));for(;_>0&&(f(h-1)||f(g+1));){if(f(g+1)){let e=m(g+1);if(e>_)break;g++,_-=e}if(f(h-1)&&_>0){let e=m(h-1);if(e>_)break;h--,_-=e}}_+=88,{first:h,last:g}=br(t.lineCount,m,f,h,g,_);let v=h,y=g;({first:v,last:y}=br(t.lineCount,m,()=>!0,v,y,rr));let b=0;for(let e=h;e<=g;e++)b+=m(e);let x=0;for(let e=v;e<=y;e++)x+=m(e);if(b>ir||x>ar)return;let S=t.offsetAt({line:v,character:0}),C=t.offsetAt({line:y,character:t.getLineLength(y)}),w=t.getTextSlice(S,C),T={path:e,version:t.version,eol:t.eol,excerptText:w,excerptStartLine:v,cursorOffsetInExcerpt:s-S,editableRange:{start:t.offsetAt({line:h,character:0})-S,end:t.offsetAt({line:g,character:t.getLineLength(g)})-S},editHistory:r.slice(-10).map(({hunk:e,source:t})=>({diff:e,source:t}))};return Q.encode(JSON.stringify(T)).byteLength<=or?T:void 0}function Sr(e,t){if(typeof t!=`string`)return new RegExp(t.source,t.flags).test(e);t=t.replaceAll(`\\`,`/`);let n=`^`;for(let e=0;e<t.length;e++){let r=t[e];r===`*`?t[e+1]===`*`?(e++,t[e+1]===`/`?(e++,n+=`(?:.*/)?`):n+=`.*`):n+=`[^/]*`:n+=r===`?`?`[^/]`:/[\\^$.*+?()[\]{}|]/.test(r)?`\\${r}`:r}return RegExp(`${n}$`).test(e)}var Cr=`//`,wr=[`/*`,`*/`],Tr={sql:{lineComment:`--`},ruby:{lineComment:`#`,blockComment:[`=begin`,`=end`]},rst:{lineComment:`..`},coffeescript:{lineComment:`#`,blockComment:[`###`,`###`]},cmd:{lineComment:`@REM`},julia:{lineComment:`#`,blockComment:[`#=`,`=#`]},yaml:{lineComment:`#`},yml:{lineComment:`#`},markdown:{lineComment:null,blockComment:[`<!--`,`-->`]},zsh:{lineComment:`#`},makefile:{lineComment:`#`},handlebars:{lineComment:null,blockComment:[`{{!--`,`--}}`]},ini:{lineComment:`;`,blockComment:[`;`,` `]},powershell:{lineComment:`#`,blockComment:[`<#`,`#>`]},vb:{lineComment:`'`},xml:{lineComment:null,blockComment:[`<!--`,`-->`]},lua:{lineComment:`--`,blockComment:[`--[[`,`]]`]},html:{lineComment:null,blockComment:[`<!--`,`-->`]},diff:{lineComment:`#`,blockComment:[`#`,` `]},r:{lineComment:`#`},fsharp:{blockComment:[`(*`,`*)`]},pug:{lineComment:`//-`},perl:{lineComment:`#`},tex:{lineComment:`%`},clojure:{lineComment:`;;`},css:{lineComment:null},python:{lineComment:`#`,blockComment:[`"""`,`"""`]},dotenv:{lineComment:`#`},dockerfile:{lineComment:`#`},razor:{lineComment:null,blockComment:[`<!--`,`-->`]},prompt:{lineComment:null,blockComment:[`<!--`,`-->`]}};function Er(e,t){let n={...Tr[e],...t?.[e]};return{lineComment:n.lineComment===void 0?Cr:n.lineComment,blockComment:n.blockComment??wr}}function Dr(e,t,n){let r=[],i=new Set;for(let a of t){let t=a.end.line;a.start.line<t&&a.end.character===0&&t--;let o=r.length,s=1/0;for(let o=a.start.line;o<=t;o++){if(i.has(o))continue;i.add(o);let t=e.getLineText(o),a=t.length-t.trimStart().length,c=a===t.length;c||(s=Math.min(s,a)),r.push({line:o,comment:t.slice(a,a+n.length)===n?a:-1,empty:c,indent:a,single:!1})}if(s!==1/0)for(let e=o;e<r.length;e++)r[e].empty||(r[e].indent=s);r.length===o+1&&(r[o].single=!0)}let a=r.some(e=>e.comment<0&&(!e.empty||e.single)),o=[];if(a){for(let e of r){if(e.empty&&!e.single)continue;let t={line:e.line,character:e.indent};o.push({range:{start:t,end:t},newText:n+` `})}return o}for(let t of r){if(t.comment<0)continue;let r=e.getLineText(t.line),i=t.comment,a=i+n.length+ +(r[i+n.length]===` `);o.push({range:{start:{line:t.line,character:i},end:{line:t.line,character:a}},newText:``})}return o}var Or=50;function kr(e,t,n,r,i){let a=Math.max(0,r-Or),o=e.getTextSlice(a,r),s=e.getTextSlice(i,i+Or),c=o.length-o.trimEnd().length,l=s.length-s.trimStart().length,u=o.length-c;if(o.slice(u-t.length,u)===t&&s.slice(l,l+n.length)===n)return{open:{start:r-c-t.length,end:r-c+ +(c>0),text:``},close:{start:i+l-+(l>0),end:i+l+n.length,text:``},contentStart:r,contentEnd:i};let d=i-r<=100?e.getTextSlice(r,i):void 0,f=d??e.getTextSlice(r,r+Or),p=d??e.getTextSlice(i-Or,i),m=f.length-f.trimStart().length,h=i-(p.length-p.trimEnd().length)-n.length;if(f.slice(m,m+t.length)!==t||e.getTextSlice(h,h+n.length)!==n)return;let g=r+m,_=g+t.length+ +!!/\s/.test(f[t.length+m]??``),v=h-+!!/\s/.test(e.getTextSlice(h-1,h));return{open:{start:g,end:_,text:``},close:{start:v,end:h+n.length,text:``},contentStart:_,contentEnd:v}}function Ar(e,t,n,r){let i=0,a=t.length;for(;i<a;){let n=i+a>>>1;t[n].end<e?i=n+1:a=n}let o=n[i];for(let n=i;n<t.length;n++){let i=t[n];if(e<i.start)break;if(i.start===i.end&&e===i.start){if(r<0)break;o+=i.text.length;continue}if(e>i.end){o+=i.text.length-(i.end-i.start);continue}return e===i.end?i.start+o+i.text.length:i.start+o+(r>0?i.text.length:0)}return e+o}function jr(e,t,[n,r],i=!1){let a=t.map(t=>{let{start:n,end:r}=t;if(i){let t=r.line;n.line<t&&r.character===0&&t--;let i=e.getLineText(n.line),a=i.length-i.trimStart().length;n={line:n.line,character:a},r={line:t,character:e.getLineLength(t)}}return{from:e.offsetAt(n),to:e.offsetAt(r),direction:t.direction,comment:void 0}});if(i&&a.length>1){a.sort((e,t)=>{let n=e.from-t.from;return n===0?e.to-t.to:n});let e=0;for(let t=1;t<a.length;t++){let n=a[e],r=a[t];r.from<=n.to?n.to=Math.max(n.to,r.to):a[++e]=r}a.length=e+1}for(let t of a)t.comment=kr(e,n,r,t.from,t.to);let o=a.every(e=>e.comment!==void 0),s=[];for(let e of a){let t=e.comment;if(o&&t!==void 0){s.push(t.open,t.close);continue}if(t===void 0){if(e.from===e.to){s.push({start:e.from,end:e.to,text:n+` `+r});continue}s.push({start:e.from,end:e.from,text:n+` `},{start:e.to,end:e.to,text:` `+r})}}if(s.length===0)return;s.sort((e,t)=>{let n=e.start-t.start;return n===0?e.end-t.end:n});let c=s.map(t=>({range:{start:e.positionAt(t.start),end:e.positionAt(t.end)},newText:t.text}));if(i)return{edits:c,nextSelectionOffsets:[]};let l=a.map(e=>{let t=e.comment;return o&&t!==void 0?{start:t.contentStart,end:t.contentEnd,startAssociation:1,endAssociation:-1}:t===void 0?e.from===e.to?{start:e.from,end:e.to,startAssociation:-1,endAssociation:-1,collapsedInset:n.length+1}:{start:e.from,end:e.to,startAssociation:1,endAssociation:-1}:{start:e.from,end:e.to,startAssociation:1,endAssociation:1}}),u=Array(s.length+1);u[0]=0;for(let e=0;e<s.length;e++){let t=s[e];u[e+1]=u[e]+t.text.length-(t.end-t.start)}return{edits:c,nextSelectionOffsets:l.map((e,t)=>{let n=Ar(e.start,s,u,e.startAssociation)+(e.collapsedInset??0);return[n,e.collapsedInset===void 0?Ar(e.end,s,u,e.endAssociation):n,a[t].direction]})}}var Mr=new Map([[`(`,`)`],[`[`,`]`],[`{`,`}`]]),Nr=new Map([...Mr].map(([e,t])=>[t,e])),Pr=1e3,Fr=5e4;function Ir(e,t,n){let r=Lr(e,t,e.normalizePosition(n));if(r===void 0)return;let i=Mr.get(r.char),a=Nr.get(r.char);if(i!==void 0)return Kr(r,Br(e,t,r,i));if(a!==void 0)return Kr(Vr(e,t,r,a),r)}function Lr(e,t,n){let r=Rr(n);if(r!==void 0){let n=zr(e,t,r);if(n!==void 0)return n}return zr(e,t,n)}function Rr(e){if(e.character>0)return{line:e.line,character:e.character-1}}function zr(e,t,n){let r=e.getLineText(n.line)[n.character];if(!(r===void 0||!Mr.has(r)&&!Nr.has(r)||Hr(t,n)))return{...n,char:r}}function Br(e,t,n,r){let i=0,a=0,o=0;for(let s=n.line;s<e.lineCount;s++){if(a>=Pr)return;a++;let c=e.getLineText(s),l=t.getStringCommentRegexpRangesInLine(s),u={index:0},d=s===n.line?n.character:0;for(let e=d;e<c.length;e++){if(o>=Fr)return;if(o++,Wr(l,e,u))continue;let t=c[e];if(t===n.char)i++;else if(t===r&&(i--,i===0))return{line:s,character:e,char:t}}}}function Vr(e,t,n,r){let i=0,a=0,o=0;for(let s=n.line;s>=0;s--){if(a>=Pr)return;a++;let c=e.getLineText(s),l=t.getStringCommentRegexpRangesInLine(s),u={index:l===null?-1:l.length-1},d=s===n.line?n.character:c.length-1;for(let e=d;e>=0;e--){if(o>=Fr)return;if(o++,Gr(l,e,u))continue;let t=c[e];if(t===n.char)i++;else if(t===r&&(i--,i===0))return{line:s,character:e,char:t}}}}function Hr(e,t){return Ur(e.getStringCommentRegexpRangesInLine(t.line),t.character)}function Ur(e,t){if(e===null)return!1;for(let[n,r]of e){if(t<n)return!1;if(t<r)return!0}return!1}function Wr(e,t,n){if(e===null)return!1;for(;n.index<e.length&&t>=e[n.index][1];)n.index++;let r=e[n.index];return r!==void 0&&t>=r[0]}function Gr(e,t,n){if(e===null)return!1;for(;n.index>=0&&t<e[n.index][0];)n.index--;let r=e[n.index];return r!==void 0&&t<r[1]}function Kr(e,t){if(e!==void 0&&t!==void 0)return[qr(e),qr(t)]}function qr(e){return{start:{line:e.line,character:e.character},end:{line:e.line,character:e.character+1}}}var Jr=`<svg data-icon-sprite aria-hidden="true" width="0" height="0">
537
537
  <symbol id="diffs-editor-icon-close" viewBox="0 0 16 16">
538
538
  <path fill="currentColor" d="M3.21967 3.21967C3.51256 2.92678 3.98744 2.92678 4.28033 3.21967L8 6.93934L11.7197 3.21967C12.0126 2.92678 12.4874 2.92678 12.7803 3.21967C13.0732 3.51256 13.0732 3.98744 12.7803 4.28033L9.06066 8L12.7803 11.7197C13.0732 12.0126 13.0732 12.4874 12.7803 12.7803C12.4874 13.0732 12.0126 13.0732 11.7197 12.7803L8 9.06066L4.28033 12.7803C3.98744 13.0732 3.51256 13.0732 3.21967 12.7803C2.92678 12.4874 2.92678 12.0126 3.21967 11.7197L6.93934 8L3.21967 4.28033C2.92678 3.98744 2.92678 3.51256 3.21967 3.21967Z"></path>
539
539
  </symbol>
@@ -564,7 +564,7 @@ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Z as t,mo as n,nt as r
564
564
  </symbol>
565
565
  </svg>`,Yr=()=>{let e=document.createElement(`div`);e.innerHTML=Jr;let t=e.firstElementChild;if(t===null||!(t instanceof SVGSVGElement))throw Error(`Failed to create sprite element`);return t},Xr=(e,t=16)=>`<svg width="${t}" height="${t}" aria-hidden="true" focusable="false">
566
566
  <use href="#diffs-editor-icon-${e}"></use>
567
- </svg>`,Zr=class{#e;#t;#n;#r;#i;#a;constructor(e){let{textDocument:t,containerElement:n,defaultQuery:r,mode:i=`find`,initialMatch:a,scrollToMatch:o,applyReplace:s,onUpdate:c,onClose:l}=e,u={text:r,replaceText:``,caseSensitive:!1,wholeWord:!1,regex:!1},d={all:[],current:void 0},f=z(`div`,{dataset:{matches:``,noMatches:``},textContent:`No results`}),p=e=>{d.all=u.text===``?[]:t.search(u);let n=d.all.length===0;if(ie.disabled=n,ae.disabled=n,n){f.textContent=`No results`,f.dataset.noMatches=``,d.current=void 0,c([]);return}if(delete f.dataset.noMatches,e?.syncSelection===!1){let e=c(d.all,{syncSelection:!1});m(e);return}m(c(d.all))};this.#n=p;let m=e=>{if(e===void 0)f.textContent=`${d.all.length} results`;else{let[t,n]=e,r=d.all.findIndex(e=>e[0]===t&&e[1]===n);f.textContent=`${r+1} of ${d.all.length}`}d.current=e},h=(e,t)=>{u[e]=t,p()},g=(e=!1,t=!1)=>{let n=d.all,r=n[0];if(n.length>0){if(e){let e=d.current?.[0]??0;r=n.at(-1);for(let t of n)if(t[1]<=e)r=t;else break}else{let e=d.current?.[1]??0;for(let t of n)if(t[0]>=e){r=t;break}}}r!==void 0&&(m(r),o(r,t)),d.current=r};this.#i=e=>g(e,!0);let _=(e,n)=>({start:e,end:n,text:He(e=>t.positionAt(e),e=>t.offsetAt(e),e=>t.getLineText(e),u,e,n)}),v=()=>{if(u.text===``||d.all.length===0)return;let e=d.current;if(e===void 0&&(g(!1,!0),e=d.current,e===void 0))return;let[t,n]=e,r=_(t,n);s([r]),o([t+r.text.length,t+r.text.length],!0),d.current=void 0,p()},y=()=>{u.text!==``&&d.all.length!==0&&(s(d.all.map(([e,t])=>_(e,t))),d.current=void 0,p())},b=()=>{this.cleanup(),l()};this.#a=b;let x=e=>z(`button`,{type:`button`,title:e.label,ariaLabel:e.label,dataset:{searchIcon:``,...e.dataset},innerHTML:Xr(e.icon,e.size??16),onclick:e.onClick}),S=(e,t,n)=>{let r=x({icon:e,label:t,size:14,onClick:()=>{let e=!u[n];r.ariaPressed=String(e),h(n,e)}});return r.ariaPressed=String(u[n]),r},C=S(`case`,`Match Case`,`caseSensitive`),w=S(`whole-word`,`Whole Word`,`wholeWord`),T=S(`regex`,`Regexp`,`regex`),ee=z(`input`,{type:`text`,placeholder:`Replace`,dataset:`replace`,value:``,oninput:e=>{u.replaceText=e.target.value},onkeydown:e=>{if(e.isComposing||e.keyCode===229)return;let t=lt(e);e.key===`Escape`?(e.preventDefault(),b()):e.key===`Enter`?(e.preventDefault(),v()):t!==void 0&&(e.preventDefault(),g(t===`previous`,!0))}});this.#t=z(`input`,{type:`text`,placeholder:`Search`,dataset:`search`,value:r,oninput:e=>{u.text=e.target.value,d.current=void 0,p()},onkeydown:e=>{if(e.isComposing||e.keyCode===229)return;let t=lt(e);e.key===`Escape`?(e.preventDefault(),b()):e.key===`Enter`?(e.preventDefault(),g(e.shiftKey,!0)):t===void 0?nt(e)&&(e.key===`f`||e.code===`KeyF`)&&(e.preventDefault(),O(e.altKey?`replace`:`find`)):(e.preventDefault(),g(t===`previous`,!0))}});let te=z(`div`,{dataset:`searchToggles`,children:[C,w,T]}),ne=z(`div`,{dataset:{inputBox:``,find:``},children:[this.#t,te]}),re=z(`div`,{dataset:{inputBox:``,replace:``,replaceCell:``},children:[ee]}),E=z(`div`,{dataset:{replaceActions:``,replaceCell:``},children:[x({icon:`replace`,label:`Replace`,onClick:v}),x({icon:`replace-all`,label:`Replace All`,onClick:y})]}),ie=x({icon:`arrow-up`,label:`Previous`,onClick:()=>{g(!0)}}),ae=x({icon:`arrow-down`,label:`Next`,onClick:()=>{g()}});ie.disabled=!0,ae.disabled=!0;let oe=z(`div`,{dataset:`searchNav`,children:[ie,ae]}),D=x({icon:`close`,label:`Close`,onClick:b,dataset:{searchClose:``}}),se=z(`div`,{dataset:{searchGrid:``,mode:i},children:[ne,re,E,f,oe,D]}),O=e=>{se.dataset.mode=e,this.#t.focus(),this.#t.select()};this.#r=O,this.#e=z(`div`,{dataset:`searchPanel`,children:[z(`div`,{dataset:`editorWidget`,children:[se]})]}),d.current=a,n.before(this.#e),requestAnimationFrame(()=>{a===void 0?c([]):p(),this.#t.select()})}focus(){this.#t.focus()}navigate(e){this.#i?.(e)}updateMatches(e){this.#n?.(e)}setMode(e){this.#r?.(e)}close(){this.#a?.()}cleanup(){this.#e.remove()}},Qr=class{#e;#t;#n;constructor(e,t,n){this.#e=z(`div`,{dataset:{editorWidget:``,selectionActionPopover:``},contentEditable:`false`,children:[e]},t),this.#t=this.#e.offsetHeight,this.#n=new ResizeObserver(()=>{let e=this.#e.offsetHeight;e!==this.#t&&(this.#t=e,n())}),this.#n.observe(this.#e)}reposition(e,t,n,r,i,a){this.#e.style.visibility=i?``:`hidden`,yt(this.#e,{gutterWidth:n,placeAbove:r,viewport:a,x:e,y:t})}get height(){return this.#t}cleanup(){this.#n.disconnect(),this.#e.remove()}},$r=4096,ei=/\p{Mark}/u,ti=class{#e;#t;#n;#r=new Map;ch=-1;tabSize=2;lineHeight=20;paddingTop=0;init(e){if(this.#e===e&&this.#t!==void 0&&this.ch!==-1)return;if(this.#e=e,this.#t??=document.createElement(`canvas`).getContext(`2d`)??void 0,this.#t===void 0)throw Error(`Could not get canvas context`);let t=e.parentElement;if(t!==null){let{paddingTop:e}=getComputedStyle(t);e.endsWith(`px`)&&(this.paddingTop=parseFloat(e.slice(0,-2)))}let{fontSize:n,fontFamily:r,tabSize:i,lineHeight:a}=getComputedStyle(e);a.endsWith(`px`)?this.lineHeight=parseFloat(a.slice(0,-2)):n.endsWith(`px`)&&(this.lineHeight=H(parseFloat(n.slice(0,-2))*parseFloat(a)));let o=n+` `+r;(this.#n!==o||this.ch===-1)&&(this.#n=o,this.#t.font=o,this.ch=this.canvasMeasureTextWidth(`0`),this.clearTextWidthCache());let s=parseInt(i,10);Number.isNaN(s)||(this.tabSize=s)}remeasureCharacterWidth(){if(this.#t===void 0||this.#n===void 0)return!1;this.#t.font=this.#n;let e=this.canvasMeasureTextWidth(`0`),t=e!==this.ch;t&&(this.ch=e);let n=this.#a();return t||n}measureTextWidth(e){if(!e.includes(` `))return this.#i(e);if(this.#t===void 0)throw Error(`Metrics not initialized`);let t=ai(e,this.tabSize);if(t!==-1)return t*this.ch;let n=0,r=0,i=this.tabSize*this.ch;for(let t=0;t<e.length;t++)if(e.charCodeAt(t)===9){if(t>r&&(n+=this.#i(e.slice(r,t))),i>0){let e=n%i;n+=e===0?i:i-e}r=t+1}return r<e.length&&(n+=this.#i(e.slice(r))),H(n)}segmentTextWidth(e,t,n){if(n<=t)return 0;let r=e.slice(t,n),i=ai(r,this.tabSize);return i===-1?this.measureTextWidth(r):i*this.ch}#i(e){return ni(e)?this.domMeasureTextWidth(e):this.canvasMeasureTextWidth(e)}canvasMeasureTextWidth(e){if(this.#t===void 0)throw Error(`Metrics not initialized`);return H(this.#t.measureText(e).width)}domMeasureTextWidth(e){if(this.#e===void 0)throw Error(`Metrics not initialized`);let t=e+`|`+this.#n,n=this.#r.get(t);if(n!==void 0)return n;let r=z(`span`,{style:{position:`absolute`,top:`0`,left:`0`,visibility:`hidden`,pointerEvents:`none`,whiteSpace:`pre`,font:`inherit`},textContent:e},this.#e),i;try{i=H(r.getBoundingClientRect().width)}finally{r.remove()}if(this.#r.size>=$r){let e=this.#r.keys().next().value;e!==void 0&&this.#r.delete(e)}return this.#r.set(t,i),i}clearTextWidthCache(){this.#a()}#a(){let e=this.#r.size>0;return this.#r.clear(),e}};function ni(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n>=55296&&n<=57343||n===8205||n===65038||n===65039||n>127&&ei.test(e.charAt(t)))return!0}return!1}function ri(e,t){let n=Math.max(0,Math.min(t,e.length));if(n===0||n===e.length||!ni(e))return n;let r=U();if(r!==void 0){for(let t of r.segment(e)){let e=t.index,r=e+t.segment.length;if(n>e&&n<r)return r;if(n<=e)break}return n}let i=0;for(let t of e){let e=i+t.length;if(n>i&&n<e)return e;if(n<=i)break;i=e}return n}function ii(e){if(!ni(e))return;let t=[0],n=U();if(n!==void 0){for(let r of n.segment(e))t.push(r.index+r.segment.length);return t}let r=0;for(let n of e)r+=n.length,t.push(r);return t}function ai(e,t){let n=0;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);if(i>127)return-1;n+=i===9?t-n%t:1}return n}var oi=500,si=0,ci=class{#e;#t;#n;#r=`dark`;#i=``;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=!1;#h=[u];#g=[];#_=0;#v=[];#y=-1;#b=!0;#x=!1;#S=0;#C=++si;#w=-1;#T=-1;#E;#D=0;#O=[];#k=!1;#A=ft(async e=>{if(this.#m)return;let{startingLine:t=0,totalLines:n=1/0}=e??{},r=Math.min(n===1/0?1/0:t+n,this.#o.lineCount);if(this.#t===void 0&&!di(this.#o.languageId)){if(await this.#e.loadLanguage(this.#o.languageId),this.#m)return;this.#t=this.#e.getLanguage(this.#o.languageId)}this.#F(),this.#V(r)},500);#j=({data:e})=>{if(typeof e!=`object`||!e)return;let{type:t,tokenizerId:n,jobId:r}=e;t===`tokenize`&&n===this.#C&&typeof r==`number`&&r===this.#S&&(this.#w>=0?this.#q(r):this.#J(r))};get themeType(){return this.#r}getStringCommentRegexpRangesInLine(e){if(!this.#d||e<0||e>=this.#o.lineCount||(this.#I(),this.#t===void 0))return null;if(this.#O[e]===void 0){this.#K(e);let t=this.#h[e]??u,n=this.#H(e,t);this.#h[e+1]=n.state}return this.#O[e]??null}constructor({codeOptions:e,highlighter:t,textDocument:n,matchBrackets:r,setStyle:i,onDeferTokenize:a,onThemeChange:o,__debug:s}){let{themeType:c=`system`,theme:l=w,tokenizeMaxLineLength:u=1e3}=e;this.#n=window.matchMedia(`(prefers-color-scheme: dark)`);let d;if(d=c===`system`?this.#N():c,typeof l!=`string`&&c===`system`){let e=new MutationObserver(e=>{for(let{type:t,attributeName:n}of e)if(t===`attributes`&&n!==null&&(n===`class`||n.startsWith(`data-`))){let e=this.#N();this.#M(l[e],e);break}});e.observe(document.documentElement,{attributes:!0}),e.observe(document.body,{attributes:!0}),this.#p=[B(this.#n,`change`,()=>{let e=this.#N();this.#M(l[e],e)}),()=>e.disconnect()]}this.#e=t,this.#o=n,this.#s=u,this.#c=i,this.#l=a,this.#u=o,this.#d=r!==!1,this.#f=s??!1,this.#I(),this.#a=[],this.#P(typeof l==`string`?l:l[d],typeof l==`string`?void 0:d)}#M(e,t){(e!==this.#i||t!==this.#r)&&(this.#P(e,t),this.stopBackgroundTokenize(),this.#h=[u],this.#g=[],this.#_=0,this.#v=[],this.#t!==void 0&&this.#o.lineCount>0&&this.#B(0),this.#u?.())}#N(){try{if(typeof document<`u`&&typeof getComputedStyle==`function`&&document.body!=null){let e=getComputedStyle(document.body).colorScheme.split(/\s+/),t=e.includes(`dark`);if(t!==e.includes(`light`))return t?`dark`:`light`}}catch{}return this.#n.matches?`dark`:`light`}syncTheme(e){let{themeType:t=`system`,theme:n=w}=e;if(typeof n==`string`){let e=this.#e.getTheme(n).type;if(n===this.#i&&e===this.#r)return;this.#M(n,e);return}let r=t===`system`?this.#N():t,i=n[r];(r!==this.#r||i!==this.#i)&&this.#M(i,r)}#P(e,t){let{theme:n,colorMap:r}=this.#e.setTheme(e),{colors:i={}}=this.#e.getTheme(e),a=i[`editor.selectionBackground`],o=i[`editor.lineHighlightBackground`],s=o!=null&&o.trim()!==``&&!fe.isFullyTransparent(o)?o:void 0,c=i[`editor.lineHighlightBorder`]??(s==null?`color-mix(in lab, var(--diffs-bg) 70%, var(--diffs-fg))`:`transparent`),l=s==null?`100%`:`85%`,u=i[`editorCursor.foreground`],d=i[`editor.findMatchBackground`],f=i[`editor.findMatchHighlightBackground`],p=i[`editorBracketMatch.background`],m=i[`editorBracketMatch.border`],h=i[`editorHint.foreground`],g=i[`editorInfo.foreground`],_=i[`editorWarning.foreground`],v=i[`editorError.foreground`];this.#c(`:host {
567
+ </svg>`,Zr=class{#e;#t;#n;#r;#i;#a;constructor(e){let{textDocument:t,containerElement:n,defaultQuery:r,mode:i=`find`,initialMatch:a,scrollToMatch:o,applyReplace:s,onUpdate:c,onClose:l}=e,u={text:r,replaceText:``,caseSensitive:!1,wholeWord:!1,regex:!1},d={all:[],current:void 0},f=H(`div`,{dataset:{matches:``,noMatches:``},textContent:`No results`}),p=e=>{d.all=u.text===``?[]:t.search(u);let n=d.all.length===0;if(ie.disabled=n,D.disabled=n,n){f.textContent=`No results`,f.dataset.noMatches=``,d.current=void 0,c([]);return}if(delete f.dataset.noMatches,e?.syncSelection===!1){let e=c(d.all,{syncSelection:!1});m(e);return}m(c(d.all))};this.#n=p;let m=e=>{if(e===void 0)f.textContent=`${d.all.length} results`;else{let[t,n]=e,r=d.all.findIndex(e=>e[0]===t&&e[1]===n);f.textContent=`${r+1} of ${d.all.length}`}d.current=e},h=(e,t)=>{u[e]=t,p()},g=(e=!1,t=!1)=>{let n=d.all,r=n[0];if(n.length>0){if(e){let e=d.current?.[0]??0;r=n.at(-1);for(let t of n)if(t[1]<=e)r=t;else break}else{let e=d.current?.[1]??0;for(let t of n)if(t[0]>=e){r=t;break}}}r!==void 0&&(m(r),o(r,t)),d.current=r};this.#i=e=>g(e,!0);let _=(e,n)=>({start:e,end:n,text:ze(e=>t.positionAt(e),e=>t.offsetAt(e),e=>t.getLineText(e),u,e,n)}),v=()=>{if(u.text===``||d.all.length===0)return;let e=d.current;if(e===void 0&&(g(!1,!0),e=d.current,e===void 0))return;let[t,n]=e,r=_(t,n);s([r]),o([t+r.text.length,t+r.text.length],!0),d.current=void 0,p()},y=()=>{u.text!==``&&d.all.length!==0&&(s(d.all.map(([e,t])=>_(e,t))),d.current=void 0,p())},b=()=>{this.cleanup(),l()};this.#a=b;let x=e=>H(`button`,{type:`button`,title:e.label,ariaLabel:e.label,dataset:{searchIcon:``,...e.dataset},innerHTML:Xr(e.icon,e.size??16),onclick:e.onClick}),S=(e,t,n)=>{let r=x({icon:e,label:t,size:14,onClick:()=>{let e=!u[n];r.ariaPressed=String(e),h(n,e)}});return r.ariaPressed=String(u[n]),r},C=S(`case`,`Match Case`,`caseSensitive`),w=S(`whole-word`,`Whole Word`,`wholeWord`),T=S(`regex`,`Regexp`,`regex`),ee=H(`input`,{type:`text`,placeholder:`Replace`,dataset:`replace`,value:``,oninput:e=>{u.replaceText=e.target.value},onkeydown:e=>{if(e.isComposing||e.keyCode===229)return;let t=ot(e);e.key===`Escape`?(e.preventDefault(),b()):e.key===`Enter`?(e.preventDefault(),v()):t!==void 0&&(e.preventDefault(),g(t===`previous`,!0))}});this.#t=H(`input`,{type:`text`,placeholder:`Search`,dataset:`search`,value:r,oninput:e=>{u.text=e.target.value,d.current=void 0,p()},onkeydown:e=>{if(e.isComposing||e.keyCode===229)return;let t=ot(e);e.key===`Escape`?(e.preventDefault(),b()):e.key===`Enter`?(e.preventDefault(),g(e.shiftKey,!0)):t===void 0?$e(e)&&(e.key===`f`||e.code===`KeyF`)&&(e.preventDefault(),j(e.altKey?`replace`:`find`)):(e.preventDefault(),g(t===`previous`,!0))}});let te=H(`div`,{dataset:`searchToggles`,children:[C,w,T]}),E=H(`div`,{dataset:{inputBox:``,find:``},children:[this.#t,te]}),ne=H(`div`,{dataset:{inputBox:``,replace:``,replaceCell:``},children:[ee]}),re=H(`div`,{dataset:{replaceActions:``,replaceCell:``},children:[x({icon:`replace`,label:`Replace`,onClick:v}),x({icon:`replace-all`,label:`Replace All`,onClick:y})]}),ie=x({icon:`arrow-up`,label:`Previous`,onClick:()=>{g(!0)}}),D=x({icon:`arrow-down`,label:`Next`,onClick:()=>{g()}});ie.disabled=!0,D.disabled=!0;let O=H(`div`,{dataset:`searchNav`,children:[ie,D]}),k=x({icon:`close`,label:`Close`,onClick:b,dataset:{searchClose:``}}),A=H(`div`,{dataset:{searchGrid:``,mode:i},children:[E,ne,re,f,O,k]}),j=e=>{A.dataset.mode=e,this.#t.focus(),this.#t.select()};this.#r=j,this.#e=H(`div`,{dataset:`searchPanel`,children:[H(`div`,{dataset:`editorWidget`,children:[A]})]}),d.current=a,n.before(this.#e),requestAnimationFrame(()=>{a===void 0?c([]):p(),this.#t.select()})}focus(){this.#t.focus()}navigate(e){this.#i?.(e)}updateMatches(e){this.#n?.(e)}setMode(e){this.#r?.(e)}close(){this.#a?.()}cleanup(){this.#e.remove()}},Qr=class{#e;#t;#n;constructor(e,t,n){this.#e=H(`div`,{dataset:{editorWidget:``,selectionActionPopover:``},contentEditable:`false`,children:[e]},t),this.#t=this.#e.offsetHeight,this.#n=new ResizeObserver(()=>{let e=this.#e.offsetHeight;e!==this.#t&&(this.#t=e,n())}),this.#n.observe(this.#e)}reposition(e,t,n,r,i,a){this.#e.style.visibility=i?``:`hidden`,_t(this.#e,{gutterWidth:n,placeAbove:r,viewport:a,x:e,y:t})}get height(){return this.#t}cleanup(){this.#n.disconnect(),this.#e.remove()}},$r=4096,ei=/\p{Mark}/u,ti=class{#e;#t;#n;#r=new Map;ch=-1;tabSize=2;lineHeight=20;paddingTop=0;init(e){if(this.#e===e&&this.#t!==void 0&&this.ch!==-1)return;if(this.#e=e,this.#t??=document.createElement(`canvas`).getContext(`2d`)??void 0,this.#t===void 0)throw Error(`Could not get canvas context`);let t=e.parentElement;if(t!==null){let{paddingTop:e}=getComputedStyle(t);e.endsWith(`px`)&&(this.paddingTop=parseFloat(e.slice(0,-2)))}let{fontSize:n,fontFamily:r,tabSize:i,lineHeight:a}=getComputedStyle(e);a.endsWith(`px`)?this.lineHeight=parseFloat(a.slice(0,-2)):n.endsWith(`px`)&&(this.lineHeight=G(parseFloat(n.slice(0,-2))*parseFloat(a)));let o=n+` `+r;(this.#n!==o||this.ch===-1)&&(this.#n=o,this.#t.font=o,this.ch=this.canvasMeasureTextWidth(`0`),this.clearTextWidthCache());let s=parseInt(i,10);Number.isNaN(s)||(this.tabSize=s)}remeasureCharacterWidth(){if(this.#t===void 0||this.#n===void 0)return!1;this.#t.font=this.#n;let e=this.canvasMeasureTextWidth(`0`),t=e!==this.ch;t&&(this.ch=e);let n=this.#a();return t||n}measureTextWidth(e){if(!e.includes(` `))return this.#i(e);if(this.#t===void 0)throw Error(`Metrics not initialized`);let t=ai(e,this.tabSize);if(t!==-1)return t*this.ch;let n=0,r=0,i=this.tabSize*this.ch;for(let t=0;t<e.length;t++)if(e.charCodeAt(t)===9){if(t>r&&(n+=this.#i(e.slice(r,t))),i>0){let e=n%i;n+=e===0?i:i-e}r=t+1}return r<e.length&&(n+=this.#i(e.slice(r))),G(n)}segmentTextWidth(e,t,n){if(n<=t)return 0;let r=e.slice(t,n),i=ai(r,this.tabSize);return i===-1?this.measureTextWidth(r):i*this.ch}#i(e){return ni(e)?this.domMeasureTextWidth(e):this.canvasMeasureTextWidth(e)}canvasMeasureTextWidth(e){if(this.#t===void 0)throw Error(`Metrics not initialized`);return G(this.#t.measureText(e).width)}domMeasureTextWidth(e){if(this.#e===void 0)throw Error(`Metrics not initialized`);let t=e+`|`+this.#n,n=this.#r.get(t);if(n!==void 0)return n;let r=H(`span`,{style:{position:`absolute`,top:`0`,left:`0`,visibility:`hidden`,pointerEvents:`none`,whiteSpace:`pre`,font:`inherit`},textContent:e},this.#e),i;try{i=G(r.getBoundingClientRect().width)}finally{r.remove()}if(this.#r.size>=$r){let e=this.#r.keys().next().value;e!==void 0&&this.#r.delete(e)}return this.#r.set(t,i),i}clearTextWidthCache(){this.#a()}#a(){let e=this.#r.size>0;return this.#r.clear(),e}};function ni(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n>=55296&&n<=57343||n===8205||n===65038||n===65039||n>127&&ei.test(e.charAt(t)))return!0}return!1}function ri(e,t){let n=Math.max(0,Math.min(t,e.length));if(n===0||n===e.length||!ni(e))return n;let r=mt();if(r!==void 0){for(let t of r.segment(e)){let e=t.index,r=e+t.segment.length;if(n>e&&n<r)return r;if(n<=e)break}return n}let i=0;for(let t of e){let e=i+t.length;if(n>i&&n<e)return e;if(n<=i)break;i=e}return n}function ii(e){if(!ni(e))return;let t=[0],n=mt();if(n!==void 0){for(let r of n.segment(e))t.push(r.index+r.segment.length);return t}let r=0;for(let n of e)r+=n.length,t.push(r);return t}function ai(e,t){let n=0;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r);if(i>127)return-1;n+=i===9?t-n%t:1}return n}var oi=500,si=0,ci=class{#e;#t;#n;#r=`dark`;#i=``;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=!1;#h=[E];#g=[];#_=0;#v=[];#y=-1;#b=!0;#x=!1;#S=0;#C=++si;#w=-1;#T=-1;#E;#D=0;#O=[];#k=!1;#A=lt(async e=>{if(this.#m)return;let{startingLine:t=0,totalLines:n=1/0}=e??{},r=Math.min(n===1/0?1/0:t+n,this.#o.lineCount);if(this.#t===void 0&&!di(this.#o.languageId)){if(await this.#e.loadLanguage(this.#o.languageId),this.#m)return;this.#t=this.#e.getLanguage(this.#o.languageId)}this.#F(),this.#V(r)},500);#j=({data:e})=>{if(typeof e!=`object`||!e)return;let{type:t,tokenizerId:n,jobId:r}=e;t===`tokenize`&&n===this.#C&&typeof r==`number`&&r===this.#S&&(this.#w>=0?this.#q(r):this.#J(r))};get themeType(){return this.#r}getStringCommentRegexpRangesInLine(e){if(!this.#d||e<0||e>=this.#o.lineCount||(this.#I(),this.#t===void 0))return null;if(this.#O[e]===void 0){this.#K(e);let t=this.#h[e]??E,n=this.#H(e,t);this.#h[e+1]=n.state}return this.#O[e]??null}constructor({codeOptions:e,highlighter:t,textDocument:n,matchBrackets:r,setStyle:i,onDeferTokenize:a,onThemeChange:o,__debug:s}){let{themeType:c=`system`,theme:l=v,tokenizeMaxLineLength:u=1e3}=e;this.#n=window.matchMedia(`(prefers-color-scheme: dark)`);let d;if(d=c===`system`?this.#N():c,typeof l!=`string`&&c===`system`){let e=new MutationObserver(e=>{for(let{type:t,attributeName:n}of e)if(t===`attributes`&&n!==null&&(n===`class`||n.startsWith(`data-`))){let e=this.#N();this.#M(l[e],e);break}});e.observe(document.documentElement,{attributes:!0}),e.observe(document.body,{attributes:!0}),this.#p=[U(this.#n,`change`,()=>{let e=this.#N();this.#M(l[e],e)}),()=>e.disconnect()]}this.#e=t,this.#o=n,this.#s=u,this.#c=i,this.#l=a,this.#u=o,this.#d=r!==!1,this.#f=s??!1,this.#I(),this.#a=[],this.#P(typeof l==`string`?l:l[d],typeof l==`string`?void 0:d)}#M(e,t){(e!==this.#i||t!==this.#r)&&(this.#P(e,t),this.stopBackgroundTokenize(),this.#h=[E],this.#g=[],this.#_=0,this.#v=[],this.#t!==void 0&&this.#o.lineCount>0&&this.#B(0),this.#u?.())}#N(){try{if(typeof document<`u`&&typeof getComputedStyle==`function`&&document.body!=null){let e=getComputedStyle(document.body).colorScheme.split(/\s+/),t=e.includes(`dark`);if(t!==e.includes(`light`))return t?`dark`:`light`}}catch{}return this.#n.matches?`dark`:`light`}syncTheme(e){let{themeType:t=`system`,theme:n=v}=e;if(typeof n==`string`){let e=this.#e.getTheme(n).type;if(n===this.#i&&e===this.#r)return;this.#M(n,e);return}let r=t===`system`?this.#N():t,i=n[r];(r!==this.#r||i!==this.#i)&&this.#M(i,r)}#P(e,t){let{theme:n,colorMap:r}=this.#e.setTheme(e),{colors:i={}}=this.#e.getTheme(e),a=i[`editor.selectionBackground`],o=i[`editor.lineHighlightBackground`],s=o!=null&&o.trim()!==``&&!le.isFullyTransparent(o)?o:void 0,c=i[`editor.lineHighlightBorder`]??(s==null?`color-mix(in lab, var(--diffs-bg) 70%, var(--diffs-fg))`:`transparent`),l=s==null?`100%`:`85%`,u=i[`editorCursor.foreground`],d=i[`editor.findMatchBackground`],f=i[`editor.findMatchHighlightBackground`],p=i[`editorBracketMatch.background`],m=i[`editorBracketMatch.border`],h=i[`editorHint.foreground`],g=i[`editorInfo.foreground`],_=i[`editorWarning.foreground`],v=i[`editorError.foreground`];this.#c(`:host {
568
568
  --diffs-editor-selection-bg: ${a??`var(--diffs-line-bg)`};
569
569
  --diffs-editor-line-highlight-border: ${c};
570
570
  --diffs-editor-active-line-source-mix: ${l};
@@ -577,12 +577,12 @@ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Z as t,mo as n,nt as r
577
577
  --diffs-editor-info-fg: ${g??`initial`};
578
578
  --diffs-editor-warning-fg: ${_??`initial`};
579
579
  --diffs-editor-error-fg: ${v??`initial`};
580
- }`),this.#i=e,this.#r=t??n.type,this.#a=r}#F(){if(this.#i===``)return;let{colorMap:e}=this.#e.setTheme(this.#i);this.#a=e}cleanUp(){this.#m=!0,this.stopBackgroundTokenize(),this.#R(),this.#p?.forEach(e=>e()),this.#p=void 0}tokenize(e,t,n=!1){if(this.#I(),this.#F(),this.#t===void 0&&!di(this.#o.languageId))throw Error(`Grammar for language "${this.#o.languageId}" not loaded`);let{lineCount:r}=this.#o,{startingLine:i=0,totalLines:a=1/0}=t??{},o=a===1/0?r:Math.min(i+a,r),s=e.startLine,c=Math.max(i,s),l=t!==void 0&&a!==1/0&&e.lineDelta>0&&s<o&&e.endLine>=o,d=e.lineDelta===0&&(e.changedLineChanges?.every(([,,e])=>e===0)??!0);this.#d&&!d&&(this.#O.length=Math.min(this.#O.length,e.startLine));let f=n&&e.lineDelta!==0&&s>=i,p=d||t===void 0||s>=c,m=e.changedLineRanges??[[s,e.endLine]];this.#g=[],this.#_=0,this.#v=[];let h=-1;if(s<c)for(let[e,t]of m)e<c&&(h=Math.max(h,Math.min(t,c-1)));let g=h>=s&&(d||e.lineDelta<0);d?this.#K(s):(this.#W(e),(t===void 0||s>=c)&&this.#K(c));let _=0,v=m[_][1],y,b=0,x=d?m[_][0]:c,S=!1,C=new Map,w=g?new Map:void 0;if(w!==void 0&&!d){let e=Math.min(h+1,c,o);if(e>s){this.#K(e);let t=s,n=this.#h[t]??u;for(;t<e;t++){let e=this.#H(t,n);n=e.state,w.set(t,e.resolvedTokens)}this.#h[e]=n}}let T=this.#h[x]??u;for(;x<o;){let e=d?this.#h[x+1]:f?this.#G(x+1):void 0;p&&(this.#h[x]=T);let{resolvedTokens:t,state:n}=this.#H(x,T);if(T=n,x>=c?C.set(x,t):w?.set(x,t),p&&(this.#h[x+1]=T),S=x>=v&&(d||f)&&e!==void 0&&T.equals(e),S){_++;let e=m[_];if(e===void 0)break;if(e[0]>=o){y=e[0],b=_;break}let t=this.#h[e[0]];if(f)for(let n=x+2;n<=e[0]&&(t=this.#G(n),t!==void 0);n++)this.#h[n]=t;t===void 0?(v=e[1],x++):(x=e[0],T=t,v=e[1]),S=!1;continue}x++}if(p&&(x<o?this.#h[x+1]=T:this.#h[x]=T),S&&f&&y===void 0){for(let e=x+2;e<=r;e++){let t=this.#G(e);if(t===void 0)break;this.#h[e]=t}this.#g=[],this.#_=0,this.#v=[]}if(w!==void 0&&w.size>0&&this.#l(w,this.#r),y!==void 0)this.#d&&d&&(this.#O.length=Math.min(this.#O.length,y)),this.#B(y,m,b);else if(!S&&x<r){let e=l&&s>=c?o:s<c&&!d?s:x;this.#d&&d&&(this.#O.length=Math.min(this.#O.length,e)),this.#B(e,m,_)}return C}prebuildStateStack(e){this.#I(),this.#A(e)}stopBackgroundTokenize(){this.#T=-1,!this.#b&&(this.#b=!0,this.#x=!1,this.#y=-1,this.#w=-1,this.#E=void 0,this.#D=0,this.#g=[],this.#_=0,this.#v=[],this.#R())}pauseBackgroundTokenize(){this.#b||this.#x||(this.#f&&console.log(`[diffs/editor] background tokenization paused`,{jobId:this.#S}),this.#x=!0)}resumeBackgroundTokenize(){this.#b||!this.#x||this.#t===void 0||this.#y<0||(this.#f&&console.log(`[diffs/editor] background tokenization resumed`,{jobId:this.#S}),this.#x=!1,this.#z(this.#S))}#I(){this.#t===void 0&&!di(this.#o.languageId)&&this.#e.getLoadedLanguages().includes(this.#o.languageId)&&(this.#t=this.#e.getLanguage(this.#o.languageId))}#L(){this.#k||=(globalThis.addEventListener(`message`,this.#j),!0)}#R(){this.#k&&=(globalThis.removeEventListener(`message`,this.#j),!1)}#z(e){globalThis.postMessage({type:`tokenize`,tokenizerId:this.#C,jobId:e})}#B(e,t,n=0){if(di(this.#o.languageId))return;let r=++this.#S;this.#f&&console.log(`[diffs/editor] background tokenization scheduled`,{jobId:r,startLine:e,changedLineRanges:t,changedRangeIndex:n}),this.#b=!1,this.#x=!1,this.#y=e,this.#w>=0&&(this.#T=Math.max(this.#T,this.#w)),this.#w=-1,this.#E=t,this.#D=n,this.#L(),this.#z(r)}#V(e){if(this.#t===void 0||this.#h.length>e)return;if(!this.#b){this.#w>=0?this.#w=Math.max(this.#w,e):this.#T=Math.max(this.#T,e);return}let t=++this.#S;this.#b=!1,this.#x=!1,this.#y=this.#h.length-1,this.#w=e,this.#T=-1,this.#E=void 0,this.#D=0,this.#L(),this.#z(t)}#H(e,t){let n=this.#o.getLineText(e);if(n.length>this.#s)return console.warn(`[diffs] Line(${e}) too long to tokenize: ${n.length}`),this.#U(e,null),{resolvedTokens:[[0,``,n]],state:t};if(this.#t===void 0||n===``||n.trim()===``)return this.#U(e,null),{resolvedTokens:[[0,``,n]],state:t};let r=li(this.#t,this.#a,n,t,oi,this.#d);return this.#U(e,r.bracketIgnoredRanges),{resolvedTokens:r.resolvedTokens,state:r.ruleStack}}#U(e,t){this.#d&&(this.#O[e]=t)}#W(e){let t=e.changedLineChanges??[[e.startLine,e.endLine,e.lineDelta]],n=e.startLine+1;n<=this.#h.length-n?(this.#g=this.#h,this.#_=0,this.#h=this.#h.slice(0,n)):(this.#_=n,this.#g=this.#h.slice(n),this.#h.length=Math.min(this.#h.length,n)),this.#v=t}#G(e){let t=e;for(let n=this.#v.length-1;n>=0;n--){let[r,i,a]=this.#v[n];if(a!==0){if(t>i)t-=a;else if(t>r)return this.#h[e]}}return this.#g[t-this.#_]??this.#h[e]}#K(e,t){let n=Math.min(Math.max(0,e),this.#o.lineCount);if(this.#h.length>n||this.#t===void 0)return!0;let r=t===void 0?0:performance.now(),i=this.#h.length-1,a=this.#h[i]??u;for(;i<n;){this.#h[i]=a;let e=this.#o.getLineText(i);if(e.length<=this.#s&&e!==``&&e.trim()!==``){let t=li(this.#t,this.#a,e,a,oi,this.#d,!1);this.#U(i,t.bracketIgnoredRanges),a=t.ruleStack}else this.#U(i,null);if(i++,this.#h[i]=a,t!==void 0&&performance.now()-r>t)break}return i>=n}#q(e){if(this.#b||this.#x||this.#t===void 0||e!==this.#S)return;this.#F();let t=this.#K(this.#w,1);if(!(this.#b||this.#x||e!==this.#S)){if(t){this.stopBackgroundTokenize();return}this.#y=this.#h.length-1,this.#z(e)}}#J(e){if(this.#b||this.#x||this.#t===void 0||e!==this.#S)return;this.#F();let t=performance.now(),n=new Map,r=this.#o.lineCount,i=this.#E,a=this.#y,o=this.#h[a]??u,s=!1,c=this.#D,l=i?.[c]?.[1];for(;a<r;){this.#h[a]=o;let e=l===void 0?void 0:this.#G(a+1),r=this.#o.getLineText(a);if(r.length>this.#s)console.warn(`[diffs] Line(${a}) too long to tokenize: ${r.length}`),n.set(a,[[0,``,r]]),this.#U(a,null);else if(r===``||r.trim()===``)n.set(a,[[0,``,r]]),this.#U(a,null);else{let e=li(this.#t,this.#a,r,o,oi,this.#d);n.set(a,e.resolvedTokens),this.#U(a,e.bracketIgnoredRanges),o=e.ruleStack}if(this.#h[a+1]=o,s=l!==void 0&&a>=l&&e!==void 0&&o.equals(e),a++,s){c++;let e=i?.[c];if(e===void 0)break;if(l=e[1],this.#h[e[0]]===void 0)s=!1;else{a=e[0],o=this.#h[a]??o,s=!1;continue}}if(performance.now()-t>1)break}if(this.#l(n,this.#r),!(this.#b||this.#x||e!==this.#S)){if(s||a>=r){let e=this.#T;this.stopBackgroundTokenize(),e>=0&&this.#V(e);return}this.#y=a,this.#D=c,this.#z(e)}}};function li(e,t,n,r,i,a=!0,o=!0){let s=e.tokenizeLine2(n,r,i);s.stoppedEarly&&console.warn(`[diffs] Time limit reached when tokenizing line: ${n.substring(0,100)}`);let c=s.tokens,l=c.length/2,u=[],d=[];if(!o&&!a)return{ruleStack:s.ruleStack,resolvedTokens:u,bracketIgnoredRanges:d};for(let e=0;e<l;e++){let r=c[2*e],i=e+1<l?c[2*e+2]:n.length;if(r===i)continue;let s=c[2*e+1];if(o){let e=D.getForeground(s);u.push([r,t[e],n.slice(r,i)])}a&&D.getTokenType(s)>0&&d.push([r,i])}return{ruleStack:s.ruleStack,resolvedTokens:u,bracketIgnoredRanges:d}}function ui(e){return e.map(([e,t,n])=>e===0&&t===``?n===``?z(`br`):n:z(`span`,{dataset:{char:e.toString()},style:`color:${t};`,textContent:n}))}function di(e){return e===`text`||e===`ansi`}function fi(e){let t=e.getSelection?.();if(t==null||t.rangeCount===0)return;let n=t.getRangeAt(0);return{collapsed:n.collapsed,startContainer:n.startContainer,startOffset:n.startOffset,endContainer:n.endContainer,endOffset:n.endOffset}}function pi(e,t){let n=f(e),r=n[n.length-1]??0;return{start:0,end:e.length,text:t,range:{start:{line:0,character:0},end:{line:n.length-1,character:e.length-r}}}}function mi(e){return e!=null&&`renderType`in e&&e.renderType===`virtualized`}var hi=2,gi=1e4,_i=300,vi=256,yi=131072,bi=new TextEncoder,xi=`selection-action`,Si=`application/vnd.pierre.diffs-selections+json`,Ci=class{type;#e;#t;#n;#r=new ti;#i;#a;#o;#s;#c;#l;#u={generation:0,callback:void 0,delivered:!1};#d;#f;#p;#m=new Map;#h=new Map;#g=new Map;#_;#v;#y;#b;#x;#S;#C;#w;#T;#E;#D;#O;#k;#A;#j;#M;#N;#P;#F=!1;#I=!1;#L;#R;#z;#B;#V;#H;#U;#W;#G;#K=!0;#q=!1;#J=!1;#Y=!1;#X;#Z=!1;#Q=!1;#$=!1;#ee;#te=!1;#ne;#re=``;#ie;#ae;#oe;#se;#ce;#le;#ue=!1;#de=!1;#fe=!1;#pe=!1;#me;#he;#ge;#_e=0;#ve=!1;#ye=!1;#be;#xe=[];#Se=new Map;#Ce=new Map;#we=(e,t)=>{if(this.#F&&(this.#M?.updateRenderCache(e,t),this.#B!==void 0&&this.#B.totalLines!==1/0)){let t=this.#be===void 0?void 0:new Set(this.#be.response.edits.map(e=>e.range.start.line)),n=!1,{startingLine:r,totalLines:i}=this.#B,a=Math.min(r+i,(this.#n??this.#t)?.document?.lineCount??0);for(let[i,o]of e)if(i>=r&&i<a){let e=this.#hn(i);e!==void 0&&(e.replaceChildren(...ui(o)),n||=t?.has(i)===!0)}n&&this.#oe!==void 0&&this.#Ut(this.#oe)}};constructor(e,t={},n){this.type=e,this.#e=t,this.#z=t.ownsVerticalViewport===!0,this.#t=t.initialState,this.#R=n}get#Te(){return this.type,this}setOptions(e){let t=this.#e.renderCaret,n=this.#e.editPrediction;this.#e={...this.#e,...e},t!==this.#e.renderCaret&&(this.#O?.forEach(e=>e.remove()),this.#O=void 0,this.#Wt()),n!==this.#e.editPrediction&&(this.#Lt(!0),this.#xe=[],this.#zt())}__emitEditComplete(e){this.#e.onComplete?.(e)}__getGhostTextRows(){return this.#Ce}setCarets(e){let t=this.#n?.document;t!==void 0&&(this.#O?.forEach(e=>e.remove()),this.#O=void 0,this.#k?.forEach(e=>e.remove()),this.#k=void 0,this.#U=e.length===0?void 0:e.map(e=>{let n=t.normalizePosition(e.anchor),r=t.normalizePosition(e.focus);return{caret:{...e,anchor:n,focus:r},anchorOffset:t.offsetAt(n),focusOffset:t.offsetAt(r)}}),this.#Wt())}edit(e){let t=this.#Te,n=this.#n;if(this.#F)throw Error(`Editor.edit: the editor is already rendering its component`);if(this.#M!=null&&this.#M!==e)throw Error(`Editor.edit: a recycled edit session cannot attach to a different component`);let r=this.#t,i=r?.editor,a=this.#R,o=wi({type:this.type,editStateKey:a,owner:this,initialState:r,previousSession:n}),s=o.diffSession;this.#t=void 0,this.#n=o,this.#M=e,this.#F=!0,this.#I=o.editor!=null;try{if(this.#We(),e.type===`file`&&t.type===`file`)t.#N=e.applyDocumentChange.bind(e),t.#P=(n,r,i)=>{let a={changes:n,file:r,editor:t,lineAnnotations:i};e.__acceptEditorChange(a),t.#e.onChange?.(a),e.emitEditChange(a)},this.#l==null?this.#l=e.__attachEditor(t):e.__resumeEditor(t);else if(e.type===`file-diff`&&t.type===`file-diff`)t.#N=e.applyDocumentChange.bind(e),t.#P=(n,r,i)=>{let a={changes:n,file:r,editor:t,lineAnnotations:i};e.__acceptEditorChange(a),t.#e.onChange?.(a),e.emitEditChange(a)},this.#l==null?this.#l=e.__attachEditor(t):e.__resumeEditor(t);else throw Error(`Editor.edit: Impossible edit state`)}catch(e){throw this.cleanUp(`recycle`),o.type===`file-diff`&&o.diffSession==null&&(o.diffSession=s),this.#l==null&&a!=null&&(t.type===`file`?tt.releaseFile(a,t):tt.releaseFileDiff(a,t)),this.#n=n,this.#l??(this.#M=void 0,this.#N=void 0,this.#P=void 0),r!=null&&i!=null&&(r.editor=i),this.#t=r,e}return()=>{this.cleanUp(`complete`)}}applyEdits(e,t=!0){let n=this.#n?.document;if(n==null)throw Error(`Editor.applyEdits: Editor is not attached`);let r=this.#Y,i=this.#oe,a=i?.map(e=>[n.offsetAt(e.start),n.offsetAt(e.end)]),o=i===void 0?void 0:n.resolveEdits(e).sort((e,t)=>e.start-t.start),s=n.applyEdits(e,t,i);if(s===void 0)return;let c;i!==void 0&&a!==void 0&&o!==void 0&&(c=cn(n,i,a,o),t&&n.setLastUndoSelectionsAfter(c)),this.#un(s,c,this.#fn(s),{skipFocus:!r})}get canUndo(){return(this.#n??this.#t)?.document?.canUndo??!1}get canRedo(){return(this.#n??this.#t)?.document?.canRedo??!1}undo(){this.#$e(`undo`)}redo(){this.#$e(`redo`)}getFile(){let e=this.#n??this.#t,t=e?.fileInfo,n=e?.document;if(t===void 0||n===void 0)return;let r={...t};return Object.defineProperty(r,"contents",{enumerable:!0,get:()=>n.getText()}),r}getText(){return(this.#n??this.#t)?.document?.getText()??``}getViewState(){let e=this.#F?this.#M:void 0;if(!this.#F&&this.#n?.editor!=null)return Qe(this.#n.editor);let t=this.#oe?.map(e=>({...e,start:{...e.start},end:{...e.end}}));if(e==null)return{selections:t};let n=this.#Ue(),r=e.getCodeScrollLeft();return n==null?{selections:t,view:{scrollLeft:r}}:{selections:t,view:{scrollLeft:r,scrollTop:n.scrollTop}}}getEditState(){let e=this.#n;if(e!=null){if(this.#M==null)throw Error(`Editor.getEditState: active ${this.type} session has no component`);return $e(e)}}setViewState({selections:e,view:t}){if(!this.#F||this.#M===void 0||this.#n?.document===void 0)throw Error(`Editor.setViewState: Editor is not attached`);if(this.#K=!1,this.#Ut(e??[]),t!=null){this.#M.setCodeScrollLeft(t.scrollLeft);let e=this.#Ue();t.scrollTop!==void 0&&e!=null&&(e.scrollTop=t.scrollTop)}else this.#z&&this.#ht();this.#Ee()}setSelections(e){let t=this.#n?.document;if(t===void 0)throw Error(`Editor.setSelections: Text document is not initialized`);let n=e.map(e=>{let n=t.normalizePosition(e.start),r=t.normalizePosition(e.end),i=e.direction===`none`?0:e.direction===`backward`?-1:1;return K(n,r)>0&&([n,r]=[r,n],i!==0&&(i=i===1?-1:1)),{direction:i,start:n,end:r}});this.#K=!1,this.#Ut(n);let r=n.at(-1);r!==void 0&&this.#Ne(G(r).line),this.#ht()}setMarkers(e){let t=this.#n?.document;if(t===void 0)throw Error(`Editor.setMarkers: Text document is not initialized`);if(e.length===0){this.#H?.cleanup(),this.#H=void 0,this.#Ut(this.#oe??[]);return}this.#H??=new Zn({popoverManager:this.#Le(),getLineHeight:()=>this.#r.lineHeight,getOverlayElement:()=>this.#E,getGutterWidth:()=>this.#gn(),getCharX:(e,t)=>this.#yn(e,t),getLineY:e=>this.#vn(e),isMouseDown:()=>this.#$||this.#Q}),this.#H.setMarkers(e,t),this.#w!==void 0&&this.#H.listenHover(this.#w),this.#Ut(this.#oe??[]),this.#Wt()}focus(e){let t=e?.preventScroll??!1,n=e?.lineNumber;if(n===`first-visible`||typeof n==`number`){let r=this.#n?.document;if(r==null||!this.#F||this.#M==null)return;let i=n===`first-visible`?this.#ft(e?.offset):n;if(i==null)return;let a=r.normalizePosition({line:i-1,character:n===`first-visible`?0:e?.character??0});this.#pt(a,t);return}let r=this.#oe?.at(-1);if(r!==void 0){let e=r.direction===-1?r.end:r.start;this.#lt(e,t)}else this.#lt(void 0,t)}blur(){this.#X=void 0,this.#Y=!1,this.#q=!1,this.#w?.blur()}cleanUp(e=`discard`){let t=this.#M,n=e===`recycle`;this.#Lt(!0,!1),n||(this.#xe=[]);let r=this.#n;if(t!=null&&r!=null){let e=!this.#Ee();n||this.#De(e)}if(this.#Be(),n||(this.#u.delivered=!1),this.#F=!1,ne(this.#Xe),this.#i?.cleanUp(),this.#i=void 0,this.#s?.forEach(e=>e()),this.#s=void 0,this.#o?.forEach(e=>e()),this.#o=void 0,n||(this.#l?.(),this.#l=void 0),this.#f=void 0,this.#p=void 0,this.#m.clear(),this.#h.clear(),this.#g.clear(),this.#_=void 0,this.#v?.remove(),this.#v=void 0,this.#y?.remove(),this.#y=void 0,this.#b?.remove(),this.#b=void 0,this.#x?.remove(),this.#x=void 0,this.#S=void 0,this.#a?.cleanUp(),this.#a=void 0,this.#C=void 0,this.#T=void 0,this.#w?.removeAttribute(`contentEditable`),this.#w=void 0,this.#X=void 0,this.#Y=!1,this.#E?.remove(),this.#E=void 0,this.#j?.disconnect(),this.#j=void 0,this.#pe=!1,this.#me!==void 0&&(cancelAnimationFrame(this.#me),this.#me=void 0),this.#ze(n),!n)try{if(t!=null&&r!=null){let n=this.#Te,r=e===`complete`?`install`:`discard`;if(t.type===`file`&&n.type===`file`)t.__completeEditSession(n,r);else if(t.type===`file-diff`&&n.type===`file-diff`)t.__completeEditSession(n,r);else throw Error(`Editor.cleanUp: Impossible edit state`)}}finally{this.#n=void 0,this.#M=void 0,this.#N=void 0,this.#P=void 0}}#Ee(){let e=this.#M,t=this.#n;if(e==null||t==null)return!1;let n=this.#F?this.getViewState():t.editor??{},{view:r}=n,i=r!=null&&(r.scrollLeft!==0||(r.scrollTop??0)!==0),a=n.selections!=null||i;if(t.editor=Qe(n),t.type===`file`)return!1;let o=e.__captureDocumentSessionState();if(t.diffSession=o?.diffSession,o==null)return!1;let s=t.document;return o.hasChanges||a||s?.canUndo===!0||s?.canRedo===!0}#De(e=!1){let t=this.#R;if(t==null)return;let n=this.#Te;n.type===`file`?tt.releaseFile(t,n):tt.releaseFileDiff(t,n,e)}__postponeBgTokenizeToNextFrame(){let e=this.#i;e!==void 0&&(e.pauseBackgroundTokenize(),requestAnimationFrame(()=>{e.resumeBackgroundTokenize()}))}__captureFocusForDOMReplacement(){let e=this.#w,t=this.#S?.shadowRoot?.activeElement;e!=null&&(this.#Y||t===e||t!=null&&e.contains(t))&&(this.#X={})}__getDocumentContents(e){let t=this.#n?.fileInfo,n=this.#n?.document;if(n==null)return t==null||e==null?void 0:{...t,contents:e.contents};let r=t??e;if(r!=null)return{name:r.name,lang:r.lang,contents:n.getText()}}__getDocumentSessionState(){let e=this.#n?.diffSession;return e==null?void 0:tr(e)}__syncRenderView(e){let{highlighter:t,fileContainer:n,renderRange:r,externalDocument:i=!1}=e,a=e,o;if(`file`in a&&this.type===`file`)o=a.file;else if(`fileDiff`in a&&this.type===`file-diff`)o=a.fileDiff;else throw Error(`Editor.__syncRenderView: Impossible render state`);let s=a.lineAnnotations,c=this.#R,l=this.#M,u=this.#n;if(!this.#F||l==null||u==null)return;let d=n.shadowRoot;if(d==null){console.error(`[editor] Could not find the shadow root.`);return}let f,p,m,h,g;for(let e of d.querySelectorAll(`[data-code]`)){let t=e.dataset.deletions!=null;t||(f=e);for(let n of e.children){if(!(n instanceof HTMLElement))continue;let{gutter:e,content:r}=n.dataset;e==null?r!=null&&(t?g=n:m=n):t?h=n:p=n}}if(g==null)this.#T=void 0;else if(h==null)throw Error(`Editor.__syncRenderView: the deletions column has no gutter`);else this.#T={content:g,gutter:h};if(f===void 0||m===void 0){this.#X=void 0;return}this.#Le().setViewportElements(n,f),this.#S!==n&&(this.#S=n,this.#v!==void 0&&n.appendChild(this.#v),this.#y!==void 0&&d.appendChild(this.#y),this.#b!==void 0&&d.appendChild(this.#b),this.#x!==void 0&&d.prepend(this.#x));let _=o.lang??le(o.name),v=`contents`in o?o.contents:o.additionLines.join(``),y=u.document,b=e.resetHistory??(y!=null&&u.fileInfo!=null&&(u.fileInfo.name!==o.name||y.languageId!==_)),x=i&&y!==void 0&&y.getText()!==v?[pi(y.getText(),v)]:void 0,S=i&&b;if(u.document==null||u.fileInfo==null||c==null&&(u.fileInfo.name!==o.name||u.document.languageId!==_)||S){this.#Lt(!0),this.#xe=[],this.#Be();let{name:e,lang:t}=o,n=S||c==null&&u.fileInfo!=null?void 0:u.document;if(y!=null&&n==null&&(u.editor=void 0),n==null){let e=new pe({maxEntries:this.#e.historyMaxEntries});n=new qe(o.name,v,_,0,e)}u.fileInfo={name:e,lang:t},u.document=n,S&&(u.diffSession=void 0),this.#i?.cleanUp(),this.#i=void 0,this.#ze(),this.#h.clear(),this.#oe=this.#ae,this.#e.__debug===!0&&console.log(`[diffs/editor] text document initialized from`,o.name)}if(i&&!S){this.#Oe(u,v,s);let{name:e,lang:t}=o;u.fileInfo={name:e,lang:t}}let C=u.document;if(this.#i==null&&C!=null&&(this.#i=new ci({highlighter:t,textDocument:C,codeOptions:this.#M?.__getEffectiveCodeOptions()??{},matchBrackets:this.#e.matchBrackets,onDeferTokenize:this.#we,onThemeChange:()=>this.#Dt(),setStyle:e=>{this.#b.textContent=e},__debug:this.#e.__debug})),this.#w!==m&&(this.#C=p,this.#w=dt(m,{contentEditable:`true`,role:`textbox`,ariaMultiLine:`true`,autocapitalize:`off`,writingSuggestions:`off`,autocorrect:!1,spellcheck:!1,translate:!1}),this.#E!==void 0&&m.after(this.#E),this.#r.init(m),this.#ot(),this.#Ye(m,p),this.#w!==void 0&&this.#e.__debug===!0&&console.log(`[diffs/editor] full re-render triggered !!!`)),this.#X!=null&&(this.#X.target=m),m.ariaLabel!==o.name&&(m.ariaLabel=o.name),s!==void 0&&s.length>0||this.#Fe)for(let e of this.#w.children){let t=e,{lineAnnotation:n,lineType:r,separator:i}=t.dataset;(n!==void 0||i!==void 0||r===`change-deletion`)&&t.setAttribute(`contenteditable`,`false`)}this.#Re(),this.#i?.syncTheme(this.#M?.__getEffectiveCodeOptions()??{}),this.#L=s,this.#B=r,this.#V=r?.totalLines,this.#i?.prebuildStateStack(r);let w=u.editor,T=this.#I;try{if(this.#H?.removePopover(),(this.#oe!==void 0||this.#se!==void 0||this.#H!==void 0)&&this.#Ut(this.#oe??[]),this.#Wt(),this.#ye&&this.#zt(),this.#ae!==void 0&&this.#A!==void 0?(this.#ae=void 0,this.#ht(!1,`center`)):this.#ce===void 0?this.#X===void 0?this.#oe!==void 0&&this.#oe.length>0&&this.#Y&&!this.#fe&&this.focus({preventScroll:!0}):this.#ut():this.#_t(this.#ce,this.#le,this.#de),this.#fe&&this.#W?.focus(),T&&(this.#I=!1,w!==void 0&&this.setViewState(w)),this.#e.__debug===!0&&r!==void 0){let{startingLine:e,totalLines:t}=r;console.log(`[diffs/editor] render file:`,o.name,`RenderRange:`,e+`-`+(e+t),`of`,u.document?.lineCount,`lines`)}i&&l.__acknowledgeDocumentUpdate(),this.#Ee()}catch(e){throw this.#I=T,u.editor=w,e}x!=null&&this.#dn(x,s),this.#Ve(l)}#Oe(e,t,n){let r=e.document;if(r==null||r.getText()===t)return;let i=this.#oe,a=i?.map(e=>[r.offsetAt(e.start),r.offsetAt(e.end)]),o={start:0,end:r.getText().length,text:t};if(r.applyResolvedEdits([o],!0,i,void 0,!0)!=null){if(i!=null&&a!=null){let e=cn(r,i,a,[o]);r.setLastUndoSelectionsAfter(e),this.#oe=e}(this.#L!=null||n!=null)&&r.setLastUndoLineAnnotations(this.#L??[],n??[]),this.#i?.cleanUp(),this.#i=void 0,this.#Re(),this.#h.clear(),this.#H?.removePopover(),this.#W!==void 0&&this.#se!==void 0&&this.#W.updateMatches({syncSelection:!1})}}get#ke(){return this.#M?.type===`file-diff`?this.#M:void 0}get#Ae(){return mi(this.#M)?this.#M:void 0}#je(e){return this.#ke?.isLineRenderable?.(e+1)??!0}get#Me(){let e=this.#ke;if(e!=null)return(t,n)=>{let r=e.getNearestRenderableLine(t+1,n);return r==null?void 0:r-1}}#Ne(e){this.#je(e)||this.#ke?.revealLine?.(e+1)}get#Pe(){return this.#ke?.options.diffStyle??`split`}get#Fe(){return this.type===`file-diff`}get#Ie(){return this.#M?.options.overflow===`wrap`}#Le(){return this.#a??=new vt({hasActivePopover:()=>this.#G!==void 0||this.#H?.isPopoverVisible()===!0,updateActivePopover:()=>{this.#Xt(),this.#H?.updatePopoverPosition()}})}#Re(){this.#m.clear(),this.#g.clear(),this.#_=void 0}#ze(e=!1){this.#Et(null),this.#f=void 0,this.#p=void 0,this.#Ge(),this.#J=!1,this.#D?.forEach(e=>e.remove()),this.#D=void 0,this.#O?.forEach(e=>e.remove()),this.#O=void 0,this.#k?.forEach(e=>e.remove()),this.#k=void 0,e||(this.#U=void 0),this.#oe=void 0,this.#ce=void 0,this.#H?.cleanup(),this.#H=void 0,this.#W?.cleanup(),this.#W=void 0,this.#G?.cleanup(),this.#G=void 0,this.#K=!0}#Be(){let e=this.#u;e.generation++,e.callback!=null&&(ne(e.callback),e.callback=void 0)}#Ve(e){let t=this.#u,n=this.#n?.document;if(t.delivered||t.callback!=null||n==null)return;let{generation:r}=t,i=()=>{if(t.callback!==i||(t.callback=void 0,r!==t.generation||this.#M!==e||this.#n?.document!==n))return;let a=this.#w,o=this.#S?.shadowRoot;a!=null&&o!=null&&o.contains(a)&&(t.delivered=!0,this.#e.onAttach?.(this,e))};t.callback=i,S(i)}#He(){let e=this.#Ae?.getEditorViewport?.();if(e!=null)return e;let t=this.#S;if(this.#M!=null&&t!=null)return _t(t)}#Ue(){if(!this.#z)return;let e=this.#Ae?.getEditorViewport?.();if(e instanceof HTMLElement)return e}#We(){this.#v=z(`style`,{dataset:`editorGlobalCss`,textContent:`
580
+ }`),this.#i=e,this.#r=t??n.type,this.#a=r}#F(){if(this.#i===``)return;let{colorMap:e}=this.#e.setTheme(this.#i);this.#a=e}cleanUp(){this.#m=!0,this.stopBackgroundTokenize(),this.#R(),this.#p?.forEach(e=>e()),this.#p=void 0}tokenize(e,t,n=!1){if(this.#I(),this.#F(),this.#t===void 0&&!di(this.#o.languageId))throw Error(`Grammar for language "${this.#o.languageId}" not loaded`);let{lineCount:r}=this.#o,{startingLine:i=0,totalLines:a=1/0}=t??{},o=a===1/0?r:Math.min(i+a,r),s=e.startLine,c=Math.max(i,s),l=t!==void 0&&a!==1/0&&e.lineDelta>0&&s<o&&e.endLine>=o,u=e.lineDelta===0&&(e.changedLineChanges?.every(([,,e])=>e===0)??!0);this.#d&&!u&&(this.#O.length=Math.min(this.#O.length,e.startLine));let d=n&&e.lineDelta!==0&&s>=i,f=u||t===void 0||s>=c,p=e.changedLineRanges??[[s,e.endLine]];this.#g=[],this.#_=0,this.#v=[];let m=-1;if(s<c)for(let[e,t]of p)e<c&&(m=Math.max(m,Math.min(t,c-1)));let h=m>=s&&(u||e.lineDelta<0);u?this.#K(s):(this.#W(e),(t===void 0||s>=c)&&this.#K(c));let g=0,_=p[g][1],v,y=0,b=u?p[g][0]:c,x=!1,S=new Map,C=h?new Map:void 0;if(C!==void 0&&!u){let e=Math.min(m+1,c,o);if(e>s){this.#K(e);let t=s,n=this.#h[t]??E;for(;t<e;t++){let e=this.#H(t,n);n=e.state,C.set(t,e.resolvedTokens)}this.#h[e]=n}}let w=this.#h[b]??E;for(;b<o;){let e=u?this.#h[b+1]:d?this.#G(b+1):void 0;f&&(this.#h[b]=w);let{resolvedTokens:t,state:n}=this.#H(b,w);if(w=n,b>=c?S.set(b,t):C?.set(b,t),f&&(this.#h[b+1]=w),x=b>=_&&(u||d)&&e!==void 0&&w.equals(e),x){g++;let e=p[g];if(e===void 0)break;if(e[0]>=o){v=e[0],y=g;break}let t=this.#h[e[0]];if(d)for(let n=b+2;n<=e[0]&&(t=this.#G(n),t!==void 0);n++)this.#h[n]=t;t===void 0?(_=e[1],b++):(b=e[0],w=t,_=e[1]),x=!1;continue}b++}if(f&&(b<o?this.#h[b+1]=w:this.#h[b]=w),x&&d&&v===void 0){for(let e=b+2;e<=r;e++){let t=this.#G(e);if(t===void 0)break;this.#h[e]=t}this.#g=[],this.#_=0,this.#v=[]}if(C!==void 0&&C.size>0&&this.#l(C,this.#r),v!==void 0)this.#d&&u&&(this.#O.length=Math.min(this.#O.length,v)),this.#B(v,p,y);else if(!x&&b<r){let e=l&&s>=c?o:s<c&&!u?s:b;this.#d&&u&&(this.#O.length=Math.min(this.#O.length,e)),this.#B(e,p,g)}return S}prebuildStateStack(e){this.#I(),this.#A(e)}stopBackgroundTokenize(){this.#T=-1,!this.#b&&(this.#b=!0,this.#x=!1,this.#y=-1,this.#w=-1,this.#E=void 0,this.#D=0,this.#g=[],this.#_=0,this.#v=[],this.#R())}pauseBackgroundTokenize(){this.#b||this.#x||(this.#f&&console.log(`[diffs/editor] background tokenization paused`,{jobId:this.#S}),this.#x=!0)}resumeBackgroundTokenize(){this.#b||!this.#x||this.#t===void 0||this.#y<0||(this.#f&&console.log(`[diffs/editor] background tokenization resumed`,{jobId:this.#S}),this.#x=!1,this.#z(this.#S))}#I(){this.#t===void 0&&!di(this.#o.languageId)&&this.#e.getLoadedLanguages().includes(this.#o.languageId)&&(this.#t=this.#e.getLanguage(this.#o.languageId))}#L(){this.#k||=(globalThis.addEventListener(`message`,this.#j),!0)}#R(){this.#k&&=(globalThis.removeEventListener(`message`,this.#j),!1)}#z(e){globalThis.postMessage({type:`tokenize`,tokenizerId:this.#C,jobId:e})}#B(e,t,n=0){if(di(this.#o.languageId))return;let r=++this.#S;this.#f&&console.log(`[diffs/editor] background tokenization scheduled`,{jobId:r,startLine:e,changedLineRanges:t,changedRangeIndex:n}),this.#b=!1,this.#x=!1,this.#y=e,this.#w>=0&&(this.#T=Math.max(this.#T,this.#w)),this.#w=-1,this.#E=t,this.#D=n,this.#L(),this.#z(r)}#V(e){if(this.#t===void 0||this.#h.length>e)return;if(!this.#b){this.#w>=0?this.#w=Math.max(this.#w,e):this.#T=Math.max(this.#T,e);return}let t=++this.#S;this.#b=!1,this.#x=!1,this.#y=this.#h.length-1,this.#w=e,this.#T=-1,this.#E=void 0,this.#D=0,this.#L(),this.#z(t)}#H(e,t){let n=this.#o.getLineText(e);if(n.length>this.#s)return console.warn(`[diffs] Line(${e}) too long to tokenize: ${n.length}`),this.#U(e,null),{resolvedTokens:[[0,``,n]],state:t};if(this.#t===void 0||n===``||n.trim()===``)return this.#U(e,null),{resolvedTokens:[[0,``,n]],state:t};let r=li(this.#t,this.#a,n,t,oi,this.#d);return this.#U(e,r.bracketIgnoredRanges),{resolvedTokens:r.resolvedTokens,state:r.ruleStack}}#U(e,t){this.#d&&(this.#O[e]=t)}#W(e){let t=e.changedLineChanges??[[e.startLine,e.endLine,e.lineDelta]],n=e.startLine+1;n<=this.#h.length-n?(this.#g=this.#h,this.#_=0,this.#h=this.#h.slice(0,n)):(this.#_=n,this.#g=this.#h.slice(n),this.#h.length=Math.min(this.#h.length,n)),this.#v=t}#G(e){let t=e;for(let n=this.#v.length-1;n>=0;n--){let[r,i,a]=this.#v[n];if(a!==0){if(t>i)t-=a;else if(t>r)return this.#h[e]}}return this.#g[t-this.#_]??this.#h[e]}#K(e,t){let n=Math.min(Math.max(0,e),this.#o.lineCount);if(this.#h.length>n||this.#t===void 0)return!0;let r=t===void 0?0:performance.now(),i=this.#h.length-1,a=this.#h[i]??E;for(;i<n;){this.#h[i]=a;let e=this.#o.getLineText(i);if(e.length<=this.#s&&e!==``&&e.trim()!==``){let t=li(this.#t,this.#a,e,a,oi,this.#d,!1);this.#U(i,t.bracketIgnoredRanges),a=t.ruleStack}else this.#U(i,null);if(i++,this.#h[i]=a,t!==void 0&&performance.now()-r>t)break}return i>=n}#q(e){if(this.#b||this.#x||this.#t===void 0||e!==this.#S)return;this.#F();let t=this.#K(this.#w,1);if(!(this.#b||this.#x||e!==this.#S)){if(t){this.stopBackgroundTokenize();return}this.#y=this.#h.length-1,this.#z(e)}}#J(e){if(this.#b||this.#x||this.#t===void 0||e!==this.#S)return;this.#F();let t=performance.now(),n=new Map,r=this.#o.lineCount,i=this.#E,a=this.#y,o=this.#h[a]??E,s=!1,c=this.#D,l=i?.[c]?.[1];for(;a<r;){this.#h[a]=o;let e=l===void 0?void 0:this.#G(a+1),r=this.#o.getLineText(a);if(r.length>this.#s)console.warn(`[diffs] Line(${a}) too long to tokenize: ${r.length}`),n.set(a,[[0,``,r]]),this.#U(a,null);else if(r===``||r.trim()===``)n.set(a,[[0,``,r]]),this.#U(a,null);else{let e=li(this.#t,this.#a,r,o,oi,this.#d);n.set(a,e.resolvedTokens),this.#U(a,e.bracketIgnoredRanges),o=e.ruleStack}if(this.#h[a+1]=o,s=l!==void 0&&a>=l&&e!==void 0&&o.equals(e),a++,s){c++;let e=i?.[c];if(e===void 0)break;if(l=e[1],this.#h[e[0]]===void 0)s=!1;else{a=e[0],o=this.#h[a]??o,s=!1;continue}}if(performance.now()-t>1)break}if(this.#l(n,this.#r),!(this.#b||this.#x||e!==this.#S)){if(s||a>=r){let e=this.#T;this.stopBackgroundTokenize(),e>=0&&this.#V(e);return}this.#y=a,this.#D=c,this.#z(e)}}};function li(e,t,n,r,i,a=!0,o=!0){let s=e.tokenizeLine2(n,r,i);s.stoppedEarly&&console.warn(`[diffs] Time limit reached when tokenizing line: ${n.substring(0,100)}`);let c=s.tokens,l=c.length/2,u=[],d=[];if(!o&&!a)return{ruleStack:s.ruleStack,resolvedTokens:u,bracketIgnoredRanges:d};for(let e=0;e<l;e++){let r=c[2*e],i=e+1<l?c[2*e+2]:n.length;if(r===i)continue;let s=c[2*e+1];if(o){let e=A.getForeground(s);u.push([r,t[e],n.slice(r,i)])}a&&A.getTokenType(s)>0&&d.push([r,i])}return{ruleStack:s.ruleStack,resolvedTokens:u,bracketIgnoredRanges:d}}function ui(e){return e.map(([e,t,n])=>e===0&&t===``?n===``?H(`br`):n:H(`span`,{dataset:{char:e.toString()},style:`color:${t};`,textContent:n}))}function di(e){return e===`text`||e===`ansi`}function fi(e){let t=e.getSelection?.();if(t==null||t.rangeCount===0)return;let n=t.getRangeAt(0);return{collapsed:n.collapsed,startContainer:n.startContainer,startOffset:n.startOffset,endContainer:n.endContainer,endOffset:n.endOffset}}function pi(e,t){let n=m(e),r=n[n.length-1]??0;return{start:0,end:e.length,text:t,range:{start:{line:0,character:0},end:{line:n.length-1,character:e.length-r}}}}function mi(e){return e!=null&&`renderType`in e&&e.renderType===`virtualized`}var hi=2,gi=1e4,_i=300,vi=256,yi=131072,bi=new TextEncoder,xi=`selection-action`,Si=`application/vnd.pierre.diffs-selections+json`,Ci=class{type;#e;#t;#n;#r=new ti;#i;#a;#o;#s;#c;#l;#u={generation:0,callback:void 0,delivered:!1};#d;#f;#p;#m=new Map;#h=new Map;#g=new Map;#_;#v;#y;#b;#x;#S;#C;#w;#T;#E;#D;#O;#k;#A;#j;#M;#N;#P;#F=!1;#I=!1;#L;#R;#z;#B;#V;#H;#U;#W;#G;#K=!0;#q=!1;#J=!1;#Y=!1;#X;#Z=!1;#Q=!1;#$=!1;#ee;#te=!1;#ne;#re=``;#ie;#ae;#oe;#se;#ce;#le;#ue=!1;#de=!1;#fe=!1;#pe=!1;#me;#he;#ge;#_e=0;#ve=!1;#ye=!1;#be;#xe=[];#Se=new Map;#Ce=new Map;#we=(e,t)=>{if(this.#F&&(this.#M?.updateRenderCache(e,t),this.#B!==void 0&&this.#B.totalLines!==1/0)){let t=this.#be===void 0?void 0:new Set(this.#be.response.edits.map(e=>e.range.start.line)),n=!1,{startingLine:r,totalLines:i}=this.#B,a=Math.min(r+i,(this.#n??this.#t)?.document?.lineCount??0);for(let[i,o]of e)if(i>=r&&i<a){let e=this.#hn(i);e!==void 0&&(e.replaceChildren(...ui(o)),n||=t?.has(i)===!0)}n&&this.#oe!==void 0&&this.#Ut(this.#oe)}};constructor(e,t={},n){this.type=e,this.#e=t,this.#z=t.ownsVerticalViewport===!0,this.#t=t.initialState,this.#R=n}get#Te(){return this.type,this}setOptions(e){let t=this.#e.renderCaret,n=this.#e.editPrediction;this.#e={...this.#e,...e},t!==this.#e.renderCaret&&(this.#O?.forEach(e=>e.remove()),this.#O=void 0,this.#Wt()),n!==this.#e.editPrediction&&(this.#Lt(!0),this.#xe=[],this.#zt())}__emitEditComplete(e){this.#e.onComplete?.(e)}__getGhostTextRows(){return this.#Ce}setCarets(e){let t=this.#n?.document;t!==void 0&&(this.#O?.forEach(e=>e.remove()),this.#O=void 0,this.#k?.forEach(e=>e.remove()),this.#k=void 0,this.#U=e.length===0?void 0:e.map(e=>{let n=t.normalizePosition(e.anchor),r=t.normalizePosition(e.focus);return{caret:{...e,anchor:n,focus:r},anchorOffset:t.offsetAt(n),focusOffset:t.offsetAt(r)}}),this.#Wt())}edit(e){let t=this.#Te,n=this.#n;if(this.#F)throw Error(`Editor.edit: the editor is already rendering its component`);if(this.#M!=null&&this.#M!==e)throw Error(`Editor.edit: a recycled edit session cannot attach to a different component`);let r=this.#t,i=r?.editor,a=this.#R,o=wi({type:this.type,editStateKey:a,owner:this,initialState:r,previousSession:n}),s=o.diffSession;this.#t=void 0,this.#n=o,this.#M=e,this.#F=!0,this.#I=o.editor!=null;try{if(this.#We(),e.type===`file`&&t.type===`file`)t.#N=e.applyDocumentChange.bind(e),t.#P=(n,r,i)=>{let a={changes:n,file:r,editor:t,lineAnnotations:i};e.__acceptEditorChange(a),t.#e.onChange?.(a),e.emitEditChange(a)},this.#l==null?this.#l=e.__attachEditor(t):e.__resumeEditor(t);else if(e.type===`file-diff`&&t.type===`file-diff`)t.#N=e.applyDocumentChange.bind(e),t.#P=(n,r,i)=>{let a={changes:n,file:r,editor:t,lineAnnotations:i};e.__acceptEditorChange(a),t.#e.onChange?.(a),e.emitEditChange(a)},this.#l==null?this.#l=e.__attachEditor(t):e.__resumeEditor(t);else throw Error(`Editor.edit: Impossible edit state`)}catch(e){throw this.cleanUp(`recycle`),o.type===`file-diff`&&o.diffSession==null&&(o.diffSession=s),this.#l==null&&a!=null&&(t.type===`file`?Qe.releaseFile(a,t):Qe.releaseFileDiff(a,t)),this.#n=n,this.#l??(this.#M=void 0,this.#N=void 0,this.#P=void 0),r!=null&&i!=null&&(r.editor=i),this.#t=r,e}return()=>{this.cleanUp(`complete`)}}applyEdits(e,t=!0){let n=this.#n?.document;if(n==null)throw Error(`Editor.applyEdits: Editor is not attached`);let r=this.#Y,i=this.#oe,a=i?.map(e=>[n.offsetAt(e.start),n.offsetAt(e.end)]),o=i===void 0?void 0:n.resolveEdits(e).sort((e,t)=>e.start-t.start),s=n.applyEdits(e,t,i);if(s===void 0)return;let c;i!==void 0&&a!==void 0&&o!==void 0&&(c=on(n,i,a,o),t&&n.setLastUndoSelectionsAfter(c)),this.#un(s,c,this.#fn(s),{skipFocus:!r})}get canUndo(){return(this.#n??this.#t)?.document?.canUndo??!1}get canRedo(){return(this.#n??this.#t)?.document?.canRedo??!1}undo(){this.#$e(`undo`)}redo(){this.#$e(`redo`)}getFile(){let e=this.#n??this.#t,t=e?.fileInfo,n=e?.document;if(t===void 0||n===void 0)return;let r={...t};return Object.defineProperty(r,"contents",{enumerable:!0,get:()=>n.getText()}),r}getText(){return(this.#n??this.#t)?.document?.getText()??``}getViewState(){let e=this.#F?this.#M:void 0;if(!this.#F&&this.#n?.editor!=null)return Ye(this.#n.editor);let t=this.#oe?.map(e=>({...e,start:{...e.start},end:{...e.end}}));if(e==null)return{selections:t};let n=this.#Ue(),r=e.getCodeScrollLeft();return n==null?{selections:t,view:{scrollLeft:r}}:{selections:t,view:{scrollLeft:r,scrollTop:n.scrollTop}}}getEditState(){let e=this.#n;if(e!=null){if(this.#M==null)throw Error(`Editor.getEditState: active ${this.type} session has no component`);return Xe(e)}}setViewState({selections:e,view:t}){if(!this.#F||this.#M===void 0||this.#n?.document===void 0)throw Error(`Editor.setViewState: Editor is not attached`);if(this.#K=!1,this.#Ut(e??[]),t!=null){this.#M.setCodeScrollLeft(t.scrollLeft);let e=this.#Ue();t.scrollTop!==void 0&&e!=null&&(e.scrollTop=t.scrollTop)}else this.#z&&this.#ht();this.#Ee()}setSelections(e){let t=this.#n?.document;if(t===void 0)throw Error(`Editor.setSelections: Text document is not initialized`);let n=e.map(e=>{let n=t.normalizePosition(e.start),r=t.normalizePosition(e.end),i=e.direction===`none`?0:e.direction===`backward`?-1:1;return J(n,r)>0&&([n,r]=[r,n],i!==0&&(i=i===1?-1:1)),{direction:i,start:n,end:r}});this.#K=!1,this.#Ut(n);let r=n.at(-1);r!==void 0&&this.#Ne(q(r).line),this.#ht()}setMarkers(e){let t=this.#n?.document;if(t===void 0)throw Error(`Editor.setMarkers: Text document is not initialized`);if(e.length===0){this.#H?.cleanup(),this.#H=void 0,this.#Ut(this.#oe??[]);return}this.#H??=new Xn({popoverManager:this.#Le(),getLineHeight:()=>this.#r.lineHeight,getOverlayElement:()=>this.#E,getGutterWidth:()=>this.#gn(),getCharX:(e,t)=>this.#yn(e,t),getLineY:e=>this.#vn(e),isMouseDown:()=>this.#$||this.#Q}),this.#H.setMarkers(e,t),this.#w!==void 0&&this.#H.listenHover(this.#w),this.#Ut(this.#oe??[]),this.#Wt()}focus(e){let t=e?.preventScroll??!1,n=e?.lineNumber;if(n===`first-visible`||typeof n==`number`){let r=this.#n?.document;if(r==null||!this.#F||this.#M==null)return;let i=n===`first-visible`?this.#ft(e?.offset):n;if(i==null)return;let a=r.normalizePosition({line:i-1,character:n===`first-visible`?0:e?.character??0});this.#pt(a,t);return}let r=this.#oe?.at(-1);if(r!==void 0){let e=r.direction===-1?r.end:r.start;this.#lt(e,t)}else this.#lt(void 0,t)}blur(){this.#X=void 0,this.#Y=!1,this.#q=!1,this.#w?.blur()}cleanUp(e=`discard`){let t=this.#M,n=e===`recycle`;this.#Lt(!0,!1),n||(this.#xe=[]);let r=this.#n;if(t!=null&&r!=null){let e=!this.#Ee();n||this.#De(e)}if(this.#Be(),n||(this.#u.delivered=!1),this.#F=!1,O(this.#Xe),this.#i?.cleanUp(),this.#i=void 0,this.#s?.forEach(e=>e()),this.#s=void 0,this.#o?.forEach(e=>e()),this.#o=void 0,n||(this.#l?.(),this.#l=void 0),this.#f=void 0,this.#p=void 0,this.#m.clear(),this.#h.clear(),this.#g.clear(),this.#_=void 0,this.#v?.remove(),this.#v=void 0,this.#y?.remove(),this.#y=void 0,this.#b?.remove(),this.#b=void 0,this.#x?.remove(),this.#x=void 0,this.#S=void 0,this.#a?.cleanUp(),this.#a=void 0,this.#C=void 0,this.#T=void 0,this.#w?.removeAttribute(`contentEditable`),this.#w=void 0,this.#X=void 0,this.#Y=!1,this.#E?.remove(),this.#E=void 0,this.#j?.disconnect(),this.#j=void 0,this.#pe=!1,this.#me!==void 0&&(cancelAnimationFrame(this.#me),this.#me=void 0),this.#ze(n),!n)try{if(t!=null&&r!=null){let n=this.#Te,r=e===`complete`?`install`:`discard`;if(t.type===`file`&&n.type===`file`)t.__completeEditSession(n,r);else if(t.type===`file-diff`&&n.type===`file-diff`)t.__completeEditSession(n,r);else throw Error(`Editor.cleanUp: Impossible edit state`)}}finally{this.#n=void 0,this.#M=void 0,this.#N=void 0,this.#P=void 0}}#Ee(){let e=this.#M,t=this.#n;if(e==null||t==null)return!1;let n=this.#F?this.getViewState():t.editor??{},{view:r}=n,i=r!=null&&(r.scrollLeft!==0||(r.scrollTop??0)!==0),a=n.selections!=null||i;if(t.editor=Ye(n),t.type===`file`)return!1;let o=e.__captureDocumentSessionState();if(t.diffSession=o?.diffSession,o==null)return!1;let s=t.document;return o.hasChanges||a||s?.canUndo===!0||s?.canRedo===!0}#De(e=!1){let t=this.#R;if(t==null)return;let n=this.#Te;n.type===`file`?Qe.releaseFile(t,n):Qe.releaseFileDiff(t,n,e)}__postponeBgTokenizeToNextFrame(){let e=this.#i;e!==void 0&&(e.pauseBackgroundTokenize(),requestAnimationFrame(()=>{e.resumeBackgroundTokenize()}))}__captureFocusForDOMReplacement(){let e=this.#w,t=this.#S?.shadowRoot?.activeElement;e!=null&&(this.#Y||t===e||t!=null&&e.contains(t))&&(this.#X={})}__getDocumentContents(e){let t=this.#n?.fileInfo,n=this.#n?.document;if(n==null)return t==null||e==null?void 0:{...t,contents:e.contents};let r=t??e;if(r!=null)return{name:r.name,lang:r.lang,contents:n.getText()}}__getDocumentSessionState(){let e=this.#n?.diffSession;return e==null?void 0:er(e)}__syncRenderView(e){let{highlighter:t,fileContainer:n,renderRange:r,externalDocument:i=!1}=e,a=e,o;if(`file`in a&&this.type===`file`)o=a.file;else if(`fileDiff`in a&&this.type===`file-diff`)o=a.fileDiff;else throw Error(`Editor.__syncRenderView: Impossible render state`);let s=a.lineAnnotations,c=this.#R,l=this.#M,u=this.#n;if(!this.#F||l==null||u==null)return;let d=n.shadowRoot;if(d==null){console.error(`[editor] Could not find the shadow root.`);return}let f,p,m,h,g;for(let e of d.querySelectorAll(`[data-code]`)){let t=e.dataset.deletions!=null;t||(f=e);for(let n of e.children){if(!(n instanceof HTMLElement))continue;let{gutter:e,content:r}=n.dataset;e==null?r!=null&&(t?g=n:m=n):t?h=n:p=n}}if(g==null)this.#T=void 0;else if(h==null)throw Error(`Editor.__syncRenderView: the deletions column has no gutter`);else this.#T={content:g,gutter:h};if(f===void 0||m===void 0){this.#X=void 0;return}this.#Le().setViewportElements(n,f),this.#S!==n&&(this.#S=n,this.#v!==void 0&&n.appendChild(this.#v),this.#y!==void 0&&d.appendChild(this.#y),this.#b!==void 0&&d.appendChild(this.#b),this.#x!==void 0&&d.prepend(this.#x));let _=o.lang??C(o.name),v=`contents`in o?o.contents:o.additionLines.join(``),y=u.document,b=e.resetHistory??(y!=null&&u.fileInfo!=null&&(u.fileInfo.name!==o.name||y.languageId!==_)),x=i&&y!==void 0&&y.getText()!==v?[pi(y.getText(),v)]:void 0,S=i&&b;if(u.document==null||u.fileInfo==null||c==null&&(u.fileInfo.name!==o.name||u.document.languageId!==_)||S){this.#Lt(!0),this.#xe=[],this.#Be();let{name:e,lang:t}=o,n=S||c==null&&u.fileInfo!=null?void 0:u.document;if(y!=null&&n==null&&(u.editor=void 0),n==null){let e=new ue({maxEntries:this.#e.historyMaxEntries});n=new We(o.name,v,_,0,e)}u.fileInfo={name:e,lang:t},u.document=n,S&&(u.diffSession=void 0),this.#i?.cleanUp(),this.#i=void 0,this.#ze(),this.#h.clear(),this.#oe=this.#ae,this.#e.__debug===!0&&console.log(`[diffs/editor] text document initialized from`,o.name)}if(i&&!S){this.#Oe(u,v,s);let{name:e,lang:t}=o;u.fileInfo={name:e,lang:t}}let w=u.document;if(this.#i==null&&w!=null&&(this.#i=new ci({highlighter:t,textDocument:w,codeOptions:this.#M?.__getEffectiveCodeOptions()??{},matchBrackets:this.#e.matchBrackets,onDeferTokenize:this.#we,onThemeChange:()=>this.#Dt(),setStyle:e=>{this.#b.textContent=e},__debug:this.#e.__debug})),this.#w!==m&&(this.#C=p,this.#w=ct(m,{contentEditable:`true`,role:`textbox`,ariaMultiLine:`true`,autocapitalize:`off`,writingSuggestions:`off`,autocorrect:!1,spellcheck:!1,translate:!1}),this.#E!==void 0&&m.after(this.#E),this.#r.init(m),this.#ot(),this.#Ye(m,p),this.#w!==void 0&&this.#e.__debug===!0&&console.log(`[diffs/editor] full re-render triggered !!!`)),this.#X!=null&&(this.#X.target=m),m.ariaLabel!==o.name&&(m.ariaLabel=o.name),s!==void 0&&s.length>0||this.#Fe)for(let e of this.#w.children){let t=e,{lineAnnotation:n,lineType:r,separator:i}=t.dataset;(n!==void 0||i!==void 0||r===`change-deletion`)&&t.setAttribute(`contenteditable`,`false`)}this.#Re(),this.#i?.syncTheme(this.#M?.__getEffectiveCodeOptions()??{}),this.#L=s,this.#B=r,this.#V=r?.totalLines,this.#i?.prebuildStateStack(r);let T=u.editor,ee=this.#I;try{if(this.#H?.removePopover(),(this.#oe!==void 0||this.#se!==void 0||this.#H!==void 0)&&this.#Ut(this.#oe??[]),this.#Wt(),this.#ye&&this.#zt(),this.#ae!==void 0&&this.#A!==void 0?(this.#ae=void 0,this.#ht(!1,`center`)):this.#ce===void 0?this.#X===void 0?this.#oe!==void 0&&this.#oe.length>0&&this.#Y&&!this.#fe&&this.focus({preventScroll:!0}):this.#ut():this.#_t(this.#ce,this.#le,this.#de),this.#fe&&this.#W?.focus(),ee&&(this.#I=!1,T!==void 0&&this.setViewState(T)),this.#e.__debug===!0&&r!==void 0){let{startingLine:e,totalLines:t}=r;console.log(`[diffs/editor] render file:`,o.name,`RenderRange:`,e+`-`+(e+t),`of`,u.document?.lineCount,`lines`)}i&&l.__acknowledgeDocumentUpdate(),this.#Ee()}catch(e){throw this.#I=ee,u.editor=T,e}x!=null&&this.#dn(x,s),this.#Ve(l)}#Oe(e,t,n){let r=e.document;if(r==null||r.getText()===t)return;let i=this.#oe,a=i?.map(e=>[r.offsetAt(e.start),r.offsetAt(e.end)]),o={start:0,end:r.getText().length,text:t};if(r.applyResolvedEdits([o],!0,i,void 0,!0)!=null){if(i!=null&&a!=null){let e=on(r,i,a,[o]);r.setLastUndoSelectionsAfter(e),this.#oe=e}(this.#L!=null||n!=null)&&r.setLastUndoLineAnnotations(this.#L??[],n??[]),this.#i?.cleanUp(),this.#i=void 0,this.#Re(),this.#h.clear(),this.#H?.removePopover(),this.#W!==void 0&&this.#se!==void 0&&this.#W.updateMatches({syncSelection:!1})}}get#ke(){return this.#M?.type===`file-diff`?this.#M:void 0}get#Ae(){return mi(this.#M)?this.#M:void 0}#je(e){return this.#ke?.isLineRenderable?.(e+1)??!0}get#Me(){let e=this.#ke;if(e!=null)return(t,n)=>{let r=e.getNearestRenderableLine(t+1,n);return r==null?void 0:r-1}}#Ne(e){this.#je(e)||this.#ke?.revealLine?.(e+1)}get#Pe(){return this.#ke?.options.diffStyle??`split`}get#Fe(){return this.type===`file-diff`}get#Ie(){return this.#M?.options.overflow===`wrap`}#Le(){return this.#a??=new gt({hasActivePopover:()=>this.#G!==void 0||this.#H?.isPopoverVisible()===!0,updateActivePopover:()=>{this.#Xt(),this.#H?.updatePopoverPosition()}})}#Re(){this.#m.clear(),this.#g.clear(),this.#_=void 0}#ze(e=!1){this.#Et(null),this.#f=void 0,this.#p=void 0,this.#Ge(),this.#J=!1,this.#D?.forEach(e=>e.remove()),this.#D=void 0,this.#O?.forEach(e=>e.remove()),this.#O=void 0,this.#k?.forEach(e=>e.remove()),this.#k=void 0,e||(this.#U=void 0),this.#oe=void 0,this.#ce=void 0,this.#H?.cleanup(),this.#H=void 0,this.#W?.cleanup(),this.#W=void 0,this.#G?.cleanup(),this.#G=void 0,this.#K=!0}#Be(){let e=this.#u;e.generation++,e.callback!=null&&(O(e.callback),e.callback=void 0)}#Ve(e){let t=this.#u,n=this.#n?.document;if(t.delivered||t.callback!=null||n==null)return;let{generation:r}=t,i=()=>{if(t.callback!==i||(t.callback=void 0,r!==t.generation||this.#M!==e||this.#n?.document!==n))return;let a=this.#w,o=this.#S?.shadowRoot;a!=null&&o!=null&&o.contains(a)&&(t.delivered=!0,this.#e.onAttach?.(this,e))};t.callback=i,D(i)}#He(){let e=this.#Ae?.getEditorViewport?.();if(e!=null)return e;let t=this.#S;if(this.#M!=null&&t!=null)return ht(t)}#Ue(){if(!this.#z)return;let e=this.#Ae?.getEditorViewport?.();if(e instanceof HTMLElement)return e}#We(){this.#v=H(`style`,{dataset:`editorGlobalCss`,textContent:`
581
581
  [data-annotation-slot] {
582
582
  user-select: none;
583
583
  -webkit-user-select: none;
584
584
  }
585
- `}),this.#y=z(`style`,{dataset:`editorCss`,textContent:nr}),this.#b=z(`style`,{dataset:`editorThemeCss`}),this.#x=Yr(),this.#E=z(`div`,{dataset:`editorOverlay`});let e=e=>{let t=e.composedPath()[0];return t instanceof Node&&this.#w?.contains(t)===!0},t=()=>{this.#X!=null&&(this.#X=void 0,this.#Y=!1,this.#q=!1)},n=e=>{if(e.pointerType!==`mouse`)return;let t=this.#Q;this.#Ge(),t&&this.#lt(),this.#e.enabledSelectionAction===!0&&this.#oe!==void 0&&this.#oe.length>0&&!W(this.#oe.at(-1))&&this.#Ut(this.#oe)};this.#s=[B(document,`focusin`,n=>{e(n)||t()},{passive:!0}),B(document,`pointerdown`,n=>{e(n)||queueMicrotask(t)},{capture:!0,passive:!0}),B(document,`selectionchange`,()=>{let e=this.#S?.shadowRoot;if(this.#q||this.#J||e==null||!this.#Y||this.#oe!==void 0&&this.#oe.length>1&&!this.#$)return;let t=document.getSelection();if(t==null)return;let n;if(n=typeof t.getComposedRanges==`function`?t.getComposedRanges({shadowRoots:[e]})?.[0]:fi(e),n===void 0||!this.#Sn(n))return;let r=It(n,0);if(r!==void 0){if(this.#$&&this.#te&&this.#oe!==void 0&&this.#oe.length>0){let e=this.#oe.at(-1);this.#Ut([un(e,r)]);return}if(this.#$)this.#ne===void 0?this.#ne=r:r=ln(this.#ne,r);else if(this.#ne!==void 0)r.direction=ln(this.#ne,r).direction;else if(this.#oe!==void 0&&this.#oe.length===1){let e=this.#oe[0];K(e.start,r.start)===0&&K(e.end,r.end)===0&&(r.direction=e.direction)}this.#ee!==void 0&&(this.#ee.focusLine=G(r).line,this.#Ot())||(this.#ie===void 0?this.#Ut([r]):this.#Ut([...this.#ie.filter(e=>!an(e,r)),r]))}},{passive:!0}),B(document,`pointerup`,n,{passive:!0}),B(document,`pointercancel`,n,{passive:!0}),B(document,`keydown`,e=>{e.key===`Shift`?this.#ne=this.#oe?.at(-1):e.key===`Alt`&&!e.repeat&&this.#Y&&this.#e.editPrediction?.mode===`subtle`&&(this.#ve=!this.#ve,this.#Ut(this.#oe??[]))},{passive:!0}),B(document,`keyup`,e=>{e.key===`Shift`&&(this.#ne=void 0)},{passive:!0})]}#Ge(){this.#c?.forEach(e=>e()),this.#c=void 0,this.#q=!1,this.#Q=!1,this.#$=!1,this.#ee=void 0,this.#te=!1,this.#ne=void 0,this.#ie=void 0}#Ke(e){this.#c?.forEach(e=>e()),this.#c=e}#qe(){return this.#M?.options.enableLineSelection===!0}#Je(){this.#J=this.#oe!==void 0}#Ye(e,t){let{onFocus:n,onBlur:r}=this.#e,i=t=>{let n=t.composedPath()[0];return n!==void 0&&(n===e||e.contains(n))};this.#o?.forEach(e=>e()),this.#o=[B(e,`focus`,()=>{this.#Y=!0,n?.(),!this.#$&&!this.#q&&this.#oe!==void 0&&this.#oe.length>0&&this.#mt(this.#oe.at(-1))},{passive:!0}),B(e,`blur`,()=>{this.#X?.target===e&&(this.#X=void 0,this.#q=!1),this.#Y=!1,r?.()},{passive:!0}),B(e,`pointerdown`,t=>{if(this.#K=!0,this.#J=!1,t.pointerType!==`mouse`)return;if(this.#ee=void 0,this.#yt(t)){this.#Tt(!0),this.#oe!==void 0&&this.#Ut([]);return}this.#Tt(!1),this.#H?.removePopover();let n=[];if(C()&&this.#L!==void 0&&this.#L.length>0){let t=[...e.querySelectorAll(`[data-line-annotation]`)].map(e=>[B(e,`mouseenter`,()=>{this.#q=!0}),B(e,`mouseleave`,()=>{this.#q=!1})]).flat();n.push(...t)}this.#$=!0;let r=t.button===0&&t.altKey&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey;if(this.#ne=void 0,r?(this.#ee={pointerId:t.pointerId,startClientX:t.clientX,clientX:t.clientX,startScrollLeft:e.parentElement?.scrollLeft??0},this.#ie=void 0,this.#oe=void 0,this.#Ut([]),n.push(B(document,`pointermove`,e=>{let t=this.#ee;t!==void 0&&e.pointerType===`mouse`&&e.pointerId===t.pointerId&&(t.clientX=e.clientX,this.#Ot())},{capture:!0,passive:!0}))):t.button===0&&nt(t)&&(this.#ie=this.#oe?.map(e=>({...e}))),this.#Ke(n),t.shiftKey){let e=this.#oe?.at(-1);if(e!==void 0){let t=e.direction===-1?e.end:e.start;this.#mt({start:t,end:t,direction:0})}this.#te=!0}},{passive:!0}),B(e,`keydown`,e=>{if(!i(e)||(this.#K=!0,this.#J=!1,e.isComposing||e.keyCode===229))return;if(e.key===`Tab`&&!e.shiftKey&&!e.ctrlKey&&!e.metaKey&&!e.isComposing&&!this.#Z&&(!e.altKey||this.#e.editPrediction?.mode===`subtle`)&&this.#be?.rendered===!0){this.#Vt(),e.preventDefault();return}if(e.key===`Escape`&&this.#be!==void 0){this.#Lt(!0),e.preventDefault();return}let t=ct(e,this.#e.keymap);if(t!==void 0){e.preventDefault(),t===`simplifySelection`&&(this.#W?.close(),this.#W=void 0,this.#fe=!1,this.#G?.cleanup(),this.#G=void 0),this.#$e(t);return}let n=rt(e),r=this.#n?.document;if(this.#oe!==void 0&&this.#oe.length>0&&n!==void 0&&r!==void 0){let t={getSoftLineOffsets:this.#Ie?e=>this.#xn(e):void 0,resolveRenderableLine:this.#Me};e.shiftKey?this.#Ut(Wt(r,this.#oe,n,t)):this.#Ut(Rt(r,this.#oe,n,t)),this.#ht(),e.preventDefault();return}if((e.key.length===1?e.key.toLowerCase():e.key)===`v`&&nt(e)){if(e.repeat&&this.#Fe){e.preventDefault();return}if(this.#e.clipboard!==void 0){e.preventDefault(),S(this.#Xe);return}}if(this.#W!==void 0){let t=lt(e);if(t!==void 0){e.preventDefault(),this.#W.navigate(t===`previous`);return}}}),B(e,`copy`,e=>{i(e)&&(e.preventDefault(),this.#Ct()?e.clipboardData?.setData(`text`,this.#wt()):this.#tn(e.clipboardData,this.#$t(),this.#en()))}),B(e,`cut`,e=>{if(i(e)){if(e.preventDefault(),this.#Ct())e.clipboardData?.setData(`text`,this.#wt());else{let t=this.#en();this.#tn(e.clipboardData,this.#nn(),t)}}}),B(e,`paste`,e=>{if(!i(e))return;e.preventDefault();let t=e.clipboardData,n=this.#n?.document;if(t===null||n===void 0)return;let r=t.getData(`text`),a=this.#oe?.length??0;if(a>1){let e=t.getData(Si);if(e!==void 0)try{let t=JSON.parse(e);Array.isArray(t)&&t.length===a&&(r=t)}catch{}}this.#in(Array.isArray(r)?r.map(e=>n.normalizeEol(e)):n.normalizeEol(r),void 0,!0,`document`)}),B(e,`beforeinput`,e=>{if(i(e)){if(e.inputType===`insertCompositionText`){this.#Lt(!0);return}e.preventDefault(),this.#ct(e.inputType,e.data)}}),B(e,`drop`,e=>{i(e)&&e.preventDefault()}),B(e,`compositionstart`,e=>{i(e)&&(this.#Lt(!0),this.#Z=!0,this.#q=!0)},{passive:!0}),B(e,`compositionend`,e=>{if(!i(e))return;this.#q=!1;let t=this.#Z;this.#Z=!1,(e.data!==``||!t)&&this.#ct(`insertText`,e.data)},{passive:!0})];let a=this.#S?.shadowRoot?.querySelector(`[data-deletions]`);if(a!=null&&this.#o.push(B(a,`pointerdown`,e=>{let t=e.composedPath();if(b(t)){this.#Je();return}let n=t[0],r=n instanceof HTMLElement?n.closest(`[data-column-number]`):null;if(r instanceof HTMLElement){if(this.#qe()){this.#Je();return}if(this.#St(r,a,e.pointerType===`mouse`))return}this.#Tt(!0),this.#oe!==void 0&&this.#Ut([])},{passive:!0})),t!==void 0){let e=(e,t=!1)=>{let n=e;return n?.dataset.lineNumberContent===void 0?t&&n?.tagName===`SPAN`&&(n=n.closest(`[data-line]`)):n=n.parentElement??void 0,n},n=e=>{if(e===void 0)return;let t=e.dataset.lineType,n=V(e)??V(e,`columnNumber`);if(n!==void 0&&t!==void 0&&rn(t))return n-1};this.#o.push(B(t,`pointerdown`,t=>{let r=t.composedPath();if(b(r)){this.#Je();return}let i=e(r[0]);if(i!==void 0&&this.#qe()){this.#Je();return}if(i?.dataset.lineType===`change-deletion`){let e=i.closest(`[data-code]`);e!=null&&this.#St(i,e,t.pointerType===`mouse`);return}if(t.pointerType!==`mouse`)return;let a=this.#n?.document,o=n(i);if(o===void 0||a===void 0)return;this.#K=!0,this.#H?.removePopover();let s=this.#vt(o,o,a);this.#Q=!0,this.#ne=s,this.#Ut([s]),this.#mt(s),this.#lt(),this.#Ke([B(document,`mousemove`,t=>{if(!this.#Q)return;let r=this.#n?.document,i=n(e(t.composedPath()[0],!0));if(i===void 0||r===void 0)return;let a=this.#ne?.start.line??i,o=this.#vt(a,i,r);this.#ne??=o,this.#Ut([o]),this.#lt(o.direction===-1?o.start:o.end)},{passive:!0})])},{passive:!0}))}this.#H?.listenHover(e),this.#j?.disconnect(),this.#j=new ResizeObserver(this.#at),this.#j.observe(e),this.#j.observe(e.parentElement),this.#Ze(e)}#Xe=async()=>{let e=this.#e.clipboard;if(e!==void 0){let t=await e.readText(),n=this.#oe?.length??0;if(n>1){let r=await e.readText(Si);try{let e=JSON.parse(r);Array.isArray(e)&&e.length===n&&(t=e)}catch{}}let r=this.#n?.document;r!=null&&this.#in(Array.isArray(t)?t.map(e=>r.normalizeEol(e)):r.normalizeEol(t),void 0,!0,`document`)}};#Ze(e){this.#Fe&&this.#Pe===`split`&&this.#Ie&&(this.#d={top:e.offsetTop-this.#r.paddingTop,left:e.offsetLeft-this.#gn()},this.#e.__debug===!0&&console.log(`[diffs/editor] content offset:`,this.#d))}get#Qe(){if(this.#Fe&&this.#Pe===`split`&&this.#Ie)return this.#d}#$e(e){let t=this.#n?.document;if(t!=null)switch(e){case`openSearchPanel`:this.#Zt(`find`);break;case`openSearchReplacePanel`:this.#Zt(`replace`);break;case`findNextMatch`:{let e=this.#oe;if(e===void 0)break;if(e.some(W)){let n=e.map(e=>W(e)?On(t,e):e);this.#Ut(n),this.focus()}else{let n=hn(t,e);if(n!==void 0){this.#Ut(n);let e=n.at(-1);e!==void 0&&this.#Ne(G(e).line),this.#ht()}}break}case`moveLineUp`:case`moveLineDown`:this.#it(e===`moveLineUp`?-1:1);break;case`copyLineUp`:case`copyLineDown`:this.#nt(e===`copyLineUp`?-1:1);break;case`simplifySelection`:{let e=this.#oe,t=e?.at(-1);if(e===void 0||t===void 0)break;if(e.length>1)this.#Ut([t]),this.#lt(G(t));else if(!W(t)){let e=G(t);this.#Ut([{start:e,end:e,direction:0}]),this.#lt(e)}break}case`insertBlankLine`:this.#rt();break;case`deleteHardLineForward`:this.#cn();break;case`toggleComment`:case`toggleBlockComment`:{let n=this.#oe;if(n===void 0)break;let{lineComment:r,blockComment:i}=Er(t.languageId,this.#e.languageCommentConfig);if(e===`toggleComment`&&r!==null){this.#tt(Dr(t,n,r));break}let a=e===`toggleComment`,o=jr(t,n,i,a);o!==void 0&&this.#tt(o.edits,a?void 0:e=>o.nextSelectionOffsets.map(([t,n,r])=>({start:e.positionAt(t),end:e.positionAt(n),direction:r})));break}case`indent`:case`outdent`:case`indentLess`:case`indentMore`:if(this.#oe!==void 0){let n=[],r=[],i=new Set,a=[];for(let o of this.#oe){let s=o.start.line,c=e===`outdent`||e===`indentLess`,l=e===`indentLess`||e===`indentMore`;if(s!==o.end.line||c||l){let e=Lt(t,o,this.#r.tabSize,c);for(let t of e[0]){let e=t.range.start.line;i.has(e)||(i.add(e),n.push(t))}r.push(e[1])}else{let e=t.charAt({line:s,character:0})===` `?` `:` `.repeat(this.#r.tabSize);n.push({range:o,newText:e}),a.push({line:s,startCharacter:o.start.character,addedLength:e.length-(o.end.character-o.start.character),selectionIndex:r.length});let i={line:o.start.line,character:o.start.character+e.length};r.push({start:i,end:i,direction:0})}}for(let e of a){let t=0;for(let n of a)n.line===e.line&&n.startCharacter<e.startCharacter&&(t+=n.addedLength);if(t!==0){let n=r[e.selectionIndex],i={line:e.line,character:n.start.character+t};r[e.selectionIndex]={start:i,end:i,direction:0}}}let o=t.applyEdits(n,!0,this.#oe,r);o!==void 0&&this.#un(o,r)}break;case`selectAll`:{let e=gn(t);this.#Ut([e]),this.focus();let n=this.#pn(),r=n[0]?.[0],i=n.at(-1)?.[1];r!==void 0&&i!==void 0&&(this.#J=!0,this.#mt({start:{line:r,character:0},end:{line:i,character:t.getLineLength(i)},direction:1}));break}case`moveCursorToDocStart`:case`moveCursorToDocEnd`:{let n=_n(t,e===`moveCursorToDocEnd`,this.#Fe);this.#Ut([n]),this.#Ne(G(n).line),this.#ht()}break;case`expandSelectionDocStart`:case`expandSelectionDocEnd`:{let n=e===`expandSelectionDocEnd`,r=this.#oe;if(r!==void 0){let e=_n(t,n,this.#Fe);this.#Ut(dn(r,e)),this.#Ne(G(e).line),this.#ht()}}break;case`undo`:case`redo`:this.#et(e)}}#et(e){let t=this.#n?.document;if(t==null||e===`undo`&&!t.canUndo||e===`redo`&&!t.canRedo)return;let n=this.#oe,r=n?.map(e=>[t.offsetAt(e.start),t.offsetAt(e.end)]),i=e===`undo`?t.undo():t.redo();if(i===void 0)return;let[a,o,s,c]=i,l=o??(n!==void 0&&r!==void 0&&c!==void 0?cn(t,n,r,c):void 0),u=s??(this.#L==null?void 0:xt(a,this.#L));this.#un(a,l,u)}#tt(e,t){let n=this.#n?.document,r=this.#oe;if(n===void 0||r===void 0)return;let i=t===void 0,a=i?r.map(e=>[n.offsetAt(e.start),n.offsetAt(e.end)]):void 0,o=i?e.map(e=>{let t=n.offsetAt(e.range.start),r=n.offsetAt(e.range.end);return{start:Math.min(t,r),end:Math.max(t,r),text:e.newText}}).sort((e,t)=>{let n=e.start-t.start;return n===0?e.end-t.end:n}):void 0,s=n.applyEdits(e,!0,r,void 0,!0);if(s===void 0)return;let c=i?cn(n,r,a,o):t(n);n.setLastUndoSelectionsAfter(c),this.#un(s,c,this.#fn(s))}#nt(e){let t=this.#n?.document,n=this.#oe;if(t===void 0||n===void 0)return;let r=pn(n);if(r.length===0)return;let i=[],a=0,o=[];for(let n of r){i.push(a);let r=n.endLine-n.startLine+1;a+=r;let s=t.getText({start:{line:n.startLine,character:0},end:{line:n.endLine,character:t.getLineLength(n.endLine)}});if(e>0){let e={line:n.startLine,character:0};o.push({range:{start:e,end:e},newText:s+t.eol})}else if(n.endLine<t.lineCount-1){let e={line:n.endLine+1,character:0};o.push({range:{start:e,end:e},newText:s+t.eol})}else{let e={line:n.endLine,character:t.getLineLength(n.endLine)};o.push({range:{start:e,end:e},newText:t.eol+s})}}let s=n.map(t=>{let n=t.start.line,a=0,o=r.length-1;for(;a<=o;){let e=a+o>>>1,t=r[e];if(n<t.startLine)o=e-1;else if(n>t.endLine)a=e+1;else{a=e;break}}let s=Math.max(0,a<=o?a:o),c=r[s],l=i[s]+(e>0?c.endLine-c.startLine+1:0);return{start:{...t.start,line:t.start.line+l},end:{...t.end,line:t.end.line+l},direction:t.direction}});this.#tt(o,()=>s)}#rt(){let e=this.#n?.document,t=this.#oe;if(e===void 0||t===void 0)return;let n=t.map(e=>G(e).line),r=Array.from(new Set(n)).sort((e,t)=>e-t),i=new Map,a=new Map,o=[];for(let t=0;t<r.length;t++){let n=r[t],s=e.getLineText(n),c=/^\s*/.exec(s)?.[0]??``;i.set(n,t),a.set(n,c);let l={line:n,character:e.getLineLength(n)};o.push({range:{start:l,end:l},newText:e.eol+c})}let s=t.map((e,t)=>{let r=n[t],o={line:r+1+i.get(r),character:a.get(r).length};return{start:o,end:o,direction:0}});this.#tt(o,()=>s)}#it(e){let t=this.#n?.document,n=this.#oe;if(t===void 0||n===void 0)return;let r=pn(n);if(r.length===0||e<0&&r[0].startLine===0||e>0&&r.at(-1).endLine>=t.lineCount-1)return;let i=t.lineCount,a=e=>e<i-1?{line:e+1,character:0}:{line:e,character:t.getLineLength(e)},o=(e,n)=>{let r=e.map(e=>t.getLineText(e)).join(t.eol);return n?r+t.eol:r},s=[];if(e<0)for(let e of r){let t=e.startLine-1,n=[];for(let t=e.startLine;t<=e.endLine;t++)n.push(t);s.push({range:{start:{line:t,character:0},end:a(e.endLine)},newText:o([...n,t],e.endLine<i-1)})}else for(let e=r.length-1;e>=0;e--){let t=r[e],n=t.endLine+1,c=[];for(let e=t.startLine;e<=t.endLine;e++)c.push(e);s.push({range:{start:{line:t.startLine,character:0},end:a(n)},newText:o([n,...c],n<i-1)})}let c=r.at(-1),l=e>0&&c.endLine===i-2?t.getLineLength(c.endLine):t.getLineLength(i-1),u=n.map(n=>mn(n,e,i,e=>e===i-1?l:t.getLineLength(e))),d=t.applyEdits(s,!0,n,u,!0);d!==void 0&&this.#un(d,u)}#at=()=>{let e=this.#L?.length??0,t=this.#f,n=this.#p;this.#f=void 0,this.#p=void 0;let r=this.#gn()!==t,i=this.#_n()!==n;(r||i)&&(this.#g.clear(),this.#_=void 0,this.#r.clearTextWidthCache(),i&&(this.#h.clear(),(this.#Ie||e>0)&&this.#m.clear()),(this.#oe!==void 0||this.#se!==void 0||this.#H!==void 0)&&(this.#Ut(this.#oe??[]),this.#oe!==void 0&&this.#Y&&this.focus()),this.#H?.removePopover(),this.#Ze(this.#w),this.#Wt())};#ot(){if(this.#pe)return;let e=document.fonts;e!==void 0&&(this.#pe=!0,e.ready.then(()=>{this.#w!==void 0&&this.#r.remeasureCharacterWidth()&&(this.#f=void 0,this.#p=void 0,this.#Re(),this.#h.clear(),(this.#oe!==void 0||this.#se!==void 0||this.#H!==void 0)&&this.#Ut(this.#oe??[]),this.#Wt(),this.#H?.removePopover())}))}#st(e,t,n=this.#B,r){let i=this.#i,a=this.#M,o=this.#N,s=this.#n?.document,c=this.#C,l=this.#w;if(i==null||a==null||o==null||s==null||l==null)return;i.stopBackgroundTokenize();let u=performance.now(),d=i.tokenize(e,n,!this.#Fe&&this.#Ae!=null),f=performance.now();if(d.size>0){let e=l.children,t=new Set;for(let e of d.keys())this.#je(e)&&t.add(e);for(let n=0;n<e.length;n++){let r=e[n];if(r!==void 0){let e=V(r),n=r.dataset.lineType;if(e===void 0||n===`change-deletion`)continue;let i=e-1;if(t.has(i)){let e=d.get(i);if(r.replaceChildren(...ui(e)),t.delete(i),t.size===0)break}}}if(t.size>0){let n=0;for(let t=e.length-1;t>=0;t--){let r=e[t],i=V(r);if(i!==void 0&&r.dataset.lineType!==`change-deletion`){n=i;break}}for(let e of t){if(e<n)continue;let t=d.get(e),r=String(e+1);z(`div`,{dataset:{line:r,lineType:`context`,lineIndex:e.toString()},children:ui(t)},l),c!==void 0&&z(`div`,{dataset:{lineType:`context`,columnNumber:r,lineIndex:e.toString()},children:[z(`span`,{dataset:{lineNumberContent:``},textContent:r})]},c)}}}if(e.lineDelta<0)for(let t of[l.children,c?.children??[]])for(let n=t.length-1;n>=0;n--){let r=t[n],i=V(r)??V(r,`columnNumber`),a=r.dataset.lineType;if(i!==void 0&&a!==`change-deletion`){if(i-1<e.lineCount)break;r.remove()}}let p=e.lineDelta!==0;if(p){let e=l.children.length;for(let t of l.children){let{bufferSize:n}=t.dataset;n!==void 0&&(e+=parseInt(n)-1)}l.style.gridRow=`span `+e,c!==void 0&&(c.style.gridRow=`span `+e)}a.updateRenderCache(d,i.themeType,{shouldRefreshDiffsView:this.#Fe&&!p,lineCountChangeInFlight:p}),p&&o(s,t,r),(p||this.#Fe&&this.#Pe===`unified`)&&this.#Re(),t!=null&&(this.#L=t,(!this.#Fe||!p)&&Dt(t,l,c,a.getAnnotationSlotName)),this.#Wt(),this.#e.__debug===!0&&console.log(`[diffs/editor] re-render in: ${H(performance.now()-f)}ms,`,`tokenize in: ${H(f-u)}ms (${d.size} dirty lines)`)}#ct(e,t){switch(e){case`insertText`:{let e=t??``,n=this.#n?.document,r=this.#oe,i=n!==void 0&&r!==void 0?Xt(n,r,e,this.#e.autoSurround):void 0;this.#in(i??e);break}case`insertCompositionText`:break;case`insertLineBreak`:case`insertParagraph`:this.#in(this.#n?.document?.eol??`
586
- `);break;case`deleteContentBackward`:this.#an();break;case`deleteContentForward`:this.#an(!0);break;case`deleteSoftLineBackward`:case`deleteHardLineBackward`:this.#on();break;case`deleteWordBackward`:this.#sn();break;case`insertTranspose`:this.#ln();break;default:console.warn(`[diffs] Unknown input type: ${e}`,t)}}#lt(e,t=!0,n){this.#Y=!0,e===void 0?n?.()===!1?this.#Y=!1:this.#w?.focus({preventScroll:t}):(this.#q=!0,this.#mt({start:e,end:e,direction:0}),S(()=>{if(n?.()===!1||!this.#Y){this.#q=!1;return}this.#w?.focus({preventScroll:t}),S(()=>{this.#q=!1})}))}#ut(e){let t=this.#X;if(t==null)return;if(this.#fe){this.#X=void 0,this.#Y=!1,this.#q=!1;return}let n=this.#w;if(n==null||!this.#dt(n)){this.#X=void 0,this.#Y=!1;return}let r=()=>{if(this.#X!==t)return!1;let e=this.#dt(n);return this.#X=void 0,e};if(e!=null){this.#lt(e,!0,r);return}let i=this.#oe?.at(-1);if(i==null){this.#lt(void 0,!0,r);return}let a=i.direction===-1?i.end:i.start;this.#lt(a,!0,r)}#dt(e){let t=this.#S,n=t?.shadowRoot;if(t==null||n==null||this.#w!==e||!n.contains(e))return!1;let{activeElement:r}=n;if(r===e||r!=null&&e.contains(r))return!0;if(r!=null)return!1;let{ownerDocument:i}=t,{activeElement:a}=i;return a==null||a===i.body||a===i.documentElement||a===t}#ft(e=0){let t=this.#w,n=this.#S;if(this.#n?.document==null||t==null||n==null)return;let r=this.#He();if(r===void 0)return;let i,a;if(r instanceof HTMLElement){let e=r.getBoundingClientRect();i=e.top,a=e.bottom}else i=0,a=r.defaultView?.innerHeight??0;let o=n.shadowRoot?.querySelector(`[data-diffs-header][data-sticky]`);if(o!=null&&(i=Math.max(i,o.getBoundingClientRect().bottom)),Number.isFinite(e)&&(i+=Math.max(0,e)),!(a<=i))for(let e of t.children){let t=e,n=V(t),r=t.dataset.lineType;if(n==null||r==null||!rn(r))continue;let o=t.getBoundingClientRect();if(!(o.bottom<=o.top)&&o.top>=i&&o.top<a)return n}}#pt(e,t){let n={start:e,end:e,direction:0};this.#K=!1,this.#Ut([n]),this.#Ne(e.line),t?this.#lt(e,!0):this.#ht()}#mt(e){let t=window.getSelection();if(t===null)return;let{start:n,end:r,direction:i}=e;K(n,r)>0&&([n,r]=[r,n]);let a=this.#hn(n.line),o=this.#hn(r.line);if(a===void 0||o===void 0)return;let[s,c]=Dn(a,n.character),[l,u]=Dn(o,r.character);i===-1&&([s,c,l,u]=[l,u,s,c]);try{t.setBaseAndExtent(s,ut(s,c),l,ut(l,u))}catch(e){console.error(`[diffs/editor] failed to update window selection:`,e)}}#ht(e=!1,t=`nearest`){let n=this.#oe?.at(-1);if(n===void 0)return;let r=this.#A;if(r!==void 0){if(r.scrollIntoView({block:t,inline:`nearest`}),!e){let e=n.direction===-1?n.end:n.start;this.#X===void 0?this.#lt(e):this.#ut(e)}}else{let t=G(n);this.#_t(t.line,t.character,e)}}#gt(){let e=this.#W===void 0?0:48,t=this.#gn()+this.#r.ch;return`${e}px ${this.#r.ch}px 0 ${t}px`}#_t(e,t=0,n=!1){this.__postponeBgTokenizeToNextFrame();let r=z(`div`,{style:{position:`absolute`,left:`0`,width:`2px`,height:this.#r.lineHeight+`px`,scrollMargin:this.#gt()}});if(this.#hn(e)!==void 0){let[i,a]=this.#yn(e,t),o=this.#vn(e)+a*this.#r.lineHeight;if(r.style.top=o+`px`,r.style.left=i+`px`,this.#E?.appendChild(r),r.scrollIntoView({block:`center`,inline:`nearest`}),!n){let n={line:e,character:t};this.#X===void 0?this.#lt(n):this.#ut(n)}this.#ce=void 0,this.#le=void 0,this.#ue=!1,this.#de=!1}else{let i=this.#Ae?.getLinePosition?.(e+1);if(i!==void 0)r.style.top=i.top+`px`,this.#S?.shadowRoot?.appendChild(r),r.scrollIntoView({block:`center`,inline:`nearest`}),i.height>0&&this.#je(e)?(this.#ce=e,this.#le=t,this.#de=n):(this.#ce=void 0,this.#le=void 0,this.#de=!1);else{let i=0;if(this.#ce===e&&this.#w!==void 0)for(let t=this.#w.childElementCount-1;t>=0;t--){let n=this.#w.children[t],r=n.dataset.lineType,a=V(n);if(r!==void 0&&rn(r)&&a!==void 0){i=(e-(a-1))*this.#r.lineHeight;break}}let a=((this.#L??[]).filter(t=>t.lineNumber<e).length+e)*this.#r.lineHeight+i;r.style.top=a+`px`,this.#S?.shadowRoot?.appendChild(r),r.scrollIntoView({block:`center`,inline:`nearest`}),this.#ce===e&&(i===0||this.#ue)||!this.#je(e)?(this.#ce=void 0,this.#le=void 0,this.#ue=!1,this.#de=!1):(this.#ce=e,this.#le=t,this.#ue=i!==0,this.#de=n)}}r.remove()}#vt(e,t,n){let r=e=>({line:e,character:0}),i=e=>({line:e,character:n.getLineText(e).length});return t<e?{start:r(t),end:i(e),direction:-1}:{start:r(e),end:i(t),direction:1}}#yt(e){let t=e.composedPath()[0];return t instanceof HTMLElement&&t.closest(`[data-line]`)?.getAttribute(`data-line-type`)===`change-deletion`}#bt(e,t,n){let r=[...n.querySelectorAll(`[data-content] > [data-line]`)],i=r.indexOf(e),a=r.indexOf(t),[o,s]=a<i?[t,e]:[e,t],c=window.getSelection();if(c!==null){let e=document.createRange();e.setStart(o,0),e.setEnd(s,s.childNodes.length),c.removeAllRanges(),c.addRange(e)}this.#Tt(!0),this.#Ut([]),this.#Et(V(t)??null,!0,`deletions`);let l=Math.min(i,a),u=Math.max(i,a);this.#re=l<0?``:r.slice(l,u+1).filter(e=>e.getAttribute(`data-line-type`)===`change-deletion`).map(e=>e.textContent??``).join(`
587
- `)}#xt(e,t){let n=e.parentElement;if(n==null||t==null)return;let r=[...n.children].indexOf(e),i=t.children[r];return i instanceof HTMLElement?i:void 0}#St(e,t,n){let r=t.querySelector(`[data-content]`),i=this.#xt(e,r);return i!==void 0&&(this.#bt(i,i,t),n&&this.#Ke([B(document,`mousemove`,e=>{let n=e.composedPath()[0],a=n instanceof HTMLElement?n.closest(`[data-column-number]`):null;if(a instanceof HTMLElement&&t.contains(a)){let e=this.#xt(a,r);e!==void 0&&this.#bt(i,e,t)}},{passive:!0})]),!0)}#Ct(){return this.#S?.shadowRoot?.querySelector(`pre`)?.hasAttribute(`data-deleted-text-selection`)??!1}#wt(){return this.#re===``?window.getSelection()?.toString()??``:this.#re}#Tt(e){let t=this.#S?.shadowRoot?.querySelector(`pre`);t!=null&&(e?(t.setAttribute(`data-deleted-text-selection`,``),this.#Et(null),this.#re=``):(t.removeAttribute(`data-deleted-text-selection`),this.#re=``))}#Et(e,t=!1,n=`additions`){try{this.#M?.setEditorActiveLine(e,{lineNumberOnly:t,side:n})}catch{}}#Dt(){this.#me===void 0&&(this.#me=requestAnimationFrame(()=>{this.#me=void 0,(this.#oe!==void 0||this.#se!==void 0||this.#H!==void 0)&&this.#Ut(this.#oe??[])}))}#Ot(){let e=this.#ee,t=this.#ne,n=this.#n?.document;if(e===void 0||e.focusLine===void 0||t===void 0||n===void 0)return!1;let r=t.direction===-1?t.end:t.start,i=this.#w?.parentElement?.scrollLeft??0,a=(e.clientX-e.startClientX+i-e.startScrollLeft)/this.#r.ch,o=a<0?-Math.round(-a):Math.round(a),s=Math.max(0,r.character+o),c={line:e.focusLine,character:s};if(e.renderedGoal!==void 0&&K(e.renderedGoal,c)===0)return!0;e.renderedGoal=c;let l=[],u=c.line<r.line?-1:1;for(let e=r.line;;e+=u){if(this.#je(e)){let t=n.getLineText(e),i=Math.min(r.character,t.length),a=Math.min(s,t.length),o=Bt(t,i),c=a===i?o:Bt(t,a);l.push({start:{line:e,character:Math.min(o,c)},end:{line:e,character:Math.max(o,c)},direction:o===c?0:o<c?1:-1})}if(e===c.line)break}return this.#Ut(l),!0}#kt(){for(let[e,t]of this.#D??[])e.startsWith(`editPrediction`)&&(t.remove(),this.#D?.delete(e))}#At(e,t,n){let r=t[n],i=n,a=r.range.end.line;for(;i+1<t.length&&t[i+1].range.start.line<=a;)i++,a=Math.max(a,t[i].range.end.line);if(i===n&&(r.newText.length===0||K(r.range.start,r.range.end)===0))return{edit:r,endIndex:i};let o=r.range.start,s={line:a,character:e.getLineLength(a)},c=[],l=e.offsetAt(o);for(let r=n;r<=i;r++){let n=t[r],i=e.offsetAt(n.range.start),a=e.offsetAt(n.range.end);c.push(e.getTextSlice(l,i),n.newText),l=a}return c.push(e.getTextSlice(l,e.offsetAt(s))),{edit:{range:{start:o,end:s},newText:c.join(``)},endIndex:i}}#jt(){let e=this.#be,t=this.#n?.document;if(e==null||t==null||e.document!==t||e.version!==t.version||this.#e.editPrediction?.mode===`subtle`&&!this.#ve)return;let{edits:n}=e.response,r=[],i=n.length>0;for(let e=0;e<n.length;){let{edit:a,endIndex:o}=this.#At(t,n,e);for(let e=a.range.start.line;i&&e<=a.range.end.line;e++)i=this.#Cn(e);r.push({edit:a,startIndex:e,endIndex:o}),e=o+1}return{groups:r,allVisible:i}}#Mt(e,t,n,r,i){this.#Ie?(e.dataset.wrap=``,e.style.width=`calc(100cqw - ${r}px)`):(delete e.dataset.wrap,e.style.width=`max-content`);let a=t.split(/\r\n|\r|\n/);for(let t=0;t<a.length;t++){let o=a[t],s=t===a.length-1?i:void 0,c=o.length===0&&s===void 0,l=z(`span`,{dataset:c?[`editPredictionLine`,`empty`]:`editPredictionLine`,textContent:c?`​`:o},e);s!==void 0&&z(`span`,{dataset:`editPredictionSuffix`},l).append(s),t===0&&n!==r&&(l.style.textIndent=`${n-r}px`)}}#Nt(e){let t=this.#be,n=this.#n?.document;if(t==null||n==null)return;let{edit:r,startIndex:i,endIndex:a}=e,{start:o,end:s}=r.range;if(!(K(o,s)===0&&o.character<n.getLineLength(o.line))||t.response.edits[i-1]?.range.end.line===o.line||t.response.edits[a+1]?.range.start.line===o.line)return;let c=this.#hn(o.line);if(c===void 0)return document.createTextNode(n.getLineText(o.line).slice(o.character));let[l,u]=Dn(c,o.character),d=document.createRange();d.selectNodeContents(c),d.setStart(l,ut(l,u));let f=d.cloneContents();return f.firstChild?.textContent===``&&f.firstChild.remove(),f}#Pt(e){let{edit:t}=e,{start:n}=t.range,[r,i]=this.#yn(n.line,n.character),a=1,o=t.newText.split(/\r\n|\r|\n/).length,s=this.#E;if(this.#Ie&&s!=null){a=Math.max(1,this.#xn(n.line).length-1);let i=z(`span`,{dataset:`editPrediction`,style:{visibility:`hidden`}},s);this.#Mt(i,t.newText,r,this.#yn(n.line,0)[0],this.#Nt(e));let{width:c,height:l}=i.getBoundingClientRect();i.remove();let{lineHeight:u}=this.#r;c>0&&l>0&&u>0&&(o=Math.round(l/u))}return Math.max(0,o-(a-i))}#Ft(e=!0){let t=new Map,n=new Map,r=this.#Ce,i=!1,a=this.#w,o=this.#jt();if(a!=null&&o!=null&&o.allVisible){for(let e of o.groups){let{edit:t}=e;if(t.newText.length===0)continue;let r=this.#Pt(e);r>(n.get(t.range.start.line)??0)&&n.set(t.range.start.line,r)}if(n.size>0){let e,o=this.#B?.startingLine??0;for(let[s,c]of n){i||=r.get(s)!==c;let n=this.#hn(s);if(n===void 0)continue;let l=s-o;if(a.children[l]!==n){if(e===void 0){e=new Map;for(let t=0;t<a.children.length;t++)e.set(a.children[t],t)}l=e.get(n)??-1}if(l<0)continue;t.set(n,c);let u=this.#C?.children[l];u instanceof HTMLElement&&t.set(u,c);let d=this.#It(l);d!=null&&(t.set(d.content,(t.get(d.content)??0)+c),t.set(d.gutter,(t.get(d.gutter)??0)+c))}}}let s=!1;for(let[e,n]of this.#Se)t.get(e)!==n&&(delete e.dataset.editPredictionSpacer,e.style.removeProperty(`--diffs-edit-prediction-spacer-height`),s=!0);for(let[e,n]of t)this.#Se.get(e)!==n&&(e.dataset.editPredictionSpacer=``,e.style.setProperty(`--diffs-edit-prediction-spacer-height`,`${n}lh`),s=!0);this.#Se=t,(i||n.size!==r.size)&&(this.#Ce=n,e&&this.#Ae?.syncGhostTextRows()),s&&this.#Re()}#It(e){let t=this.#T,n=this.#w;if(t==null||n==null||!this.#Fe||this.#Pe!==`split`||this.#Ie)return;let r=0;for(let t=0;t<e;t++)r+=Ti(n.children[t]);let{content:i,gutter:a}=t,o=0;for(let e=0;e<i.children.length;e++){let t=i.children[e];if(o+=Ti(t),o>r){let n=a.children[e];if(!(t instanceof HTMLElement)||!(n instanceof HTMLElement))throw Error(`Editor: deletions column rows and gutter cells are out of step`);return{content:t,gutter:n}}}}#Lt(e,t=!0){this.#he!==void 0&&(clearTimeout(this.#he),this.#he=void 0),this.#ge?.abort(),this.#ge=void 0,this.#_e++,this.#ve=!1,this.#ye=!1,this.#be=void 0,this.#Ft(t),e&&this.#kt()}#Rt(e){let t=this.#e.editPrediction;if(t===void 0)return!1;let n=e.replaceAll(`\\`,`/`);return(t.include===void 0||t.include.some(e=>Sr(n,e)))&&t.exclude?.some(e=>Sr(n,e))!==!0}#zt(){this.#Lt(!0);let e=this.#oe?.[0];if(this.#e.editPrediction===void 0||this.#n?.document===void 0||this.#n?.fileInfo===void 0||this.#oe?.length!==1||e===void 0||!W(e))return;let t=this.#n?.document,n=t.offsetAt(G(e));this.#he=setTimeout(()=>{this.#he=void 0;let e=this.#e.editPrediction,r=this.#oe?.[0],i=this.#n?.fileInfo?.name;if(e===void 0||i===void 0||this.#n?.document!==t||this.#oe?.length!==1||r===void 0||!W(r)||t.offsetAt(G(r))!==n||!this.#Rt(i))return;let a=e=>this.#mn(e)&&this.#je(e);if(!a(G(r).line)){this.#ye=!0;return}let o=xr(i,t,n,this.#xe,a);if(o===void 0)return;let s=t.offsetAt({line:o.excerptStartLine,character:0}),c=s+o.editableRange.start,l=s+o.editableRange.end,u=new AbortController,d=++this.#_e;this.#ge=u;let f;try{f=e.provider.predict(o,{signal:u.signal})}catch{this.#ge=void 0;return}Promise.resolve(f).then(e=>{let r=this.#oe?.[0];if(u.signal.aborted||d!==this.#_e||this.#ge!==u||this.#n?.document!==t||t.version!==o.version||this.#oe?.length!==1||r===void 0||!W(r)||t.offsetAt(G(r))!==n||e==null||!Array.isArray(e.edits)||e.edits.length===0||e.edits.length>vi||e.newCursor==null)return;let i=[],a=0;for(let n of e.edits){if(n==null||typeof n.newText!=`string`||!Ei(t,n.range?.start)||!Ei(t,n.range?.end)||K(n.range.start,n.range.end)>0||(a+=bi.encode(n.newText).byteLength,a>yi))return;let e=t.offsetAt(n.range.start),r=t.offsetAt(n.range.end),o=t.resolveEdits([n])[0];if(o.start!==e||o.end!==r)return;i.push(o)}i.sort((e,t)=>{let n=e.start-t.start;return n===0?e.end-t.end:n});for(let e=0;e<i.length;e++){let t=i[e];if(t.start<c||t.end>l||e>0&&i[e-1].end>t.start)return}let s=i.filter(e=>e.text!==t.getTextSlice(e.start,e.end));if(s.length===0)return;let f=t.positionAt(s[0].start),p=t.positionAt(s.at(-1).end),m=t.offsetAt({line:f.line,character:0}),h=t.offsetAt({line:p.line,character:t.getLineLength(p.line)}),g=[],_=m;for(let e of s)g.push(t.getTextSlice(_,e.start),e.text),_=e.end;g.push(t.getTextSlice(_,h));let v=g.join(``).split(/\r\n|\r|\n/),y=f.line+v.length-1,b=v.length-(p.line-f.line+1),x=e.newCursor;if(!(!Number.isInteger(x.line)||!Number.isInteger(x.character)||x.line<0||x.character<0)){if(x.line>=f.line&&x.line<=y){let e=v[x.line-f.line];if(x.character>e.length||Di(e,x.character))return}else{let e=x.line<f.line?x.line:x.line-b;if(e<0||e>=t.lineCount||x.character>t.getLineLength(e))return;let n=t.offsetAt({line:e,character:x.character});if(Di(t.charAt(n-1)+t.charAt(n),1))return}this.#be={document:t,version:o.version,cursorOffset:n,rendered:!1,response:{edits:s.map(e=>({range:{start:t.positionAt(e.start),end:t.positionAt(e.end)},newText:e.text})),newCursor:{...x}}},this.#Ut(this.#oe)}}).catch(()=>{}).finally(()=>{this.#ge===u&&(this.#ge=void 0)})},_i)}#Bt(e,t){let n=this.#n?.document,r=this.#n?.fileInfo?.name,i=Ge(e);n!==void 0&&r!==void 0&&i!==void 0&&this.#Rt(r)&&(this.#xe=yr(this.#xe,r,n,i,t))}#Vt(){let e=this.#be,t=this.#n?.document,n=this.#oe?.[0];if(e===void 0||!e.rendered||t===void 0||e.document!==t||e.version!==t.version||this.#oe?.length!==1||n===void 0||!W(n)||t.offsetAt(G(n))!==e.cursorOffset)return;let{edits:r,newCursor:i}=e.response;this.#Lt(!0);let a=t.applyEdits(r.map(e=>({range:{start:{...e.range.start},end:{...e.range.end}},newText:e.newText})),!0,this.#oe,void 0,!0);if(a===void 0){this.#zt();return}let o=t.normalizePosition(i),s=[{start:o,end:o,direction:0}];t.setLastUndoSelectionsAfter(s),this.#un(a,s,this.#fn(a),{editSource:`prediction`})}#Ht(e){let t=this.#be,n=this.#n?.document;t!==void 0&&(t.rendered=!1);let r=this.#jt();if(t!=null&&n!=null&&r!=null&&r.allVisible){for(let t of r.groups){let{edit:r,endIndex:i}=t,{start:a,end:o}=r.range,s=r.newText.length===0,c=K(a,o)!==0,l=n.getLineLength(a.line),u=!c&&a.character<l;if(c?this.#Gt(e,s?`editPredictionDeletion`:`editPredictionReplacement`,{start:a,end:o}):u&&this.#Gt(e,`editPredictionInsertion`,{start:a,end:{line:a.line,character:l}}),s)continue;let[d,f]=this.#yn(a.line,a.character),p=this.#yn(a.line,0)[0],m=this.#vn(a.line)+f*this.#r.lineHeight,h=`editPrediction-${i}`,g=this.#D?.get(h);if(g===void 0?g=z(`span`,{ariaHidden:`true`,contentEditable:`false`,dataset:`editPrediction`},e.fragment):(this.#D?.delete(h),g.replaceChildren()),c){g.dataset.replacement=``;let e=this.#hn(a.line);e!==void 0&&g.style.setProperty(`--diffs-edit-prediction-bg`,getComputedStyle(e).getPropertyValue(`--diffs-line-bg`))}else delete g.dataset.replacement,g.style.removeProperty(`--diffs-edit-prediction-bg`);this.#Mt(g,r.newText,d,p,this.#Nt(t)),g.style.transform=`translateX(${p}px) translateY(${m}px)`,e.elements.set(h,g)}t.rendered=!0}}#Ut(e){this.__postponeBgTokenizeToNextFrame();let t=this.#oe,n=t?.length!==e.length;if(!n&&t!==void 0)for(let r=0;r<e.length;r++){let i=t[r],a=e[r];if(i.direction!==a.direction||K(i.start,a.start)!==0||K(i.end,a.end)!==0){n=!0;break}}if(n&&this.#Lt(!0),this.#Ft(),this.#A=void 0,this.#Et(null),e.length===0&&this.#se===void 0&&this.#H===void 0){this.#oe=void 0,this.#D?.forEach(e=>e.remove()),this.#D?.clear(),this.#G?.cleanup(),this.#G=void 0,n&&this.#zt();return}let r=document.createDocumentFragment(),i={fragment:r,elements:new Map};if(e.length>0){let t=fn(e),n=t.at(-1);this.#oe=t;let r=t.some(e=>!W(e)),a=G(n).line+1;this.#Et(a,r);for(let e of t)W(e)||this.#Gt(i,`selection`,e),this.#Yt(i,e,e===n);let o=this.#e.matchBrackets!==!1&&this.#n?.document!=null&&this.#i!==void 0&&W(n)?Ir(this.#n?.document,this.#i,n.start):void 0;if(o!==void 0)for(let e of o)this.#Gt(i,`bracketMatch`,e)}let a=this.#n?.document;if(this.#se!==void 0&&a!==void 0){let e=this.#se,t=this.#B,n=t!=null&&Number.isFinite(t.totalLines)||this.#Fe&&this.#ke?.options.expandUnchanged!==!0?this.#pn():void 0,r=this.#oe?.at(-1),o=r===void 0?-1:a.offsetAt(r.start),s=r===void 0?-1:a.offsetAt(r.end),c=0,l=n?.length??1;for(let t=0;t<l;t++){let r=1/0,l=n?.[t];if(l!==void 0){let[t,n]=l,i=a.offsetAt({line:t,character:0}),o=n+1;r=o<a.lineCount?a.offsetAt({line:o,character:0}):a.offsetAt({line:o-1,character:a.getLineLength(o-1)});let s=c,u=e.length;for(;s<u;){let t=s+Math.floor((u-s)/2);e[t][1]<=i?s=t+1:u=t}c=s}for(;c<e.length;c++){let[t,n]=e[c];if(t>=r)break;let l={start:a.positionAt(t),end:a.positionAt(n)},u=o===t&&s===n;this.#Gt(i,`match`,l,u?`focus`:void 0)}}}if(this.#H!==void 0&&a!==void 0)for(let e of this.#H.markers)this.#Gt(i,`marker`,e,er(e.severity));this.#Ht(i),this.#E?.appendChild(r),this.#D?.forEach(e=>e.remove()),this.#D?.clear(),this.#D=i.elements,this.#Xt(),n&&this.#zt()}#Wt(){let e=this.#U,t=this.#e.renderCaret,n=this.#E;if(this.#k?.forEach(e=>e.remove()),this.#k=void 0,e===void 0||t===void 0||n===void 0){this.#O?.forEach(e=>e.remove()),this.#O=void 0;return}let r=this.#O??=new Map;for(let[e,t]of r)this.#Cn(e.caret.focus.line)||(t.remove(),r.delete(e));let i=document.createDocumentFragment(),a=[];for(let n of e){let{caret:e}=n,{line:o,character:s}=e.focus;if(n.anchorOffset!==n.focusOffset){let t={fragment:i,elements:new Map};this.#Gt(t,`caretHighlight`,n.anchorOffset<n.focusOffset?{start:e.anchor,end:e.focus}:{start:e.focus,end:e.anchor},void 0,e.focus);for(let n of t.elements.values())n.style.setProperty(`--diffs-caret-highlight-bg`,`color-mix(in srgb, ${e.metadata.color} 32%, transparent)`),a.push(n)}if(!this.#Cn(o))continue;let c=r.get(n);c===void 0&&(c=z(`div`,{dataset:`remoteCaret`,children:[t(e)]},i),r.set(n,c));let[l,u]=this.#yn(o,s),d=this.#vn(o)+u*this.#r.lineHeight;c.style.transform=`translateX(${l}px) translateY(${d}px)`}this.#k=a,n.appendChild(i)}#Gt(e,t,n,r,i){if(this.#n?.document==null)return;let{start:a,end:o}=n,s=a.line,c=o.line+1;if(this.#B!==void 0){let{startingLine:e,totalLines:t}=this.#B;s=Math.max(s,e),c=Math.min(c,e+t)}for(let n=s;n<c;n++){if(!this.#Cn(n))continue;let s=n===o.line,c=n===a.line?a.character:0,l=s?o.character:this.#n?.document.getLineLength(n);if(c===l&&(t===`editPredictionDeletion`||t===`editPredictionReplacement`)){if(s&&n!==a.line)continue;let[i,o]=this.#yn(n,c);this.#Jt(e,t,n,o,i,this.#r.ch,r);continue}if(this.#Ie){let a=this.#_n(),o=this.#n?.document.getLineText(n);if(2*this.#r.ch+this.#r.measureTextWidth(o)>a){this.#Kt(e,n,o,c,l,s,t,r,i);continue}}let u=0,d=0,f=0;u=c===0?this.#gn()+this.#r.ch+(this.#Qe?.left??0):this.#yn(n,c)[0],!s&&t===`selection`&&(f=this.#r.ch),d=c===l?f:this.#yn(n,l)[0]-u+f,this.#Jt(e,t,n,0,u,d,r,{start:i?.line===a.line&&i.character===a.character&&n===a.line,end:i?.line===o.line&&i.character===o.character&&n===o.line})}}#Kt(e,t,n,r,i,a,o,s,c){let l=this.#xn(t),u=l.length-1,d=this.#gn()+this.#r.ch+(this.#Qe?.left??0);for(let f=0;f<u;f++){let p=l[f],m=l[f+1],h=Math.max(r,p),g=Math.min(i,m);if(h>g)continue;let _=this.#qt(n,p,h),v=d+_,y=0;!a&&f===u-1&&o===`selection`&&(y=this.#r.ch);let b=h===g?y:this.#qt(n,p,g)-_+y;this.#Jt(e,o,t,f,v,b,s,{start:c?.line===t&&c.character===r&&h===r,end:c?.line===t&&c.character===i&&g===i})}}#qt(e,t,n){if(n<=t)return 0;let r=e.slice(t,n),i=ai(r,this.#r.tabSize);return i===-1?this.#r.measureTextWidth(r):i*this.#r.ch}#Jt(e,t,n,r,i,a,o,s){if(a===0)return;let{ch:c,lineHeight:l}=this.#r,u=this.#vn(n)+r*l,d=`${t}-${n}/${r}-${i}-${a} ${o??``}`,f=this.#D,p=(this.#e.roundedSelection??!0)&&(t===`selection`||t===`caretHighlight`),m=(n,r,i,a)=>{let o=this.#vn(n)+r*l,s=this.#hn(n),u=`initial`;s!==void 0&&(s.dataset.lineType===`change-addition`||s.dataset.selectedLine!==void 0)&&(u=getComputedStyle(s).getPropertyValue(`--diffs-line-bg`));let d=`width:${c}px;transform:translateX(${i}px) translateY(${o}px);--diffs-selection-corner-bg:${u}`,p={selectionCorner:``,[a]:``},m=`${t}-block-${n}/${r}-${i}-1ch`,h=m+`-`+a;if(a===`rbl`){let t=m+`-rtl`,n=e.elements.get(t);n!==void 0&&(n.remove(),e.elements.delete(t),h+=`-rtl`,p.rtl=``)}let g=e.elements.get(h);g===void 0&&(f?.has(h)===!0?(g=f.get(h),g.style.cssText=d,f.delete(h)):g=z(`div`,{dataset:t===`caretHighlight`?`caretHighlightRange`:`selectionRange`,style:{cssText:d},children:[z(`div`,{dataset:p})]},e.fragment),e.elements.set(h,g))},h=t=>{let o=i+a,l=t.dataset,u=e.previousSelectionRange;if((u===void 0||u.line!==n||u.wrapLine!==r)&&(e.previousSelectionRange={element:t,line:n,wrapLine:r,left:i,width:a}),u===void 0||o<=u.left)[`rtl`,`rtr`,`rbl`,`rbr`].forEach(e=>{l[e]=``});else{let e=u.line,t=u.wrapLine,a=u.left,s=u.element.dataset,d=a+u.width;a>i&&m(e,t,a-c,`rbr`),delete s.rbl,delete l.rtl,delete l.rtr,o>=d&&delete s.rbr,o>d&&(m(e,t,d,`rbl`),l.rtr=``),o<d&&m(n,r,o,`rtl`),i<a&&(l.rtl=``),l.rbl=``,l.rbr=``}s?.start===!0&&(delete l.rtl,delete l.rbl),s?.end===!0&&(delete l.rtr,delete l.rbr)},g=e.elements.get(d);if(g!==void 0){p&&h(g);return}if(f?.has(d)===!0?(g=f.get(d),f.delete(d)):g=z(`div`,{dataset:o?[t+`Range`,o]:t+`Range`},e.fragment),g.style.width=`${a}px`,g.style.transform=`translateX(${i}px) translateY(${u}px)`,t===`editPredictionInsertion`||t===`editPredictionReplacement`){let e=this.#hn(n);e!==void 0&&g.style.setProperty(`--diffs-edit-prediction-bg`,getComputedStyle(e).getPropertyValue(`--diffs-line-bg`))}else g.style.removeProperty(`--diffs-edit-prediction-bg`);p&&h(g),e.elements.set(d,g)}#Yt(e,t,n){let{line:r,character:i}=G(t);if(!this.#Cn(r))return;let[a,o]=this.#yn(r,i),s=`caret-`+r+`/`+o+`:`+i;if(e.elements.has(s))return;let c=z(`div`,{dataset:`caret`,style:{transform:`translateX(${a-1}px) translateY(${this.#vn(r)+o*this.#r.lineHeight}px)`}},e.fragment);e.elements.set(s,c),n&&(c.style.scrollMargin=this.#gt(),this.#A=c)}#Xt(){let e=this.#oe?.at(-1),t=this.#E,n=this.#n?.document,r=this.#e.renderSelectionAction,i=()=>{this.#G?.cleanup(),this.#G=void 0};if(this.#e.enabledSelectionAction!==!0||r===void 0||e===void 0||W(e)||this.#$||t===void 0||n===void 0){i();return}let a=G(e);if(!this.#Cn(a.line)){i();return}if(this.#G===void 0){if(!this.#K)return;let a=()=>this.#oe?.at(-1)??e,o=r({textDocument:n,get selection(){return a()},applyEdits:e=>this.applyEdits(e),getSelectionText:()=>this.#n?.document?.getText(a())??``,replaceSelectionText:e=>{this.#in(e,[a()])},close:()=>{i(),this.#ht()}});this.#G=new Qr(o,t,()=>this.#Xt()),this.#Le().resetPlacement(xi)}let o=this.#r.lineHeight,s=e.direction===-1,c={placeAbove:s,anchor:a},l=s?{placeAbove:!1,anchor:e.end}:{placeAbove:!0,anchor:e.start},u=this.#G.height,d=e=>{let[t,n]=this.#yn(e.anchor.line,e.anchor.character),r=this.#vn(e.anchor.line)+n*o,i=e.placeAbove?r:r+o,a=e.placeAbove?i-u:i;return{top:a,bottom:a+u,left:t,anchorTop:i,rowTop:r}},f=d(c),p=n.lineCount,m=s?a.line<3:a.line>=p-3,h=this.#Cn(l.anchor.line)?d(l):void 0,g=this.#Le(),_=g.getPlacementBounds(),v=h!==void 0&&g.choosePlacement({preferred:f,fallback:h,viewport:_,popoverHeight:u,atDocumentEdge:m,placementKey:xi})===`fallback`;h===void 0&&g.setPlacement(`preferred`,xi);let{placeAbove:y}=v?l:c,{left:b,anchorTop:x}=v&&h!==void 0?h:f,S=s?f.rowTop:h?.rowTop??-1/0,C=(s?h?.rowTop??1/0:f.rowTop)+(e.end.line>e.start.line&&e.end.character===0?0:o),w=_===void 0||C>_.top&&S<_.bottom;this.#G.reposition(b,x,this.#gn(),y,w,_)}#Zt(e){if(this.#W!==void 0){this.#W.setMode(e);return}this.#Qt(e)}#Qt(e){this.#W?.cleanup();let t=this.#n?.document,n=this.#S?.shadowRoot?.querySelector(`pre`),r=this.#oe;if(t===void 0||n==null)return;let i=``,a;if(r!==void 0&&r.length>0){let e=r.at(-1);if(W(e)){e=On(t,e),this.#Ut([...r.slice(0,-1),e]);let n=t.getText(e);n!==``&&!n.includes(`
588
- `)&&(i=n,a=[t.offsetAt(e.start),t.offsetAt(e.end)])}}let o=([e,n],r)=>{let i=on(t,e,n);this.#Ut([i]),this.#Ne(G(i).line),this.#ht(!0),this.#fe=r},s=new Zr({textDocument:t,containerElement:n,defaultQuery:i,mode:e,initialMatch:a,scrollToMatch:o,applyReplace:e=>{if(e.length===0)return;let n=t.applyEdits(e.map(e=>({range:{start:t.positionAt(e.start),end:t.positionAt(e.end)},newText:e.text})),!0,this.#oe);n!==void 0&&this.#un(n,void 0,this.#fn(n),{skipSearchRefresh:!0})},onUpdate:(e,n)=>{if(e.length===0){this.#se=void 0,this.#Ut(this.#oe??[]);return}if(this.#se=e,n?.syncSelection===!1){this.#Ut(this.#oe??[]);let n=this.#oe?.at(-1);if(n!==void 0){let r=t.offsetAt(n.start),i=t.offsetAt(n.end);for(let t of e)if(t[0]===r&&t[1]===i)return t}return}let r=this.#oe?.at(-1),i=0,a;r!==void 0&&(i=t.offsetAt(r.start));for(let t of e)if(t[0]>=i){a=t;break}return a===void 0?this.#Ut(this.#oe??[]):o(a,!0),a},onClose:()=>{this.#W=void 0,this.#fe=!1,this.#se=void 0,this.#Ut(this.#oe??[])}});this.#W=s,this.#fe=!1}#$t(){let e=this.#n?.document,t=this.#oe;return e===void 0||t===void 0?``:xn(e,t)}#en(){let e=this.#n?.document,t=this.#oe;return e===void 0||t===void 0?[]:bn(e,t)}#tn(e,t,n){e!==null&&(e.setData(`text`,t),n.length>1&&e.setData(Si,JSON.stringify(n)))}#nn(){let e=this.#n?.document,t=this.#oe;if(e===void 0||t===void 0||t.length===0)return``;if(t.some(e=>W(e))){let n=En(e,t);return this.#rn(n.edits,n.nextSelectionOffsets),n.text}let n=xn(e,t);return this.#in(``,void 0,!0),n}#rn(e,t){let n=this.#n?.document,r=this.#oe;if(n===void 0||r===void 0||e.length===0)return;let i=n.applyResolvedEdits(e,!0,r,void 0,!0);if(i===void 0)return;let a=t.map(e=>{let t=n.positionAt(e);return{start:t,end:t,direction:0}});n.setLastUndoSelectionsAfter(a),this.#un(i,a,this.#fn(i))}#in(e,t=this.#oe,n=!1,r=`selection`){if(t===void 0)return;let i=this.#n?.document,a=t.at(-1);if(i===void 0||a===void 0)return;let{nextSelections:o,change:s}=Array.isArray(e)&&e.length===t.length?Jt(i,t,e,this.#L,n,r):Gt(i,t,{start:i.offsetAt(a.start),end:i.offsetAt(a.end),text:Array.isArray(e)?e.join(i.eol):e},this.#L,void 0,n);s!==void 0&&this.#un(s,o,this.#fn(s))}#an(e=!1){let t=this.#oe,n=this.#n?.document;if(t===void 0||n===void 0)return;let{nextSelections:r,change:i}=nn(n,t,e,this.#L,this.#r.tabSize);i!==void 0&&this.#un(i,r,this.#fn(i))}#on(){let e=this.#oe,t=this.#n?.document;if(e===void 0||t===void 0)return;let{nextSelections:n,change:r}=$t(t,e,this.#Ie?(e,t)=>{let n=this.#xn(e);for(let e=0;e+1<n.length;e++){let r=n[e],i=n[e+1];if(t>=r&&t<=i)return r}return 0}:void 0,this.#L);r!==void 0&&this.#un(r,n,this.#fn(r))}#sn(){let e=this.#oe,t=this.#n?.document;if(e===void 0||t===void 0)return;let{nextSelections:n,change:r}=en(t,e,this.#L);r!==void 0&&this.#un(r,n,this.#fn(r))}#cn(){let e=this.#oe,t=this.#n?.document;if(e===void 0||t===void 0)return;let{nextSelections:n,change:r}=Qt(t,e,this.#L);r!==void 0&&this.#un(r,n,this.#fn(r))}#ln(){let e=this.#oe,t=this.#n?.document;if(e===void 0||t===void 0)return;let{nextSelections:n,change:r}=Zt(t,e,this.#L);r!==void 0&&this.#un(r,n,this.#fn(r))}#un(e,t,n,r){this.#be!=null&&this.#Lt(!0);let i=this.#n?.document;if(i!==void 0&&this.#U!==void 0)for(let t of this.#U)t.anchorOffset=sn(t.anchorOffset,e.changes),t.focusOffset=sn(t.focusOffset,e.changes),t.caret.anchor=i.positionAt(t.anchorOffset),t.caret.focus=i.positionAt(t.focusOffset);if(e.lineDelta!==0||this.#Ie)for(let t of this.#m.keys())t>=e.startLine&&this.#m.delete(t);if(this.#h.size>0){if(e.lineDelta===0&&(e.changedLineRanges.length===1||e.changedLineChanges?.every(([,,e])=>e===0)===!0))for(let[t,n]of e.changedLineRanges)for(let e=t;e<=n;e++)this.#h.delete(e);else for(let t of this.#h.keys())t>=e.startLine&&this.#h.delete(t)}this.#_=void 0;let a=this.#B,o;if(a!==void 0&&t!==void 0&&t.length>0){let n=t.at(-1),r=a.startingLine+a.totalLines;if(n.end.line>=r){let t=n.end.line-a.startingLine+1,i=this.#V===void 0||this.#V===1/0?1/0:this.#V*hi;e.startLine<=r&&t<=i&&this.#je(n.end.line)?(n.end.line>r&&(o=!0),a={...a,totalLines:t},this.#B=a):o=!0}}if(this.#st(e,n,a,o),t!=null&&this.#Ut(t),this.#M?.__acknowledgeDocumentUpdate(),this.#Ee(),this.#Bt(e,r?.editSource??`user`),this.#zt(),this.#dn(e.changes,n??this.#L),r?.skipSearchRefresh!==!0&&this.#W!==void 0&&this.#se!==void 0&&this.#W.updateMatches({syncSelection:!1}),t!=null&&r?.skipFocus!==!0){let e=t.at(-1);if(e!==void 0&&this.#Ne(G(e).line),this.#A!==void 0)requestAnimationFrame(()=>{this.#A?.scrollIntoView({block:`nearest`,inline:`nearest`})});else if(t.length>0){let e=G(t.at(-1));this.#_t(e.line,e.character)}this.focus({preventScroll:!0})}}#dn(e,t){let n=this.getFile(),r=this.#P;n!=null&&r!=null&&r(e,n,t)}#fn(e){if(this.#L!=null){let t=xt(e,this.#L);if(t!=null)return this.#n?.document?.setLastUndoLineAnnotations(this.#L,t),t}}#pn(){let e=this.#w;if(e===void 0)return[];let t=[];for(let n of e.children){let e=n,r=e.dataset.lineType,i=V(e);if(i===void 0||r===void 0||!rn(r))continue;let a=i-1,o=t.at(-1);o!==void 0&&a<=o[1]+1?o[1]=Math.max(o[1],a):t.push([a,a])}return t}#mn(e){let t=this.#B;return t==null||e>=t.startingLine&&e<t.startingLine+t.totalLines}#hn(e){let t=this.#g.get(e);if(t!==void 0)return t??void 0;let n=this.#B;if(!this.#mn(e))return;let r=this.#w;if(r!==void 0){if(n!==void 0){let{startingLine:i}=n,{children:a}=r;for(let n=e-i;n<=a.length;n++){let r=a[n];if(r===void 0)break;let i=V(r),o=r.dataset.lineType;if(i!==void 0&&i===e+1&&o!==void 0&&rn(o)){t=r;break}}}return t??=r.querySelector(`[data-line="${e+1}"]`+(this.#Pe===`unified`?`:not([data-line-type="change-deletion"])`:``)),t!==void 0&&this.#g.set(e,t),t??void 0}}#gn(){if(this.#C===void 0)return 0;if(this.#f===void 0){let e=this.#w?.parentElement?.style.getPropertyValue(`--diffs-column-number-width`);this.#f=e!==void 0&&e.length>2&&e.endsWith(`px`)?parseInt(e.slice(0,-2),10):this.#C.offsetWidth}return this.#f}#_n(){if(this.#w===void 0)return 0;if(this.#p===void 0){let e=this.#w.parentElement?.style.getPropertyValue(`--diffs-column-content-width`);this.#p=e!==void 0&&e.length>2&&e.endsWith(`px`)?parseFloat(e.slice(0,-2)):this.#w.offsetWidth}return this.#p}#vn(e){let t=this.#m.get(e);if(t!==void 0)return t;let n=this.#hn(e);if(n===void 0)return-1;let r=n.offsetTop+this.#r.paddingTop;return r+=this.#Qe?.top??0,this.#m.set(e,r),r}#yn(e,t){if(this.#_!==void 0&&this.#_[0]===e&&this.#_[1]===t)return[this.#_[2],this.#_[3]];let n=this.#n?.document?.getLineText(e),r=this.#gn()+this.#r.ch;if(n===void 0||n.length===0||t<=0)return[r+(this.#Qe?.left??0),0];let i=ri(n,Math.min(t,n.length)),a=n.slice(0,i),o=ai(a,this.#r.tabSize),s=0,c=0;if(s=o===-1?r+this.#r.measureTextWidth(a):r+o*this.#r.ch,this.#Ie){let t=this.#_n();if(2*this.#r.ch+this.#r.measureTextWidth(n)>t){let t=this.#bn(e);if(t==null)return[s+(this.#Qe?.left??0),0];for(let e=0;e+1<t.length;e++){let a=t[e];if(i<=t[e+1]){c=e;let t=n.slice(a,i),o=ai(t,this.#r.tabSize);s=o===-1?r+this.#r.measureTextWidth(t):r+o*this.#r.ch;break}}}s+=this.#Qe?.left??0}return this.#_===void 0?this.#_=[e,t,s,c]:(this.#_[0]=e,this.#_[1]=t,this.#_[2]=s,this.#_[3]=c),[s,c]}#bn(e){let t=this.#h.get(e);if(t!==void 0)return t;this.#h.size>=gi&&this.#h.clear();let n=this.#n?.document?.getLineText(e);if(n===void 0||n.length===0){let t=new Uint32Array([0]);return this.#h.set(e,t),t}let r=this.#w;if(r==null||!r.isConnected)return;let i=z(`div`,{style:{position:`absolute`,top:`0`,left:`0`,width:`100%`,boxSizing:`border-box`,visibility:`hidden`,pointerEvents:`none`,whiteSpace:`pre-wrap`,wordBreak:`break-word`,font:`inherit`,paddingInline:`1ch`,tabSize:this.#r.tabSize.toString()},textContent:n},r),a=i.firstChild,o=document.createRange(),s=[];try{let t=i.getBoundingClientRect();if(t.width===0)return;let r=ii(n),c=t.left+this.#r.ch,l=r===void 0?n.length:r.length-1,u=e=>r===void 0?e:r[e],d=e=>{o.setStart(a,u(e)),o.setEnd(a,u(e+1));let t=o.getClientRects();return t.item(t.length-1)??o.getBoundingClientRect()};s.push(0);let f=d(0).top,p=1;for(;p<l;){let e=p,t=l;for(;e<t;){let n=e+t>>1;d(n).top>f?t=n:e=n+1}if(e>=l)break;let{left:n,top:r}=d(e),i=C()&&n-c>this.#r.ch/2;s.push(u(i?e-1:e)),f=r,p=e+1}let m=new Uint32Array(s.length+1);for(let e=0;e<s.length;e++)m[e]=s[e];return m[s.length]=n.length,this.#h.set(e,m),m}finally{i.remove()}}#xn(e){let t=this.#bn(e);if(t!==void 0)return t;let n=this.#n?.document?.getLineText(e)?.length??0;return Uint32Array.of(0,n)}#Sn({startContainer:e,endContainer:t}){let n=this.#w;return n!==void 0&&n.contains(e)&&n.contains(t)}#Cn(e){let t=this.#n?.document?.lineCount??0;return e<0||e>=t?!1:this.#hn(e)!==void 0}};function wi({type:e,editStateKey:t,owner:n,initialState:r,previousSession:i}){if(r!=null&&r.type!==e)throw TypeError(`Editor: initialState: a ${r.type} state cannot initialize a ${e} editor`);let a=r;return t==null?a??i??(e===`file`?{type:`file`}:{type:`file-diff`}):tt.activate(e,t,n,a)}function Ti(e){return e instanceof HTMLElement?Number(e.dataset.bufferSize??1):1}function Ei(e,t){return t!==void 0&&Number.isInteger(t.line)&&Number.isInteger(t.character)&&t.line>=0&&t.line<e.lineCount&&t.character>=0&&t.character<=e.getLineLength(t.line)}function Di(e,t){let n=e.charCodeAt(t-1),r=e.charCodeAt(t);return t>0&&t<e.length&&n>=55296&&n<=56319&&r>=56320&&r<=57343}var Oi=t(),ki=e(i(),1),Ai=(e,t,n)=>new Ci(e,t,n);function ji(e,t,r,i,a,o){let s=(0,Oi.c)(26),c;s[0]!==i||s[1]!==r||s[2]!==e||s[3]!==t?(c=x(i,e,t,r),s[0]=i,s[1]=r,s[2]=e,s[3]=t,s[4]=c):c=s[4];let l=c,{file:u,initialText:d}=l,f=(0,ki.useRef)(o),p;s[5]===o?p=s[6]:(p=()=>{f.current=o},s[5]=o,s[6]=p),(0,ki.useLayoutEffect)(p);let m;s[7]===i?m=s[8]:(m={onAttach(e){e.focus({lineNumber:1,character:0})},onBlur(){i.state.value.error||n(i.save())}},s[7]=i,s[8]=m);let h=m,g;s[9]===i?g=s[10]:(g=()=>void n(i.save()),s[9]=i,s[10]=g);let _;s[11]===a?_=s[12]:(_={enabled:a,ignoreInputs:!1},s[11]=a,s[12]=_),A(j.saveFile,g,_);let v;s[13]!==i||s[14]!==e||s[15]!==t||s[16]!==l?(v=()=>(i.attachEditor(e),()=>{n(i.finishEditing(e,()=>f.current(t),()=>te(i,e,l)))}),s[13]=i,s[14]=e,s[15]=t,s[16]=l,s[17]=v):v=s[17];let y;s[18]!==i||s[19]!==e||s[20]!==t?(y=[i,e,t],s[18]=i,s[19]=e,s[20]=t,s[21]=y):y=s[21],(0,ki.useEffect)(v,y);let b;return s[22]!==d||s[23]!==u||s[24]!==h?(b={file:u,initialText:d,options:h},s[22]=d,s[23]=u,s[24]=h,s[25]=b):b=s[25],b}var $=r();function Mi(e){let t=(0,Oi.c)(39),{owner:n,path:r,draft:i,state:c,active:l,changed:u,onDone:d,onDiscard:f,renderToolbar:p}=e,{preferences:m}=ue(),{dark:h}=de(),{changedOnDisk:g,change:_,copyDraft:v,save:b,done:x,discard:S,notifyUnsaved:C}=se(n,i,y.add),{file:w,initialText:T,options:te}=ji(n,r,c.text,i,l,C),ne=c.text!==c.savedText,re=g?`Not saving: changed on disk`:c.error?`Not saved`:c.saving?`Saving…`:ne?`Unsaved changes`:c.text===T?`Saves as you pause`:`Saved`,E;t[0]===re?E=t[1]:(E=(0,$.jsx)(`span`,{role:`status`,className:`text-xs text-muted-foreground`,children:re}),t[0]=re,t[1]=E);let D;t[2]!==x||t[3]!==d?(D=()=>void x(d),t[2]=x,t[3]=d,t[4]=D):D=t[4];let O;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,$.jsx)(o,{className:`size-3.5`}),t[5]=O):O=t[5];let k;t[6]!==g||t[7]!==D?(k=(0,$.jsxs)(a,{size:`sm`,disabled:g,onClick:D,children:[O,`Done`]}),t[6]=g,t[7]=D,t[8]=k):k=t[8];let ce;t[9]!==E||t[10]!==k?(ce=(0,$.jsxs)($.Fragment,{children:[E,k]}),t[9]=E,t[10]=k,t[11]=ce):ce=t[11];let le=ce,A;t[12]!==le||t[13]!==p?(A=p?.(le),t[12]=le,t[13]=p,t[14]=A):A=t[14];let j;t[15]===u?j=t[16]:(j=u&&(0,$.jsx)(`p`,{className:`border-b bg-graph-4/10 px-3.5 py-1.5 text-xs text-graph-4`,children:`Saving edits the changes you are reviewing.`}),t[15]=u,t[16]=j);let M;t[17]!==g||t[18]!==v||t[19]!==S||t[20]!==f||t[21]!==b||t[22]!==c.error?(M=c.error!==null&&c.error!==void 0&&(0,$.jsxs)(`div`,{role:`alert`,className:`flex items-center gap-2 border-b px-3.5 py-2 text-xs text-destructive`,children:[(0,$.jsxs)(`span`,{className:`flex-1`,children:[g?`The file changed on disk since you opened it. Reload it before saving.`:ie(c.error),` `,`Your draft is kept here.`]}),(0,$.jsx)(a,{size:`xs`,variant:`outline`,onClick:v,children:`Copy draft`}),!g&&(0,$.jsx)(a,{size:`xs`,variant:`outline`,onClick:()=>void b(),children:`Retry save`}),(0,$.jsx)(a,{size:`xs`,variant:`ghost`,onClick:()=>S(f),children:g?`Reload`:`Discard draft and reload`})]}),t[17]=g,t[18]=v,t[19]=S,t[20]=f,t[21]=b,t[22]=c.error,t[23]=M):M=t[23];let fe=h?`dark`:`light`,N;t[24]!==m.lineOverflow||t[25]!==fe?(N=oe(fe,{overflow:m.lineOverflow}),t[24]=m.lineOverflow,t[25]=fe,t[26]=N):N=t[26];let P;t[27]===_?P=t[28]:(P=e=>_(e.file.contents),t[27]=_,t[28]=P);let F;t[29]!==te||t[30]!==w||t[31]!==N||t[32]!==P?(F=(0,$.jsx)(ee,{className:`min-h-0 flex-1 overflow-auto`,children:(0,$.jsx)(s,{createEditor:Ai,children:(0,$.jsx)(ae,{file:w,edit:!0,editorOptions:te,options:N,onEditChange:P,onEditComplete:Ni})})}),t[29]=te,t[30]=w,t[31]=N,t[32]=P,t[33]=F):F=t[33];let I;return t[34]!==F||t[35]!==A||t[36]!==j||t[37]!==M?(I=(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[A,j,M,F]}),t[34]=F,t[35]=A,t[36]=j,t[37]=M,t[38]=I):I=t[38],I}function Ni(){return`reject`}export{Mi as default};
585
+ `}),this.#y=H(`style`,{dataset:`editorCss`,textContent:tr}),this.#b=H(`style`,{dataset:`editorThemeCss`}),this.#x=Yr(),this.#E=H(`div`,{dataset:`editorOverlay`});let e=e=>{let t=e.composedPath()[0];return t instanceof Node&&this.#w?.contains(t)===!0},t=()=>{this.#X!=null&&(this.#X=void 0,this.#Y=!1,this.#q=!1)},n=e=>{if(e.pointerType!==`mouse`)return;let t=this.#Q;this.#Ge(),t&&this.#lt(),this.#e.enabledSelectionAction===!0&&this.#oe!==void 0&&this.#oe.length>0&&!K(this.#oe.at(-1))&&this.#Ut(this.#oe)};this.#s=[U(document,`focusin`,n=>{e(n)||t()},{passive:!0}),U(document,`pointerdown`,n=>{e(n)||queueMicrotask(t)},{capture:!0,passive:!0}),U(document,`selectionchange`,()=>{let e=this.#S?.shadowRoot;if(this.#q||this.#J||e==null||!this.#Y||this.#oe!==void 0&&this.#oe.length>1&&!this.#$)return;let t=document.getSelection();if(t==null)return;let n;if(n=typeof t.getComposedRanges==`function`?t.getComposedRanges({shadowRoots:[e]})?.[0]:fi(e),n===void 0||!this.#Sn(n))return;let r=Pt(n,0);if(r!==void 0){if(this.#$&&this.#te&&this.#oe!==void 0&&this.#oe.length>0){let e=this.#oe.at(-1);this.#Ut([cn(e,r)]);return}if(this.#$)this.#ne===void 0?this.#ne=r:r=sn(this.#ne,r);else if(this.#ne!==void 0)r.direction=sn(this.#ne,r).direction;else if(this.#oe!==void 0&&this.#oe.length===1){let e=this.#oe[0];J(e.start,r.start)===0&&J(e.end,r.end)===0&&(r.direction=e.direction)}this.#ee!==void 0&&(this.#ee.focusLine=q(r).line,this.#Ot())||(this.#ie===void 0?this.#Ut([r]):this.#Ut([...this.#ie.filter(e=>!nn(e,r)),r]))}},{passive:!0}),U(document,`pointerup`,n,{passive:!0}),U(document,`pointercancel`,n,{passive:!0}),U(document,`keydown`,e=>{e.key===`Shift`?this.#ne=this.#oe?.at(-1):e.key===`Alt`&&!e.repeat&&this.#Y&&this.#e.editPrediction?.mode===`subtle`&&(this.#ve=!this.#ve,this.#Ut(this.#oe??[]))},{passive:!0}),U(document,`keyup`,e=>{e.key===`Shift`&&(this.#ne=void 0)},{passive:!0})]}#Ge(){this.#c?.forEach(e=>e()),this.#c=void 0,this.#q=!1,this.#Q=!1,this.#$=!1,this.#ee=void 0,this.#te=!1,this.#ne=void 0,this.#ie=void 0}#Ke(e){this.#c?.forEach(e=>e()),this.#c=e}#qe(){return this.#M?.options.enableLineSelection===!0}#Je(){this.#J=this.#oe!==void 0}#Ye(e,t){let{onFocus:n,onBlur:r}=this.#e,i=t=>{let n=t.composedPath()[0];return n!==void 0&&(n===e||e.contains(n))};this.#o?.forEach(e=>e()),this.#o=[U(e,`focus`,()=>{this.#Y=!0,n?.(),!this.#$&&!this.#q&&this.#oe!==void 0&&this.#oe.length>0&&this.#mt(this.#oe.at(-1))},{passive:!0}),U(e,`blur`,()=>{this.#X?.target===e&&(this.#X=void 0,this.#q=!1),this.#Y=!1,r?.()},{passive:!0}),U(e,`pointerdown`,t=>{if(this.#K=!0,this.#J=!1,t.pointerType!==`mouse`)return;if(this.#ee=void 0,this.#yt(t)){this.#Tt(!0),this.#oe!==void 0&&this.#Ut([]);return}this.#Tt(!1),this.#H?.removePopover();let n=[];if(j()&&this.#L!==void 0&&this.#L.length>0){let t=[...e.querySelectorAll(`[data-line-annotation]`)].map(e=>[U(e,`mouseenter`,()=>{this.#q=!0}),U(e,`mouseleave`,()=>{this.#q=!1})]).flat();n.push(...t)}this.#$=!0;let r=t.button===0&&t.altKey&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey;if(this.#ne=void 0,r?(this.#ee={pointerId:t.pointerId,startClientX:t.clientX,clientX:t.clientX,startScrollLeft:e.parentElement?.scrollLeft??0},this.#ie=void 0,this.#oe=void 0,this.#Ut([]),n.push(U(document,`pointermove`,e=>{let t=this.#ee;t!==void 0&&e.pointerType===`mouse`&&e.pointerId===t.pointerId&&(t.clientX=e.clientX,this.#Ot())},{capture:!0,passive:!0}))):t.button===0&&$e(t)&&(this.#ie=this.#oe?.map(e=>({...e}))),this.#Ke(n),t.shiftKey){let e=this.#oe?.at(-1);if(e!==void 0){let t=e.direction===-1?e.end:e.start;this.#mt({start:t,end:t,direction:0})}this.#te=!0}},{passive:!0}),U(e,`keydown`,e=>{if(!i(e)||(this.#K=!0,this.#J=!1,e.isComposing||e.keyCode===229))return;if(e.key===`Tab`&&!e.shiftKey&&!e.ctrlKey&&!e.metaKey&&!e.isComposing&&!this.#Z&&(!e.altKey||this.#e.editPrediction?.mode===`subtle`)&&this.#be?.rendered===!0){this.#Vt(),e.preventDefault();return}if(e.key===`Escape`&&this.#be!==void 0){this.#Lt(!0),e.preventDefault();return}let t=at(e,this.#e.keymap);if(t!==void 0){e.preventDefault(),t===`simplifySelection`&&(this.#W?.close(),this.#W=void 0,this.#fe=!1,this.#G?.cleanup(),this.#G=void 0),this.#$e(t);return}let n=et(e),r=this.#n?.document;if(this.#oe!==void 0&&this.#oe.length>0&&n!==void 0&&r!==void 0){let t={getSoftLineOffsets:this.#Ie?e=>this.#xn(e):void 0,resolveRenderableLine:this.#Me};e.shiftKey?this.#Ut(Ht(r,this.#oe,n,t)):this.#Ut(It(r,this.#oe,n,t)),this.#ht(),e.preventDefault();return}if((e.key.length===1?e.key.toLowerCase():e.key)===`v`&&$e(e)){if(e.repeat&&this.#Fe){e.preventDefault();return}if(this.#e.clipboard!==void 0){e.preventDefault(),D(this.#Xe);return}}if(this.#W!==void 0){let t=ot(e);if(t!==void 0){e.preventDefault(),this.#W.navigate(t===`previous`);return}}}),U(e,`copy`,e=>{i(e)&&(e.preventDefault(),this.#Ct()?e.clipboardData?.setData(`text`,this.#wt()):this.#tn(e.clipboardData,this.#$t(),this.#en()))}),U(e,`cut`,e=>{if(i(e)){if(e.preventDefault(),this.#Ct())e.clipboardData?.setData(`text`,this.#wt());else{let t=this.#en();this.#tn(e.clipboardData,this.#nn(),t)}}}),U(e,`paste`,e=>{if(!i(e))return;e.preventDefault();let t=e.clipboardData,n=this.#n?.document;if(t===null||n===void 0)return;let r=t.getData(`text`),a=this.#oe?.length??0;if(a>1){let e=t.getData(Si);if(e!==void 0)try{let t=JSON.parse(e);Array.isArray(t)&&t.length===a&&(r=t)}catch{}}this.#in(Array.isArray(r)?r.map(e=>n.normalizeEol(e)):n.normalizeEol(r),void 0,!0,`document`)}),U(e,`beforeinput`,e=>{if(i(e)){if(e.inputType===`insertCompositionText`){this.#Lt(!0);return}e.preventDefault(),this.#ct(e.inputType,e.data)}}),U(e,`drop`,e=>{i(e)&&e.preventDefault()}),U(e,`compositionstart`,e=>{i(e)&&(this.#Lt(!0),this.#Z=!0,this.#q=!0)},{passive:!0}),U(e,`compositionend`,e=>{if(!i(e))return;this.#q=!1;let t=this.#Z;this.#Z=!1,(e.data!==``||!t)&&this.#ct(`insertText`,e.data)},{passive:!0})];let a=this.#S?.shadowRoot?.querySelector(`[data-deletions]`);if(a!=null&&this.#o.push(U(a,`pointerdown`,e=>{let t=e.composedPath();if(se(t)){this.#Je();return}let n=t[0],r=n instanceof HTMLElement?n.closest(`[data-column-number]`):null;if(r instanceof HTMLElement){if(this.#qe()){this.#Je();return}if(this.#St(r,a,e.pointerType===`mouse`))return}this.#Tt(!0),this.#oe!==void 0&&this.#Ut([])},{passive:!0})),t!==void 0){let e=(e,t=!1)=>{let n=e;return n?.dataset.lineNumberContent===void 0?t&&n?.tagName===`SPAN`&&(n=n.closest(`[data-line]`)):n=n.parentElement??void 0,n},n=e=>{if(e===void 0)return;let t=e.dataset.lineType,n=W(e)??W(e,`columnNumber`);if(n!==void 0&&t!==void 0&&tn(t))return n-1};this.#o.push(U(t,`pointerdown`,t=>{let r=t.composedPath();if(se(r)){this.#Je();return}let i=e(r[0]);if(i!==void 0&&this.#qe()){this.#Je();return}if(i?.dataset.lineType===`change-deletion`){let e=i.closest(`[data-code]`);e!=null&&this.#St(i,e,t.pointerType===`mouse`);return}if(t.pointerType!==`mouse`)return;let a=this.#n?.document,o=n(i);if(o===void 0||a===void 0)return;this.#K=!0,this.#H?.removePopover();let s=this.#vt(o,o,a);this.#Q=!0,this.#ne=s,this.#Ut([s]),this.#mt(s),this.#lt(),this.#Ke([U(document,`mousemove`,t=>{if(!this.#Q)return;let r=this.#n?.document,i=n(e(t.composedPath()[0],!0));if(i===void 0||r===void 0)return;let a=this.#ne?.start.line??i,o=this.#vt(a,i,r);this.#ne??=o,this.#Ut([o]),this.#lt(o.direction===-1?o.start:o.end)},{passive:!0})])},{passive:!0}))}this.#H?.listenHover(e),this.#j?.disconnect(),this.#j=new ResizeObserver(this.#at),this.#j.observe(e),this.#j.observe(e.parentElement),this.#Ze(e)}#Xe=async()=>{let e=this.#e.clipboard;if(e!==void 0){let t=await e.readText(),n=this.#oe?.length??0;if(n>1){let r=await e.readText(Si);try{let e=JSON.parse(r);Array.isArray(e)&&e.length===n&&(t=e)}catch{}}let r=this.#n?.document;r!=null&&this.#in(Array.isArray(t)?t.map(e=>r.normalizeEol(e)):r.normalizeEol(t),void 0,!0,`document`)}};#Ze(e){this.#Fe&&this.#Pe===`split`&&this.#Ie&&(this.#d={top:e.offsetTop-this.#r.paddingTop,left:e.offsetLeft-this.#gn()},this.#e.__debug===!0&&console.log(`[diffs/editor] content offset:`,this.#d))}get#Qe(){if(this.#Fe&&this.#Pe===`split`&&this.#Ie)return this.#d}#$e(e){let t=this.#n?.document;if(t!=null)switch(e){case`openSearchPanel`:this.#Zt(`find`);break;case`openSearchReplacePanel`:this.#Zt(`replace`);break;case`findNextMatch`:{let e=this.#oe;if(e===void 0)break;if(e.some(K)){let n=e.map(e=>K(e)?En(t,e):e);this.#Ut(n),this.focus()}else{let n=pn(t,e);if(n!==void 0){this.#Ut(n);let e=n.at(-1);e!==void 0&&this.#Ne(q(e).line),this.#ht()}}break}case`moveLineUp`:case`moveLineDown`:this.#it(e===`moveLineUp`?-1:1);break;case`copyLineUp`:case`copyLineDown`:this.#nt(e===`copyLineUp`?-1:1);break;case`simplifySelection`:{let e=this.#oe,t=e?.at(-1);if(e===void 0||t===void 0)break;if(e.length>1)this.#Ut([t]),this.#lt(q(t));else if(!K(t)){let e=q(t);this.#Ut([{start:e,end:e,direction:0}]),this.#lt(e)}break}case`insertBlankLine`:this.#rt();break;case`deleteHardLineForward`:this.#cn();break;case`toggleComment`:case`toggleBlockComment`:{let n=this.#oe;if(n===void 0)break;let{lineComment:r,blockComment:i}=Er(t.languageId,this.#e.languageCommentConfig);if(e===`toggleComment`&&r!==null){this.#tt(Dr(t,n,r));break}let a=e===`toggleComment`,o=jr(t,n,i,a);o!==void 0&&this.#tt(o.edits,a?void 0:e=>o.nextSelectionOffsets.map(([t,n,r])=>({start:e.positionAt(t),end:e.positionAt(n),direction:r})));break}case`indent`:case`outdent`:case`indentLess`:case`indentMore`:if(this.#oe!==void 0){let n=[],r=[],i=new Set,a=[];for(let o of this.#oe){let s=o.start.line,c=e===`outdent`||e===`indentLess`,l=e===`indentLess`||e===`indentMore`;if(s!==o.end.line||c||l){let e=Ft(t,o,this.#r.tabSize,c);for(let t of e[0]){let e=t.range.start.line;i.has(e)||(i.add(e),n.push(t))}r.push(e[1])}else{let e=t.charAt({line:s,character:0})===` `?` `:` `.repeat(this.#r.tabSize);n.push({range:o,newText:e}),a.push({line:s,startCharacter:o.start.character,addedLength:e.length-(o.end.character-o.start.character),selectionIndex:r.length});let i={line:o.start.line,character:o.start.character+e.length};r.push({start:i,end:i,direction:0})}}for(let e of a){let t=0;for(let n of a)n.line===e.line&&n.startCharacter<e.startCharacter&&(t+=n.addedLength);if(t!==0){let n=r[e.selectionIndex],i={line:e.line,character:n.start.character+t};r[e.selectionIndex]={start:i,end:i,direction:0}}}let o=t.applyEdits(n,!0,this.#oe,r);o!==void 0&&this.#un(o,r)}break;case`selectAll`:{let e=mn(t);this.#Ut([e]),this.focus();let n=this.#pn(),r=n[0]?.[0],i=n.at(-1)?.[1];r!==void 0&&i!==void 0&&(this.#J=!0,this.#mt({start:{line:r,character:0},end:{line:i,character:t.getLineLength(i)},direction:1}));break}case`moveCursorToDocStart`:case`moveCursorToDocEnd`:{let n=hn(t,e===`moveCursorToDocEnd`,this.#Fe);this.#Ut([n]),this.#Ne(q(n).line),this.#ht()}break;case`expandSelectionDocStart`:case`expandSelectionDocEnd`:{let n=e===`expandSelectionDocEnd`,r=this.#oe;if(r!==void 0){let e=hn(t,n,this.#Fe);this.#Ut(ln(r,e)),this.#Ne(q(e).line),this.#ht()}}break;case`undo`:case`redo`:this.#et(e)}}#et(e){let t=this.#n?.document;if(t==null||e===`undo`&&!t.canUndo||e===`redo`&&!t.canRedo)return;let n=this.#oe,r=n?.map(e=>[t.offsetAt(e.start),t.offsetAt(e.end)]),i=e===`undo`?t.undo():t.redo();if(i===void 0)return;let[a,o,s,c]=i,l=o??(n!==void 0&&r!==void 0&&c!==void 0?on(t,n,r,c):void 0),u=s??(this.#L==null?void 0:yt(a,this.#L));this.#un(a,l,u)}#tt(e,t){let n=this.#n?.document,r=this.#oe;if(n===void 0||r===void 0)return;let i=t===void 0,a=i?r.map(e=>[n.offsetAt(e.start),n.offsetAt(e.end)]):void 0,o=i?e.map(e=>{let t=n.offsetAt(e.range.start),r=n.offsetAt(e.range.end);return{start:Math.min(t,r),end:Math.max(t,r),text:e.newText}}).sort((e,t)=>{let n=e.start-t.start;return n===0?e.end-t.end:n}):void 0,s=n.applyEdits(e,!0,r,void 0,!0);if(s===void 0)return;let c=i?on(n,r,a,o):t(n);n.setLastUndoSelectionsAfter(c),this.#un(s,c,this.#fn(s))}#nt(e){let t=this.#n?.document,n=this.#oe;if(t===void 0||n===void 0)return;let r=dn(n);if(r.length===0)return;let i=[],a=0,o=[];for(let n of r){i.push(a);let r=n.endLine-n.startLine+1;a+=r;let s=t.getText({start:{line:n.startLine,character:0},end:{line:n.endLine,character:t.getLineLength(n.endLine)}});if(e>0){let e={line:n.startLine,character:0};o.push({range:{start:e,end:e},newText:s+t.eol})}else if(n.endLine<t.lineCount-1){let e={line:n.endLine+1,character:0};o.push({range:{start:e,end:e},newText:s+t.eol})}else{let e={line:n.endLine,character:t.getLineLength(n.endLine)};o.push({range:{start:e,end:e},newText:t.eol+s})}}let s=n.map(t=>{let n=t.start.line,a=0,o=r.length-1;for(;a<=o;){let e=a+o>>>1,t=r[e];if(n<t.startLine)o=e-1;else if(n>t.endLine)a=e+1;else{a=e;break}}let s=Math.max(0,a<=o?a:o),c=r[s],l=i[s]+(e>0?c.endLine-c.startLine+1:0);return{start:{...t.start,line:t.start.line+l},end:{...t.end,line:t.end.line+l},direction:t.direction}});this.#tt(o,()=>s)}#rt(){let e=this.#n?.document,t=this.#oe;if(e===void 0||t===void 0)return;let n=t.map(e=>q(e).line),r=Array.from(new Set(n)).sort((e,t)=>e-t),i=new Map,a=new Map,o=[];for(let t=0;t<r.length;t++){let n=r[t],s=e.getLineText(n),c=/^\s*/.exec(s)?.[0]??``;i.set(n,t),a.set(n,c);let l={line:n,character:e.getLineLength(n)};o.push({range:{start:l,end:l},newText:e.eol+c})}let s=t.map((e,t)=>{let r=n[t],o={line:r+1+i.get(r),character:a.get(r).length};return{start:o,end:o,direction:0}});this.#tt(o,()=>s)}#it(e){let t=this.#n?.document,n=this.#oe;if(t===void 0||n===void 0)return;let r=dn(n);if(r.length===0||e<0&&r[0].startLine===0||e>0&&r.at(-1).endLine>=t.lineCount-1)return;let i=t.lineCount,a=e=>e<i-1?{line:e+1,character:0}:{line:e,character:t.getLineLength(e)},o=(e,n)=>{let r=e.map(e=>t.getLineText(e)).join(t.eol);return n?r+t.eol:r},s=[];if(e<0)for(let e of r){let t=e.startLine-1,n=[];for(let t=e.startLine;t<=e.endLine;t++)n.push(t);s.push({range:{start:{line:t,character:0},end:a(e.endLine)},newText:o([...n,t],e.endLine<i-1)})}else for(let e=r.length-1;e>=0;e--){let t=r[e],n=t.endLine+1,c=[];for(let e=t.startLine;e<=t.endLine;e++)c.push(e);s.push({range:{start:{line:t.startLine,character:0},end:a(n)},newText:o([n,...c],n<i-1)})}let c=r.at(-1),l=e>0&&c.endLine===i-2?t.getLineLength(c.endLine):t.getLineLength(i-1),u=n.map(n=>fn(n,e,i,e=>e===i-1?l:t.getLineLength(e))),d=t.applyEdits(s,!0,n,u,!0);d!==void 0&&this.#un(d,u)}#at=()=>{let e=this.#L?.length??0,t=this.#f,n=this.#p;this.#f=void 0,this.#p=void 0;let r=this.#gn()!==t,i=this.#_n()!==n;(r||i)&&(this.#g.clear(),this.#_=void 0,this.#r.clearTextWidthCache(),i&&(this.#h.clear(),(this.#Ie||e>0)&&this.#m.clear()),(this.#oe!==void 0||this.#se!==void 0||this.#H!==void 0)&&(this.#Ut(this.#oe??[]),this.#oe!==void 0&&this.#Y&&this.focus()),this.#H?.removePopover(),this.#Ze(this.#w),this.#Wt())};#ot(){if(this.#pe)return;let e=document.fonts;e!==void 0&&(this.#pe=!0,e.ready.then(()=>{this.#w!==void 0&&this.#r.remeasureCharacterWidth()&&(this.#f=void 0,this.#p=void 0,this.#Re(),this.#h.clear(),(this.#oe!==void 0||this.#se!==void 0||this.#H!==void 0)&&this.#Ut(this.#oe??[]),this.#Wt(),this.#H?.removePopover())}))}#st(e,t,n=this.#B,r){let i=this.#i,a=this.#M,o=this.#N,s=this.#n?.document,c=this.#C,l=this.#w;if(i==null||a==null||o==null||s==null||l==null)return;i.stopBackgroundTokenize();let u=performance.now(),d=i.tokenize(e,n,!this.#Fe&&this.#Ae!=null),f=performance.now();if(d.size>0){let e=l.children,t=new Set;for(let e of d.keys())this.#je(e)&&t.add(e);for(let n=0;n<e.length;n++){let r=e[n];if(r!==void 0){let e=W(r),n=r.dataset.lineType;if(e===void 0||n===`change-deletion`)continue;let i=e-1;if(t.has(i)){let e=d.get(i);if(r.replaceChildren(...ui(e)),t.delete(i),t.size===0)break}}}if(t.size>0){let n=0;for(let t=e.length-1;t>=0;t--){let r=e[t],i=W(r);if(i!==void 0&&r.dataset.lineType!==`change-deletion`){n=i;break}}for(let e of t){if(e<n)continue;let t=d.get(e),r=String(e+1);H(`div`,{dataset:{line:r,lineType:`context`,lineIndex:e.toString()},children:ui(t)},l),c!==void 0&&H(`div`,{dataset:{lineType:`context`,columnNumber:r,lineIndex:e.toString()},children:[H(`span`,{dataset:{lineNumberContent:``},textContent:r})]},c)}}}if(e.lineDelta<0)for(let t of[l.children,c?.children??[]])for(let n=t.length-1;n>=0;n--){let r=t[n],i=W(r)??W(r,`columnNumber`),a=r.dataset.lineType;if(i!==void 0&&a!==`change-deletion`){if(i-1<e.lineCount)break;r.remove()}}let p=e.lineDelta!==0;if(p){let e=l.children.length;for(let t of l.children){let{bufferSize:n}=t.dataset;n!==void 0&&(e+=parseInt(n)-1)}l.style.gridRow=`span `+e,c!==void 0&&(c.style.gridRow=`span `+e)}a.updateRenderCache(d,i.themeType,{shouldRefreshDiffsView:this.#Fe&&!p,lineCountChangeInFlight:p}),p&&o(s,t,r),(p||this.#Fe&&this.#Pe===`unified`)&&this.#Re(),t!=null&&(this.#L=t,(!this.#Fe||!p)&&Tt(t,l,c,a.getAnnotationSlotName)),this.#Wt(),this.#e.__debug===!0&&console.log(`[diffs/editor] re-render in: ${G(performance.now()-f)}ms,`,`tokenize in: ${G(f-u)}ms (${d.size} dirty lines)`)}#ct(e,t){switch(e){case`insertText`:{let e=t??``,n=this.#n?.document,r=this.#oe,i=n!==void 0&&r!==void 0?Jt(n,r,e,this.#e.autoSurround):void 0;this.#in(i??e);break}case`insertCompositionText`:break;case`insertLineBreak`:case`insertParagraph`:this.#in(this.#n?.document?.eol??`
586
+ `);break;case`deleteContentBackward`:this.#an();break;case`deleteContentForward`:this.#an(!0);break;case`deleteSoftLineBackward`:case`deleteHardLineBackward`:this.#on();break;case`deleteWordBackward`:this.#sn();break;case`insertTranspose`:this.#ln();break;default:console.warn(`[diffs] Unknown input type: ${e}`,t)}}#lt(e,t=!0,n){this.#Y=!0,e===void 0?n?.()===!1?this.#Y=!1:this.#w?.focus({preventScroll:t}):(this.#q=!0,this.#mt({start:e,end:e,direction:0}),D(()=>{if(n?.()===!1||!this.#Y){this.#q=!1;return}this.#w?.focus({preventScroll:t}),D(()=>{this.#q=!1})}))}#ut(e){let t=this.#X;if(t==null)return;if(this.#fe){this.#X=void 0,this.#Y=!1,this.#q=!1;return}let n=this.#w;if(n==null||!this.#dt(n)){this.#X=void 0,this.#Y=!1;return}let r=()=>{if(this.#X!==t)return!1;let e=this.#dt(n);return this.#X=void 0,e};if(e!=null){this.#lt(e,!0,r);return}let i=this.#oe?.at(-1);if(i==null){this.#lt(void 0,!0,r);return}let a=i.direction===-1?i.end:i.start;this.#lt(a,!0,r)}#dt(e){let t=this.#S,n=t?.shadowRoot;if(t==null||n==null||this.#w!==e||!n.contains(e))return!1;let{activeElement:r}=n;if(r===e||r!=null&&e.contains(r))return!0;if(r!=null)return!1;let{ownerDocument:i}=t,{activeElement:a}=i;return a==null||a===i.body||a===i.documentElement||a===t}#ft(e=0){let t=this.#w,n=this.#S;if(this.#n?.document==null||t==null||n==null)return;let r=this.#He();if(r===void 0)return;let i,a;if(r instanceof HTMLElement){let e=r.getBoundingClientRect();i=e.top,a=e.bottom}else i=0,a=r.defaultView?.innerHeight??0;let o=n.shadowRoot?.querySelector(`[data-diffs-header][data-sticky]`);if(o!=null&&(i=Math.max(i,o.getBoundingClientRect().bottom)),Number.isFinite(e)&&(i+=Math.max(0,e)),!(a<=i))for(let e of t.children){let t=e,n=W(t),r=t.dataset.lineType;if(n==null||r==null||!tn(r))continue;let o=t.getBoundingClientRect();if(!(o.bottom<=o.top)&&o.top>=i&&o.top<a)return n}}#pt(e,t){let n={start:e,end:e,direction:0};this.#K=!1,this.#Ut([n]),this.#Ne(e.line),t?this.#lt(e,!0):this.#ht()}#mt(e){let t=window.getSelection();if(t===null)return;let{start:n,end:r,direction:i}=e;J(n,r)>0&&([n,r]=[r,n]);let a=this.#hn(n.line),o=this.#hn(r.line);if(a===void 0||o===void 0)return;let[s,c]=Tn(a,n.character),[l,u]=Tn(o,r.character);i===-1&&([s,c,l,u]=[l,u,s,c]);try{t.setBaseAndExtent(s,st(s,c),l,st(l,u))}catch(e){console.error(`[diffs/editor] failed to update window selection:`,e)}}#ht(e=!1,t=`nearest`){let n=this.#oe?.at(-1);if(n===void 0)return;let r=this.#A;if(r!==void 0){if(r.scrollIntoView({block:t,inline:`nearest`}),!e){let e=n.direction===-1?n.end:n.start;this.#X===void 0?this.#lt(e):this.#ut(e)}}else{let t=q(n);this.#_t(t.line,t.character,e)}}#gt(){let e=this.#W===void 0?0:48,t=this.#gn()+this.#r.ch;return`${e}px ${this.#r.ch}px 0 ${t}px`}#_t(e,t=0,n=!1){this.__postponeBgTokenizeToNextFrame();let r=H(`div`,{style:{position:`absolute`,left:`0`,width:`2px`,height:this.#r.lineHeight+`px`,scrollMargin:this.#gt()}});if(this.#hn(e)!==void 0){let[i,a]=this.#yn(e,t),o=this.#vn(e)+a*this.#r.lineHeight;if(r.style.top=o+`px`,r.style.left=i+`px`,this.#E?.appendChild(r),r.scrollIntoView({block:`center`,inline:`nearest`}),!n){let n={line:e,character:t};this.#X===void 0?this.#lt(n):this.#ut(n)}this.#ce=void 0,this.#le=void 0,this.#ue=!1,this.#de=!1}else{let i=this.#Ae?.getLinePosition?.(e+1);if(i!==void 0)r.style.top=i.top+`px`,this.#S?.shadowRoot?.appendChild(r),r.scrollIntoView({block:`center`,inline:`nearest`}),i.height>0&&this.#je(e)?(this.#ce=e,this.#le=t,this.#de=n):(this.#ce=void 0,this.#le=void 0,this.#de=!1);else{let i=0;if(this.#ce===e&&this.#w!==void 0)for(let t=this.#w.childElementCount-1;t>=0;t--){let n=this.#w.children[t],r=n.dataset.lineType,a=W(n);if(r!==void 0&&tn(r)&&a!==void 0){i=(e-(a-1))*this.#r.lineHeight;break}}let a=((this.#L??[]).filter(t=>t.lineNumber<e).length+e)*this.#r.lineHeight+i;r.style.top=a+`px`,this.#S?.shadowRoot?.appendChild(r),r.scrollIntoView({block:`center`,inline:`nearest`}),this.#ce===e&&(i===0||this.#ue)||!this.#je(e)?(this.#ce=void 0,this.#le=void 0,this.#ue=!1,this.#de=!1):(this.#ce=e,this.#le=t,this.#ue=i!==0,this.#de=n)}}r.remove()}#vt(e,t,n){let r=e=>({line:e,character:0}),i=e=>({line:e,character:n.getLineText(e).length});return t<e?{start:r(t),end:i(e),direction:-1}:{start:r(e),end:i(t),direction:1}}#yt(e){let t=e.composedPath()[0];return t instanceof HTMLElement&&t.closest(`[data-line]`)?.getAttribute(`data-line-type`)===`change-deletion`}#bt(e,t,n){let r=[...n.querySelectorAll(`[data-content] > [data-line]`)],i=r.indexOf(e),a=r.indexOf(t),[o,s]=a<i?[t,e]:[e,t],c=window.getSelection();if(c!==null){let e=document.createRange();e.setStart(o,0),e.setEnd(s,s.childNodes.length),c.removeAllRanges(),c.addRange(e)}this.#Tt(!0),this.#Ut([]),this.#Et(W(t)??null,!0,`deletions`);let l=Math.min(i,a),u=Math.max(i,a);this.#re=l<0?``:r.slice(l,u+1).filter(e=>e.getAttribute(`data-line-type`)===`change-deletion`).map(e=>e.textContent??``).join(`
587
+ `)}#xt(e,t){let n=e.parentElement;if(n==null||t==null)return;let r=[...n.children].indexOf(e),i=t.children[r];return i instanceof HTMLElement?i:void 0}#St(e,t,n){let r=t.querySelector(`[data-content]`),i=this.#xt(e,r);return i!==void 0&&(this.#bt(i,i,t),n&&this.#Ke([U(document,`mousemove`,e=>{let n=e.composedPath()[0],a=n instanceof HTMLElement?n.closest(`[data-column-number]`):null;if(a instanceof HTMLElement&&t.contains(a)){let e=this.#xt(a,r);e!==void 0&&this.#bt(i,e,t)}},{passive:!0})]),!0)}#Ct(){return this.#S?.shadowRoot?.querySelector(`pre`)?.hasAttribute(`data-deleted-text-selection`)??!1}#wt(){return this.#re===``?window.getSelection()?.toString()??``:this.#re}#Tt(e){let t=this.#S?.shadowRoot?.querySelector(`pre`);t!=null&&(e?(t.setAttribute(`data-deleted-text-selection`,``),this.#Et(null),this.#re=``):(t.removeAttribute(`data-deleted-text-selection`),this.#re=``))}#Et(e,t=!1,n=`additions`){try{this.#M?.setEditorActiveLine(e,{lineNumberOnly:t,side:n})}catch{}}#Dt(){this.#me===void 0&&(this.#me=requestAnimationFrame(()=>{this.#me=void 0,(this.#oe!==void 0||this.#se!==void 0||this.#H!==void 0)&&this.#Ut(this.#oe??[])}))}#Ot(){let e=this.#ee,t=this.#ne,n=this.#n?.document;if(e===void 0||e.focusLine===void 0||t===void 0||n===void 0)return!1;let r=t.direction===-1?t.end:t.start,i=this.#w?.parentElement?.scrollLeft??0,a=(e.clientX-e.startClientX+i-e.startScrollLeft)/this.#r.ch,o=a<0?-Math.round(-a):Math.round(a),s=Math.max(0,r.character+o),c={line:e.focusLine,character:s};if(e.renderedGoal!==void 0&&J(e.renderedGoal,c)===0)return!0;e.renderedGoal=c;let l=[],u=c.line<r.line?-1:1;for(let e=r.line;;e+=u){if(this.#je(e)){let t=n.getLineText(e),i=Math.min(r.character,t.length),a=Math.min(s,t.length),o=Rt(t,i),c=a===i?o:Rt(t,a);l.push({start:{line:e,character:Math.min(o,c)},end:{line:e,character:Math.max(o,c)},direction:o===c?0:o<c?1:-1})}if(e===c.line)break}return this.#Ut(l),!0}#kt(){for(let[e,t]of this.#D??[])e.startsWith(`editPrediction`)&&(t.remove(),this.#D?.delete(e))}#At(e,t,n){let r=t[n],i=n,a=r.range.end.line;for(;i+1<t.length&&t[i+1].range.start.line<=a;)i++,a=Math.max(a,t[i].range.end.line);if(i===n&&(r.newText.length===0||J(r.range.start,r.range.end)===0))return{edit:r,endIndex:i};let o=r.range.start,s={line:a,character:e.getLineLength(a)},c=[],l=e.offsetAt(o);for(let r=n;r<=i;r++){let n=t[r],i=e.offsetAt(n.range.start),a=e.offsetAt(n.range.end);c.push(e.getTextSlice(l,i),n.newText),l=a}return c.push(e.getTextSlice(l,e.offsetAt(s))),{edit:{range:{start:o,end:s},newText:c.join(``)},endIndex:i}}#jt(){let e=this.#be,t=this.#n?.document;if(e==null||t==null||e.document!==t||e.version!==t.version||this.#e.editPrediction?.mode===`subtle`&&!this.#ve)return;let{edits:n}=e.response,r=[],i=n.length>0;for(let e=0;e<n.length;){let{edit:a,endIndex:o}=this.#At(t,n,e);for(let e=a.range.start.line;i&&e<=a.range.end.line;e++)i=this.#Cn(e);r.push({edit:a,startIndex:e,endIndex:o}),e=o+1}return{groups:r,allVisible:i}}#Mt(e,t,n,r,i){this.#Ie?(e.dataset.wrap=``,e.style.width=`calc(100cqw - ${r}px)`):(delete e.dataset.wrap,e.style.width=`max-content`);let a=t.split(/\r\n|\r|\n/);for(let t=0;t<a.length;t++){let o=a[t],s=t===a.length-1?i:void 0,c=o.length===0&&s===void 0,l=H(`span`,{dataset:c?[`editPredictionLine`,`empty`]:`editPredictionLine`,textContent:c?`​`:o},e);s!==void 0&&H(`span`,{dataset:`editPredictionSuffix`},l).append(s),t===0&&n!==r&&(l.style.textIndent=`${n-r}px`)}}#Nt(e){let t=this.#be,n=this.#n?.document;if(t==null||n==null)return;let{edit:r,startIndex:i,endIndex:a}=e,{start:o,end:s}=r.range;if(!(J(o,s)===0&&o.character<n.getLineLength(o.line))||t.response.edits[i-1]?.range.end.line===o.line||t.response.edits[a+1]?.range.start.line===o.line)return;let c=this.#hn(o.line);if(c===void 0)return document.createTextNode(n.getLineText(o.line).slice(o.character));let[l,u]=Tn(c,o.character),d=document.createRange();d.selectNodeContents(c),d.setStart(l,st(l,u));let f=d.cloneContents();return f.firstChild?.textContent===``&&f.firstChild.remove(),f}#Pt(e){let{edit:t}=e,{start:n}=t.range,[r,i]=this.#yn(n.line,n.character),a=1,o=t.newText.split(/\r\n|\r|\n/).length,s=this.#E;if(this.#Ie&&s!=null){a=Math.max(1,this.#xn(n.line).length-1);let i=H(`span`,{dataset:`editPrediction`,style:{visibility:`hidden`}},s);this.#Mt(i,t.newText,r,this.#yn(n.line,0)[0],this.#Nt(e));let{width:c,height:l}=i.getBoundingClientRect();i.remove();let{lineHeight:u}=this.#r;c>0&&l>0&&u>0&&(o=Math.round(l/u))}return Math.max(0,o-(a-i))}#Ft(e=!0){let t=new Map,n=new Map,r=this.#Ce,i=!1,a=this.#w,o=this.#jt();if(a!=null&&o!=null&&o.allVisible){for(let e of o.groups){let{edit:t}=e;if(t.newText.length===0)continue;let r=this.#Pt(e);r>(n.get(t.range.start.line)??0)&&n.set(t.range.start.line,r)}if(n.size>0){let e,o=this.#B?.startingLine??0;for(let[s,c]of n){i||=r.get(s)!==c;let n=this.#hn(s);if(n===void 0)continue;let l=s-o;if(a.children[l]!==n){if(e===void 0){e=new Map;for(let t=0;t<a.children.length;t++)e.set(a.children[t],t)}l=e.get(n)??-1}if(l<0)continue;t.set(n,c);let u=this.#C?.children[l];u instanceof HTMLElement&&t.set(u,c);let d=this.#It(l);d!=null&&(t.set(d.content,(t.get(d.content)??0)+c),t.set(d.gutter,(t.get(d.gutter)??0)+c))}}}let s=!1;for(let[e,n]of this.#Se)t.get(e)!==n&&(delete e.dataset.editPredictionSpacer,e.style.removeProperty(`--diffs-edit-prediction-spacer-height`),s=!0);for(let[e,n]of t)this.#Se.get(e)!==n&&(e.dataset.editPredictionSpacer=``,e.style.setProperty(`--diffs-edit-prediction-spacer-height`,`${n}lh`),s=!0);this.#Se=t,(i||n.size!==r.size)&&(this.#Ce=n,e&&this.#Ae?.syncGhostTextRows()),s&&this.#Re()}#It(e){let t=this.#T,n=this.#w;if(t==null||n==null||!this.#Fe||this.#Pe!==`split`||this.#Ie)return;let r=0;for(let t=0;t<e;t++)r+=Ti(n.children[t]);let{content:i,gutter:a}=t,o=0;for(let e=0;e<i.children.length;e++){let t=i.children[e];if(o+=Ti(t),o>r){let n=a.children[e];if(!(t instanceof HTMLElement)||!(n instanceof HTMLElement))throw Error(`Editor: deletions column rows and gutter cells are out of step`);return{content:t,gutter:n}}}}#Lt(e,t=!0){this.#he!==void 0&&(clearTimeout(this.#he),this.#he=void 0),this.#ge?.abort(),this.#ge=void 0,this.#_e++,this.#ve=!1,this.#ye=!1,this.#be=void 0,this.#Ft(t),e&&this.#kt()}#Rt(e){let t=this.#e.editPrediction;if(t===void 0)return!1;let n=e.replaceAll(`\\`,`/`);return(t.include===void 0||t.include.some(e=>Sr(n,e)))&&t.exclude?.some(e=>Sr(n,e))!==!0}#zt(){this.#Lt(!0);let e=this.#oe?.[0];if(this.#e.editPrediction===void 0||this.#n?.document===void 0||this.#n?.fileInfo===void 0||this.#oe?.length!==1||e===void 0||!K(e))return;let t=this.#n?.document,n=t.offsetAt(q(e));this.#he=setTimeout(()=>{this.#he=void 0;let e=this.#e.editPrediction,r=this.#oe?.[0],i=this.#n?.fileInfo?.name;if(e===void 0||i===void 0||this.#n?.document!==t||this.#oe?.length!==1||r===void 0||!K(r)||t.offsetAt(q(r))!==n||!this.#Rt(i))return;let a=e=>this.#mn(e)&&this.#je(e);if(!a(q(r).line)){this.#ye=!0;return}let o=xr(i,t,n,this.#xe,a);if(o===void 0)return;let s=t.offsetAt({line:o.excerptStartLine,character:0}),c=s+o.editableRange.start,l=s+o.editableRange.end,u=new AbortController,d=++this.#_e;this.#ge=u;let f;try{f=e.provider.predict(o,{signal:u.signal})}catch{this.#ge=void 0;return}Promise.resolve(f).then(e=>{let r=this.#oe?.[0];if(u.signal.aborted||d!==this.#_e||this.#ge!==u||this.#n?.document!==t||t.version!==o.version||this.#oe?.length!==1||r===void 0||!K(r)||t.offsetAt(q(r))!==n||e==null||!Array.isArray(e.edits)||e.edits.length===0||e.edits.length>vi||e.newCursor==null)return;let i=[],a=0;for(let n of e.edits){if(n==null||typeof n.newText!=`string`||!Ei(t,n.range?.start)||!Ei(t,n.range?.end)||J(n.range.start,n.range.end)>0||(a+=bi.encode(n.newText).byteLength,a>yi))return;let e=t.offsetAt(n.range.start),r=t.offsetAt(n.range.end),o=t.resolveEdits([n])[0];if(o.start!==e||o.end!==r)return;i.push(o)}i.sort((e,t)=>{let n=e.start-t.start;return n===0?e.end-t.end:n});for(let e=0;e<i.length;e++){let t=i[e];if(t.start<c||t.end>l||e>0&&i[e-1].end>t.start)return}let s=i.filter(e=>e.text!==t.getTextSlice(e.start,e.end));if(s.length===0)return;let f=t.positionAt(s[0].start),p=t.positionAt(s.at(-1).end),m=t.offsetAt({line:f.line,character:0}),h=t.offsetAt({line:p.line,character:t.getLineLength(p.line)}),g=[],_=m;for(let e of s)g.push(t.getTextSlice(_,e.start),e.text),_=e.end;g.push(t.getTextSlice(_,h));let v=g.join(``).split(/\r\n|\r|\n/),y=f.line+v.length-1,b=v.length-(p.line-f.line+1),x=e.newCursor;if(!(!Number.isInteger(x.line)||!Number.isInteger(x.character)||x.line<0||x.character<0)){if(x.line>=f.line&&x.line<=y){let e=v[x.line-f.line];if(x.character>e.length||Di(e,x.character))return}else{let e=x.line<f.line?x.line:x.line-b;if(e<0||e>=t.lineCount||x.character>t.getLineLength(e))return;let n=t.offsetAt({line:e,character:x.character});if(Di(t.charAt(n-1)+t.charAt(n),1))return}this.#be={document:t,version:o.version,cursorOffset:n,rendered:!1,response:{edits:s.map(e=>({range:{start:t.positionAt(e.start),end:t.positionAt(e.end)},newText:e.text})),newCursor:{...x}}},this.#Ut(this.#oe)}}).catch(()=>{}).finally(()=>{this.#ge===u&&(this.#ge=void 0)})},_i)}#Bt(e,t){let n=this.#n?.document,r=this.#n?.fileInfo?.name,i=He(e);n!==void 0&&r!==void 0&&i!==void 0&&this.#Rt(r)&&(this.#xe=yr(this.#xe,r,n,i,t))}#Vt(){let e=this.#be,t=this.#n?.document,n=this.#oe?.[0];if(e===void 0||!e.rendered||t===void 0||e.document!==t||e.version!==t.version||this.#oe?.length!==1||n===void 0||!K(n)||t.offsetAt(q(n))!==e.cursorOffset)return;let{edits:r,newCursor:i}=e.response;this.#Lt(!0);let a=t.applyEdits(r.map(e=>({range:{start:{...e.range.start},end:{...e.range.end}},newText:e.newText})),!0,this.#oe,void 0,!0);if(a===void 0){this.#zt();return}let o=t.normalizePosition(i),s=[{start:o,end:o,direction:0}];t.setLastUndoSelectionsAfter(s),this.#un(a,s,this.#fn(a),{editSource:`prediction`})}#Ht(e){let t=this.#be,n=this.#n?.document;t!==void 0&&(t.rendered=!1);let r=this.#jt();if(t!=null&&n!=null&&r!=null&&r.allVisible){for(let t of r.groups){let{edit:r,endIndex:i}=t,{start:a,end:o}=r.range,s=r.newText.length===0,c=J(a,o)!==0,l=n.getLineLength(a.line),u=!c&&a.character<l;if(c?this.#Gt(e,s?`editPredictionDeletion`:`editPredictionReplacement`,{start:a,end:o}):u&&this.#Gt(e,`editPredictionInsertion`,{start:a,end:{line:a.line,character:l}}),s)continue;let[d,f]=this.#yn(a.line,a.character),p=this.#yn(a.line,0)[0],m=this.#vn(a.line)+f*this.#r.lineHeight,h=`editPrediction-${i}`,g=this.#D?.get(h);if(g===void 0?g=H(`span`,{ariaHidden:`true`,contentEditable:`false`,dataset:`editPrediction`},e.fragment):(this.#D?.delete(h),g.replaceChildren()),c){g.dataset.replacement=``;let e=this.#hn(a.line);e!==void 0&&g.style.setProperty(`--diffs-edit-prediction-bg`,getComputedStyle(e).getPropertyValue(`--diffs-line-bg`))}else delete g.dataset.replacement,g.style.removeProperty(`--diffs-edit-prediction-bg`);this.#Mt(g,r.newText,d,p,this.#Nt(t)),g.style.transform=`translateX(${p}px) translateY(${m}px)`,e.elements.set(h,g)}t.rendered=!0}}#Ut(e){this.__postponeBgTokenizeToNextFrame();let t=this.#oe,n=t?.length!==e.length;if(!n&&t!==void 0)for(let r=0;r<e.length;r++){let i=t[r],a=e[r];if(i.direction!==a.direction||J(i.start,a.start)!==0||J(i.end,a.end)!==0){n=!0;break}}if(n&&this.#Lt(!0),this.#Ft(),this.#A=void 0,this.#Et(null),e.length===0&&this.#se===void 0&&this.#H===void 0){this.#oe=void 0,this.#D?.forEach(e=>e.remove()),this.#D?.clear(),this.#G?.cleanup(),this.#G=void 0,n&&this.#zt();return}let r=document.createDocumentFragment(),i={fragment:r,elements:new Map};if(e.length>0){let t=un(e),n=t.at(-1);this.#oe=t;let r=t.some(e=>!K(e)),a=q(n).line+1;this.#Et(a,r);for(let e of t)K(e)||this.#Gt(i,`selection`,e),this.#Yt(i,e,e===n);let o=this.#e.matchBrackets!==!1&&this.#n?.document!=null&&this.#i!==void 0&&K(n)?Ir(this.#n?.document,this.#i,n.start):void 0;if(o!==void 0)for(let e of o)this.#Gt(i,`bracketMatch`,e)}let a=this.#n?.document;if(this.#se!==void 0&&a!==void 0){let e=this.#se,t=this.#B,n=t!=null&&Number.isFinite(t.totalLines)||this.#Fe&&this.#ke?.options.expandUnchanged!==!0?this.#pn():void 0,r=this.#oe?.at(-1),o=r===void 0?-1:a.offsetAt(r.start),s=r===void 0?-1:a.offsetAt(r.end),c=0,l=n?.length??1;for(let t=0;t<l;t++){let r=1/0,l=n?.[t];if(l!==void 0){let[t,n]=l,i=a.offsetAt({line:t,character:0}),o=n+1;r=o<a.lineCount?a.offsetAt({line:o,character:0}):a.offsetAt({line:o-1,character:a.getLineLength(o-1)});let s=c,u=e.length;for(;s<u;){let t=s+Math.floor((u-s)/2);e[t][1]<=i?s=t+1:u=t}c=s}for(;c<e.length;c++){let[t,n]=e[c];if(t>=r)break;let l={start:a.positionAt(t),end:a.positionAt(n)},u=o===t&&s===n;this.#Gt(i,`match`,l,u?`focus`:void 0)}}}if(this.#H!==void 0&&a!==void 0)for(let e of this.#H.markers)this.#Gt(i,`marker`,e,$n(e.severity));this.#Ht(i),this.#E?.appendChild(r),this.#D?.forEach(e=>e.remove()),this.#D?.clear(),this.#D=i.elements,this.#Xt(),n&&this.#zt()}#Wt(){let e=this.#U,t=this.#e.renderCaret,n=this.#E;if(this.#k?.forEach(e=>e.remove()),this.#k=void 0,e===void 0||t===void 0||n===void 0){this.#O?.forEach(e=>e.remove()),this.#O=void 0;return}let r=this.#O??=new Map;for(let[e,t]of r)this.#Cn(e.caret.focus.line)||(t.remove(),r.delete(e));let i=document.createDocumentFragment(),a=[];for(let n of e){let{caret:e}=n,{line:o,character:s}=e.focus;if(n.anchorOffset!==n.focusOffset){let t={fragment:i,elements:new Map};this.#Gt(t,`caretHighlight`,n.anchorOffset<n.focusOffset?{start:e.anchor,end:e.focus}:{start:e.focus,end:e.anchor},void 0,e.focus);for(let n of t.elements.values())n.style.setProperty(`--diffs-caret-highlight-bg`,`color-mix(in srgb, ${e.metadata.color} 32%, transparent)`),a.push(n)}if(!this.#Cn(o))continue;let c=r.get(n);c===void 0&&(c=H(`div`,{dataset:`remoteCaret`,children:[t(e)]},i),r.set(n,c));let[l,u]=this.#yn(o,s),d=this.#vn(o)+u*this.#r.lineHeight;c.style.transform=`translateX(${l}px) translateY(${d}px)`}this.#k=a,n.appendChild(i)}#Gt(e,t,n,r,i){if(this.#n?.document==null)return;let{start:a,end:o}=n,s=a.line,c=o.line+1;if(this.#B!==void 0){let{startingLine:e,totalLines:t}=this.#B;s=Math.max(s,e),c=Math.min(c,e+t)}for(let n=s;n<c;n++){if(!this.#Cn(n))continue;let s=n===o.line,c=n===a.line?a.character:0,l=s?o.character:this.#n?.document.getLineLength(n);if(c===l&&(t===`editPredictionDeletion`||t===`editPredictionReplacement`)){if(s&&n!==a.line)continue;let[i,o]=this.#yn(n,c);this.#Jt(e,t,n,o,i,this.#r.ch,r);continue}if(this.#Ie){let a=this.#_n(),o=this.#n?.document.getLineText(n);if(2*this.#r.ch+this.#r.measureTextWidth(o)>a){this.#Kt(e,n,o,c,l,s,t,r,i);continue}}let u=0,d=0,f=0;u=c===0?this.#gn()+this.#r.ch+(this.#Qe?.left??0):this.#yn(n,c)[0],!s&&t===`selection`&&(f=this.#r.ch),d=c===l?f:this.#yn(n,l)[0]-u+f,this.#Jt(e,t,n,0,u,d,r,{start:i?.line===a.line&&i.character===a.character&&n===a.line,end:i?.line===o.line&&i.character===o.character&&n===o.line})}}#Kt(e,t,n,r,i,a,o,s,c){let l=this.#xn(t),u=l.length-1,d=this.#gn()+this.#r.ch+(this.#Qe?.left??0);for(let f=0;f<u;f++){let p=l[f],m=l[f+1],h=Math.max(r,p),g=Math.min(i,m);if(h>g)continue;let _=this.#qt(n,p,h),v=d+_,y=0;!a&&f===u-1&&o===`selection`&&(y=this.#r.ch);let b=h===g?y:this.#qt(n,p,g)-_+y;this.#Jt(e,o,t,f,v,b,s,{start:c?.line===t&&c.character===r&&h===r,end:c?.line===t&&c.character===i&&g===i})}}#qt(e,t,n){if(n<=t)return 0;let r=e.slice(t,n),i=ai(r,this.#r.tabSize);return i===-1?this.#r.measureTextWidth(r):i*this.#r.ch}#Jt(e,t,n,r,i,a,o,s){if(a===0)return;let{ch:c,lineHeight:l}=this.#r,u=this.#vn(n)+r*l,d=`${t}-${n}/${r}-${i}-${a} ${o??``}`,f=this.#D,p=(this.#e.roundedSelection??!0)&&(t===`selection`||t===`caretHighlight`),m=(n,r,i,a)=>{let o=this.#vn(n)+r*l,s=this.#hn(n),u=`initial`;s!==void 0&&(s.dataset.lineType===`change-addition`||s.dataset.selectedLine!==void 0)&&(u=getComputedStyle(s).getPropertyValue(`--diffs-line-bg`));let d=`width:${c}px;transform:translateX(${i}px) translateY(${o}px);--diffs-selection-corner-bg:${u}`,p={selectionCorner:``,[a]:``},m=`${t}-block-${n}/${r}-${i}-1ch`,h=m+`-`+a;if(a===`rbl`){let t=m+`-rtl`,n=e.elements.get(t);n!==void 0&&(n.remove(),e.elements.delete(t),h+=`-rtl`,p.rtl=``)}let g=e.elements.get(h);g===void 0&&(f?.has(h)===!0?(g=f.get(h),g.style.cssText=d,f.delete(h)):g=H(`div`,{dataset:t===`caretHighlight`?`caretHighlightRange`:`selectionRange`,style:{cssText:d},children:[H(`div`,{dataset:p})]},e.fragment),e.elements.set(h,g))},h=t=>{let o=i+a,l=t.dataset,u=e.previousSelectionRange;if((u===void 0||u.line!==n||u.wrapLine!==r)&&(e.previousSelectionRange={element:t,line:n,wrapLine:r,left:i,width:a}),u===void 0||o<=u.left)[`rtl`,`rtr`,`rbl`,`rbr`].forEach(e=>{l[e]=``});else{let e=u.line,t=u.wrapLine,a=u.left,s=u.element.dataset,d=a+u.width;a>i&&m(e,t,a-c,`rbr`),delete s.rbl,delete l.rtl,delete l.rtr,o>=d&&delete s.rbr,o>d&&(m(e,t,d,`rbl`),l.rtr=``),o<d&&m(n,r,o,`rtl`),i<a&&(l.rtl=``),l.rbl=``,l.rbr=``}s?.start===!0&&(delete l.rtl,delete l.rbl),s?.end===!0&&(delete l.rtr,delete l.rbr)},g=e.elements.get(d);if(g!==void 0){p&&h(g);return}if(f?.has(d)===!0?(g=f.get(d),f.delete(d)):g=H(`div`,{dataset:o?[t+`Range`,o]:t+`Range`},e.fragment),g.style.width=`${a}px`,g.style.transform=`translateX(${i}px) translateY(${u}px)`,t===`editPredictionInsertion`||t===`editPredictionReplacement`){let e=this.#hn(n);e!==void 0&&g.style.setProperty(`--diffs-edit-prediction-bg`,getComputedStyle(e).getPropertyValue(`--diffs-line-bg`))}else g.style.removeProperty(`--diffs-edit-prediction-bg`);p&&h(g),e.elements.set(d,g)}#Yt(e,t,n){let{line:r,character:i}=q(t);if(!this.#Cn(r))return;let[a,o]=this.#yn(r,i),s=`caret-`+r+`/`+o+`:`+i;if(e.elements.has(s))return;let c=H(`div`,{dataset:`caret`,style:{transform:`translateX(${a-1}px) translateY(${this.#vn(r)+o*this.#r.lineHeight}px)`}},e.fragment);e.elements.set(s,c),n&&(c.style.scrollMargin=this.#gt(),this.#A=c)}#Xt(){let e=this.#oe?.at(-1),t=this.#E,n=this.#n?.document,r=this.#e.renderSelectionAction,i=()=>{this.#G?.cleanup(),this.#G=void 0};if(this.#e.enabledSelectionAction!==!0||r===void 0||e===void 0||K(e)||this.#$||t===void 0||n===void 0){i();return}let a=q(e);if(!this.#Cn(a.line)){i();return}if(this.#G===void 0){if(!this.#K)return;let a=()=>this.#oe?.at(-1)??e,o=r({textDocument:n,get selection(){return a()},applyEdits:e=>this.applyEdits(e),getSelectionText:()=>this.#n?.document?.getText(a())??``,replaceSelectionText:e=>{this.#in(e,[a()])},close:()=>{i(),this.#ht()}});this.#G=new Qr(o,t,()=>this.#Xt()),this.#Le().resetPlacement(xi)}let o=this.#r.lineHeight,s=e.direction===-1,c={placeAbove:s,anchor:a},l=s?{placeAbove:!1,anchor:e.end}:{placeAbove:!0,anchor:e.start},u=this.#G.height,d=e=>{let[t,n]=this.#yn(e.anchor.line,e.anchor.character),r=this.#vn(e.anchor.line)+n*o,i=e.placeAbove?r:r+o,a=e.placeAbove?i-u:i;return{top:a,bottom:a+u,left:t,anchorTop:i,rowTop:r}},f=d(c),p=n.lineCount,m=s?a.line<3:a.line>=p-3,h=this.#Cn(l.anchor.line)?d(l):void 0,g=this.#Le(),_=g.getPlacementBounds(),v=h!==void 0&&g.choosePlacement({preferred:f,fallback:h,viewport:_,popoverHeight:u,atDocumentEdge:m,placementKey:xi})===`fallback`;h===void 0&&g.setPlacement(`preferred`,xi);let{placeAbove:y}=v?l:c,{left:b,anchorTop:x}=v&&h!==void 0?h:f,S=s?f.rowTop:h?.rowTop??-1/0,C=(s?h?.rowTop??1/0:f.rowTop)+(e.end.line>e.start.line&&e.end.character===0?0:o),w=_===void 0||C>_.top&&S<_.bottom;this.#G.reposition(b,x,this.#gn(),y,w,_)}#Zt(e){if(this.#W!==void 0){this.#W.setMode(e);return}this.#Qt(e)}#Qt(e){this.#W?.cleanup();let t=this.#n?.document,n=this.#S?.shadowRoot?.querySelector(`pre`),r=this.#oe;if(t===void 0||n==null)return;let i=``,a;if(r!==void 0&&r.length>0){let e=r.at(-1);if(K(e)){e=En(t,e),this.#Ut([...r.slice(0,-1),e]);let n=t.getText(e);n!==``&&!n.includes(`
588
+ `)&&(i=n,a=[t.offsetAt(e.start),t.offsetAt(e.end)])}}let o=([e,n],r)=>{let i=rn(t,e,n);this.#Ut([i]),this.#Ne(q(i).line),this.#ht(!0),this.#fe=r},s=new Zr({textDocument:t,containerElement:n,defaultQuery:i,mode:e,initialMatch:a,scrollToMatch:o,applyReplace:e=>{if(e.length===0)return;let n=t.applyEdits(e.map(e=>({range:{start:t.positionAt(e.start),end:t.positionAt(e.end)},newText:e.text})),!0,this.#oe);n!==void 0&&this.#un(n,void 0,this.#fn(n),{skipSearchRefresh:!0})},onUpdate:(e,n)=>{if(e.length===0){this.#se=void 0,this.#Ut(this.#oe??[]);return}if(this.#se=e,n?.syncSelection===!1){this.#Ut(this.#oe??[]);let n=this.#oe?.at(-1);if(n!==void 0){let r=t.offsetAt(n.start),i=t.offsetAt(n.end);for(let t of e)if(t[0]===r&&t[1]===i)return t}return}let r=this.#oe?.at(-1),i=0,a;r!==void 0&&(i=t.offsetAt(r.start));for(let t of e)if(t[0]>=i){a=t;break}return a===void 0?this.#Ut(this.#oe??[]):o(a,!0),a},onClose:()=>{this.#W=void 0,this.#fe=!1,this.#se=void 0,this.#Ut(this.#oe??[])}});this.#W=s,this.#fe=!1}#$t(){let e=this.#n?.document,t=this.#oe;return e===void 0||t===void 0?``:yn(e,t)}#en(){let e=this.#n?.document,t=this.#oe;return e===void 0||t===void 0?[]:vn(e,t)}#tn(e,t,n){e!==null&&(e.setData(`text`,t),n.length>1&&e.setData(Si,JSON.stringify(n)))}#nn(){let e=this.#n?.document,t=this.#oe;if(e===void 0||t===void 0||t.length===0)return``;if(t.some(e=>K(e))){let n=wn(e,t);return this.#rn(n.edits,n.nextSelectionOffsets),n.text}let n=yn(e,t);return this.#in(``,void 0,!0),n}#rn(e,t){let n=this.#n?.document,r=this.#oe;if(n===void 0||r===void 0||e.length===0)return;let i=n.applyResolvedEdits(e,!0,r,void 0,!0);if(i===void 0)return;let a=t.map(e=>{let t=n.positionAt(e);return{start:t,end:t,direction:0}});n.setLastUndoSelectionsAfter(a),this.#un(i,a,this.#fn(i))}#in(e,t=this.#oe,n=!1,r=`selection`){if(t===void 0)return;let i=this.#n?.document,a=t.at(-1);if(i===void 0||a===void 0)return;let{nextSelections:o,change:s}=Array.isArray(e)&&e.length===t.length?Kt(i,t,e,this.#L,n,r):Ut(i,t,{start:i.offsetAt(a.start),end:i.offsetAt(a.end),text:Array.isArray(e)?e.join(i.eol):e},this.#L,void 0,n);s!==void 0&&this.#un(s,o,this.#fn(s))}#an(e=!1){let t=this.#oe,n=this.#n?.document;if(t===void 0||n===void 0)return;let{nextSelections:r,change:i}=en(n,t,e,this.#L,this.#r.tabSize);i!==void 0&&this.#un(i,r,this.#fn(i))}#on(){let e=this.#oe,t=this.#n?.document;if(e===void 0||t===void 0)return;let{nextSelections:n,change:r}=Zt(t,e,this.#Ie?(e,t)=>{let n=this.#xn(e);for(let e=0;e+1<n.length;e++){let r=n[e],i=n[e+1];if(t>=r&&t<=i)return r}return 0}:void 0,this.#L);r!==void 0&&this.#un(r,n,this.#fn(r))}#sn(){let e=this.#oe,t=this.#n?.document;if(e===void 0||t===void 0)return;let{nextSelections:n,change:r}=Qt(t,e,this.#L);r!==void 0&&this.#un(r,n,this.#fn(r))}#cn(){let e=this.#oe,t=this.#n?.document;if(e===void 0||t===void 0)return;let{nextSelections:n,change:r}=Xt(t,e,this.#L);r!==void 0&&this.#un(r,n,this.#fn(r))}#ln(){let e=this.#oe,t=this.#n?.document;if(e===void 0||t===void 0)return;let{nextSelections:n,change:r}=Yt(t,e,this.#L);r!==void 0&&this.#un(r,n,this.#fn(r))}#un(e,t,n,r){this.#be!=null&&this.#Lt(!0);let i=this.#n?.document;if(i!==void 0&&this.#U!==void 0)for(let t of this.#U)t.anchorOffset=an(t.anchorOffset,e.changes),t.focusOffset=an(t.focusOffset,e.changes),t.caret.anchor=i.positionAt(t.anchorOffset),t.caret.focus=i.positionAt(t.focusOffset);if(e.lineDelta!==0||this.#Ie)for(let t of this.#m.keys())t>=e.startLine&&this.#m.delete(t);if(this.#h.size>0){if(e.lineDelta===0&&(e.changedLineRanges.length===1||e.changedLineChanges?.every(([,,e])=>e===0)===!0))for(let[t,n]of e.changedLineRanges)for(let e=t;e<=n;e++)this.#h.delete(e);else for(let t of this.#h.keys())t>=e.startLine&&this.#h.delete(t)}this.#_=void 0;let a=this.#B,o;if(a!==void 0&&t!==void 0&&t.length>0){let n=t.at(-1),r=a.startingLine+a.totalLines;if(n.end.line>=r){let t=n.end.line-a.startingLine+1,i=this.#V===void 0||this.#V===1/0?1/0:this.#V*hi;e.startLine<=r&&t<=i&&this.#je(n.end.line)?(n.end.line>r&&(o=!0),a={...a,totalLines:t},this.#B=a):o=!0}}if(this.#st(e,n,a,o),t!=null&&this.#Ut(t),this.#M?.__acknowledgeDocumentUpdate(),this.#Ee(),this.#Bt(e,r?.editSource??`user`),this.#zt(),this.#dn(e.changes,n??this.#L),r?.skipSearchRefresh!==!0&&this.#W!==void 0&&this.#se!==void 0&&this.#W.updateMatches({syncSelection:!1}),t!=null&&r?.skipFocus!==!0){let e=t.at(-1);if(e!==void 0&&this.#Ne(q(e).line),this.#A!==void 0)requestAnimationFrame(()=>{this.#A?.scrollIntoView({block:`nearest`,inline:`nearest`})});else if(t.length>0){let e=q(t.at(-1));this.#_t(e.line,e.character)}this.focus({preventScroll:!0})}}#dn(e,t){let n=this.getFile(),r=this.#P;n!=null&&r!=null&&r(e,n,t)}#fn(e){if(this.#L!=null){let t=yt(e,this.#L);if(t!=null)return this.#n?.document?.setLastUndoLineAnnotations(this.#L,t),t}}#pn(){let e=this.#w;if(e===void 0)return[];let t=[];for(let n of e.children){let e=n,r=e.dataset.lineType,i=W(e);if(i===void 0||r===void 0||!tn(r))continue;let a=i-1,o=t.at(-1);o!==void 0&&a<=o[1]+1?o[1]=Math.max(o[1],a):t.push([a,a])}return t}#mn(e){let t=this.#B;return t==null||e>=t.startingLine&&e<t.startingLine+t.totalLines}#hn(e){let t=this.#g.get(e);if(t!==void 0)return t??void 0;let n=this.#B;if(!this.#mn(e))return;let r=this.#w;if(r!==void 0){if(n!==void 0){let{startingLine:i}=n,{children:a}=r;for(let n=e-i;n<=a.length;n++){let r=a[n];if(r===void 0)break;let i=W(r),o=r.dataset.lineType;if(i!==void 0&&i===e+1&&o!==void 0&&tn(o)){t=r;break}}}return t??=r.querySelector(`[data-line="${e+1}"]`+(this.#Pe===`unified`?`:not([data-line-type="change-deletion"])`:``)),t!==void 0&&this.#g.set(e,t),t??void 0}}#gn(){if(this.#C===void 0)return 0;if(this.#f===void 0){let e=this.#w?.parentElement?.style.getPropertyValue(`--diffs-column-number-width`);this.#f=e!==void 0&&e.length>2&&e.endsWith(`px`)?parseInt(e.slice(0,-2),10):this.#C.offsetWidth}return this.#f}#_n(){if(this.#w===void 0)return 0;if(this.#p===void 0){let e=this.#w.parentElement?.style.getPropertyValue(`--diffs-column-content-width`);this.#p=e!==void 0&&e.length>2&&e.endsWith(`px`)?parseFloat(e.slice(0,-2)):this.#w.offsetWidth}return this.#p}#vn(e){let t=this.#m.get(e);if(t!==void 0)return t;let n=this.#hn(e);if(n===void 0)return-1;let r=n.offsetTop+this.#r.paddingTop;return r+=this.#Qe?.top??0,this.#m.set(e,r),r}#yn(e,t){if(this.#_!==void 0&&this.#_[0]===e&&this.#_[1]===t)return[this.#_[2],this.#_[3]];let n=this.#n?.document?.getLineText(e),r=this.#gn()+this.#r.ch;if(n===void 0||n.length===0||t<=0)return[r+(this.#Qe?.left??0),0];let i=ri(n,Math.min(t,n.length)),a=n.slice(0,i),o=ai(a,this.#r.tabSize),s=0,c=0;if(s=o===-1?r+this.#r.measureTextWidth(a):r+o*this.#r.ch,this.#Ie){let t=this.#_n();if(2*this.#r.ch+this.#r.measureTextWidth(n)>t){let t=this.#bn(e);if(t==null)return[s+(this.#Qe?.left??0),0];for(let e=0;e+1<t.length;e++){let a=t[e];if(i<=t[e+1]){c=e;let t=n.slice(a,i),o=ai(t,this.#r.tabSize);s=o===-1?r+this.#r.measureTextWidth(t):r+o*this.#r.ch;break}}}s+=this.#Qe?.left??0}return this.#_===void 0?this.#_=[e,t,s,c]:(this.#_[0]=e,this.#_[1]=t,this.#_[2]=s,this.#_[3]=c),[s,c]}#bn(e){let t=this.#h.get(e);if(t!==void 0)return t;this.#h.size>=gi&&this.#h.clear();let n=this.#n?.document?.getLineText(e);if(n===void 0||n.length===0){let t=new Uint32Array([0]);return this.#h.set(e,t),t}let r=this.#w;if(r==null||!r.isConnected)return;let i=H(`div`,{style:{position:`absolute`,top:`0`,left:`0`,width:`100%`,boxSizing:`border-box`,visibility:`hidden`,pointerEvents:`none`,whiteSpace:`pre-wrap`,wordBreak:`break-word`,font:`inherit`,paddingInline:`1ch`,tabSize:this.#r.tabSize.toString()},textContent:n},r),a=i.firstChild,o=document.createRange(),s=[];try{let t=i.getBoundingClientRect();if(t.width===0)return;let r=ii(n),c=t.left+this.#r.ch,l=r===void 0?n.length:r.length-1,u=e=>r===void 0?e:r[e],d=e=>{o.setStart(a,u(e)),o.setEnd(a,u(e+1));let t=o.getClientRects();return t.item(t.length-1)??o.getBoundingClientRect()};s.push(0);let f=d(0).top,p=1;for(;p<l;){let e=p,t=l;for(;e<t;){let n=e+t>>1;d(n).top>f?t=n:e=n+1}if(e>=l)break;let{left:n,top:r}=d(e),i=j()&&n-c>this.#r.ch/2;s.push(u(i?e-1:e)),f=r,p=e+1}let m=new Uint32Array(s.length+1);for(let e=0;e<s.length;e++)m[e]=s[e];return m[s.length]=n.length,this.#h.set(e,m),m}finally{i.remove()}}#xn(e){let t=this.#bn(e);if(t!==void 0)return t;let n=this.#n?.document?.getLineText(e)?.length??0;return Uint32Array.of(0,n)}#Sn({startContainer:e,endContainer:t}){let n=this.#w;return n!==void 0&&n.contains(e)&&n.contains(t)}#Cn(e){let t=this.#n?.document?.lineCount??0;return e<0||e>=t?!1:this.#hn(e)!==void 0}};function wi({type:e,editStateKey:t,owner:n,initialState:r,previousSession:i}){if(r!=null&&r.type!==e)throw TypeError(`Editor: initialState: a ${r.type} state cannot initialize a ${e} editor`);let a=r;return t==null?a??i??(e===`file`?{type:`file`}:{type:`file-diff`}):Qe.activate(e,t,n,a)}function Ti(e){return e instanceof HTMLElement?Number(e.dataset.bufferSize??1):1}function Ei(e,t){return t!==void 0&&Number.isInteger(t.line)&&Number.isInteger(t.character)&&t.line>=0&&t.line<e.lineCount&&t.character>=0&&t.character<=e.getLineLength(t.line)}function Di(e,t){let n=e.charCodeAt(t-1),r=e.charCodeAt(t);return t>0&&t<e.length&&n>=55296&&n<=56319&&r>=56320&&r<=57343}var Oi=i(),ki=e(a(),1),Ai=(e,t,n)=>new Ci(e,t,n);function ji(e,t,n,i,a,o){let s=(0,Oi.c)(26),c;s[0]!==i||s[1]!==n||s[2]!==e||s[3]!==t?(c=te(i,e,t,n),s[0]=i,s[1]=n,s[2]=e,s[3]=t,s[4]=c):c=s[4];let l=c,{file:u,initialText:d}=l,f=(0,ki.useRef)(o),p;s[5]===o?p=s[6]:(p=()=>{f.current=o},s[5]=o,s[6]=p),(0,ki.useLayoutEffect)(p);let m;s[7]===i?m=s[8]:(m={onAttach(e){e.focus({lineNumber:1,character:0})},onBlur(){i.state.value.error||r(i.save())}},s[7]=i,s[8]=m);let h=m,g;s[9]===i?g=s[10]:(g=()=>void r(i.save()),s[9]=i,s[10]=g);let _;s[11]===a?_=s[12]:(_={enabled:a,ignoreInputs:!1},s[11]=a,s[12]=_),ne(M.saveFile,g,_);let v;s[13]!==i||s[14]!==e||s[15]!==t||s[16]!==l?(v=()=>(i.attachEditor(e),()=>{r(i.finishEditing(e,()=>f.current(t),()=>k(i,e,l)))}),s[13]=i,s[14]=e,s[15]=t,s[16]=l,s[17]=v):v=s[17];let y;s[18]!==i||s[19]!==e||s[20]!==t?(y=[i,e,t],s[18]=i,s[19]=e,s[20]=t,s[21]=y):y=s[21],(0,ki.useEffect)(v,y);let b;return s[22]!==d||s[23]!==u||s[24]!==h?(b={file:u,initialText:d,options:h},s[22]=d,s[23]=u,s[24]=h,s[25]=b):b=s[25],b}var $=o();function Mi(e){let r=(0,Oi.c)(39),{owner:i,path:a,draft:o,state:s,active:c,changed:d,onDone:f,onDiscard:p,renderToolbar:m}=e,{preferences:h}=ie(),{dark:v}=ee(),{changedOnDisk:b,change:x,copyDraft:S,save:C,done:w,discard:T,notifyUnsaved:te}=oe(i,o,_.add),{file:E,initialText:ne,options:re}=ji(i,a,s.text,o,c,te),D=s.text!==s.savedText,O=b?`Not saving: changed on disk`:s.error?`Not saved`:s.saving?`Saving…`:D?`Unsaved changes`:s.text===ne?`Saves as you pause`:`Saved`,k;r[0]===O?k=r[1]:(k=(0,$.jsx)(`span`,{role:`status`,className:`text-xs text-muted-foreground`,children:O}),r[0]=O,r[1]=k);let A;r[2]!==w||r[3]!==f?(A=()=>void w(f),r[2]=w,r[3]=f,r[4]=A):A=r[4];let j;r[5]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,$.jsx)(n,{className:`size-3.5`}),r[5]=j):j=r[5];let M;r[6]!==b||r[7]!==A?(M=(0,$.jsxs)(t,{size:`sm`,disabled:b,onClick:A,children:[j,`Done`]}),r[6]=b,r[7]=A,r[8]=M):M=r[8];let ae;r[9]!==k||r[10]!==M?(ae=(0,$.jsxs)($.Fragment,{children:[k,M]}),r[9]=k,r[10]=M,r[11]=ae):ae=r[11];let se=ae,N;r[12]!==se||r[13]!==m?(N=m?.(se),r[12]=se,r[13]=m,r[14]=N):N=r[14];let P;r[15]===d?P=r[16]:(P=d&&(0,$.jsx)(`p`,{className:`border-b bg-graph-4/10 px-3.5 py-1.5 text-xs text-graph-4`,children:`Saving edits the changes you are reviewing.`}),r[15]=d,r[16]=P);let F;r[17]!==b||r[18]!==S||r[19]!==T||r[20]!==p||r[21]!==C||r[22]!==s.error?(F=s.error!==null&&s.error!==void 0&&(0,$.jsxs)(`div`,{role:`alert`,className:`flex items-center gap-2 border-b px-3.5 py-2 text-xs text-destructive`,children:[(0,$.jsxs)(`span`,{className:`flex-1`,children:[b?`The file changed on disk since you opened it. Reload it before saving.`:l(s.error),` `,`Your draft is kept here.`]}),(0,$.jsx)(t,{size:`xs`,variant:`outline`,onClick:S,children:`Copy draft`}),!b&&(0,$.jsx)(t,{size:`xs`,variant:`outline`,onClick:()=>void C(),children:`Retry save`}),(0,$.jsx)(t,{size:`xs`,variant:`ghost`,onClick:()=>T(p),children:b?`Reload`:`Discard draft and reload`})]}),r[17]=b,r[18]=S,r[19]=T,r[20]=p,r[21]=C,r[22]=s.error,r[23]=F):F=r[23];let le=v?`dark`:`light`,I;r[24]!==h.lineOverflow||r[25]!==le?(I=ce(le,{overflow:h.lineOverflow}),r[24]=h.lineOverflow,r[25]=le,r[26]=I):I=r[26];let L;r[27]===x?L=r[28]:(L=e=>x(e.file.contents),r[27]=x,r[28]=L);let R;r[29]!==re||r[30]!==E||r[31]!==I||r[32]!==L?(R=(0,$.jsx)(u,{className:`min-h-0 flex-1 overflow-auto`,children:(0,$.jsx)(g,{createEditor:Ai,children:(0,$.jsx)(y,{file:E,edit:!0,editorOptions:re,options:I,onEditChange:L,onEditComplete:Ni})})}),r[29]=re,r[30]=E,r[31]=I,r[32]=L,r[33]=R):R=r[33];let z;return r[34]!==R||r[35]!==N||r[36]!==P||r[37]!==F?(z=(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[N,P,F,R]}),r[34]=R,r[35]=N,r[36]=P,r[37]=F,r[38]=z):z=r[38],z}function Ni(){return`reject`}export{Mi as default};