@pierre/diffs 1.5.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) hide show
  1. package/README.md +4 -3
  2. package/dist/components/CodeView.d.ts +3 -2
  3. package/dist/components/CodeView.d.ts.map +1 -1
  4. package/dist/components/CodeView.js +24 -19
  5. package/dist/components/CodeView.js.map +1 -1
  6. package/dist/components/File.d.ts +31 -9
  7. package/dist/components/File.d.ts.map +1 -1
  8. package/dist/components/File.js +176 -90
  9. package/dist/components/File.js.map +1 -1
  10. package/dist/components/FileDiff.d.ts +32 -9
  11. package/dist/components/FileDiff.d.ts.map +1 -1
  12. package/dist/components/FileDiff.js +225 -131
  13. package/dist/components/FileDiff.js.map +1 -1
  14. package/dist/components/FileStream.d.ts +6 -4
  15. package/dist/components/FileStream.d.ts.map +1 -1
  16. package/dist/components/FileStream.js +49 -36
  17. package/dist/components/FileStream.js.map +1 -1
  18. package/dist/components/UnresolvedFile.d.ts +14 -4
  19. package/dist/components/UnresolvedFile.d.ts.map +1 -1
  20. package/dist/components/UnresolvedFile.js +35 -16
  21. package/dist/components/UnresolvedFile.js.map +1 -1
  22. package/dist/components/VirtualizedFile.d.ts +3 -2
  23. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  24. package/dist/components/VirtualizedFile.js +28 -20
  25. package/dist/components/VirtualizedFile.js.map +1 -1
  26. package/dist/components/VirtualizedFileDiff.d.ts +3 -2
  27. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  28. package/dist/components/VirtualizedFileDiff.js +31 -24
  29. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  30. package/dist/constants.d.ts +4 -2
  31. package/dist/constants.d.ts.map +1 -1
  32. package/dist/constants.js +3 -1
  33. package/dist/constants.js.map +1 -1
  34. package/dist/editor/editor.d.ts +2 -1
  35. package/dist/editor/editor.d.ts.map +1 -1
  36. package/dist/editor/editor.js +5 -1
  37. package/dist/editor/editor.js.map +1 -1
  38. package/dist/editor/platform.d.ts +1 -1
  39. package/dist/editor/platform.js +5 -4
  40. package/dist/editor/platform.js.map +1 -1
  41. package/dist/editor/selection.d.ts +2 -2
  42. package/dist/editor/selection.d.ts.map +1 -1
  43. package/dist/editor/selection.js +31 -6
  44. package/dist/editor/selection.js.map +1 -1
  45. package/dist/editor/tokenizer.d.ts +6 -4
  46. package/dist/editor/tokenizer.d.ts.map +1 -1
  47. package/dist/editor/tokenizer.js +25 -470
  48. package/dist/editor/tokenizer.js.map +1 -1
  49. package/dist/highlighter/DiffsEditorTokenizer.d.ts +16 -0
  50. package/dist/highlighter/DiffsEditorTokenizer.d.ts.map +1 -0
  51. package/dist/highlighter/DiffsEditorTokenizer.js +0 -0
  52. package/dist/highlighter/DiffsHighlighter.d.ts +41 -0
  53. package/dist/highlighter/DiffsHighlighter.d.ts.map +1 -0
  54. package/dist/highlighter/DiffsHighlighter.js +39 -0
  55. package/dist/highlighter/DiffsHighlighter.js.map +1 -0
  56. package/dist/highlighter/backends/highlights.d.ts +26 -0
  57. package/dist/highlighter/backends/highlights.d.ts.map +1 -0
  58. package/dist/highlighter/backends/highlights.js +71 -0
  59. package/dist/highlighter/backends/highlights.js.map +1 -0
  60. package/dist/highlighter/backends/shiki.d.ts +27 -0
  61. package/dist/highlighter/backends/shiki.d.ts.map +1 -0
  62. package/dist/highlighter/backends/shiki.js +107 -0
  63. package/dist/highlighter/backends/shiki.js.map +1 -0
  64. package/dist/highlighter/highlighterType.d.ts +13 -0
  65. package/dist/highlighter/highlighterType.d.ts.map +1 -0
  66. package/dist/highlighter/highlighterType.js +32 -0
  67. package/dist/highlighter/highlighterType.js.map +1 -0
  68. package/dist/highlighter/highlights-editor.d.ts +24 -0
  69. package/dist/highlighter/highlights-editor.d.ts.map +1 -0
  70. package/dist/highlighter/highlights-editor.js +166 -0
  71. package/dist/highlighter/highlights-editor.js.map +1 -0
  72. package/dist/highlighter/highlights-stream.d.ts +20 -0
  73. package/dist/highlighter/highlights-stream.d.ts.map +1 -0
  74. package/dist/highlighter/highlights-stream.js +93 -0
  75. package/dist/highlighter/highlights-stream.js.map +1 -0
  76. package/dist/highlighter/languages/areLanguagesAttached.d.ts +2 -1
  77. package/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -1
  78. package/dist/highlighter/languages/areLanguagesAttached.js +4 -6
  79. package/dist/highlighter/languages/areLanguagesAttached.js.map +1 -1
  80. package/dist/highlighter/languages/attachResolvedLanguages.d.ts +6 -1
  81. package/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -1
  82. package/dist/highlighter/languages/attachResolvedLanguages.js +6 -11
  83. package/dist/highlighter/languages/attachResolvedLanguages.js.map +1 -1
  84. package/dist/highlighter/languages/constants.d.ts +1 -1
  85. package/dist/highlighter/languages/getResolvedLanguages.d.ts +1 -1
  86. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +1 -1
  87. package/dist/highlighter/languages/resolveLanguage.d.ts +1 -1
  88. package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
  89. package/dist/highlighter/languages/resolveLanguage.js +19 -16
  90. package/dist/highlighter/languages/resolveLanguage.js.map +1 -1
  91. package/dist/highlighter/languages/resolveLanguages.d.ts +1 -1
  92. package/dist/highlighter/shared_highlighter.d.ts +24 -9
  93. package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
  94. package/dist/highlighter/shared_highlighter.js +59 -47
  95. package/dist/highlighter/shared_highlighter.js.map +1 -1
  96. package/dist/highlighter/shiki-editor.d.ts +25 -0
  97. package/dist/highlighter/shiki-editor.d.ts.map +1 -0
  98. package/dist/highlighter/shiki-editor.js +483 -0
  99. package/dist/highlighter/shiki-editor.js.map +1 -0
  100. package/dist/highlighter/shiki-stream.d.ts +20 -0
  101. package/dist/highlighter/shiki-stream.d.ts.map +1 -0
  102. package/dist/highlighter/shiki-stream.js +60 -0
  103. package/dist/highlighter/shiki-stream.js.map +1 -0
  104. package/dist/highlighter/stream-tokenizer.d.ts +40 -0
  105. package/dist/highlighter/stream-tokenizer.d.ts.map +1 -0
  106. package/dist/highlighter/stream-tokenizer.js +70 -0
  107. package/dist/highlighter/stream-tokenizer.js.map +1 -0
  108. package/dist/highlighter/themes/areThemesAttached.d.ts +3 -2
  109. package/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -1
  110. package/dist/highlighter/themes/areThemesAttached.js +5 -4
  111. package/dist/highlighter/themes/areThemesAttached.js.map +1 -1
  112. package/dist/highlighter/themes/attachResolvedThemes.d.ts +5 -2
  113. package/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -1
  114. package/dist/highlighter/themes/attachResolvedThemes.js +4 -16
  115. package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -1
  116. package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts +3 -1
  117. package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -1
  118. package/dist/highlighter/themes/cleanUpResolvedThemes.js +8 -5
  119. package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -1
  120. package/dist/highlighter/themes/createCSSVariablesTheme.d.ts +7 -0
  121. package/dist/highlighter/themes/createCSSVariablesTheme.d.ts.map +1 -0
  122. package/dist/highlighter/themes/createCSSVariablesTheme.js +89 -0
  123. package/dist/highlighter/themes/createCSSVariablesTheme.js.map +1 -0
  124. package/dist/highlighter/themes/createCachedLoader.d.ts +5 -0
  125. package/dist/highlighter/themes/createCachedLoader.d.ts.map +1 -0
  126. package/dist/highlighter/themes/createCachedLoader.js +15 -0
  127. package/dist/highlighter/themes/createCachedLoader.js.map +1 -0
  128. package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts +3 -2
  129. package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -1
  130. package/dist/highlighter/themes/getResolvedOrResolveTheme.js +4 -4
  131. package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -1
  132. package/dist/highlighter/themes/getResolvedThemes.d.ts +3 -2
  133. package/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -1
  134. package/dist/highlighter/themes/getResolvedThemes.js +4 -3
  135. package/dist/highlighter/themes/getResolvedThemes.js.map +1 -1
  136. package/dist/highlighter/themes/hasResolvedThemes.d.ts +2 -2
  137. package/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -1
  138. package/dist/highlighter/themes/hasResolvedThemes.js +4 -3
  139. package/dist/highlighter/themes/hasResolvedThemes.js.map +1 -1
  140. package/dist/highlighter/themes/registerCustomCSSVariableTheme.d.ts.map +1 -1
  141. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js +3 -3
  142. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js.map +1 -1
  143. package/dist/highlighter/themes/registerCustomTheme.d.ts +9 -4
  144. package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
  145. package/dist/highlighter/themes/registerCustomTheme.js +8 -16
  146. package/dist/highlighter/themes/registerCustomTheme.js.map +1 -1
  147. package/dist/highlighter/themes/resolveTheme.d.ts +3 -2
  148. package/dist/highlighter/themes/resolveTheme.d.ts.map +1 -1
  149. package/dist/highlighter/themes/resolveTheme.js +4 -7
  150. package/dist/highlighter/themes/resolveTheme.js.map +1 -1
  151. package/dist/highlighter/themes/resolveThemes.d.ts +3 -2
  152. package/dist/highlighter/themes/resolveThemes.d.ts.map +1 -1
  153. package/dist/highlighter/themes/resolveThemes.js +4 -7
  154. package/dist/highlighter/themes/resolveThemes.js.map +1 -1
  155. package/dist/highlighter/themes/themeResolver.d.ts +10 -4
  156. package/dist/highlighter/themes/themeResolver.d.ts.map +1 -1
  157. package/dist/highlighter/themes/themeResolver.js +141 -2
  158. package/dist/highlighter/themes/themeResolver.js.map +1 -1
  159. package/dist/highlighter/themes/types.d.ts +23 -0
  160. package/dist/highlighter/themes/types.d.ts.map +1 -0
  161. package/dist/highlighter/themes/types.js +0 -0
  162. package/dist/highlighter/tokenizer-types.d.ts +35 -0
  163. package/dist/highlighter/tokenizer-types.d.ts.map +1 -0
  164. package/dist/highlighter/tokenizer-types.js +0 -0
  165. package/dist/highlighter/types.d.ts +55 -0
  166. package/dist/highlighter/types.d.ts.map +1 -0
  167. package/dist/highlighter/types.js +0 -0
  168. package/dist/index.d.ts +22 -13
  169. package/dist/index.js +21 -18
  170. package/dist/managers/InteractionManager.d.ts.map +1 -1
  171. package/dist/managers/InteractionManager.js +2 -2
  172. package/dist/managers/InteractionManager.js.map +1 -1
  173. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts +9 -1
  174. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts.map +1 -1
  175. package/dist/react/CodeView.d.ts +4 -3
  176. package/dist/react/CodeView.d.ts.map +1 -1
  177. package/dist/react/CodeView.js +47 -38
  178. package/dist/react/CodeView.js.map +1 -1
  179. package/dist/react/File.js +3 -3
  180. package/dist/react/File.js.map +1 -1
  181. package/dist/react/FileDiff.js +3 -3
  182. package/dist/react/FileDiff.js.map +1 -1
  183. package/dist/react/MultiFileDiff.js +2 -2
  184. package/dist/react/MultiFileDiff.js.map +1 -1
  185. package/dist/react/PatchDiff.js +3 -3
  186. package/dist/react/PatchDiff.js.map +1 -1
  187. package/dist/react/UnresolvedFile.js +2 -2
  188. package/dist/react/UnresolvedFile.js.map +1 -1
  189. package/dist/react/index.d.ts +9 -4
  190. package/dist/react/types.d.ts +4 -2
  191. package/dist/react/types.d.ts.map +1 -1
  192. package/dist/react/utils/renderDiffChildren.js +1 -1
  193. package/dist/react/utils/renderDiffChildren.js.map +1 -1
  194. package/dist/react/utils/renderFileChildren.js +1 -1
  195. package/dist/react/utils/renderFileChildren.js.map +1 -1
  196. package/dist/react/utils/useFileDiffInstance.d.ts +1 -0
  197. package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  198. package/dist/react/utils/useFileDiffInstance.js +29 -24
  199. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  200. package/dist/react/utils/useFileInstance.d.ts +2 -0
  201. package/dist/react/utils/useFileInstance.d.ts.map +1 -1
  202. package/dist/react/utils/useFileInstance.js +38 -28
  203. package/dist/react/utils/useFileInstance.js.map +1 -1
  204. package/dist/react/utils/useForceUpdate.d.ts +5 -0
  205. package/dist/react/utils/useForceUpdate.d.ts.map +1 -0
  206. package/dist/react/utils/useForceUpdate.js +27 -0
  207. package/dist/react/utils/useForceUpdate.js.map +1 -0
  208. package/dist/react/utils/useNextRenderData.d.ts +9 -0
  209. package/dist/react/utils/useNextRenderData.d.ts.map +1 -0
  210. package/dist/react/utils/useNextRenderData.js +9 -0
  211. package/dist/react/utils/useNextRenderData.js.map +1 -0
  212. package/dist/react/utils/useUnresolvedFileInstance.d.ts +1 -0
  213. package/dist/react/utils/useUnresolvedFileInstance.d.ts.map +1 -1
  214. package/dist/react/utils/useUnresolvedFileInstance.js +26 -11
  215. package/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
  216. package/dist/renderers/DiffHunksRenderer.d.ts +4 -2
  217. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  218. package/dist/renderers/DiffHunksRenderer.js +82 -43
  219. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  220. package/dist/renderers/FileRenderer.d.ts +6 -2
  221. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  222. package/dist/renderers/FileRenderer.js +77 -43
  223. package/dist/renderers/FileRenderer.js.map +1 -1
  224. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
  225. package/dist/renderers/UnresolvedFileHunksRenderer.js +1 -1
  226. package/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
  227. package/dist/shiki-stream/index.d.ts +3 -3
  228. package/dist/shiki-stream/index.js +1 -2
  229. package/dist/shiki-stream/stream.d.ts +4 -4
  230. package/dist/shiki-stream/stream.d.ts.map +1 -1
  231. package/dist/shiki-stream/stream.js +20 -9
  232. package/dist/shiki-stream/stream.js.map +1 -1
  233. package/dist/shiki-stream/types.d.ts +7 -38
  234. package/dist/shiki-stream/types.d.ts.map +1 -1
  235. package/dist/ssr/index.d.ts +7 -2
  236. package/dist/ssr/renderHTML.js +2 -2
  237. package/dist/ssr/renderHTML.js.map +1 -1
  238. package/dist/style.js +1 -1
  239. package/dist/style.js.map +1 -1
  240. package/dist/types.d.ts +20 -11
  241. package/dist/types.d.ts.map +1 -1
  242. package/dist/utils/canUseWASM.d.ts +13 -0
  243. package/dist/utils/canUseWASM.d.ts.map +1 -0
  244. package/dist/utils/canUseWASM.js +59 -0
  245. package/dist/utils/canUseWASM.js.map +1 -0
  246. package/dist/utils/createSpanNodeFromToken.d.ts +3 -2
  247. package/dist/utils/createSpanNodeFromToken.d.ts.map +1 -1
  248. package/dist/utils/createSpanNodeFromToken.js +4 -5
  249. package/dist/utils/createSpanNodeFromToken.js.map +1 -1
  250. package/dist/utils/cssWrappers.d.ts.map +1 -1
  251. package/dist/utils/cssWrappers.js +12 -0
  252. package/dist/utils/cssWrappers.js.map +1 -1
  253. package/dist/utils/getCodeViewItemRenderData.d.ts +10 -0
  254. package/dist/utils/getCodeViewItemRenderData.d.ts.map +1 -0
  255. package/dist/utils/getCodeViewItemRenderData.js +19 -0
  256. package/dist/utils/getCodeViewItemRenderData.js.map +1 -0
  257. package/dist/utils/getHighlighterOptions.d.ts.map +1 -1
  258. package/dist/utils/getHighlighterOptions.js +3 -2
  259. package/dist/utils/getHighlighterOptions.js.map +1 -1
  260. package/dist/utils/getHighlighterThemeStyles.d.ts +2 -1
  261. package/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -1
  262. package/dist/utils/getHighlighterThemeStyles.js +13 -3
  263. package/dist/utils/getHighlighterThemeStyles.js.map +1 -1
  264. package/dist/utils/getTokenOptions.d.ts +7 -0
  265. package/dist/utils/getTokenOptions.d.ts.map +1 -0
  266. package/dist/utils/getTokenOptions.js +16 -0
  267. package/dist/utils/getTokenOptions.js.map +1 -0
  268. package/dist/utils/hastToHtml.d.ts +10 -0
  269. package/dist/utils/hastToHtml.d.ts.map +1 -0
  270. package/dist/utils/hastToHtml.js +125 -0
  271. package/dist/utils/hastToHtml.js.map +1 -0
  272. package/dist/utils/hydratePartialDiff.js +4 -0
  273. package/dist/utils/hydratePartialDiff.js.map +1 -1
  274. package/dist/utils/parseDiffDecorations.d.ts +2 -1
  275. package/dist/utils/parseDiffDecorations.d.ts.map +1 -1
  276. package/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
  277. package/dist/utils/parseMergeConflictDiffFromFile.js +2 -0
  278. package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
  279. package/dist/utils/parsePatchFiles.d.ts.map +1 -1
  280. package/dist/utils/parsePatchFiles.js +24 -4
  281. package/dist/utils/parsePatchFiles.js.map +1 -1
  282. package/dist/utils/renderDiffWithHighlighter.d.ts +3 -2
  283. package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  284. package/dist/utils/renderDiffWithHighlighter.js +33 -48
  285. package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  286. package/dist/utils/renderFileWithHighlighter.d.ts +3 -2
  287. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  288. package/dist/utils/renderFileWithHighlighter.js +10 -26
  289. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  290. package/dist/utils/renderTokenLines.d.ts +22 -0
  291. package/dist/utils/renderTokenLines.d.ts.map +1 -0
  292. package/dist/utils/renderTokenLines.js +250 -0
  293. package/dist/utils/renderTokenLines.js.map +1 -0
  294. package/dist/utils/resolvePreferredHighlighter.d.ts +13 -0
  295. package/dist/utils/resolvePreferredHighlighter.d.ts.map +1 -0
  296. package/dist/utils/resolvePreferredHighlighter.js +11 -0
  297. package/dist/utils/resolvePreferredHighlighter.js.map +1 -0
  298. package/dist/utils/resolveRegion.js +20 -10
  299. package/dist/utils/resolveRegion.js.map +1 -1
  300. package/dist/utils/setDeferredArrayItem.d.ts +5 -0
  301. package/dist/utils/setDeferredArrayItem.d.ts.map +1 -0
  302. package/dist/utils/setDeferredArrayItem.js +39 -0
  303. package/dist/utils/setDeferredArrayItem.js.map +1 -0
  304. package/dist/utils/tokenStyle.d.ts +11 -0
  305. package/dist/utils/tokenStyle.d.ts.map +1 -0
  306. package/dist/utils/tokenStyle.js +32 -0
  307. package/dist/utils/tokenStyle.js.map +1 -0
  308. package/dist/utils/tokensToHtml.d.ts +11 -0
  309. package/dist/utils/tokensToHtml.d.ts.map +1 -0
  310. package/dist/utils/tokensToHtml.js +48 -0
  311. package/dist/utils/tokensToHtml.js.map +1 -0
  312. package/dist/utils/updateDiffHunks.d.ts +2 -2
  313. package/dist/utils/updateDiffHunks.d.ts.map +1 -1
  314. package/dist/utils/updateDiffHunks.js +7 -3
  315. package/dist/utils/updateDiffHunks.js.map +1 -1
  316. package/dist/utils/wrapTokenFragments.js.map +1 -1
  317. package/dist/worker/WorkerPoolManager.d.ts +14 -2
  318. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  319. package/dist/worker/WorkerPoolManager.js +155 -67
  320. package/dist/worker/WorkerPoolManager.js.map +1 -1
  321. package/dist/worker/hastLinesTransport.d.ts +14 -0
  322. package/dist/worker/hastLinesTransport.d.ts.map +1 -0
  323. package/dist/worker/hastLinesTransport.js +156 -0
  324. package/dist/worker/hastLinesTransport.js.map +1 -0
  325. package/dist/worker/highlights-CpZm9DAR.js +317 -0
  326. package/dist/worker/highlights-CpZm9DAR.js.map +1 -0
  327. package/dist/worker/index.d.ts +1 -1
  328. package/dist/worker/shiki-Ci4cdHsM.js +697 -0
  329. package/dist/worker/shiki-Ci4cdHsM.js.map +1 -0
  330. package/dist/worker/stream-tokenizer-DK9xp5M5.js +427 -0
  331. package/dist/worker/stream-tokenizer-DK9xp5M5.js.map +1 -0
  332. package/dist/worker/types.d.ts +16 -3
  333. package/dist/worker/types.d.ts.map +1 -1
  334. package/dist/worker/worker-portable.js +41 -13337
  335. package/dist/worker/worker-portable.js.map +1 -1
  336. package/dist/worker/worker.js +681 -349
  337. package/dist/worker/worker.js.map +1 -1
  338. package/dist/worker/workerMessage.d.ts +24 -0
  339. package/dist/worker/workerMessage.d.ts.map +1 -0
  340. package/dist/worker/workerMessage.js +0 -0
  341. package/package.json +5 -3
  342. package/dist/highlighter/themes/constants.d.ts +0 -5
  343. package/dist/highlighter/themes/constants.d.ts.map +0 -1
  344. package/dist/highlighter/themes/constants.js +0 -6
  345. package/dist/highlighter/themes/constants.js.map +0 -1
  346. package/dist/highlighter/themes/themeResolution.d.ts +0 -7
  347. package/dist/highlighter/themes/themeResolution.d.ts.map +0 -1
  348. package/dist/highlighter/themes/themeResolution.js +0 -21
  349. package/dist/highlighter/themes/themeResolution.js.map +0 -1
  350. package/dist/shiki-stream/tokenizer.d.ts +0 -23
  351. package/dist/shiki-stream/tokenizer.d.ts.map +0 -1
  352. package/dist/shiki-stream/tokenizer.js +0 -72
  353. package/dist/shiki-stream/tokenizer.js.map +0 -1
  354. package/dist/utils/createTransformerWithState.d.ts +0 -12
  355. package/dist/utils/createTransformerWithState.d.ts.map +0 -1
  356. package/dist/utils/createTransformerWithState.js +0 -89
  357. package/dist/utils/createTransformerWithState.js.map +0 -1
  358. package/dist/worker/wasm-B9ZqxnKj.js +0 -8
  359. package/dist/worker/wasm-B9ZqxnKj.js.map +0 -1
@@ -44,7 +44,8 @@ interface FileOptions<LAnnotation, Caret> extends BaseCodeOptions, InteractionMa
44
44
  * errors yourself.
45
45
  */
46
46
  disableErrorHandling?: boolean;
47
- renderAnnotation?(annotation: LineAnnotation<LAnnotation>): HTMLElement | undefined;
47
+ /** Receives the matching file, including any editor changes. */
48
+ renderAnnotation?(annotation: LineAnnotation<LAnnotation>, file: FileContents): HTMLElement | undefined;
48
49
  renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<'file'> | undefined): HTMLElement | null | undefined;
49
50
  onPostRender?(node: HTMLElement, instance: File<LAnnotation, Caret>, phase: PostRenderPhase): unknown;
50
51
  /**
@@ -65,15 +66,24 @@ interface FileOptions<LAnnotation, Caret> extends BaseCodeOptions, InteractionMa
65
66
  interface AnnotationElementCache<LAnnotation> {
66
67
  element: HTMLElement;
67
68
  annotation: LineAnnotation<LAnnotation>;
69
+ file: FileContents;
68
70
  }
69
71
  interface HydrationSetup<LAnnotation> {
70
72
  file: FileContents;
71
73
  lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;
72
74
  }
75
+ interface FileRenderData<LAnnotation> {
76
+ file: FileContents;
77
+ lineAnnotations: LineAnnotation<LAnnotation>[];
78
+ }
79
+ interface FileRenderInput<LAnnotation> {
80
+ file: FileContents;
81
+ lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;
82
+ }
73
83
  declare class File<LAnnotation = undefined, Caret = undefined> {
74
84
  options: FileOptions<LAnnotation, Caret>;
75
85
  private workerManager?;
76
- private isContainerManaged;
86
+ private requestOwnerRender?;
77
87
  static LoadedCustomComponent: boolean;
78
88
  readonly __id: string;
79
89
  readonly type = "file";
@@ -105,24 +115,36 @@ declare class File<LAnnotation = undefined, Caret = undefined> {
105
115
  protected resizeManager: ResizeManager;
106
116
  protected interactionManager: InteractionManager<'file'>;
107
117
  protected annotationCache: Map<string, AnnotationElementCache<LAnnotation>>;
108
- protected lineAnnotations: LineAnnotation<LAnnotation>[];
118
+ protected get lineAnnotations(): LineAnnotation<LAnnotation>[];
109
119
  protected managersDirty: boolean;
110
120
  file: FileContents | undefined;
111
121
  private editSession;
112
- protected renderedFile: FileContents | undefined;
122
+ private renderedData;
123
+ private pendingData;
124
+ protected forceRenderOverride: true | undefined;
113
125
  protected renderRange: RenderRange | undefined;
114
126
  protected enabled: boolean;
115
127
  protected editor: Editor<'file', LAnnotation, Caret> | undefined;
116
- constructor(options?: FileOptions<LAnnotation, Caret>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);
128
+ constructor(options?: FileOptions<LAnnotation, Caret>, workerManager?: WorkerPoolManager | undefined, requestOwnerRender?: (() => void) | undefined);
117
129
  getAnnotationSlotName: (annotation: LineAnnotation<LAnnotation> | DiffLineAnnotation<LAnnotation>) => string;
118
130
  private handleHighlightRender;
119
131
  rerender(): void;
132
+ protected requestRender(): boolean;
133
+ protected get isComponentManaged(): boolean;
120
134
  private getTheme;
121
- protected getLatestFile(file?: FileContents | undefined): FileContents | undefined;
135
+ protected getInputFile(): FileContents | undefined;
136
+ protected getWorkingFile(fallbackFile?: FileContents | undefined): FileContents | undefined;
122
137
  protected getRenderedFile(): FileContents | undefined;
138
+ /**
139
+ * @internal Data the next render() with this input will display. While a
140
+ * replacement file is being highlighted, this is still the displayed data.
141
+ */
142
+ __getNextRenderData({ file, lineAnnotations }: FileRenderInput<LAnnotation>): FileRenderData<LAnnotation>;
123
143
  protected getLatestAnnotations(): LineAnnotation<LAnnotation>[];
144
+ protected getAnnotationsForFile(file: FileContents): LineAnnotation<LAnnotation>[];
145
+ private adoptRenderData;
124
146
  protected isNewAnnotations(lineAnnotations: LineAnnotation<LAnnotation>[]): boolean;
125
- protected updateExternalFile(incomingFile: FileContents, lineAnnotations?: LineAnnotation<LAnnotation>[]): boolean;
147
+ protected updateInputFile(incomingFile: FileContents, lineAnnotations?: LineAnnotation<LAnnotation>[]): boolean;
126
148
  private installEditSession;
127
149
  onThemeChange(): void;
128
150
  setOptions(options: FileOptions<LAnnotation, Caret> | undefined): void;
@@ -168,7 +190,7 @@ declare class File<LAnnotation = undefined, Caret = undefined> {
168
190
  * Requires the editor to be detached first. Does nothing when no session
169
191
  * exists, so callers can invoke it again safely after it has settled.
170
192
  *
171
- * `onEditComplete` receives the completed file, current external file, and
193
+ * `onEditComplete` receives the completed file, current input file, and
172
194
  * both annotation collections even when the final text is unchanged. In
173
195
  * `install` mode, accepting installs the completed file and its annotations;
174
196
  * rejecting or having no handler restores the external values. `discard`
@@ -222,5 +244,5 @@ declare class File<LAnnotation = undefined, Caret = undefined> {
222
244
  private cleanupErrorWrapper;
223
245
  }
224
246
  //#endregion
225
- export { File, FileEditChangeHandler, type FileEditCompleteEvent, FileEditCompleteHandler, FileHydrateProps, FileOptions, FileRenderProps };
247
+ export { File, FileEditChangeHandler, type FileEditCompleteEvent, FileEditCompleteHandler, FileHydrateProps, FileOptions, FileRenderData, FileRenderInput, FileRenderProps };
226
248
  //# sourceMappingURL=File.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"File.d.ts","names":[],"sources":["../../src/components/File.ts"],"mappings":"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"}
1
+ {"version":3,"file":"File.d.ts","names":[],"sources":["../../src/components/File.ts"],"mappings":"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"}
@@ -1,10 +1,13 @@
1
- import { CUSTOM_HEADER_SLOT_ID, DEFAULT_THEMES, EMPTY_RENDER_RANGE, HEADER_FILENAME_SUFFIX_SLOT_ID, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID } from "../constants.js";
1
+ import { CUSTOM_HEADER_SLOT_ID, DEFAULT_THEMES, EMPTY_LINE_ANNOTATIONS, EMPTY_RENDER_RANGE, HEADER_FILENAME_SUFFIX_SLOT_ID, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID } from "../constants.js";
2
+ import { HighlighterDisposedError } from "../highlighter/highlighterType.js";
2
3
  import { getThemes } from "../utils/getThemes.js";
3
4
  import { getHighlighterIfLoaded, getSharedHighlighter } from "../highlighter/shared_highlighter.js";
4
5
  import { areThemesEqual } from "../utils/areThemesEqual.js";
5
6
  import { isStyleNode } from "../utils/isStyleNode.js";
6
7
  import { isSafari } from "../utils/platform.js";
8
+ import { resolvePreferredHighlighter } from "../utils/resolvePreferredHighlighter.js";
7
9
  import { areFileTargetsEqual } from "../utils/areFileTargetsEqual.js";
10
+ import { hastToHtml } from "../utils/hastToHtml.js";
8
11
  import { InteractionManager, pluckInteractionOptions } from "../managers/InteractionManager.js";
9
12
  import { ResizeManager } from "../managers/ResizeManager.js";
10
13
  import { areRenderRangesEqual } from "../utils/areRenderRangesEqual.js";
@@ -29,7 +32,6 @@ import { prerenderHTMLIfNecessary } from "../utils/prerenderHTMLIfNecessary.js";
29
32
  import { setPreNodeProperties } from "../utils/setWrapperNodeProps.js";
30
33
  import { isHandledWorkerPoolError } from "../worker/errors.js";
31
34
  import "./web-components.js";
32
- import { toHtml } from "hast-util-to-html";
33
35
  //#region src/components/File.ts
34
36
  const EMPTY_STRINGS = [""];
35
37
  function createEditSessionFile(file) {
@@ -41,7 +43,7 @@ let instanceId = -1;
41
43
  var File = class {
42
44
  options;
43
45
  workerManager;
44
- isContainerManaged;
46
+ requestOwnerRender;
45
47
  static LoadedCustomComponent = true;
46
48
  __id = `file:${++instanceId}`;
47
49
  type = "file";
@@ -73,18 +75,22 @@ var File = class {
73
75
  resizeManager;
74
76
  interactionManager;
75
77
  annotationCache = /* @__PURE__ */ new Map();
76
- lineAnnotations = [];
78
+ get lineAnnotations() {
79
+ return this.renderedData?.lineAnnotations ?? EMPTY_LINE_ANNOTATIONS;
80
+ }
77
81
  managersDirty = false;
78
82
  file;
79
83
  editSession;
80
- renderedFile;
84
+ renderedData;
85
+ pendingData;
86
+ forceRenderOverride;
81
87
  renderRange;
82
88
  enabled = true;
83
89
  editor;
84
- constructor(options = { theme: DEFAULT_THEMES }, workerManager, isContainerManaged = false) {
90
+ constructor(options = { theme: DEFAULT_THEMES }, workerManager, requestOwnerRender) {
85
91
  this.options = options;
86
92
  this.workerManager = workerManager;
87
- this.isContainerManaged = isContainerManaged;
93
+ this.requestOwnerRender = requestOwnerRender;
88
94
  this.fileRenderer = new FileRenderer(options, this.getAnnotationSlotName, this.handleHighlightRender, this.workerManager);
89
95
  this.resizeManager = new ResizeManager();
90
96
  this.interactionManager = new InteractionManager("file", pluckInteractionOptions(options));
@@ -97,51 +103,104 @@ var File = class {
97
103
  this.rerender();
98
104
  };
99
105
  rerender() {
100
- if (!this.enabled || this.file == null) return;
106
+ const file = this.getInputFile();
107
+ if (!this.enabled || file == null) return;
108
+ if (this.requestRender()) return;
101
109
  this.render({
102
- file: this.file,
110
+ file,
103
111
  forceRender: true,
104
112
  renderRange: this.renderRange
105
113
  });
106
114
  }
115
+ requestRender() {
116
+ const { requestOwnerRender } = this;
117
+ if (this.editSession != null || requestOwnerRender == null) return false;
118
+ this.forceRenderOverride = true;
119
+ requestOwnerRender();
120
+ return true;
121
+ }
122
+ get isComponentManaged() {
123
+ return this.requestOwnerRender != null;
124
+ }
107
125
  getTheme() {
108
126
  return this.workerManager?.getFileRenderOptions().theme ?? this.options.theme ?? DEFAULT_THEMES;
109
127
  }
110
- getLatestFile(file = this.file) {
111
- return this.editSession?.file ?? file;
128
+ getInputFile() {
129
+ return this.file;
130
+ }
131
+ getWorkingFile(fallbackFile = this.file) {
132
+ return this.editSession?.file ?? fallbackFile;
112
133
  }
113
134
  getRenderedFile() {
114
- return this.renderedFile;
135
+ return this.renderedData?.file;
136
+ }
137
+ /**
138
+ * @internal Data the next render() with this input will display. While a
139
+ * replacement file is being highlighted, this is still the displayed data.
140
+ */
141
+ __getNextRenderData({ file, lineAnnotations }) {
142
+ const sessionAnnotations = this.editSession?.annotations;
143
+ if (sessionAnnotations != null) return {
144
+ file,
145
+ lineAnnotations: lineAnnotations != null && this.isNewAnnotations(lineAnnotations) ? lineAnnotations : sessionAnnotations.provided
146
+ };
147
+ const workingFile = this.getWorkingFile(file) ?? file;
148
+ const nextFile = this.fileRenderer.getFileForNextRender(workingFile);
149
+ return {
150
+ file: nextFile,
151
+ lineAnnotations: lineAnnotations != null && areFileTargetsEqual(nextFile, workingFile) ? lineAnnotations : this.getAnnotationsForFile(nextFile)
152
+ };
115
153
  }
116
154
  getLatestAnnotations() {
117
- return this.editSession?.annotations?.current ?? this.lineAnnotations;
155
+ return this.pendingData?.lineAnnotations ?? this.editSession?.annotations?.current ?? this.lineAnnotations;
156
+ }
157
+ getAnnotationsForFile(file) {
158
+ const { pendingData } = this;
159
+ return pendingData != null && areFileTargetsEqual(file, pendingData.file) ? pendingData.lineAnnotations : this.lineAnnotations;
160
+ }
161
+ adoptRenderData(file) {
162
+ const { pendingData } = this;
163
+ const matchesPending = pendingData != null && areFileTargetsEqual(file, pendingData.file);
164
+ this.renderedData = {
165
+ file,
166
+ lineAnnotations: matchesPending ? pendingData.lineAnnotations : this.lineAnnotations
167
+ };
168
+ if (matchesPending) this.pendingData = void 0;
118
169
  }
119
170
  isNewAnnotations(lineAnnotations) {
120
171
  const session = this.editSession?.annotations;
121
- if (lineAnnotations === this.lineAnnotations) return false;
172
+ if (lineAnnotations === this.getLatestAnnotations()) return false;
122
173
  return session == null || lineAnnotations !== session.provided && lineAnnotations !== session.current;
123
174
  }
124
- updateExternalFile(incomingFile, lineAnnotations) {
125
- if (areFileTargetsEqual(this.file, incomingFile)) return false;
175
+ updateInputFile(incomingFile, lineAnnotations) {
176
+ if (areFileTargetsEqual(this.getInputFile(), incomingFile)) return false;
126
177
  const hadSession = this.editSession != null;
178
+ const previousAnnotations = this.getLatestAnnotations();
127
179
  this.file = incomingFile;
128
180
  if (hadSession || this.editor != null) this.installEditSession(incomingFile, hadSession ? void 0 : this.editor?.__getDocumentContents(incomingFile), true);
129
181
  else this.editSession = void 0;
130
- if (this.editSession?.annotations != null && lineAnnotations != null) {
131
- this.lineAnnotations = lineAnnotations;
132
- this.editSession.annotations = adoptEditSessionAnnotations(lineAnnotations, getLineAnnotationName, this.editSession.annotations);
133
- }
182
+ if (this.editSession?.annotations != null && lineAnnotations != null) this.editSession.annotations = adoptEditSessionAnnotations(lineAnnotations, getLineAnnotationName, this.editSession.annotations);
183
+ this.pendingData = {
184
+ file: this.editSession?.file ?? incomingFile,
185
+ lineAnnotations: this.editSession?.annotations?.current ?? lineAnnotations ?? previousAnnotations
186
+ };
134
187
  return true;
135
188
  }
136
- installEditSession(externalFile, retainedDocument, hostReplacement = false) {
137
- const usesExternalDocument = retainedDocument == null || retainedDocument.name === externalFile.name && retainedDocument.lang === externalFile.lang && retainedDocument.contents === externalFile.contents;
138
- const file = createEditSessionFile(retainedDocument ?? externalFile);
189
+ installEditSession(inputFile, retainedDocument, hostReplacement = false) {
190
+ const usesInputDocument = retainedDocument == null || retainedDocument.name === inputFile.name && retainedDocument.lang === inputFile.lang && retainedDocument.contents === inputFile.contents;
191
+ const file = createEditSessionFile(retainedDocument ?? inputFile);
192
+ const annotations = this.editSession?.annotations ?? adoptEditSessionAnnotations(this.getLatestAnnotations(), getLineAnnotationName);
139
193
  this.editSession = {
140
194
  file,
141
- externalReplacement: hostReplacement && usesExternalDocument,
142
- annotations: this.editSession?.annotations ?? adoptEditSessionAnnotations(this.lineAnnotations, getLineAnnotationName)
195
+ inputFile,
196
+ externalReplacement: hostReplacement && usesInputDocument,
197
+ annotations
143
198
  };
144
- this.fileRenderer.beginEditSession(file, usesExternalDocument ? externalFile : void 0);
199
+ this.pendingData = {
200
+ file,
201
+ lineAnnotations: annotations.current
202
+ };
203
+ this.fileRenderer.beginEditSession(file, usesInputDocument ? inputFile : void 0);
145
204
  }
146
205
  onThemeChange() {
147
206
  this.fileRenderer.clearRenderCache();
@@ -182,18 +241,22 @@ var File = class {
182
241
  };
183
242
  setLineAnnotations(lineAnnotations) {
184
243
  const sessionAnnotations = this.editSession?.annotations;
185
- if (sessionAnnotations == null) {
186
- this.lineAnnotations = lineAnnotations;
187
- return;
244
+ if (sessionAnnotations != null) {
245
+ if (!this.isNewAnnotations(lineAnnotations)) return;
246
+ writeEditSessionAnnotations(sessionAnnotations, lineAnnotations, getLineAnnotationName);
188
247
  }
189
- if (!this.isNewAnnotations(lineAnnotations)) return;
190
- this.lineAnnotations = lineAnnotations;
191
- writeEditSessionAnnotations(sessionAnnotations, lineAnnotations, getLineAnnotationName);
248
+ const file = this.getWorkingFile();
249
+ if (file != null) this.pendingData = {
250
+ file,
251
+ lineAnnotations
252
+ };
192
253
  }
193
254
  syncEditSessionAnnotationsFromEditor(lineAnnotations) {
194
255
  const session = this.editSession?.annotations;
195
256
  if (session == null || lineAnnotations === session.current) return false;
196
257
  session.current = lineAnnotations;
258
+ if (this.renderedData != null) this.renderedData.lineAnnotations = lineAnnotations;
259
+ this.pendingData = void 0;
197
260
  this.fileRenderer.setLineAnnotations(lineAnnotations);
198
261
  this.renderAnnotations();
199
262
  return true;
@@ -233,7 +296,7 @@ var File = class {
233
296
  this.managersDirty = false;
234
297
  }
235
298
  shouldApplyColumnVariables(overflow) {
236
- return overflow === "scroll" && this.getLatestAnnotations().length > 0;
299
+ return overflow === "scroll" && this.lineAnnotations.length > 0;
237
300
  }
238
301
  cleanUp(recycle = false) {
239
302
  const editor = this.editor;
@@ -245,10 +308,13 @@ var File = class {
245
308
  this.managersDirty = false;
246
309
  this.workerManager?.unsubscribeToThemeChanges(this);
247
310
  this.renderRange = void 0;
248
- if (!this.isContainerManaged) this.fileContainer?.remove();
311
+ if (!this.isComponentManaged) this.fileContainer?.remove();
249
312
  this.fileContainer = void 0;
250
313
  this.mounted = false;
251
- if (!recycle) this.lineAnnotations = [];
314
+ if (!recycle) {
315
+ this.renderedData = void 0;
316
+ this.pendingData = void 0;
317
+ }
252
318
  this.clearAuxiliaryNodes();
253
319
  this.pre = void 0;
254
320
  this.code = void 0;
@@ -281,7 +347,6 @@ var File = class {
281
347
  this.workerManager = void 0;
282
348
  this.file = void 0;
283
349
  this.editSession = void 0;
284
- this.renderedFile = void 0;
285
350
  }
286
351
  this.enabled = false;
287
352
  }
@@ -343,20 +408,23 @@ var File = class {
343
408
  this.hydrateMeasuredScrollbar();
344
409
  }
345
410
  hydrationSetup({ file, lineAnnotations }) {
346
- this.lineAnnotations = lineAnnotations ?? this.lineAnnotations;
411
+ this.renderedData = {
412
+ file,
413
+ lineAnnotations: lineAnnotations ?? this.getLatestAnnotations()
414
+ };
415
+ this.pendingData = void 0;
347
416
  this.file = file;
348
417
  this.fileRenderer.setOptions(getFileRendererOptions(this.options));
349
418
  this.syncInteractionOptions();
350
419
  if (this.pre == null) return;
351
420
  this.fileRenderer.hydrate(file);
352
- this.renderedFile = file;
353
421
  this.renderAnnotations();
354
422
  this.renderGutterUtility();
355
423
  this.injectUnsafeCSS();
356
424
  this.managersDirty = true;
357
425
  this.flushManagers();
358
426
  }
359
- getOrCreateLineCache(file = this.getLatestFile()) {
427
+ getOrCreateLineCache(file = this.getWorkingFile()) {
360
428
  return file != null ? this.fileRenderer.getOrCreateLineCache(file) : EMPTY_STRINGS;
361
429
  }
362
430
  updateBuffers(renderRange) {
@@ -365,10 +433,10 @@ var File = class {
365
433
  syncRenderViewToEditor() {
366
434
  const { editor, fileContainer, renderRange } = this;
367
435
  const lineAnnotations = this.getLatestAnnotations();
368
- const file = this.getLatestFile();
436
+ const file = this.getWorkingFile();
369
437
  if (editor == null || fileContainer == null || file == null) return;
370
438
  const syncEditor = (highlighter) => {
371
- if (!this.enabled || this.editor !== editor || this.fileContainer !== fileContainer || this.getLatestFile() !== file) return;
439
+ if (!this.enabled || this.editor !== editor || this.fileContainer !== fileContainer || this.getWorkingFile() !== file) return;
372
440
  editor.__syncRenderView({
373
441
  highlighter,
374
442
  fileContainer,
@@ -388,8 +456,10 @@ var File = class {
388
456
  else getSharedHighlighter({
389
457
  themes: getThemes(theme),
390
458
  langs: Array.from(/* @__PURE__ */ new Set(["text", lang])),
391
- preferredHighlighter: this.workerManager?.getPreferredHighlighter() ?? this.options.preferredHighlighter
392
- }).then(syncEditor);
459
+ preferredHighlighter: resolvePreferredHighlighter(this.workerManager, this.options)
460
+ }).then(syncEditor).catch((error) => {
461
+ if (!(error instanceof HighlighterDisposedError)) console.error(error);
462
+ });
393
463
  }
394
464
  /** @internal The editor applied or edited past the pending external replacement. */
395
465
  __acknowledgeDocumentUpdate() {
@@ -429,10 +499,13 @@ var File = class {
429
499
  }
430
500
  resumeEditorRendering(editor) {
431
501
  if (this.editSession != null) this.fileRenderer.beginEditSession(this.editSession.file);
432
- else if (this.file != null) this.installEditSession(this.file, editor.__getDocumentContents(this.file));
502
+ else {
503
+ const inputFile = this.getInputFile();
504
+ if (inputFile != null) this.installEditSession(inputFile, editor.__getDocumentContents(inputFile));
505
+ }
433
506
  const editSessionFile = this.editSession?.file;
434
507
  if (this.fileRenderer.editorRenderReady()) {
435
- if (this.fileRenderer.fileCache === editSessionFile) this.renderedFile = editSessionFile;
508
+ if (editSessionFile != null && this.fileRenderer.fileCache === editSessionFile) this.adoptRenderData(editSessionFile);
436
509
  this.syncRenderViewToEditor();
437
510
  } else this.rerender();
438
511
  }
@@ -443,7 +516,7 @@ var File = class {
443
516
  * Requires the editor to be detached first. Does nothing when no session
444
517
  * exists, so callers can invoke it again safely after it has settled.
445
518
  *
446
- * `onEditComplete` receives the completed file, current external file, and
519
+ * `onEditComplete` receives the completed file, current input file, and
447
520
  * both annotation collections even when the final text is unchanged. In
448
521
  * `install` mode, accepting installs the completed file and its annotations;
449
522
  * rejecting or having no handler restores the external values. `discard`
@@ -454,9 +527,10 @@ var File = class {
454
527
  this.settleEditSession(mode === "install", editor);
455
528
  }
456
529
  settleEditSession(installResult, editor) {
457
- const { editSession, file: externalFile, lineAnnotations: externalAnnotations } = this;
458
- if (editSession == null || externalFile == null) return;
459
- const { file: editSessionFile, annotations: editSessionAnnotations } = editSession;
530
+ const { editSession } = this;
531
+ if (editSession == null) return;
532
+ const { file: editSessionFile, inputFile, annotations: editSessionAnnotations } = editSession;
533
+ const inputAnnotations = editSessionAnnotations?.provided ?? this.lineAnnotations;
460
534
  if (this.editor != null) throw new Error("File.__completeEditSession: detach the editor before completing the session");
461
535
  const sessionAnnotationsCurrent = editSessionAnnotations?.current;
462
536
  let acceptedFile;
@@ -467,29 +541,31 @@ var File = class {
467
541
  const event = {
468
542
  file: completedFile,
469
543
  editor,
470
- originalFile: externalFile,
544
+ originalFile: inputFile,
471
545
  lineAnnotations: sessionAnnotationsCurrent,
472
- originalLineAnnotations: externalAnnotations
546
+ originalLineAnnotations: inputAnnotations
473
547
  };
474
548
  Object.freeze(event);
475
549
  try {
476
550
  editor.__emitEditComplete(event);
477
551
  if (this.options.onEditComplete?.(event) === "accept") {
478
- if (completedFile.cacheKey != null && completedFile.cacheKey === externalFile.cacheKey) throw new Error("File.__completeEditSession: an accepted file must not reuse the replaced file cacheKey");
552
+ if (completedFile.cacheKey != null && completedFile.cacheKey === inputFile.cacheKey) throw new Error("File.__completeEditSession: an accepted file must not reuse the replaced file cacheKey");
479
553
  acceptedFile = completedFile;
480
554
  }
481
555
  } catch (error) {
482
556
  failed = true;
483
557
  failure = error;
484
558
  }
485
- if (installResult && acceptedFile != null) {
486
- this.file = acceptedFile;
487
- if (sessionAnnotationsCurrent != null) this.lineAnnotations = sessionAnnotationsCurrent;
488
- }
559
+ const settledFile = installResult && acceptedFile != null ? acceptedFile : inputFile;
560
+ const settledAnnotations = installResult && acceptedFile != null ? sessionAnnotationsCurrent ?? inputAnnotations : inputAnnotations;
489
561
  this.editSession = void 0;
490
- const { renderedFile, file: settledFile } = this;
562
+ this.file = settledFile;
563
+ this.pendingData = {
564
+ file: settledFile,
565
+ lineAnnotations: settledAnnotations
566
+ };
491
567
  this.fileRenderer.endEditSession(settledFile);
492
- if (renderedFile != null && settledFile != null && renderedFile !== settledFile && areFileTargetsEqual(renderedFile, settledFile)) this.renderedFile = settledFile;
568
+ if (areFileTargetsEqual(this.getRenderedFile(), settledFile)) this.adoptRenderData(settledFile);
493
569
  if (installResult && this.fileContainer != null) this.rerender();
494
570
  if (failed) throw failure;
495
571
  }
@@ -514,15 +590,17 @@ var File = class {
514
590
  }
515
591
  render({ file, fileContainer, forceRender = false, preventEmit = false, containerWrapper, deferManagers = false, lineAnnotations, renderRange }) {
516
592
  if (!this.enabled) throw new Error("File.render: attempting to call render after cleaned up");
593
+ forceRender = this.forceRenderOverride ?? forceRender;
594
+ this.forceRenderOverride = void 0;
517
595
  this.editor?.__postponeBgTokenizeToNextFrame();
518
596
  const { collapsed = false, themeType = "system" } = this.options;
519
597
  const nextRenderRange = collapsed ? void 0 : renderRange;
520
598
  const previousRenderRange = this.renderRange;
521
599
  const themeChanged = this.hasThemeChanged();
522
600
  const annotationsChanged = lineAnnotations != null && (lineAnnotations.length > 0 || this.getLatestAnnotations().length > 0) ? this.isNewAnnotations(lineAnnotations) : false;
523
- const didFileChange = !areFileTargetsEqual(this.file, file);
524
- if (didFileChange) this.updateExternalFile(file, lineAnnotations);
525
- const latestFile = this.getLatestFile(file) ?? file;
601
+ const didFileChange = !areFileTargetsEqual(this.getInputFile(), file);
602
+ if (didFileChange) this.updateInputFile(file, lineAnnotations);
603
+ const workingFile = this.getWorkingFile(file) ?? file;
526
604
  if (!collapsed && !forceRender && areRenderRangesEqual(nextRenderRange, this.renderRange) && !didFileChange && !annotationsChanged && !themeChanged) {
527
605
  const rendered = this.applyCachedThemeState(themeType);
528
606
  if (rendered) this.finalizeRender();
@@ -533,7 +611,8 @@ var File = class {
533
611
  this.fileRenderer.setOptions(getFileRendererOptions(this.options));
534
612
  this.syncInteractionOptions();
535
613
  if (lineAnnotations != null) this.setLineAnnotations(lineAnnotations);
536
- this.fileRenderer.setLineAnnotations(this.getLatestAnnotations());
614
+ const nextRenderFile = this.fileRenderer.getFileForNextRender(workingFile);
615
+ this.fileRenderer.setLineAnnotations(this.getAnnotationsForFile(nextRenderFile));
537
616
  const { disableErrorHandling = false, disableFileHeader = false } = this.options;
538
617
  if (disableFileHeader) {
539
618
  if (this.headerElement != null) {
@@ -549,10 +628,10 @@ var File = class {
549
628
  this.removeRenderedCode();
550
629
  this.clearAuxiliaryNodes();
551
630
  try {
552
- const fileResult = this.fileRenderer.renderFile(latestFile, EMPTY_RENDER_RANGE);
631
+ const fileResult = this.fileRenderer.renderFile(workingFile, EMPTY_RENDER_RANGE);
553
632
  if (fileResult != null) this.applyThemeState(fileContainer, fileResult.themeStyles, themeType, fileResult.baseThemeType);
554
633
  if (fileResult?.headerAST != null) this.applyHeaderToDOM(fileResult.headerAST, fileContainer, fileResult.file);
555
- this.renderedFile = fileResult?.file ?? latestFile;
634
+ this.adoptRenderData(fileResult?.file ?? workingFile);
556
635
  this.injectUnsafeCSS();
557
636
  } catch (error) {
558
637
  if (disableErrorHandling) throw error;
@@ -565,8 +644,9 @@ var File = class {
565
644
  }
566
645
  try {
567
646
  const pre = this.getOrCreatePreNode(fileContainer);
568
- if (!this.canPartiallyRender(forceRender, annotationsChanged, didFileChange || themeChanged || !areFileTargetsEqual(this.renderedFile, latestFile)) || !this.applyPartialRender(latestFile, previousRenderRange, nextRenderRange)) {
569
- const fileResult = this.fileRenderer.renderFile(latestFile, nextRenderRange);
647
+ let renderedFile = this.getRenderedFile();
648
+ if (!this.canPartiallyRender(forceRender, annotationsChanged, didFileChange || themeChanged || !areFileTargetsEqual(this.getRenderedFile(), workingFile)) || !this.applyPartialRender(workingFile, previousRenderRange, nextRenderRange)) {
649
+ const fileResult = this.fileRenderer.renderFile(workingFile, nextRenderRange);
570
650
  if (fileResult == null) {
571
651
  if (this.workerManager?.isInitialized() === false && this.workerManager.isWorkingPool()) this.workerManager.initialize().catch(() => {}).then(() => this.rerender());
572
652
  return false;
@@ -574,10 +654,11 @@ var File = class {
574
654
  this.applyThemeState(fileContainer, fileResult.themeStyles, themeType, fileResult.baseThemeType);
575
655
  if (fileResult.headerAST != null) this.applyHeaderToDOM(fileResult.headerAST, fileContainer, fileResult.file);
576
656
  this.applyFullRender(fileResult, pre);
577
- this.renderedFile = fileResult.file;
657
+ renderedFile = fileResult.file;
578
658
  }
579
659
  this.applyBuffers(pre, nextRenderRange);
580
660
  this.injectUnsafeCSS();
661
+ if (renderedFile != null) this.adoptRenderData(renderedFile);
581
662
  this.renderAnnotations();
582
663
  this.renderGutterUtility();
583
664
  this.managersDirty = true;
@@ -648,7 +729,7 @@ var File = class {
648
729
  this.placeHolder.style.setProperty("height", `${height}px`);
649
730
  return true;
650
731
  }
651
- async primeHighlightCache(file = this.file) {
732
+ async primeHighlightCache(file = this.getInputFile()) {
652
733
  const { workerManager } = this;
653
734
  if (file == null || workerManager == null || !workerManager.isWorkingPool() || file.cacheKey == null || isFilePlainText(file)) return;
654
735
  const tokenizeMaxLength = this.options.tokenizeMaxLength ?? 1e5;
@@ -696,31 +777,35 @@ var File = class {
696
777
  this.mounted = false;
697
778
  }
698
779
  renderAnnotations() {
699
- if (this.isContainerManaged || this.fileContainer == null) {
780
+ if (this.isComponentManaged || this.fileContainer == null) {
700
781
  for (const { element } of this.annotationCache.values()) element.remove();
701
782
  this.annotationCache.clear();
702
783
  return;
703
784
  }
704
785
  const staleAnnotations = new Map(this.annotationCache);
705
786
  const { renderAnnotation } = this.options;
706
- const lineAnnotations = this.getLatestAnnotations();
707
- if (renderAnnotation != null && lineAnnotations.length > 0) for (const [index, annotation] of lineAnnotations.entries()) {
708
- const name = this.getAnnotationSlotName(annotation);
709
- const id = `${index}-${name}`;
710
- let cache = this.annotationCache.get(id);
711
- if (cache == null || !areLineAnnotationsEqual(annotation, cache.annotation)) {
712
- cache?.element.remove();
713
- const content = renderAnnotation(annotation);
714
- if (content == null) continue;
715
- cache = {
716
- element: createAnnotationWrapperNode(name),
717
- annotation
718
- };
719
- cache.element.appendChild(content);
720
- this.fileContainer.appendChild(cache.element);
721
- this.annotationCache.set(id, cache);
787
+ const { renderedData } = this;
788
+ if (renderAnnotation != null && renderedData != null) {
789
+ const { file, lineAnnotations } = renderedData;
790
+ for (const [index, annotation] of lineAnnotations.entries()) {
791
+ const name = this.getAnnotationSlotName(annotation);
792
+ const id = `${index}-${name}`;
793
+ let cache = this.annotationCache.get(id);
794
+ if (cache == null || cache.file !== file || !areLineAnnotationsEqual(annotation, cache.annotation)) {
795
+ cache?.element.remove();
796
+ const content = renderAnnotation(annotation, file);
797
+ if (content == null) continue;
798
+ cache = {
799
+ element: createAnnotationWrapperNode(name),
800
+ annotation,
801
+ file
802
+ };
803
+ cache.element.appendChild(content);
804
+ this.fileContainer.appendChild(cache.element);
805
+ this.annotationCache.set(id, cache);
806
+ }
807
+ staleAnnotations.delete(id);
722
808
  }
723
- staleAnnotations.delete(id);
724
809
  }
725
810
  for (const [id, { element }] of staleAnnotations.entries()) {
726
811
  this.annotationCache.delete(id);
@@ -748,6 +833,7 @@ var File = class {
748
833
  }
749
834
  injectUnsafeCSS() {
750
835
  const { unsafeCSS } = this.options;
836
+ this.pre?.toggleAttribute("data-custom-styles", Boolean(unsafeCSS));
751
837
  const shadowRoot = this.fileContainer?.shadowRoot;
752
838
  if (shadowRoot == null) return;
753
839
  if (unsafeCSS == null || unsafeCSS === "") {
@@ -816,10 +902,10 @@ var File = class {
816
902
  if (code.childElementCount >= 2) for (let i = 0; i < 2; i++) {
817
903
  const domEl = code.children[i];
818
904
  const astEl = codeAst[i];
819
- domEl.innerHTML = toHtml(astEl.children);
905
+ domEl.innerHTML = hastToHtml(astEl.children);
820
906
  domEl.style.cssText = astEl.properties.style;
821
907
  }
822
- else code.innerHTML = toHtml(codeAst);
908
+ else code.innerHTML = hastToHtml(codeAst);
823
909
  if (!pre.contains(code)) pre.replaceChildren(code);
824
910
  };
825
911
  if (this.shouldGuardRebuildScroll()) guardWebKitScrollDuringRebuild(pre, applyColumns);
@@ -967,7 +1053,7 @@ var File = class {
967
1053
  this.cleanupErrorWrapper();
968
1054
  this.placeHolder?.remove();
969
1055
  this.placeHolder = void 0;
970
- const headerHTML = this.cachedHeaderHTML ?? toHtml(headerAST);
1056
+ const headerHTML = this.cachedHeaderHTML ?? hastToHtml(headerAST);
971
1057
  this.cachedHeaderHTML = headerHTML;
972
1058
  if (headerHTML !== this.lastRenderedHeaderHTML) {
973
1059
  const tempDiv = document.createElement("div");
@@ -979,7 +1065,7 @@ var File = class {
979
1065
  this.headerElement = newHeader;
980
1066
  this.lastRenderedHeaderHTML = headerHTML;
981
1067
  }
982
- if (this.isContainerManaged) return;
1068
+ if (this.isComponentManaged) return;
983
1069
  const { renderHeaderPrefix, renderHeaderFilenameSuffix, renderCustomHeader, renderHeaderMetadata } = this.options;
984
1070
  if (renderCustomHeader != null) {
985
1071
  const content = renderCustomHeader(file) ?? void 0;