@pierre/diffs 1.2.11 → 1.2.12

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 (544) hide show
  1. package/README.md +9 -9
  2. package/dist/components/CodeView.d.ts +10 -11
  3. package/dist/components/CodeView.d.ts.map +1 -1
  4. package/dist/components/CodeView.js +7 -8
  5. package/dist/components/CodeView.js.map +1 -1
  6. package/dist/components/File.d.ts +1 -4
  7. package/dist/components/File.d.ts.map +1 -1
  8. package/dist/components/File.js +13 -11
  9. package/dist/components/File.js.map +1 -1
  10. package/dist/components/FileDiff.d.ts +11 -14
  11. package/dist/components/FileDiff.d.ts.map +1 -1
  12. package/dist/components/FileDiff.js +15 -13
  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 +4 -4
  17. package/dist/components/FileStream.js.map +1 -1
  18. package/dist/components/UnresolvedFile.d.ts +2 -2
  19. package/dist/components/UnresolvedFile.d.ts.map +1 -1
  20. package/dist/components/UnresolvedFile.js +7 -5
  21. package/dist/components/UnresolvedFile.js.map +1 -1
  22. package/dist/components/VirtualizedFile.d.ts +0 -1
  23. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  24. package/dist/components/VirtualizedFile.js +19 -18
  25. package/dist/components/VirtualizedFile.js.map +1 -1
  26. package/dist/components/VirtualizedFileDiff.d.ts +2 -3
  27. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  28. package/dist/components/VirtualizedFileDiff.js +17 -18
  29. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  30. package/dist/components/Virtualizer.d.ts +1 -1
  31. package/dist/components/Virtualizer.d.ts.map +1 -1
  32. package/dist/components/Virtualizer.js +23 -24
  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 +1 -1
  39. package/dist/constants.d.ts.map +1 -1
  40. package/dist/constants.js +1 -1
  41. package/dist/constants.js.map +1 -1
  42. package/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -1
  43. package/dist/highlighter/languages/areLanguagesAttached.js +1 -2
  44. package/dist/highlighter/languages/areLanguagesAttached.js.map +1 -1
  45. package/dist/highlighter/languages/attachResolvedLanguages.d.ts +0 -2
  46. package/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -1
  47. package/dist/highlighter/languages/attachResolvedLanguages.js +1 -2
  48. package/dist/highlighter/languages/attachResolvedLanguages.js.map +1 -1
  49. package/dist/highlighter/languages/cleanUpResolvedLanguages.d.ts.map +1 -1
  50. package/dist/highlighter/languages/cleanUpResolvedLanguages.js +1 -2
  51. package/dist/highlighter/languages/cleanUpResolvedLanguages.js.map +1 -1
  52. package/dist/highlighter/languages/constants.d.ts +0 -1
  53. package/dist/highlighter/languages/constants.d.ts.map +1 -1
  54. package/dist/highlighter/languages/constants.js +1 -1
  55. package/dist/highlighter/languages/constants.js.map +1 -1
  56. package/dist/highlighter/languages/getResolvedLanguages.d.ts +0 -2
  57. package/dist/highlighter/languages/getResolvedLanguages.d.ts.map +1 -1
  58. package/dist/highlighter/languages/getResolvedLanguages.js +1 -2
  59. package/dist/highlighter/languages/getResolvedLanguages.js.map +1 -1
  60. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +0 -2
  61. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts.map +1 -1
  62. package/dist/highlighter/languages/getResolvedOrResolveLanguage.js +1 -2
  63. package/dist/highlighter/languages/getResolvedOrResolveLanguage.js.map +1 -1
  64. package/dist/highlighter/languages/hasResolvedLanguages.d.ts.map +1 -1
  65. package/dist/highlighter/languages/hasResolvedLanguages.js +1 -2
  66. package/dist/highlighter/languages/hasResolvedLanguages.js.map +1 -1
  67. package/dist/highlighter/languages/registerCustomLanguage.d.ts +0 -1
  68. package/dist/highlighter/languages/registerCustomLanguage.d.ts.map +1 -1
  69. package/dist/highlighter/languages/registerCustomLanguage.js +1 -2
  70. package/dist/highlighter/languages/registerCustomLanguage.js.map +1 -1
  71. package/dist/highlighter/languages/resolveLanguage.d.ts +0 -2
  72. package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
  73. package/dist/highlighter/languages/resolveLanguage.js +4 -5
  74. package/dist/highlighter/languages/resolveLanguage.js.map +1 -1
  75. package/dist/highlighter/languages/resolveLanguages.d.ts +0 -2
  76. package/dist/highlighter/languages/resolveLanguages.d.ts.map +1 -1
  77. package/dist/highlighter/languages/resolveLanguages.js +1 -2
  78. package/dist/highlighter/languages/resolveLanguages.js.map +1 -1
  79. package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
  80. package/dist/highlighter/shared_highlighter.js +3 -4
  81. package/dist/highlighter/shared_highlighter.js.map +1 -1
  82. package/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -1
  83. package/dist/highlighter/themes/areThemesAttached.js +1 -2
  84. package/dist/highlighter/themes/areThemesAttached.js.map +1 -1
  85. package/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -1
  86. package/dist/highlighter/themes/attachResolvedThemes.js +1 -2
  87. package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -1
  88. package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -1
  89. package/dist/highlighter/themes/cleanUpResolvedThemes.js +1 -2
  90. package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -1
  91. package/dist/highlighter/themes/constants.d.ts.map +1 -1
  92. package/dist/highlighter/themes/constants.js +1 -1
  93. package/dist/highlighter/themes/constants.js.map +1 -1
  94. package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -1
  95. package/dist/highlighter/themes/getResolvedOrResolveTheme.js +1 -2
  96. package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -1
  97. package/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -1
  98. package/dist/highlighter/themes/getResolvedThemes.js +1 -2
  99. package/dist/highlighter/themes/getResolvedThemes.js.map +1 -1
  100. package/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -1
  101. package/dist/highlighter/themes/hasResolvedThemes.js +1 -2
  102. package/dist/highlighter/themes/hasResolvedThemes.js.map +1 -1
  103. package/dist/highlighter/themes/registerCustomCSSVariableTheme.d.ts.map +1 -1
  104. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js +1 -2
  105. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js.map +1 -1
  106. package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
  107. package/dist/highlighter/themes/registerCustomTheme.js +1 -2
  108. package/dist/highlighter/themes/registerCustomTheme.js.map +1 -1
  109. package/dist/highlighter/themes/resolveTheme.d.ts.map +1 -1
  110. package/dist/highlighter/themes/resolveTheme.js +1 -2
  111. package/dist/highlighter/themes/resolveTheme.js.map +1 -1
  112. package/dist/highlighter/themes/resolveThemes.d.ts.map +1 -1
  113. package/dist/highlighter/themes/resolveThemes.js +1 -2
  114. package/dist/highlighter/themes/resolveThemes.js.map +1 -1
  115. package/dist/highlighter/themes/themeResolution.d.ts.map +1 -1
  116. package/dist/highlighter/themes/themeResolution.js +1 -2
  117. package/dist/highlighter/themes/themeResolution.js.map +1 -1
  118. package/dist/highlighter/themes/themeResolver.d.ts +2 -2
  119. package/dist/highlighter/themes/themeResolver.d.ts.map +1 -1
  120. package/dist/highlighter/themes/themeResolver.js +1 -2
  121. package/dist/highlighter/themes/themeResolver.js.map +1 -1
  122. package/dist/index.d.ts +9 -9
  123. package/dist/index.js +1 -2
  124. package/dist/managers/InteractionManager.d.ts.map +1 -1
  125. package/dist/managers/InteractionManager.js +3 -3
  126. package/dist/managers/InteractionManager.js.map +1 -1
  127. package/dist/managers/ResizeManager.d.ts.map +1 -1
  128. package/dist/managers/ResizeManager.js +1 -1
  129. package/dist/managers/ResizeManager.js.map +1 -1
  130. package/dist/managers/ScrollSyncManager.d.ts.map +1 -1
  131. package/dist/managers/ScrollSyncManager.js +1 -1
  132. package/dist/managers/ScrollSyncManager.js.map +1 -1
  133. package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
  134. package/dist/managers/UniversalRenderingManager.js +2 -2
  135. package/dist/managers/UniversalRenderingManager.js.map +1 -1
  136. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts +228 -0
  137. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts.map +1 -0
  138. package/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts +84 -0
  139. package/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts.map +1 -0
  140. package/dist/react/CodeView.d.ts +0 -1
  141. package/dist/react/CodeView.d.ts.map +1 -1
  142. package/dist/react/CodeView.js +9 -12
  143. package/dist/react/CodeView.js.map +1 -1
  144. package/dist/react/File.d.ts.map +1 -1
  145. package/dist/react/File.js +2 -5
  146. package/dist/react/File.js.map +1 -1
  147. package/dist/react/FileDiff.d.ts.map +1 -1
  148. package/dist/react/FileDiff.js +2 -5
  149. package/dist/react/FileDiff.js.map +1 -1
  150. package/dist/react/MultiFileDiff.d.ts.map +1 -1
  151. package/dist/react/MultiFileDiff.js +2 -5
  152. package/dist/react/MultiFileDiff.js.map +1 -1
  153. package/dist/react/PatchDiff.d.ts.map +1 -1
  154. package/dist/react/PatchDiff.js +2 -5
  155. package/dist/react/PatchDiff.js.map +1 -1
  156. package/dist/react/UnresolvedFile.d.ts +1 -1
  157. package/dist/react/UnresolvedFile.d.ts.map +1 -1
  158. package/dist/react/UnresolvedFile.js +2 -5
  159. package/dist/react/UnresolvedFile.js.map +1 -1
  160. package/dist/react/Virtualizer.d.ts.map +1 -1
  161. package/dist/react/Virtualizer.js +2 -5
  162. package/dist/react/Virtualizer.js.map +1 -1
  163. package/dist/react/WorkerPoolContext.d.ts +0 -1
  164. package/dist/react/WorkerPoolContext.d.ts.map +1 -1
  165. package/dist/react/WorkerPoolContext.js +2 -5
  166. package/dist/react/WorkerPoolContext.js.map +1 -1
  167. package/dist/react/constants.d.ts.map +1 -1
  168. package/dist/react/constants.js +1 -1
  169. package/dist/react/constants.js.map +1 -1
  170. package/dist/react/index.d.ts +1 -1
  171. package/dist/react/index.js +1 -2
  172. package/dist/react/jsx.d.ts +0 -2
  173. package/dist/react/jsx.d.ts.map +1 -1
  174. package/dist/react/types.d.ts.map +1 -1
  175. package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  176. package/dist/react/utils/renderDiffChildren.js +4 -5
  177. package/dist/react/utils/renderDiffChildren.js.map +1 -1
  178. package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  179. package/dist/react/utils/renderFileChildren.js +4 -5
  180. package/dist/react/utils/renderFileChildren.js.map +1 -1
  181. package/dist/react/utils/templateRender.d.ts.map +1 -1
  182. package/dist/react/utils/templateRender.js +1 -2
  183. package/dist/react/utils/templateRender.js.map +1 -1
  184. package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  185. package/dist/react/utils/useFileDiffInstance.js +1 -2
  186. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  187. package/dist/react/utils/useFileInstance.d.ts.map +1 -1
  188. package/dist/react/utils/useFileInstance.js +1 -2
  189. package/dist/react/utils/useFileInstance.js.map +1 -1
  190. package/dist/react/utils/useStableCallback.d.ts.map +1 -1
  191. package/dist/react/utils/useStableCallback.js +1 -2
  192. package/dist/react/utils/useStableCallback.js.map +1 -1
  193. package/dist/react/utils/useUnresolvedFileInstance.d.ts.map +1 -1
  194. package/dist/react/utils/useUnresolvedFileInstance.js +10 -11
  195. package/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
  196. package/dist/renderers/DiffHunksRenderer.d.ts +1 -2
  197. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  198. package/dist/renderers/DiffHunksRenderer.js +23 -20
  199. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  200. package/dist/renderers/FileRenderer.d.ts +1 -3
  201. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  202. package/dist/renderers/FileRenderer.js +13 -11
  203. package/dist/renderers/FileRenderer.js.map +1 -1
  204. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts +1 -2
  205. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
  206. package/dist/renderers/UnresolvedFileHunksRenderer.js +1 -2
  207. package/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
  208. package/dist/shiki-stream/index.js +1 -2
  209. package/dist/shiki-stream/stream.d.ts +0 -1
  210. package/dist/shiki-stream/stream.d.ts.map +1 -1
  211. package/dist/shiki-stream/stream.js +1 -2
  212. package/dist/shiki-stream/stream.js.map +1 -1
  213. package/dist/shiki-stream/tokenizer.d.ts.map +1 -1
  214. package/dist/shiki-stream/tokenizer.js +1 -1
  215. package/dist/shiki-stream/tokenizer.js.map +1 -1
  216. package/dist/shiki-stream/types.d.ts +0 -1
  217. package/dist/shiki-stream/types.d.ts.map +1 -1
  218. package/dist/sprite.d.ts.map +1 -1
  219. package/dist/sprite.js +1 -1
  220. package/dist/ssr/FileDiffReact.d.ts.map +1 -1
  221. package/dist/ssr/FileDiffReact.js +4 -7
  222. package/dist/ssr/FileDiffReact.js.map +1 -1
  223. package/dist/ssr/index.d.ts +1 -1
  224. package/dist/ssr/index.js +1 -2
  225. package/dist/ssr/preloadDiffs.d.ts +1 -1
  226. package/dist/ssr/preloadDiffs.d.ts.map +1 -1
  227. package/dist/ssr/preloadDiffs.js +1 -2
  228. package/dist/ssr/preloadDiffs.js.map +1 -1
  229. package/dist/ssr/preloadFile.d.ts.map +1 -1
  230. package/dist/ssr/preloadFile.js +1 -2
  231. package/dist/ssr/preloadFile.js.map +1 -1
  232. package/dist/ssr/preloadPatchFile.d.ts.map +1 -1
  233. package/dist/ssr/preloadPatchFile.js +2 -3
  234. package/dist/ssr/preloadPatchFile.js.map +1 -1
  235. package/dist/ssr/renderHTML.d.ts +1 -1
  236. package/dist/ssr/renderHTML.d.ts.map +1 -1
  237. package/dist/ssr/renderHTML.js +1 -2
  238. package/dist/ssr/renderHTML.js.map +1 -1
  239. package/dist/string-import.d.ts +4 -0
  240. package/dist/string-import.d.ts.map +1 -1
  241. package/dist/style.js +3 -3
  242. package/dist/style.js.map +1 -1
  243. package/dist/types.d.ts +1 -1
  244. package/dist/types.d.ts.map +1 -1
  245. package/dist/utils/areDiffLineAnnotationsEqual.d.ts.map +1 -1
  246. package/dist/utils/areDiffLineAnnotationsEqual.js +1 -1
  247. package/dist/utils/areDiffLineAnnotationsEqual.js.map +1 -1
  248. package/dist/utils/areDiffRenderOptionsEqual.d.ts.map +1 -1
  249. package/dist/utils/areDiffRenderOptionsEqual.js +1 -2
  250. package/dist/utils/areDiffRenderOptionsEqual.js.map +1 -1
  251. package/dist/utils/areDiffTargetsEqual.d.ts.map +1 -1
  252. package/dist/utils/areDiffTargetsEqual.js +1 -1
  253. package/dist/utils/areDiffTargetsEqual.js.map +1 -1
  254. package/dist/utils/areFileRenderOptionsEqual.d.ts.map +1 -1
  255. package/dist/utils/areFileRenderOptionsEqual.js +1 -2
  256. package/dist/utils/areFileRenderOptionsEqual.js.map +1 -1
  257. package/dist/utils/areFilesEqual.d.ts.map +1 -1
  258. package/dist/utils/areFilesEqual.js +1 -1
  259. package/dist/utils/areFilesEqual.js.map +1 -1
  260. package/dist/utils/areHunkDataEqual.d.ts.map +1 -1
  261. package/dist/utils/areHunkDataEqual.js +1 -1
  262. package/dist/utils/areHunkDataEqual.js.map +1 -1
  263. package/dist/utils/areLineAnnotationsEqual.d.ts.map +1 -1
  264. package/dist/utils/areLineAnnotationsEqual.js +1 -1
  265. package/dist/utils/areLineAnnotationsEqual.js.map +1 -1
  266. package/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  267. package/dist/utils/areManagedSnapshotsEqual.js +1 -1
  268. package/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  269. package/dist/utils/areMergeConflictActionsEqual.d.ts.map +1 -1
  270. package/dist/utils/areMergeConflictActionsEqual.js +1 -1
  271. package/dist/utils/areMergeConflictActionsEqual.js.map +1 -1
  272. package/dist/utils/areObjectsEqual.d.ts.map +1 -1
  273. package/dist/utils/areObjectsEqual.js +1 -1
  274. package/dist/utils/areObjectsEqual.js.map +1 -1
  275. package/dist/utils/areOptionsEqual.d.ts +0 -2
  276. package/dist/utils/areOptionsEqual.d.ts.map +1 -1
  277. package/dist/utils/areOptionsEqual.js +1 -2
  278. package/dist/utils/areOptionsEqual.js.map +1 -1
  279. package/dist/utils/arePrePropertiesEqual.d.ts.map +1 -1
  280. package/dist/utils/arePrePropertiesEqual.js +1 -1
  281. package/dist/utils/arePrePropertiesEqual.js.map +1 -1
  282. package/dist/utils/areRenderRangesEqual.d.ts.map +1 -1
  283. package/dist/utils/areRenderRangesEqual.js +1 -1
  284. package/dist/utils/areRenderRangesEqual.js.map +1 -1
  285. package/dist/utils/areSelectionPointsEqual.d.ts.map +1 -1
  286. package/dist/utils/areSelectionPointsEqual.js +1 -1
  287. package/dist/utils/areSelectionPointsEqual.js.map +1 -1
  288. package/dist/utils/areSelectionsEqual.d.ts.map +1 -1
  289. package/dist/utils/areSelectionsEqual.js +1 -1
  290. package/dist/utils/areSelectionsEqual.js.map +1 -1
  291. package/dist/utils/areThemesEqual.d.ts.map +1 -1
  292. package/dist/utils/areThemesEqual.js +1 -1
  293. package/dist/utils/areThemesEqual.js.map +1 -1
  294. package/dist/utils/areVirtualWindowSpecsEqual.d.ts.map +1 -1
  295. package/dist/utils/areVirtualWindowSpecsEqual.js +1 -1
  296. package/dist/utils/areVirtualWindowSpecsEqual.js.map +1 -1
  297. package/dist/utils/areWorkerStatsEqual.d.ts +0 -2
  298. package/dist/utils/areWorkerStatsEqual.d.ts.map +1 -1
  299. package/dist/utils/areWorkerStatsEqual.js +1 -1
  300. package/dist/utils/areWorkerStatsEqual.js.map +1 -1
  301. package/dist/utils/cleanLastNewline.d.ts.map +1 -1
  302. package/dist/utils/cleanLastNewline.js +1 -1
  303. package/dist/utils/cleanLastNewline.js.map +1 -1
  304. package/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
  305. package/dist/utils/computeEstimatedDiffHeights.js +1 -2
  306. package/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
  307. package/dist/utils/computeVirtualFileMetrics.d.ts.map +1 -1
  308. package/dist/utils/computeVirtualFileMetrics.js +1 -2
  309. package/dist/utils/computeVirtualFileMetrics.js.map +1 -1
  310. package/dist/utils/createAnnotationElement.d.ts +1 -1
  311. package/dist/utils/createAnnotationElement.d.ts.map +1 -1
  312. package/dist/utils/createAnnotationElement.js +1 -2
  313. package/dist/utils/createAnnotationElement.js.map +1 -1
  314. package/dist/utils/createAnnotationWrapperNode.d.ts.map +1 -1
  315. package/dist/utils/createAnnotationWrapperNode.js +1 -1
  316. package/dist/utils/createAnnotationWrapperNode.js.map +1 -1
  317. package/dist/utils/createContentColumn.d.ts +1 -1
  318. package/dist/utils/createContentColumn.d.ts.map +1 -1
  319. package/dist/utils/createContentColumn.js +1 -2
  320. package/dist/utils/createContentColumn.js.map +1 -1
  321. package/dist/utils/createEmptyRowBuffer.d.ts +1 -1
  322. package/dist/utils/createEmptyRowBuffer.d.ts.map +1 -1
  323. package/dist/utils/createEmptyRowBuffer.js +1 -2
  324. package/dist/utils/createEmptyRowBuffer.js.map +1 -1
  325. package/dist/utils/createFileHeaderElement.d.ts +1 -1
  326. package/dist/utils/createFileHeaderElement.d.ts.map +1 -1
  327. package/dist/utils/createFileHeaderElement.js +1 -2
  328. package/dist/utils/createFileHeaderElement.js.map +1 -1
  329. package/dist/utils/createGutterUtilityContentNode.d.ts.map +1 -1
  330. package/dist/utils/createGutterUtilityContentNode.js +1 -1
  331. package/dist/utils/createGutterUtilityContentNode.js.map +1 -1
  332. package/dist/utils/createGutterUtilityElement.d.ts +1 -1
  333. package/dist/utils/createGutterUtilityElement.d.ts.map +1 -1
  334. package/dist/utils/createGutterUtilityElement.js +1 -2
  335. package/dist/utils/createGutterUtilityElement.js.map +1 -1
  336. package/dist/utils/createNoNewlineElement.d.ts +1 -1
  337. package/dist/utils/createNoNewlineElement.d.ts.map +1 -1
  338. package/dist/utils/createNoNewlineElement.js +1 -2
  339. package/dist/utils/createNoNewlineElement.js.map +1 -1
  340. package/dist/utils/createPreElement.d.ts +1 -1
  341. package/dist/utils/createPreElement.d.ts.map +1 -1
  342. package/dist/utils/createPreElement.js +1 -3
  343. package/dist/utils/createPreElement.js.map +1 -1
  344. package/dist/utils/createRowNodes.d.ts.map +1 -1
  345. package/dist/utils/createRowNodes.js +1 -1
  346. package/dist/utils/createRowNodes.js.map +1 -1
  347. package/dist/utils/createSeparator.d.ts +1 -1
  348. package/dist/utils/createSeparator.d.ts.map +1 -1
  349. package/dist/utils/createSeparator.js +1 -2
  350. package/dist/utils/createSeparator.js.map +1 -1
  351. package/dist/utils/createSpanNodeFromToken.d.ts.map +1 -1
  352. package/dist/utils/createSpanNodeFromToken.js +1 -2
  353. package/dist/utils/createSpanNodeFromToken.js.map +1 -1
  354. package/dist/utils/createStyleElement.d.ts +1 -1
  355. package/dist/utils/createStyleElement.d.ts.map +1 -1
  356. package/dist/utils/createStyleElement.js +1 -2
  357. package/dist/utils/createStyleElement.js.map +1 -1
  358. package/dist/utils/createTransformerWithState.d.ts.map +1 -1
  359. package/dist/utils/createTransformerWithState.js +1 -2
  360. package/dist/utils/createTransformerWithState.js.map +1 -1
  361. package/dist/utils/createUnsafeCSSStyleNode.d.ts.map +1 -1
  362. package/dist/utils/createUnsafeCSSStyleNode.js +1 -2
  363. package/dist/utils/createUnsafeCSSStyleNode.js.map +1 -1
  364. package/dist/utils/createWindowFromScrollPosition.d.ts.map +1 -1
  365. package/dist/utils/createWindowFromScrollPosition.js +5 -5
  366. package/dist/utils/createWindowFromScrollPosition.js.map +1 -1
  367. package/dist/utils/cssWrappers.d.ts.map +1 -1
  368. package/dist/utils/cssWrappers.js +2 -3
  369. package/dist/utils/cssWrappers.js.map +1 -1
  370. package/dist/utils/detachString.d.ts.map +1 -1
  371. package/dist/utils/detachString.js +1 -1
  372. package/dist/utils/detachString.js.map +1 -1
  373. package/dist/utils/diffAcceptRejectHunk.d.ts.map +1 -1
  374. package/dist/utils/diffAcceptRejectHunk.js +1 -2
  375. package/dist/utils/diffAcceptRejectHunk.js.map +1 -1
  376. package/dist/utils/formatCSSVariablePrefix.d.ts.map +1 -1
  377. package/dist/utils/formatCSSVariablePrefix.js +1 -1
  378. package/dist/utils/formatCSSVariablePrefix.js.map +1 -1
  379. package/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
  380. package/dist/utils/getDiffHunksRendererOptions.js +1 -1
  381. package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  382. package/dist/utils/getFileRendererOptions.d.ts.map +1 -1
  383. package/dist/utils/getFileRendererOptions.js +1 -1
  384. package/dist/utils/getFileRendererOptions.js.map +1 -1
  385. package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
  386. package/dist/utils/getFiletypeFromFileName.js +1 -1
  387. package/dist/utils/getFiletypeFromFileName.js.map +1 -1
  388. package/dist/utils/getHighlighterOptions.d.ts.map +1 -1
  389. package/dist/utils/getHighlighterOptions.js +1 -2
  390. package/dist/utils/getHighlighterOptions.js.map +1 -1
  391. package/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -1
  392. package/dist/utils/getHighlighterThemeStyles.js +1 -2
  393. package/dist/utils/getHighlighterThemeStyles.js.map +1 -1
  394. package/dist/utils/getHunkSeparatorSlotName.d.ts.map +1 -1
  395. package/dist/utils/getHunkSeparatorSlotName.js +1 -1
  396. package/dist/utils/getHunkSeparatorSlotName.js.map +1 -1
  397. package/dist/utils/getIconForType.d.ts.map +1 -1
  398. package/dist/utils/getIconForType.js +1 -1
  399. package/dist/utils/getIconForType.js.map +1 -1
  400. package/dist/utils/getLineAnnotationName.d.ts.map +1 -1
  401. package/dist/utils/getLineAnnotationName.js +1 -1
  402. package/dist/utils/getLineAnnotationName.js.map +1 -1
  403. package/dist/utils/getLineEndingType.d.ts.map +1 -1
  404. package/dist/utils/getLineEndingType.js +1 -1
  405. package/dist/utils/getLineEndingType.js.map +1 -1
  406. package/dist/utils/getLineNodes.d.ts +1 -1
  407. package/dist/utils/getLineNodes.d.ts.map +1 -1
  408. package/dist/utils/getLineNodes.js +1 -1
  409. package/dist/utils/getLineNodes.js.map +1 -1
  410. package/dist/utils/getMergeConflictActionSlotName.d.ts.map +1 -1
  411. package/dist/utils/getMergeConflictActionSlotName.js +1 -1
  412. package/dist/utils/getMergeConflictActionSlotName.js.map +1 -1
  413. package/dist/utils/getMergeConflictLineTypes.d.ts.map +1 -1
  414. package/dist/utils/getMergeConflictLineTypes.js +1 -2
  415. package/dist/utils/getMergeConflictLineTypes.js.map +1 -1
  416. package/dist/utils/getOrCreateCodeNode.d.ts.map +1 -1
  417. package/dist/utils/getOrCreateCodeNode.js +1 -1
  418. package/dist/utils/getOrCreateCodeNode.js.map +1 -1
  419. package/dist/utils/getSingularPatch.d.ts.map +1 -1
  420. package/dist/utils/getSingularPatch.js +1 -2
  421. package/dist/utils/getSingularPatch.js.map +1 -1
  422. package/dist/utils/getThemes.d.ts.map +1 -1
  423. package/dist/utils/getThemes.js +1 -2
  424. package/dist/utils/getThemes.js.map +1 -1
  425. package/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
  426. package/dist/utils/getTotalLineCountFromHunks.js +1 -1
  427. package/dist/utils/getTotalLineCountFromHunks.js.map +1 -1
  428. package/dist/utils/hast_utils.d.ts +1 -1
  429. package/dist/utils/hast_utils.d.ts.map +1 -1
  430. package/dist/utils/hast_utils.js +1 -1
  431. package/dist/utils/hast_utils.js.map +1 -1
  432. package/dist/utils/hostTheme.d.ts.map +1 -1
  433. package/dist/utils/hostTheme.js +1 -2
  434. package/dist/utils/hostTheme.js.map +1 -1
  435. package/dist/utils/includesFileAnnotations.d.ts.map +1 -1
  436. package/dist/utils/includesFileAnnotations.js +5 -5
  437. package/dist/utils/includesFileAnnotations.js.map +1 -1
  438. package/dist/utils/isDefaultRenderRange.d.ts.map +1 -1
  439. package/dist/utils/isDefaultRenderRange.js +1 -1
  440. package/dist/utils/isDefaultRenderRange.js.map +1 -1
  441. package/dist/utils/isDiffPlainText.d.ts.map +1 -1
  442. package/dist/utils/isDiffPlainText.js +1 -2
  443. package/dist/utils/isDiffPlainText.js.map +1 -1
  444. package/dist/utils/isFilePlainText.d.ts.map +1 -1
  445. package/dist/utils/isFilePlainText.js +1 -2
  446. package/dist/utils/isFilePlainText.js.map +1 -1
  447. package/dist/utils/isStyleNode.d.ts.map +1 -1
  448. package/dist/utils/isStyleNode.js +1 -1
  449. package/dist/utils/isStyleNode.js.map +1 -1
  450. package/dist/utils/isWorkerContext.d.ts.map +1 -1
  451. package/dist/utils/isWorkerContext.js +1 -1
  452. package/dist/utils/isWorkerContext.js.map +1 -1
  453. package/dist/utils/iterateOverDiff.d.ts.map +1 -1
  454. package/dist/utils/iterateOverDiff.js +44 -45
  455. package/dist/utils/iterateOverDiff.js.map +1 -1
  456. package/dist/utils/iterateOverFile.d.ts.map +1 -1
  457. package/dist/utils/iterateOverFile.js +1 -1
  458. package/dist/utils/iterateOverFile.js.map +1 -1
  459. package/dist/utils/normalizeDiffResolution.d.ts.map +1 -1
  460. package/dist/utils/normalizeDiffResolution.js +1 -1
  461. package/dist/utils/normalizeDiffResolution.js.map +1 -1
  462. package/dist/utils/parseDiffDecorations.d.ts.map +1 -1
  463. package/dist/utils/parseDiffDecorations.js +1 -2
  464. package/dist/utils/parseDiffDecorations.js.map +1 -1
  465. package/dist/utils/parseDiffFromFile.d.ts +0 -1
  466. package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  467. package/dist/utils/parseDiffFromFile.js +1 -2
  468. package/dist/utils/parseDiffFromFile.js.map +1 -1
  469. package/dist/utils/parseLineType.d.ts.map +1 -1
  470. package/dist/utils/parseLineType.js +1 -1
  471. package/dist/utils/parseLineType.js.map +1 -1
  472. package/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
  473. package/dist/utils/parseMergeConflictDiffFromFile.js +5 -5
  474. package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
  475. package/dist/utils/parsePatchFiles.d.ts.map +1 -1
  476. package/dist/utils/parsePatchFiles.js +6 -7
  477. package/dist/utils/parsePatchFiles.js.map +1 -1
  478. package/dist/utils/prefersReducedMotion.d.ts.map +1 -1
  479. package/dist/utils/prefersReducedMotion.js +1 -1
  480. package/dist/utils/prefersReducedMotion.js.map +1 -1
  481. package/dist/utils/prerenderHTMLIfNecessary.d.ts.map +1 -1
  482. package/dist/utils/prerenderHTMLIfNecessary.js +1 -1
  483. package/dist/utils/prerenderHTMLIfNecessary.js.map +1 -1
  484. package/dist/utils/processLine.d.ts +1 -1
  485. package/dist/utils/processLine.d.ts.map +1 -1
  486. package/dist/utils/processLine.js +1 -2
  487. package/dist/utils/processLine.js.map +1 -1
  488. package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  489. package/dist/utils/renderDiffWithHighlighter.js +4 -5
  490. package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  491. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  492. package/dist/utils/renderFileWithHighlighter.js +1 -2
  493. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  494. package/dist/utils/resolveConflict.d.ts.map +1 -1
  495. package/dist/utils/resolveConflict.js +1 -2
  496. package/dist/utils/resolveConflict.js.map +1 -1
  497. package/dist/utils/resolveRegion.d.ts.map +1 -1
  498. package/dist/utils/resolveRegion.js +1 -1
  499. package/dist/utils/resolveRegion.js.map +1 -1
  500. package/dist/utils/roundToDevicePixel.d.ts.map +1 -1
  501. package/dist/utils/roundToDevicePixel.js +1 -1
  502. package/dist/utils/roundToDevicePixel.js.map +1 -1
  503. package/dist/utils/scrollbarGutter.d.ts.map +1 -1
  504. package/dist/utils/scrollbarGutter.js +1 -2
  505. package/dist/utils/scrollbarGutter.js.map +1 -1
  506. package/dist/utils/setLanguageOverride.d.ts.map +1 -1
  507. package/dist/utils/setLanguageOverride.js +1 -1
  508. package/dist/utils/setLanguageOverride.js.map +1 -1
  509. package/dist/utils/setWrapperNodeProps.d.ts.map +1 -1
  510. package/dist/utils/setWrapperNodeProps.js +1 -2
  511. package/dist/utils/setWrapperNodeProps.js.map +1 -1
  512. package/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -1
  513. package/dist/utils/shouldUseTokenTransformer.js +1 -1
  514. package/dist/utils/shouldUseTokenTransformer.js.map +1 -1
  515. package/dist/utils/splitFileContents.d.ts.map +1 -1
  516. package/dist/utils/splitFileContents.js +1 -2
  517. package/dist/utils/splitFileContents.js.map +1 -1
  518. package/dist/utils/trimPatchContext.d.ts.map +1 -1
  519. package/dist/utils/trimPatchContext.js +1 -2
  520. package/dist/utils/trimPatchContext.js.map +1 -1
  521. package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
  522. package/dist/utils/virtualDiffLayout.js +1 -2
  523. package/dist/utils/virtualDiffLayout.js.map +1 -1
  524. package/dist/utils/wrapTokenFragments.d.ts +1 -1
  525. package/dist/utils/wrapTokenFragments.d.ts.map +1 -1
  526. package/dist/utils/wrapTokenFragments.js +1 -2
  527. package/dist/utils/wrapTokenFragments.js.map +1 -1
  528. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  529. package/dist/worker/WorkerPoolManager.js +5 -5
  530. package/dist/worker/WorkerPoolManager.js.map +1 -1
  531. package/dist/worker/getOrCreateWorkerPoolSingleton.d.ts.map +1 -1
  532. package/dist/worker/getOrCreateWorkerPoolSingleton.js +1 -2
  533. package/dist/worker/getOrCreateWorkerPoolSingleton.js.map +1 -1
  534. package/dist/worker/index.js +1 -2
  535. package/dist/worker/types.d.ts.map +1 -1
  536. package/dist/worker/wasm-B9ZqxnKj.js +8 -0
  537. package/dist/worker/wasm-B9ZqxnKj.js.map +1 -0
  538. package/dist/worker/worker-portable.js +2763 -6368
  539. package/dist/worker/worker-portable.js.map +1 -1
  540. package/dist/worker/worker.js +89 -124
  541. package/dist/worker/worker.js.map +1 -1
  542. package/package.json +15 -13
  543. package/dist/worker/wasm-qE0LgnY3.js +0 -10
  544. package/dist/worker/wasm-qE0LgnY3.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"createSeparator.js","names":["contentChildren: ElementContent[]"],"sources":["../../src/utils/createSeparator.ts"],"sourcesContent":["import type { ElementContent, Element as HASTElement } from 'hast';\n\nimport type { ExpansionDirections, HunkSeparators } from '../types';\nimport {\n createHastElement,\n createIconElement,\n createTextNodeElement,\n} from './hast_utils';\n\ninterface CreateSeparatorProps {\n type: HunkSeparators;\n content?: string;\n expandIndex?: number;\n chunked?: boolean;\n slotName?: string;\n isFirstHunk: boolean;\n isLastHunk: boolean;\n}\n\nfunction createExpandButton(type: ExpansionDirections) {\n return createHastElement({\n tagName: 'div',\n children: [\n createIconElement({\n name: type === 'both' ? 'diffs-icon-expand-all' : 'diffs-icon-expand',\n properties: { 'data-icon': '' },\n }),\n ],\n properties: {\n role: 'button',\n 'data-expand-button': '',\n 'data-expand-both': type === 'both' ? '' : undefined,\n 'data-expand-up': type === 'up' ? '' : undefined,\n 'data-expand-down': type === 'down' ? '' : undefined,\n },\n });\n}\n\nexport function createSeparator({\n type,\n content,\n expandIndex,\n chunked = false,\n slotName,\n isFirstHunk,\n isLastHunk,\n}: CreateSeparatorProps): HASTElement {\n let buttonCount = 0;\n const children = [];\n if (type === 'metadata' && content != null) {\n children.push(\n createHastElement({\n tagName: 'div',\n children: [createTextNodeElement(content)],\n properties: { 'data-separator-wrapper': '' },\n })\n );\n }\n if ((type === 'line-info' || type === 'line-info-basic') && content != null) {\n const contentChildren: ElementContent[] = [];\n if (expandIndex != null) {\n if (!chunked) {\n contentChildren.push(\n createExpandButton(\n !isFirstHunk && !isLastHunk ? 'both' : isFirstHunk ? 'down' : 'up'\n )\n );\n buttonCount++;\n } else {\n if (!isFirstHunk) {\n contentChildren.push(createExpandButton('up'));\n buttonCount++;\n }\n if (!isLastHunk) {\n contentChildren.push(createExpandButton('down'));\n buttonCount++;\n }\n }\n }\n contentChildren.push(\n createHastElement({\n tagName: 'div',\n children: [\n createHastElement({\n tagName: 'span',\n children: [createTextNodeElement(content)],\n properties: { 'data-unmodified-lines': '' },\n }),\n ],\n properties: { 'data-separator-content': '' },\n })\n );\n if (chunked && expandIndex != null) {\n contentChildren.push(\n createHastElement({\n tagName: 'div',\n children: [createTextNodeElement('Expand all')],\n properties: {\n role: 'button',\n 'data-expand-button': '',\n 'data-expand-all-button': '',\n },\n })\n );\n }\n children.push(\n createHastElement({\n tagName: 'div',\n children: contentChildren,\n properties: {\n 'data-separator-wrapper': '',\n 'data-separator-multi-button': buttonCount > 1 ? '' : undefined,\n },\n })\n );\n }\n if (type === 'custom' && slotName != null) {\n children.push(\n createHastElement({\n tagName: 'slot',\n properties: { name: slotName },\n })\n );\n }\n return createHastElement({\n tagName: 'div',\n children,\n properties: {\n 'data-separator': children.length === 0 ? 'simple' : type,\n 'data-expand-index': expandIndex,\n 'data-separator-first': isFirstHunk ? '' : undefined,\n 'data-separator-last': isLastHunk ? '' : undefined,\n },\n });\n}\n"],"mappings":";;;AAmBA,SAAS,mBAAmB,MAA2B;AACrD,QAAO,kBAAkB;EACvB,SAAS;EACT,UAAU,CACR,kBAAkB;GAChB,MAAM,SAAS,SAAS,0BAA0B;GAClD,YAAY,EAAE,aAAa,IAAI;GAChC,CAAC,CACH;EACD,YAAY;GACV,MAAM;GACN,sBAAsB;GACtB,oBAAoB,SAAS,SAAS,KAAK;GAC3C,kBAAkB,SAAS,OAAO,KAAK;GACvC,oBAAoB,SAAS,SAAS,KAAK;GAC5C;EACF,CAAC;;AAGJ,SAAgB,gBAAgB,EAC9B,MACA,SACA,aACA,UAAU,OACV,UACA,aACA,cACoC;CACpC,IAAI,cAAc;CAClB,MAAM,WAAW,EAAE;AACnB,KAAI,SAAS,cAAc,WAAW,KACpC,UAAS,KACP,kBAAkB;EAChB,SAAS;EACT,UAAU,CAAC,sBAAsB,QAAQ,CAAC;EAC1C,YAAY,EAAE,0BAA0B,IAAI;EAC7C,CAAC,CACH;AAEH,MAAK,SAAS,eAAe,SAAS,sBAAsB,WAAW,MAAM;EAC3E,MAAMA,kBAAoC,EAAE;AAC5C,MAAI,eAAe,KACjB,KAAI,CAAC,SAAS;AACZ,mBAAgB,KACd,mBACE,CAAC,eAAe,CAAC,aAAa,SAAS,cAAc,SAAS,KAC/D,CACF;AACD;SACK;AACL,OAAI,CAAC,aAAa;AAChB,oBAAgB,KAAK,mBAAmB,KAAK,CAAC;AAC9C;;AAEF,OAAI,CAAC,YAAY;AACf,oBAAgB,KAAK,mBAAmB,OAAO,CAAC;AAChD;;;AAIN,kBAAgB,KACd,kBAAkB;GAChB,SAAS;GACT,UAAU,CACR,kBAAkB;IAChB,SAAS;IACT,UAAU,CAAC,sBAAsB,QAAQ,CAAC;IAC1C,YAAY,EAAE,yBAAyB,IAAI;IAC5C,CAAC,CACH;GACD,YAAY,EAAE,0BAA0B,IAAI;GAC7C,CAAC,CACH;AACD,MAAI,WAAW,eAAe,KAC5B,iBAAgB,KACd,kBAAkB;GAChB,SAAS;GACT,UAAU,CAAC,sBAAsB,aAAa,CAAC;GAC/C,YAAY;IACV,MAAM;IACN,sBAAsB;IACtB,0BAA0B;IAC3B;GACF,CAAC,CACH;AAEH,WAAS,KACP,kBAAkB;GAChB,SAAS;GACT,UAAU;GACV,YAAY;IACV,0BAA0B;IAC1B,+BAA+B,cAAc,IAAI,KAAK;IACvD;GACF,CAAC,CACH;;AAEH,KAAI,SAAS,YAAY,YAAY,KACnC,UAAS,KACP,kBAAkB;EAChB,SAAS;EACT,YAAY,EAAE,MAAM,UAAU;EAC/B,CAAC,CACH;AAEH,QAAO,kBAAkB;EACvB,SAAS;EACT;EACA,YAAY;GACV,kBAAkB,SAAS,WAAW,IAAI,WAAW;GACrD,qBAAqB;GACrB,wBAAwB,cAAc,KAAK;GAC3C,uBAAuB,aAAa,KAAK;GAC1C;EACF,CAAC"}
1
+ {"version":3,"file":"createSeparator.js","names":[],"sources":["../../src/utils/createSeparator.ts"],"sourcesContent":["import type { ElementContent, Element as HASTElement } from 'hast';\n\nimport type { ExpansionDirections, HunkSeparators } from '../types';\nimport {\n createHastElement,\n createIconElement,\n createTextNodeElement,\n} from './hast_utils';\n\ninterface CreateSeparatorProps {\n type: HunkSeparators;\n content?: string;\n expandIndex?: number;\n chunked?: boolean;\n slotName?: string;\n isFirstHunk: boolean;\n isLastHunk: boolean;\n}\n\nfunction createExpandButton(type: ExpansionDirections) {\n return createHastElement({\n tagName: 'div',\n children: [\n createIconElement({\n name: type === 'both' ? 'diffs-icon-expand-all' : 'diffs-icon-expand',\n properties: { 'data-icon': '' },\n }),\n ],\n properties: {\n role: 'button',\n 'data-expand-button': '',\n 'data-expand-both': type === 'both' ? '' : undefined,\n 'data-expand-up': type === 'up' ? '' : undefined,\n 'data-expand-down': type === 'down' ? '' : undefined,\n },\n });\n}\n\nexport function createSeparator({\n type,\n content,\n expandIndex,\n chunked = false,\n slotName,\n isFirstHunk,\n isLastHunk,\n}: CreateSeparatorProps): HASTElement {\n let buttonCount = 0;\n const children = [];\n if (type === 'metadata' && content != null) {\n children.push(\n createHastElement({\n tagName: 'div',\n children: [createTextNodeElement(content)],\n properties: { 'data-separator-wrapper': '' },\n })\n );\n }\n if ((type === 'line-info' || type === 'line-info-basic') && content != null) {\n const contentChildren: ElementContent[] = [];\n if (expandIndex != null) {\n if (!chunked) {\n contentChildren.push(\n createExpandButton(\n !isFirstHunk && !isLastHunk ? 'both' : isFirstHunk ? 'down' : 'up'\n )\n );\n buttonCount++;\n } else {\n if (!isFirstHunk) {\n contentChildren.push(createExpandButton('up'));\n buttonCount++;\n }\n if (!isLastHunk) {\n contentChildren.push(createExpandButton('down'));\n buttonCount++;\n }\n }\n }\n contentChildren.push(\n createHastElement({\n tagName: 'div',\n children: [\n createHastElement({\n tagName: 'span',\n children: [createTextNodeElement(content)],\n properties: { 'data-unmodified-lines': '' },\n }),\n ],\n properties: { 'data-separator-content': '' },\n })\n );\n if (chunked && expandIndex != null) {\n contentChildren.push(\n createHastElement({\n tagName: 'div',\n children: [createTextNodeElement('Expand all')],\n properties: {\n role: 'button',\n 'data-expand-button': '',\n 'data-expand-all-button': '',\n },\n })\n );\n }\n children.push(\n createHastElement({\n tagName: 'div',\n children: contentChildren,\n properties: {\n 'data-separator-wrapper': '',\n 'data-separator-multi-button': buttonCount > 1 ? '' : undefined,\n },\n })\n );\n }\n if (type === 'custom' && slotName != null) {\n children.push(\n createHastElement({\n tagName: 'slot',\n properties: { name: slotName },\n })\n );\n }\n return createHastElement({\n tagName: 'div',\n children,\n properties: {\n 'data-separator': children.length === 0 ? 'simple' : type,\n 'data-expand-index': expandIndex,\n 'data-separator-first': isFirstHunk ? '' : undefined,\n 'data-separator-last': isLastHunk ? '' : undefined,\n },\n });\n}\n"],"mappings":";;AAmBA,SAAS,mBAAmB,MAA2B;CACrD,OAAO,kBAAkB;EACvB,SAAS;EACT,UAAU,CACR,kBAAkB;GAChB,MAAM,SAAS,SAAS,0BAA0B;GAClD,YAAY,EAAE,aAAa,GAAG;EAChC,CAAC,CACH;EACA,YAAY;GACV,MAAM;GACN,sBAAsB;GACtB,oBAAoB,SAAS,SAAS,KAAK,KAAA;GAC3C,kBAAkB,SAAS,OAAO,KAAK,KAAA;GACvC,oBAAoB,SAAS,SAAS,KAAK,KAAA;EAC7C;CACF,CAAC;AACH;AAEA,SAAgB,gBAAgB,EAC9B,MACA,SACA,aACA,UAAU,OACV,UACA,aACA,cACoC;CACpC,IAAI,cAAc;CAClB,MAAM,WAAW,CAAC;CAClB,IAAI,SAAS,cAAc,WAAW,MACpC,SAAS,KACP,kBAAkB;EAChB,SAAS;EACT,UAAU,CAAC,sBAAsB,OAAO,CAAC;EACzC,YAAY,EAAE,0BAA0B,GAAG;CAC7C,CAAC,CACH;CAEF,KAAK,SAAS,eAAe,SAAS,sBAAsB,WAAW,MAAM;EAC3E,MAAM,kBAAoC,CAAC;EAC3C,IAAI,eAAe,MACjB,IAAI,CAAC,SAAS;GACZ,gBAAgB,KACd,mBACE,CAAC,eAAe,CAAC,aAAa,SAAS,cAAc,SAAS,IAChE,CACF;GACA;EACF,OAAO;GACL,IAAI,CAAC,aAAa;IAChB,gBAAgB,KAAK,mBAAmB,IAAI,CAAC;IAC7C;GACF;GACA,IAAI,CAAC,YAAY;IACf,gBAAgB,KAAK,mBAAmB,MAAM,CAAC;IAC/C;GACF;EACF;EAEF,gBAAgB,KACd,kBAAkB;GAChB,SAAS;GACT,UAAU,CACR,kBAAkB;IAChB,SAAS;IACT,UAAU,CAAC,sBAAsB,OAAO,CAAC;IACzC,YAAY,EAAE,yBAAyB,GAAG;GAC5C,CAAC,CACH;GACA,YAAY,EAAE,0BAA0B,GAAG;EAC7C,CAAC,CACH;EACA,IAAI,WAAW,eAAe,MAC5B,gBAAgB,KACd,kBAAkB;GAChB,SAAS;GACT,UAAU,CAAC,sBAAsB,YAAY,CAAC;GAC9C,YAAY;IACV,MAAM;IACN,sBAAsB;IACtB,0BAA0B;GAC5B;EACF,CAAC,CACH;EAEF,SAAS,KACP,kBAAkB;GAChB,SAAS;GACT,UAAU;GACV,YAAY;IACV,0BAA0B;IAC1B,+BAA+B,cAAc,IAAI,KAAK,KAAA;GACxD;EACF,CAAC,CACH;CACF;CACA,IAAI,SAAS,YAAY,YAAY,MACnC,SAAS,KACP,kBAAkB;EAChB,SAAS;EACT,YAAY,EAAE,MAAM,SAAS;CAC/B,CAAC,CACH;CAEF,OAAO,kBAAkB;EACvB,SAAS;EACT;EACA,YAAY;GACV,kBAAkB,SAAS,WAAW,IAAI,WAAW;GACrD,qBAAqB;GACrB,wBAAwB,cAAc,KAAK,KAAA;GAC3C,uBAAuB,aAAa,KAAK,KAAA;EAC3C;CACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"createSpanNodeFromToken.d.ts","names":["ThemedToken","createSpanFromToken","HTMLSpanElement"],"sources":["../../src/utils/createSpanNodeFromToken.d.ts"],"sourcesContent":["import { type ThemedToken } from 'shiki';\nexport declare function createSpanFromToken(token: ThemedToken): HTMLSpanElement;\n//# sourceMappingURL=createSpanNodeFromToken.d.ts.map"],"mappings":";;;iBACwBC,mBAAAA,QAA2BD,cAAcE"}
1
+ {"version":3,"file":"createSpanNodeFromToken.d.ts","names":[],"sources":["../../src/utils/createSpanNodeFromToken.ts"],"mappings":";;;iBAMgB,mBAAA,CAAoB,KAAA,EAAO,WAAA,GAAc,eAAe"}
@@ -1,5 +1,4 @@
1
1
  import { getTokenStyleObject, stringifyTokenStyle } from "shiki";
2
-
3
2
  //#region src/utils/createSpanNodeFromToken.ts
4
3
  function createSpanFromToken(token) {
5
4
  const element = document.createElement("span");
@@ -7,7 +6,7 @@ function createSpanFromToken(token) {
7
6
  element.textContent = token.content;
8
7
  return element;
9
8
  }
10
-
11
9
  //#endregion
12
10
  export { createSpanFromToken };
11
+
13
12
  //# sourceMappingURL=createSpanNodeFromToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createSpanNodeFromToken.js","names":[],"sources":["../../src/utils/createSpanNodeFromToken.ts"],"sourcesContent":["import {\n getTokenStyleObject,\n stringifyTokenStyle,\n type ThemedToken,\n} from 'shiki';\n\nexport function createSpanFromToken(token: ThemedToken): HTMLSpanElement {\n const element = document.createElement('span');\n const style = token.htmlStyle ?? getTokenStyleObject(token);\n element.style = stringifyTokenStyle(style);\n element.textContent = token.content;\n return element;\n}\n"],"mappings":";;;AAMA,SAAgB,oBAAoB,OAAqC;CACvE,MAAM,UAAU,SAAS,cAAc,OAAO;AAE9C,SAAQ,QAAQ,oBADF,MAAM,aAAa,oBAAoB,MAAM,CACjB;AAC1C,SAAQ,cAAc,MAAM;AAC5B,QAAO"}
1
+ {"version":3,"file":"createSpanNodeFromToken.js","names":[],"sources":["../../src/utils/createSpanNodeFromToken.ts"],"sourcesContent":["import {\n getTokenStyleObject,\n stringifyTokenStyle,\n type ThemedToken,\n} from 'shiki';\n\nexport function createSpanFromToken(token: ThemedToken): HTMLSpanElement {\n const element = document.createElement('span');\n const style = token.htmlStyle ?? getTokenStyleObject(token);\n element.style = stringifyTokenStyle(style);\n element.textContent = token.content;\n return element;\n}\n"],"mappings":";;AAMA,SAAgB,oBAAoB,OAAqC;CACvE,MAAM,UAAU,SAAS,cAAc,MAAM;CAE7C,QAAQ,QAAQ,oBADF,MAAM,aAAa,oBAAoB,KAAK,CACjB;CACzC,QAAQ,cAAc,MAAM;CAC5B,OAAO;AACT"}
@@ -1,4 +1,4 @@
1
- import { Element } from "hast";
1
+ import { Element } from "../node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.js";
2
2
 
3
3
  //#region src/utils/createStyleElement.d.ts
4
4
  declare function createStyleElement(content: string, isCoreCSS?: boolean): Element;
@@ -1 +1 @@
1
- {"version":3,"file":"createStyleElement.d.ts","names":["Element","HASTElement","createStyleElement","createThemeStyleElement"],"sources":["../../src/utils/createStyleElement.d.ts"],"sourcesContent":["import type { Element as HASTElement } from 'hast';\nexport declare function createStyleElement(content: string, isCoreCSS?: boolean): HASTElement;\nexport declare function createThemeStyleElement(content: string): HASTElement;\n//# sourceMappingURL=createStyleElement.d.ts.map"],"mappings":";;;iBACwBE,kBAAAA,wCAA0DD;iBAC1DE,uBAAAA,mBAA0CF"}
1
+ {"version":3,"file":"createStyleElement.d.ts","names":[],"sources":["../../src/utils/createStyleElement.ts"],"mappings":";;;iBAUgB,kBAAA,CACd,OAAA,UACA,SAAA,aACC,OAAW;AAAA,iBAeE,uBAAA,CAAwB,OAAA,WAAkB,OAAW"}
@@ -1,7 +1,6 @@
1
1
  import { CORE_CSS_ATTRIBUTE, THEME_CSS_ATTRIBUTE, UNSAFE_CSS_ATTRIBUTE } from "../constants.js";
2
2
  import { createHastElement, createTextNodeElement } from "./hast_utils.js";
3
3
  import { wrapCoreCSS, wrapUnsafeCSS } from "./cssWrappers.js";
4
-
5
4
  //#region src/utils/createStyleElement.ts
6
5
  function createStyleElement(content, isCoreCSS = false) {
7
6
  return createHastElement({
@@ -20,7 +19,7 @@ function createThemeStyleElement(content) {
20
19
  properties: { [THEME_CSS_ATTRIBUTE]: "" }
21
20
  });
22
21
  }
23
-
24
22
  //#endregion
25
23
  export { createStyleElement, createThemeStyleElement };
24
+
26
25
  //# sourceMappingURL=createStyleElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createStyleElement.js","names":[],"sources":["../../src/utils/createStyleElement.ts"],"sourcesContent":["import type { Element as HASTElement } from 'hast';\n\nimport {\n CORE_CSS_ATTRIBUTE,\n THEME_CSS_ATTRIBUTE,\n UNSAFE_CSS_ATTRIBUTE,\n} from '../constants';\nimport { wrapCoreCSS, wrapUnsafeCSS } from './cssWrappers';\nimport { createHastElement, createTextNodeElement } from './hast_utils';\n\nexport function createStyleElement(\n content: string,\n isCoreCSS: boolean = false\n): HASTElement {\n return createHastElement({\n tagName: 'style',\n children: [\n createTextNodeElement(\n isCoreCSS ? wrapCoreCSS(content) : wrapUnsafeCSS(content)\n ),\n ],\n properties: {\n [CORE_CSS_ATTRIBUTE]: isCoreCSS ? '' : undefined,\n [UNSAFE_CSS_ATTRIBUTE]: !isCoreCSS ? '' : undefined,\n },\n });\n}\n\nexport function createThemeStyleElement(content: string): HASTElement {\n return createHastElement({\n tagName: 'style',\n children: [createTextNodeElement(content)],\n properties: {\n [THEME_CSS_ATTRIBUTE]: '',\n },\n });\n}\n"],"mappings":";;;;;AAUA,SAAgB,mBACd,SACA,YAAqB,OACR;AACb,QAAO,kBAAkB;EACvB,SAAS;EACT,UAAU,CACR,sBACE,YAAY,YAAY,QAAQ,GAAG,cAAc,QAAQ,CAC1D,CACF;EACD,YAAY;IACT,qBAAqB,YAAY,KAAK;IACtC,uBAAuB,CAAC,YAAY,KAAK;GAC3C;EACF,CAAC;;AAGJ,SAAgB,wBAAwB,SAA8B;AACpE,QAAO,kBAAkB;EACvB,SAAS;EACT,UAAU,CAAC,sBAAsB,QAAQ,CAAC;EAC1C,YAAY,GACT,sBAAsB,IACxB;EACF,CAAC"}
1
+ {"version":3,"file":"createStyleElement.js","names":[],"sources":["../../src/utils/createStyleElement.ts"],"sourcesContent":["import type { Element as HASTElement } from 'hast';\n\nimport {\n CORE_CSS_ATTRIBUTE,\n THEME_CSS_ATTRIBUTE,\n UNSAFE_CSS_ATTRIBUTE,\n} from '../constants';\nimport { wrapCoreCSS, wrapUnsafeCSS } from './cssWrappers';\nimport { createHastElement, createTextNodeElement } from './hast_utils';\n\nexport function createStyleElement(\n content: string,\n isCoreCSS: boolean = false\n): HASTElement {\n return createHastElement({\n tagName: 'style',\n children: [\n createTextNodeElement(\n isCoreCSS ? wrapCoreCSS(content) : wrapUnsafeCSS(content)\n ),\n ],\n properties: {\n [CORE_CSS_ATTRIBUTE]: isCoreCSS ? '' : undefined,\n [UNSAFE_CSS_ATTRIBUTE]: !isCoreCSS ? '' : undefined,\n },\n });\n}\n\nexport function createThemeStyleElement(content: string): HASTElement {\n return createHastElement({\n tagName: 'style',\n children: [createTextNodeElement(content)],\n properties: {\n [THEME_CSS_ATTRIBUTE]: '',\n },\n });\n}\n"],"mappings":";;;;AAUA,SAAgB,mBACd,SACA,YAAqB,OACR;CACb,OAAO,kBAAkB;EACvB,SAAS;EACT,UAAU,CACR,sBACE,YAAY,YAAY,OAAO,IAAI,cAAc,OAAO,CAC1D,CACF;EACA,YAAY;IACT,qBAAqB,YAAY,KAAK,KAAA;IACtC,uBAAuB,CAAC,YAAY,KAAK,KAAA;EAC5C;CACF,CAAC;AACH;AAEA,SAAgB,wBAAwB,SAA8B;CACpE,OAAO,kBAAkB;EACvB,SAAS;EACT,UAAU,CAAC,sBAAsB,OAAO,CAAC;EACzC,YAAY,GACT,sBAAsB,GACzB;CACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"createTransformerWithState.d.ts","names":["ShikiTransformerStyleToClass","SharedRenderState","ShikiTransformer","CreateTransformerWithStateReturn","createTransformerWithState"],"sources":["../../src/utils/createTransformerWithState.d.ts"],"sourcesContent":["import { type ShikiTransformerStyleToClass } from '@shikijs/transformers';\nimport type { SharedRenderState, ShikiTransformer } from '../types';\ninterface CreateTransformerWithStateReturn {\n state: SharedRenderState;\n transformers: ShikiTransformer[];\n toClass: ShikiTransformerStyleToClass;\n}\nexport declare function createTransformerWithState(useTokenTransformer?: boolean, useCSSClasses?: boolean): CreateTransformerWithStateReturn;\nexport {};\n//# sourceMappingURL=createTransformerWithState.d.ts.map"],"mappings":";;;;UAEUG,gCAAAA;SACCF;EADDE,YAAAA,EAEQD,gBAFRC,EAAAA;EACCF,OAAAA,EAEED,4BAFFC;;AAEED,iBAEWI,0BAAAA,CAFXJ,mBAAAA,CAAAA,EAAAA,OAAAA,EAAAA,aAAAA,CAAAA,EAAAA,OAAAA,CAAAA,EAE+FG,gCAF/FH"}
1
+ {"version":3,"file":"createTransformerWithState.d.ts","names":[],"sources":["../../src/utils/createTransformerWithState.ts"],"mappings":";;;;UAYU,gCAAA;EACR,KAAA,EAAO,iBAAA;EACP,YAAA,EAAc,gBAAA;EACd,OAAA,EAAS,4BAAA;AAAA;AAAA,iBAOK,0BAAA,CACd,mBAAA,YACA,aAAA,aACC,gCAAgC"}
@@ -2,7 +2,6 @@ import { findCodeElement } from "./hast_utils.js";
2
2
  import { processLine } from "./processLine.js";
3
3
  import { wrapTokenFragments } from "./wrapTokenFragments.js";
4
4
  import { transformerStyleToClass } from "@shikijs/transformers";
5
-
6
5
  //#region src/utils/createTransformerWithState.ts
7
6
  function createTransformerWithState(useTokenTransformer = false, useCSSClasses = false) {
8
7
  const state = { lineInfo: [] };
@@ -75,7 +74,7 @@ const tokenStyleNormalizer = {
75
74
  }
76
75
  }
77
76
  };
78
-
79
77
  //#endregion
80
78
  export { createTransformerWithState };
79
+
81
80
  //# sourceMappingURL=createTransformerWithState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createTransformerWithState.js","names":["state: SharedRenderState","transformers: ShikiTransformer[]","children: ElementContent[]","tokenStyleNormalizer: ShikiTransformer","style: Record<string, string>"],"sources":["../../src/utils/createTransformerWithState.ts"],"sourcesContent":["import {\n type ShikiTransformerStyleToClass,\n transformerStyleToClass,\n} from '@shikijs/transformers';\nimport type { ElementContent } from 'hast';\nimport type { ThemedToken } from 'shiki';\n\nimport type { SharedRenderState, ShikiTransformer } from '../types';\nimport { findCodeElement } from './hast_utils';\nimport { processLine } from './processLine';\nimport { wrapTokenFragments } from './wrapTokenFragments';\n\ninterface CreateTransformerWithStateReturn {\n state: SharedRenderState;\n transformers: ShikiTransformer[];\n toClass: ShikiTransformerStyleToClass;\n}\n\ntype TokenWithLineChar = ThemedToken & {\n __lineChar?: number;\n};\n\nexport function createTransformerWithState(\n useTokenTransformer = false,\n useCSSClasses = false\n): CreateTransformerWithStateReturn {\n const state: SharedRenderState = { lineInfo: [] };\n const transformers: ShikiTransformer[] = [\n {\n line(node) {\n // Remove the default class\n delete node.properties.class;\n return node;\n },\n pre(pre) {\n const code = findCodeElement(pre);\n const children: ElementContent[] = [];\n if (code != null) {\n let index = 1;\n for (const node of code.children) {\n if (node.type !== 'element') continue;\n if (useTokenTransformer) {\n wrapTokenFragments(node);\n }\n children.push(processLine(node, index, state));\n index++;\n }\n code.children = children;\n }\n return pre;\n },\n ...(useTokenTransformer\n ? {\n tokens(lines) {\n for (const line of lines) {\n let col = 0;\n for (const token of line) {\n const tokenWithOriginalRange = token as TokenWithLineChar;\n tokenWithOriginalRange.__lineChar ??= col;\n col += token.content.length;\n }\n }\n },\n preprocess(_code, options) {\n options.mergeWhitespaces = 'never';\n },\n span(hast, _line, _char, _lineElement, token) {\n if (token?.offset != null && token.content != null) {\n const tokenWithOriginalRange = token as TokenWithLineChar;\n const tokenChar = tokenWithOriginalRange.__lineChar;\n if (tokenChar != null) {\n hast.properties['data-char'] = tokenChar;\n }\n return hast;\n }\n return hast;\n },\n }\n : null),\n },\n ];\n if (useCSSClasses) {\n transformers.push(tokenStyleNormalizer, toClass);\n }\n return { state, transformers, toClass };\n}\n\nconst toClass = transformerStyleToClass({ classPrefix: 'hl-' });\n\n// Create a transformer that converts token color/fontStyle to htmlStyle\n// This needs to run BEFORE transformerStyleToClass\nconst tokenStyleNormalizer: ShikiTransformer = {\n name: 'token-style-normalizer',\n tokens(lines) {\n for (const line of lines) {\n for (const token of line) {\n // Skip if htmlStyle is already set\n if (token.htmlStyle != null) continue;\n\n const style: Record<string, string> = {};\n\n if (token.color != null) {\n style.color = token.color;\n }\n if (token.bgColor != null) {\n style['background-color'] = token.bgColor;\n }\n if (token.fontStyle != null && token.fontStyle !== 0) {\n // FontStyle is a bitmask: 1 = italic, 2 = bold, 4 = underline\n if ((token.fontStyle & 1) !== 0) {\n style['font-style'] = 'italic';\n }\n if ((token.fontStyle & 2) !== 0) {\n style['font-weight'] = 'bold';\n }\n if ((token.fontStyle & 4) !== 0) {\n style['text-decoration'] = 'underline';\n }\n }\n\n // Only set htmlStyle if we have any styles\n if (Object.keys(style).length > 0) {\n token.htmlStyle = style;\n }\n }\n }\n },\n};\n"],"mappings":";;;;;;AAsBA,SAAgB,2BACd,sBAAsB,OACtB,gBAAgB,OACkB;CAClC,MAAMA,QAA2B,EAAE,UAAU,EAAE,EAAE;CACjD,MAAMC,eAAmC,CACvC;EACE,KAAK,MAAM;AAET,UAAO,KAAK,WAAW;AACvB,UAAO;;EAET,IAAI,KAAK;GACP,MAAM,OAAO,gBAAgB,IAAI;GACjC,MAAMC,WAA6B,EAAE;AACrC,OAAI,QAAQ,MAAM;IAChB,IAAI,QAAQ;AACZ,SAAK,MAAM,QAAQ,KAAK,UAAU;AAChC,SAAI,KAAK,SAAS,UAAW;AAC7B,SAAI,oBACF,oBAAmB,KAAK;AAE1B,cAAS,KAAK,YAAY,MAAM,OAAO,MAAM,CAAC;AAC9C;;AAEF,SAAK,WAAW;;AAElB,UAAO;;EAET,GAAI,sBACA;GACE,OAAO,OAAO;AACZ,SAAK,MAAM,QAAQ,OAAO;KACxB,IAAI,MAAM;AACV,UAAK,MAAM,SAAS,MAAM;MACxB,MAAM,yBAAyB;AAC/B,6BAAuB,eAAe;AACtC,aAAO,MAAM,QAAQ;;;;GAI3B,WAAW,OAAO,SAAS;AACzB,YAAQ,mBAAmB;;GAE7B,KAAK,MAAM,OAAO,OAAO,cAAc,OAAO;AAC5C,QAAI,OAAO,UAAU,QAAQ,MAAM,WAAW,MAAM;KAElD,MAAM,YADyB,MACU;AACzC,SAAI,aAAa,KACf,MAAK,WAAW,eAAe;AAEjC,YAAO;;AAET,WAAO;;GAEV,GACD;EACL,CACF;AACD,KAAI,cACF,cAAa,KAAK,sBAAsB,QAAQ;AAElD,QAAO;EAAE;EAAO;EAAc;EAAS;;AAGzC,MAAM,UAAU,wBAAwB,EAAE,aAAa,OAAO,CAAC;AAI/D,MAAMC,uBAAyC;CAC7C,MAAM;CACN,OAAO,OAAO;AACZ,OAAK,MAAM,QAAQ,MACjB,MAAK,MAAM,SAAS,MAAM;AAExB,OAAI,MAAM,aAAa,KAAM;GAE7B,MAAMC,QAAgC,EAAE;AAExC,OAAI,MAAM,SAAS,KACjB,OAAM,QAAQ,MAAM;AAEtB,OAAI,MAAM,WAAW,KACnB,OAAM,sBAAsB,MAAM;AAEpC,OAAI,MAAM,aAAa,QAAQ,MAAM,cAAc,GAAG;AAEpD,SAAK,MAAM,YAAY,OAAO,EAC5B,OAAM,gBAAgB;AAExB,SAAK,MAAM,YAAY,OAAO,EAC5B,OAAM,iBAAiB;AAEzB,SAAK,MAAM,YAAY,OAAO,EAC5B,OAAM,qBAAqB;;AAK/B,OAAI,OAAO,KAAK,MAAM,CAAC,SAAS,EAC9B,OAAM,YAAY;;;CAK3B"}
1
+ {"version":3,"file":"createTransformerWithState.js","names":["tokenWithOriginalRange"],"sources":["../../src/utils/createTransformerWithState.ts"],"sourcesContent":["import {\n type ShikiTransformerStyleToClass,\n transformerStyleToClass,\n} from '@shikijs/transformers';\nimport type { ElementContent } from 'hast';\nimport type { ThemedToken } from 'shiki';\n\nimport type { SharedRenderState, ShikiTransformer } from '../types';\nimport { findCodeElement } from './hast_utils';\nimport { processLine } from './processLine';\nimport { wrapTokenFragments } from './wrapTokenFragments';\n\ninterface CreateTransformerWithStateReturn {\n state: SharedRenderState;\n transformers: ShikiTransformer[];\n toClass: ShikiTransformerStyleToClass;\n}\n\ntype TokenWithLineChar = ThemedToken & {\n __lineChar?: number;\n};\n\nexport function createTransformerWithState(\n useTokenTransformer = false,\n useCSSClasses = false\n): CreateTransformerWithStateReturn {\n const state: SharedRenderState = { lineInfo: [] };\n const transformers: ShikiTransformer[] = [\n {\n line(node) {\n // Remove the default class\n delete node.properties.class;\n return node;\n },\n pre(pre) {\n const code = findCodeElement(pre);\n const children: ElementContent[] = [];\n if (code != null) {\n let index = 1;\n for (const node of code.children) {\n if (node.type !== 'element') continue;\n if (useTokenTransformer) {\n wrapTokenFragments(node);\n }\n children.push(processLine(node, index, state));\n index++;\n }\n code.children = children;\n }\n return pre;\n },\n ...(useTokenTransformer\n ? {\n tokens(lines) {\n for (const line of lines) {\n let col = 0;\n for (const token of line) {\n const tokenWithOriginalRange = token as TokenWithLineChar;\n tokenWithOriginalRange.__lineChar ??= col;\n col += token.content.length;\n }\n }\n },\n preprocess(_code, options) {\n options.mergeWhitespaces = 'never';\n },\n span(hast, _line, _char, _lineElement, token) {\n if (token?.offset != null && token.content != null) {\n const tokenWithOriginalRange = token as TokenWithLineChar;\n const tokenChar = tokenWithOriginalRange.__lineChar;\n if (tokenChar != null) {\n hast.properties['data-char'] = tokenChar;\n }\n return hast;\n }\n return hast;\n },\n }\n : null),\n },\n ];\n if (useCSSClasses) {\n transformers.push(tokenStyleNormalizer, toClass);\n }\n return { state, transformers, toClass };\n}\n\nconst toClass = transformerStyleToClass({ classPrefix: 'hl-' });\n\n// Create a transformer that converts token color/fontStyle to htmlStyle\n// This needs to run BEFORE transformerStyleToClass\nconst tokenStyleNormalizer: ShikiTransformer = {\n name: 'token-style-normalizer',\n tokens(lines) {\n for (const line of lines) {\n for (const token of line) {\n // Skip if htmlStyle is already set\n if (token.htmlStyle != null) continue;\n\n const style: Record<string, string> = {};\n\n if (token.color != null) {\n style.color = token.color;\n }\n if (token.bgColor != null) {\n style['background-color'] = token.bgColor;\n }\n if (token.fontStyle != null && token.fontStyle !== 0) {\n // FontStyle is a bitmask: 1 = italic, 2 = bold, 4 = underline\n if ((token.fontStyle & 1) !== 0) {\n style['font-style'] = 'italic';\n }\n if ((token.fontStyle & 2) !== 0) {\n style['font-weight'] = 'bold';\n }\n if ((token.fontStyle & 4) !== 0) {\n style['text-decoration'] = 'underline';\n }\n }\n\n // Only set htmlStyle if we have any styles\n if (Object.keys(style).length > 0) {\n token.htmlStyle = style;\n }\n }\n }\n },\n};\n"],"mappings":";;;;;AAsBA,SAAgB,2BACd,sBAAsB,OACtB,gBAAgB,OACkB;CAClC,MAAM,QAA2B,EAAE,UAAU,CAAC,EAAE;CAChD,MAAM,eAAmC,CACvC;EACE,KAAK,MAAM;GAET,OAAO,KAAK,WAAW;GACvB,OAAO;EACT;EACA,IAAI,KAAK;GACP,MAAM,OAAO,gBAAgB,GAAG;GAChC,MAAM,WAA6B,CAAC;GACpC,IAAI,QAAQ,MAAM;IAChB,IAAI,QAAQ;IACZ,KAAK,MAAM,QAAQ,KAAK,UAAU;KAChC,IAAI,KAAK,SAAS,WAAW;KAC7B,IAAI,qBACF,mBAAmB,IAAI;KAEzB,SAAS,KAAK,YAAY,MAAM,OAAO,KAAK,CAAC;KAC7C;IACF;IACA,KAAK,WAAW;GAClB;GACA,OAAO;EACT;EACA,GAAI,sBACA;GACE,OAAO,OAAO;IACZ,KAAK,MAAM,QAAQ,OAAO;KACxB,IAAI,MAAM;KACV,KAAK,MAAM,SAAS,MAAM;MACxB,MAAM,yBAAyB;MAC/B,uBAAuB,eAAe;MACtC,OAAO,MAAM,QAAQ;KACvB;IACF;GACF;GACA,WAAW,OAAO,SAAS;IACzB,QAAQ,mBAAmB;GAC7B;GACA,KAAK,MAAM,OAAO,OAAO,cAAc,OAAO;IAC5C,IAAI,OAAO,UAAU,QAAQ,MAAM,WAAW,MAAM;KAElD,MAAM,YAAYA,MAAuB;KACzC,IAAI,aAAa,MACf,KAAK,WAAW,eAAe;KAEjC,OAAO;IACT;IACA,OAAO;GACT;EACF,IACA;CACN,CACF;CACA,IAAI,eACF,aAAa,KAAK,sBAAsB,OAAO;CAEjD,OAAO;EAAE;EAAO;EAAc;CAAQ;AACxC;AAEA,MAAM,UAAU,wBAAwB,EAAE,aAAa,MAAM,CAAC;AAI9D,MAAM,uBAAyC;CAC7C,MAAM;CACN,OAAO,OAAO;EACZ,KAAK,MAAM,QAAQ,OACjB,KAAK,MAAM,SAAS,MAAM;GAExB,IAAI,MAAM,aAAa,MAAM;GAE7B,MAAM,QAAgC,CAAC;GAEvC,IAAI,MAAM,SAAS,MACjB,MAAM,QAAQ,MAAM;GAEtB,IAAI,MAAM,WAAW,MACnB,MAAM,sBAAsB,MAAM;GAEpC,IAAI,MAAM,aAAa,QAAQ,MAAM,cAAc,GAAG;IAEpD,KAAK,MAAM,YAAY,OAAO,GAC5B,MAAM,gBAAgB;IAExB,KAAK,MAAM,YAAY,OAAO,GAC5B,MAAM,iBAAiB;IAEzB,KAAK,MAAM,YAAY,OAAO,GAC5B,MAAM,qBAAqB;GAE/B;GAGA,IAAI,OAAO,KAAK,KAAK,CAAC,CAAC,SAAS,GAC9B,MAAM,YAAY;EAEtB;CAEJ;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"createUnsafeCSSStyleNode.d.ts","names":["createUnsafeCSSStyleNode","HTMLStyleElement"],"sources":["../../src/utils/createUnsafeCSSStyleNode.d.ts"],"sourcesContent":["export declare function createUnsafeCSSStyleNode(): HTMLStyleElement;\n//# sourceMappingURL=createUnsafeCSSStyleNode.d.ts.map"],"mappings":";iBAAwBA,wBAAAA,CAAAA,GAA4BC"}
1
+ {"version":3,"file":"createUnsafeCSSStyleNode.d.ts","names":[],"sources":["../../src/utils/createUnsafeCSSStyleNode.ts"],"mappings":";iBAEgB,wBAAA,IAA4B,gBAAgB"}
@@ -1,12 +1,11 @@
1
1
  import { UNSAFE_CSS_ATTRIBUTE } from "../constants.js";
2
-
3
2
  //#region src/utils/createUnsafeCSSStyleNode.ts
4
3
  function createUnsafeCSSStyleNode() {
5
4
  const node = document.createElement("style");
6
5
  node.setAttribute(UNSAFE_CSS_ATTRIBUTE, "");
7
6
  return node;
8
7
  }
9
-
10
8
  //#endregion
11
9
  export { createUnsafeCSSStyleNode };
10
+
12
11
  //# sourceMappingURL=createUnsafeCSSStyleNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createUnsafeCSSStyleNode.js","names":[],"sources":["../../src/utils/createUnsafeCSSStyleNode.ts"],"sourcesContent":["import { UNSAFE_CSS_ATTRIBUTE } from '../constants';\n\nexport function createUnsafeCSSStyleNode(): HTMLStyleElement {\n const node = document.createElement('style');\n node.setAttribute(UNSAFE_CSS_ATTRIBUTE, '');\n return node;\n}\n"],"mappings":";;;AAEA,SAAgB,2BAA6C;CAC3D,MAAM,OAAO,SAAS,cAAc,QAAQ;AAC5C,MAAK,aAAa,sBAAsB,GAAG;AAC3C,QAAO"}
1
+ {"version":3,"file":"createUnsafeCSSStyleNode.js","names":[],"sources":["../../src/utils/createUnsafeCSSStyleNode.ts"],"sourcesContent":["import { UNSAFE_CSS_ATTRIBUTE } from '../constants';\n\nexport function createUnsafeCSSStyleNode(): HTMLStyleElement {\n const node = document.createElement('style');\n node.setAttribute(UNSAFE_CSS_ATTRIBUTE, '');\n return node;\n}\n"],"mappings":";;AAEA,SAAgB,2BAA6C;CAC3D,MAAM,OAAO,SAAS,cAAc,OAAO;CAC3C,KAAK,aAAa,sBAAsB,EAAE;CAC1C,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"createWindowFromScrollPosition.d.ts","names":["VirtualWindowSpecs","WindowFromScrollPositionProps","createWindowFromScrollPosition","scrollTop","scrollHeight","height","fitPerfectly","fitPerfectlyOverscroll","overscrollSize"],"sources":["../../src/utils/createWindowFromScrollPosition.d.ts"],"sourcesContent":["import type { VirtualWindowSpecs } from '../types';\ninterface WindowFromScrollPositionProps {\n scrollTop: number;\n height: number;\n scrollHeight: number;\n fitPerfectly?: boolean;\n fitPerfectlyOverscroll?: number;\n overscrollSize: number;\n}\nexport declare function createWindowFromScrollPosition({ scrollTop, scrollHeight, height, fitPerfectly, fitPerfectlyOverscroll, overscrollSize }: WindowFromScrollPositionProps): VirtualWindowSpecs;\nexport {};\n//# sourceMappingURL=createWindowFromScrollPosition.d.ts.map"],"mappings":";;;UACUC,6BAAAA;;EAAAA,MAAAA,EAAAA,MAAAA;EAQcC,YAAAA,EAAAA,MAAAA;EAAiCC,YAAAA,CAAAA,EAAAA,OAAAA;EAAWC,sBAAAA,CAAAA,EAAAA,MAAAA;EAAcC,cAAAA,EAAAA,MAAAA;;AAAsBE,iBAAhFL,8BAAAA,CAAgFK;EAAAA,SAAAA;EAAAA,YAAAA;EAAAA,MAAAA;EAAAA,YAAAA;EAAAA,sBAAAA;EAAAA;AAAAA,CAAAA,EAA0CN,6BAA1CM,CAAAA,EAA0EP,kBAA1EO"}
1
+ {"version":3,"file":"createWindowFromScrollPosition.d.ts","names":[],"sources":["../../src/utils/createWindowFromScrollPosition.ts"],"mappings":";;;UAEU,6BAAA;EACR,SAAA;EACA,MAAA;EACA,YAAA;EACA,YAAA;EACA,sBAAA;EACA,cAAA;AAAA;AAAA,iBAGc,8BAAA;EACd,SAAA;EACA,YAAA;EACA,MAAA;EACA,YAAA;EACA,sBAAA;EACA;AAAA,GACC,6BAAA,GAAgC,kBAAA"}
@@ -4,11 +4,11 @@ function createWindowFromScrollPosition({ scrollTop, scrollHeight, height, fitPe
4
4
  const effectiveHeight = fitPerfectly ? height + fitPerfectlyOverscroll * 2 : windowHeight;
5
5
  scrollHeight = Math.max(scrollHeight, effectiveHeight);
6
6
  if (windowHeight >= scrollHeight || fitPerfectly) {
7
- const top$1 = Math.max(scrollTop - fitPerfectlyOverscroll, 0);
8
- const bottom$1 = Math.min(scrollTop + effectiveHeight, scrollHeight);
7
+ const top = Math.max(scrollTop - fitPerfectlyOverscroll, 0);
8
+ const bottom = Math.min(scrollTop + effectiveHeight, scrollHeight);
9
9
  return {
10
- top: top$1,
11
- bottom: Math.max(bottom$1, top$1)
10
+ top,
11
+ bottom: Math.max(bottom, top)
12
12
  };
13
13
  }
14
14
  let top = scrollTop + height / 2 - windowHeight / 2;
@@ -21,7 +21,7 @@ function createWindowFromScrollPosition({ scrollTop, scrollHeight, height, fitPe
21
21
  bottom: Math.ceil(Math.max(Math.min(bottom, scrollHeight), top))
22
22
  };
23
23
  }
24
-
25
24
  //#endregion
26
25
  export { createWindowFromScrollPosition };
26
+
27
27
  //# sourceMappingURL=createWindowFromScrollPosition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createWindowFromScrollPosition.js","names":["top","bottom"],"sources":["../../src/utils/createWindowFromScrollPosition.ts"],"sourcesContent":["import type { VirtualWindowSpecs } from '../types';\n\ninterface WindowFromScrollPositionProps {\n scrollTop: number;\n height: number;\n scrollHeight: number;\n fitPerfectly?: boolean;\n fitPerfectlyOverscroll?: number;\n overscrollSize: number;\n}\n\nexport function createWindowFromScrollPosition({\n scrollTop,\n scrollHeight,\n height,\n fitPerfectly = false,\n fitPerfectlyOverscroll = 0,\n overscrollSize,\n}: WindowFromScrollPositionProps): VirtualWindowSpecs {\n const windowHeight = height + overscrollSize * 2;\n const effectiveHeight = fitPerfectly\n ? height + fitPerfectlyOverscroll * 2\n : windowHeight;\n scrollHeight = Math.max(scrollHeight, effectiveHeight);\n\n if (windowHeight >= scrollHeight || fitPerfectly) {\n const top = Math.max(scrollTop - fitPerfectlyOverscroll, 0);\n const bottom = Math.min(scrollTop + effectiveHeight, scrollHeight);\n return {\n top,\n bottom: Math.max(bottom, top),\n };\n }\n\n const scrollCenter = scrollTop + height / 2;\n let top = scrollCenter - windowHeight / 2;\n let bottom = top + windowHeight;\n if (top < 0) {\n top = 0;\n }\n if (bottom > scrollHeight) {\n bottom = scrollHeight;\n }\n top = Math.floor(Math.max(top, 0));\n return {\n top,\n bottom: Math.ceil(Math.max(Math.min(bottom, scrollHeight), top)),\n };\n}\n"],"mappings":";AAWA,SAAgB,+BAA+B,EAC7C,WACA,cACA,QACA,eAAe,OACf,yBAAyB,GACzB,kBACoD;CACpD,MAAM,eAAe,SAAS,iBAAiB;CAC/C,MAAM,kBAAkB,eACpB,SAAS,yBAAyB,IAClC;AACJ,gBAAe,KAAK,IAAI,cAAc,gBAAgB;AAEtD,KAAI,gBAAgB,gBAAgB,cAAc;EAChD,MAAMA,QAAM,KAAK,IAAI,YAAY,wBAAwB,EAAE;EAC3D,MAAMC,WAAS,KAAK,IAAI,YAAY,iBAAiB,aAAa;AAClE,SAAO;GACL;GACA,QAAQ,KAAK,IAAIA,UAAQD,MAAI;GAC9B;;CAIH,IAAI,MADiB,YAAY,SAAS,IACjB,eAAe;CACxC,IAAI,SAAS,MAAM;AACnB,KAAI,MAAM,EACR,OAAM;AAER,KAAI,SAAS,aACX,UAAS;AAEX,OAAM,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;AAClC,QAAO;EACL;EACA,QAAQ,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,QAAQ,aAAa,EAAE,IAAI,CAAC;EACjE"}
1
+ {"version":3,"file":"createWindowFromScrollPosition.js","names":[],"sources":["../../src/utils/createWindowFromScrollPosition.ts"],"sourcesContent":["import type { VirtualWindowSpecs } from '../types';\n\ninterface WindowFromScrollPositionProps {\n scrollTop: number;\n height: number;\n scrollHeight: number;\n fitPerfectly?: boolean;\n fitPerfectlyOverscroll?: number;\n overscrollSize: number;\n}\n\nexport function createWindowFromScrollPosition({\n scrollTop,\n scrollHeight,\n height,\n fitPerfectly = false,\n fitPerfectlyOverscroll = 0,\n overscrollSize,\n}: WindowFromScrollPositionProps): VirtualWindowSpecs {\n const windowHeight = height + overscrollSize * 2;\n const effectiveHeight = fitPerfectly\n ? height + fitPerfectlyOverscroll * 2\n : windowHeight;\n scrollHeight = Math.max(scrollHeight, effectiveHeight);\n\n if (windowHeight >= scrollHeight || fitPerfectly) {\n const top = Math.max(scrollTop - fitPerfectlyOverscroll, 0);\n const bottom = Math.min(scrollTop + effectiveHeight, scrollHeight);\n return {\n top,\n bottom: Math.max(bottom, top),\n };\n }\n\n const scrollCenter = scrollTop + height / 2;\n let top = scrollCenter - windowHeight / 2;\n let bottom = top + windowHeight;\n if (top < 0) {\n top = 0;\n }\n if (bottom > scrollHeight) {\n bottom = scrollHeight;\n }\n top = Math.floor(Math.max(top, 0));\n return {\n top,\n bottom: Math.ceil(Math.max(Math.min(bottom, scrollHeight), top)),\n };\n}\n"],"mappings":";AAWA,SAAgB,+BAA+B,EAC7C,WACA,cACA,QACA,eAAe,OACf,yBAAyB,GACzB,kBACoD;CACpD,MAAM,eAAe,SAAS,iBAAiB;CAC/C,MAAM,kBAAkB,eACpB,SAAS,yBAAyB,IAClC;CACJ,eAAe,KAAK,IAAI,cAAc,eAAe;CAErD,IAAI,gBAAgB,gBAAgB,cAAc;EAChD,MAAM,MAAM,KAAK,IAAI,YAAY,wBAAwB,CAAC;EAC1D,MAAM,SAAS,KAAK,IAAI,YAAY,iBAAiB,YAAY;EACjE,OAAO;GACL;GACA,QAAQ,KAAK,IAAI,QAAQ,GAAG;EAC9B;CACF;CAGA,IAAI,MADiB,YAAY,SAAS,IACjB,eAAe;CACxC,IAAI,SAAS,MAAM;CACnB,IAAI,MAAM,GACR,MAAM;CAER,IAAI,SAAS,cACX,SAAS;CAEX,MAAM,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,CAAC;CACjC,OAAO;EACL;EACA,QAAQ,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,QAAQ,YAAY,GAAG,GAAG,CAAC;CACjE;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"cssWrappers.d.ts","names":["ThemeTypes","wrapCoreCSS","wrapUnsafeCSS","wrapThemeCSS","patchScrollbarGutterSize"],"sources":["../../src/utils/cssWrappers.d.ts"],"sourcesContent":["import type { ThemeTypes } from '../types';\nexport declare function wrapCoreCSS(mainCSS: string): string;\nexport declare function wrapUnsafeCSS(unsafeCSS: string): string;\nexport declare function wrapThemeCSS(themeCSS: string, themeType?: ThemeTypes, scrollbarGutter?: number): string;\nexport declare function patchScrollbarGutterSize(themeCSS: string, scrollbarGutter: number | undefined): string;\n//# sourceMappingURL=cssWrappers.d.ts.map"],"mappings":";;;iBACwBC,WAAAA;iBACAC,aAAAA;AADAD,iBAEAE,YAAAA,CAFW,QAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAEgCH,UAFhC,EAAA,eAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AACXE,iBAEAE,wBAAAA,CAFa,QAAA,EAAA,MAAA,EAAA,eAAA,EAAA,MAAA,GAAA,SAAA,CAAA,EAAA,MAAA"}
1
+ {"version":3,"file":"cssWrappers.d.ts","names":[],"sources":["../../src/utils/cssWrappers.ts"],"mappings":";;;iBAUgB,WAAA,CAAY,OAAe;AAAA,iBAQ3B,aAAA,CAAc,SAAiB;AAAA,iBAO/B,YAAA,CACd,QAAA,UACA,SAAA,GAAW,UAAqB,EAChC,eAAA;AAAA,iBAmBc,wBAAA,CACd,QAAA,UACA,eAAmC"}
@@ -1,10 +1,9 @@
1
1
  import { DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY } from "../constants.js";
2
2
  import style_default from "../style.js";
3
3
  import { createMeasuredScrollbarGutterDeclaration } from "./scrollbarGutter.js";
4
-
5
4
  //#region src/utils/cssWrappers.ts
6
5
  const LAYER_ORDER = `@layer base, theme, rendered, unsafe;`;
7
- const SCROLLBAR_GUTTER_DECLARATION_PATTERN = /* @__PURE__ */ new RegExp(`${escapeRegExp(DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY)}\\s*:\\s*[^;]+;`);
6
+ const SCROLLBAR_GUTTER_DECLARATION_PATTERN = new RegExp(`${escapeRegExp(DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY)}\\s*:\\s*[^;]+;`);
8
7
  function wrapCoreCSS(mainCSS) {
9
8
  return `${LAYER_ORDER}
10
9
  ${style_default}
@@ -35,7 +34,7 @@ function patchScrollbarGutterSize(themeCSS, scrollbarGutter) {
35
34
  function escapeRegExp(value) {
36
35
  return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
37
36
  }
38
-
39
37
  //#endregion
40
38
  export { patchScrollbarGutterSize, wrapCoreCSS, wrapThemeCSS, wrapUnsafeCSS };
39
+
41
40
  //# sourceMappingURL=cssWrappers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cssWrappers.js","names":["rawStyles"],"sources":["../../src/utils/cssWrappers.ts"],"sourcesContent":["import { DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY } from '../constants';\nimport rawStyles from '../style.css';\nimport type { ThemeTypes } from '../types';\nimport { createMeasuredScrollbarGutterDeclaration } from './scrollbarGutter';\n\nconst LAYER_ORDER = `@layer base, theme, rendered, unsafe;`;\nconst SCROLLBAR_GUTTER_DECLARATION_PATTERN = new RegExp(\n `${escapeRegExp(DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY)}\\\\s*:\\\\s*[^;]+;`\n);\n\nexport function wrapCoreCSS(mainCSS: string) {\n return `${LAYER_ORDER}\n${rawStyles}\n@layer theme {\n ${mainCSS}\n}`;\n}\n\nexport function wrapUnsafeCSS(unsafeCSS: string) {\n return `${LAYER_ORDER}\n@layer unsafe {\n ${unsafeCSS}\n}`;\n}\n\nexport function wrapThemeCSS(\n themeCSS: string,\n themeType: ThemeTypes = 'system',\n scrollbarGutter?: number\n) {\n const colorSchemeRule =\n themeType === 'system'\n ? ''\n : `\n color-scheme: ${themeType};`;\n const scrollbarGutterVar =\n createMeasuredScrollbarGutterDeclaration(scrollbarGutter);\n\n return `${LAYER_ORDER}\n@layer rendered {\n :host {${colorSchemeRule}\n ${scrollbarGutterVar}\n ${themeCSS}\n }\n}`;\n}\n\nexport function patchScrollbarGutterSize(\n themeCSS: string,\n scrollbarGutter: number | undefined\n): string {\n const scrollbarGutterRule =\n createMeasuredScrollbarGutterDeclaration(scrollbarGutter);\n return themeCSS.replace(\n SCROLLBAR_GUTTER_DECLARATION_PATTERN,\n scrollbarGutterRule\n );\n}\n\nfunction escapeRegExp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n"],"mappings":";;;;;AAKA,MAAM,cAAc;AACpB,MAAM,uDAAuC,IAAI,OAC/C,GAAG,aAAa,yCAAyC,CAAC,iBAC3D;AAED,SAAgB,YAAY,SAAiB;AAC3C,QAAO,GAAG,YAAY;EACtBA,cAAU;;IAER,QAAQ;;;AAIZ,SAAgB,cAAc,WAAmB;AAC/C,QAAO,GAAG,YAAY;;IAEpB,UAAU;;;AAId,SAAgB,aACd,UACA,YAAwB,UACxB,iBACA;AASA,QAAO,GAAG,YAAY;;WAPpB,cAAc,WACV,KACA;kBACU,UAAU,GAMD;IAJvB,yCAAyC,gBAAgB,CAKtC;IACnB,SAAS;;;;AAKb,SAAgB,yBACd,UACA,iBACQ;CACR,MAAM,sBACJ,yCAAyC,gBAAgB;AAC3D,QAAO,SAAS,QACd,sCACA,oBACD;;AAGH,SAAS,aAAa,OAAuB;AAC3C,QAAO,MAAM,QAAQ,uBAAuB,OAAO"}
1
+ {"version":3,"file":"cssWrappers.js","names":["rawStyles"],"sources":["../../src/utils/cssWrappers.ts"],"sourcesContent":["import { DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY } from '../constants';\nimport rawStyles from '../style.css?inline';\nimport type { ThemeTypes } from '../types';\nimport { createMeasuredScrollbarGutterDeclaration } from './scrollbarGutter';\n\nconst LAYER_ORDER = `@layer base, theme, rendered, unsafe;`;\nconst SCROLLBAR_GUTTER_DECLARATION_PATTERN = new RegExp(\n `${escapeRegExp(DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY)}\\\\s*:\\\\s*[^;]+;`\n);\n\nexport function wrapCoreCSS(mainCSS: string) {\n return `${LAYER_ORDER}\n${rawStyles}\n@layer theme {\n ${mainCSS}\n}`;\n}\n\nexport function wrapUnsafeCSS(unsafeCSS: string) {\n return `${LAYER_ORDER}\n@layer unsafe {\n ${unsafeCSS}\n}`;\n}\n\nexport function wrapThemeCSS(\n themeCSS: string,\n themeType: ThemeTypes = 'system',\n scrollbarGutter?: number\n) {\n const colorSchemeRule =\n themeType === 'system'\n ? ''\n : `\n color-scheme: ${themeType};`;\n const scrollbarGutterVar =\n createMeasuredScrollbarGutterDeclaration(scrollbarGutter);\n\n return `${LAYER_ORDER}\n@layer rendered {\n :host {${colorSchemeRule}\n ${scrollbarGutterVar}\n ${themeCSS}\n }\n}`;\n}\n\nexport function patchScrollbarGutterSize(\n themeCSS: string,\n scrollbarGutter: number | undefined\n): string {\n const scrollbarGutterRule =\n createMeasuredScrollbarGutterDeclaration(scrollbarGutter);\n return themeCSS.replace(\n SCROLLBAR_GUTTER_DECLARATION_PATTERN,\n scrollbarGutterRule\n );\n}\n\nfunction escapeRegExp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n"],"mappings":";;;;AAKA,MAAM,cAAc;AACpB,MAAM,uCAAuC,IAAI,OAC/C,GAAG,aAAa,wCAAwC,EAAE,gBAC5D;AAEA,SAAgB,YAAY,SAAiB;CAC3C,OAAO,GAAG,YAAY;EACtBA,cAAU;;IAER,QAAQ;;AAEZ;AAEA,SAAgB,cAAc,WAAmB;CAC/C,OAAO,GAAG,YAAY;;IAEpB,UAAU;;AAEd;AAEA,SAAgB,aACd,UACA,YAAwB,UACxB,iBACA;CASA,OAAO,GAAG,YAAY;;WAPpB,cAAc,WACV,KACA;kBACU,UAAU,GAMD;IAJvB,yCAAyC,eAKxB,EAAE;IACnB,SAAS;;;AAGb;AAEA,SAAgB,yBACd,UACA,iBACQ;CACR,MAAM,sBACJ,yCAAyC,eAAe;CAC1D,OAAO,SAAS,QACd,sCACA,mBACF;AACF;AAEA,SAAS,aAAa,OAAuB;CAC3C,OAAO,MAAM,QAAQ,uBAAuB,MAAM;AACpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"detachString.d.ts","names":["releaseStringDetachBuffer","detachString"],"sources":["../../src/utils/detachString.d.ts"],"sourcesContent":["export declare function releaseStringDetachBuffer(): void;\nexport declare function detachString(value: string): string;\n//# sourceMappingURL=detachString.d.ts.map"],"mappings":";iBAAwBA,yBAAAA,CAAAA;AAAAA,iBACAC,YAAAA,CADyB,KAAA,EAAA,MAAA,CAAA,EAAA,MAAA"}
1
+ {"version":3,"file":"detachString.d.ts","names":[],"sources":["../../src/utils/detachString.ts"],"mappings":";iBAQgB,yBAAA;AAAA,iBAQA,YAAA,CAAa,KAAa"}
@@ -15,7 +15,7 @@ function detachString(value) {
15
15
  const { written } = stringDetachEncoder.encodeInto(value, stringDetachBuffer);
16
16
  return stringDetachDecoder.decode(stringDetachBuffer.subarray(0, written));
17
17
  }
18
-
19
18
  //#endregion
20
19
  export { detachString, releaseStringDetachBuffer };
20
+
21
21
  //# sourceMappingURL=detachString.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detachString.js","names":[],"sources":["../../src/utils/detachString.ts"],"sourcesContent":["const stringDetachEncoder = new TextEncoder();\nconst stringDetachDecoder = new TextDecoder('utf-8', { ignoreBOM: true });\nconst SURROGATE_CODE_UNIT_PATTERN = /[\\uD800-\\uDFFF]/;\nconst STRING_DETACH_INITIAL_BUFFER_SIZE = 1024;\nlet stringDetachBuffer = new Uint8Array(STRING_DETACH_INITIAL_BUFFER_SIZE);\n\n// Drops the reusable scratch buffer after a parsing run so one unusually long\n// line does not pin that peak allocation for the lifetime of the process.\nexport function releaseStringDetachBuffer(): void {\n if (stringDetachBuffer.length !== STRING_DETACH_INITIAL_BUFFER_SIZE) {\n stringDetachBuffer = new Uint8Array(STRING_DETACH_INITIAL_BUFFER_SIZE);\n }\n}\n\n// Forces a fresh backing string so a retained substring does not keep the\n// original raw patch/file text alive.\nexport function detachString(value: string): string {\n if (value.length === 0) {\n return value;\n }\n\n // TextEncoder replaces lone surrogate code units with U+FFFD, but diff input\n // can contain arbitrary text. JSON round-tripping preserves those code units\n // while still forcing V8 to allocate a fresh backing string.\n if (SURROGATE_CODE_UNIT_PATTERN.test(value)) {\n return JSON.parse(JSON.stringify(value)) as string;\n }\n\n // Without surrogates, each UTF-16 code unit encodes to at most 3 UTF-8 bytes.\n // Reusing this scratch buffer avoids allocating a new Uint8Array for every\n // parsed line while keeping retained line strings detached from the raw patch.\n const requiredByteLength = value.length * 3;\n if (stringDetachBuffer.length < requiredByteLength) {\n stringDetachBuffer = new Uint8Array(requiredByteLength);\n }\n\n const { written } = stringDetachEncoder.encodeInto(value, stringDetachBuffer);\n // Decoding only the written bytes materializes a compact string, preserving\n // the low post-GC memory profile that the old TextEncoder/TextDecoder path had.\n return stringDetachDecoder.decode(stringDetachBuffer.subarray(0, written));\n}\n"],"mappings":";AAAA,MAAM,sBAAsB,IAAI,aAAa;AAC7C,MAAM,sBAAsB,IAAI,YAAY,SAAS,EAAE,WAAW,MAAM,CAAC;AACzE,MAAM,8BAA8B;AACpC,MAAM,oCAAoC;AAC1C,IAAI,qBAAqB,IAAI,WAAW,kCAAkC;AAI1E,SAAgB,4BAAkC;AAChD,KAAI,mBAAmB,WAAW,kCAChC,sBAAqB,IAAI,WAAW,kCAAkC;;AAM1E,SAAgB,aAAa,OAAuB;AAClD,KAAI,MAAM,WAAW,EACnB,QAAO;AAMT,KAAI,4BAA4B,KAAK,MAAM,CACzC,QAAO,KAAK,MAAM,KAAK,UAAU,MAAM,CAAC;CAM1C,MAAM,qBAAqB,MAAM,SAAS;AAC1C,KAAI,mBAAmB,SAAS,mBAC9B,sBAAqB,IAAI,WAAW,mBAAmB;CAGzD,MAAM,EAAE,YAAY,oBAAoB,WAAW,OAAO,mBAAmB;AAG7E,QAAO,oBAAoB,OAAO,mBAAmB,SAAS,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"detachString.js","names":[],"sources":["../../src/utils/detachString.ts"],"sourcesContent":["const stringDetachEncoder = new TextEncoder();\nconst stringDetachDecoder = new TextDecoder('utf-8', { ignoreBOM: true });\nconst SURROGATE_CODE_UNIT_PATTERN = /[\\uD800-\\uDFFF]/;\nconst STRING_DETACH_INITIAL_BUFFER_SIZE = 1024;\nlet stringDetachBuffer = new Uint8Array(STRING_DETACH_INITIAL_BUFFER_SIZE);\n\n// Drops the reusable scratch buffer after a parsing run so one unusually long\n// line does not pin that peak allocation for the lifetime of the process.\nexport function releaseStringDetachBuffer(): void {\n if (stringDetachBuffer.length !== STRING_DETACH_INITIAL_BUFFER_SIZE) {\n stringDetachBuffer = new Uint8Array(STRING_DETACH_INITIAL_BUFFER_SIZE);\n }\n}\n\n// Forces a fresh backing string so a retained substring does not keep the\n// original raw patch/file text alive.\nexport function detachString(value: string): string {\n if (value.length === 0) {\n return value;\n }\n\n // TextEncoder replaces lone surrogate code units with U+FFFD, but diff input\n // can contain arbitrary text. JSON round-tripping preserves those code units\n // while still forcing V8 to allocate a fresh backing string.\n if (SURROGATE_CODE_UNIT_PATTERN.test(value)) {\n return JSON.parse(JSON.stringify(value)) as string;\n }\n\n // Without surrogates, each UTF-16 code unit encodes to at most 3 UTF-8 bytes.\n // Reusing this scratch buffer avoids allocating a new Uint8Array for every\n // parsed line while keeping retained line strings detached from the raw patch.\n const requiredByteLength = value.length * 3;\n if (stringDetachBuffer.length < requiredByteLength) {\n stringDetachBuffer = new Uint8Array(requiredByteLength);\n }\n\n const { written } = stringDetachEncoder.encodeInto(value, stringDetachBuffer);\n // Decoding only the written bytes materializes a compact string, preserving\n // the low post-GC memory profile that the old TextEncoder/TextDecoder path had.\n return stringDetachDecoder.decode(stringDetachBuffer.subarray(0, written));\n}\n"],"mappings":";AAAA,MAAM,sBAAsB,IAAI,YAAY;AAC5C,MAAM,sBAAsB,IAAI,YAAY,SAAS,EAAE,WAAW,KAAK,CAAC;AACxE,MAAM,8BAA8B;AACpC,MAAM,oCAAoC;AAC1C,IAAI,qBAAqB,IAAI,WAAW,iCAAiC;AAIzE,SAAgB,4BAAkC;CAChD,IAAI,mBAAmB,WAAW,mCAChC,qBAAqB,IAAI,WAAW,iCAAiC;AAEzE;AAIA,SAAgB,aAAa,OAAuB;CAClD,IAAI,MAAM,WAAW,GACnB,OAAO;CAMT,IAAI,4BAA4B,KAAK,KAAK,GACxC,OAAO,KAAK,MAAM,KAAK,UAAU,KAAK,CAAC;CAMzC,MAAM,qBAAqB,MAAM,SAAS;CAC1C,IAAI,mBAAmB,SAAS,oBAC9B,qBAAqB,IAAI,WAAW,kBAAkB;CAGxD,MAAM,EAAE,YAAY,oBAAoB,WAAW,OAAO,kBAAkB;CAG5E,OAAO,oBAAoB,OAAO,mBAAmB,SAAS,GAAG,OAAO,CAAC;AAC3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"diffAcceptRejectHunk.d.ts","names":["DiffAcceptRejectHunkConfig","DiffAcceptRejectHunkType","FileDiffMetadata","DiffAcceptRejectHunkOptions","diffAcceptRejectHunk"],"sources":["../../src/utils/diffAcceptRejectHunk.d.ts"],"sourcesContent":["import type { DiffAcceptRejectHunkConfig, DiffAcceptRejectHunkType, FileDiffMetadata } from '../types';\ntype DiffAcceptRejectHunkOptions = DiffAcceptRejectHunkType | DiffAcceptRejectHunkConfig;\nexport declare function diffAcceptRejectHunk(diff: FileDiffMetadata, hunkIndex: number, options: DiffAcceptRejectHunkOptions): FileDiffMetadata;\nexport {};\n//# sourceMappingURL=diffAcceptRejectHunk.d.ts.map"],"mappings":";;;KACKG,2BAAAA,GAA8BF,2BAA2BD;iBACtCI,oBAAAA,OAA2BF,8CAA8CC,8BAA8BD"}
1
+ {"version":3,"file":"diffAcceptRejectHunk.d.ts","names":[],"sources":["../../src/utils/diffAcceptRejectHunk.ts"],"mappings":";;;KAQK,2BAAA,GACD,wBAAA,GACA,0BAA0B;AAAA,iBAEd,oBAAA,CACd,IAAA,EAAM,gBAAA,EACN,SAAA,UACA,OAAA,EAAS,2BAAA,GACR,gBAAA"}
@@ -1,6 +1,5 @@
1
1
  import { normalizeDiffResolution } from "./normalizeDiffResolution.js";
2
2
  import { resolveRegion } from "./resolveRegion.js";
3
-
4
3
  //#region src/utils/diffAcceptRejectHunk.ts
5
4
  function diffAcceptRejectHunk(diff, hunkIndex, options) {
6
5
  const hunk = diff.hunks[hunkIndex];
@@ -26,7 +25,7 @@ function diffAcceptRejectHunk(diff, hunkIndex, options) {
26
25
  })()
27
26
  });
28
27
  }
29
-
30
28
  //#endregion
31
29
  export { diffAcceptRejectHunk };
30
+
32
31
  //# sourceMappingURL=diffAcceptRejectHunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diffAcceptRejectHunk.js","names":[],"sources":["../../src/utils/diffAcceptRejectHunk.ts"],"sourcesContent":["import type {\n DiffAcceptRejectHunkConfig,\n DiffAcceptRejectHunkType,\n FileDiffMetadata,\n} from '../types';\nimport { normalizeDiffResolution } from './normalizeDiffResolution';\nimport { resolveRegion } from './resolveRegion';\n\ntype DiffAcceptRejectHunkOptions =\n | DiffAcceptRejectHunkType\n | DiffAcceptRejectHunkConfig;\n\nexport function diffAcceptRejectHunk(\n diff: FileDiffMetadata,\n hunkIndex: number,\n options: DiffAcceptRejectHunkOptions\n): FileDiffMetadata {\n const hunk = diff.hunks[hunkIndex];\n if (hunk == null) {\n console.error({ hunkIndex, diff });\n throw new Error('diffAcceptRejectHunk: Invalid hunk index');\n }\n\n return resolveRegion(diff, {\n resolution: normalizeDiffResolution(options),\n hunkIndex,\n ...(() => {\n if (typeof options === 'object') {\n return {\n startContentIndex: options.changeIndex,\n endContentIndex: options.changeIndex,\n };\n }\n return {\n startContentIndex: 0,\n endContentIndex: Math.max(0, (hunk.hunkContent.length ?? 1) - 1),\n };\n })(),\n });\n}\n"],"mappings":";;;;AAYA,SAAgB,qBACd,MACA,WACA,SACkB;CAClB,MAAM,OAAO,KAAK,MAAM;AACxB,KAAI,QAAQ,MAAM;AAChB,UAAQ,MAAM;GAAE;GAAW;GAAM,CAAC;AAClC,QAAM,IAAI,MAAM,2CAA2C;;AAG7D,QAAO,cAAc,MAAM;EACzB,YAAY,wBAAwB,QAAQ;EAC5C;EACA,UAAU;AACR,OAAI,OAAO,YAAY,SACrB,QAAO;IACL,mBAAmB,QAAQ;IAC3B,iBAAiB,QAAQ;IAC1B;AAEH,UAAO;IACL,mBAAmB;IACnB,iBAAiB,KAAK,IAAI,IAAI,KAAK,YAAY,UAAU,KAAK,EAAE;IACjE;MACC;EACL,CAAC"}
1
+ {"version":3,"file":"diffAcceptRejectHunk.js","names":[],"sources":["../../src/utils/diffAcceptRejectHunk.ts"],"sourcesContent":["import type {\n DiffAcceptRejectHunkConfig,\n DiffAcceptRejectHunkType,\n FileDiffMetadata,\n} from '../types';\nimport { normalizeDiffResolution } from './normalizeDiffResolution';\nimport { resolveRegion } from './resolveRegion';\n\ntype DiffAcceptRejectHunkOptions =\n | DiffAcceptRejectHunkType\n | DiffAcceptRejectHunkConfig;\n\nexport function diffAcceptRejectHunk(\n diff: FileDiffMetadata,\n hunkIndex: number,\n options: DiffAcceptRejectHunkOptions\n): FileDiffMetadata {\n const hunk = diff.hunks[hunkIndex];\n if (hunk == null) {\n console.error({ hunkIndex, diff });\n throw new Error('diffAcceptRejectHunk: Invalid hunk index');\n }\n\n return resolveRegion(diff, {\n resolution: normalizeDiffResolution(options),\n hunkIndex,\n ...(() => {\n if (typeof options === 'object') {\n return {\n startContentIndex: options.changeIndex,\n endContentIndex: options.changeIndex,\n };\n }\n return {\n startContentIndex: 0,\n endContentIndex: Math.max(0, (hunk.hunkContent.length ?? 1) - 1),\n };\n })(),\n });\n}\n"],"mappings":";;;AAYA,SAAgB,qBACd,MACA,WACA,SACkB;CAClB,MAAM,OAAO,KAAK,MAAM;CACxB,IAAI,QAAQ,MAAM;EAChB,QAAQ,MAAM;GAAE;GAAW;EAAK,CAAC;EACjC,MAAM,IAAI,MAAM,0CAA0C;CAC5D;CAEA,OAAO,cAAc,MAAM;EACzB,YAAY,wBAAwB,OAAO;EAC3C;EACA,UAAU;GACR,IAAI,OAAO,YAAY,UACrB,OAAO;IACL,mBAAmB,QAAQ;IAC3B,iBAAiB,QAAQ;GAC3B;GAEF,OAAO;IACL,mBAAmB;IACnB,iBAAiB,KAAK,IAAI,IAAI,KAAK,YAAY,UAAU,KAAK,CAAC;GACjE;EACF,EAAA,CAAG;CACL,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"formatCSSVariablePrefix.d.ts","names":["formatCSSVariablePrefix"],"sources":["../../src/utils/formatCSSVariablePrefix.d.ts"],"sourcesContent":["export declare function formatCSSVariablePrefix(type: 'global' | 'token'): string;\n//# sourceMappingURL=formatCSSVariablePrefix.d.ts.map"],"mappings":";iBAAwBA,uBAAAA"}
1
+ {"version":3,"file":"formatCSSVariablePrefix.d.ts","names":[],"sources":["../../src/utils/formatCSSVariablePrefix.ts"],"mappings":";iBAAgB,uBAAA,CAAwB,IAAwB"}
@@ -2,7 +2,7 @@
2
2
  function formatCSSVariablePrefix(type) {
3
3
  return `--${type === "token" ? "diffs-token" : "diffs"}-`;
4
4
  }
5
-
6
5
  //#endregion
7
6
  export { formatCSSVariablePrefix };
7
+
8
8
  //# sourceMappingURL=formatCSSVariablePrefix.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatCSSVariablePrefix.js","names":[],"sources":["../../src/utils/formatCSSVariablePrefix.ts"],"sourcesContent":["export function formatCSSVariablePrefix(type: 'global' | 'token') {\n return `--${type === 'token' ? 'diffs-token' : 'diffs'}-`;\n}\n"],"mappings":";AAAA,SAAgB,wBAAwB,MAA0B;AAChE,QAAO,KAAK,SAAS,UAAU,gBAAgB,QAAQ"}
1
+ {"version":3,"file":"formatCSSVariablePrefix.js","names":[],"sources":["../../src/utils/formatCSSVariablePrefix.ts"],"sourcesContent":["export function formatCSSVariablePrefix(type: 'global' | 'token') {\n return `--${type === 'token' ? 'diffs-token' : 'diffs'}-`;\n}\n"],"mappings":";AAAA,SAAgB,wBAAwB,MAA0B;CAChE,OAAO,KAAK,SAAS,UAAU,gBAAgB,QAAQ;AACzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"getDiffHunksRendererOptions.d.ts","names":["FileDiffOptions","DiffHunksRendererOptions","getDiffHunksRendererOptions","LAnnotation"],"sources":["../../src/utils/getDiffHunksRendererOptions.d.ts"],"sourcesContent":["import type { FileDiffOptions } from '../components/FileDiff';\nimport type { DiffHunksRendererOptions } from '../renderers/DiffHunksRenderer';\nexport declare function getDiffHunksRendererOptions<LAnnotation>(options: FileDiffOptions<LAnnotation> | undefined): DiffHunksRendererOptions;\n//# sourceMappingURL=getDiffHunksRendererOptions.d.ts.map"],"mappings":";;;;iBAEwBE,kDAAkDF,gBAAgBG,2BAA2BF"}
1
+ {"version":3,"file":"getDiffHunksRendererOptions.d.ts","names":[],"sources":["../../src/utils/getDiffHunksRendererOptions.ts"],"mappings":";;;;iBAKgB,2BAAA,cACd,OAAA,EAAS,eAAA,CAAgB,WAAA,gBACxB,wBAAA"}
@@ -25,7 +25,7 @@ function getDiffHunksRendererOptions(options) {
25
25
  headerRenderMode: options?.renderCustomHeader != null ? "custom" : "default"
26
26
  };
27
27
  }
28
-
29
28
  //#endregion
30
29
  export { getDiffHunksRendererOptions };
30
+
31
31
  //# sourceMappingURL=getDiffHunksRendererOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDiffHunksRendererOptions.js","names":[],"sources":["../../src/utils/getDiffHunksRendererOptions.ts"],"sourcesContent":["import type { FileDiffOptions } from '../components/FileDiff';\nimport type { DiffHunksRendererOptions } from '../renderers/DiffHunksRenderer';\n\n// Build the renderer option snapshot with direct property reads. CodeView item\n// options may inherit prototype getters, so object spread can miss values.\nexport function getDiffHunksRendererOptions<LAnnotation>(\n options: FileDiffOptions<LAnnotation> | undefined\n): DiffHunksRendererOptions {\n return {\n theme: options?.theme,\n disableLineNumbers: options?.disableLineNumbers,\n overflow: options?.overflow,\n collapsed: options?.collapsed,\n disableFileHeader: options?.disableFileHeader,\n disableVirtualizationBuffers: options?.disableVirtualizationBuffers,\n stickyHeader: options?.stickyHeader,\n preferredHighlighter: options?.preferredHighlighter,\n useCSSClasses: options?.useCSSClasses,\n useTokenTransformer: options?.useTokenTransformer,\n tokenizeMaxLineLength: options?.tokenizeMaxLineLength,\n tokenizeMaxLength: options?.tokenizeMaxLength,\n diffStyle: options?.diffStyle,\n diffIndicators: options?.diffIndicators,\n disableBackground: options?.disableBackground,\n hunkSeparators:\n typeof options?.hunkSeparators === 'function'\n ? 'custom'\n : options?.hunkSeparators,\n expandUnchanged: options?.expandUnchanged,\n collapsedContextThreshold: options?.collapsedContextThreshold,\n lineDiffType: options?.lineDiffType,\n maxLineDiffLength: options?.maxLineDiffLength,\n expansionLineCount: options?.expansionLineCount,\n headerRenderMode:\n options?.renderCustomHeader != null ? 'custom' : 'default',\n };\n}\n"],"mappings":";AAKA,SAAgB,4BACd,SAC0B;AAC1B,QAAO;EACL,OAAO,SAAS;EAChB,oBAAoB,SAAS;EAC7B,UAAU,SAAS;EACnB,WAAW,SAAS;EACpB,mBAAmB,SAAS;EAC5B,8BAA8B,SAAS;EACvC,cAAc,SAAS;EACvB,sBAAsB,SAAS;EAC/B,eAAe,SAAS;EACxB,qBAAqB,SAAS;EAC9B,uBAAuB,SAAS;EAChC,mBAAmB,SAAS;EAC5B,WAAW,SAAS;EACpB,gBAAgB,SAAS;EACzB,mBAAmB,SAAS;EAC5B,gBACE,OAAO,SAAS,mBAAmB,aAC/B,WACA,SAAS;EACf,iBAAiB,SAAS;EAC1B,2BAA2B,SAAS;EACpC,cAAc,SAAS;EACvB,mBAAmB,SAAS;EAC5B,oBAAoB,SAAS;EAC7B,kBACE,SAAS,sBAAsB,OAAO,WAAW;EACpD"}
1
+ {"version":3,"file":"getDiffHunksRendererOptions.js","names":[],"sources":["../../src/utils/getDiffHunksRendererOptions.ts"],"sourcesContent":["import type { FileDiffOptions } from '../components/FileDiff';\nimport type { DiffHunksRendererOptions } from '../renderers/DiffHunksRenderer';\n\n// Build the renderer option snapshot with direct property reads. CodeView item\n// options may inherit prototype getters, so object spread can miss values.\nexport function getDiffHunksRendererOptions<LAnnotation>(\n options: FileDiffOptions<LAnnotation> | undefined\n): DiffHunksRendererOptions {\n return {\n theme: options?.theme,\n disableLineNumbers: options?.disableLineNumbers,\n overflow: options?.overflow,\n collapsed: options?.collapsed,\n disableFileHeader: options?.disableFileHeader,\n disableVirtualizationBuffers: options?.disableVirtualizationBuffers,\n stickyHeader: options?.stickyHeader,\n preferredHighlighter: options?.preferredHighlighter,\n useCSSClasses: options?.useCSSClasses,\n useTokenTransformer: options?.useTokenTransformer,\n tokenizeMaxLineLength: options?.tokenizeMaxLineLength,\n tokenizeMaxLength: options?.tokenizeMaxLength,\n diffStyle: options?.diffStyle,\n diffIndicators: options?.diffIndicators,\n disableBackground: options?.disableBackground,\n hunkSeparators:\n typeof options?.hunkSeparators === 'function'\n ? 'custom'\n : options?.hunkSeparators,\n expandUnchanged: options?.expandUnchanged,\n collapsedContextThreshold: options?.collapsedContextThreshold,\n lineDiffType: options?.lineDiffType,\n maxLineDiffLength: options?.maxLineDiffLength,\n expansionLineCount: options?.expansionLineCount,\n headerRenderMode:\n options?.renderCustomHeader != null ? 'custom' : 'default',\n };\n}\n"],"mappings":";AAKA,SAAgB,4BACd,SAC0B;CAC1B,OAAO;EACL,OAAO,SAAS;EAChB,oBAAoB,SAAS;EAC7B,UAAU,SAAS;EACnB,WAAW,SAAS;EACpB,mBAAmB,SAAS;EAC5B,8BAA8B,SAAS;EACvC,cAAc,SAAS;EACvB,sBAAsB,SAAS;EAC/B,eAAe,SAAS;EACxB,qBAAqB,SAAS;EAC9B,uBAAuB,SAAS;EAChC,mBAAmB,SAAS;EAC5B,WAAW,SAAS;EACpB,gBAAgB,SAAS;EACzB,mBAAmB,SAAS;EAC5B,gBACE,OAAO,SAAS,mBAAmB,aAC/B,WACA,SAAS;EACf,iBAAiB,SAAS;EAC1B,2BAA2B,SAAS;EACpC,cAAc,SAAS;EACvB,mBAAmB,SAAS;EAC5B,oBAAoB,SAAS;EAC7B,kBACE,SAAS,sBAAsB,OAAO,WAAW;CACrD;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getFileRendererOptions.d.ts","names":["FileOptions","FileRendererOptions","getFileRendererOptions","LAnnotation"],"sources":["../../src/utils/getFileRendererOptions.d.ts"],"sourcesContent":["import type { FileOptions } from '../components/File';\nimport type { FileRendererOptions } from '../renderers/FileRenderer';\nexport declare function getFileRendererOptions<LAnnotation>(options: FileOptions<LAnnotation> | undefined): FileRendererOptions;\n//# sourceMappingURL=getFileRendererOptions.d.ts.map"],"mappings":";;;;iBAEwBE,6CAA6CF,YAAYG,2BAA2BF"}
1
+ {"version":3,"file":"getFileRendererOptions.d.ts","names":[],"sources":["../../src/utils/getFileRendererOptions.ts"],"mappings":";;;;iBAKgB,sBAAA,cACd,OAAA,EAAS,WAAA,CAAY,WAAA,gBACpB,mBAAA"}
@@ -18,7 +18,7 @@ function getFileRendererOptions(options) {
18
18
  headerRenderMode: options?.renderCustomHeader != null ? "custom" : "default"
19
19
  };
20
20
  }
21
-
22
21
  //#endregion
23
22
  export { getFileRendererOptions };
23
+
24
24
  //# sourceMappingURL=getFileRendererOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFileRendererOptions.js","names":[],"sources":["../../src/utils/getFileRendererOptions.ts"],"sourcesContent":["import type { FileOptions } from '../components/File';\nimport type { FileRendererOptions } from '../renderers/FileRenderer';\n\n// Build the renderer option snapshot with direct property reads. CodeView item\n// options may inherit prototype getters, so object spread can miss values.\nexport function getFileRendererOptions<LAnnotation>(\n options: FileOptions<LAnnotation> | undefined\n): FileRendererOptions {\n return {\n theme: options?.theme,\n disableLineNumbers: options?.disableLineNumbers,\n overflow: options?.overflow,\n themeType: options?.themeType,\n collapsed: options?.collapsed,\n disableFileHeader: options?.disableFileHeader,\n disableVirtualizationBuffers: options?.disableVirtualizationBuffers,\n stickyHeader: options?.stickyHeader,\n preferredHighlighter: options?.preferredHighlighter,\n useCSSClasses: options?.useCSSClasses,\n useTokenTransformer: options?.useTokenTransformer,\n tokenizeMaxLineLength: options?.tokenizeMaxLineLength,\n tokenizeMaxLength: options?.tokenizeMaxLength,\n unsafeCSS: options?.unsafeCSS,\n headerRenderMode:\n options?.renderCustomHeader != null ? 'custom' : 'default',\n };\n}\n"],"mappings":";AAKA,SAAgB,uBACd,SACqB;AACrB,QAAO;EACL,OAAO,SAAS;EAChB,oBAAoB,SAAS;EAC7B,UAAU,SAAS;EACnB,WAAW,SAAS;EACpB,WAAW,SAAS;EACpB,mBAAmB,SAAS;EAC5B,8BAA8B,SAAS;EACvC,cAAc,SAAS;EACvB,sBAAsB,SAAS;EAC/B,eAAe,SAAS;EACxB,qBAAqB,SAAS;EAC9B,uBAAuB,SAAS;EAChC,mBAAmB,SAAS;EAC5B,WAAW,SAAS;EACpB,kBACE,SAAS,sBAAsB,OAAO,WAAW;EACpD"}
1
+ {"version":3,"file":"getFileRendererOptions.js","names":[],"sources":["../../src/utils/getFileRendererOptions.ts"],"sourcesContent":["import type { FileOptions } from '../components/File';\nimport type { FileRendererOptions } from '../renderers/FileRenderer';\n\n// Build the renderer option snapshot with direct property reads. CodeView item\n// options may inherit prototype getters, so object spread can miss values.\nexport function getFileRendererOptions<LAnnotation>(\n options: FileOptions<LAnnotation> | undefined\n): FileRendererOptions {\n return {\n theme: options?.theme,\n disableLineNumbers: options?.disableLineNumbers,\n overflow: options?.overflow,\n themeType: options?.themeType,\n collapsed: options?.collapsed,\n disableFileHeader: options?.disableFileHeader,\n disableVirtualizationBuffers: options?.disableVirtualizationBuffers,\n stickyHeader: options?.stickyHeader,\n preferredHighlighter: options?.preferredHighlighter,\n useCSSClasses: options?.useCSSClasses,\n useTokenTransformer: options?.useTokenTransformer,\n tokenizeMaxLineLength: options?.tokenizeMaxLineLength,\n tokenizeMaxLength: options?.tokenizeMaxLength,\n unsafeCSS: options?.unsafeCSS,\n headerRenderMode:\n options?.renderCustomHeader != null ? 'custom' : 'default',\n };\n}\n"],"mappings":";AAKA,SAAgB,uBACd,SACqB;CACrB,OAAO;EACL,OAAO,SAAS;EAChB,oBAAoB,SAAS;EAC7B,UAAU,SAAS;EACnB,WAAW,SAAS;EACpB,WAAW,SAAS;EACpB,mBAAmB,SAAS;EAC5B,8BAA8B,SAAS;EACvC,cAAc,SAAS;EACvB,sBAAsB,SAAS;EAC/B,eAAe,SAAS;EACxB,qBAAqB,SAAS;EAC9B,uBAAuB,SAAS;EAChC,mBAAmB,SAAS;EAC5B,WAAW,SAAS;EACpB,kBACE,SAAS,sBAAsB,OAAO,WAAW;CACrD;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getFiletypeFromFileName.d.ts","names":["ExtensionFormatMap","SupportedLanguages","EXTENSION_TO_FILE_FORMAT","getFiletypeFromFileName","replaceCustomExtensions","getCustomExtensionsVersion","setCustomExtension","getCustomExtensionsMap"],"sources":["../../src/utils/getFiletypeFromFileName.d.ts"],"sourcesContent":["import type { ExtensionFormatMap, SupportedLanguages } from '../types';\nexport declare const EXTENSION_TO_FILE_FORMAT: ExtensionFormatMap;\nexport declare function getFiletypeFromFileName(fileName: string): SupportedLanguages;\nexport declare function replaceCustomExtensions(version: number, map: ExtensionFormatMap): boolean;\nexport declare function getCustomExtensionsVersion(): number;\nexport declare function setCustomExtension(key: string, lang: SupportedLanguages): boolean;\nexport declare function getCustomExtensionsMap(): ExtensionFormatMap;\n//# sourceMappingURL=getFiletypeFromFileName.d.ts.map"],"mappings":";;;cACqBE,0BAA0BF;iBACvBG,uBAAAA,oBAA2CF;AAD9CC,iBAEGE,uBAAAA,CAFuBJ,OAAAA,EAAAA,MAAkB,EAAA,GAAA,EAEKA,kBAFL,CAAA,EAAA,OAAA;AACzCG,iBAEAE,0BAAAA,CAAAA,CAF2CJ,EAAAA,MAAAA;AAC3CG,iBAEAE,kBAAAA,CAF8CN,GAAAA,EAAAA,MAAAA,EAAAA,IAAAA,EAERC,kBAF0B,CAAA,EAAA,OAAA;AAChEI,iBAEAE,sBAAAA,CAAAA,CAF0B,EAEAP,kBAFA"}
1
+ {"version":3,"file":"getFiletypeFromFileName.d.ts","names":[],"sources":["../../src/utils/getFiletypeFromFileName.ts"],"mappings":";;;cAOa,wBAAA,EAA0B,kBAwVtC;AAAA,iBAEe,uBAAA,CAAwB,QAAA,WAAmB,kBAAkB;AAAA,iBA4B7D,uBAAA,CACd,OAAA,UACA,GAAA,EAAK,kBAAkB;AAAA,iBAgBT,0BAAA;AAAA,iBAIA,kBAAA,CACd,GAAA,UACA,IAAA,EAAM,kBAAkB;AAAA,iBAgBV,sBAAA,IAA0B,kBAAkB"}
@@ -382,7 +382,7 @@ function setCustomExtension(key, lang) {
382
382
  function getCustomExtensionsMap() {
383
383
  return Object.fromEntries(CUSTOM_EXTENSION_TO_FILE_FORMAT);
384
384
  }
385
-
386
385
  //#endregion
387
386
  export { EXTENSION_TO_FILE_FORMAT, getCustomExtensionsMap, getCustomExtensionsVersion, getFiletypeFromFileName, replaceCustomExtensions, setCustomExtension };
387
+
388
388
  //# sourceMappingURL=getFiletypeFromFileName.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFiletypeFromFileName.js","names":["CUSTOM_EXTENSION_TO_FILE_FORMAT: Map<string, SupportedLanguages>","EXTENSION_TO_FILE_FORMAT: ExtensionFormatMap"],"sources":["../../src/utils/getFiletypeFromFileName.ts"],"sourcesContent":["import type { ExtensionFormatMap, SupportedLanguages } from '../types';\n\nconst CUSTOM_EXTENSION_TO_FILE_FORMAT: Map<string, SupportedLanguages> =\n new Map();\n\nlet customExtensionsVersion = 0;\n\nexport const EXTENSION_TO_FILE_FORMAT: ExtensionFormatMap = {\n '1c': '1c',\n abap: 'abap',\n as: 'actionscript-3',\n ada: 'ada',\n adb: 'ada',\n ads: 'ada',\n adoc: 'asciidoc',\n asciidoc: 'asciidoc',\n 'component.html': 'angular-html',\n 'component.ts': 'angular-ts',\n conf: 'nginx',\n htaccess: 'apache',\n cls: 'tex',\n trigger: 'apex',\n apl: 'apl',\n applescript: 'applescript',\n scpt: 'applescript',\n ara: 'ara',\n asm: 'asm',\n s: 'riscv',\n astro: 'astro',\n awk: 'awk',\n bal: 'ballerina',\n sh: 'zsh',\n bash: 'zsh',\n bat: 'cmd',\n cmd: 'cmd',\n be: 'berry',\n beancount: 'beancount',\n bib: 'bibtex',\n bicep: 'bicep',\n 'blade.php': 'blade',\n bsl: 'bsl',\n c: 'c',\n h: 'objective-cpp',\n cs: 'csharp',\n cpp: 'cpp',\n hpp: 'cpp',\n cc: 'cpp',\n cxx: 'cpp',\n hh: 'cpp',\n cdc: 'cdc',\n cairo: 'cairo',\n clar: 'clarity',\n clj: 'clojure',\n cljs: 'clojure',\n cljc: 'clojure',\n soy: 'soy',\n cmake: 'cmake',\n 'CMakeLists.txt': 'cmake',\n cob: 'cobol',\n cbl: 'cobol',\n cobol: 'cobol',\n CODEOWNERS: 'codeowners',\n ql: 'ql',\n coffee: 'coffeescript',\n lisp: 'lisp',\n cl: 'lisp',\n lsp: 'lisp',\n log: 'log',\n v: 'verilog',\n cql: 'cql',\n cr: 'crystal',\n css: 'css',\n csv: 'csv',\n cue: 'cue',\n cypher: 'cypher',\n cyp: 'cypher',\n d: 'd',\n dart: 'dart',\n dax: 'dax',\n desktop: 'desktop',\n diff: 'diff',\n patch: 'diff',\n Dockerfile: 'dockerfile',\n dockerfile: 'dockerfile',\n env: 'dotenv',\n dm: 'dream-maker',\n edge: 'edge',\n el: 'emacs-lisp',\n ex: 'elixir',\n exs: 'elixir',\n elm: 'elm',\n erb: 'erb',\n erl: 'erlang',\n hrl: 'erlang',\n f: 'fortran-fixed-form',\n for: 'fortran-fixed-form',\n fs: 'fsharp',\n fsi: 'fsharp',\n fsx: 'fsharp',\n f03: 'f03',\n f08: 'f08',\n f18: 'f18',\n f77: 'f77',\n f90: 'fortran-free-form',\n f95: 'fortran-free-form',\n fnl: 'fennel',\n fish: 'fish',\n ftl: 'ftl',\n tres: 'gdresource',\n res: 'gdresource',\n gd: 'gdscript',\n gdshader: 'gdshader',\n gs: 'genie',\n feature: 'gherkin',\n COMMIT_EDITMSG: 'git-commit',\n 'git-rebase-todo': 'git-rebase',\n gjs: 'glimmer-js',\n gleam: 'gleam',\n gts: 'glimmer-ts',\n glsl: 'glsl',\n vert: 'glsl',\n frag: 'glsl',\n shader: 'shaderlab',\n gp: 'gnuplot',\n plt: 'gnuplot',\n gnuplot: 'gnuplot',\n go: 'go',\n graphql: 'graphql',\n gql: 'graphql',\n groovy: 'groovy',\n gvy: 'groovy',\n hack: 'hack',\n haml: 'haml',\n hbs: 'handlebars',\n handlebars: 'handlebars',\n hs: 'haskell',\n lhs: 'haskell',\n hx: 'haxe',\n hcl: 'hcl',\n hjson: 'hjson',\n hlsl: 'hlsl',\n fx: 'hlsl',\n html: 'html',\n htm: 'html',\n http: 'http',\n rest: 'http',\n hxml: 'hxml',\n hy: 'hy',\n imba: 'imba',\n ini: 'ini',\n cfg: 'ini',\n jade: 'pug',\n pug: 'pug',\n java: 'java',\n js: 'javascript',\n mjs: 'javascript',\n cjs: 'javascript',\n jinja: 'jinja',\n jinja2: 'jinja',\n j2: 'jinja',\n jison: 'jison',\n jl: 'julia',\n json: 'json',\n json5: 'json5',\n jsonc: 'jsonc',\n jsonl: 'jsonl',\n jsonnet: 'jsonnet',\n libsonnet: 'jsonnet',\n jssm: 'jssm',\n jsx: 'jsx',\n kt: 'kotlin',\n kts: 'kts',\n kql: 'kusto',\n tex: 'tex',\n ltx: 'tex',\n lean: 'lean4',\n less: 'less',\n liquid: 'liquid',\n lit: 'lit',\n ll: 'llvm',\n logo: 'logo',\n lua: 'lua',\n luau: 'luau',\n Makefile: 'makefile',\n mk: 'makefile',\n makefile: 'makefile',\n md: 'markdown',\n markdown: 'markdown',\n marko: 'marko',\n m: 'wolfram',\n mat: 'matlab',\n mdc: 'mdc',\n mdx: 'mdx',\n wiki: 'wikitext',\n mediawiki: 'wikitext',\n mmd: 'mermaid',\n mermaid: 'mermaid',\n mips: 'mipsasm',\n mojo: 'mojo',\n '🔥': 'mojo',\n move: 'move',\n nar: 'narrat',\n nf: 'nextflow',\n nim: 'nim',\n nims: 'nim',\n nimble: 'nim',\n nix: 'nix',\n nu: 'nushell',\n mm: 'objective-cpp',\n ml: 'ocaml',\n mli: 'ocaml',\n mll: 'ocaml',\n mly: 'ocaml',\n pas: 'pascal',\n p: 'pascal',\n pl: 'prolog',\n pm: 'perl',\n t: 'perl',\n raku: 'raku',\n p6: 'raku',\n pl6: 'raku',\n php: 'php',\n phtml: 'php',\n pls: 'plsql',\n sql: 'sql',\n po: 'po',\n polar: 'polar',\n pcss: 'postcss',\n pot: 'pot',\n potx: 'potx',\n pq: 'powerquery',\n pqm: 'powerquery',\n ps1: 'powershell',\n psm1: 'powershell',\n psd1: 'powershell',\n prisma: 'prisma',\n pro: 'prolog',\n P: 'prolog',\n properties: 'properties',\n proto: 'protobuf',\n pp: 'puppet',\n purs: 'purescript',\n py: 'python',\n pyw: 'python',\n pyi: 'python',\n qml: 'qml',\n qmldir: 'qmldir',\n qss: 'qss',\n r: 'r',\n R: 'r',\n rkt: 'racket',\n rktl: 'racket',\n razor: 'razor',\n cshtml: 'razor',\n rb: 'ruby',\n rbw: 'ruby',\n reg: 'reg',\n regex: 'regexp',\n rel: 'rel',\n rs: 'rust',\n rst: 'rst',\n rake: 'ruby',\n gemspec: 'ruby',\n jbuilder: 'ruby',\n builder: 'ruby',\n rabl: 'ruby',\n arb: 'ruby',\n ru: 'ruby',\n podspec: 'ruby',\n Gemfile: 'ruby',\n Rakefile: 'ruby',\n Guardfile: 'ruby',\n Capfile: 'ruby',\n Berksfile: 'ruby',\n Brewfile: 'ruby',\n Vagrantfile: 'ruby',\n Thorfile: 'ruby',\n Appraisals: 'ruby',\n Dangerfile: 'ruby',\n sas: 'sas',\n sass: 'sass',\n scala: 'scala',\n sc: 'scala',\n scm: 'scheme',\n ss: 'scheme',\n sld: 'scheme',\n scss: 'scss',\n sdbl: 'sdbl',\n shadergraph: 'shader',\n st: 'smalltalk',\n sol: 'solidity',\n sparql: 'sparql',\n rq: 'sparql',\n spl: 'splunk',\n config: 'ssh-config',\n do: 'stata',\n ado: 'stata',\n dta: 'stata',\n styl: 'stylus',\n stylus: 'stylus',\n svelte: 'svelte',\n swift: 'swift',\n sv: 'system-verilog',\n svh: 'system-verilog',\n service: 'systemd',\n socket: 'systemd',\n device: 'systemd',\n timer: 'systemd',\n talon: 'talonscript',\n tasl: 'tasl',\n tcl: 'tcl',\n templ: 'templ',\n tf: 'tf',\n tfvars: 'tfvars',\n toml: 'toml',\n ts: 'typescript',\n tsp: 'typespec',\n tsv: 'tsv',\n tsx: 'tsx',\n ttl: 'turtle',\n twig: 'twig',\n typ: 'typst',\n vv: 'v',\n vala: 'vala',\n vapi: 'vala',\n vb: 'vb',\n vbs: 'vb',\n bas: 'vb',\n vh: 'verilog',\n vhd: 'vhdl',\n vhdl: 'vhdl',\n vim: 'vimscript',\n vue: 'vue',\n 'vine.ts': 'vue-vine',\n vy: 'vyper',\n wasm: 'wasm',\n wat: 'wasm',\n wy: '文言',\n wgsl: 'wgsl',\n wit: 'wit',\n wl: 'wolfram',\n nb: 'wolfram',\n xml: 'xml',\n xsl: 'xsl',\n xslt: 'xsl',\n yaml: 'yaml',\n yml: 'yml',\n zs: 'zenscript',\n zig: 'zig',\n zsh: 'zsh',\n sty: 'tex',\n};\n\nexport function getFiletypeFromFileName(fileName: string): SupportedLanguages {\n if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(fileName)) {\n return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(fileName) ?? 'text';\n }\n // Handle special files without extensions first\n if (EXTENSION_TO_FILE_FORMAT[fileName] != null) {\n return EXTENSION_TO_FILE_FORMAT[fileName];\n }\n\n // Try compound extensions first (e.g., .blade.php, .component.ts)\n const compoundMatch = fileName.match(/\\.([^/\\\\]+\\.[^/\\\\]+)$/);\n if (compoundMatch != null) {\n if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(compoundMatch[1])) {\n return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(compoundMatch[1]) ?? 'text';\n }\n if (EXTENSION_TO_FILE_FORMAT[compoundMatch[1]] != null) {\n return EXTENSION_TO_FILE_FORMAT[compoundMatch[1]] ?? 'text';\n }\n }\n\n // Fall back to simple extension\n const simpleMatch = fileName.match(/\\.([^.]+)$/)?.[1] ?? '';\n if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(simpleMatch)) {\n return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(simpleMatch) ?? 'text';\n }\n return EXTENSION_TO_FILE_FORMAT[simpleMatch] ?? 'text';\n}\n\nexport function replaceCustomExtensions(\n version: number,\n map: ExtensionFormatMap\n): boolean {\n if (version <= customExtensionsVersion) {\n return false;\n }\n CUSTOM_EXTENSION_TO_FILE_FORMAT.clear();\n for (const key in map) {\n const lang = map[key];\n if (lang != null) {\n CUSTOM_EXTENSION_TO_FILE_FORMAT.set(key, lang);\n }\n }\n customExtensionsVersion = version;\n return true;\n}\n\nexport function getCustomExtensionsVersion(): number {\n return customExtensionsVersion;\n}\n\nexport function setCustomExtension(\n key: string,\n lang: SupportedLanguages\n): boolean {\n const existing = CUSTOM_EXTENSION_TO_FILE_FORMAT.get(key);\n if (existing === lang) {\n return false;\n }\n if (existing != null) {\n console.warn(\n `setCustomExtension: overriding custom mapping for \"${key}\" from \"${existing}\" to \"${lang}\"`\n );\n }\n CUSTOM_EXTENSION_TO_FILE_FORMAT.set(key, lang);\n customExtensionsVersion++;\n return true;\n}\n\nexport function getCustomExtensionsMap(): ExtensionFormatMap {\n return Object.fromEntries(\n CUSTOM_EXTENSION_TO_FILE_FORMAT\n ) as ExtensionFormatMap;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"getFiletypeFromFileName.js","names":[],"sources":["../../src/utils/getFiletypeFromFileName.ts"],"sourcesContent":["import type { ExtensionFormatMap, SupportedLanguages } from '../types';\n\nconst CUSTOM_EXTENSION_TO_FILE_FORMAT: Map<string, SupportedLanguages> =\n new Map();\n\nlet customExtensionsVersion = 0;\n\nexport const EXTENSION_TO_FILE_FORMAT: ExtensionFormatMap = {\n '1c': '1c',\n abap: 'abap',\n as: 'actionscript-3',\n ada: 'ada',\n adb: 'ada',\n ads: 'ada',\n adoc: 'asciidoc',\n asciidoc: 'asciidoc',\n 'component.html': 'angular-html',\n 'component.ts': 'angular-ts',\n conf: 'nginx',\n htaccess: 'apache',\n cls: 'tex',\n trigger: 'apex',\n apl: 'apl',\n applescript: 'applescript',\n scpt: 'applescript',\n ara: 'ara',\n asm: 'asm',\n s: 'riscv',\n astro: 'astro',\n awk: 'awk',\n bal: 'ballerina',\n sh: 'zsh',\n bash: 'zsh',\n bat: 'cmd',\n cmd: 'cmd',\n be: 'berry',\n beancount: 'beancount',\n bib: 'bibtex',\n bicep: 'bicep',\n 'blade.php': 'blade',\n bsl: 'bsl',\n c: 'c',\n h: 'objective-cpp',\n cs: 'csharp',\n cpp: 'cpp',\n hpp: 'cpp',\n cc: 'cpp',\n cxx: 'cpp',\n hh: 'cpp',\n cdc: 'cdc',\n cairo: 'cairo',\n clar: 'clarity',\n clj: 'clojure',\n cljs: 'clojure',\n cljc: 'clojure',\n soy: 'soy',\n cmake: 'cmake',\n 'CMakeLists.txt': 'cmake',\n cob: 'cobol',\n cbl: 'cobol',\n cobol: 'cobol',\n CODEOWNERS: 'codeowners',\n ql: 'ql',\n coffee: 'coffeescript',\n lisp: 'lisp',\n cl: 'lisp',\n lsp: 'lisp',\n log: 'log',\n v: 'verilog',\n cql: 'cql',\n cr: 'crystal',\n css: 'css',\n csv: 'csv',\n cue: 'cue',\n cypher: 'cypher',\n cyp: 'cypher',\n d: 'd',\n dart: 'dart',\n dax: 'dax',\n desktop: 'desktop',\n diff: 'diff',\n patch: 'diff',\n Dockerfile: 'dockerfile',\n dockerfile: 'dockerfile',\n env: 'dotenv',\n dm: 'dream-maker',\n edge: 'edge',\n el: 'emacs-lisp',\n ex: 'elixir',\n exs: 'elixir',\n elm: 'elm',\n erb: 'erb',\n erl: 'erlang',\n hrl: 'erlang',\n f: 'fortran-fixed-form',\n for: 'fortran-fixed-form',\n fs: 'fsharp',\n fsi: 'fsharp',\n fsx: 'fsharp',\n f03: 'f03',\n f08: 'f08',\n f18: 'f18',\n f77: 'f77',\n f90: 'fortran-free-form',\n f95: 'fortran-free-form',\n fnl: 'fennel',\n fish: 'fish',\n ftl: 'ftl',\n tres: 'gdresource',\n res: 'gdresource',\n gd: 'gdscript',\n gdshader: 'gdshader',\n gs: 'genie',\n feature: 'gherkin',\n COMMIT_EDITMSG: 'git-commit',\n 'git-rebase-todo': 'git-rebase',\n gjs: 'glimmer-js',\n gleam: 'gleam',\n gts: 'glimmer-ts',\n glsl: 'glsl',\n vert: 'glsl',\n frag: 'glsl',\n shader: 'shaderlab',\n gp: 'gnuplot',\n plt: 'gnuplot',\n gnuplot: 'gnuplot',\n go: 'go',\n graphql: 'graphql',\n gql: 'graphql',\n groovy: 'groovy',\n gvy: 'groovy',\n hack: 'hack',\n haml: 'haml',\n hbs: 'handlebars',\n handlebars: 'handlebars',\n hs: 'haskell',\n lhs: 'haskell',\n hx: 'haxe',\n hcl: 'hcl',\n hjson: 'hjson',\n hlsl: 'hlsl',\n fx: 'hlsl',\n html: 'html',\n htm: 'html',\n http: 'http',\n rest: 'http',\n hxml: 'hxml',\n hy: 'hy',\n imba: 'imba',\n ini: 'ini',\n cfg: 'ini',\n jade: 'pug',\n pug: 'pug',\n java: 'java',\n js: 'javascript',\n mjs: 'javascript',\n cjs: 'javascript',\n jinja: 'jinja',\n jinja2: 'jinja',\n j2: 'jinja',\n jison: 'jison',\n jl: 'julia',\n json: 'json',\n json5: 'json5',\n jsonc: 'jsonc',\n jsonl: 'jsonl',\n jsonnet: 'jsonnet',\n libsonnet: 'jsonnet',\n jssm: 'jssm',\n jsx: 'jsx',\n kt: 'kotlin',\n kts: 'kts',\n kql: 'kusto',\n tex: 'tex',\n ltx: 'tex',\n lean: 'lean4',\n less: 'less',\n liquid: 'liquid',\n lit: 'lit',\n ll: 'llvm',\n logo: 'logo',\n lua: 'lua',\n luau: 'luau',\n Makefile: 'makefile',\n mk: 'makefile',\n makefile: 'makefile',\n md: 'markdown',\n markdown: 'markdown',\n marko: 'marko',\n m: 'wolfram',\n mat: 'matlab',\n mdc: 'mdc',\n mdx: 'mdx',\n wiki: 'wikitext',\n mediawiki: 'wikitext',\n mmd: 'mermaid',\n mermaid: 'mermaid',\n mips: 'mipsasm',\n mojo: 'mojo',\n '🔥': 'mojo',\n move: 'move',\n nar: 'narrat',\n nf: 'nextflow',\n nim: 'nim',\n nims: 'nim',\n nimble: 'nim',\n nix: 'nix',\n nu: 'nushell',\n mm: 'objective-cpp',\n ml: 'ocaml',\n mli: 'ocaml',\n mll: 'ocaml',\n mly: 'ocaml',\n pas: 'pascal',\n p: 'pascal',\n pl: 'prolog',\n pm: 'perl',\n t: 'perl',\n raku: 'raku',\n p6: 'raku',\n pl6: 'raku',\n php: 'php',\n phtml: 'php',\n pls: 'plsql',\n sql: 'sql',\n po: 'po',\n polar: 'polar',\n pcss: 'postcss',\n pot: 'pot',\n potx: 'potx',\n pq: 'powerquery',\n pqm: 'powerquery',\n ps1: 'powershell',\n psm1: 'powershell',\n psd1: 'powershell',\n prisma: 'prisma',\n pro: 'prolog',\n P: 'prolog',\n properties: 'properties',\n proto: 'protobuf',\n pp: 'puppet',\n purs: 'purescript',\n py: 'python',\n pyw: 'python',\n pyi: 'python',\n qml: 'qml',\n qmldir: 'qmldir',\n qss: 'qss',\n r: 'r',\n R: 'r',\n rkt: 'racket',\n rktl: 'racket',\n razor: 'razor',\n cshtml: 'razor',\n rb: 'ruby',\n rbw: 'ruby',\n reg: 'reg',\n regex: 'regexp',\n rel: 'rel',\n rs: 'rust',\n rst: 'rst',\n rake: 'ruby',\n gemspec: 'ruby',\n jbuilder: 'ruby',\n builder: 'ruby',\n rabl: 'ruby',\n arb: 'ruby',\n ru: 'ruby',\n podspec: 'ruby',\n Gemfile: 'ruby',\n Rakefile: 'ruby',\n Guardfile: 'ruby',\n Capfile: 'ruby',\n Berksfile: 'ruby',\n Brewfile: 'ruby',\n Vagrantfile: 'ruby',\n Thorfile: 'ruby',\n Appraisals: 'ruby',\n Dangerfile: 'ruby',\n sas: 'sas',\n sass: 'sass',\n scala: 'scala',\n sc: 'scala',\n scm: 'scheme',\n ss: 'scheme',\n sld: 'scheme',\n scss: 'scss',\n sdbl: 'sdbl',\n shadergraph: 'shader',\n st: 'smalltalk',\n sol: 'solidity',\n sparql: 'sparql',\n rq: 'sparql',\n spl: 'splunk',\n config: 'ssh-config',\n do: 'stata',\n ado: 'stata',\n dta: 'stata',\n styl: 'stylus',\n stylus: 'stylus',\n svelte: 'svelte',\n swift: 'swift',\n sv: 'system-verilog',\n svh: 'system-verilog',\n service: 'systemd',\n socket: 'systemd',\n device: 'systemd',\n timer: 'systemd',\n talon: 'talonscript',\n tasl: 'tasl',\n tcl: 'tcl',\n templ: 'templ',\n tf: 'tf',\n tfvars: 'tfvars',\n toml: 'toml',\n ts: 'typescript',\n tsp: 'typespec',\n tsv: 'tsv',\n tsx: 'tsx',\n ttl: 'turtle',\n twig: 'twig',\n typ: 'typst',\n vv: 'v',\n vala: 'vala',\n vapi: 'vala',\n vb: 'vb',\n vbs: 'vb',\n bas: 'vb',\n vh: 'verilog',\n vhd: 'vhdl',\n vhdl: 'vhdl',\n vim: 'vimscript',\n vue: 'vue',\n 'vine.ts': 'vue-vine',\n vy: 'vyper',\n wasm: 'wasm',\n wat: 'wasm',\n wy: '文言',\n wgsl: 'wgsl',\n wit: 'wit',\n wl: 'wolfram',\n nb: 'wolfram',\n xml: 'xml',\n xsl: 'xsl',\n xslt: 'xsl',\n yaml: 'yaml',\n yml: 'yml',\n zs: 'zenscript',\n zig: 'zig',\n zsh: 'zsh',\n sty: 'tex',\n};\n\nexport function getFiletypeFromFileName(fileName: string): SupportedLanguages {\n if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(fileName)) {\n return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(fileName) ?? 'text';\n }\n // Handle special files without extensions first\n if (EXTENSION_TO_FILE_FORMAT[fileName] != null) {\n return EXTENSION_TO_FILE_FORMAT[fileName];\n }\n\n // Try compound extensions first (e.g., .blade.php, .component.ts)\n const compoundMatch = fileName.match(/\\.([^/\\\\]+\\.[^/\\\\]+)$/);\n if (compoundMatch != null) {\n if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(compoundMatch[1])) {\n return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(compoundMatch[1]) ?? 'text';\n }\n if (EXTENSION_TO_FILE_FORMAT[compoundMatch[1]] != null) {\n return EXTENSION_TO_FILE_FORMAT[compoundMatch[1]] ?? 'text';\n }\n }\n\n // Fall back to simple extension\n const simpleMatch = fileName.match(/\\.([^.]+)$/)?.[1] ?? '';\n if (CUSTOM_EXTENSION_TO_FILE_FORMAT.has(simpleMatch)) {\n return CUSTOM_EXTENSION_TO_FILE_FORMAT.get(simpleMatch) ?? 'text';\n }\n return EXTENSION_TO_FILE_FORMAT[simpleMatch] ?? 'text';\n}\n\nexport function replaceCustomExtensions(\n version: number,\n map: ExtensionFormatMap\n): boolean {\n if (version <= customExtensionsVersion) {\n return false;\n }\n CUSTOM_EXTENSION_TO_FILE_FORMAT.clear();\n for (const key in map) {\n const lang = map[key];\n if (lang != null) {\n CUSTOM_EXTENSION_TO_FILE_FORMAT.set(key, lang);\n }\n }\n customExtensionsVersion = version;\n return true;\n}\n\nexport function getCustomExtensionsVersion(): number {\n return customExtensionsVersion;\n}\n\nexport function setCustomExtension(\n key: string,\n lang: SupportedLanguages\n): boolean {\n const existing = CUSTOM_EXTENSION_TO_FILE_FORMAT.get(key);\n if (existing === lang) {\n return false;\n }\n if (existing != null) {\n console.warn(\n `setCustomExtension: overriding custom mapping for \"${key}\" from \"${existing}\" to \"${lang}\"`\n );\n }\n CUSTOM_EXTENSION_TO_FILE_FORMAT.set(key, lang);\n customExtensionsVersion++;\n return true;\n}\n\nexport function getCustomExtensionsMap(): ExtensionFormatMap {\n return Object.fromEntries(\n CUSTOM_EXTENSION_TO_FILE_FORMAT\n ) as ExtensionFormatMap;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getHighlighterOptions.d.ts","names":["DiffsThemeNames","HighlighterTypes","SupportedLanguages","ThemesType","HighlighterOptionsShape","GetHighlighterOptionsReturn","getHighlighterOptions","theme","preferredHighlighter"],"sources":["../../src/utils/getHighlighterOptions.d.ts"],"sourcesContent":["import type { DiffsThemeNames, HighlighterTypes, SupportedLanguages, ThemesType } from '../types';\ninterface HighlighterOptionsShape {\n theme?: DiffsThemeNames | ThemesType;\n preferredHighlighter?: HighlighterTypes;\n}\ninterface GetHighlighterOptionsReturn {\n langs: SupportedLanguages[];\n themes: DiffsThemeNames[];\n preferredHighlighter: HighlighterTypes;\n}\nexport declare function getHighlighterOptions(lang: SupportedLanguages | undefined, { theme, preferredHighlighter }: HighlighterOptionsShape): GetHighlighterOptionsReturn;\nexport {};\n//# sourceMappingURL=getHighlighterOptions.d.ts.map"],"mappings":";;;UACUI,uBAAAA;UACEJ,kBAAkBG;EADpBC,oBAAAA,CAAAA,EAEiBH,gBAFM;;UAIvBI,2BAAAA,CAHoBF;EACHF,KAAAA,EAGhBC,kBAHgBD,EAAAA;EAAgB,MAAA,EAI/BD,eAJ+B,EAAA;EAEjCK,oBAAAA,EAGgBJ,gBAHW;;AAEzBD,iBAGYM,qBAAAA,CAHZN,IAAAA,EAGwCE,kBAHxCF,GAAAA,SAAAA,EAAAA;EAAAA,KAAAA;EAAAA;AAAAA,CAAAA,EAGyGI,uBAHzGJ,CAAAA,EAGmIK,2BAHnIL"}
1
+ {"version":3,"file":"getHighlighterOptions.d.ts","names":[],"sources":["../../src/utils/getHighlighterOptions.ts"],"mappings":";;;UAQU,uBAAA;EACR,KAAA,GAAQ,eAAA,GAAkB,UAAA;EAC1B,oBAAA,GAAuB,gBAAA;AAAA;AAAA,UAGf,2BAAA;EACR,KAAA,EAAO,kBAAA;EACP,MAAA,EAAQ,eAAA;EACR,oBAAA,EAAsB,gBAAA;AAAA;AAAA,iBAGR,qBAAA,CACd,IAAA,EAAM,kBAAA;EACJ,KAAA;EAAO;AAAA,GAAqC,uBAAA,GAC7C,2BAAA"}
@@ -1,5 +1,4 @@
1
1
  import { getThemes } from "./getThemes.js";
2
-
3
2
  //#region src/utils/getHighlighterOptions.ts
4
3
  function getHighlighterOptions(lang, { theme, preferredHighlighter = "shiki-js" }) {
5
4
  return {
@@ -8,7 +7,7 @@ function getHighlighterOptions(lang, { theme, preferredHighlighter = "shiki-js"
8
7
  preferredHighlighter
9
8
  };
10
9
  }
11
-
12
10
  //#endregion
13
11
  export { getHighlighterOptions };
12
+
14
13
  //# sourceMappingURL=getHighlighterOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getHighlighterOptions.js","names":[],"sources":["../../src/utils/getHighlighterOptions.ts"],"sourcesContent":["import type {\n DiffsThemeNames,\n HighlighterTypes,\n SupportedLanguages,\n ThemesType,\n} from '../types';\nimport { getThemes } from './getThemes';\n\ninterface HighlighterOptionsShape {\n theme?: DiffsThemeNames | ThemesType;\n preferredHighlighter?: HighlighterTypes;\n}\n\ninterface GetHighlighterOptionsReturn {\n langs: SupportedLanguages[];\n themes: DiffsThemeNames[];\n preferredHighlighter: HighlighterTypes;\n}\n\nexport function getHighlighterOptions(\n lang: SupportedLanguages | undefined,\n { theme, preferredHighlighter = 'shiki-js' }: HighlighterOptionsShape\n): GetHighlighterOptionsReturn {\n return {\n langs: [lang ?? 'text'],\n themes: getThemes(theme),\n preferredHighlighter,\n };\n}\n"],"mappings":";;;AAmBA,SAAgB,sBACd,MACA,EAAE,OAAO,uBAAuB,cACH;AAC7B,QAAO;EACL,OAAO,CAAC,QAAQ,OAAO;EACvB,QAAQ,UAAU,MAAM;EACxB;EACD"}
1
+ {"version":3,"file":"getHighlighterOptions.js","names":[],"sources":["../../src/utils/getHighlighterOptions.ts"],"sourcesContent":["import type {\n DiffsThemeNames,\n HighlighterTypes,\n SupportedLanguages,\n ThemesType,\n} from '../types';\nimport { getThemes } from './getThemes';\n\ninterface HighlighterOptionsShape {\n theme?: DiffsThemeNames | ThemesType;\n preferredHighlighter?: HighlighterTypes;\n}\n\ninterface GetHighlighterOptionsReturn {\n langs: SupportedLanguages[];\n themes: DiffsThemeNames[];\n preferredHighlighter: HighlighterTypes;\n}\n\nexport function getHighlighterOptions(\n lang: SupportedLanguages | undefined,\n { theme, preferredHighlighter = 'shiki-js' }: HighlighterOptionsShape\n): GetHighlighterOptionsReturn {\n return {\n langs: [lang ?? 'text'],\n themes: getThemes(theme),\n preferredHighlighter,\n };\n}\n"],"mappings":";;AAmBA,SAAgB,sBACd,MACA,EAAE,OAAO,uBAAuB,cACH;CAC7B,OAAO;EACL,OAAO,CAAC,QAAQ,MAAM;EACtB,QAAQ,UAAU,KAAK;EACvB;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getHighlighterThemeStyles.d.ts","names":["DiffsHighlighter","DiffsThemeNames","ThemesType","GetHighlighterThemeStylesProps","getHighlighterThemeStyles","theme","highlighter","prefix"],"sources":["../../src/utils/getHighlighterThemeStyles.d.ts"],"sourcesContent":["import type { DiffsHighlighter, DiffsThemeNames, ThemesType } from '../types';\ninterface GetHighlighterThemeStylesProps {\n theme?: DiffsThemeNames | ThemesType;\n highlighter: DiffsHighlighter;\n prefix?: string;\n}\nexport declare function getHighlighterThemeStyles({ theme, highlighter, prefix }: GetHighlighterThemeStylesProps): string;\nexport {};\n//# sourceMappingURL=getHighlighterThemeStyles.d.ts.map"],"mappings":";;;UACUG,8BAAAA;UACEF,kBAAkBC;EADpBC,WAAAA,EAEOH,gBAFPG;EACEF,MAAAA,CAAAA,EAAAA,MAAAA;;AACKD,iBAGOI,yBAAAA,CAHPJ;EAAAA,KAAAA;EAAAA,WAAAA;EAAAA;AAAAA,CAAAA,EAGiEG,8BAHjEH,CAAAA,EAAAA,MAAAA"}
1
+ {"version":3,"file":"getHighlighterThemeStyles.d.ts","names":[],"sources":["../../src/utils/getHighlighterThemeStyles.ts"],"mappings":";;;UAWU,8BAAA;EACR,KAAA,GAAQ,eAAA,GAAkB,UAAA;EAC1B,WAAA,EAAa,gBAAA;EACb,MAAA;AAAA;AAAA,iBAac,yBAAA;EACd,KAAA;EACA,WAAA;EACA;AAAA,GACC,8BAAA"}