@openclaw/diffs 2026.8.1-beta.3 → 2026.8.2

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 (620) hide show
  1. package/dist/assets/viewer-runtime.js +129 -156
  2. package/dist/{browser.runtime-_hkQDewM.js → browser.runtime-DTKAejqd.js} +1 -1
  3. package/dist/index.js +18 -16
  4. package/dist/{viewer-assets-DKR8WLAI.js → viewer-assets-D3qrnaxI.js} +11 -23
  5. package/node_modules/@pierre/diffs/README.md +9 -0
  6. package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts +94 -7
  7. package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts.map +1 -1
  8. package/node_modules/@pierre/diffs/dist/components/CodeView.js +333 -47
  9. package/node_modules/@pierre/diffs/dist/components/CodeView.js.map +1 -1
  10. package/node_modules/@pierre/diffs/dist/components/File.d.ts +22 -4
  11. package/node_modules/@pierre/diffs/dist/components/File.d.ts.map +1 -1
  12. package/node_modules/@pierre/diffs/dist/components/File.js +143 -23
  13. package/node_modules/@pierre/diffs/dist/components/File.js.map +1 -1
  14. package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts +83 -19
  15. package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts.map +1 -1
  16. package/node_modules/@pierre/diffs/dist/components/FileDiff.js +461 -46
  17. package/node_modules/@pierre/diffs/dist/components/FileDiff.js.map +1 -1
  18. package/node_modules/@pierre/diffs/dist/components/FileStream.d.ts.map +1 -1
  19. package/node_modules/@pierre/diffs/dist/components/FileStream.js +2 -1
  20. package/node_modules/@pierre/diffs/dist/components/FileStream.js.map +1 -1
  21. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts +2 -2
  22. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts.map +1 -1
  23. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js +9 -4
  24. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js.map +1 -1
  25. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts +7 -3
  26. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts.map +1 -1
  27. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js +87 -60
  28. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js.map +1 -1
  29. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts +30 -5
  30. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  31. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js +277 -56
  32. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js.map +1 -1
  33. package/node_modules/@pierre/diffs/dist/components/Virtualizer.d.ts +17 -3
  34. package/node_modules/@pierre/diffs/dist/components/Virtualizer.d.ts.map +1 -1
  35. package/node_modules/@pierre/diffs/dist/components/Virtualizer.js +44 -5
  36. package/node_modules/@pierre/diffs/dist/components/Virtualizer.js.map +1 -1
  37. package/node_modules/@pierre/diffs/dist/constants.d.ts +4 -1
  38. package/node_modules/@pierre/diffs/dist/constants.d.ts.map +1 -1
  39. package/node_modules/@pierre/diffs/dist/constants.js +4 -1
  40. package/node_modules/@pierre/diffs/dist/constants.js.map +1 -1
  41. package/node_modules/@pierre/diffs/dist/edit/index.d.ts +6 -0
  42. package/node_modules/@pierre/diffs/dist/edit/index.js +3 -0
  43. package/node_modules/@pierre/diffs/dist/editor/command.d.ts +15 -0
  44. package/node_modules/@pierre/diffs/dist/editor/command.d.ts.map +1 -0
  45. package/node_modules/@pierre/diffs/dist/editor/command.js +128 -0
  46. package/node_modules/@pierre/diffs/dist/editor/command.js.map +1 -0
  47. package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts +76 -0
  48. package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts.map +1 -0
  49. package/node_modules/@pierre/diffs/dist/editor/editStack.js +259 -0
  50. package/node_modules/@pierre/diffs/dist/editor/editStack.js.map +1 -0
  51. package/node_modules/@pierre/diffs/dist/editor/editor.d.ts +118 -0
  52. package/node_modules/@pierre/diffs/dist/editor/editor.d.ts.map +1 -0
  53. package/node_modules/@pierre/diffs/dist/editor/editor.js +2880 -0
  54. package/node_modules/@pierre/diffs/dist/editor/editor.js.map +1 -0
  55. package/node_modules/@pierre/diffs/dist/editor/editor2.js +6 -0
  56. package/node_modules/@pierre/diffs/dist/editor/editor2.js.map +1 -0
  57. package/node_modules/@pierre/diffs/dist/editor/languages.d.ts +26 -0
  58. package/node_modules/@pierre/diffs/dist/editor/languages.d.ts.map +1 -0
  59. package/node_modules/@pierre/diffs/dist/editor/languages.js +363 -0
  60. package/node_modules/@pierre/diffs/dist/editor/languages.js.map +1 -0
  61. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts +9 -0
  62. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts.map +1 -0
  63. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js +212 -0
  64. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js.map +1 -0
  65. package/node_modules/@pierre/diffs/dist/editor/marker.d.ts +38 -0
  66. package/node_modules/@pierre/diffs/dist/editor/marker.d.ts.map +1 -0
  67. package/node_modules/@pierre/diffs/dist/editor/marker.js +245 -0
  68. package/node_modules/@pierre/diffs/dist/editor/marker.js.map +1 -0
  69. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts +9 -0
  70. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts.map +1 -0
  71. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.js +138 -0
  72. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.js.map +1 -0
  73. package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts +40 -0
  74. package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts.map +1 -0
  75. package/node_modules/@pierre/diffs/dist/editor/pieceTable.js +706 -0
  76. package/node_modules/@pierre/diffs/dist/editor/pieceTable.js.map +1 -0
  77. package/node_modules/@pierre/diffs/dist/editor/platform.d.ts +11 -0
  78. package/node_modules/@pierre/diffs/dist/editor/platform.d.ts.map +1 -0
  79. package/node_modules/@pierre/diffs/dist/editor/platform.js +31 -0
  80. package/node_modules/@pierre/diffs/dist/editor/platform.js.map +1 -0
  81. package/node_modules/@pierre/diffs/dist/editor/popover.d.ts +65 -0
  82. package/node_modules/@pierre/diffs/dist/editor/popover.d.ts.map +1 -0
  83. package/node_modules/@pierre/diffs/dist/editor/popover.js +191 -0
  84. package/node_modules/@pierre/diffs/dist/editor/popover.js.map +1 -0
  85. package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts +41 -0
  86. package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts.map +1 -0
  87. package/node_modules/@pierre/diffs/dist/editor/searchPanel.js +318 -0
  88. package/node_modules/@pierre/diffs/dist/editor/searchPanel.js.map +1 -0
  89. package/node_modules/@pierre/diffs/dist/editor/selection.d.ts +211 -0
  90. package/node_modules/@pierre/diffs/dist/editor/selection.d.ts.map +1 -0
  91. package/node_modules/@pierre/diffs/dist/editor/selection.js +1626 -0
  92. package/node_modules/@pierre/diffs/dist/editor/selection.js.map +1 -0
  93. package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts +47 -0
  94. package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts.map +1 -0
  95. package/node_modules/@pierre/diffs/dist/editor/selectionAction.js +66 -0
  96. package/node_modules/@pierre/diffs/dist/editor/selectionAction.js.map +1 -0
  97. package/node_modules/@pierre/diffs/dist/editor/sprite.d.ts +8 -0
  98. package/node_modules/@pierre/diffs/dist/editor/sprite.d.ts.map +1 -0
  99. package/node_modules/@pierre/diffs/dist/editor/sprite.js +45 -0
  100. package/node_modules/@pierre/diffs/dist/editor/sprite.js.map +1 -0
  101. package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts +15 -0
  102. package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts.map +1 -0
  103. package/node_modules/@pierre/diffs/dist/editor/stateStorage.js +65 -0
  104. package/node_modules/@pierre/diffs/dist/editor/stateStorage.js.map +1 -0
  105. package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts +67 -0
  106. package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts.map +1 -0
  107. package/node_modules/@pierre/diffs/dist/editor/textDocument.js +278 -0
  108. package/node_modules/@pierre/diffs/dist/editor/textDocument.js.map +1 -0
  109. package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts +61 -0
  110. package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts.map +1 -0
  111. package/node_modules/@pierre/diffs/dist/editor/textMeasure.js +209 -0
  112. package/node_modules/@pierre/diffs/dist/editor/textMeasure.js.map +1 -0
  113. package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts +41 -0
  114. package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts.map +1 -0
  115. package/node_modules/@pierre/diffs/dist/editor/tokenizer.js +596 -0
  116. package/node_modules/@pierre/diffs/dist/editor/tokenizer.js.map +1 -0
  117. package/node_modules/@pierre/diffs/dist/editor/utils.d.ts +22 -0
  118. package/node_modules/@pierre/diffs/dist/editor/utils.d.ts.map +1 -0
  119. package/node_modules/@pierre/diffs/dist/editor/utils.js +78 -0
  120. package/node_modules/@pierre/diffs/dist/editor/utils.js.map +1 -0
  121. package/node_modules/@pierre/diffs/dist/index.d.ts +12 -9
  122. package/node_modules/@pierre/diffs/dist/index.js +13 -10
  123. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts +20 -2
  124. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts.map +1 -1
  125. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js +155 -79
  126. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js.map +1 -1
  127. package/node_modules/@pierre/diffs/dist/managers/ResizeManager.d.ts +10 -2
  128. package/node_modules/@pierre/diffs/dist/managers/ResizeManager.d.ts.map +1 -1
  129. package/node_modules/@pierre/diffs/dist/managers/ResizeManager.js +33 -13
  130. package/node_modules/@pierre/diffs/dist/managers/ResizeManager.js.map +1 -1
  131. package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.d.ts +2 -1
  132. package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
  133. package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js +7 -3
  134. package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js.map +1 -1
  135. package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts +29 -3
  136. package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts.map +1 -1
  137. package/node_modules/@pierre/diffs/dist/react/CodeView.js +111 -30
  138. package/node_modules/@pierre/diffs/dist/react/CodeView.js.map +1 -1
  139. package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts +20 -0
  140. package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts.map +1 -0
  141. package/node_modules/@pierre/diffs/dist/react/EditContext.js +27 -0
  142. package/node_modules/@pierre/diffs/dist/react/EditContext.js.map +1 -0
  143. package/node_modules/@pierre/diffs/dist/react/File.d.ts +4 -1
  144. package/node_modules/@pierre/diffs/dist/react/File.d.ts.map +1 -1
  145. package/node_modules/@pierre/diffs/dist/react/File.js +5 -2
  146. package/node_modules/@pierre/diffs/dist/react/File.js.map +1 -1
  147. package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts +4 -1
  148. package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts.map +1 -1
  149. package/node_modules/@pierre/diffs/dist/react/FileDiff.js +5 -2
  150. package/node_modules/@pierre/diffs/dist/react/FileDiff.js.map +1 -1
  151. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts +7 -5
  152. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts.map +1 -1
  153. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js +5 -2
  154. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js.map +1 -1
  155. package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts +4 -1
  156. package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts.map +1 -1
  157. package/node_modules/@pierre/diffs/dist/react/PatchDiff.js +5 -2
  158. package/node_modules/@pierre/diffs/dist/react/PatchDiff.js.map +1 -1
  159. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts +2 -1
  160. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts.map +1 -1
  161. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js +2 -1
  162. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js.map +1 -1
  163. package/node_modules/@pierre/diffs/dist/react/index.d.ts +4 -3
  164. package/node_modules/@pierre/diffs/dist/react/index.js +3 -2
  165. package/node_modules/@pierre/diffs/dist/react/types.d.ts +11 -0
  166. package/node_modules/@pierre/diffs/dist/react/types.d.ts.map +1 -1
  167. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts +2 -0
  168. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  169. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js +16 -8
  170. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js.map +1 -1
  171. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts +2 -0
  172. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  173. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js +16 -8
  174. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js.map +1 -1
  175. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts +6 -2
  176. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  177. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js +21 -6
  178. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js.map +1 -1
  179. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts +7 -2
  180. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts.map +1 -1
  181. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js +21 -6
  182. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js.map +1 -1
  183. package/node_modules/@pierre/diffs/dist/react/utils/useUnresolvedFileInstance.js +4 -4
  184. package/node_modules/@pierre/diffs/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
  185. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts +47 -2
  186. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  187. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +361 -37
  188. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js.map +1 -1
  189. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts +26 -1
  190. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts.map +1 -1
  191. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +240 -55
  192. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js.map +1 -1
  193. package/node_modules/@pierre/diffs/dist/ssr/index.d.ts +2 -2
  194. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts +11 -10
  195. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts.map +1 -1
  196. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js +17 -7
  197. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js.map +1 -1
  198. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.d.ts.map +1 -1
  199. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.js +2 -0
  200. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.js.map +1 -1
  201. package/node_modules/@pierre/diffs/dist/style.js +1 -1
  202. package/node_modules/@pierre/diffs/dist/types.d.ts +336 -5
  203. package/node_modules/@pierre/diffs/dist/types.d.ts.map +1 -1
  204. package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.d.ts +20 -0
  205. package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.d.ts.map +1 -0
  206. package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.js +29 -0
  207. package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.js.map +1 -0
  208. package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.d.ts +5 -0
  209. package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.d.ts.map +1 -0
  210. package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.js +11 -0
  211. package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.js.map +1 -0
  212. package/node_modules/@pierre/diffs/dist/utils/areHunkDataEqual.js +1 -1
  213. package/node_modules/@pierre/diffs/dist/utils/areHunkDataEqual.js.map +1 -1
  214. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts +2 -2
  215. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  216. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.js +6 -1
  217. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  218. package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.d.ts +5 -0
  219. package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.d.ts.map +1 -0
  220. package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.js +15 -0
  221. package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.js.map +1 -0
  222. package/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js +6 -1
  223. package/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js.map +1 -1
  224. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts +7 -0
  225. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -0
  226. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js +16 -0
  227. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js.map +1 -0
  228. package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.d.ts +3 -1
  229. package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
  230. package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.js +8 -1
  231. package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
  232. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.d.ts +21 -0
  233. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.d.ts.map +1 -0
  234. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.js +80 -0
  235. package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.js.map +1 -0
  236. package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.d.ts +5 -0
  237. package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.d.ts.map +1 -0
  238. package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.js +19 -0
  239. package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.js.map +1 -0
  240. package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.d.ts.map +1 -1
  241. package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js +5 -1
  242. package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js.map +1 -1
  243. package/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js +9 -0
  244. package/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js.map +1 -1
  245. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts +66 -0
  246. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts.map +1 -0
  247. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js +437 -0
  248. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js.map +1 -0
  249. package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.d.ts +14 -0
  250. package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.d.ts.map +1 -0
  251. package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.js +24 -0
  252. package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.js.map +1 -0
  253. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
  254. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js +3 -1
  255. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  256. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts.map +1 -1
  257. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js +2 -1
  258. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js.map +1 -1
  259. package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
  260. package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js +2 -0
  261. package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js.map +1 -1
  262. package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.d.ts +7 -0
  263. package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.d.ts.map +1 -0
  264. package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.js +12 -0
  265. package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.js.map +1 -0
  266. package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
  267. package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js +2 -1
  268. package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js.map +1 -1
  269. package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.d.ts +20 -0
  270. package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.d.ts.map +1 -0
  271. package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.js +34 -0
  272. package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.js.map +1 -0
  273. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts +10 -0
  274. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts.map +1 -0
  275. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js +141 -0
  276. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js.map +1 -0
  277. package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.d.ts +5 -0
  278. package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.d.ts.map +1 -0
  279. package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.js +12 -0
  280. package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.js.map +1 -0
  281. package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.d.ts.map +1 -1
  282. package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js +20 -15
  283. package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js.map +1 -1
  284. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts +1 -1
  285. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  286. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js +26 -5
  287. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js.map +1 -1
  288. package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
  289. package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.js +9 -6
  290. package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
  291. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts.map +1 -1
  292. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +6 -3
  293. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js.map +1 -1
  294. package/node_modules/@pierre/diffs/dist/utils/platform.d.ts +14 -0
  295. package/node_modules/@pierre/diffs/dist/utils/platform.d.ts.map +1 -0
  296. package/node_modules/@pierre/diffs/dist/utils/platform.js +32 -0
  297. package/node_modules/@pierre/diffs/dist/utils/platform.js.map +1 -0
  298. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts +33 -0
  299. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts.map +1 -0
  300. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js +148 -0
  301. package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js.map +1 -0
  302. package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js +1 -1
  303. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  304. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js +5 -14
  305. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js.map +1 -1
  306. package/node_modules/@pierre/diffs/dist/utils/resolveRegion.d.ts.map +1 -1
  307. package/node_modules/@pierre/diffs/dist/utils/resolveRegion.js +18 -2
  308. package/node_modules/@pierre/diffs/dist/utils/resolveRegion.js.map +1 -1
  309. package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.d.ts +7 -3
  310. package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -1
  311. package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.js +1 -1
  312. package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.js.map +1 -1
  313. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.d.ts +24 -0
  314. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.d.ts.map +1 -0
  315. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.js +236 -0
  316. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.js.map +1 -0
  317. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.d.ts +43 -2
  318. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.d.ts.map +1 -1
  319. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js +107 -5
  320. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js.map +1 -1
  321. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts +9 -3
  322. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  323. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js +86 -18
  324. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js.map +1 -1
  325. package/node_modules/@pierre/diffs/dist/worker/index.d.ts +2 -2
  326. package/node_modules/@pierre/diffs/dist/worker/types.d.ts +11 -1
  327. package/node_modules/@pierre/diffs/dist/worker/types.d.ts.map +1 -1
  328. package/node_modules/@pierre/diffs/dist/worker/wasm-B9ZqxnKj.js.map +1 -1
  329. package/node_modules/@pierre/diffs/dist/worker/worker-portable.js +116 -95
  330. package/node_modules/@pierre/diffs/dist/worker/worker-portable.js.map +1 -1
  331. package/node_modules/@pierre/diffs/dist/worker/worker.js +102 -80
  332. package/node_modules/@pierre/diffs/dist/worker/worker.js.map +1 -1
  333. package/node_modules/@pierre/diffs/node_modules/@pierre/theme/LICENSE +189 -21
  334. package/node_modules/@pierre/diffs/node_modules/@pierre/theme/NOTICE.md +32 -0
  335. package/node_modules/@pierre/diffs/node_modules/@pierre/theme/package.json +3 -2
  336. package/node_modules/@pierre/diffs/node_modules/@pierre/theming/LICENSE.md +189 -0
  337. package/node_modules/@pierre/diffs/node_modules/@pierre/theming/README.md +9 -0
  338. package/node_modules/@pierre/diffs/node_modules/@pierre/theming/package.json +5 -5
  339. package/node_modules/@pierre/diffs/node_modules/@shikijs/core/dist/index.d.mts +0 -1
  340. package/node_modules/@pierre/diffs/node_modules/@shikijs/core/dist/index.mjs +22 -3
  341. package/node_modules/@pierre/diffs/node_modules/@shikijs/core/package.json +4 -4
  342. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/{engine-compile-CMRQUZTL.d.mts → engine-compile-Bdn9ihA2.d.mts} +0 -1
  343. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-compile.d.mts +1 -1
  344. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-raw.d.mts +0 -1
  345. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/index.d.mts +1 -1
  346. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/package.json +2 -2
  347. package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-oniguruma/package.json +2 -2
  348. package/node_modules/@pierre/diffs/node_modules/@shikijs/primitive/dist/index.d.mts +0 -1
  349. package/node_modules/@pierre/diffs/node_modules/@shikijs/primitive/package.json +3 -3
  350. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-frappe.mjs +1 -1
  351. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-latte.mjs +1 -1
  352. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-macchiato.mjs +1 -1
  353. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-mocha.mjs +1 -1
  354. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/kanagawa-dragon.mjs +1 -1
  355. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/kanagawa-lotus.mjs +1 -1
  356. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/kanagawa-wave.mjs +1 -1
  357. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/monokai.mjs +1 -1
  358. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/red.mjs +1 -1
  359. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/rose-pine-dawn.mjs +1 -1
  360. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/rose-pine-moon.mjs +1 -1
  361. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/rose-pine.mjs +1 -1
  362. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/solarized-dark.mjs +1 -1
  363. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/solarized-light.mjs +1 -1
  364. package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/package.json +3 -3
  365. package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/dist/index.d.mts +0 -1
  366. package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/dist/index.mjs +2 -1
  367. package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/package.json +3 -3
  368. package/node_modules/@pierre/diffs/node_modules/@shikijs/types/dist/index.d.mts +0 -1
  369. package/node_modules/@pierre/diffs/node_modules/@shikijs/types/package.json +2 -2
  370. package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-full.d.mts +4 -7
  371. package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-full.mjs +3 -19
  372. package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-web.d.mts +5 -6
  373. package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-web.mjs +7 -0
  374. package/node_modules/@pierre/diffs/node_modules/shiki/dist/core-CaxrMD1A.d.mts +1 -0
  375. package/node_modules/@pierre/diffs/node_modules/shiki/dist/core.d.mts +1 -0
  376. package/node_modules/@pierre/diffs/node_modules/shiki/dist/index.d.mts +3 -9
  377. package/node_modules/@pierre/diffs/node_modules/shiki/dist/index.mjs +3 -24
  378. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/actionscript.d.mts +1 -0
  379. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/actionscript.mjs +1 -0
  380. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk.d.mts +1 -0
  381. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk.mjs +1 -0
  382. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk1.d.mts +1 -0
  383. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk1.mjs +1 -0
  384. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk2.d.mts +1 -0
  385. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk2.mjs +1 -0
  386. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/as3.d.mts +1 -0
  387. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/as3.mjs +1 -0
  388. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chapel.d.mts +1 -0
  389. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chapel.mjs +1 -0
  390. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chpl.d.mts +1 -0
  391. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chpl.mjs +1 -0
  392. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/justfile.d.mts +1 -0
  393. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/justfile.mjs +1 -0
  394. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/nsis.d.mts +1 -0
  395. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/nsis.mjs +1 -0
  396. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/org.d.mts +1 -0
  397. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/org.mjs +1 -0
  398. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/pwsh.d.mts +1 -0
  399. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/pwsh.mjs +1 -0
  400. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/rbs.d.mts +1 -0
  401. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/rbs.mjs +1 -0
  402. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ruby-signature.d.mts +1 -0
  403. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ruby-signature.mjs +1 -0
  404. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/smithy.d.mts +1 -0
  405. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/smithy.mjs +1 -0
  406. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-B38xGbib.d.mts +1 -0
  407. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-bundle-full-B4n9xYHw.d.mts +13 -0
  408. package/node_modules/@pierre/diffs/node_modules/shiki/dist/{langs-bundle-full-4noeO3oH.mjs → langs-bundle-full-xQVO1Cek.mjs} +48 -5
  409. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs.d.mts +2 -1
  410. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs.mjs +1 -1
  411. package/node_modules/@pierre/diffs/node_modules/shiki/dist/{themes-NeZbxnKu.d.mts → themes-BKdFAJ1v.d.mts} +0 -1
  412. package/node_modules/@pierre/diffs/node_modules/shiki/dist/themes.d.mts +1 -1
  413. package/node_modules/@pierre/diffs/node_modules/shiki/dist/types.d.mts +3 -3
  414. package/node_modules/@pierre/diffs/node_modules/shiki/package.json +10 -10
  415. package/node_modules/@pierre/diffs/package.json +13 -4
  416. package/node_modules/@shikijs/langs/dist/actionscript-3.mjs +1 -1
  417. package/node_modules/@shikijs/langs/dist/actionscript.d.mts +3 -0
  418. package/node_modules/@shikijs/langs/dist/actionscript.mjs +2 -0
  419. package/node_modules/@shikijs/langs/dist/ahk.d.mts +3 -0
  420. package/node_modules/@shikijs/langs/dist/ahk.mjs +5 -0
  421. package/node_modules/@shikijs/langs/dist/ahk1.d.mts +3 -0
  422. package/node_modules/@shikijs/langs/dist/ahk1.mjs +2 -0
  423. package/node_modules/@shikijs/langs/dist/ahk2.d.mts +3 -0
  424. package/node_modules/@shikijs/langs/dist/ahk2.mjs +5 -0
  425. package/node_modules/@shikijs/langs/dist/apex.mjs +1 -1
  426. package/node_modules/@shikijs/langs/dist/as3.d.mts +3 -0
  427. package/node_modules/@shikijs/langs/dist/as3.mjs +2 -0
  428. package/node_modules/@shikijs/langs/dist/asciidoc.mjs +1 -1
  429. package/node_modules/@shikijs/langs/dist/bat.mjs +1 -1
  430. package/node_modules/@shikijs/langs/dist/bird2.mjs +1 -1
  431. package/node_modules/@shikijs/langs/dist/bsl.mjs +1 -1
  432. package/node_modules/@shikijs/langs/dist/c3.mjs +1 -1
  433. package/node_modules/@shikijs/langs/dist/chapel.d.mts +3 -0
  434. package/node_modules/@shikijs/langs/dist/chapel.mjs +8 -0
  435. package/node_modules/@shikijs/langs/dist/chpl.d.mts +3 -0
  436. package/node_modules/@shikijs/langs/dist/chpl.mjs +2 -0
  437. package/node_modules/@shikijs/langs/dist/clarity.mjs +1 -1
  438. package/node_modules/@shikijs/langs/dist/cmd.mjs +2 -2
  439. package/node_modules/@shikijs/langs/dist/coq.mjs +1 -1
  440. package/node_modules/@shikijs/langs/dist/cpp-macro.mjs +1 -3
  441. package/node_modules/@shikijs/langs/dist/cpp.mjs +1 -3
  442. package/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +1 -1
  443. package/node_modules/@shikijs/langs/dist/gdscript.mjs +1 -1
  444. package/node_modules/@shikijs/langs/dist/hack.mjs +1 -1
  445. package/node_modules/@shikijs/langs/dist/haxe.mjs +1 -1
  446. package/node_modules/@shikijs/langs/dist/hxml.mjs +1 -1
  447. package/node_modules/@shikijs/langs/dist/index.mjs +14 -0
  448. package/node_modules/@shikijs/langs/dist/just.mjs +1 -1
  449. package/node_modules/@shikijs/langs/dist/justfile.d.mts +3 -0
  450. package/node_modules/@shikijs/langs/dist/justfile.mjs +2 -0
  451. package/node_modules/@shikijs/langs/dist/llvm.mjs +1 -1
  452. package/node_modules/@shikijs/langs/dist/luau.mjs +1 -1
  453. package/node_modules/@shikijs/langs/dist/mdc.mjs +1 -1
  454. package/node_modules/@shikijs/langs/dist/mermaid.mjs +1 -1
  455. package/node_modules/@shikijs/langs/dist/mojo.mjs +1 -1
  456. package/node_modules/@shikijs/langs/dist/moonbit.mjs +1 -1
  457. package/node_modules/@shikijs/langs/dist/move.mjs +1 -1
  458. package/node_modules/@shikijs/langs/dist/nsis.d.mts +3 -0
  459. package/node_modules/@shikijs/langs/dist/nsis.mjs +5 -0
  460. package/node_modules/@shikijs/langs/dist/nushell.mjs +1 -1
  461. package/node_modules/@shikijs/langs/dist/org.d.mts +3 -0
  462. package/node_modules/@shikijs/langs/dist/org.mjs +100 -0
  463. package/node_modules/@shikijs/langs/dist/powershell.mjs +1 -1
  464. package/node_modules/@shikijs/langs/dist/prisma.mjs +1 -1
  465. package/node_modules/@shikijs/langs/dist/pwsh.d.mts +3 -0
  466. package/node_modules/@shikijs/langs/dist/pwsh.mjs +2 -0
  467. package/node_modules/@shikijs/langs/dist/r.mjs +1 -1
  468. package/node_modules/@shikijs/langs/dist/rbs.d.mts +3 -0
  469. package/node_modules/@shikijs/langs/dist/rbs.mjs +5 -0
  470. package/node_modules/@shikijs/langs/dist/ruby-signature.d.mts +3 -0
  471. package/node_modules/@shikijs/langs/dist/ruby-signature.mjs +2 -0
  472. package/node_modules/@shikijs/langs/dist/scala.mjs +1 -1
  473. package/node_modules/@shikijs/langs/dist/smalltalk.mjs +1 -1
  474. package/node_modules/@shikijs/langs/dist/smithy.d.mts +3 -0
  475. package/node_modules/@shikijs/langs/dist/smithy.mjs +5 -0
  476. package/node_modules/@shikijs/langs/dist/solidity.mjs +1 -1
  477. package/node_modules/@shikijs/langs/dist/surrealql.mjs +1 -1
  478. package/node_modules/@shikijs/langs/dist/swift.mjs +1 -1
  479. package/node_modules/@shikijs/langs/dist/system-verilog.mjs +1 -1
  480. package/node_modules/@shikijs/langs/dist/twig.mjs +1 -1
  481. package/node_modules/@shikijs/langs/dist/typst.mjs +116 -1
  482. package/node_modules/@shikijs/langs/dist/v.mjs +1 -1
  483. package/node_modules/@shikijs/langs/dist/vb.mjs +1 -1
  484. package/node_modules/@shikijs/langs/dist/verilog.mjs +1 -1
  485. package/node_modules/@shikijs/langs/dist/vue.mjs +1 -1
  486. package/node_modules/@shikijs/langs/node_modules/@shikijs/types/dist/index.d.mts +0 -1
  487. package/node_modules/@shikijs/langs/node_modules/@shikijs/types/package.json +2 -2
  488. package/node_modules/@shikijs/langs/package.json +18 -4
  489. package/node_modules/typebox/build/format/date.d.mts +1 -1
  490. package/node_modules/typebox/build/format/date.mjs +1 -1
  491. package/node_modules/typebox/build/format/date_time.d.mts +2 -2
  492. package/node_modules/typebox/build/format/date_time.mjs +3 -3
  493. package/node_modules/typebox/build/format/email.d.mts +1 -1
  494. package/node_modules/typebox/build/format/email.mjs +2 -2
  495. package/node_modules/typebox/build/format/hostname.mjs +2 -10
  496. package/node_modules/typebox/build/format/idn_email.d.mts +1 -1
  497. package/node_modules/typebox/build/format/idn_email.mjs +3 -3
  498. package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -0
  499. package/node_modules/typebox/build/format/idn_hostname.mjs +3 -11
  500. package/node_modules/typebox/build/format/idna/format/bidi.d.mts +3 -0
  501. package/node_modules/typebox/build/format/idna/format/bidi.mjs +98 -0
  502. package/node_modules/typebox/build/format/idna/format/puny.d.mts +3 -0
  503. package/node_modules/typebox/build/format/idna/format/puny.mjs +144 -0
  504. package/node_modules/typebox/build/format/idna/hostname.d.mts +1 -0
  505. package/node_modules/typebox/build/format/idna/hostname.mjs +16 -0
  506. package/node_modules/typebox/build/format/idna/idn-hostname.d.mts +1 -0
  507. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +41 -0
  508. package/node_modules/typebox/build/format/idna/index.d.mts +2 -0
  509. package/node_modules/typebox/build/format/idna/index.mjs +2 -0
  510. package/node_modules/typebox/build/format/idna/label/ascii.d.mts +1 -0
  511. package/node_modules/typebox/build/format/idna/label/ascii.mjs +9 -0
  512. package/node_modules/typebox/build/format/idna/label/puny.d.mts +1 -0
  513. package/node_modules/typebox/build/format/idna/label/puny.mjs +28 -0
  514. package/node_modules/typebox/build/format/idna/label/unicode.d.mts +1 -0
  515. package/node_modules/typebox/build/format/idna/label/unicode.mjs +106 -0
  516. package/node_modules/typebox/build/format/idna/pattern/pattern.d.mts +30 -0
  517. package/node_modules/typebox/build/format/idna/pattern/pattern.mjs +70 -0
  518. package/node_modules/typebox/build/format/ipv4.d.mts +0 -1
  519. package/node_modules/typebox/build/format/ipv4.mjs +2 -32
  520. package/node_modules/typebox/build/format/ipv6.mjs +2 -61
  521. package/node_modules/typebox/build/format/iri.d.mts +2 -2
  522. package/node_modules/typebox/build/format/iri.mjs +26 -8
  523. package/node_modules/typebox/build/format/iri_reference.d.mts +2 -2
  524. package/node_modules/typebox/build/format/iri_reference.mjs +9 -55
  525. package/node_modules/typebox/build/format/regex.d.mts +1 -2
  526. package/node_modules/typebox/build/format/regex.mjs +2 -6
  527. package/node_modules/typebox/build/format/time.d.mts +2 -2
  528. package/node_modules/typebox/build/format/time.mjs +19 -14
  529. package/node_modules/typebox/build/format/uri.d.mts +1 -1
  530. package/node_modules/typebox/build/format/uri.mjs +3 -130
  531. package/node_modules/typebox/build/format/uri_reference.d.mts +1 -1
  532. package/node_modules/typebox/build/format/uri_reference.mjs +2 -3
  533. package/node_modules/typebox/build/format/uri_template.d.mts +2 -3
  534. package/node_modules/typebox/build/format/uri_template.mjs +4 -5
  535. package/node_modules/typebox/build/format/url.d.mts +3 -3
  536. package/node_modules/typebox/build/format/url.mjs +4 -5
  537. package/node_modules/typebox/build/guard/emit.d.mts +3 -1
  538. package/node_modules/typebox/build/guard/emit.mjs +12 -5
  539. package/node_modules/typebox/build/guard/guard.d.mts +8 -2
  540. package/node_modules/typebox/build/guard/guard.mjs +25 -4
  541. package/node_modules/typebox/build/guard/string.d.mts +2 -2
  542. package/node_modules/typebox/build/guard/string.mjs +7 -7
  543. package/node_modules/typebox/build/schema/engine/_context.mjs +3 -3
  544. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -2
  545. package/node_modules/typebox/build/schema/engine/_regexp.d.mts +2 -0
  546. package/node_modules/typebox/build/schema/engine/_regexp.mjs +4 -0
  547. package/node_modules/typebox/build/schema/engine/_stack.mjs +12 -13
  548. package/node_modules/typebox/build/schema/engine/additionalItems.mjs +17 -7
  549. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +4 -3
  550. package/node_modules/typebox/build/schema/engine/contains.mjs +18 -6
  551. package/node_modules/typebox/build/schema/engine/enum.mjs +1 -1
  552. package/node_modules/typebox/build/schema/engine/items.mjs +26 -6
  553. package/node_modules/typebox/build/schema/engine/maxContains.mjs +3 -3
  554. package/node_modules/typebox/build/schema/engine/minContains.mjs +14 -4
  555. package/node_modules/typebox/build/schema/engine/not.mjs +4 -2
  556. package/node_modules/typebox/build/schema/engine/oneOf.mjs +7 -6
  557. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -2
  558. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +4 -3
  559. package/node_modules/typebox/build/schema/engine/ref.mjs +1 -7
  560. package/node_modules/typebox/build/schema/engine/schema.mjs +13 -4
  561. package/node_modules/typebox/build/schema/engine/type.mjs +1 -1
  562. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +4 -1
  563. package/node_modules/typebox/build/schema/resolve/resolve.mjs +202 -1
  564. package/node_modules/typebox/build/schema/static/propertyNames.d.mts +5 -0
  565. package/node_modules/typebox/build/schema/static/propertyNames.mjs +3 -0
  566. package/node_modules/typebox/build/schema/static/schema.d.mts +3 -0
  567. package/node_modules/typebox/build/schema/types/index.d.mts +0 -2
  568. package/node_modules/typebox/build/schema/types/index.mjs +0 -2
  569. package/node_modules/typebox/build/system/memory/clone.mjs +14 -11
  570. package/node_modules/typebox/build/system/memory/discard.mjs +6 -5
  571. package/node_modules/typebox/build/system/settings/settings.d.mts +9 -0
  572. package/node_modules/typebox/build/system/settings/settings.mjs +2 -0
  573. package/node_modules/typebox/build/type/engine/call/distribute_arguments.d.mts +6 -1
  574. package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +16 -3
  575. package/node_modules/typebox/build/type/engine/call/instantiate.mjs +34 -4
  576. package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +5 -5
  577. package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +20 -26
  578. package/node_modules/typebox/build/type/engine/evaluate/compare.d.mts +6 -10
  579. package/node_modules/typebox/build/type/engine/evaluate/compare.mjs +9 -13
  580. package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +7 -4
  581. package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +12 -19
  582. package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +4 -20
  583. package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +8 -20
  584. package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +4 -4
  585. package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +11 -8
  586. package/node_modules/typebox/build/type/engine/evaluate/flatten.d.mts +1 -1
  587. package/node_modules/typebox/build/type/engine/evaluate/flatten.mjs +3 -4
  588. package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +17 -2
  589. package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +26 -6
  590. package/node_modules/typebox/build/type/engine/exclude/operation.mjs +3 -4
  591. package/node_modules/typebox/build/type/engine/extract/operation.d.mts +1 -1
  592. package/node_modules/typebox/build/type/engine/extract/operation.mjs +3 -4
  593. package/node_modules/typebox/build/type/engine/priority/priority.d.mts +2 -2
  594. package/node_modules/typebox/build/type/engine/priority/priority.mjs +3 -4
  595. package/node_modules/typebox/build/type/script/mapping.d.mts +32 -29
  596. package/node_modules/typebox/build/type/script/mapping.mjs +18 -25
  597. package/node_modules/typebox/build/type/script/parser.d.mts +19 -25
  598. package/node_modules/typebox/build/type/script/parser.mjs +27 -23
  599. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -2
  600. package/node_modules/typebox/build/value/errors/errors.mjs +1 -1
  601. package/node_modules/typebox/package.json +27 -27
  602. package/node_modules/typebox/readme.md +79 -82
  603. package/package.json +9 -8
  604. package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.d.ts +0 -50
  605. package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.d.ts.map +0 -1
  606. package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.js +0 -49
  607. package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.js.map +0 -1
  608. package/node_modules/@pierre/diffs/node_modules/shiki/dist/core-BVVgDSdq.d.mts +0 -1
  609. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-BVVgDSdq.d.mts +0 -1
  610. package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-bundle-full-WSWgUeqW.d.mts +0 -14
  611. package/node_modules/typebox/build/format/_idna.d.mts +0 -2
  612. package/node_modules/typebox/build/format/_idna.mjs +0 -246
  613. package/node_modules/typebox/build/format/_puny.d.mts +0 -1
  614. package/node_modules/typebox/build/format/_puny.mjs +0 -77
  615. package/node_modules/typebox/build/schema/resolve/ref.d.mts +0 -3
  616. package/node_modules/typebox/build/schema/resolve/ref.mjs +0 -146
  617. package/node_modules/typebox/build/schema/types/contentEncoding.d.mts +0 -9
  618. package/node_modules/typebox/build/schema/types/contentEncoding.mjs +0 -13
  619. package/node_modules/typebox/build/schema/types/contentMediaType.d.mts +0 -9
  620. package/node_modules/typebox/build/schema/types/contentMediaType.mjs +0 -13
@@ -1,10 +1,13 @@
1
1
  import { DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DIFFS_DEVELOPMENT_BUILD, DIFFS_TAG_NAME } from "../constants.js";
2
2
  import { dequeueRender, queueRender } from "../managers/UniversalRenderingManager.js";
3
+ import { areManagedSnapshotsEqual } from "../utils/areManagedSnapshotsEqual.js";
3
4
  import { areObjectsEqual } from "../utils/areObjectsEqual.js";
4
5
  import { areThemesEqual } from "../utils/areThemesEqual.js";
5
6
  import { areOptionsEqual } from "../utils/areOptionsEqual.js";
6
7
  import { areSelectionsEqual } from "../utils/areSelectionsEqual.js";
8
+ import { createCodeViewHeaderFooterHostElement } from "../utils/createCodeViewHeaderFooterHostElement.js";
7
9
  import { createWindowFromScrollPosition } from "../utils/createWindowFromScrollPosition.js";
10
+ import { finishEditSessionForDiff } from "../utils/editSessionHunks.js";
8
11
  import { isStyleNode } from "../utils/isStyleNode.js";
9
12
  import { prefersReducedMotion } from "../utils/prefersReducedMotion.js";
10
13
  import { roundToDevicePixel } from "../utils/roundToDevicePixel.js";
@@ -28,6 +31,7 @@ const CODE_VIEW_DIFF_OPTION_KEYS = [
28
31
  "diffIndicators",
29
32
  "disableBackground",
30
33
  "expandUnchanged",
34
+ "loadDiffFiles",
31
35
  "collapsedContextThreshold",
32
36
  "lineDiffType",
33
37
  "maxLineDiffLength",
@@ -64,6 +68,7 @@ const CODE_VIEW_FILE_OPTION_KEYS = [
64
68
  const CODE_VIEW_SHARED_CALLBACK_KEYS = [
65
69
  "renderCustomHeader",
66
70
  "renderHeaderPrefix",
71
+ "renderHeaderFilenameSuffix",
67
72
  "renderHeaderMetadata",
68
73
  "renderAnnotation",
69
74
  "renderGutterUtility",
@@ -104,12 +109,16 @@ function defineItemOption(target, key, get) {
104
109
  });
105
110
  }
106
111
  const DEFAULT_SCROLL_INTERACTION_RESTORE_DELAY_MS = 120;
112
+ const SUB_PIXEL_TOLERANCE = 1;
107
113
  const SCROLLING_CODE_OVERFLOW_FIX_VARIABLE = "--diffs-overflow-override";
108
114
  const SCROLL_REBASE_CONTAINER_HEIGHT = 12e6;
109
115
  const SCROLL_REBASE_TRIGGER_TOP = 1e6;
110
116
  const SCROLL_REBASE_TARGET_TOP = 2e6;
111
117
  const SCROLL_REBASE_TARGET_BOTTOM = SCROLL_REBASE_CONTAINER_HEIGHT - SCROLL_REBASE_TARGET_TOP;
112
118
  const SCROLL_REBASE_THRESHOLD = SCROLL_REBASE_CONTAINER_HEIGHT - SCROLL_REBASE_TRIGGER_TOP;
119
+ function assertEditorFactory(createEditor) {
120
+ if (createEditor == null) throw new Error("CodeView: createEditor is required for items with edit: true");
121
+ }
113
122
  const MOBILE_SAFARI = (() => {
114
123
  const { navigator } = globalThis;
115
124
  const userAgent = navigator.userAgent;
@@ -129,6 +138,8 @@ var CodeView = class CodeView {
129
138
  items = [];
130
139
  idToItem = /* @__PURE__ */ new Map();
131
140
  selectedLines = null;
141
+ itemEditors = /* @__PURE__ */ new Map();
142
+ attachedEditors = /* @__PURE__ */ new Set();
132
143
  instanceToItem = /* @__PURE__ */ new Map();
133
144
  layoutDirtyIndex;
134
145
  pendingLayoutReset;
@@ -170,12 +181,23 @@ var CodeView = class CodeView {
170
181
  container = document.createElement("div");
171
182
  stickyContainer = document.createElement("div");
172
183
  stickyOffset = document.createElement("div");
184
+ header = {
185
+ element: void 0,
186
+ render: void 0,
187
+ height: 0
188
+ };
189
+ footer = {
190
+ element: void 0,
191
+ render: void 0,
192
+ height: 0
193
+ };
173
194
  elementPool = [];
174
195
  elementPoolVersion = 0;
175
196
  elementPoolTracker = /* @__PURE__ */ new WeakMap();
176
197
  pendingElementPool = [];
177
198
  options;
178
199
  workerManager;
200
+ isReadySubscription;
179
201
  isContainerManaged;
180
202
  constructor(options = { theme: DEFAULT_THEMES }, workerManager, isContainerManaged = false) {
181
203
  this.options = options;
@@ -195,6 +217,9 @@ var CodeView = class CodeView {
195
217
  getLayout() {
196
218
  return this.options.layout ?? DEFAULT_CODE_VIEW_LAYOUT;
197
219
  }
220
+ getItemTopOffset() {
221
+ return this.getLayout().paddingTop + this.header.height;
222
+ }
198
223
  computeMetricsCache(itemMetrics) {
199
224
  this.itemMetricsCache = {
200
225
  hunkLineCount: itemMetrics?.hunkLineCount ?? DEFAULT_CODE_VIEW_FILE_METRICS.hunkLineCount,
@@ -245,7 +270,7 @@ var CodeView = class CodeView {
245
270
  const { firstIndex, lastIndex, stickyHeight, stickyTop, stickyBottom } = this.renderState;
246
271
  if (firstIndex === -1 || lastIndex === -1) return;
247
272
  const actualHeight = this.stickyContainer.getBoundingClientRect().height;
248
- if (Math.abs(actualHeight - stickyHeight) < 1) return;
273
+ if (Math.abs(actualHeight - stickyHeight) < SUB_PIXEL_TOLERANCE) return;
249
274
  console.error("CodeView: sticky container height does not match computed layout", {
250
275
  computedStickyHeight: stickyHeight,
251
276
  actualStickyHeight: actualHeight,
@@ -297,6 +322,43 @@ var CodeView = class CodeView {
297
322
  this.container?.style.setProperty("margin-top", `${paddingTop}px`);
298
323
  this.container?.style.setProperty("margin-bottom", `${paddingBottom}px`);
299
324
  }
325
+ reconcileHeaderFooterHosts() {
326
+ const headerChanged = this.reconcileHost("header");
327
+ const footerChanged = this.reconcileHost("footer");
328
+ return headerChanged || footerChanged;
329
+ }
330
+ reconcileHost(type) {
331
+ const { root, container } = this;
332
+ if (root == null || container == null) return false;
333
+ const host = type === "header" ? this.header : this.footer;
334
+ const render = type === "header" ? this.options.renderCodeViewHeader : this.options.renderCodeViewFooter;
335
+ if (render == null) {
336
+ if (host.element == null) return false;
337
+ this.resizeObserver?.unobserve(host.element);
338
+ host.element.remove();
339
+ host.element = void 0;
340
+ host.render = void 0;
341
+ this.setHostHeight(host, 0);
342
+ return false;
343
+ }
344
+ if (host.element != null && render === host.render) return false;
345
+ const element = host.element ?? createCodeViewHeaderFooterHostElement(type, container, this.resizeObserver);
346
+ host.element = element;
347
+ const content = render();
348
+ if (content != null) element.replaceChildren(content);
349
+ else if (!this.isContainerManaged && element.children.length > 0) element.textContent = "";
350
+ host.render = render;
351
+ return true;
352
+ }
353
+ setHostHeight(host, height) {
354
+ if (host.height === height) return;
355
+ host.height = height;
356
+ this.scrollDirty = true;
357
+ }
358
+ measureMountedHosts() {
359
+ if (this.header.element != null) this.setHostHeight(this.header, this.header.element.getBoundingClientRect().height);
360
+ if (this.footer.element != null) this.setHostHeight(this.footer, this.footer.element.getBoundingClientRect().height);
361
+ }
300
362
  setup(root) {
301
363
  if (this.root != null) throw new Error("CodeView.setup: already setup");
302
364
  this.workerManager?.subscribeToThemeChanges(this);
@@ -336,8 +398,13 @@ var CodeView = class CodeView {
336
398
  };
337
399
  }
338
400
  reset() {
401
+ dequeueRender(this.computeRenderRangeAndEmit);
402
+ this.clearReadySubscription();
339
403
  this.restoreScrollInteractions();
340
404
  this.cleanAllRenderedItems();
405
+ for (const record of this.itemEditors.values()) record.editor.cleanUp();
406
+ this.itemEditors.clear();
407
+ this.attachedEditors.clear();
341
408
  this.selectedLines = null;
342
409
  this.items.length = 0;
343
410
  this.idToItem.clear();
@@ -380,6 +447,14 @@ var CodeView = class CodeView {
380
447
  this.stickyOffset.remove();
381
448
  this.stickyContainer.remove();
382
449
  this.stickyContainer.textContent = "";
450
+ this.header.element?.remove();
451
+ this.header.element = void 0;
452
+ this.header.render = void 0;
453
+ this.header.height = 0;
454
+ this.footer.element?.remove();
455
+ this.footer.element = void 0;
456
+ this.footer.render = void 0;
457
+ this.footer.height = 0;
383
458
  this.root = void 0;
384
459
  this.container = void 0;
385
460
  }
@@ -414,6 +489,7 @@ var CodeView = class CodeView {
414
489
  const { element } = item;
415
490
  if (element != null && this.renderedItemOwnsFocus(element)) this.shouldFixContainerFocus = true;
416
491
  item.instance.cleanUp(true);
492
+ this.attachedEditors.delete(item.item.id);
417
493
  item.element = void 0;
418
494
  if (element == null) return;
419
495
  element.remove();
@@ -506,6 +582,14 @@ var CodeView = class CodeView {
506
582
  getItem(itemId) {
507
583
  return this.idToItem.get(itemId)?.item;
508
584
  }
585
+ /**
586
+ * Get the live editor for an item currently in edit mode. Use this to drive
587
+ * editor APIs CodeView does not wrap (applyEdits, undo, setMarkers, …).
588
+ * Returns undefined once the item leaves edit mode.
589
+ */
590
+ getEditor(itemId) {
591
+ return this.itemEditors.get(itemId)?.editor;
592
+ }
509
593
  updateItem(input) {
510
594
  const item = this.idToItem.get(input.id);
511
595
  if (item == null) {
@@ -516,6 +600,7 @@ var CodeView = class CodeView {
516
600
  this.markItemLayoutDirty(item);
517
601
  this.scrollDirty = true;
518
602
  this.render();
603
+ this.syncItemEditors();
519
604
  this.syncSelection();
520
605
  return true;
521
606
  }
@@ -541,6 +626,13 @@ var CodeView = class CodeView {
541
626
  };
542
627
  this.options.onSelectedLinesChange?.(this.selectedLines);
543
628
  }
629
+ const editorRecord = this.itemEditors.get(oldId);
630
+ if (editorRecord != null) {
631
+ editorRecord.state.id = newId;
632
+ this.itemEditors.delete(oldId);
633
+ this.itemEditors.set(newId, editorRecord);
634
+ if (this.attachedEditors.delete(oldId)) this.attachedEditors.add(newId);
635
+ }
544
636
  this.renamePendingScrollTarget(oldId, newId);
545
637
  this.renamePendingLayoutAnchor(oldId, newId);
546
638
  this.render();
@@ -548,16 +640,28 @@ var CodeView = class CodeView {
548
640
  }
549
641
  addItem(input) {
550
642
  this.addItems([input]);
551
- this.syncSelection();
552
643
  }
553
644
  addItems(inputs) {
554
645
  this.appendItemsInternal(inputs);
646
+ this.syncItemEditors();
555
647
  this.syncSelection();
556
648
  }
649
+ removeItem(itemId) {
650
+ const item = this.idToItem.get(itemId);
651
+ if (item == null) {
652
+ console.error(`CodeView.removeItem: unknown item id "${itemId}"`);
653
+ return false;
654
+ }
655
+ const nextItems = [];
656
+ for (const current of this.items) if (current !== item) nextItems.push(current.item);
657
+ this.setItems(nextItems);
658
+ return true;
659
+ }
557
660
  setItems(items) {
558
- if (items.length === 0) this.reset();
559
- else if (this.items.length === 0) this.appendItemsInternal(items);
560
- else if (!this.tryAppendItems(items)) this.reconcileItems(items);
661
+ let removedItemsById;
662
+ if (this.items.length === 0) this.appendItemsInternal(items);
663
+ else if (!this.tryAppendItems(items)) removedItemsById = this.reconcileItems(items);
664
+ this.syncItemEditors(removedItemsById);
561
665
  this.syncSelection();
562
666
  }
563
667
  /**
@@ -620,11 +724,13 @@ var CodeView = class CodeView {
620
724
  this.scrollDirty = true;
621
725
  }
622
726
  if (!areOptionsEqual(prevOptions, options)) this.renderOptionsRevision++;
623
- if (!this.isContainerManaged && this.items.length > 0) this.render();
727
+ this.syncItemEditors();
728
+ const headerFooterChanged = prevOptions.renderCodeViewHeader !== options.renderCodeViewHeader || prevOptions.renderCodeViewFooter !== options.renderCodeViewFooter;
729
+ if (!this.isContainerManaged && (this.items.length > 0 || headerFooterChanged)) this.render();
624
730
  }
625
- capturePendingLayoutAnchor() {
731
+ capturePendingLayoutAnchor(nextItems = this.idToItem) {
626
732
  if (this.root == null || this.items.length === 0 || this.pendingScrollTarget != null) return;
627
- this.pendingLayoutAnchor = this.getScrollAnchor(this.getScrollTop());
733
+ this.pendingLayoutAnchor = this.getScrollAnchor(this.getScrollTop(), nextItems);
628
734
  }
629
735
  render(immediate = false) {
630
736
  if (CodeView.__STOP) return;
@@ -633,6 +739,25 @@ var CodeView = class CodeView {
633
739
  this.computeRenderRangeAndEmit();
634
740
  } else queueRender(this.computeRenderRangeAndEmit);
635
741
  }
742
+ isReady() {
743
+ const { workerManager } = this;
744
+ if (workerManager == null || workerManager.isInitialized() || workerManager.getStats().workersFailed) {
745
+ this.clearReadySubscription();
746
+ return true;
747
+ }
748
+ this.isReadySubscription ??= workerManager.subscribeToStatChanges((stats) => {
749
+ if (stats.managerState !== "initialized" && !stats.workersFailed) return;
750
+ this.clearReadySubscription();
751
+ this.render(true);
752
+ });
753
+ if (workerManager.getStats().managerState === "waiting") workerManager.initialize().catch(() => {});
754
+ return false;
755
+ }
756
+ clearReadySubscription() {
757
+ if (this.isReadySubscription == null) return;
758
+ this.isReadySubscription();
759
+ this.isReadySubscription = void 0;
760
+ }
636
761
  instanceChanged(instance, layoutDirty) {
637
762
  const item = this.instanceToItem.get(instance);
638
763
  if (item == null) throw new Error("CodeView.instanceChanged: An instance has changed that is not registered");
@@ -645,6 +770,12 @@ var CodeView = class CodeView {
645
770
  getContainerElement() {
646
771
  return this.root;
647
772
  }
773
+ getHeaderElement() {
774
+ return this.header.element;
775
+ }
776
+ getFooterElement() {
777
+ return this.footer.element;
778
+ }
648
779
  getRenderedItems() {
649
780
  const { firstIndex, lastIndex } = this.renderState;
650
781
  if (firstIndex === -1 || lastIndex === -1 || lastIndex < firstIndex) return [];
@@ -678,7 +809,18 @@ var CodeView = class CodeView {
678
809
  return true;
679
810
  }
680
811
  getSlotSnapshot(coordinator) {
681
- return getSlotSnapshot(this.getRenderedItems(), coordinator);
812
+ return this.buildSlotSnapshot(coordinator);
813
+ }
814
+ buildSlotSnapshot(coordinator) {
815
+ const items = getSlotItems(this.getRenderedItems(), coordinator);
816
+ const { element: header } = this.header;
817
+ const { element: footer } = this.footer;
818
+ if (items == null && header == null && footer == null) return;
819
+ return {
820
+ items,
821
+ header,
822
+ footer
823
+ };
682
824
  }
683
825
  subscribeToScroll(listener) {
684
826
  this.scrollListeners.add(listener);
@@ -694,7 +836,7 @@ var CodeView = class CodeView {
694
836
  getTopForItem(id) {
695
837
  const item = this.idToItem.get(id);
696
838
  if (item == null) return;
697
- return item.top + this.getLayout().paddingTop;
839
+ return item.top + this.getItemTopOffset();
698
840
  }
699
841
  createItem(input, index, top) {
700
842
  const { itemMetricsCache: itemMetrics } = this;
@@ -737,10 +879,94 @@ var CodeView = class CodeView {
737
879
  const item = this.idToItem.get(this.selectedLines.id);
738
880
  if (item == null) {
739
881
  this.selectedLines = null;
882
+ this.options.onSelectedLinesChange?.(null);
740
883
  return;
741
884
  }
742
885
  item.instance.setSelectedLines(this.selectedLines.range, { notify: false });
743
886
  }
887
+ isItemInEditMode(item) {
888
+ return item.item.edit === true && item.item.collapsed !== true;
889
+ }
890
+ /**
891
+ * Attach (or lazily create) the editor for a mounted edit-mode item. Called
892
+ * from the render loop so every mounted item passes through it: fresh
893
+ * mounts, remounts after virtualization released the item, and items whose
894
+ * edit flag was just turned on. Editors persist across unmounts, so a
895
+ * remounted item re-attaches its existing editor and resumes the retained
896
+ * document; the renderers keep the host's file/diff data in sync with the
897
+ * session so the remount paints the edited text.
898
+ */
899
+ attachItemEditor(item) {
900
+ const { id } = item.item;
901
+ const { createEditor } = this.options;
902
+ if (item.element == null || this.attachedEditors.has(id) || !this.isItemInEditMode(item)) return;
903
+ let record = this.itemEditors.get(id);
904
+ let createdEditor = false;
905
+ try {
906
+ if (record == null) {
907
+ assertEditorFactory(createEditor);
908
+ const state = { id };
909
+ const editor = createEditor({ onChange: (file, lineAnnotations) => {
910
+ const latest = this.idToItem.get(state.id);
911
+ if (latest == null) return;
912
+ state.lastChange = {
913
+ item: latest.item,
914
+ file,
915
+ lineAnnotations
916
+ };
917
+ this.options.onItemEditChange?.(latest.item, file, lineAnnotations);
918
+ } });
919
+ if (editor == null) return;
920
+ record = {
921
+ editor,
922
+ state
923
+ };
924
+ this.itemEditors.set(id, record);
925
+ createdEditor = true;
926
+ }
927
+ record.editor.edit(item.instance);
928
+ this.attachedEditors.add(id);
929
+ } catch (error) {
930
+ if (createdEditor && record != null) {
931
+ this.itemEditors.delete(id);
932
+ record.editor.cleanUp();
933
+ }
934
+ this.releaseRenderedItem(item);
935
+ throw error;
936
+ }
937
+ }
938
+ /**
939
+ * Drop editors for items that can no longer be edited: removed, edit turned
940
+ * off, or collapsed. Attachment happens in the render loop via
941
+ * attachItemEditor, so this only reconciles editors CodeView is already
942
+ * holding.
943
+ */
944
+ syncItemEditors(removedItems) {
945
+ if (this.itemEditors.size === 0) return;
946
+ const completions = [];
947
+ for (const [id, record] of this.itemEditors) {
948
+ const item = this.idToItem.get(id);
949
+ const removedItem = removedItems?.get(id);
950
+ if (removedItem == null && item != null && this.isItemInEditMode(item)) continue;
951
+ record.editor.cleanUp();
952
+ this.itemEditors.delete(id);
953
+ this.attachedEditors.delete(id);
954
+ const { lastChange } = record.state;
955
+ const itemSnapshot = removedItem == null ? item?.item ?? lastChange?.item : lastChange?.item ?? removedItem.item;
956
+ if (itemSnapshot?.type === "diff") {
957
+ if (removedItem == null && item != null && item.type === "diff" && item.instance.completeEditSession()) {
958
+ this.markItemLayoutDirty(item);
959
+ this.render();
960
+ }
961
+ finishEditSessionForDiff(itemSnapshot.fileDiff);
962
+ }
963
+ if (lastChange != null) completions.push(removedItem != null || item == null ? lastChange : {
964
+ ...lastChange,
965
+ item: item.item
966
+ });
967
+ }
968
+ for (const { item, file, lineAnnotations } of completions) this.options.onItemEditComplete?.(item, file, lineAnnotations);
969
+ }
744
970
  renamePendingScrollTarget(oldId, newId) {
745
971
  const { pendingScrollTarget } = this;
746
972
  if (pendingScrollTarget == null || pendingScrollTarget.type === "position" || pendingScrollTarget.id !== oldId) return;
@@ -756,7 +982,11 @@ var CodeView = class CodeView {
756
982
  const prototype = {};
757
983
  for (const key of CODE_VIEW_FILE_OPTION_KEYS) defineItemOption(prototype, key, () => this.options[key]);
758
984
  defineItemOption(prototype, "stickyHeader", () => this.options.stickyHeaders);
759
- defineItemOption(prototype, "collapsed", (receiver) => this.getItemOptions(getItemOptionsState(receiver), "file")?.item.collapsed === true);
985
+ defineItemOption(prototype, "collapsed", (receiver) => {
986
+ const state = getItemOptionsState(receiver);
987
+ if (state == null) return;
988
+ return this.getItemOptions(state, "file")?.item.collapsed;
989
+ });
760
990
  for (const key of CODE_VIEW_SHARED_CALLBACK_KEYS) this.defineItemSharedCallback(prototype, "file", key);
761
991
  for (const key of CODE_VIEW_SELECTION_CALLBACK_KEYS) this.defineItemSelectionCallback(prototype, "file", key);
762
992
  return prototype;
@@ -766,7 +996,11 @@ var CodeView = class CodeView {
766
996
  for (const key of CODE_VIEW_DIFF_OPTION_KEYS) defineItemOption(prototype, key, () => this.options[key]);
767
997
  defineItemOption(prototype, "stickyHeader", () => this.options.stickyHeaders);
768
998
  defineItemOption(prototype, "hunkSeparators", () => this.options.hunkSeparators);
769
- defineItemOption(prototype, "collapsed", (receiver) => this.getItemOptions(getItemOptionsState(receiver), "diff")?.item.collapsed === true);
999
+ defineItemOption(prototype, "collapsed", (receiver) => {
1000
+ const state = getItemOptionsState(receiver);
1001
+ if (state == null) return;
1002
+ return this.getItemOptions(state, "diff")?.item.collapsed;
1003
+ });
770
1004
  for (const key of CODE_VIEW_SHARED_CALLBACK_KEYS) this.defineItemSharedCallback(prototype, "diff", key);
771
1005
  for (const key of CODE_VIEW_SELECTION_CALLBACK_KEYS) this.defineItemSelectionCallback(prototype, "diff", key);
772
1006
  return prototype;
@@ -782,7 +1016,9 @@ var CodeView = class CodeView {
782
1016
  return options;
783
1017
  }
784
1018
  updateItemOptionsId(options, id) {
785
- getItemOptionsState(options).id = id;
1019
+ const state = getItemOptionsState(options);
1020
+ if (state == null) throw new Error(`CodeView.updateItemOptionsId: No valid state`);
1021
+ state.id = id;
786
1022
  }
787
1023
  getItemOptions(state, mode) {
788
1024
  const item = this.idToItem.get(state.id);
@@ -793,6 +1029,7 @@ var CodeView = class CodeView {
793
1029
  defineItemOption(options, key, (receiver) => {
794
1030
  if (this.options[key] == null) return;
795
1031
  const state = getItemOptionsState(receiver);
1032
+ if (state == null) return;
796
1033
  const callbackCache = state.callbackCache ??= {};
797
1034
  let wrapped = callbackCache[key];
798
1035
  if (wrapped == null) {
@@ -809,8 +1046,8 @@ var CodeView = class CodeView {
809
1046
  }
810
1047
  defineItemSelectionCallback(options, mode, key) {
811
1048
  defineItemOption(options, key, (receiver) => {
812
- if (this.options.enableLineSelection !== true) return;
813
1049
  const state = getItemOptionsState(receiver);
1050
+ if (state == null) return;
814
1051
  const callbackCache = state.callbackCache ??= {};
815
1052
  let wrapped = callbackCache[key];
816
1053
  if (wrapped == null) {
@@ -888,6 +1125,7 @@ var CodeView = class CodeView {
888
1125
  const nextItems = [];
889
1126
  const nextIdToItem = /* @__PURE__ */ new Map();
890
1127
  const nextInstanceToItem = /* @__PURE__ */ new Map();
1128
+ const removedItemsById = /* @__PURE__ */ new Map();
891
1129
  let firstDirtyIndex;
892
1130
  for (let index = 0; index < items.length; index++) {
893
1131
  const input = items[index];
@@ -905,14 +1143,19 @@ var CodeView = class CodeView {
905
1143
  nextIdToItem.set(input.id, item);
906
1144
  nextInstanceToItem.set(item.instance, item);
907
1145
  }
1146
+ if (firstDirtyIndex == null) {
1147
+ if (removedItems.size === 0) return;
1148
+ firstDirtyIndex = Math.max(nextItems.length - 1, 0);
1149
+ }
1150
+ this.capturePendingLayoutAnchor(nextIdToItem);
908
1151
  for (let index = 0; index < previousItems.length; index++) {
909
1152
  const removedItem = previousItems[index];
910
1153
  if (removedItem == null || !removedItems.has(removedItem)) continue;
1154
+ removedItemsById.set(removedItem.item.id, removedItem);
911
1155
  this.releaseRenderedItem(removedItem);
912
1156
  const dirtyIndex = Math.max(nextItems.length - 1, 0);
913
1157
  firstDirtyIndex = Math.min(firstDirtyIndex ?? dirtyIndex, dirtyIndex);
914
1158
  }
915
- if (firstDirtyIndex == null) return;
916
1159
  this.items = nextItems;
917
1160
  this.idToItem = nextIdToItem;
918
1161
  this.instanceToItem = nextInstanceToItem;
@@ -921,6 +1164,7 @@ var CodeView = class CodeView {
921
1164
  this.markLayoutDirtyFromIndex(firstDirtyIndex);
922
1165
  this.scrollDirty = true;
923
1166
  this.render();
1167
+ return removedItemsById.size > 0 ? removedItemsById : void 0;
924
1168
  }
925
1169
  /**
926
1170
  * Update a reused record from the latest controlled item only when its item
@@ -938,7 +1182,7 @@ var CodeView = class CodeView {
938
1182
  }
939
1183
  getMaxScrollTopForHeight(scrollHeight) {
940
1184
  const { paddingBottom, paddingTop } = this.getLayout();
941
- return Math.max(paddingTop + scrollHeight + paddingBottom - this.getHeight(), 0);
1185
+ return Math.max(paddingTop + this.header.height + scrollHeight + this.footer.height + paddingBottom - this.getHeight(), 0);
942
1186
  }
943
1187
  getMaxScrollTop() {
944
1188
  return this.getMaxScrollTopForHeight(this.getScrollHeight());
@@ -1050,7 +1294,7 @@ var CodeView = class CodeView {
1050
1294
  const rect = this.getScrollTargetRect(target);
1051
1295
  if (rect == null) return;
1052
1296
  const offset = target.offset ?? 0;
1053
- const targetTop = this.getLayout().paddingTop + rect.top;
1297
+ const targetTop = this.getItemTopOffset() + rect.top;
1054
1298
  const targetBottom = targetTop + rect.height;
1055
1299
  const currentTop = this.getScrollTop();
1056
1300
  const visibleTop = currentTop + (target.type === "line" || target.type === "range" ? this.getStickyHeaderOffset() : 0);
@@ -1102,7 +1346,7 @@ var CodeView = class CodeView {
1102
1346
  * and stickyOffset if necessary
1103
1347
  */
1104
1348
  resolveAlignedScrollPosition(targetTop, targetHeight, align, offset = 0, stickyOffset = 0) {
1105
- targetTop += this.getLayout().paddingTop;
1349
+ targetTop += this.getItemTopOffset();
1106
1350
  const viewportHeight = this.getHeight();
1107
1351
  if (align === "center" && targetHeight + offset < viewportHeight) return targetTop - (viewportHeight - targetHeight) / 2 + offset;
1108
1352
  if (align === "end") return targetTop - (viewportHeight - targetHeight) + offset;
@@ -1206,6 +1450,7 @@ var CodeView = class CodeView {
1206
1450
  }
1207
1451
  computeRenderRangeAndEmit = (timestamp = performance.now()) => {
1208
1452
  if (CodeView.__STOP || this.container == null) return;
1453
+ if (!this.isReady()) return;
1209
1454
  const viewportHeight = this.getHeight();
1210
1455
  const initialScrollTop = this.getScrollTop();
1211
1456
  let scrollTopAfterLayout = initialScrollTop;
@@ -1233,7 +1478,7 @@ var CodeView = class CodeView {
1233
1478
  const fitPerfectly = !computeScrollCorrection && (this.renderState.scrollTop === -1 || Math.abs(targetScrollTop - this.renderState.scrollTop) > viewportHeight + this.config.overscrollSize * 2);
1234
1479
  if (fitPerfectly) scrollAnchor = void 0;
1235
1480
  this.windowSpecs = createWindowFromScrollPosition({
1236
- scrollTop: targetScrollTop,
1481
+ scrollTop: targetScrollTop - this.header.height,
1237
1482
  height: viewportHeight,
1238
1483
  scrollHeight: this.getScrollHeight(),
1239
1484
  fitPerfectly,
@@ -1252,6 +1497,7 @@ var CodeView = class CodeView {
1252
1497
  if (item == null) throw new Error(`CodeView.computeRenderRangeAndEmit: No item at index: ${index}`);
1253
1498
  if (!(item.top > top - item.height && item.top <= bottom)) this.releaseRenderedItem(item);
1254
1499
  }
1500
+ const hostsChanged = this.reconcileHeaderFooterHosts();
1255
1501
  let prevElement;
1256
1502
  const updatedItems = /* @__PURE__ */ new Set();
1257
1503
  const startingIndex = this.findFirstVisibleIndex(top);
@@ -1277,10 +1523,13 @@ var CodeView = class CodeView {
1277
1523
  }
1278
1524
  prevElement = item.element;
1279
1525
  }
1526
+ if (item.item.edit === true) this.attachItemEditor(item);
1280
1527
  }
1281
1528
  this.renderState.firstIndex = startingIndex <= lastRenderedIndex ? startingIndex : -1;
1282
1529
  this.renderState.lastIndex = lastRenderedIndex;
1283
1530
  this.flushSlotCoordinator();
1531
+ this.flushManagers(updatedItems);
1532
+ if (hostsChanged) this.measureMountedHosts();
1284
1533
  this.reconcileRenderedItems(updatedItems);
1285
1534
  this.syncContainerHeight();
1286
1535
  this.updateStickyPositioning();
@@ -1305,7 +1554,7 @@ var CodeView = class CodeView {
1305
1554
  this.scrollAnimation = void 0;
1306
1555
  }
1307
1556
  this.renderState.scrollTop = roundToDevicePixel(syncedScrollTop);
1308
- this.flushManagers(updatedItems);
1557
+ this.updateStickyPositioning();
1309
1558
  this.validateStickyContainerHeight();
1310
1559
  this.fixContainerFocus();
1311
1560
  if (fitPerfectly || this.scrollAnimation != null) this.render();
@@ -1384,7 +1633,10 @@ var CodeView = class CodeView {
1384
1633
  }
1385
1634
  updateStickyPositioning() {
1386
1635
  const stickyBounds = this.getStickyBounds();
1387
- if (stickyBounds == null) return;
1636
+ if (stickyBounds == null) {
1637
+ if (this.renderState.firstIndex === -1) this.stickyOffset.style.height = "";
1638
+ return;
1639
+ }
1388
1640
  const { stickyTop, stickyBottom } = stickyBounds;
1389
1641
  if (stickyBottom - stickyTop === this.renderState.stickyHeight && stickyTop === this.renderState.stickyTop && stickyBottom === this.renderState.stickyBottom) return;
1390
1642
  this.applyStickyPositioning(stickyBounds);
@@ -1402,8 +1654,10 @@ var CodeView = class CodeView {
1402
1654
  this.scrollAnimation = void 0;
1403
1655
  };
1404
1656
  handleResize = (entries) => {
1657
+ let shouldRender = false;
1405
1658
  for (const entry of entries) if (entry.target === this.stickyContainer) {
1406
- if (entry.borderBoxSize[0].blockSize !== this.renderState.stickyHeight) {
1659
+ const blockSize = entry.borderBoxSize[0].blockSize;
1660
+ if (Math.abs(blockSize - this.renderState.stickyHeight) >= SUB_PIXEL_TOLERANCE) {
1407
1661
  const currentScrollTop = this.getScrollTop();
1408
1662
  const anchor = this.getScrollAnchor(currentScrollTop);
1409
1663
  this.reconcileRenderedItems();
@@ -1418,12 +1672,33 @@ var CodeView = class CodeView {
1418
1672
  this.pendingScrollTarget = void 0;
1419
1673
  this.scrollAnimation = void 0;
1420
1674
  }
1675
+ shouldRender = true;
1676
+ }
1677
+ } else if (entry.target === this.header.element || entry.target === this.footer.element) {
1678
+ const host = entry.target === this.header.element ? this.header : this.footer;
1679
+ const blockSize = entry.borderBoxSize[0].blockSize;
1680
+ if (blockSize !== host.height) {
1681
+ const currentScrollTop = this.getScrollTop();
1682
+ const anchor = this.getScrollAnchor(currentScrollTop);
1683
+ this.setHostHeight(host, blockSize);
1684
+ const anchoredScrollTop = anchor != null ? this.resolveAnchoredScrollTop(anchor) : void 0;
1685
+ if (anchoredScrollTop != null) {
1686
+ const resizeAnchorDelta = anchoredScrollTop - currentScrollTop;
1687
+ this.applyScrollFix(anchoredScrollTop, currentScrollTop, this.windowSpecs);
1688
+ if (this.scrollAnimation != null) this.scrollAnimation.position += resizeAnchorDelta;
1689
+ }
1690
+ if (this.pendingScrollTarget != null && this.isPendingTargetSettled(this.pendingScrollTarget)) {
1691
+ this.pendingScrollTarget = void 0;
1692
+ this.scrollAnimation = void 0;
1693
+ }
1694
+ shouldRender = true;
1421
1695
  }
1422
1696
  } else {
1423
1697
  this.scrollDirty = true;
1424
1698
  this.heightDirty = true;
1425
- this.render();
1699
+ shouldRender = true;
1426
1700
  }
1701
+ if (shouldRender) this.render(true);
1427
1702
  };
1428
1703
  /**
1429
1704
  * Figure out scrollTop accounting for sticky header if enabled and
@@ -1439,8 +1714,15 @@ var CodeView = class CodeView {
1439
1714
  * A scroll anchor represents the first fully visible element (in other
1440
1715
  * words, the first file or first line who's top is fully in the viewport).
1441
1716
  */
1442
- getScrollAnchor(scrollTop) {
1443
- if (this.pendingLayoutAnchor != null) return this.pendingLayoutAnchor;
1717
+ getScrollAnchor(scrollTop, availableItems = this.idToItem) {
1718
+ let skippedItem;
1719
+ const { pendingLayoutAnchor } = this;
1720
+ if (pendingLayoutAnchor != null) {
1721
+ const pendingItem = this.idToItem.get(pendingLayoutAnchor.id);
1722
+ if (pendingItem != null && availableItems.get(pendingLayoutAnchor.id) === pendingItem) return pendingLayoutAnchor;
1723
+ if (pendingItem != null) skippedItem = pendingItem;
1724
+ }
1725
+ if (scrollTop <= 0) return;
1444
1726
  const { firstIndex, lastIndex, stickyTop, stickyBottom } = this.renderState;
1445
1727
  if (firstIndex === -1 || lastIndex === -1) return;
1446
1728
  const viewportHeight = this.getHeight();
@@ -1448,9 +1730,13 @@ var CodeView = class CodeView {
1448
1730
  for (let index = firstIndex; index <= lastIndex; index++) {
1449
1731
  const item = this.items[index];
1450
1732
  if (item == null) continue;
1451
- const absoluteItemTop = this.getLayout().paddingTop + item.top;
1733
+ const absoluteItemTop = this.getItemTopOffset() + item.top;
1452
1734
  if (absoluteItemTop + item.height <= scrollTop) continue;
1453
1735
  if (absoluteItemTop >= scrollTop + viewportHeight) break;
1736
+ if (!(availableItems.get(item.item.id) === item)) {
1737
+ skippedItem ??= item;
1738
+ continue;
1739
+ }
1454
1740
  if (absoluteItemTop >= scrollTop) return {
1455
1741
  type: "item",
1456
1742
  id: item.item.id,
@@ -1469,6 +1755,14 @@ var CodeView = class CodeView {
1469
1755
  };
1470
1756
  }
1471
1757
  }
1758
+ if (skippedItem != null) for (let index = skippedItem.index + 1; index < this.items.length; index++) {
1759
+ const candidate = this.items[index];
1760
+ if (candidate != null && availableItems.get(candidate.item.id) === candidate) return {
1761
+ type: "item",
1762
+ id: candidate.item.id,
1763
+ viewportOffset: 0
1764
+ };
1765
+ }
1472
1766
  }
1473
1767
  /**
1474
1768
  * Given a scroll anchor, attempt to resolve a newly updated (and clamped)
@@ -1480,14 +1774,14 @@ var CodeView = class CodeView {
1480
1774
  resolveAnchoredScrollTop(anchor) {
1481
1775
  const item = this.idToItem.get(anchor.id);
1482
1776
  if (item == null) return;
1483
- const { paddingTop } = this.getLayout();
1777
+ const itemTopOffset = this.getItemTopOffset();
1484
1778
  if (anchor.type === "item") {
1485
- const absoluteItemTop = paddingTop + item.top;
1779
+ const absoluteItemTop = itemTopOffset + item.top;
1486
1780
  return this.clampScrollTop(absoluteItemTop - anchor.viewportOffset);
1487
1781
  }
1488
1782
  const linePosition = item.type === "diff" ? item.instance.getLinePosition(anchor.lineNumber, anchor.side) : item.instance.getLinePosition(anchor.lineNumber);
1489
1783
  if (linePosition == null) return;
1490
- const absoluteLineTop = paddingTop + item.top + linePosition.top;
1784
+ const absoluteLineTop = itemTopOffset + item.top + linePosition.top;
1491
1785
  return this.clampScrollTop(absoluteLineTop - anchor.viewportOffset);
1492
1786
  }
1493
1787
  /**
@@ -1544,11 +1838,10 @@ var CodeView = class CodeView {
1544
1838
  }
1545
1839
  flushSlotCoordinator() {
1546
1840
  if (this.slotCoordinator == null) return;
1547
- const { onSnapshotChange } = this.slotCoordinator;
1548
- const slotSnapshot = getSlotSnapshot(this.getRenderedItems(), this.slotCoordinator);
1549
- if (areSlotSnapshotsEqual(this.slotSnapshot, slotSnapshot)) return;
1841
+ const slotSnapshot = this.buildSlotSnapshot(this.slotCoordinator);
1842
+ if (areManagedSnapshotsEqual(this.slotSnapshot, slotSnapshot)) return;
1550
1843
  this.slotSnapshot = slotSnapshot;
1551
- onSnapshotChange(slotSnapshot);
1844
+ this.slotCoordinator.onSnapshotChange(slotSnapshot);
1552
1845
  }
1553
1846
  notifyScroll() {
1554
1847
  if (this.scrollListeners.size === 0) return;
@@ -1617,8 +1910,11 @@ var CodeView = class CodeView {
1617
1910
  const item = this.items[index];
1618
1911
  if (item == null) throw new Error("CodeView.recomputeLayout: invalid item index");
1619
1912
  item.top = runningTop;
1620
- if (item.type === "diff") item.height = item.instance.prepareCodeViewItem(item.item.fileDiff, runningTop, reset, item.item.annotations ?? []);
1621
- else item.height = item.instance.prepareCodeViewItem(item.item.file, runningTop, reset, item.item.annotations ?? []);
1913
+ if (item.type === "diff") {
1914
+ const fileDiff = item.instance.consumeCodeViewLayoutChanges(item.item.fileDiff);
1915
+ if (fileDiff != null) Object.assign(item.item.fileDiff, fileDiff);
1916
+ item.height = item.instance.prepareCodeViewItem(item.item.fileDiff, runningTop, reset, item.item.annotations ?? []);
1917
+ } else item.height = item.instance.prepareCodeViewItem(item.item.file, runningTop, reset, item.item.annotations ?? []);
1622
1918
  runningTop += item.height;
1623
1919
  if (index < this.items.length - 1) runningTop += layout.gap;
1624
1920
  }
@@ -1696,7 +1992,7 @@ function syncRenderedItemOrder(container, element, prevElement) {
1696
1992
  function hasAnnotations(item) {
1697
1993
  return (item.annotations?.length ?? 0) > 0;
1698
1994
  }
1699
- function getSlotSnapshot(renderedItems, { hasHeaderRenderers, hasAnnotationRenderer, hasGutterRenderer }) {
1995
+ function getSlotItems(renderedItems, { hasHeaderRenderers, hasAnnotationRenderer, hasGutterRenderer }) {
1700
1996
  if (renderedItems.length === 0) return;
1701
1997
  if (hasHeaderRenderers || hasGutterRenderer) return renderedItems;
1702
1998
  if (!hasAnnotationRenderer) return;
@@ -1704,17 +2000,7 @@ function getSlotSnapshot(renderedItems, { hasHeaderRenderers, hasAnnotationRende
1704
2000
  for (const renderedItem of renderedItems) if (hasAnnotations(renderedItem.item)) slotSnapshot.push(renderedItem);
1705
2001
  return slotSnapshot.length > 0 ? slotSnapshot : void 0;
1706
2002
  }
1707
- function areSlotSnapshotsEqual(previous, next) {
1708
- if (previous == null || next == null) return previous === next;
1709
- if (previous.length !== next.length) return false;
1710
- for (let index = 0; index < previous.length; index++) {
1711
- const previousItem = previous[index];
1712
- const nextItem = next[index];
1713
- if (previousItem == null || nextItem == null || previousItem.id !== nextItem.id || previousItem.type !== nextItem.type || previousItem.element !== nextItem.element || previousItem.version !== nextItem.version) return false;
1714
- }
1715
- return true;
1716
- }
1717
2003
  //#endregion
1718
- export { CodeView };
2004
+ export { CODE_VIEW_DIFF_OPTION_KEYS, CODE_VIEW_FILE_OPTION_KEYS, CodeView };
1719
2005
 
1720
2006
  //# sourceMappingURL=CodeView.js.map