@pierre/diffs 1.3.0-beta.1 → 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 (701) hide show
  1. package/README.md +15 -15
  2. package/dist/components/CodeView.d.ts +103 -15
  3. package/dist/components/CodeView.d.ts.map +1 -1
  4. package/dist/components/CodeView.js +349 -50
  5. package/dist/components/CodeView.js.map +1 -1
  6. package/dist/components/File.d.ts +10 -7
  7. package/dist/components/File.d.ts.map +1 -1
  8. package/dist/components/File.js +99 -40
  9. package/dist/components/File.js.map +1 -1
  10. package/dist/components/FileDiff.d.ts +76 -36
  11. package/dist/components/FileDiff.d.ts.map +1 -1
  12. package/dist/components/FileDiff.js +364 -96
  13. package/dist/components/FileDiff.js.map +1 -1
  14. package/dist/components/FileStream.d.ts +0 -1
  15. package/dist/components/FileStream.d.ts.map +1 -1
  16. package/dist/components/FileStream.js +10 -7
  17. package/dist/components/FileStream.js.map +1 -1
  18. package/dist/components/UnresolvedFile.d.ts +3 -3
  19. package/dist/components/UnresolvedFile.d.ts.map +1 -1
  20. package/dist/components/UnresolvedFile.js +8 -6
  21. package/dist/components/UnresolvedFile.js.map +1 -1
  22. package/dist/components/VirtualizedFile.d.ts +8 -4
  23. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  24. package/dist/components/VirtualizedFile.js +118 -44
  25. package/dist/components/VirtualizedFile.js.map +1 -1
  26. package/dist/components/VirtualizedFileDiff.d.ts +35 -9
  27. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  28. package/dist/components/VirtualizedFileDiff.js +367 -120
  29. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  30. package/dist/components/Virtualizer.d.ts +4 -1
  31. package/dist/components/Virtualizer.d.ts.map +1 -1
  32. package/dist/components/Virtualizer.js +47 -29
  33. package/dist/components/Virtualizer.js.map +1 -1
  34. package/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
  35. package/dist/components/web-components.d.ts.map +1 -1
  36. package/dist/components/web-components.js +2 -3
  37. package/dist/components/web-components.js.map +1 -1
  38. package/dist/constants.d.ts +5 -2
  39. package/dist/constants.d.ts.map +1 -1
  40. package/dist/constants.js +5 -2
  41. package/dist/constants.js.map +1 -1
  42. package/dist/editor/command.d.ts +3 -2
  43. package/dist/editor/command.d.ts.map +1 -1
  44. package/dist/editor/command.js +29 -6
  45. package/dist/editor/command.js.map +1 -1
  46. package/dist/editor/editStack.d.ts +7 -2
  47. package/dist/editor/editStack.d.ts.map +1 -1
  48. package/dist/editor/editStack.js +4 -4
  49. package/dist/editor/editStack.js.map +1 -1
  50. package/dist/editor/editor.d.ts +91 -8
  51. package/dist/editor/editor.d.ts.map +1 -1
  52. package/dist/editor/editor.js +1926 -704
  53. package/dist/editor/editor.js.map +1 -1
  54. package/dist/editor/editor2.js +6 -0
  55. package/dist/editor/editor2.js.map +1 -0
  56. package/dist/editor/index.d.ts +4 -2
  57. package/dist/editor/index.js +1 -2
  58. package/dist/editor/languages.d.ts +26 -0
  59. package/dist/editor/languages.d.ts.map +1 -0
  60. package/dist/editor/languages.js +363 -0
  61. package/dist/editor/languages.js.map +1 -0
  62. package/dist/editor/lineAnnotations.d.ts +2 -1
  63. package/dist/editor/lineAnnotations.d.ts.map +1 -1
  64. package/dist/editor/lineAnnotations.js +193 -13
  65. package/dist/editor/lineAnnotations.js.map +1 -1
  66. package/dist/editor/marker.d.ts +38 -0
  67. package/dist/editor/marker.d.ts.map +1 -0
  68. package/dist/editor/marker.js +245 -0
  69. package/dist/editor/marker.js.map +1 -0
  70. package/dist/editor/matchBrackets.d.ts +9 -0
  71. package/dist/editor/matchBrackets.d.ts.map +1 -0
  72. package/dist/editor/matchBrackets.js +138 -0
  73. package/dist/editor/matchBrackets.js.map +1 -0
  74. package/dist/editor/pieceTable.d.ts +15 -7
  75. package/dist/editor/pieceTable.d.ts.map +1 -1
  76. package/dist/editor/pieceTable.js +252 -171
  77. package/dist/editor/pieceTable.js.map +1 -1
  78. package/dist/editor/platform.d.ts +8 -1
  79. package/dist/editor/platform.d.ts.map +1 -1
  80. package/dist/editor/platform.js +18 -5
  81. package/dist/editor/platform.js.map +1 -1
  82. package/dist/editor/popover.d.ts +65 -0
  83. package/dist/editor/popover.d.ts.map +1 -0
  84. package/dist/editor/popover.js +187 -0
  85. package/dist/editor/popover.js.map +1 -0
  86. package/dist/editor/searchPanel.d.ts +17 -7
  87. package/dist/editor/searchPanel.d.ts.map +1 -1
  88. package/dist/editor/searchPanel.js +268 -169
  89. package/dist/editor/searchPanel.js.map +1 -1
  90. package/dist/editor/selection.d.ts +100 -15
  91. package/dist/editor/selection.d.ts.map +1 -1
  92. package/dist/editor/selection.js +862 -136
  93. package/dist/editor/selection.js.map +1 -1
  94. package/dist/editor/selectionAction.d.ts +46 -0
  95. package/dist/editor/selectionAction.d.ts.map +1 -0
  96. package/dist/editor/selectionAction.js +64 -0
  97. package/dist/editor/selectionAction.js.map +1 -0
  98. package/dist/editor/sprite.d.ts +8 -0
  99. package/dist/editor/sprite.d.ts.map +1 -0
  100. package/dist/editor/sprite.js +45 -0
  101. package/dist/editor/sprite.js.map +1 -0
  102. package/dist/editor/stateStorage.d.ts +15 -0
  103. package/dist/editor/stateStorage.d.ts.map +1 -0
  104. package/dist/editor/stateStorage.js +65 -0
  105. package/dist/editor/stateStorage.js.map +1 -0
  106. package/dist/editor/textDocument.d.ts +21 -83
  107. package/dist/editor/textDocument.d.ts.map +1 -1
  108. package/dist/editor/textDocument.js +117 -48
  109. package/dist/editor/textDocument.js.map +1 -1
  110. package/dist/editor/textMeasure.d.ts +31 -2
  111. package/dist/editor/textMeasure.d.ts.map +1 -1
  112. package/dist/editor/textMeasure.js +122 -21
  113. package/dist/editor/textMeasure.js.map +1 -1
  114. package/dist/editor/{tokenzier.d.ts → tokenizer.d.ts} +16 -12
  115. package/dist/editor/tokenizer.d.ts.map +1 -0
  116. package/dist/editor/tokenizer.js +513 -0
  117. package/dist/editor/tokenizer.js.map +1 -0
  118. package/dist/editor/utils.d.ts +6 -1
  119. package/dist/editor/utils.d.ts.map +1 -1
  120. package/dist/editor/utils.js +34 -3
  121. package/dist/editor/utils.js.map +1 -1
  122. package/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -1
  123. package/dist/highlighter/languages/areLanguagesAttached.js +1 -2
  124. package/dist/highlighter/languages/areLanguagesAttached.js.map +1 -1
  125. package/dist/highlighter/languages/attachResolvedLanguages.d.ts +0 -2
  126. package/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -1
  127. package/dist/highlighter/languages/attachResolvedLanguages.js +1 -2
  128. package/dist/highlighter/languages/attachResolvedLanguages.js.map +1 -1
  129. package/dist/highlighter/languages/cleanUpResolvedLanguages.d.ts.map +1 -1
  130. package/dist/highlighter/languages/cleanUpResolvedLanguages.js +1 -2
  131. package/dist/highlighter/languages/cleanUpResolvedLanguages.js.map +1 -1
  132. package/dist/highlighter/languages/constants.d.ts +0 -1
  133. package/dist/highlighter/languages/constants.d.ts.map +1 -1
  134. package/dist/highlighter/languages/constants.js +1 -1
  135. package/dist/highlighter/languages/constants.js.map +1 -1
  136. package/dist/highlighter/languages/getResolvedLanguages.d.ts +0 -2
  137. package/dist/highlighter/languages/getResolvedLanguages.d.ts.map +1 -1
  138. package/dist/highlighter/languages/getResolvedLanguages.js +1 -2
  139. package/dist/highlighter/languages/getResolvedLanguages.js.map +1 -1
  140. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +0 -2
  141. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts.map +1 -1
  142. package/dist/highlighter/languages/getResolvedOrResolveLanguage.js +1 -2
  143. package/dist/highlighter/languages/getResolvedOrResolveLanguage.js.map +1 -1
  144. package/dist/highlighter/languages/hasResolvedLanguages.d.ts.map +1 -1
  145. package/dist/highlighter/languages/hasResolvedLanguages.js +1 -2
  146. package/dist/highlighter/languages/hasResolvedLanguages.js.map +1 -1
  147. package/dist/highlighter/languages/registerCustomLanguage.d.ts +0 -1
  148. package/dist/highlighter/languages/registerCustomLanguage.d.ts.map +1 -1
  149. package/dist/highlighter/languages/registerCustomLanguage.js +1 -2
  150. package/dist/highlighter/languages/registerCustomLanguage.js.map +1 -1
  151. package/dist/highlighter/languages/resolveLanguage.d.ts +0 -2
  152. package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
  153. package/dist/highlighter/languages/resolveLanguage.js +4 -5
  154. package/dist/highlighter/languages/resolveLanguage.js.map +1 -1
  155. package/dist/highlighter/languages/resolveLanguages.d.ts +0 -2
  156. package/dist/highlighter/languages/resolveLanguages.d.ts.map +1 -1
  157. package/dist/highlighter/languages/resolveLanguages.js +1 -2
  158. package/dist/highlighter/languages/resolveLanguages.js.map +1 -1
  159. package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
  160. package/dist/highlighter/shared_highlighter.js +6 -33
  161. package/dist/highlighter/shared_highlighter.js.map +1 -1
  162. package/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -1
  163. package/dist/highlighter/themes/areThemesAttached.js +1 -2
  164. package/dist/highlighter/themes/areThemesAttached.js.map +1 -1
  165. package/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -1
  166. package/dist/highlighter/themes/attachResolvedThemes.js +5 -5
  167. package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -1
  168. package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -1
  169. package/dist/highlighter/themes/cleanUpResolvedThemes.js +4 -4
  170. package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -1
  171. package/dist/highlighter/themes/constants.d.ts +1 -7
  172. package/dist/highlighter/themes/constants.d.ts.map +1 -1
  173. package/dist/highlighter/themes/constants.js +2 -5
  174. package/dist/highlighter/themes/constants.js.map +1 -1
  175. package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -1
  176. package/dist/highlighter/themes/getResolvedOrResolveTheme.js +3 -4
  177. package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -1
  178. package/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -1
  179. package/dist/highlighter/themes/getResolvedThemes.js +3 -10
  180. package/dist/highlighter/themes/getResolvedThemes.js.map +1 -1
  181. package/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -1
  182. package/dist/highlighter/themes/hasResolvedThemes.js +3 -5
  183. package/dist/highlighter/themes/hasResolvedThemes.js.map +1 -1
  184. package/dist/highlighter/themes/registerCustomCSSVariableTheme.d.ts.map +1 -1
  185. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js +2 -3
  186. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js.map +1 -1
  187. package/dist/highlighter/themes/registerCustomTheme.d.ts +5 -3
  188. package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
  189. package/dist/highlighter/themes/registerCustomTheme.js +16 -7
  190. package/dist/highlighter/themes/registerCustomTheme.js.map +1 -1
  191. package/dist/highlighter/themes/resolveTheme.d.ts.map +1 -1
  192. package/dist/highlighter/themes/resolveTheme.js +7 -29
  193. package/dist/highlighter/themes/resolveTheme.js.map +1 -1
  194. package/dist/highlighter/themes/resolveThemes.d.ts.map +1 -1
  195. package/dist/highlighter/themes/resolveThemes.js +6 -14
  196. package/dist/highlighter/themes/resolveThemes.js.map +1 -1
  197. package/dist/highlighter/themes/themeResolution.d.ts +8 -0
  198. package/dist/highlighter/themes/themeResolution.d.ts.map +1 -0
  199. package/dist/highlighter/themes/themeResolution.js +21 -0
  200. package/dist/highlighter/themes/themeResolution.js.map +1 -0
  201. package/dist/highlighter/themes/themeResolver.d.ts +8 -0
  202. package/dist/highlighter/themes/themeResolver.d.ts.map +1 -0
  203. package/dist/highlighter/themes/themeResolver.js +7 -0
  204. package/dist/highlighter/themes/themeResolver.js.map +1 -0
  205. package/dist/index.d.ts +16 -14
  206. package/dist/index.js +13 -12
  207. package/dist/managers/InteractionManager.d.ts +7 -0
  208. package/dist/managers/InteractionManager.d.ts.map +1 -1
  209. package/dist/managers/InteractionManager.js +26 -5
  210. package/dist/managers/InteractionManager.js.map +1 -1
  211. package/dist/managers/ResizeManager.d.ts +10 -2
  212. package/dist/managers/ResizeManager.d.ts.map +1 -1
  213. package/dist/managers/ResizeManager.js +35 -15
  214. package/dist/managers/ResizeManager.js.map +1 -1
  215. package/dist/managers/ScrollSyncManager.d.ts.map +1 -1
  216. package/dist/managers/ScrollSyncManager.js +1 -1
  217. package/dist/managers/ScrollSyncManager.js.map +1 -1
  218. package/dist/managers/UniversalRenderingManager.d.ts +2 -1
  219. package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
  220. package/dist/managers/UniversalRenderingManager.js +8 -3
  221. package/dist/managers/UniversalRenderingManager.js.map +1 -1
  222. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts +228 -0
  223. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts.map +1 -0
  224. package/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts +84 -0
  225. package/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts.map +1 -0
  226. package/dist/react/CodeView.d.ts +26 -2
  227. package/dist/react/CodeView.d.ts.map +1 -1
  228. package/dist/react/CodeView.js +90 -30
  229. package/dist/react/CodeView.js.map +1 -1
  230. package/dist/react/EditContext.d.ts +15 -0
  231. package/dist/react/EditContext.d.ts.map +1 -0
  232. package/dist/react/EditContext.js +23 -0
  233. package/dist/react/EditContext.js.map +1 -0
  234. package/dist/react/File.d.ts +1 -0
  235. package/dist/react/File.d.ts.map +1 -1
  236. package/dist/react/File.js +4 -6
  237. package/dist/react/File.js.map +1 -1
  238. package/dist/react/FileDiff.d.ts +1 -0
  239. package/dist/react/FileDiff.d.ts.map +1 -1
  240. package/dist/react/FileDiff.js +4 -6
  241. package/dist/react/FileDiff.js.map +1 -1
  242. package/dist/react/MultiFileDiff.d.ts +4 -4
  243. package/dist/react/MultiFileDiff.d.ts.map +1 -1
  244. package/dist/react/MultiFileDiff.js +4 -6
  245. package/dist/react/MultiFileDiff.js.map +1 -1
  246. package/dist/react/PatchDiff.d.ts +1 -0
  247. package/dist/react/PatchDiff.d.ts.map +1 -1
  248. package/dist/react/PatchDiff.js +4 -6
  249. package/dist/react/PatchDiff.js.map +1 -1
  250. package/dist/react/UnresolvedFile.d.ts +2 -1
  251. package/dist/react/UnresolvedFile.d.ts.map +1 -1
  252. package/dist/react/UnresolvedFile.js +4 -6
  253. package/dist/react/UnresolvedFile.js.map +1 -1
  254. package/dist/react/Virtualizer.d.ts.map +1 -1
  255. package/dist/react/Virtualizer.js +2 -5
  256. package/dist/react/Virtualizer.js.map +1 -1
  257. package/dist/react/WorkerPoolContext.d.ts +0 -1
  258. package/dist/react/WorkerPoolContext.d.ts.map +1 -1
  259. package/dist/react/WorkerPoolContext.js +2 -5
  260. package/dist/react/WorkerPoolContext.js.map +1 -1
  261. package/dist/react/constants.d.ts.map +1 -1
  262. package/dist/react/constants.js +1 -1
  263. package/dist/react/constants.js.map +1 -1
  264. package/dist/react/index.d.ts +3 -3
  265. package/dist/react/index.js +2 -3
  266. package/dist/react/jsx.d.ts +0 -1
  267. package/dist/react/jsx.d.ts.map +1 -1
  268. package/dist/react/types.d.ts +2 -0
  269. package/dist/react/types.d.ts.map +1 -1
  270. package/dist/react/types.js +1 -0
  271. package/dist/react/utils/renderDiffChildren.d.ts +2 -0
  272. package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  273. package/dist/react/utils/renderDiffChildren.js +18 -11
  274. package/dist/react/utils/renderDiffChildren.js.map +1 -1
  275. package/dist/react/utils/renderFileChildren.d.ts +2 -0
  276. package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  277. package/dist/react/utils/renderFileChildren.js +18 -11
  278. package/dist/react/utils/renderFileChildren.js.map +1 -1
  279. package/dist/react/utils/templateRender.d.ts.map +1 -1
  280. package/dist/react/utils/templateRender.js +1 -2
  281. package/dist/react/utils/templateRender.js.map +1 -1
  282. package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  283. package/dist/react/utils/useFileDiffInstance.js +15 -18
  284. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  285. package/dist/react/utils/useFileInstance.d.ts.map +1 -1
  286. package/dist/react/utils/useFileInstance.js +2 -3
  287. package/dist/react/utils/useFileInstance.js.map +1 -1
  288. package/dist/react/utils/useStableCallback.d.ts.map +1 -1
  289. package/dist/react/utils/useStableCallback.js +1 -2
  290. package/dist/react/utils/useStableCallback.js.map +1 -1
  291. package/dist/react/utils/useUnresolvedFileInstance.d.ts.map +1 -1
  292. package/dist/react/utils/useUnresolvedFileInstance.js +10 -11
  293. package/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
  294. package/dist/renderers/DiffHunksRenderer.d.ts +30 -4
  295. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  296. package/dist/renderers/DiffHunksRenderer.js +313 -45
  297. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  298. package/dist/renderers/FileRenderer.d.ts +7 -6
  299. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  300. package/dist/renderers/FileRenderer.js +113 -56
  301. package/dist/renderers/FileRenderer.js.map +1 -1
  302. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts +1 -2
  303. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
  304. package/dist/renderers/UnresolvedFileHunksRenderer.js +1 -2
  305. package/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
  306. package/dist/shiki-stream/index.js +1 -2
  307. package/dist/shiki-stream/stream.d.ts +0 -1
  308. package/dist/shiki-stream/stream.d.ts.map +1 -1
  309. package/dist/shiki-stream/stream.js +1 -2
  310. package/dist/shiki-stream/stream.js.map +1 -1
  311. package/dist/shiki-stream/tokenizer.d.ts.map +1 -1
  312. package/dist/shiki-stream/tokenizer.js +1 -1
  313. package/dist/shiki-stream/tokenizer.js.map +1 -1
  314. package/dist/shiki-stream/types.d.ts +0 -1
  315. package/dist/shiki-stream/types.d.ts.map +1 -1
  316. package/dist/sprite.d.ts.map +1 -1
  317. package/dist/sprite.js +1 -1
  318. package/dist/ssr/FileDiffReact.d.ts.map +1 -1
  319. package/dist/ssr/FileDiffReact.js +4 -7
  320. package/dist/ssr/FileDiffReact.js.map +1 -1
  321. package/dist/ssr/index.d.ts +2 -2
  322. package/dist/ssr/index.js +1 -2
  323. package/dist/ssr/preloadDiffs.d.ts +12 -11
  324. package/dist/ssr/preloadDiffs.d.ts.map +1 -1
  325. package/dist/ssr/preloadDiffs.js +16 -9
  326. package/dist/ssr/preloadDiffs.js.map +1 -1
  327. package/dist/ssr/preloadFile.d.ts.map +1 -1
  328. package/dist/ssr/preloadFile.js +1 -2
  329. package/dist/ssr/preloadFile.js.map +1 -1
  330. package/dist/ssr/preloadPatchFile.d.ts.map +1 -1
  331. package/dist/ssr/preloadPatchFile.js +2 -3
  332. package/dist/ssr/preloadPatchFile.js.map +1 -1
  333. package/dist/ssr/renderHTML.d.ts +1 -1
  334. package/dist/ssr/renderHTML.d.ts.map +1 -1
  335. package/dist/ssr/renderHTML.js +1 -2
  336. package/dist/ssr/renderHTML.js.map +1 -1
  337. package/dist/string-import.d.ts +4 -0
  338. package/dist/string-import.d.ts.map +1 -1
  339. package/dist/style.js +3 -3
  340. package/dist/style.js.map +1 -1
  341. package/dist/types.d.ts +272 -31
  342. package/dist/types.d.ts.map +1 -1
  343. package/dist/utils/applyLineTextWithNewline.d.ts +5 -0
  344. package/dist/utils/applyLineTextWithNewline.d.ts.map +1 -0
  345. package/dist/utils/applyLineTextWithNewline.js +11 -0
  346. package/dist/utils/applyLineTextWithNewline.js.map +1 -0
  347. package/dist/utils/areDiffLineAnnotationsEqual.d.ts.map +1 -1
  348. package/dist/utils/areDiffLineAnnotationsEqual.js +1 -1
  349. package/dist/utils/areDiffLineAnnotationsEqual.js.map +1 -1
  350. package/dist/utils/areDiffRenderOptionsEqual.d.ts.map +1 -1
  351. package/dist/utils/areDiffRenderOptionsEqual.js +1 -2
  352. package/dist/utils/areDiffRenderOptionsEqual.js.map +1 -1
  353. package/dist/utils/areDiffTargetsEqual.d.ts.map +1 -1
  354. package/dist/utils/areDiffTargetsEqual.js +1 -1
  355. package/dist/utils/areDiffTargetsEqual.js.map +1 -1
  356. package/dist/utils/areFileRenderOptionsEqual.d.ts.map +1 -1
  357. package/dist/utils/areFileRenderOptionsEqual.js +1 -2
  358. package/dist/utils/areFileRenderOptionsEqual.js.map +1 -1
  359. package/dist/utils/areFilesEqual.d.ts.map +1 -1
  360. package/dist/utils/areFilesEqual.js +1 -1
  361. package/dist/utils/areFilesEqual.js.map +1 -1
  362. package/dist/utils/areHunkDataEqual.d.ts.map +1 -1
  363. package/dist/utils/areHunkDataEqual.js +2 -2
  364. package/dist/utils/areHunkDataEqual.js.map +1 -1
  365. package/dist/utils/areLineAnnotationsEqual.d.ts.map +1 -1
  366. package/dist/utils/areLineAnnotationsEqual.js +1 -1
  367. package/dist/utils/areLineAnnotationsEqual.js.map +1 -1
  368. package/dist/utils/areManagedSnapshotsEqual.d.ts +2 -2
  369. package/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  370. package/dist/utils/areManagedSnapshotsEqual.js +6 -1
  371. package/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  372. package/dist/utils/areMergeConflictActionsEqual.d.ts.map +1 -1
  373. package/dist/utils/areMergeConflictActionsEqual.js +1 -1
  374. package/dist/utils/areMergeConflictActionsEqual.js.map +1 -1
  375. package/dist/utils/areObjectsEqual.d.ts.map +1 -1
  376. package/dist/utils/areObjectsEqual.js +1 -1
  377. package/dist/utils/areObjectsEqual.js.map +1 -1
  378. package/dist/utils/areOptionsEqual.d.ts +0 -2
  379. package/dist/utils/areOptionsEqual.d.ts.map +1 -1
  380. package/dist/utils/areOptionsEqual.js +1 -2
  381. package/dist/utils/areOptionsEqual.js.map +1 -1
  382. package/dist/utils/arePrePropertiesEqual.d.ts.map +1 -1
  383. package/dist/utils/arePrePropertiesEqual.js +1 -1
  384. package/dist/utils/arePrePropertiesEqual.js.map +1 -1
  385. package/dist/utils/areRenderRangesEqual.d.ts.map +1 -1
  386. package/dist/utils/areRenderRangesEqual.js +1 -1
  387. package/dist/utils/areRenderRangesEqual.js.map +1 -1
  388. package/dist/utils/areSelectionPointsEqual.d.ts.map +1 -1
  389. package/dist/utils/areSelectionPointsEqual.js +1 -1
  390. package/dist/utils/areSelectionPointsEqual.js.map +1 -1
  391. package/dist/utils/areSelectionsEqual.d.ts.map +1 -1
  392. package/dist/utils/areSelectionsEqual.js +1 -1
  393. package/dist/utils/areSelectionsEqual.js.map +1 -1
  394. package/dist/utils/areThemesEqual.d.ts.map +1 -1
  395. package/dist/utils/areThemesEqual.js +1 -1
  396. package/dist/utils/areThemesEqual.js.map +1 -1
  397. package/dist/utils/areVirtualWindowSpecsEqual.d.ts.map +1 -1
  398. package/dist/utils/areVirtualWindowSpecsEqual.js +1 -1
  399. package/dist/utils/areVirtualWindowSpecsEqual.js.map +1 -1
  400. package/dist/utils/areWorkerStatsEqual.d.ts +0 -2
  401. package/dist/utils/areWorkerStatsEqual.d.ts.map +1 -1
  402. package/dist/utils/areWorkerStatsEqual.js +1 -1
  403. package/dist/utils/areWorkerStatsEqual.js.map +1 -1
  404. package/dist/utils/awaitWithTimeout.d.ts +5 -0
  405. package/dist/utils/awaitWithTimeout.d.ts.map +1 -0
  406. package/dist/utils/awaitWithTimeout.js +15 -0
  407. package/dist/utils/awaitWithTimeout.js.map +1 -0
  408. package/dist/utils/cleanLastNewline.d.ts.map +1 -1
  409. package/dist/utils/cleanLastNewline.js +1 -1
  410. package/dist/utils/cleanLastNewline.js.map +1 -1
  411. package/dist/utils/cloneFileDiffMetadata.d.ts +7 -0
  412. package/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -0
  413. package/dist/utils/cloneFileDiffMetadata.js +16 -0
  414. package/dist/utils/cloneFileDiffMetadata.js.map +1 -0
  415. package/dist/utils/computeEstimatedDiffHeights.d.ts +3 -1
  416. package/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
  417. package/dist/utils/computeEstimatedDiffHeights.js +18 -23
  418. package/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
  419. package/dist/utils/computeFileOffsets.d.ts +9 -1
  420. package/dist/utils/computeFileOffsets.d.ts.map +1 -1
  421. package/dist/utils/computeFileOffsets.js +20 -2
  422. package/dist/utils/computeFileOffsets.js.map +1 -1
  423. package/dist/utils/computeVirtualFileMetrics.d.ts.map +1 -1
  424. package/dist/utils/computeVirtualFileMetrics.js +1 -2
  425. package/dist/utils/computeVirtualFileMetrics.js.map +1 -1
  426. package/dist/utils/createAnnotationElement.d.ts +1 -1
  427. package/dist/utils/createAnnotationElement.d.ts.map +1 -1
  428. package/dist/utils/createAnnotationElement.js +1 -2
  429. package/dist/utils/createAnnotationElement.js.map +1 -1
  430. package/dist/utils/createAnnotationWrapperNode.d.ts.map +1 -1
  431. package/dist/utils/createAnnotationWrapperNode.js +1 -1
  432. package/dist/utils/createAnnotationWrapperNode.js.map +1 -1
  433. package/dist/utils/createCodeViewHeaderFooterHostElement.d.ts +5 -0
  434. package/dist/utils/createCodeViewHeaderFooterHostElement.d.ts.map +1 -0
  435. package/dist/utils/createCodeViewHeaderFooterHostElement.js +19 -0
  436. package/dist/utils/createCodeViewHeaderFooterHostElement.js.map +1 -0
  437. package/dist/utils/createContentColumn.d.ts +1 -1
  438. package/dist/utils/createContentColumn.d.ts.map +1 -1
  439. package/dist/utils/createContentColumn.js +1 -2
  440. package/dist/utils/createContentColumn.js.map +1 -1
  441. package/dist/utils/createEmptyRowBuffer.d.ts +1 -1
  442. package/dist/utils/createEmptyRowBuffer.d.ts.map +1 -1
  443. package/dist/utils/createEmptyRowBuffer.js +1 -2
  444. package/dist/utils/createEmptyRowBuffer.js.map +1 -1
  445. package/dist/utils/createFileHeaderElement.d.ts +1 -1
  446. package/dist/utils/createFileHeaderElement.d.ts.map +1 -1
  447. package/dist/utils/createFileHeaderElement.js +6 -3
  448. package/dist/utils/createFileHeaderElement.js.map +1 -1
  449. package/dist/utils/createGutterUtilityContentNode.d.ts.map +1 -1
  450. package/dist/utils/createGutterUtilityContentNode.js +1 -1
  451. package/dist/utils/createGutterUtilityContentNode.js.map +1 -1
  452. package/dist/utils/createGutterUtilityElement.d.ts +1 -1
  453. package/dist/utils/createGutterUtilityElement.d.ts.map +1 -1
  454. package/dist/utils/createGutterUtilityElement.js +1 -2
  455. package/dist/utils/createGutterUtilityElement.js.map +1 -1
  456. package/dist/utils/createNoNewlineElement.d.ts +1 -1
  457. package/dist/utils/createNoNewlineElement.d.ts.map +1 -1
  458. package/dist/utils/createNoNewlineElement.js +1 -2
  459. package/dist/utils/createNoNewlineElement.js.map +1 -1
  460. package/dist/utils/createPreElement.d.ts +1 -1
  461. package/dist/utils/createPreElement.d.ts.map +1 -1
  462. package/dist/utils/createPreElement.js +1 -3
  463. package/dist/utils/createPreElement.js.map +1 -1
  464. package/dist/utils/createRowNodes.d.ts.map +1 -1
  465. package/dist/utils/createRowNodes.js +1 -1
  466. package/dist/utils/createRowNodes.js.map +1 -1
  467. package/dist/utils/createSeparator.d.ts +1 -1
  468. package/dist/utils/createSeparator.d.ts.map +1 -1
  469. package/dist/utils/createSeparator.js +1 -2
  470. package/dist/utils/createSeparator.js.map +1 -1
  471. package/dist/utils/createSpanNodeFromToken.d.ts.map +1 -1
  472. package/dist/utils/createSpanNodeFromToken.js +1 -2
  473. package/dist/utils/createSpanNodeFromToken.js.map +1 -1
  474. package/dist/utils/createStyleElement.d.ts +1 -1
  475. package/dist/utils/createStyleElement.d.ts.map +1 -1
  476. package/dist/utils/createStyleElement.js +1 -2
  477. package/dist/utils/createStyleElement.js.map +1 -1
  478. package/dist/utils/createTransformerWithState.d.ts.map +1 -1
  479. package/dist/utils/createTransformerWithState.js +1 -2
  480. package/dist/utils/createTransformerWithState.js.map +1 -1
  481. package/dist/utils/createUnsafeCSSStyleNode.d.ts.map +1 -1
  482. package/dist/utils/createUnsafeCSSStyleNode.js +1 -2
  483. package/dist/utils/createUnsafeCSSStyleNode.js.map +1 -1
  484. package/dist/utils/createWindowFromScrollPosition.d.ts.map +1 -1
  485. package/dist/utils/createWindowFromScrollPosition.js +5 -5
  486. package/dist/utils/createWindowFromScrollPosition.js.map +1 -1
  487. package/dist/utils/cssWrappers.d.ts.map +1 -1
  488. package/dist/utils/cssWrappers.js +2 -3
  489. package/dist/utils/cssWrappers.js.map +1 -1
  490. package/dist/utils/detachString.d.ts.map +1 -1
  491. package/dist/utils/detachString.js +1 -1
  492. package/dist/utils/detachString.js.map +1 -1
  493. package/dist/utils/diffAcceptRejectHunk.d.ts.map +1 -1
  494. package/dist/utils/diffAcceptRejectHunk.js +1 -2
  495. package/dist/utils/diffAcceptRejectHunk.js.map +1 -1
  496. package/dist/utils/editSessionHunks.d.ts +84 -0
  497. package/dist/utils/editSessionHunks.d.ts.map +1 -0
  498. package/dist/utils/editSessionHunks.js +366 -0
  499. package/dist/utils/editSessionHunks.js.map +1 -0
  500. package/dist/utils/formatCSSVariablePrefix.d.ts.map +1 -1
  501. package/dist/utils/formatCSSVariablePrefix.js +1 -1
  502. package/dist/utils/formatCSSVariablePrefix.js.map +1 -1
  503. package/dist/utils/getDiffFileInput.d.ts +14 -0
  504. package/dist/utils/getDiffFileInput.d.ts.map +1 -0
  505. package/dist/utils/getDiffFileInput.js +24 -0
  506. package/dist/utils/getDiffFileInput.js.map +1 -0
  507. package/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
  508. package/dist/utils/getDiffHunksRendererOptions.js +2 -1
  509. package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  510. package/dist/utils/getFileRendererOptions.d.ts.map +1 -1
  511. package/dist/utils/getFileRendererOptions.js +1 -1
  512. package/dist/utils/getFileRendererOptions.js.map +1 -1
  513. package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
  514. package/dist/utils/getFiletypeFromFileName.js +3 -1
  515. package/dist/utils/getFiletypeFromFileName.js.map +1 -1
  516. package/dist/utils/getHighlighterOptions.d.ts.map +1 -1
  517. package/dist/utils/getHighlighterOptions.js +1 -2
  518. package/dist/utils/getHighlighterOptions.js.map +1 -1
  519. package/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -1
  520. package/dist/utils/getHighlighterThemeStyles.js +17 -14
  521. package/dist/utils/getHighlighterThemeStyles.js.map +1 -1
  522. package/dist/utils/getHunkSeparatorSlotName.d.ts.map +1 -1
  523. package/dist/utils/getHunkSeparatorSlotName.js +1 -1
  524. package/dist/utils/getHunkSeparatorSlotName.js.map +1 -1
  525. package/dist/utils/getIconForType.d.ts.map +1 -1
  526. package/dist/utils/getIconForType.js +1 -1
  527. package/dist/utils/getIconForType.js.map +1 -1
  528. package/dist/utils/getLineAnnotationName.d.ts.map +1 -1
  529. package/dist/utils/getLineAnnotationName.js +1 -1
  530. package/dist/utils/getLineAnnotationName.js.map +1 -1
  531. package/dist/utils/getLineEndingType.d.ts.map +1 -1
  532. package/dist/utils/getLineEndingType.js +1 -1
  533. package/dist/utils/getLineEndingType.js.map +1 -1
  534. package/dist/utils/getLineNodes.d.ts +1 -1
  535. package/dist/utils/getLineNodes.d.ts.map +1 -1
  536. package/dist/utils/getLineNodes.js +1 -1
  537. package/dist/utils/getLineNodes.js.map +1 -1
  538. package/dist/utils/getMergeConflictActionSlotName.d.ts.map +1 -1
  539. package/dist/utils/getMergeConflictActionSlotName.js +1 -1
  540. package/dist/utils/getMergeConflictActionSlotName.js.map +1 -1
  541. package/dist/utils/getMergeConflictLineTypes.d.ts.map +1 -1
  542. package/dist/utils/getMergeConflictLineTypes.js +1 -2
  543. package/dist/utils/getMergeConflictLineTypes.js.map +1 -1
  544. package/dist/utils/getOrCreateCodeNode.d.ts.map +1 -1
  545. package/dist/utils/getOrCreateCodeNode.js +1 -1
  546. package/dist/utils/getOrCreateCodeNode.js.map +1 -1
  547. package/dist/utils/getSingularPatch.d.ts.map +1 -1
  548. package/dist/utils/getSingularPatch.js +1 -2
  549. package/dist/utils/getSingularPatch.js.map +1 -1
  550. package/dist/utils/getThemes.d.ts.map +1 -1
  551. package/dist/utils/getThemes.js +1 -2
  552. package/dist/utils/getThemes.js.map +1 -1
  553. package/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
  554. package/dist/utils/getTotalLineCountFromHunks.js +1 -1
  555. package/dist/utils/getTotalLineCountFromHunks.js.map +1 -1
  556. package/dist/utils/hast_utils.d.ts +1 -1
  557. package/dist/utils/hast_utils.d.ts.map +1 -1
  558. package/dist/utils/hast_utils.js +1 -1
  559. package/dist/utils/hast_utils.js.map +1 -1
  560. package/dist/utils/hostTheme.d.ts.map +1 -1
  561. package/dist/utils/hostTheme.js +1 -2
  562. package/dist/utils/hostTheme.js.map +1 -1
  563. package/dist/utils/hydratePartialDiff.d.ts +10 -0
  564. package/dist/utils/hydratePartialDiff.d.ts.map +1 -0
  565. package/dist/utils/hydratePartialDiff.js +140 -0
  566. package/dist/utils/hydratePartialDiff.js.map +1 -0
  567. package/dist/utils/includesFileAnnotations.d.ts +17 -0
  568. package/dist/utils/includesFileAnnotations.d.ts.map +1 -0
  569. package/dist/utils/includesFileAnnotations.js +19 -0
  570. package/dist/utils/includesFileAnnotations.js.map +1 -0
  571. package/dist/utils/isDefaultRenderRange.d.ts.map +1 -1
  572. package/dist/utils/isDefaultRenderRange.js +1 -1
  573. package/dist/utils/isDefaultRenderRange.js.map +1 -1
  574. package/dist/utils/isDiffPlainText.d.ts.map +1 -1
  575. package/dist/utils/isDiffPlainText.js +1 -2
  576. package/dist/utils/isDiffPlainText.js.map +1 -1
  577. package/dist/utils/isFilePlainText.d.ts.map +1 -1
  578. package/dist/utils/isFilePlainText.js +1 -2
  579. package/dist/utils/isFilePlainText.js.map +1 -1
  580. package/dist/utils/isStyleNode.d.ts.map +1 -1
  581. package/dist/utils/isStyleNode.js +1 -1
  582. package/dist/utils/isStyleNode.js.map +1 -1
  583. package/dist/utils/isWorkerContext.d.ts.map +1 -1
  584. package/dist/utils/isWorkerContext.js +1 -1
  585. package/dist/utils/isWorkerContext.js.map +1 -1
  586. package/dist/utils/iterateOverDiff.d.ts.map +1 -1
  587. package/dist/utils/iterateOverDiff.js +178 -214
  588. package/dist/utils/iterateOverDiff.js.map +1 -1
  589. package/dist/utils/normalizeDiffResolution.d.ts.map +1 -1
  590. package/dist/utils/normalizeDiffResolution.js +1 -1
  591. package/dist/utils/normalizeDiffResolution.js.map +1 -1
  592. package/dist/utils/parseDiffDecorations.d.ts.map +1 -1
  593. package/dist/utils/parseDiffDecorations.js +1 -2
  594. package/dist/utils/parseDiffDecorations.js.map +1 -1
  595. package/dist/utils/parseDiffFromFile.d.ts +1 -2
  596. package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  597. package/dist/utils/parseDiffFromFile.js +27 -7
  598. package/dist/utils/parseDiffFromFile.js.map +1 -1
  599. package/dist/utils/parseLineType.d.ts.map +1 -1
  600. package/dist/utils/parseLineType.js +1 -1
  601. package/dist/utils/parseLineType.js.map +1 -1
  602. package/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
  603. package/dist/utils/parseMergeConflictDiffFromFile.js +5 -5
  604. package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
  605. package/dist/utils/parsePatchFiles.d.ts.map +1 -1
  606. package/dist/utils/parsePatchFiles.js +101 -11
  607. package/dist/utils/parsePatchFiles.js.map +1 -1
  608. package/dist/utils/prefersReducedMotion.d.ts.map +1 -1
  609. package/dist/utils/prefersReducedMotion.js +1 -1
  610. package/dist/utils/prefersReducedMotion.js.map +1 -1
  611. package/dist/utils/prerenderHTMLIfNecessary.d.ts.map +1 -1
  612. package/dist/utils/prerenderHTMLIfNecessary.js +1 -1
  613. package/dist/utils/prerenderHTMLIfNecessary.js.map +1 -1
  614. package/dist/utils/processLine.d.ts +1 -1
  615. package/dist/utils/processLine.d.ts.map +1 -1
  616. package/dist/utils/processLine.js +1 -2
  617. package/dist/utils/processLine.js.map +1 -1
  618. package/dist/utils/realignChangeContent.d.ts +28 -0
  619. package/dist/utils/realignChangeContent.d.ts.map +1 -0
  620. package/dist/utils/realignChangeContent.js +142 -0
  621. package/dist/utils/realignChangeContent.js.map +1 -0
  622. package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  623. package/dist/utils/renderDiffWithHighlighter.js +9 -8
  624. package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  625. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  626. package/dist/utils/renderFileWithHighlighter.js +5 -4
  627. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  628. package/dist/utils/resolveConflict.d.ts.map +1 -1
  629. package/dist/utils/resolveConflict.js +1 -2
  630. package/dist/utils/resolveConflict.js.map +1 -1
  631. package/dist/utils/resolveRegion.d.ts.map +1 -1
  632. package/dist/utils/resolveRegion.js +1 -1
  633. package/dist/utils/resolveRegion.js.map +1 -1
  634. package/dist/utils/roundToDevicePixel.d.ts.map +1 -1
  635. package/dist/utils/roundToDevicePixel.js +1 -1
  636. package/dist/utils/roundToDevicePixel.js.map +1 -1
  637. package/dist/utils/scrollbarGutter.d.ts.map +1 -1
  638. package/dist/utils/scrollbarGutter.js +1 -2
  639. package/dist/utils/scrollbarGutter.js.map +1 -1
  640. package/dist/utils/setLanguageOverride.d.ts.map +1 -1
  641. package/dist/utils/setLanguageOverride.js +1 -1
  642. package/dist/utils/setLanguageOverride.js.map +1 -1
  643. package/dist/utils/setWrapperNodeProps.d.ts.map +1 -1
  644. package/dist/utils/setWrapperNodeProps.js +1 -2
  645. package/dist/utils/setWrapperNodeProps.js.map +1 -1
  646. package/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -1
  647. package/dist/utils/shouldUseTokenTransformer.js +1 -1
  648. package/dist/utils/shouldUseTokenTransformer.js.map +1 -1
  649. package/dist/utils/splitFileContents.d.ts.map +1 -1
  650. package/dist/utils/splitFileContents.js +1 -2
  651. package/dist/utils/splitFileContents.js.map +1 -1
  652. package/dist/utils/trimPatchContext.d.ts.map +1 -1
  653. package/dist/utils/trimPatchContext.js +1 -2
  654. package/dist/utils/trimPatchContext.js.map +1 -1
  655. package/dist/utils/updateDiffHunks.d.ts +24 -0
  656. package/dist/utils/updateDiffHunks.d.ts.map +1 -0
  657. package/dist/utils/updateDiffHunks.js +235 -0
  658. package/dist/utils/updateDiffHunks.js.map +1 -0
  659. package/dist/utils/virtualDiffLayout.d.ts +62 -2
  660. package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
  661. package/dist/utils/virtualDiffLayout.js +137 -3
  662. package/dist/utils/virtualDiffLayout.js.map +1 -1
  663. package/dist/utils/wrapTokenFragments.d.ts +1 -1
  664. package/dist/utils/wrapTokenFragments.d.ts.map +1 -1
  665. package/dist/utils/wrapTokenFragments.js +1 -2
  666. package/dist/utils/wrapTokenFragments.js.map +1 -1
  667. package/dist/worker/WorkerPoolManager.d.ts +7 -2
  668. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  669. package/dist/worker/WorkerPoolManager.js +88 -23
  670. package/dist/worker/WorkerPoolManager.js.map +1 -1
  671. package/dist/worker/getOrCreateWorkerPoolSingleton.d.ts.map +1 -1
  672. package/dist/worker/getOrCreateWorkerPoolSingleton.js +1 -2
  673. package/dist/worker/getOrCreateWorkerPoolSingleton.js.map +1 -1
  674. package/dist/worker/index.d.ts +2 -2
  675. package/dist/worker/index.js +1 -2
  676. package/dist/worker/types.d.ts +11 -1
  677. package/dist/worker/types.d.ts.map +1 -1
  678. package/dist/worker/wasm-B9ZqxnKj.js +8 -0
  679. package/dist/worker/wasm-B9ZqxnKj.js.map +1 -0
  680. package/dist/worker/worker-portable.js +3335 -6214
  681. package/dist/worker/worker-portable.js.map +1 -1
  682. package/dist/worker/worker.js +287 -309
  683. package/dist/worker/worker.js.map +1 -1
  684. package/package.json +29 -32
  685. package/dist/editor/css.d.ts +0 -6
  686. package/dist/editor/css.d.ts.map +0 -1
  687. package/dist/editor/css.js +0 -218
  688. package/dist/editor/css.js.map +0 -1
  689. package/dist/editor/quickEdit.d.ts +0 -29
  690. package/dist/editor/quickEdit.d.ts.map +0 -1
  691. package/dist/editor/quickEdit.js +0 -81
  692. package/dist/editor/quickEdit.js.map +0 -1
  693. package/dist/editor/tokenzier.d.ts.map +0 -1
  694. package/dist/editor/tokenzier.js +0 -348
  695. package/dist/editor/tokenzier.js.map +0 -1
  696. package/dist/react/EditorContext.d.ts +0 -16
  697. package/dist/react/EditorContext.d.ts.map +0 -1
  698. package/dist/react/EditorContext.js +0 -26
  699. package/dist/react/EditorContext.js.map +0 -1
  700. package/dist/worker/wasm-D4DU5jgR.js +0 -10
  701. package/dist/worker/wasm-D4DU5jgR.js.map +0 -1
@@ -1,16 +1,18 @@
1
- import { CORE_CSS_ATTRIBUTE, DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DIFFS_DEVELOPMENT_BUILD, DIFFS_TAG_NAME, THEME_CSS_ATTRIBUTE, UNSAFE_CSS_ATTRIBUTE } from "../constants.js";
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";
11
14
  import { VirtualizedFile } from "./VirtualizedFile.js";
12
15
  import { VirtualizedFileDiff } from "./VirtualizedFileDiff.js";
13
-
14
16
  //#region src/components/CodeView.ts
15
17
  const CODE_VIEW_DIFF_OPTION_KEYS = [
16
18
  "theme",
@@ -29,6 +31,7 @@ const CODE_VIEW_DIFF_OPTION_KEYS = [
29
31
  "diffIndicators",
30
32
  "disableBackground",
31
33
  "expandUnchanged",
34
+ "loadDiffFiles",
32
35
  "collapsedContextThreshold",
33
36
  "lineDiffType",
34
37
  "maxLineDiffLength",
@@ -62,9 +65,16 @@ const CODE_VIEW_FILE_OPTION_KEYS = [
62
65
  "controlledSelection",
63
66
  "disableErrorHandling"
64
67
  ];
68
+ const CODE_VIEW_EDIT_FORCED_OPTION_KEYS = /* @__PURE__ */ new Set([
69
+ "useTokenTransformer",
70
+ "enableGutterUtility",
71
+ "enableLineSelection",
72
+ "lineHoverHighlight"
73
+ ]);
65
74
  const CODE_VIEW_SHARED_CALLBACK_KEYS = [
66
75
  "renderCustomHeader",
67
76
  "renderHeaderPrefix",
77
+ "renderHeaderFilenameSuffix",
68
78
  "renderHeaderMetadata",
69
79
  "renderAnnotation",
70
80
  "renderGutterUtility",
@@ -130,6 +140,8 @@ var CodeView = class CodeView {
130
140
  items = [];
131
141
  idToItem = /* @__PURE__ */ new Map();
132
142
  selectedLines = null;
143
+ itemEditors = /* @__PURE__ */ new Map();
144
+ attachedEditors = /* @__PURE__ */ new Set();
133
145
  instanceToItem = /* @__PURE__ */ new Map();
134
146
  layoutDirtyIndex;
135
147
  pendingLayoutReset;
@@ -164,18 +176,30 @@ var CodeView = class CodeView {
164
176
  diffOptionsPrototype;
165
177
  pendingScrollTarget;
166
178
  pendingLayoutAnchor;
179
+ shouldFixContainerFocus = false;
167
180
  scrollAnimation;
168
181
  root;
169
182
  resizeObserver;
170
183
  container = document.createElement("div");
171
184
  stickyContainer = document.createElement("div");
172
185
  stickyOffset = document.createElement("div");
186
+ header = {
187
+ element: void 0,
188
+ render: void 0,
189
+ height: 0
190
+ };
191
+ footer = {
192
+ element: void 0,
193
+ render: void 0,
194
+ height: 0
195
+ };
173
196
  elementPool = [];
174
197
  elementPoolVersion = 0;
175
198
  elementPoolTracker = /* @__PURE__ */ new WeakMap();
176
199
  pendingElementPool = [];
177
200
  options;
178
201
  workerManager;
202
+ isReadySubscription;
179
203
  isContainerManaged;
180
204
  constructor(options = { theme: DEFAULT_THEMES }, workerManager, isContainerManaged = false) {
181
205
  this.options = options;
@@ -195,6 +219,9 @@ var CodeView = class CodeView {
195
219
  getLayout() {
196
220
  return this.options.layout ?? DEFAULT_CODE_VIEW_LAYOUT;
197
221
  }
222
+ getItemTopOffset() {
223
+ return this.getLayout().paddingTop + this.header.height;
224
+ }
198
225
  computeMetricsCache(itemMetrics) {
199
226
  this.itemMetricsCache = {
200
227
  hunkLineCount: itemMetrics?.hunkLineCount ?? DEFAULT_CODE_VIEW_FILE_METRICS.hunkLineCount,
@@ -240,6 +267,28 @@ var CodeView = class CodeView {
240
267
  instance: item.instance
241
268
  });
242
269
  }
270
+ validateStickyContainerHeight() {
271
+ if (!this.shouldValidateItemHeights()) return;
272
+ const { firstIndex, lastIndex, stickyHeight, stickyTop, stickyBottom } = this.renderState;
273
+ if (firstIndex === -1 || lastIndex === -1) return;
274
+ const actualHeight = this.stickyContainer.getBoundingClientRect().height;
275
+ if (Math.abs(actualHeight - stickyHeight) < 1) return;
276
+ console.error("CodeView: sticky container height does not match computed layout", {
277
+ computedStickyHeight: stickyHeight,
278
+ actualStickyHeight: actualHeight,
279
+ delta: actualHeight - stickyHeight,
280
+ stickyTop,
281
+ stickyBottom,
282
+ firstIndex,
283
+ lastIndex,
284
+ firstStickySpecs: this.items[firstIndex]?.instance.getAdvancedStickySpecs(),
285
+ lastStickySpecs: this.items[lastIndex]?.instance.getAdvancedStickySpecs(),
286
+ scrollTop: this.getScrollTop(),
287
+ scrollPageOffset: this.scrollPageOffset,
288
+ windowSpecs: { ...this.windowSpecs },
289
+ stickyContainer: this.stickyContainer
290
+ });
291
+ }
243
292
  clearScrollInteractionTimer() {
244
293
  if (this.scrollInteractionFixTimer != null) {
245
294
  clearTimeout(this.scrollInteractionFixTimer);
@@ -275,11 +324,49 @@ var CodeView = class CodeView {
275
324
  this.container?.style.setProperty("margin-top", `${paddingTop}px`);
276
325
  this.container?.style.setProperty("margin-bottom", `${paddingBottom}px`);
277
326
  }
327
+ reconcileHeaderFooterHosts() {
328
+ const headerChanged = this.reconcileHost("header");
329
+ const footerChanged = this.reconcileHost("footer");
330
+ return headerChanged || footerChanged;
331
+ }
332
+ reconcileHost(type) {
333
+ const { root, container } = this;
334
+ if (root == null || container == null) return false;
335
+ const host = type === "header" ? this.header : this.footer;
336
+ const render = type === "header" ? this.options.renderCodeViewHeader : this.options.renderCodeViewFooter;
337
+ if (render == null) {
338
+ if (host.element == null) return false;
339
+ this.resizeObserver?.unobserve(host.element);
340
+ host.element.remove();
341
+ host.element = void 0;
342
+ host.render = void 0;
343
+ this.setHostHeight(host, 0);
344
+ return false;
345
+ }
346
+ if (host.element != null && render === host.render) return false;
347
+ const element = host.element ?? createCodeViewHeaderFooterHostElement(type, container, this.resizeObserver);
348
+ host.element = element;
349
+ const content = render();
350
+ if (content != null) element.replaceChildren(content);
351
+ else if (!this.isContainerManaged && element.children.length > 0) element.textContent = "";
352
+ host.render = render;
353
+ return true;
354
+ }
355
+ setHostHeight(host, height) {
356
+ if (host.height === height) return;
357
+ host.height = height;
358
+ this.scrollDirty = true;
359
+ }
360
+ measureMountedHosts() {
361
+ if (this.header.element != null) this.setHostHeight(this.header, this.header.element.getBoundingClientRect().height);
362
+ if (this.footer.element != null) this.setHostHeight(this.footer, this.footer.element.getBoundingClientRect().height);
363
+ }
278
364
  setup(root) {
279
365
  if (this.root != null) throw new Error("CodeView.setup: already setup");
280
366
  this.workerManager?.subscribeToThemeChanges(this);
281
367
  this.root = root;
282
368
  this.root.style.overflowAnchor = "none";
369
+ if (!this.root.hasAttribute("tabindex")) this.root.tabIndex = -1;
283
370
  this.container ??= document.createElement("div");
284
371
  this.container.style.contain = "layout style";
285
372
  this.syncLayout();
@@ -313,8 +400,13 @@ var CodeView = class CodeView {
313
400
  };
314
401
  }
315
402
  reset() {
403
+ dequeueRender(this.computeRenderRangeAndEmit);
404
+ this.clearReadySubscription();
316
405
  this.restoreScrollInteractions();
317
406
  this.cleanAllRenderedItems();
407
+ for (const record of this.itemEditors.values()) record.editor.cleanUp();
408
+ this.itemEditors.clear();
409
+ this.attachedEditors.clear();
318
410
  this.selectedLines = null;
319
411
  this.items.length = 0;
320
412
  this.idToItem.clear();
@@ -330,6 +422,7 @@ var CodeView = class CodeView {
330
422
  bottom: 0
331
423
  };
332
424
  this.pendingLayoutAnchor = void 0;
425
+ this.shouldFixContainerFocus = false;
333
426
  this.height = 0;
334
427
  this.scrollTop = 0;
335
428
  this.scrollPageOffset = 0;
@@ -356,6 +449,14 @@ var CodeView = class CodeView {
356
449
  this.stickyOffset.remove();
357
450
  this.stickyContainer.remove();
358
451
  this.stickyContainer.textContent = "";
452
+ this.header.element?.remove();
453
+ this.header.element = void 0;
454
+ this.header.render = void 0;
455
+ this.header.height = 0;
456
+ this.footer.element?.remove();
457
+ this.footer.element = void 0;
458
+ this.footer.render = void 0;
459
+ this.footer.height = 0;
359
460
  this.root = void 0;
360
461
  this.container = void 0;
361
462
  }
@@ -388,13 +489,25 @@ var CodeView = class CodeView {
388
489
  }
389
490
  releaseRenderedItem(item) {
390
491
  const { element } = item;
492
+ if (element != null && this.renderedItemOwnsFocus(element)) this.shouldFixContainerFocus = true;
391
493
  item.instance.cleanUp(true);
494
+ this.attachedEditors.delete(item.item.id);
392
495
  item.element = void 0;
393
496
  if (element == null) return;
394
497
  element.remove();
395
498
  this.cleanElement(element);
396
499
  this.queueElementForPool(element);
397
500
  }
501
+ renderedItemOwnsFocus(element) {
502
+ const { activeElement } = document;
503
+ return activeElement === element || element.contains(activeElement) || element.shadowRoot?.activeElement != null;
504
+ }
505
+ fixContainerFocus() {
506
+ if (this.shouldFixContainerFocus) {
507
+ this.shouldFixContainerFocus = false;
508
+ this.root?.focus({ preventScroll: true });
509
+ }
510
+ }
398
511
  cleanElement(element) {
399
512
  const { shadowRoot } = element;
400
513
  if (shadowRoot != null) {
@@ -471,6 +584,14 @@ var CodeView = class CodeView {
471
584
  getItem(itemId) {
472
585
  return this.idToItem.get(itemId)?.item;
473
586
  }
587
+ /**
588
+ * Get the live editor for an item currently in edit mode. Use this to drive
589
+ * editor APIs CodeView does not wrap (applyEdits, undo, setMarkers, …).
590
+ * Returns undefined once the item leaves edit mode.
591
+ */
592
+ getEditor(itemId) {
593
+ return this.itemEditors.get(itemId)?.editor;
594
+ }
474
595
  updateItem(input) {
475
596
  const item = this.idToItem.get(input.id);
476
597
  if (item == null) {
@@ -482,6 +603,7 @@ var CodeView = class CodeView {
482
603
  this.scrollDirty = true;
483
604
  this.render();
484
605
  this.syncSelection();
606
+ this.syncItemEditors();
485
607
  return true;
486
608
  }
487
609
  updateItemId(oldId, newId) {
@@ -506,6 +628,13 @@ var CodeView = class CodeView {
506
628
  };
507
629
  this.options.onSelectedLinesChange?.(this.selectedLines);
508
630
  }
631
+ const editorRecord = this.itemEditors.get(oldId);
632
+ if (editorRecord != null) {
633
+ editorRecord.state.id = newId;
634
+ this.itemEditors.delete(oldId);
635
+ this.itemEditors.set(newId, editorRecord);
636
+ if (this.attachedEditors.delete(oldId)) this.attachedEditors.add(newId);
637
+ }
509
638
  this.renamePendingScrollTarget(oldId, newId);
510
639
  this.renamePendingLayoutAnchor(oldId, newId);
511
640
  this.render();
@@ -513,17 +642,25 @@ var CodeView = class CodeView {
513
642
  }
514
643
  addItem(input) {
515
644
  this.addItems([input]);
516
- this.syncSelection();
517
645
  }
518
646
  addItems(inputs) {
519
647
  this.appendItemsInternal(inputs);
520
648
  this.syncSelection();
649
+ this.syncItemEditors();
521
650
  }
522
651
  setItems(items) {
523
- if (items.length === 0) this.reset();
524
- else if (this.items.length === 0) this.appendItemsInternal(items);
652
+ if (items.length === 0) {
653
+ const completions = [];
654
+ for (const record of this.itemEditors.values()) {
655
+ const { lastChange } = record.state;
656
+ if (lastChange != null) completions.push(lastChange);
657
+ }
658
+ this.reset();
659
+ for (const { item, file, lineAnnotations } of completions) this.options.onItemEditComplete?.(item, file, lineAnnotations);
660
+ } else if (this.items.length === 0) this.appendItemsInternal(items);
525
661
  else if (!this.tryAppendItems(items)) this.reconcileItems(items);
526
662
  this.syncSelection();
663
+ this.syncItemEditors();
527
664
  }
528
665
  /**
529
666
  * Append new records to the viewer while preserving existing layout state.
@@ -585,7 +722,9 @@ var CodeView = class CodeView {
585
722
  this.scrollDirty = true;
586
723
  }
587
724
  if (!areOptionsEqual(prevOptions, options)) this.renderOptionsRevision++;
588
- if (!this.isContainerManaged && this.items.length > 0) this.render();
725
+ this.syncItemEditors();
726
+ const headerFooterChanged = prevOptions.renderCodeViewHeader !== options.renderCodeViewHeader || prevOptions.renderCodeViewFooter !== options.renderCodeViewFooter;
727
+ if (!this.isContainerManaged && (this.items.length > 0 || headerFooterChanged)) this.render();
589
728
  }
590
729
  capturePendingLayoutAnchor() {
591
730
  if (this.root == null || this.items.length === 0 || this.pendingScrollTarget != null) return;
@@ -598,6 +737,25 @@ var CodeView = class CodeView {
598
737
  this.computeRenderRangeAndEmit();
599
738
  } else queueRender(this.computeRenderRangeAndEmit);
600
739
  }
740
+ isReady() {
741
+ const { workerManager } = this;
742
+ if (workerManager == null || workerManager.isInitialized() || workerManager.getStats().workersFailed) {
743
+ this.clearReadySubscription();
744
+ return true;
745
+ }
746
+ this.isReadySubscription ??= workerManager.subscribeToStatChanges((stats) => {
747
+ if (stats.managerState !== "initialized" && !stats.workersFailed) return;
748
+ this.clearReadySubscription();
749
+ this.render(true);
750
+ });
751
+ if (workerManager.getStats().managerState === "waiting") workerManager.initialize().catch(() => {});
752
+ return false;
753
+ }
754
+ clearReadySubscription() {
755
+ if (this.isReadySubscription == null) return;
756
+ this.isReadySubscription();
757
+ this.isReadySubscription = void 0;
758
+ }
601
759
  instanceChanged(instance, layoutDirty) {
602
760
  const item = this.instanceToItem.get(instance);
603
761
  if (item == null) throw new Error("CodeView.instanceChanged: An instance has changed that is not registered");
@@ -610,6 +768,12 @@ var CodeView = class CodeView {
610
768
  getContainerElement() {
611
769
  return this.root;
612
770
  }
771
+ getHeaderElement() {
772
+ return this.header.element;
773
+ }
774
+ getFooterElement() {
775
+ return this.footer.element;
776
+ }
613
777
  getRenderedItems() {
614
778
  const { firstIndex, lastIndex } = this.renderState;
615
779
  if (firstIndex === -1 || lastIndex === -1 || lastIndex < firstIndex) return [];
@@ -643,7 +807,18 @@ var CodeView = class CodeView {
643
807
  return true;
644
808
  }
645
809
  getSlotSnapshot(coordinator) {
646
- return getSlotSnapshot(this.getRenderedItems(), coordinator);
810
+ return this.buildSlotSnapshot(coordinator);
811
+ }
812
+ buildSlotSnapshot(coordinator) {
813
+ const items = getSlotItems(this.getRenderedItems(), coordinator);
814
+ const { element: header } = this.header;
815
+ const { element: footer } = this.footer;
816
+ if (items == null && header == null && footer == null) return;
817
+ return {
818
+ items,
819
+ header,
820
+ footer
821
+ };
647
822
  }
648
823
  subscribeToScroll(listener) {
649
824
  this.scrollListeners.add(listener);
@@ -659,12 +834,12 @@ var CodeView = class CodeView {
659
834
  getTopForItem(id) {
660
835
  const item = this.idToItem.get(id);
661
836
  if (item == null) return;
662
- return item.top + this.getLayout().paddingTop;
837
+ return item.top + this.getItemTopOffset();
663
838
  }
664
839
  createItem(input, index, top) {
665
840
  const { itemMetricsCache: itemMetrics } = this;
666
841
  if (input.type === "diff") {
667
- const instance$1 = new VirtualizedFileDiff(this.createDiffOptions(input.id), this, itemMetrics, this.workerManager, this.isContainerManaged);
842
+ const instance = new VirtualizedFileDiff(this.createDiffOptions(input.id), this, itemMetrics, this.workerManager, this.isContainerManaged);
668
843
  return {
669
844
  type: "diff",
670
845
  item: input,
@@ -674,7 +849,7 @@ var CodeView = class CodeView {
674
849
  height: 0,
675
850
  element: void 0,
676
851
  renderedOptionsRevision: this.renderOptionsRevision,
677
- instance: instance$1
852
+ instance
678
853
  };
679
854
  }
680
855
  const instance = new VirtualizedFile(this.createFileOptions(input.id), this, itemMetrics, this.workerManager, this.isContainerManaged);
@@ -706,6 +881,83 @@ var CodeView = class CodeView {
706
881
  }
707
882
  item.instance.setSelectedLines(this.selectedLines.range, { notify: false });
708
883
  }
884
+ isItemInEditMode(item) {
885
+ return this.options.createEditor != null && item.item.edit === true && item.item.collapsed !== true;
886
+ }
887
+ isReceiverEdited(receiver, mode) {
888
+ const state = getItemOptionsState(receiver);
889
+ if (state == null) return false;
890
+ const item = this.getItemOptions(state, mode);
891
+ return item != null && this.isItemInEditMode(item);
892
+ }
893
+ /**
894
+ * Attach (or lazily create) the editor for a mounted edit-mode item. Called
895
+ * from the render loop so every mounted item passes through it: fresh
896
+ * mounts, remounts after virtualization released the item, and items whose
897
+ * edit flag was just turned on. Editors persist across unmounts, so a
898
+ * remounted item re-attaches its existing editor and resumes the retained
899
+ * document; the renderers keep the host's file/diff data in sync with the
900
+ * session so the remount paints the edited text.
901
+ */
902
+ attachItemEditor(item) {
903
+ const { id } = item.item;
904
+ const { createEditor } = this.options;
905
+ if (createEditor == null || item.element == null || this.attachedEditors.has(id) || !this.isItemInEditMode(item)) return;
906
+ let record = this.itemEditors.get(id);
907
+ if (record == null) {
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
+ }
926
+ if (this.selectedLines?.id === id) this.applySelectedLines(null, { notify: false });
927
+ record.editor.edit(item.instance);
928
+ this.attachedEditors.add(id);
929
+ }
930
+ /**
931
+ * Drop editors for items that can no longer be edited: removed, edit turned
932
+ * off, collapsed, or the createEditor option was unset. Attachment happens
933
+ * in the render loop via attachItemEditor, so this only reconciles editors
934
+ * CodeView is already holding.
935
+ */
936
+ syncItemEditors() {
937
+ if (this.itemEditors.size === 0) return;
938
+ const completions = [];
939
+ for (const [id, record] of this.itemEditors) {
940
+ const item = this.idToItem.get(id);
941
+ if (item != null && this.isItemInEditMode(item)) continue;
942
+ record.editor.cleanUp();
943
+ this.itemEditors.delete(id);
944
+ this.attachedEditors.delete(id);
945
+ const itemSnapshot = item?.item ?? record.state.lastChange?.item;
946
+ if (itemSnapshot?.type === "diff") {
947
+ if (item != null && item.type === "diff" && item.instance.completeEditSession()) {
948
+ this.markItemLayoutDirty(item);
949
+ this.render();
950
+ }
951
+ finishEditSessionForDiff(itemSnapshot.fileDiff);
952
+ }
953
+ const { lastChange } = record.state;
954
+ if (lastChange != null) completions.push(item == null ? lastChange : {
955
+ ...lastChange,
956
+ item: item.item
957
+ });
958
+ }
959
+ for (const { item, file, lineAnnotations } of completions) this.options.onItemEditComplete?.(item, file, lineAnnotations);
960
+ }
709
961
  renamePendingScrollTarget(oldId, newId) {
710
962
  const { pendingScrollTarget } = this;
711
963
  if (pendingScrollTarget == null || pendingScrollTarget.type === "position" || pendingScrollTarget.id !== oldId) return;
@@ -719,19 +971,41 @@ var CodeView = class CodeView {
719
971
  }
720
972
  createFileOptionsPrototype() {
721
973
  const prototype = {};
722
- for (const key of CODE_VIEW_FILE_OPTION_KEYS) defineItemOption(prototype, key, () => this.options[key]);
974
+ for (const key of CODE_VIEW_FILE_OPTION_KEYS) {
975
+ if (CODE_VIEW_EDIT_FORCED_OPTION_KEYS.has(key)) continue;
976
+ defineItemOption(prototype, key, () => this.options[key]);
977
+ }
978
+ defineItemOption(prototype, "useTokenTransformer", (receiver) => this.isReceiverEdited(receiver, "file") ? true : this.options.useTokenTransformer);
979
+ defineItemOption(prototype, "enableGutterUtility", (receiver) => this.isReceiverEdited(receiver, "file") ? false : this.options.enableGutterUtility);
980
+ defineItemOption(prototype, "enableLineSelection", (receiver) => this.isReceiverEdited(receiver, "file") ? false : this.options.enableLineSelection);
981
+ defineItemOption(prototype, "lineHoverHighlight", (receiver) => this.isReceiverEdited(receiver, "file") ? "disabled" : this.options.lineHoverHighlight);
723
982
  defineItemOption(prototype, "stickyHeader", () => this.options.stickyHeaders);
724
- defineItemOption(prototype, "collapsed", (receiver) => this.getItemOptions(getItemOptionsState(receiver), "file")?.item.collapsed === true);
983
+ defineItemOption(prototype, "collapsed", (receiver) => {
984
+ const state = getItemOptionsState(receiver);
985
+ if (state == null) return;
986
+ return this.getItemOptions(state, "file")?.item.collapsed;
987
+ });
725
988
  for (const key of CODE_VIEW_SHARED_CALLBACK_KEYS) this.defineItemSharedCallback(prototype, "file", key);
726
989
  for (const key of CODE_VIEW_SELECTION_CALLBACK_KEYS) this.defineItemSelectionCallback(prototype, "file", key);
727
990
  return prototype;
728
991
  }
729
992
  createDiffOptionsPrototype() {
730
993
  const prototype = {};
731
- for (const key of CODE_VIEW_DIFF_OPTION_KEYS) defineItemOption(prototype, key, () => this.options[key]);
994
+ for (const key of CODE_VIEW_DIFF_OPTION_KEYS) {
995
+ if (CODE_VIEW_EDIT_FORCED_OPTION_KEYS.has(key)) continue;
996
+ defineItemOption(prototype, key, () => this.options[key]);
997
+ }
998
+ defineItemOption(prototype, "useTokenTransformer", (receiver) => this.isReceiverEdited(receiver, "diff") ? true : this.options.useTokenTransformer);
999
+ defineItemOption(prototype, "enableGutterUtility", (receiver) => this.isReceiverEdited(receiver, "diff") ? false : this.options.enableGutterUtility);
1000
+ defineItemOption(prototype, "enableLineSelection", (receiver) => this.isReceiverEdited(receiver, "diff") ? false : this.options.enableLineSelection);
1001
+ defineItemOption(prototype, "lineHoverHighlight", (receiver) => this.isReceiverEdited(receiver, "diff") ? "disabled" : this.options.lineHoverHighlight);
732
1002
  defineItemOption(prototype, "stickyHeader", () => this.options.stickyHeaders);
733
1003
  defineItemOption(prototype, "hunkSeparators", () => this.options.hunkSeparators);
734
- defineItemOption(prototype, "collapsed", (receiver) => this.getItemOptions(getItemOptionsState(receiver), "diff")?.item.collapsed === true);
1004
+ defineItemOption(prototype, "collapsed", (receiver) => {
1005
+ const state = getItemOptionsState(receiver);
1006
+ if (state == null) return;
1007
+ return this.getItemOptions(state, "diff")?.item.collapsed;
1008
+ });
735
1009
  for (const key of CODE_VIEW_SHARED_CALLBACK_KEYS) this.defineItemSharedCallback(prototype, "diff", key);
736
1010
  for (const key of CODE_VIEW_SELECTION_CALLBACK_KEYS) this.defineItemSelectionCallback(prototype, "diff", key);
737
1011
  return prototype;
@@ -747,7 +1021,9 @@ var CodeView = class CodeView {
747
1021
  return options;
748
1022
  }
749
1023
  updateItemOptionsId(options, id) {
750
- getItemOptionsState(options).id = id;
1024
+ const state = getItemOptionsState(options);
1025
+ if (state == null) throw new Error(`CodeView.updateItemOptionsId: No valid state`);
1026
+ state.id = id;
751
1027
  }
752
1028
  getItemOptions(state, mode) {
753
1029
  const item = this.idToItem.get(state.id);
@@ -758,6 +1034,7 @@ var CodeView = class CodeView {
758
1034
  defineItemOption(options, key, (receiver) => {
759
1035
  if (this.options[key] == null) return;
760
1036
  const state = getItemOptionsState(receiver);
1037
+ if (state == null) return;
761
1038
  const callbackCache = state.callbackCache ??= {};
762
1039
  let wrapped = callbackCache[key];
763
1040
  if (wrapped == null) {
@@ -776,6 +1053,9 @@ var CodeView = class CodeView {
776
1053
  defineItemOption(options, key, (receiver) => {
777
1054
  if (this.options.enableLineSelection !== true) return;
778
1055
  const state = getItemOptionsState(receiver);
1056
+ if (state == null) return;
1057
+ const item = this.getItemOptions(state, mode);
1058
+ if (item != null && this.isItemInEditMode(item)) return;
779
1059
  const callbackCache = state.callbackCache ??= {};
780
1060
  let wrapped = callbackCache[key];
781
1061
  if (wrapped == null) {
@@ -903,7 +1183,7 @@ var CodeView = class CodeView {
903
1183
  }
904
1184
  getMaxScrollTopForHeight(scrollHeight) {
905
1185
  const { paddingBottom, paddingTop } = this.getLayout();
906
- return Math.max(paddingTop + scrollHeight + paddingBottom - this.getHeight(), 0);
1186
+ return Math.max(paddingTop + this.header.height + scrollHeight + this.footer.height + paddingBottom - this.getHeight(), 0);
907
1187
  }
908
1188
  getMaxScrollTop() {
909
1189
  return this.getMaxScrollTopForHeight(this.getScrollHeight());
@@ -1015,7 +1295,7 @@ var CodeView = class CodeView {
1015
1295
  const rect = this.getScrollTargetRect(target);
1016
1296
  if (rect == null) return;
1017
1297
  const offset = target.offset ?? 0;
1018
- const targetTop = this.getLayout().paddingTop + rect.top;
1298
+ const targetTop = this.getItemTopOffset() + rect.top;
1019
1299
  const targetBottom = targetTop + rect.height;
1020
1300
  const currentTop = this.getScrollTop();
1021
1301
  const visibleTop = currentTop + (target.type === "line" || target.type === "range" ? this.getStickyHeaderOffset() : 0);
@@ -1067,7 +1347,7 @@ var CodeView = class CodeView {
1067
1347
  * and stickyOffset if necessary
1068
1348
  */
1069
1349
  resolveAlignedScrollPosition(targetTop, targetHeight, align, offset = 0, stickyOffset = 0) {
1070
- targetTop += this.getLayout().paddingTop;
1350
+ targetTop += this.getItemTopOffset();
1071
1351
  const viewportHeight = this.getHeight();
1072
1352
  if (align === "center" && targetHeight + offset < viewportHeight) return targetTop - (viewportHeight - targetHeight) / 2 + offset;
1073
1353
  if (align === "end") return targetTop - (viewportHeight - targetHeight) + offset;
@@ -1171,6 +1451,7 @@ var CodeView = class CodeView {
1171
1451
  }
1172
1452
  computeRenderRangeAndEmit = (timestamp = performance.now()) => {
1173
1453
  if (CodeView.__STOP || this.container == null) return;
1454
+ if (!this.isReady()) return;
1174
1455
  const viewportHeight = this.getHeight();
1175
1456
  const initialScrollTop = this.getScrollTop();
1176
1457
  let scrollTopAfterLayout = initialScrollTop;
@@ -1198,7 +1479,7 @@ var CodeView = class CodeView {
1198
1479
  const fitPerfectly = !computeScrollCorrection && (this.renderState.scrollTop === -1 || Math.abs(targetScrollTop - this.renderState.scrollTop) > viewportHeight + this.config.overscrollSize * 2);
1199
1480
  if (fitPerfectly) scrollAnchor = void 0;
1200
1481
  this.windowSpecs = createWindowFromScrollPosition({
1201
- scrollTop: targetScrollTop,
1482
+ scrollTop: targetScrollTop - this.header.height,
1202
1483
  height: viewportHeight,
1203
1484
  scrollHeight: this.getScrollHeight(),
1204
1485
  fitPerfectly,
@@ -1217,6 +1498,7 @@ var CodeView = class CodeView {
1217
1498
  if (item == null) throw new Error(`CodeView.computeRenderRangeAndEmit: No item at index: ${index}`);
1218
1499
  if (!(item.top > top - item.height && item.top <= bottom)) this.releaseRenderedItem(item);
1219
1500
  }
1501
+ const hostsChanged = this.reconcileHeaderFooterHosts();
1220
1502
  let prevElement;
1221
1503
  const updatedItems = /* @__PURE__ */ new Set();
1222
1504
  const startingIndex = this.findFirstVisibleIndex(top);
@@ -1242,10 +1524,13 @@ var CodeView = class CodeView {
1242
1524
  }
1243
1525
  prevElement = item.element;
1244
1526
  }
1527
+ if (item.item.edit === true) this.attachItemEditor(item);
1245
1528
  }
1246
1529
  this.renderState.firstIndex = startingIndex <= lastRenderedIndex ? startingIndex : -1;
1247
1530
  this.renderState.lastIndex = lastRenderedIndex;
1248
1531
  this.flushSlotCoordinator();
1532
+ this.flushManagers(updatedItems);
1533
+ if (hostsChanged) this.measureMountedHosts();
1249
1534
  this.reconcileRenderedItems(updatedItems);
1250
1535
  this.syncContainerHeight();
1251
1536
  this.updateStickyPositioning();
@@ -1270,7 +1555,9 @@ var CodeView = class CodeView {
1270
1555
  this.scrollAnimation = void 0;
1271
1556
  }
1272
1557
  this.renderState.scrollTop = roundToDevicePixel(syncedScrollTop);
1273
- this.flushManagers(updatedItems);
1558
+ this.updateStickyPositioning();
1559
+ this.validateStickyContainerHeight();
1560
+ this.fixContainerFocus();
1274
1561
  if (fitPerfectly || this.scrollAnimation != null) this.render();
1275
1562
  };
1276
1563
  flushManagers(updatedItems) {
@@ -1382,6 +1669,25 @@ var CodeView = class CodeView {
1382
1669
  this.scrollAnimation = void 0;
1383
1670
  }
1384
1671
  }
1672
+ } else if (entry.target === this.header.element || entry.target === this.footer.element) {
1673
+ const host = entry.target === this.header.element ? this.header : this.footer;
1674
+ const blockSize = entry.borderBoxSize[0].blockSize;
1675
+ if (blockSize !== host.height) {
1676
+ const currentScrollTop = this.getScrollTop();
1677
+ const anchor = this.getScrollAnchor(currentScrollTop);
1678
+ this.setHostHeight(host, blockSize);
1679
+ const anchoredScrollTop = anchor != null ? this.resolveAnchoredScrollTop(anchor) : void 0;
1680
+ if (anchoredScrollTop != null) {
1681
+ const resizeAnchorDelta = anchoredScrollTop - currentScrollTop;
1682
+ this.applyScrollFix(anchoredScrollTop, currentScrollTop, this.windowSpecs);
1683
+ if (this.scrollAnimation != null) this.scrollAnimation.position += resizeAnchorDelta;
1684
+ }
1685
+ if (this.pendingScrollTarget != null && this.isPendingTargetSettled(this.pendingScrollTarget)) {
1686
+ this.pendingScrollTarget = void 0;
1687
+ this.scrollAnimation = void 0;
1688
+ }
1689
+ this.render();
1690
+ }
1385
1691
  } else {
1386
1692
  this.scrollDirty = true;
1387
1693
  this.heightDirty = true;
@@ -1404,6 +1710,7 @@ var CodeView = class CodeView {
1404
1710
  */
1405
1711
  getScrollAnchor(scrollTop) {
1406
1712
  if (this.pendingLayoutAnchor != null) return this.pendingLayoutAnchor;
1713
+ if (scrollTop <= 0) return;
1407
1714
  const { firstIndex, lastIndex, stickyTop, stickyBottom } = this.renderState;
1408
1715
  if (firstIndex === -1 || lastIndex === -1) return;
1409
1716
  const viewportHeight = this.getHeight();
@@ -1411,7 +1718,7 @@ var CodeView = class CodeView {
1411
1718
  for (let index = firstIndex; index <= lastIndex; index++) {
1412
1719
  const item = this.items[index];
1413
1720
  if (item == null) continue;
1414
- const absoluteItemTop = this.getLayout().paddingTop + item.top;
1721
+ const absoluteItemTop = this.getItemTopOffset() + item.top;
1415
1722
  if (absoluteItemTop + item.height <= scrollTop) continue;
1416
1723
  if (absoluteItemTop >= scrollTop + viewportHeight) break;
1417
1724
  if (absoluteItemTop >= scrollTop) return {
@@ -1443,14 +1750,14 @@ var CodeView = class CodeView {
1443
1750
  resolveAnchoredScrollTop(anchor) {
1444
1751
  const item = this.idToItem.get(anchor.id);
1445
1752
  if (item == null) return;
1446
- const { paddingTop } = this.getLayout();
1753
+ const itemTopOffset = this.getItemTopOffset();
1447
1754
  if (anchor.type === "item") {
1448
- const absoluteItemTop = paddingTop + item.top;
1755
+ const absoluteItemTop = itemTopOffset + item.top;
1449
1756
  return this.clampScrollTop(absoluteItemTop - anchor.viewportOffset);
1450
1757
  }
1451
1758
  const linePosition = item.type === "diff" ? item.instance.getLinePosition(anchor.lineNumber, anchor.side) : item.instance.getLinePosition(anchor.lineNumber);
1452
1759
  if (linePosition == null) return;
1453
- const absoluteLineTop = paddingTop + item.top + linePosition.top;
1760
+ const absoluteLineTop = itemTopOffset + item.top + linePosition.top;
1454
1761
  return this.clampScrollTop(absoluteLineTop - anchor.viewportOffset);
1455
1762
  }
1456
1763
  /**
@@ -1507,11 +1814,10 @@ var CodeView = class CodeView {
1507
1814
  }
1508
1815
  flushSlotCoordinator() {
1509
1816
  if (this.slotCoordinator == null) return;
1510
- const { onSnapshotChange } = this.slotCoordinator;
1511
- const slotSnapshot = getSlotSnapshot(this.getRenderedItems(), this.slotCoordinator);
1512
- if (areSlotSnapshotsEqual(this.slotSnapshot, slotSnapshot)) return;
1817
+ const slotSnapshot = this.buildSlotSnapshot(this.slotCoordinator);
1818
+ if (areManagedSnapshotsEqual(this.slotSnapshot, slotSnapshot)) return;
1513
1819
  this.slotSnapshot = slotSnapshot;
1514
- onSnapshotChange(slotSnapshot);
1820
+ this.slotCoordinator.onSnapshotChange(slotSnapshot);
1515
1821
  }
1516
1822
  notifyScroll() {
1517
1823
  if (this.scrollListeners.size === 0) return;
@@ -1580,8 +1886,11 @@ var CodeView = class CodeView {
1580
1886
  const item = this.items[index];
1581
1887
  if (item == null) throw new Error("CodeView.recomputeLayout: invalid item index");
1582
1888
  item.top = runningTop;
1583
- if (item.type === "diff") item.height = item.instance.prepareCodeViewItem(item.item.fileDiff, runningTop, reset);
1584
- else item.height = item.instance.prepareCodeViewItem(item.item.file, runningTop, reset);
1889
+ if (item.type === "diff") {
1890
+ const fileDiff = item.instance.consumeCodeViewLayoutChanges(item.item.fileDiff);
1891
+ if (fileDiff != null) Object.assign(item.item.fileDiff, fileDiff);
1892
+ item.height = item.instance.prepareCodeViewItem(item.item.fileDiff, runningTop, reset, item.item.annotations ?? []);
1893
+ } else item.height = item.instance.prepareCodeViewItem(item.item.file, runningTop, reset, item.item.annotations ?? []);
1585
1894
  runningTop += item.height;
1586
1895
  if (index < this.items.length - 1) runningTop += layout.gap;
1587
1896
  }
@@ -1602,21 +1911,21 @@ var CodeView = class CodeView {
1602
1911
  };
1603
1912
  function prepareItemInstance(item) {
1604
1913
  item.instance.cleanUp(true);
1605
- if (item.type === "diff") return item.instance.prepareCodeViewItem(item.item.fileDiff, item.top);
1606
- else return item.instance.prepareCodeViewItem(item.item.file, item.top);
1914
+ if (item.type === "diff") return item.instance.prepareCodeViewItem(item.item.fileDiff, item.top, void 0, item.item.annotations ?? []);
1915
+ else return item.instance.prepareCodeViewItem(item.item.file, item.top, void 0, item.item.annotations ?? []);
1607
1916
  }
1608
1917
  function shouldClearPool(previousOptions, nextOptions) {
1609
1918
  return !areThemesEqual(previousOptions.theme ?? DEFAULT_THEMES, nextOptions.theme ?? DEFAULT_THEMES) || (previousOptions.themeType ?? "system") !== (nextOptions.themeType ?? "system") || previousOptions.unsafeCSS !== nextOptions.unsafeCSS;
1610
1919
  }
1611
1920
  function hasItemLayoutOptionChanged(previousOptions, nextOptions) {
1612
- return (previousOptions.overflow ?? "scroll") !== (nextOptions.overflow ?? "scroll") || (previousOptions.disableLineNumbers ?? false) !== (nextOptions.disableLineNumbers ?? false) || (previousOptions.disableFileHeader ?? false) !== (nextOptions.disableFileHeader ?? false) || previousOptions.unsafeCSS !== nextOptions.unsafeCSS || (previousOptions.diffStyle ?? "split") !== (nextOptions.diffStyle ?? "split") || (previousOptions.diffIndicators ?? "bars") !== (nextOptions.diffIndicators ?? "bars") || (previousOptions.hunkSeparators ?? "line-info") !== (nextOptions.hunkSeparators ?? "line-info") || (previousOptions.expandUnchanged ?? false) !== (nextOptions.expandUnchanged ?? false) || (previousOptions.collapsedContextThreshold ?? DEFAULT_COLLAPSED_CONTEXT_THRESHOLD) !== (nextOptions.collapsedContextThreshold ?? DEFAULT_COLLAPSED_CONTEXT_THRESHOLD);
1921
+ return (previousOptions.overflow ?? "scroll") !== (nextOptions.overflow ?? "scroll") || (previousOptions.disableLineNumbers ?? false) !== (nextOptions.disableLineNumbers ?? false) || (previousOptions.disableFileHeader ?? false) !== (nextOptions.disableFileHeader ?? false) || previousOptions.unsafeCSS !== nextOptions.unsafeCSS || (previousOptions.diffStyle ?? "split") !== (nextOptions.diffStyle ?? "split") || (previousOptions.diffIndicators ?? "bars") !== (nextOptions.diffIndicators ?? "bars") || (previousOptions.hunkSeparators ?? "line-info") !== (nextOptions.hunkSeparators ?? "line-info") || (previousOptions.expandUnchanged ?? false) !== (nextOptions.expandUnchanged ?? false) || (previousOptions.collapsedContextThreshold ?? 1) !== (nextOptions.collapsedContextThreshold ?? 1);
1613
1922
  }
1614
1923
  function hasCodeViewDiffEstimateOptionChanged(previousOptions, nextOptions) {
1615
- return (previousOptions.disableFileHeader ?? false) !== (nextOptions.disableFileHeader ?? false) || (previousOptions.hunkSeparators ?? "line-info") !== (nextOptions.hunkSeparators ?? "line-info") || (previousOptions.expandUnchanged ?? false) !== (nextOptions.expandUnchanged ?? false) || (previousOptions.collapsedContextThreshold ?? DEFAULT_COLLAPSED_CONTEXT_THRESHOLD) !== (nextOptions.collapsedContextThreshold ?? DEFAULT_COLLAPSED_CONTEXT_THRESHOLD);
1924
+ return (previousOptions.disableFileHeader ?? false) !== (nextOptions.disableFileHeader ?? false) || (previousOptions.hunkSeparators ?? "line-info") !== (nextOptions.hunkSeparators ?? "line-info") || (previousOptions.expandUnchanged ?? false) !== (nextOptions.expandUnchanged ?? false) || (previousOptions.collapsedContextThreshold ?? 1) !== (nextOptions.collapsedContextThreshold ?? 1);
1616
1925
  }
1617
1926
  function isPooledShadowChild(child) {
1618
1927
  if (child instanceof SVGElement) return true;
1619
- return isStyleNode(child) && (child.hasAttribute(CORE_CSS_ATTRIBUTE) || child.hasAttribute(THEME_CSS_ATTRIBUTE) || child.hasAttribute(UNSAFE_CSS_ATTRIBUTE));
1928
+ return isStyleNode(child) && (child.hasAttribute("data-core-css") || child.hasAttribute("data-theme-css") || child.hasAttribute("data-unsafe-css"));
1620
1929
  }
1621
1930
  function formatSelectedLineRange(range) {
1622
1931
  const start = formatSelectedLinePoint(range.start, range.side);
@@ -1633,14 +1942,14 @@ function renderItem(item, fileContainer, forceRender = false) {
1633
1942
  fileContainer,
1634
1943
  fileDiff: item.item.fileDiff,
1635
1944
  forceRender,
1636
- lineAnnotations: item.item.annotations
1945
+ lineAnnotations: item.item.annotations ?? []
1637
1946
  });
1638
1947
  else return item.instance.render({
1639
1948
  deferManagers: true,
1640
1949
  fileContainer,
1641
1950
  file: item.item.file,
1642
1951
  forceRender,
1643
- lineAnnotations: item.item.annotations
1952
+ lineAnnotations: item.item.annotations ?? []
1644
1953
  });
1645
1954
  }
1646
1955
  /**
@@ -1659,7 +1968,7 @@ function syncRenderedItemOrder(container, element, prevElement) {
1659
1968
  function hasAnnotations(item) {
1660
1969
  return (item.annotations?.length ?? 0) > 0;
1661
1970
  }
1662
- function getSlotSnapshot(renderedItems, { hasHeaderRenderers, hasAnnotationRenderer, hasGutterRenderer }) {
1971
+ function getSlotItems(renderedItems, { hasHeaderRenderers, hasAnnotationRenderer, hasGutterRenderer }) {
1663
1972
  if (renderedItems.length === 0) return;
1664
1973
  if (hasHeaderRenderers || hasGutterRenderer) return renderedItems;
1665
1974
  if (!hasAnnotationRenderer) return;
@@ -1667,17 +1976,7 @@ function getSlotSnapshot(renderedItems, { hasHeaderRenderers, hasAnnotationRende
1667
1976
  for (const renderedItem of renderedItems) if (hasAnnotations(renderedItem.item)) slotSnapshot.push(renderedItem);
1668
1977
  return slotSnapshot.length > 0 ? slotSnapshot : void 0;
1669
1978
  }
1670
- function areSlotSnapshotsEqual(previous, next) {
1671
- if (previous == null || next == null) return previous === next;
1672
- if (previous.length !== next.length) return false;
1673
- for (let index = 0; index < previous.length; index++) {
1674
- const previousItem = previous[index];
1675
- const nextItem = next[index];
1676
- if (previousItem == null || nextItem == null || previousItem.id !== nextItem.id || previousItem.type !== nextItem.type || previousItem.element !== nextItem.element || previousItem.version !== nextItem.version) return false;
1677
- }
1678
- return true;
1679
- }
1680
-
1681
1979
  //#endregion
1682
- export { CodeView };
1980
+ export { CODE_VIEW_DIFF_OPTION_KEYS, CODE_VIEW_FILE_OPTION_KEYS, CodeView };
1981
+
1683
1982
  //# sourceMappingURL=CodeView.js.map