@pierre/diffs 1.2.12 → 1.3.0-beta.10

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 (288) hide show
  1. package/dist/components/CodeView.d.ts +91 -6
  2. package/dist/components/CodeView.d.ts.map +1 -1
  3. package/dist/components/CodeView.js +300 -38
  4. package/dist/components/CodeView.js.map +1 -1
  5. package/dist/components/File.d.ts +14 -3
  6. package/dist/components/File.d.ts.map +1 -1
  7. package/dist/components/File.js +98 -12
  8. package/dist/components/File.js.map +1 -1
  9. package/dist/components/FileDiff.d.ts +68 -19
  10. package/dist/components/FileDiff.d.ts.map +1 -1
  11. package/dist/components/FileDiff.js +363 -25
  12. package/dist/components/FileDiff.js.map +1 -1
  13. package/dist/components/FileStream.d.ts.map +1 -1
  14. package/dist/components/FileStream.js +2 -1
  15. package/dist/components/FileStream.js.map +1 -1
  16. package/dist/components/UnresolvedFile.d.ts +2 -2
  17. package/dist/components/UnresolvedFile.d.ts.map +1 -1
  18. package/dist/components/UnresolvedFile.js +2 -2
  19. package/dist/components/UnresolvedFile.js.map +1 -1
  20. package/dist/components/VirtualizedFile.d.ts +4 -2
  21. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  22. package/dist/components/VirtualizedFile.js +59 -47
  23. package/dist/components/VirtualizedFile.js.map +1 -1
  24. package/dist/components/VirtualizedFileDiff.d.ts +27 -5
  25. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  26. package/dist/components/VirtualizedFileDiff.js +262 -56
  27. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  28. package/dist/components/Virtualizer.d.ts +4 -1
  29. package/dist/components/Virtualizer.d.ts.map +1 -1
  30. package/dist/components/Virtualizer.js +21 -4
  31. package/dist/components/Virtualizer.js.map +1 -1
  32. package/dist/constants.d.ts +4 -1
  33. package/dist/constants.d.ts.map +1 -1
  34. package/dist/constants.js +4 -1
  35. package/dist/constants.js.map +1 -1
  36. package/dist/editor/command.d.ts +7 -0
  37. package/dist/editor/command.d.ts.map +1 -0
  38. package/dist/editor/command.js +54 -0
  39. package/dist/editor/command.js.map +1 -0
  40. package/dist/editor/editStack.d.ts +71 -0
  41. package/dist/editor/editStack.d.ts.map +1 -0
  42. package/dist/editor/editStack.js +218 -0
  43. package/dist/editor/editStack.js.map +1 -0
  44. package/dist/editor/editor.d.ts +105 -0
  45. package/dist/editor/editor.d.ts.map +1 -0
  46. package/dist/editor/editor.js +2545 -0
  47. package/dist/editor/editor.js.map +1 -0
  48. package/dist/editor/editor2.js +6 -0
  49. package/dist/editor/editor2.js.map +1 -0
  50. package/dist/editor/index.d.ts +5 -0
  51. package/dist/editor/index.js +3 -0
  52. package/dist/editor/languages.d.ts +26 -0
  53. package/dist/editor/languages.d.ts.map +1 -0
  54. package/dist/editor/languages.js +363 -0
  55. package/dist/editor/languages.js.map +1 -0
  56. package/dist/editor/lineAnnotations.d.ts +9 -0
  57. package/dist/editor/lineAnnotations.d.ts.map +1 -0
  58. package/dist/editor/lineAnnotations.js +212 -0
  59. package/dist/editor/lineAnnotations.js.map +1 -0
  60. package/dist/editor/marker.d.ts +38 -0
  61. package/dist/editor/marker.d.ts.map +1 -0
  62. package/dist/editor/marker.js +245 -0
  63. package/dist/editor/marker.js.map +1 -0
  64. package/dist/editor/matchBrackets.d.ts +9 -0
  65. package/dist/editor/matchBrackets.d.ts.map +1 -0
  66. package/dist/editor/matchBrackets.js +138 -0
  67. package/dist/editor/matchBrackets.js.map +1 -0
  68. package/dist/editor/pieceTable.d.ts +41 -0
  69. package/dist/editor/pieceTable.d.ts.map +1 -0
  70. package/dist/editor/pieceTable.js +671 -0
  71. package/dist/editor/pieceTable.js.map +1 -0
  72. package/dist/editor/platform.d.ts +19 -0
  73. package/dist/editor/platform.d.ts.map +1 -0
  74. package/dist/editor/platform.js +57 -0
  75. package/dist/editor/platform.js.map +1 -0
  76. package/dist/editor/popover.d.ts +65 -0
  77. package/dist/editor/popover.d.ts.map +1 -0
  78. package/dist/editor/popover.js +187 -0
  79. package/dist/editor/popover.js.map +1 -0
  80. package/dist/editor/searchPanel.d.ts +40 -0
  81. package/dist/editor/searchPanel.d.ts.map +1 -0
  82. package/dist/editor/searchPanel.js +318 -0
  83. package/dist/editor/searchPanel.js.map +1 -0
  84. package/dist/editor/selection.d.ts +211 -0
  85. package/dist/editor/selection.d.ts.map +1 -0
  86. package/dist/editor/selection.js +1626 -0
  87. package/dist/editor/selection.js.map +1 -0
  88. package/dist/editor/selectionAction.d.ts +46 -0
  89. package/dist/editor/selectionAction.d.ts.map +1 -0
  90. package/dist/editor/selectionAction.js +64 -0
  91. package/dist/editor/selectionAction.js.map +1 -0
  92. package/dist/editor/sprite.d.ts +8 -0
  93. package/dist/editor/sprite.d.ts.map +1 -0
  94. package/dist/editor/sprite.js +45 -0
  95. package/dist/editor/sprite.js.map +1 -0
  96. package/dist/editor/stateStorage.d.ts +15 -0
  97. package/dist/editor/stateStorage.d.ts.map +1 -0
  98. package/dist/editor/stateStorage.js +65 -0
  99. package/dist/editor/stateStorage.js.map +1 -0
  100. package/dist/editor/textDocument.d.ts +77 -0
  101. package/dist/editor/textDocument.d.ts.map +1 -0
  102. package/dist/editor/textDocument.js +271 -0
  103. package/dist/editor/textDocument.js.map +1 -0
  104. package/dist/editor/textMeasure.d.ts +61 -0
  105. package/dist/editor/textMeasure.d.ts.map +1 -0
  106. package/dist/editor/textMeasure.js +209 -0
  107. package/dist/editor/textMeasure.js.map +1 -0
  108. package/dist/editor/tokenizer.d.ts +41 -0
  109. package/dist/editor/tokenizer.d.ts.map +1 -0
  110. package/dist/editor/tokenizer.js +513 -0
  111. package/dist/editor/tokenizer.js.map +1 -0
  112. package/dist/editor/utils.d.ts +21 -0
  113. package/dist/editor/utils.d.ts.map +1 -0
  114. package/dist/editor/utils.js +68 -0
  115. package/dist/editor/utils.js.map +1 -0
  116. package/dist/index.d.ts +10 -8
  117. package/dist/index.js +12 -10
  118. package/dist/managers/InteractionManager.d.ts +7 -0
  119. package/dist/managers/InteractionManager.d.ts.map +1 -1
  120. package/dist/managers/InteractionManager.js +22 -1
  121. package/dist/managers/InteractionManager.js.map +1 -1
  122. package/dist/managers/ResizeManager.d.ts +10 -2
  123. package/dist/managers/ResizeManager.d.ts.map +1 -1
  124. package/dist/managers/ResizeManager.js +33 -13
  125. package/dist/managers/ResizeManager.js.map +1 -1
  126. package/dist/managers/UniversalRenderingManager.d.ts +2 -1
  127. package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
  128. package/dist/managers/UniversalRenderingManager.js +6 -1
  129. package/dist/managers/UniversalRenderingManager.js.map +1 -1
  130. package/dist/react/CodeView.d.ts +26 -1
  131. package/dist/react/CodeView.d.ts.map +1 -1
  132. package/dist/react/CodeView.js +82 -19
  133. package/dist/react/CodeView.js.map +1 -1
  134. package/dist/react/EditContext.d.ts +15 -0
  135. package/dist/react/EditContext.d.ts.map +1 -0
  136. package/dist/react/EditContext.js +23 -0
  137. package/dist/react/EditContext.js.map +1 -0
  138. package/dist/react/File.d.ts +3 -1
  139. package/dist/react/File.d.ts.map +1 -1
  140. package/dist/react/File.js +4 -2
  141. package/dist/react/File.js.map +1 -1
  142. package/dist/react/FileDiff.d.ts +4 -1
  143. package/dist/react/FileDiff.d.ts.map +1 -1
  144. package/dist/react/FileDiff.js +4 -2
  145. package/dist/react/FileDiff.js.map +1 -1
  146. package/dist/react/MultiFileDiff.d.ts +7 -5
  147. package/dist/react/MultiFileDiff.d.ts.map +1 -1
  148. package/dist/react/MultiFileDiff.js +4 -2
  149. package/dist/react/MultiFileDiff.js.map +1 -1
  150. package/dist/react/PatchDiff.d.ts +4 -1
  151. package/dist/react/PatchDiff.d.ts.map +1 -1
  152. package/dist/react/PatchDiff.js +4 -2
  153. package/dist/react/PatchDiff.js.map +1 -1
  154. package/dist/react/UnresolvedFile.d.ts +1 -0
  155. package/dist/react/UnresolvedFile.d.ts.map +1 -1
  156. package/dist/react/UnresolvedFile.js +2 -1
  157. package/dist/react/UnresolvedFile.js.map +1 -1
  158. package/dist/react/index.d.ts +3 -2
  159. package/dist/react/index.js +2 -1
  160. package/dist/react/types.d.ts +3 -0
  161. package/dist/react/types.d.ts.map +1 -1
  162. package/dist/react/utils/renderDiffChildren.d.ts +2 -0
  163. package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  164. package/dist/react/utils/renderDiffChildren.js +16 -8
  165. package/dist/react/utils/renderDiffChildren.js.map +1 -1
  166. package/dist/react/utils/renderFileChildren.d.ts +2 -0
  167. package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  168. package/dist/react/utils/renderFileChildren.js +16 -8
  169. package/dist/react/utils/renderFileChildren.js.map +1 -1
  170. package/dist/react/utils/useFileDiffInstance.d.ts +3 -1
  171. package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  172. package/dist/react/utils/useFileDiffInstance.js +30 -6
  173. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  174. package/dist/react/utils/useFileInstance.d.ts +4 -1
  175. package/dist/react/utils/useFileInstance.d.ts.map +1 -1
  176. package/dist/react/utils/useFileInstance.js +30 -5
  177. package/dist/react/utils/useFileInstance.js.map +1 -1
  178. package/dist/renderers/DiffHunksRenderer.d.ts +28 -2
  179. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  180. package/dist/renderers/DiffHunksRenderer.js +244 -22
  181. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  182. package/dist/renderers/FileRenderer.d.ts +8 -1
  183. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  184. package/dist/renderers/FileRenderer.js +155 -45
  185. package/dist/renderers/FileRenderer.js.map +1 -1
  186. package/dist/ssr/index.d.ts +2 -2
  187. package/dist/ssr/preloadDiffs.d.ts +11 -10
  188. package/dist/ssr/preloadDiffs.d.ts.map +1 -1
  189. package/dist/ssr/preloadDiffs.js +15 -7
  190. package/dist/ssr/preloadDiffs.js.map +1 -1
  191. package/dist/style.js +1 -1
  192. package/dist/types.d.ts +282 -5
  193. package/dist/types.d.ts.map +1 -1
  194. package/dist/utils/applyLineTextWithNewline.d.ts +5 -0
  195. package/dist/utils/applyLineTextWithNewline.d.ts.map +1 -0
  196. package/dist/utils/applyLineTextWithNewline.js +11 -0
  197. package/dist/utils/applyLineTextWithNewline.js.map +1 -0
  198. package/dist/utils/areHunkDataEqual.js +1 -1
  199. package/dist/utils/areHunkDataEqual.js.map +1 -1
  200. package/dist/utils/areManagedSnapshotsEqual.d.ts +2 -2
  201. package/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  202. package/dist/utils/areManagedSnapshotsEqual.js +5 -0
  203. package/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  204. package/dist/utils/awaitWithTimeout.d.ts +5 -0
  205. package/dist/utils/awaitWithTimeout.d.ts.map +1 -0
  206. package/dist/utils/awaitWithTimeout.js +15 -0
  207. package/dist/utils/awaitWithTimeout.js.map +1 -0
  208. package/dist/utils/cleanLastNewline.js +6 -1
  209. package/dist/utils/cleanLastNewline.js.map +1 -1
  210. package/dist/utils/cloneFileDiffMetadata.d.ts +7 -0
  211. package/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -0
  212. package/dist/utils/cloneFileDiffMetadata.js +16 -0
  213. package/dist/utils/cloneFileDiffMetadata.js.map +1 -0
  214. package/dist/utils/computeEstimatedDiffHeights.d.ts +3 -1
  215. package/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
  216. package/dist/utils/computeEstimatedDiffHeights.js +8 -1
  217. package/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
  218. package/dist/utils/computeFileOffsets.d.ts +21 -0
  219. package/dist/utils/computeFileOffsets.d.ts.map +1 -0
  220. package/dist/utils/computeFileOffsets.js +51 -0
  221. package/dist/utils/computeFileOffsets.js.map +1 -0
  222. package/dist/utils/createCodeViewHeaderFooterHostElement.d.ts +5 -0
  223. package/dist/utils/createCodeViewHeaderFooterHostElement.d.ts.map +1 -0
  224. package/dist/utils/createCodeViewHeaderFooterHostElement.js +19 -0
  225. package/dist/utils/createCodeViewHeaderFooterHostElement.js.map +1 -0
  226. package/dist/utils/createFileHeaderElement.d.ts.map +1 -1
  227. package/dist/utils/createFileHeaderElement.js +5 -1
  228. package/dist/utils/createFileHeaderElement.js.map +1 -1
  229. package/dist/utils/createTransformerWithState.js +9 -0
  230. package/dist/utils/createTransformerWithState.js.map +1 -1
  231. package/dist/utils/editSessionHunks.d.ts +84 -0
  232. package/dist/utils/editSessionHunks.d.ts.map +1 -0
  233. package/dist/utils/editSessionHunks.js +366 -0
  234. package/dist/utils/editSessionHunks.js.map +1 -0
  235. package/dist/utils/getDiffFileInput.d.ts +14 -0
  236. package/dist/utils/getDiffFileInput.d.ts.map +1 -0
  237. package/dist/utils/getDiffFileInput.js +24 -0
  238. package/dist/utils/getDiffFileInput.js.map +1 -0
  239. package/dist/utils/getDiffHunksRendererOptions.js +1 -0
  240. package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  241. package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
  242. package/dist/utils/getFiletypeFromFileName.js +2 -0
  243. package/dist/utils/getFiletypeFromFileName.js.map +1 -1
  244. package/dist/utils/hydratePartialDiff.d.ts +10 -0
  245. package/dist/utils/hydratePartialDiff.d.ts.map +1 -0
  246. package/dist/utils/hydratePartialDiff.js +140 -0
  247. package/dist/utils/hydratePartialDiff.js.map +1 -0
  248. package/dist/utils/iterateOverDiff.js +3 -3
  249. package/dist/utils/iterateOverDiff.js.map +1 -1
  250. package/dist/utils/parseDiffFromFile.d.ts +1 -1
  251. package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  252. package/dist/utils/parseDiffFromFile.js +26 -5
  253. package/dist/utils/parseDiffFromFile.js.map +1 -1
  254. package/dist/utils/parsePatchFiles.d.ts.map +1 -1
  255. package/dist/utils/parsePatchFiles.js +2 -0
  256. package/dist/utils/parsePatchFiles.js.map +1 -1
  257. package/dist/utils/realignChangeContent.d.ts +28 -0
  258. package/dist/utils/realignChangeContent.d.ts.map +1 -0
  259. package/dist/utils/realignChangeContent.js +142 -0
  260. package/dist/utils/realignChangeContent.js.map +1 -0
  261. package/dist/utils/renderDiffWithHighlighter.js +1 -1
  262. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  263. package/dist/utils/renderFileWithHighlighter.js +5 -14
  264. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  265. package/dist/utils/updateDiffHunks.d.ts +24 -0
  266. package/dist/utils/updateDiffHunks.d.ts.map +1 -0
  267. package/dist/utils/updateDiffHunks.js +235 -0
  268. package/dist/utils/updateDiffHunks.js.map +1 -0
  269. package/dist/utils/virtualDiffLayout.d.ts +40 -1
  270. package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
  271. package/dist/utils/virtualDiffLayout.js +96 -1
  272. package/dist/utils/virtualDiffLayout.js.map +1 -1
  273. package/dist/worker/WorkerPoolManager.d.ts +7 -2
  274. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  275. package/dist/worker/WorkerPoolManager.js +83 -18
  276. package/dist/worker/WorkerPoolManager.js.map +1 -1
  277. package/dist/worker/index.d.ts +2 -2
  278. package/dist/worker/types.d.ts +11 -1
  279. package/dist/worker/types.d.ts.map +1 -1
  280. package/dist/worker/worker-portable.js +46 -66
  281. package/dist/worker/worker-portable.js.map +1 -1
  282. package/dist/worker/worker.js +46 -66
  283. package/dist/worker/worker.js.map +1 -1
  284. package/package.json +12 -5
  285. package/dist/utils/iterateOverFile.d.ts +0 -50
  286. package/dist/utils/iterateOverFile.d.ts.map +0 -1
  287. package/dist/utils/iterateOverFile.js +0 -49
  288. package/dist/utils/iterateOverFile.js.map +0 -1
@@ -0,0 +1,68 @@
1
+ //#region src/editor/utils.ts
2
+ function h(tagName, props, parent) {
3
+ const { style, dataset, children, ...attrs } = props ?? {};
4
+ const el = document.createElement(tagName);
5
+ Object.assign(el, attrs);
6
+ if (style !== void 0) if (typeof style === "string") el.style.cssText = style;
7
+ else Object.assign(el.style, style);
8
+ if (dataset !== void 0) if (typeof dataset === "string") el.dataset[dataset] = "";
9
+ else if (Array.isArray(dataset)) dataset.forEach((key) => {
10
+ el.dataset[key] = "";
11
+ });
12
+ else Object.assign(el.dataset, dataset);
13
+ if (children !== void 0) el.replaceChildren(...children);
14
+ if (parent !== void 0) parent.appendChild(el);
15
+ return el;
16
+ }
17
+ function addEventListener(el, event, listener, options) {
18
+ el.addEventListener(event, listener, options);
19
+ return () => el.removeEventListener(event, listener);
20
+ }
21
+ function getLineNumberAttr(el, key = "line") {
22
+ const value = el.dataset[key];
23
+ if (value === void 0) return;
24
+ const lineNumber = parseInt(value, 10);
25
+ if (Number.isNaN(lineNumber)) return;
26
+ return lineNumber;
27
+ }
28
+ function clampDomOffset(node, offset) {
29
+ if (node.nodeType === 3) {
30
+ const length = node.textContent?.length ?? 0;
31
+ return Math.max(0, Math.min(offset, length));
32
+ }
33
+ if (node.nodeType === 1) return Math.max(0, Math.min(offset, node.childNodes.length));
34
+ return 0;
35
+ }
36
+ function extend(obj, attrs) {
37
+ return Object.assign(obj, attrs);
38
+ }
39
+ function debounce(func, wait) {
40
+ let timeout;
41
+ return function(...args) {
42
+ clearTimeout(timeout);
43
+ timeout = setTimeout(() => func.apply(this, args), wait);
44
+ };
45
+ }
46
+ function round(value, precision = 1e3) {
47
+ return Math.round(value * precision) / precision;
48
+ }
49
+ function endsWithLineBreak(text) {
50
+ return text.endsWith("\n") || text.endsWith("\r");
51
+ }
52
+ function createSegmenter(options) {
53
+ if (typeof Intl === "undefined" || typeof Intl.Segmenter !== "function") return;
54
+ return new Intl.Segmenter(void 0, options);
55
+ }
56
+ let graphemeSegmenter;
57
+ let graphemeSegmenterInit = false;
58
+ function getGraphemeSegmenter() {
59
+ if (!graphemeSegmenterInit) {
60
+ graphemeSegmenter = createSegmenter({ granularity: "grapheme" });
61
+ graphemeSegmenterInit = true;
62
+ }
63
+ return graphemeSegmenter;
64
+ }
65
+ //#endregion
66
+ export { addEventListener, clampDomOffset, createSegmenter, debounce, endsWithLineBreak, extend, getGraphemeSegmenter, getLineNumberAttr, h, round };
67
+
68
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../src/editor/utils.ts"],"sourcesContent":["export function h<K extends keyof HTMLElementTagNameMap>(\n tagName: K,\n props?: {\n style?: string | Partial<CSSStyleDeclaration>;\n dataset?: DOMStringMap | string[] | string;\n children?: (Node | string)[];\n } & Partial<Omit<HTMLElementTagNameMap[K], 'style' | 'dataset' | 'children'>>,\n parent?: Element | ShadowRoot | DocumentFragment\n): HTMLElementTagNameMap[K] {\n const { style, dataset, children, ...attrs } = props ?? {};\n const el = document.createElement(tagName);\n Object.assign(el, attrs);\n if (style !== undefined) {\n if (typeof style === 'string') {\n el.style.cssText = style;\n } else {\n Object.assign(el.style, style);\n }\n }\n if (dataset !== undefined) {\n if (typeof dataset === 'string') {\n el.dataset[dataset] = '';\n } else if (Array.isArray(dataset)) {\n dataset.forEach((key) => {\n el.dataset[key] = '';\n });\n } else {\n Object.assign(el.dataset, dataset);\n }\n }\n if (children !== undefined) {\n el.replaceChildren(...children);\n }\n if (parent !== undefined) {\n parent.appendChild(el);\n }\n return el;\n}\n\nexport function addEventListener<K extends keyof HTMLElementEventMap>(\n el: HTMLElement,\n event: K,\n listener: (this: HTMLElement, evt: HTMLElementEventMap[K]) => void,\n options?: AddEventListenerOptions\n): () => void;\nexport function addEventListener<K extends keyof DocumentEventMap>(\n el: Document,\n event: K,\n listener: (this: Document, evt: DocumentEventMap[K]) => void,\n options?: AddEventListenerOptions\n): () => void;\nexport function addEventListener<K extends keyof WindowEventMap>(\n el: Window,\n event: K,\n listener: (this: Window, evt: WindowEventMap[K]) => void,\n options?: AddEventListenerOptions\n): () => void;\nexport function addEventListener<K extends keyof MediaQueryListEventMap>(\n el: MediaQueryList,\n event: K,\n listener: (this: MediaQueryList, evt: MediaQueryListEventMap[K]) => void,\n options?: AddEventListenerOptions\n): () => void;\nexport function addEventListener(\n el: HTMLElement | Document | ShadowRoot | Window | MediaQueryList,\n event: string,\n listener: EventListener,\n options?: AddEventListenerOptions\n) {\n el.addEventListener(event, listener, options);\n return () => el.removeEventListener(event, listener);\n}\n\nexport function getLineNumberAttr(\n el: HTMLElement,\n key = 'line'\n): number | undefined {\n const value = el.dataset[key];\n if (value === undefined) {\n return undefined;\n }\n const lineNumber = parseInt(value, 10);\n if (Number.isNaN(lineNumber)) {\n return undefined;\n }\n return lineNumber;\n}\n\nexport function clampDomOffset(node: Node, offset: number): number {\n if (node.nodeType === 3) {\n const length = (node as Text).textContent?.length ?? 0;\n return Math.max(0, Math.min(offset, length));\n }\n if (node.nodeType === 1) {\n return Math.max(0, Math.min(offset, node.childNodes.length));\n }\n return 0;\n}\n\nexport function extend<T extends object>(obj: T, attrs: Partial<T>): T {\n return Object.assign(obj, attrs);\n}\n\n// oxlint-disable-next-line typescript/no-explicit-any\nexport function debounce<T extends (...args: any[]) => void>(\n func: T,\n wait: number\n): (...args: Parameters<T>) => void {\n let timeout: ReturnType<typeof setTimeout>;\n return function (this: ThisType<T>, ...args: Parameters<T>) {\n clearTimeout(timeout);\n timeout = setTimeout(() => func.apply(this, args), wait);\n };\n}\n\nexport function round(value: number, precision: number = 1000): number {\n return Math.round(value * precision) / precision;\n}\n\nexport function endsWithLineBreak(text: string): boolean {\n return text.endsWith('\\n') || text.endsWith('\\r');\n}\n\n// Creates an Intl.Segmenter, or undefined when the engine lacks support.\n// Callers must fall back to a degraded path when this returns undefined.\nexport function createSegmenter(\n options: Intl.SegmenterOptions\n): Intl.Segmenter | undefined {\n if (typeof Intl === 'undefined' || typeof Intl.Segmenter !== 'function') {\n return undefined;\n }\n return new Intl.Segmenter(undefined, options);\n}\n\n// Lazily created and cached grapheme segmenter. Avoids constructing\n// Intl.Segmenter at import time so importing the editor never throws on\n// engines that lack it. Undefined when the engine has no Intl.Segmenter.\nlet graphemeSegmenter: Intl.Segmenter | undefined;\nlet graphemeSegmenterInit = false;\nexport function getGraphemeSegmenter(): Intl.Segmenter | undefined {\n if (!graphemeSegmenterInit) {\n graphemeSegmenter = createSegmenter({ granularity: 'grapheme' });\n graphemeSegmenterInit = true;\n }\n return graphemeSegmenter;\n}\n"],"mappings":";AAAA,SAAgB,EACd,SACA,OAKA,QAC0B;CAC1B,MAAM,EAAE,OAAO,SAAS,UAAU,GAAG,UAAU,SAAS,CAAC;CACzD,MAAM,KAAK,SAAS,cAAc,OAAO;CACzC,OAAO,OAAO,IAAI,KAAK;CACvB,IAAI,UAAU,KAAA,GACZ,IAAI,OAAO,UAAU,UACnB,GAAG,MAAM,UAAU;MAEnB,OAAO,OAAO,GAAG,OAAO,KAAK;CAGjC,IAAI,YAAY,KAAA,GACd,IAAI,OAAO,YAAY,UACrB,GAAG,QAAQ,WAAW;MACjB,IAAI,MAAM,QAAQ,OAAO,GAC9B,QAAQ,SAAS,QAAQ;EACvB,GAAG,QAAQ,OAAO;CACpB,CAAC;MAED,OAAO,OAAO,GAAG,SAAS,OAAO;CAGrC,IAAI,aAAa,KAAA,GACf,GAAG,gBAAgB,GAAG,QAAQ;CAEhC,IAAI,WAAW,KAAA,GACb,OAAO,YAAY,EAAE;CAEvB,OAAO;AACT;AA0BA,SAAgB,iBACd,IACA,OACA,UACA,SACA;CACA,GAAG,iBAAiB,OAAO,UAAU,OAAO;CAC5C,aAAa,GAAG,oBAAoB,OAAO,QAAQ;AACrD;AAEA,SAAgB,kBACd,IACA,MAAM,QACc;CACpB,MAAM,QAAQ,GAAG,QAAQ;CACzB,IAAI,UAAU,KAAA,GACZ;CAEF,MAAM,aAAa,SAAS,OAAO,EAAE;CACrC,IAAI,OAAO,MAAM,UAAU,GACzB;CAEF,OAAO;AACT;AAEA,SAAgB,eAAe,MAAY,QAAwB;CACjE,IAAI,KAAK,aAAa,GAAG;EACvB,MAAM,SAAU,KAAc,aAAa,UAAU;EACrD,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,QAAQ,MAAM,CAAC;CAC7C;CACA,IAAI,KAAK,aAAa,GACpB,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,QAAQ,KAAK,WAAW,MAAM,CAAC;CAE7D,OAAO;AACT;AAEA,SAAgB,OAAyB,KAAQ,OAAsB;CACrE,OAAO,OAAO,OAAO,KAAK,KAAK;AACjC;AAGA,SAAgB,SACd,MACA,MACkC;CAClC,IAAI;CACJ,OAAO,SAA6B,GAAG,MAAqB;EAC1D,aAAa,OAAO;EACpB,UAAU,iBAAiB,KAAK,MAAM,MAAM,IAAI,GAAG,IAAI;CACzD;AACF;AAEA,SAAgB,MAAM,OAAe,YAAoB,KAAc;CACrE,OAAO,KAAK,MAAM,QAAQ,SAAS,IAAI;AACzC;AAEA,SAAgB,kBAAkB,MAAuB;CACvD,OAAO,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI;AAClD;AAIA,SAAgB,gBACd,SAC4B;CAC5B,IAAI,OAAO,SAAS,eAAe,OAAO,KAAK,cAAc,YAC3D;CAEF,OAAO,IAAI,KAAK,UAAU,KAAA,GAAW,OAAO;AAC9C;AAKA,IAAI;AACJ,IAAI,wBAAwB;AAC5B,SAAgB,uBAAmD;CACjE,IAAI,CAAC,uBAAuB;EAC1B,oBAAoB,gBAAgB,EAAE,aAAa,WAAW,CAAC;EAC/D,wBAAwB;CAC1B;CACA,OAAO;AACT"}
package/dist/index.d.ts CHANGED
@@ -1,16 +1,16 @@
1
- import { AnnotationLineMap, AnnotationSide, AnnotationSpan, AppliedThemeStyleCache, BaseCodeOptions, BaseDiffOptions, BaseDiffOptionsWithDefaults, BundledLanguage, ChangeContent, ChangeTypes, CodeColumnType, CodeToHastOptions, CodeViewDiffItem, CodeViewFileItem, CodeViewItem, CodeViewItemScrollTarget, CodeViewLayout, CodeViewLineScrollTarget, CodeViewPositionScrollTarget, CodeViewRangeScrollTarget, CodeViewScrollBehavior, CodeViewScrollTarget, ConflictResolverTypes, ContextContent, CreatePatchOptionsNonabortable, CustomPreProperties, DecorationItem, DiffAcceptRejectHunkConfig, DiffAcceptRejectHunkType, DiffIndicators, DiffLineAnnotation, DiffLineEventBaseProps, DiffTokenEventBaseProps, DiffsHighlighter, DiffsThemeNames, ExpansionDirections, ExtensionFormatMap, FileContents, FileDiffMetadata, FileHeaderRenderMode, ForceDiffPlainTextOptions, ForceFilePlainTextOptions, GapSpan, HighlighterTypes, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, LanguageRegistration, LineAnnotation, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, MergeConflictActionPayload, MergeConflictMarkerRow, MergeConflictMarkerRowType, MergeConflictRegion, MergeConflictResolution, NumericScrollLineAnchor, ObservedAnnotationNodes, ObservedGridNodes, ParsedPatch, PendingCodeViewLayoutReset, PostRenderPhase, PrePropertiesConfig, ProcessFileConflictData, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, SelectedLineRange, SelectionPoint, SelectionSide, SharedRenderState, ShikiTransformer, SmoothScrollSettings, StickySpecs, SupportedLanguages, ThemeRegistration, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, TokenEventBase, VirtualFileMetrics, VirtualWindowSpecs } from "./types.js";
1
+ import { AnnotationLineMap, AnnotationSide, AnnotationSpan, AppliedThemeStyleCache, BaseCodeOptions, BaseDiffOptions, BaseDiffOptionsWithDefaults, BundledLanguage, ChangeContent, ChangeTypes, CodeColumnType, CodeToHastOptions, CodeViewCreateEditorOptions, CodeViewDiffItem, CodeViewFileItem, CodeViewItem, CodeViewItemScrollTarget, CodeViewLayout, CodeViewLineScrollTarget, CodeViewPositionScrollTarget, CodeViewRangeScrollTarget, CodeViewScrollBehavior, CodeViewScrollTarget, ConflictResolverTypes, ContextContent, CreatePatchOptionsNonabortable, CustomPreProperties, DecorationItem, DiffAcceptRejectHunkConfig, DiffAcceptRejectHunkType, DiffFileInput, DiffIndicators, DiffLineAnnotation, DiffLineEventBaseProps, DiffTokenEventBaseProps, DiffsBaseComponent, DiffsComponentOptions, DiffsEditableComponent, DiffsEditor, DiffsHighlighter, DiffsTextDocument, DiffsThemeNames, EditorSelection, EditorState, ExpansionDirections, ExtensionFormatMap, FileContents, FileDiffContentsLoader, FileDiffLoadedChangedFiles, FileDiffLoadedFiles, FileDiffLoadedPureRenamedFile, FileDiffMetadata, FileHeaderRenderMode, ForceDiffPlainTextOptions, ForceFilePlainTextOptions, GapSpan, HighlightedToken, HighlighterTypes, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, LanguageRegistration, LineAnnotation, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, MaybeDiffFileInput, MergeConflictActionPayload, MergeConflictMarkerRow, MergeConflictMarkerRowType, MergeConflictRegion, MergeConflictResolution, NumericScrollLineAnchor, ObservedAnnotationNodes, ObservedGridNodes, ParsedPatch, PendingCodeViewLayoutReset, Position, PostRenderPhase, PrePropertiesConfig, ProcessFileConflictData, Range, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderFilenameSuffixCallback, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, SelectedLineRange, SelectionDirection, SelectionPoint, SelectionSide, SharedRenderState, ShikiTransformer, SmoothScrollSettings, StickySpecs, SupportedLanguages, TextEdit, ThemeRegistration, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, TokenEventBase, VirtualFileMetrics, VirtualWindowSpecs } from "./types.js";
2
2
  import { GetHoveredLineResult, GetLineIndexUtility, InteractionManager, InteractionManagerBaseOptions, InteractionManagerMode, InteractionManagerOptions, LogTypes, MergeConflictActionTarget, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, OnTokenEventProps, SelectionWriteOptions, pluckInteractionOptions } from "./managers/InteractionManager.js";
3
- import { ResizeManager } from "./managers/ResizeManager.js";
3
+ import { ResizeManager, ResizeManagerColumnVariableMode, ResizeManagerSetupOptions } from "./managers/ResizeManager.js";
4
4
  import { FileRenderResult, FileRenderer, FileRendererOptions } from "./renderers/FileRenderer.js";
5
5
  import { File, FileHydrateProps, FileOptions, FileRenderProps } from "./components/File.js";
6
6
  import { ScrollSyncManager } from "./managers/ScrollSyncManager.js";
7
7
  import { DiffHunksRenderer, DiffHunksRendererOptions, DiffHunksRendererOptionsWithDefaults, HunksRenderResult, InjectedRow, LineDecoration, RenderedLineContext, SplitInjectedRow, SplitInjectedRowPlacement, SplitLineDecorationProps, UnifiedInjectedRowPlacement, UnifiedLineDecorationProps } from "./renderers/DiffHunksRenderer.js";
8
- import { FileDiff, FileDiffHydrationProps, FileDiffOptions, FileDiffRenderProps, FileDiffType } from "./components/FileDiff.js";
8
+ import { FileDiff, FileDiffHydrationProps, FileDiffOptions, FileDiffRenderBaseProps, FileDiffRenderProps, FileDiffType } from "./components/FileDiff.js";
9
9
  import { Virtualizer, VirtualizerConfig } from "./components/Virtualizer.js";
10
10
  import { VirtualizedFile } from "./components/VirtualizedFile.js";
11
- import { VirtualizedFileDiff } from "./components/VirtualizedFileDiff.js";
12
- import { CodeView, CodeViewCoordinator, CodeViewLineSelection, CodeViewOptions, CodeViewRenderedDiffItem, CodeViewRenderedFileItem, CodeViewRenderedItem, CodeViewScrollListener } from "./components/CodeView.js";
13
- import { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_HEADER_SLOT_ID, DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_DEVELOPMENT_BUILD, DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY, DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE, DIFFS_TAG_NAME, EMPTY_RENDER_RANGE, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, INDEX_LINE_METADATA, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, SPLIT_WITH_NEWLINES, THEME_CSS_ATTRIBUTE, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE } from "./constants.js";
11
+ import { VIRTUALIZED_FILE_DIFF_LAYOUT_CHECKPOINT_INTERVAL, VirtualizedFileDiff } from "./components/VirtualizedFileDiff.js";
12
+ import { CODE_VIEW_DIFF_OPTION_KEYS, CODE_VIEW_FILE_OPTION_KEYS, CodeView, CodeViewCoordinator, CodeViewLineSelection, CodeViewOptions, CodeViewRenderedDiffItem, CodeViewRenderedFileItem, CodeViewRenderedItem, CodeViewScrollListener, CodeViewSlotSnapshot } from "./components/CodeView.js";
13
+ import { ALTERNATE_FILE_NAMES_GIT, CODE_VIEW_FOOTER_ATTRIBUTE, CODE_VIEW_HEADER_ATTRIBUTE, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_HEADER_SLOT_ID, DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_DEVELOPMENT_BUILD, DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY, DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE, DIFFS_TAG_NAME, EMPTY_RENDER_RANGE, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, GIT_DIFF_FILE_BREAK_REGEX, HEADER_FILENAME_SUFFIX_SLOT_ID, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, INDEX_LINE_METADATA, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, SPLIT_WITH_NEWLINES, THEME_CSS_ATTRIBUTE, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE } from "./constants.js";
14
14
  import { CodeToTokenTransformStreamOptions, RecallToken, ShikiStreamTokenizerEnqueueResult, ShikiStreamTokenizerOptions } from "./shiki-stream/types.js";
15
15
  import { ShikiStreamTokenizer } from "./shiki-stream/tokenizer.js";
16
16
  import { CodeToTokenTransformStream } from "./shiki-stream/stream.js";
@@ -38,7 +38,7 @@ import { registerCustomCSSVariableTheme } from "./highlighter/themes/registerCus
38
38
  import { CustomThemeLoader, registerCustomTheme } from "./highlighter/themes/registerCustomTheme.js";
39
39
  import { resolveTheme } from "./highlighter/themes/resolveTheme.js";
40
40
  import { resolveThemes } from "./highlighter/themes/resolveThemes.js";
41
- import { dequeueRender, queueRender } from "./managers/UniversalRenderingManager.js";
41
+ import { clearRenderQueue, dequeueRender, queueRender } from "./managers/UniversalRenderingManager.js";
42
42
  import { SVGSpriteNames, SVGSpriteSheet } from "./sprite.js";
43
43
  import { areDiffLineAnnotationsEqual } from "./utils/areDiffLineAnnotationsEqual.js";
44
44
  import { areDiffRenderOptionsEqual } from "./utils/areDiffRenderOptionsEqual.js";
@@ -56,6 +56,7 @@ import { areThemesEqual } from "./utils/areThemesEqual.js";
56
56
  import { areVirtualWindowSpecsEqual } from "./utils/areVirtualWindowSpecsEqual.js";
57
57
  import { areWorkerStatsEqual } from "./utils/areWorkerStatsEqual.js";
58
58
  import { cleanLastNewline } from "./utils/cleanLastNewline.js";
59
+ import { cloneFileDiffMetadata } from "./utils/cloneFileDiffMetadata.js";
59
60
  import { createAnnotationElement } from "./utils/createAnnotationElement.js";
60
61
  import { createAnnotationWrapperNode } from "./utils/createAnnotationWrapperNode.js";
61
62
  import { createEmptyRowBuffer } from "./utils/createEmptyRowBuffer.js";
@@ -88,6 +89,7 @@ import { getSingularPatch } from "./utils/getSingularPatch.js";
88
89
  import { getThemes } from "./utils/getThemes.js";
89
90
  import { getTotalLineCountFromHunks } from "./utils/getTotalLineCountFromHunks.js";
90
91
  import { createGutterGap, createGutterItem, createGutterWrapper, createHastElement, createIconElement, createTextNodeElement, findCodeElement } from "./utils/hast_utils.js";
92
+ import { hydratePartialDiff } from "./utils/hydratePartialDiff.js";
91
93
  import { isDefaultRenderRange } from "./utils/isDefaultRenderRange.js";
92
94
  import { isWorkerContext } from "./utils/isWorkerContext.js";
93
95
  import { createDiffSpanDecoration, pushOrJoinSpan } from "./utils/parseDiffDecorations.js";
@@ -105,4 +107,4 @@ import { setLanguageOverride } from "./utils/setLanguageOverride.js";
105
107
  import { setPreNodeProperties } from "./utils/setWrapperNodeProps.js";
106
108
  import { trimPatchContext } from "./utils/trimPatchContext.js";
107
109
  import { codeToHtml, createCssVariablesTheme as createCSSVariablesTheme } from "shiki";
108
- export { ALTERNATE_FILE_NAMES_GIT, type AnnotationLineMap, type AnnotationSide, type AnnotationSpan, type AppliedThemeStyleCache, AttachedLanguages, AttachedThemes, type BaseCodeOptions, type BaseDiffOptions, type BaseDiffOptionsWithDefaults, type BundledLanguage, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_HEADER_SLOT_ID, type ChangeContent, type ChangeTypes, type CodeColumnType, type CodeToHastOptions, CodeToTokenTransformStream, CodeToTokenTransformStreamOptions, CodeView, CodeViewCoordinator, type CodeViewDiffItem, type CodeViewFileItem, type CodeViewItem, type CodeViewItemScrollTarget, type CodeViewLayout, type CodeViewLineScrollTarget, CodeViewLineSelection, CodeViewOptions, type CodeViewPositionScrollTarget, type CodeViewRangeScrollTarget, CodeViewRenderedDiffItem, CodeViewRenderedFileItem, CodeViewRenderedItem, type CodeViewScrollBehavior, CodeViewScrollListener, type CodeViewScrollTarget, type ConflictResolverTypes, type ContextContent, CreateFileHeaderElementProps, type CreatePatchOptionsNonabortable, type CustomPreProperties, CustomThemeLoader, DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_DEVELOPMENT_BUILD, DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY, DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE, DIFFS_TAG_NAME, type DecorationItem, type DiffAcceptRejectHunkConfig, type DiffAcceptRejectHunkType, DiffHunksRenderer, DiffHunksRendererOptions, DiffHunksRendererOptionsWithDefaults, type DiffIndicators, type DiffLineAnnotation, type DiffLineEventBaseProps, type DiffTokenEventBaseProps, type DiffsHighlighter, type DiffsThemeNames, EMPTY_RENDER_RANGE, EXTENSION_TO_FILE_FORMAT, type ExpansionDirections, type ExtensionFormatMap, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, File, type FileContents, FileDiff, FileDiffHydrationProps, type FileDiffMetadata, FileDiffOptions, FileDiffRenderProps, FileDiffType, type FileHeaderRenderMode, FileHydrateProps, FileOptions, FileRenderProps, FileRenderResult, FileRenderer, FileRendererOptions, FileStream, FileStreamOptions, type ForceDiffPlainTextOptions, type ForceFilePlainTextOptions, GIT_DIFF_FILE_BREAK_REGEX, type GapSpan, GetHoveredLineResult, GetLineIndexUtility, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, type HighlighterTypes, type Hunk, type HunkData, type HunkExpansionRegion, type HunkLineType, type HunkSeparators, HunksRenderResult, INDEX_LINE_METADATA, InjectedRow, InteractionManager, InteractionManagerBaseOptions, InteractionManagerMode, InteractionManagerOptions, type LanguageRegistration, type LineAnnotation, LineDecoration, type LineDiffTypes, type LineEventBaseProps, type LineInfo, type LineSpans, type LineTypes, LogTypes, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, type MergeConflictActionPayload, MergeConflictActionTarget, MergeConflictActionsTypeOption, type MergeConflictMarkerRow, type MergeConflictMarkerRowType, type MergeConflictRegion, type MergeConflictResolution, type NumericScrollLineAnchor, type ObservedAnnotationNodes, type ObservedGridNodes, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, OnTokenEventProps, ParsedLine, type ParsedPatch, type PendingCodeViewLayoutReset, type PostRenderPhase, type PrePropertiesConfig, type ProcessFileConflictData, RecallToken, RegisteredCustomLanguages, type RenderDiffFilesResult, type RenderDiffOptions, type RenderDiffResult, type RenderFileMetadata, type RenderFileOptions, type RenderFileResult, type RenderHeaderMetadataCallback, type RenderHeaderPrefixCallback, RenderMergeConflictActions, type RenderRange, type RenderWindow, type RenderedDiffASTCache, type RenderedFileASTCache, RenderedLineContext, ResizeManager, ResolvedLanguages, ResolvingLanguages, SPLIT_WITH_NEWLINES, SVGSpriteNames, SVGSpriteSheet, ScrollSyncManager, type SelectedLineRange, type SelectionPoint, type SelectionSide, SelectionWriteOptions, type SharedRenderState, ShikiStreamTokenizer, ShikiStreamTokenizerEnqueueResult, ShikiStreamTokenizerOptions, type ShikiTransformer, type SmoothScrollSettings, SplitInjectedRow, SplitInjectedRowPlacement, SplitLineDecorationProps, type StickySpecs, type SupportedLanguages, THEME_CSS_ATTRIBUTE, type ThemeRegistration, type ThemeRegistrationResolved, type ThemeTypes, type ThemedDiffResult, type ThemedFileResult, type ThemedToken, type ThemesType, type TokenEventBase, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, UnifiedInjectedRowPlacement, UnifiedLineDecorationProps, UnresolvedFile, UnresolvedFileHydrationProps, UnresolvedFileOptions, UnresolvedFileRenderProps, type VirtualFileMetrics, type VirtualWindowSpecs, VirtualizedFile, VirtualizedFileDiff, Virtualizer, VirtualizerConfig, areDiffLineAnnotationsEqual, areDiffRenderOptionsEqual, areDiffTargetsEqual, areFileRenderOptionsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createGutterGap, createGutterItem, createGutterUtilityContentNode, createGutterUtilityElement, createGutterWrapper, createHastElement, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createThemeStyleElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, dequeueRender, detachString, diffAcceptRejectHunk, disposeHighlighter, findCodeElement, formatCSSVariablePrefix, getCustomExtensionsMap, getCustomExtensionsVersion, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, getUnresolvedDiffHunksRendererOptions, hasResolvedLanguages, hasResolvedThemes, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, patchScrollbarGutterSize, pluckInteractionOptions, prefersReducedMotion, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomLanguage, registerCustomTheme, releaseStringDetachBuffer, renderDiffWithHighlighter, renderFileWithHighlighter, replaceCustomExtensions, resolveConflict, resolveLanguage, resolveLanguages, resolveRegion, resolveTheme, resolveThemes, setCustomExtension, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapThemeCSS, wrapUnsafeCSS };
110
+ export { ALTERNATE_FILE_NAMES_GIT, type AnnotationLineMap, type AnnotationSide, type AnnotationSpan, type AppliedThemeStyleCache, AttachedLanguages, AttachedThemes, type BaseCodeOptions, type BaseDiffOptions, type BaseDiffOptionsWithDefaults, type BundledLanguage, CODE_VIEW_DIFF_OPTION_KEYS, CODE_VIEW_FILE_OPTION_KEYS, CODE_VIEW_FOOTER_ATTRIBUTE, CODE_VIEW_HEADER_ATTRIBUTE, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_HEADER_SLOT_ID, type ChangeContent, type ChangeTypes, type CodeColumnType, type CodeToHastOptions, CodeToTokenTransformStream, CodeToTokenTransformStreamOptions, CodeView, CodeViewCoordinator, type CodeViewCreateEditorOptions, type CodeViewDiffItem, type CodeViewFileItem, type CodeViewItem, type CodeViewItemScrollTarget, type CodeViewLayout, type CodeViewLineScrollTarget, CodeViewLineSelection, CodeViewOptions, type CodeViewPositionScrollTarget, type CodeViewRangeScrollTarget, CodeViewRenderedDiffItem, CodeViewRenderedFileItem, CodeViewRenderedItem, type CodeViewScrollBehavior, CodeViewScrollListener, type CodeViewScrollTarget, CodeViewSlotSnapshot, type ConflictResolverTypes, type ContextContent, CreateFileHeaderElementProps, type CreatePatchOptionsNonabortable, type CustomPreProperties, CustomThemeLoader, DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_DEVELOPMENT_BUILD, DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY, DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE, DIFFS_TAG_NAME, type DecorationItem, type DiffAcceptRejectHunkConfig, type DiffAcceptRejectHunkType, type DiffFileInput, DiffHunksRenderer, DiffHunksRendererOptions, DiffHunksRendererOptionsWithDefaults, type DiffIndicators, type DiffLineAnnotation, type DiffLineEventBaseProps, type DiffTokenEventBaseProps, type DiffsBaseComponent, type DiffsComponentOptions, type DiffsEditableComponent, type DiffsEditor, type DiffsHighlighter, type DiffsTextDocument, type DiffsThemeNames, EMPTY_RENDER_RANGE, EXTENSION_TO_FILE_FORMAT, type EditorSelection, type EditorState, type ExpansionDirections, type ExtensionFormatMap, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, File, type FileContents, FileDiff, type FileDiffContentsLoader, FileDiffHydrationProps, type FileDiffLoadedChangedFiles, type FileDiffLoadedFiles, type FileDiffLoadedPureRenamedFile, type FileDiffMetadata, FileDiffOptions, FileDiffRenderBaseProps, FileDiffRenderProps, FileDiffType, type FileHeaderRenderMode, FileHydrateProps, FileOptions, FileRenderProps, FileRenderResult, FileRenderer, FileRendererOptions, FileStream, FileStreamOptions, type ForceDiffPlainTextOptions, type ForceFilePlainTextOptions, GIT_DIFF_FILE_BREAK_REGEX, type GapSpan, GetHoveredLineResult, GetLineIndexUtility, HEADER_FILENAME_SUFFIX_SLOT_ID, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, type HighlightedToken, type HighlighterTypes, type Hunk, type HunkData, type HunkExpansionRegion, type HunkLineType, type HunkSeparators, HunksRenderResult, INDEX_LINE_METADATA, InjectedRow, InteractionManager, InteractionManagerBaseOptions, InteractionManagerMode, InteractionManagerOptions, type LanguageRegistration, type LineAnnotation, LineDecoration, type LineDiffTypes, type LineEventBaseProps, type LineInfo, type LineSpans, type LineTypes, LogTypes, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, type MaybeDiffFileInput, type MergeConflictActionPayload, MergeConflictActionTarget, MergeConflictActionsTypeOption, type MergeConflictMarkerRow, type MergeConflictMarkerRowType, type MergeConflictRegion, type MergeConflictResolution, type NumericScrollLineAnchor, type ObservedAnnotationNodes, type ObservedGridNodes, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, OnTokenEventProps, ParsedLine, type ParsedPatch, type PendingCodeViewLayoutReset, type Position, type PostRenderPhase, type PrePropertiesConfig, type ProcessFileConflictData, type Range, RecallToken, RegisteredCustomLanguages, type RenderDiffFilesResult, type RenderDiffOptions, type RenderDiffResult, type RenderFileMetadata, type RenderFileOptions, type RenderFileResult, type RenderHeaderFilenameSuffixCallback, type RenderHeaderMetadataCallback, type RenderHeaderPrefixCallback, RenderMergeConflictActions, type RenderRange, type RenderWindow, type RenderedDiffASTCache, type RenderedFileASTCache, RenderedLineContext, ResizeManager, ResizeManagerColumnVariableMode, ResizeManagerSetupOptions, ResolvedLanguages, ResolvingLanguages, SPLIT_WITH_NEWLINES, SVGSpriteNames, SVGSpriteSheet, ScrollSyncManager, type SelectedLineRange, type SelectionDirection, type SelectionPoint, type SelectionSide, SelectionWriteOptions, type SharedRenderState, ShikiStreamTokenizer, ShikiStreamTokenizerEnqueueResult, ShikiStreamTokenizerOptions, type ShikiTransformer, type SmoothScrollSettings, SplitInjectedRow, SplitInjectedRowPlacement, SplitLineDecorationProps, type StickySpecs, type SupportedLanguages, THEME_CSS_ATTRIBUTE, type TextEdit, type ThemeRegistration, type ThemeRegistrationResolved, type ThemeTypes, type ThemedDiffResult, type ThemedFileResult, type ThemedToken, type ThemesType, type TokenEventBase, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, UnifiedInjectedRowPlacement, UnifiedLineDecorationProps, UnresolvedFile, UnresolvedFileHydrationProps, UnresolvedFileOptions, UnresolvedFileRenderProps, VIRTUALIZED_FILE_DIFF_LAYOUT_CHECKPOINT_INTERVAL, type VirtualFileMetrics, type VirtualWindowSpecs, VirtualizedFile, VirtualizedFileDiff, Virtualizer, VirtualizerConfig, areDiffLineAnnotationsEqual, areDiffRenderOptionsEqual, areDiffTargetsEqual, areFileRenderOptionsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, clearRenderQueue, cloneFileDiffMetadata, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createGutterGap, createGutterItem, createGutterUtilityContentNode, createGutterUtilityElement, createGutterWrapper, createHastElement, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createThemeStyleElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, dequeueRender, detachString, diffAcceptRejectHunk, disposeHighlighter, findCodeElement, formatCSSVariablePrefix, getCustomExtensionsMap, getCustomExtensionsVersion, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, getUnresolvedDiffHunksRendererOptions, hasResolvedLanguages, hasResolvedThemes, hydratePartialDiff, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, patchScrollbarGutterSize, pluckInteractionOptions, prefersReducedMotion, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomLanguage, registerCustomTheme, releaseStringDetachBuffer, renderDiffWithHighlighter, renderFileWithHighlighter, replaceCustomExtensions, resolveConflict, resolveLanguage, resolveLanguages, resolveRegion, resolveTheme, resolveThemes, setCustomExtension, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapThemeCSS, wrapUnsafeCSS };
package/dist/index.js CHANGED
@@ -1,11 +1,16 @@
1
- import { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_HEADER_SLOT_ID, DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_DEVELOPMENT_BUILD, DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY, DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE, DIFFS_TAG_NAME, EMPTY_RENDER_RANGE, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, INDEX_LINE_METADATA, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, SPLIT_WITH_NEWLINES, THEME_CSS_ATTRIBUTE, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE } from "./constants.js";
2
- import { dequeueRender, queueRender } from "./managers/UniversalRenderingManager.js";
1
+ import { ALTERNATE_FILE_NAMES_GIT, CODE_VIEW_FOOTER_ATTRIBUTE, CODE_VIEW_HEADER_ATTRIBUTE, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_HEADER_SLOT_ID, DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_DEVELOPMENT_BUILD, DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY, DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE, DIFFS_TAG_NAME, EMPTY_RENDER_RANGE, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, GIT_DIFF_FILE_BREAK_REGEX, HEADER_FILENAME_SUFFIX_SLOT_ID, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, INDEX_LINE_METADATA, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, SPLIT_WITH_NEWLINES, THEME_CSS_ATTRIBUTE, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE } from "./constants.js";
2
+ import { clearRenderQueue, dequeueRender, queueRender } from "./managers/UniversalRenderingManager.js";
3
3
  import { areObjectsEqual } from "./utils/areObjectsEqual.js";
4
4
  import { areThemesEqual } from "./utils/areThemesEqual.js";
5
5
  import { areOptionsEqual } from "./utils/areOptionsEqual.js";
6
6
  import { areSelectionsEqual } from "./utils/areSelectionsEqual.js";
7
7
  import { createWindowFromScrollPosition } from "./utils/createWindowFromScrollPosition.js";
8
+ import { cleanLastNewline } from "./utils/cleanLastNewline.js";
9
+ import { detachString, releaseStringDetachBuffer } from "./utils/detachString.js";
10
+ import { parsePatchFiles, processFile, processPatch } from "./utils/parsePatchFiles.js";
11
+ import { parseDiffFromFile } from "./utils/parseDiffFromFile.js";
8
12
  import { prefersReducedMotion } from "./utils/prefersReducedMotion.js";
13
+ import { areFilesEqual } from "./utils/areFilesEqual.js";
9
14
  import { createGutterGap, createGutterItem, createGutterWrapper, createHastElement, createIconElement, createTextNodeElement, findCodeElement } from "./utils/hast_utils.js";
10
15
  import { createGutterUtilityElement } from "./utils/createGutterUtilityElement.js";
11
16
  import { InteractionManager, pluckInteractionOptions } from "./managers/InteractionManager.js";
@@ -27,7 +32,6 @@ import { getThemes } from "./utils/getThemes.js";
27
32
  import { areThemesAttached } from "./highlighter/themes/areThemesAttached.js";
28
33
  import { hasResolvedThemes } from "./highlighter/themes/hasResolvedThemes.js";
29
34
  import { areFileRenderOptionsEqual } from "./utils/areFileRenderOptionsEqual.js";
30
- import { areFilesEqual } from "./utils/areFilesEqual.js";
31
35
  import { areRenderRangesEqual } from "./utils/areRenderRangesEqual.js";
32
36
  import { createAnnotationElement } from "./utils/createAnnotationElement.js";
33
37
  import { getIconForType } from "./utils/getIconForType.js";
@@ -36,7 +40,6 @@ import { createPreElement, createPreWrapperProperties } from "./utils/createPreE
36
40
  import { EXTENSION_TO_FILE_FORMAT, getCustomExtensionsMap, getCustomExtensionsVersion, getFiletypeFromFileName, replaceCustomExtensions, setCustomExtension } from "./utils/getFiletypeFromFileName.js";
37
41
  import { getHighlighterOptions } from "./utils/getHighlighterOptions.js";
38
42
  import { getLineAnnotationName } from "./utils/getLineAnnotationName.js";
39
- import { cleanLastNewline } from "./utils/cleanLastNewline.js";
40
43
  import { processLine } from "./utils/processLine.js";
41
44
  import { createTransformerWithState } from "./utils/createTransformerWithState.js";
42
45
  import { formatCSSVariablePrefix } from "./utils/formatCSSVariablePrefix.js";
@@ -57,9 +60,8 @@ import { setPreNodeProperties } from "./utils/setWrapperNodeProps.js";
57
60
  import { File } from "./components/File.js";
58
61
  import { VirtualizedFile } from "./components/VirtualizedFile.js";
59
62
  import { areDiffTargetsEqual } from "./utils/areDiffTargetsEqual.js";
60
- import { detachString, releaseStringDetachBuffer } from "./utils/detachString.js";
61
- import { parsePatchFiles, processFile, processPatch } from "./utils/parsePatchFiles.js";
62
- import { parseDiffFromFile } from "./utils/parseDiffFromFile.js";
63
+ import { cloneFileDiffMetadata } from "./utils/cloneFileDiffMetadata.js";
64
+ import { hydratePartialDiff } from "./utils/hydratePartialDiff.js";
63
65
  import { ScrollSyncManager } from "./managers/ScrollSyncManager.js";
64
66
  import { areDiffRenderOptionsEqual } from "./utils/areDiffRenderOptionsEqual.js";
65
67
  import { createEmptyRowBuffer } from "./utils/createEmptyRowBuffer.js";
@@ -74,8 +76,8 @@ import { DiffHunksRenderer } from "./renderers/DiffHunksRenderer.js";
74
76
  import { areDiffLineAnnotationsEqual } from "./utils/areDiffLineAnnotationsEqual.js";
75
77
  import { areHunkDataEqual } from "./utils/areHunkDataEqual.js";
76
78
  import { FileDiff } from "./components/FileDiff.js";
77
- import { VirtualizedFileDiff } from "./components/VirtualizedFileDiff.js";
78
- import { CodeView } from "./components/CodeView.js";
79
+ import { VIRTUALIZED_FILE_DIFF_LAYOUT_CHECKPOINT_INTERVAL, VirtualizedFileDiff } from "./components/VirtualizedFileDiff.js";
80
+ import { CODE_VIEW_DIFF_OPTION_KEYS, CODE_VIEW_FILE_OPTION_KEYS, CodeView } from "./components/CodeView.js";
79
81
  import { ShikiStreamTokenizer } from "./shiki-stream/tokenizer.js";
80
82
  import { CodeToTokenTransformStream } from "./shiki-stream/stream.js";
81
83
  import { createSpanFromToken } from "./utils/createSpanNodeFromToken.js";
@@ -103,4 +105,4 @@ import { parseLineType } from "./utils/parseLineType.js";
103
105
  import { setLanguageOverride } from "./utils/setLanguageOverride.js";
104
106
  import { trimPatchContext } from "./utils/trimPatchContext.js";
105
107
  import { codeToHtml, createCssVariablesTheme as createCSSVariablesTheme } from "shiki";
106
- export { ALTERNATE_FILE_NAMES_GIT, AttachedLanguages, AttachedThemes, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_HEADER_SLOT_ID, CodeToTokenTransformStream, CodeView, DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_DEVELOPMENT_BUILD, DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY, DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE, DIFFS_TAG_NAME, DiffHunksRenderer, EMPTY_RENDER_RANGE, EXTENSION_TO_FILE_FORMAT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, File, FileDiff, FileRenderer, FileStream, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, INDEX_LINE_METADATA, InteractionManager, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, RegisteredCustomLanguages, ResizeManager, ResolvedLanguages, ResolvingLanguages, SPLIT_WITH_NEWLINES, SVGSpriteSheet, ScrollSyncManager, ShikiStreamTokenizer, THEME_CSS_ATTRIBUTE, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, UnresolvedFile, VirtualizedFile, VirtualizedFileDiff, Virtualizer, areDiffLineAnnotationsEqual, areDiffRenderOptionsEqual, areDiffTargetsEqual, areFileRenderOptionsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createGutterGap, createGutterItem, createGutterUtilityContentNode, createGutterUtilityElement, createGutterWrapper, createHastElement, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createThemeStyleElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, dequeueRender, detachString, diffAcceptRejectHunk, disposeHighlighter, findCodeElement, formatCSSVariablePrefix, getCustomExtensionsMap, getCustomExtensionsVersion, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, getUnresolvedDiffHunksRendererOptions, hasResolvedLanguages, hasResolvedThemes, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, patchScrollbarGutterSize, pluckInteractionOptions, prefersReducedMotion, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomLanguage, registerCustomTheme, releaseStringDetachBuffer, renderDiffWithHighlighter, renderFileWithHighlighter, replaceCustomExtensions, resolveConflict, resolveLanguage, resolveLanguages, resolveRegion, resolveTheme, resolveThemes, setCustomExtension, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapThemeCSS, wrapUnsafeCSS };
108
+ export { ALTERNATE_FILE_NAMES_GIT, AttachedLanguages, AttachedThemes, CODE_VIEW_DIFF_OPTION_KEYS, CODE_VIEW_FILE_OPTION_KEYS, CODE_VIEW_FOOTER_ATTRIBUTE, CODE_VIEW_HEADER_ATTRIBUTE, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_HEADER_SLOT_ID, CodeToTokenTransformStream, CodeView, DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_DEVELOPMENT_BUILD, DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY, DIFFS_SCROLLBAR_MEASURE_ATTRIBUTE, DIFFS_TAG_NAME, DiffHunksRenderer, EMPTY_RENDER_RANGE, EXTENSION_TO_FILE_FORMAT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, File, FileDiff, FileRenderer, FileStream, GIT_DIFF_FILE_BREAK_REGEX, HEADER_FILENAME_SUFFIX_SLOT_ID, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, INDEX_LINE_METADATA, InteractionManager, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, RegisteredCustomLanguages, ResizeManager, ResolvedLanguages, ResolvingLanguages, SPLIT_WITH_NEWLINES, SVGSpriteSheet, ScrollSyncManager, ShikiStreamTokenizer, THEME_CSS_ATTRIBUTE, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, UnresolvedFile, VIRTUALIZED_FILE_DIFF_LAYOUT_CHECKPOINT_INTERVAL, VirtualizedFile, VirtualizedFileDiff, Virtualizer, areDiffLineAnnotationsEqual, areDiffRenderOptionsEqual, areDiffTargetsEqual, areFileRenderOptionsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, clearRenderQueue, cloneFileDiffMetadata, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createGutterGap, createGutterItem, createGutterUtilityContentNode, createGutterUtilityElement, createGutterWrapper, createHastElement, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createThemeStyleElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, dequeueRender, detachString, diffAcceptRejectHunk, disposeHighlighter, findCodeElement, formatCSSVariablePrefix, getCustomExtensionsMap, getCustomExtensionsVersion, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, getUnresolvedDiffHunksRendererOptions, hasResolvedLanguages, hasResolvedThemes, hydratePartialDiff, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, patchScrollbarGutterSize, pluckInteractionOptions, prefersReducedMotion, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomLanguage, registerCustomTheme, releaseStringDetachBuffer, renderDiffWithHighlighter, renderFileWithHighlighter, replaceCustomExtensions, resolveConflict, resolveLanguage, resolveLanguages, resolveRegion, resolveTheme, resolveThemes, setCustomExtension, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapThemeCSS, wrapUnsafeCSS };
@@ -17,6 +17,8 @@ interface OnDiffLineEnterLeaveProps extends DiffLineEventBaseProps {
17
17
  }
18
18
  interface SelectionWriteOptions {
19
19
  notify?: boolean;
20
+ activeLineSide?: SelectionSide;
21
+ lineNumberOnly?: boolean;
20
22
  }
21
23
  type GetLineIndexUtility = (lineNumber: number, side?: SelectionSide) => [number, number] | undefined;
22
24
  type EventClickProps<TMode extends InteractionManagerMode> = TMode extends 'file' ? OnLineClickProps : OnDiffLineClickProps;
@@ -74,6 +76,9 @@ declare class InteractionManager<TMode extends InteractionManagerMode> {
74
76
  private hasPointerListeners;
75
77
  private hasDocumentPointerListeners;
76
78
  private selectedRange;
79
+ private activeLineHighlightSide;
80
+ private activeLineNumberOnly;
81
+ private editorAttached;
77
82
  private proposedSelectedRange;
78
83
  private renderedSelectionRange;
79
84
  private selectionAnchor;
@@ -84,6 +89,7 @@ declare class InteractionManager<TMode extends InteractionManagerMode> {
84
89
  cleanUp(): void;
85
90
  setup(pre: HTMLPreElement): void;
86
91
  setSelectionDirty(): void;
92
+ setEditorAttached(attached: boolean): void;
87
93
  isSelectionDirty(): boolean;
88
94
  setSelection(range: SelectedLineRange | null, options?: SelectionWriteOptions): void;
89
95
  getSelection(): SelectedLineRange | null;
@@ -133,6 +139,7 @@ declare class InteractionManager<TMode extends InteractionManagerMode> {
133
139
  private clearProposedSelection;
134
140
  private updateSelection;
135
141
  private getIndexesFromSelection;
142
+ private highlightLineNumberOnly;
136
143
  private renderSelection;
137
144
  private notifySelectionCommitted;
138
145
  private notifySelectionChangeDelta;
@@ -1 +1 @@
1
- {"version":3,"file":"InteractionManager.d.ts","names":[],"sources":["../../src/managers/InteractionManager.ts"],"mappings":"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"}
1
+ {"version":3,"file":"InteractionManager.d.ts","names":[],"sources":["../../src/managers/InteractionManager.ts"],"mappings":"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"}
@@ -18,6 +18,9 @@ var InteractionManager = class {
18
18
  hasPointerListeners = false;
19
19
  hasDocumentPointerListeners = false;
20
20
  selectedRange = null;
21
+ activeLineHighlightSide;
22
+ activeLineNumberOnly = false;
23
+ editorAttached = false;
21
24
  proposedSelectedRange;
22
25
  renderedSelectionRange;
23
26
  selectionAnchor;
@@ -82,6 +85,12 @@ var InteractionManager = class {
82
85
  setSelectionDirty() {
83
86
  this.renderedSelectionRange = void 0;
84
87
  }
88
+ setEditorAttached(attached) {
89
+ if (this.editorAttached === attached) return;
90
+ this.editorAttached = attached;
91
+ this.setSelectionDirty();
92
+ this.renderSelection();
93
+ }
85
94
  isSelectionDirty() {
86
95
  return this.renderedSelectionRange === null;
87
96
  }
@@ -90,6 +99,8 @@ var InteractionManager = class {
90
99
  if (!this.isSelectionDirty() && !isRangeChange) return;
91
100
  this.proposedSelectedRange = void 0;
92
101
  this.selectedRange = range;
102
+ this.activeLineHighlightSide = options?.activeLineSide;
103
+ this.activeLineNumberOnly = options?.lineNumberOnly ?? false;
93
104
  this.renderSelection();
94
105
  this.placeUtility();
95
106
  if (isRangeChange && options?.notify !== false) this.notifySelectionCommitted();
@@ -709,6 +720,8 @@ var InteractionManager = class {
709
720
  nextRange = this.buildSelectionRange(anchorLine, currentLine, anchorSide, side);
710
721
  }
711
722
  if (areSelectionsEqual(previousRange ?? void 0, nextRange ?? void 0)) return;
723
+ this.activeLineHighlightSide = void 0;
724
+ this.activeLineNumberOnly = false;
712
725
  if (this.options.controlledSelection === true) this.proposedSelectedRange = nextRange;
713
726
  else {
714
727
  this.selectedRange = nextRange;
@@ -726,6 +739,10 @@ var InteractionManager = class {
726
739
  end: split ? finalIndexes[1] : finalIndexes[0]
727
740
  } : void 0;
728
741
  }
742
+ highlightLineNumberOnly() {
743
+ if (this.activeLineHighlightSide != null) return this.activeLineNumberOnly;
744
+ return this.activeLineNumberOnly || this.editorAttached;
745
+ }
729
746
  renderSelection = () => {
730
747
  if (this.queuedSelectionRender != null) {
731
748
  cancelAnimationFrame(this.queuedSelectionRender);
@@ -754,7 +771,10 @@ var InteractionManager = class {
754
771
  const isSingle = rowRange.start === rowRange.end;
755
772
  const first = Math.min(rowRange.start, rowRange.end);
756
773
  const last = Math.max(rowRange.start, rowRange.end);
774
+ const numberOnly = this.highlightLineNumberOnly();
757
775
  for (const code of codeElements) {
776
+ const side = this.activeLineHighlightSide;
777
+ if (side != null && (side === "additions" && code.hasAttribute("data-deletions") || side === "deletions" && code.hasAttribute("data-additions"))) continue;
758
778
  const [gutter, content] = code.children;
759
779
  const len = content.children.length;
760
780
  if (len !== gutter.children.length) throw new Error("InteractionManager.renderSelection: gutter and content children dont match, something is wrong");
@@ -766,8 +786,9 @@ var InteractionManager = class {
766
786
  if ((lineIndex ?? 0) > last) break;
767
787
  if (lineIndex == null || lineIndex < first) continue;
768
788
  let attributeValue = isSingle ? "single" : lineIndex === first ? "first" : lineIndex === last ? "last" : "";
769
- contentElement.setAttribute("data-selected-line", attributeValue);
770
789
  gutterElement.setAttribute("data-selected-line", attributeValue);
790
+ if (numberOnly) continue;
791
+ contentElement.setAttribute("data-selected-line", attributeValue);
771
792
  if (gutterElement.nextSibling instanceof HTMLElement && contentElement.nextSibling instanceof HTMLElement && (contentElement.nextSibling.hasAttribute("data-line-annotation") || contentElement.nextSibling.hasAttribute("data-merge-conflict-actions"))) {
772
793
  if (isSingle) {
773
794
  attributeValue = "last";