@thxgg/steward 0.1.24 → 0.1.26

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 (203) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{Bc2V3wPK.js → B2ow85x_.js} +2 -2
  3. package/.output/public/_nuxt/{U78rMDmo.js → B6CbIr08.js} +1 -1
  4. package/.output/public/_nuxt/{BknRrWsw.js → BLQAF8wp.js} +1 -1
  5. package/.output/public/_nuxt/BXuwtOqb.js +1 -0
  6. package/.output/public/_nuxt/CAMiEhze.js +1 -0
  7. package/.output/public/_nuxt/{BRQ9Cxaw.js → CIBCqZF5.js} +1 -1
  8. package/.output/public/_nuxt/Ce0-nlm9.js +1 -0
  9. package/.output/public/_nuxt/{T11EuTtn.js → ConzneVY.js} +1 -1
  10. package/.output/public/_nuxt/D0qxz_Pn.js +1310 -0
  11. package/.output/public/_nuxt/D3PDtLSF.js +3 -0
  12. package/.output/public/_nuxt/{C73kduX-.js → DdKC0UAK.js} +1 -1
  13. package/.output/public/_nuxt/Detail.BGdvrJGh.css +1 -0
  14. package/.output/public/_nuxt/{C53_p0K1.js → Dkh9ic1y.js} +1 -1
  15. package/.output/public/_nuxt/LEjJTR7-.js +1 -0
  16. package/.output/public/_nuxt/{BTmXUZ_s.js → UqZfMfrZ.js} +1 -1
  17. package/.output/public/_nuxt/builds/latest.json +1 -1
  18. package/.output/public/_nuxt/builds/meta/25438e34-19a2-421d-aede-53fd18f1ccd4.json +1 -0
  19. package/.output/public/_nuxt/dckrK0oj.js +1 -0
  20. package/.output/public/_nuxt/entry.DT4p6_uW.css +1 -0
  21. package/.output/public/_nuxt/pIWeVmPw.js +1 -0
  22. package/.output/public/_nuxt/xrHaPo1U.js +60 -0
  23. package/.output/server/chunks/_/prd-service.mjs.map +1 -1
  24. package/.output/server/chunks/build/{Detail-DMMUwTWr.mjs → Detail-rpcemNXe.mjs} +674 -481
  25. package/.output/server/chunks/build/Detail-rpcemNXe.mjs.map +1 -0
  26. package/.output/server/chunks/build/DiffViewer-styles.B1FB5NJj.mjs +8 -0
  27. package/.output/server/chunks/build/DiffViewer-styles.B1FB5NJj.mjs.map +1 -0
  28. package/.output/server/chunks/build/{_prd_-ByugK4Yi.mjs → _prd_-CeibvZOH.mjs} +67 -233
  29. package/.output/server/chunks/build/_prd_-CeibvZOH.mjs.map +1 -0
  30. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  31. package/.output/server/chunks/build/{default-BKKgG7HJ.mjs → default-iq8SaDDN.mjs} +3 -3
  32. package/.output/server/chunks/build/default-iq8SaDDN.mjs.map +1 -0
  33. package/.output/server/chunks/build/{error-404-Bf6kdO80.mjs → error-404-DFale9A5.mjs} +2 -2
  34. package/.output/server/chunks/build/error-404-DFale9A5.mjs.map +1 -0
  35. package/.output/server/chunks/build/{index-DE1tjHAd.mjs → index-Po00RvHm.mjs} +2 -2
  36. package/.output/server/chunks/build/index-Po00RvHm.mjs.map +1 -0
  37. package/.output/server/chunks/build/{nuxt-link-SvT1nf8Z.mjs → nuxt-link-B4oWFn7n.mjs} +2 -2
  38. package/.output/server/chunks/build/nuxt-link-B4oWFn7n.mjs.map +1 -0
  39. package/.output/server/chunks/build/{repo-graph-DzT45gSB.mjs → repo-graph-BQVFpA-w.mjs} +5 -4
  40. package/.output/server/chunks/build/repo-graph-BQVFpA-w.mjs.map +1 -0
  41. package/.output/server/chunks/build/server.mjs +7 -7
  42. package/.output/server/chunks/build/styles.mjs +4 -5
  43. package/.output/server/chunks/build/{usePrd-hXZOmvAv.mjs → usePrd-Bb6jlnNZ.mjs} +2 -2
  44. package/.output/server/chunks/build/usePrd-Bb6jlnNZ.mjs.map +1 -0
  45. package/.output/server/chunks/nitro/nitro.mjs +983 -678
  46. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  47. package/.output/server/node_modules/@pierre/diffs/dist/components/File.js +324 -0
  48. package/.output/server/node_modules/@pierre/diffs/dist/components/FileDiff.js +395 -0
  49. package/.output/server/node_modules/@pierre/diffs/dist/components/FileStream.js +161 -0
  50. package/.output/server/node_modules/@pierre/diffs/dist/components/web-components.js +25 -0
  51. package/.output/server/node_modules/@pierre/diffs/dist/constants.js +23 -0
  52. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/areLanguagesAttached.js +11 -0
  53. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/attachResolvedLanguages.js +20 -0
  54. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/cleanUpResolvedLanguages.js +11 -0
  55. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/constants.js +8 -0
  56. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/getResolvedLanguages.js +16 -0
  57. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/getResolvedOrResolveLanguage.js +11 -0
  58. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/hasResolvedLanguages.js +11 -0
  59. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/resolveLanguage.js +30 -0
  60. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/resolveLanguages.js +25 -0
  61. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.js +71 -0
  62. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/areThemesAttached.js +12 -0
  63. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/attachResolvedThemes.js +24 -0
  64. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/cleanUpResolvedThemes.js +11 -0
  65. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/constants.js +9 -0
  66. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/getResolvedOrResolveTheme.js +11 -0
  67. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/getResolvedThemes.js +16 -0
  68. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/hasResolvedThemes.js +11 -0
  69. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/registerCustomCSSVariableTheme.js +18 -0
  70. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/registerCustomTheme.js +14 -0
  71. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/resolveTheme.js +35 -0
  72. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/resolveThemes.js +21 -0
  73. package/.output/server/node_modules/@pierre/diffs/dist/index.js +84 -0
  74. package/.output/server/node_modules/@pierre/diffs/dist/managers/LineSelectionManager.js +282 -0
  75. package/.output/server/node_modules/@pierre/diffs/dist/managers/MouseEventManager.js +244 -0
  76. package/.output/server/node_modules/@pierre/diffs/dist/managers/ResizeManager.js +132 -0
  77. package/.output/server/node_modules/@pierre/diffs/dist/managers/ScrollSyncManager.js +62 -0
  78. package/.output/server/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js +32 -0
  79. package/.output/server/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +655 -0
  80. package/.output/server/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +243 -0
  81. package/.output/server/node_modules/@pierre/diffs/dist/shiki-stream/stream.js +32 -0
  82. package/.output/server/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.js +71 -0
  83. package/.output/server/node_modules/@pierre/diffs/dist/sprite.js +55 -0
  84. package/.output/server/node_modules/@pierre/diffs/dist/style.js +6 -0
  85. package/.output/server/node_modules/@pierre/diffs/dist/themes/pierre-dark.js +1328 -0
  86. package/.output/server/node_modules/@pierre/diffs/dist/themes/pierre-light.js +1328 -0
  87. package/.output/server/node_modules/@pierre/diffs/dist/utils/areFilesEqual.js +8 -0
  88. package/.output/server/node_modules/@pierre/diffs/dist/utils/areObjectsEqual.js +18 -0
  89. package/.output/server/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.js +12 -0
  90. package/.output/server/node_modules/@pierre/diffs/dist/utils/areSelectionsEqual.js +8 -0
  91. package/.output/server/node_modules/@pierre/diffs/dist/utils/areThemesEqual.js +9 -0
  92. package/.output/server/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js +8 -0
  93. package/.output/server/node_modules/@pierre/diffs/dist/utils/createAnnotationElement.js +21 -0
  94. package/.output/server/node_modules/@pierre/diffs/dist/utils/createAnnotationWrapperNode.js +12 -0
  95. package/.output/server/node_modules/@pierre/diffs/dist/utils/createCodeNode.js +12 -0
  96. package/.output/server/node_modules/@pierre/diffs/dist/utils/createEmptyRowBuffer.js +16 -0
  97. package/.output/server/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js +84 -0
  98. package/.output/server/node_modules/@pierre/diffs/dist/utils/createHoverContentNode.js +15 -0
  99. package/.output/server/node_modules/@pierre/diffs/dist/utils/createNoNewlineElement.js +24 -0
  100. package/.output/server/node_modules/@pierre/diffs/dist/utils/createPreElement.js +28 -0
  101. package/.output/server/node_modules/@pierre/diffs/dist/utils/createRowNodes.js +20 -0
  102. package/.output/server/node_modules/@pierre/diffs/dist/utils/createSeparator.js +69 -0
  103. package/.output/server/node_modules/@pierre/diffs/dist/utils/createSpanNodeFromToken.js +13 -0
  104. package/.output/server/node_modules/@pierre/diffs/dist/utils/createStyleElement.js +19 -0
  105. package/.output/server/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js +56 -0
  106. package/.output/server/node_modules/@pierre/diffs/dist/utils/createUnsafeCSSStyleNode.js +12 -0
  107. package/.output/server/node_modules/@pierre/diffs/dist/utils/cssWrappers.js +21 -0
  108. package/.output/server/node_modules/@pierre/diffs/dist/utils/diffAcceptRejectHunk.js +82 -0
  109. package/.output/server/node_modules/@pierre/diffs/dist/utils/formatCSSVariablePrefix.js +8 -0
  110. package/.output/server/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js +343 -0
  111. package/.output/server/node_modules/@pierre/diffs/dist/utils/getHighlighterOptions.js +13 -0
  112. package/.output/server/node_modules/@pierre/diffs/dist/utils/getHighlighterThemeStyles.js +40 -0
  113. package/.output/server/node_modules/@pierre/diffs/dist/utils/getHunkSeparatorSlotName.js +8 -0
  114. package/.output/server/node_modules/@pierre/diffs/dist/utils/getIconForType.js +15 -0
  115. package/.output/server/node_modules/@pierre/diffs/dist/utils/getLineAnnotationName.js +8 -0
  116. package/.output/server/node_modules/@pierre/diffs/dist/utils/getLineEndingType.js +11 -0
  117. package/.output/server/node_modules/@pierre/diffs/dist/utils/getLineNodes.js +15 -0
  118. package/.output/server/node_modules/@pierre/diffs/dist/utils/getSingularPatch.js +20 -0
  119. package/.output/server/node_modules/@pierre/diffs/dist/utils/getThemes.js +16 -0
  120. package/.output/server/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js +10 -0
  121. package/.output/server/node_modules/@pierre/diffs/dist/utils/hast_utils.js +42 -0
  122. package/.output/server/node_modules/@pierre/diffs/dist/utils/isWorkerContext.js +8 -0
  123. package/.output/server/node_modules/@pierre/diffs/dist/utils/parseDiffDecorations.js +34 -0
  124. package/.output/server/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js +23 -0
  125. package/.output/server/node_modules/@pierre/diffs/dist/utils/parseLineType.js +17 -0
  126. package/.output/server/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +211 -0
  127. package/.output/server/node_modules/@pierre/diffs/dist/utils/prerenderHTMLIfNecessary.js +10 -0
  128. package/.output/server/node_modules/@pierre/diffs/dist/utils/processLine.js +42 -0
  129. package/.output/server/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js +339 -0
  130. package/.output/server/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js +52 -0
  131. package/.output/server/node_modules/@pierre/diffs/dist/utils/setLanguageOverride.js +11 -0
  132. package/.output/server/node_modules/@pierre/diffs/dist/utils/setWrapperNodeProps.js +29 -0
  133. package/.output/server/node_modules/@pierre/diffs/package.json +89 -0
  134. package/.output/server/node_modules/@shikijs/transformers/dist/index.mjs +831 -0
  135. package/.output/server/node_modules/@shikijs/transformers/package.json +37 -0
  136. package/.output/server/node_modules/diff/libesm/convert/dmp.js +21 -0
  137. package/.output/server/node_modules/diff/libesm/convert/xml.js +31 -0
  138. package/.output/server/node_modules/diff/libesm/diff/array.js +16 -0
  139. package/.output/server/node_modules/diff/libesm/diff/base.js +253 -0
  140. package/.output/server/node_modules/diff/libesm/diff/character.js +7 -0
  141. package/.output/server/node_modules/diff/libesm/diff/css.js +10 -0
  142. package/.output/server/node_modules/diff/libesm/diff/json.js +78 -0
  143. package/.output/server/node_modules/diff/libesm/diff/line.js +65 -0
  144. package/.output/server/node_modules/diff/libesm/diff/sentence.js +43 -0
  145. package/.output/server/node_modules/diff/libesm/diff/word.js +296 -0
  146. package/.output/server/node_modules/diff/libesm/index.js +30 -0
  147. package/.output/server/node_modules/diff/libesm/package.json +1 -0
  148. package/.output/server/node_modules/diff/libesm/patch/apply.js +257 -0
  149. package/.output/server/node_modules/diff/libesm/patch/create.js +228 -0
  150. package/.output/server/node_modules/diff/libesm/patch/line-endings.js +44 -0
  151. package/.output/server/node_modules/diff/libesm/patch/parse.js +147 -0
  152. package/.output/server/node_modules/diff/libesm/patch/reverse.js +23 -0
  153. package/.output/server/node_modules/diff/libesm/util/distance-iterator.js +37 -0
  154. package/.output/server/node_modules/diff/libesm/util/params.js +14 -0
  155. package/.output/server/node_modules/diff/libesm/util/string.js +128 -0
  156. package/.output/server/node_modules/diff/package.json +132 -0
  157. package/.output/server/package.json +4 -1
  158. package/README.md +41 -0
  159. package/bin/prd +1 -1
  160. package/dist/host/src/index.js +10 -0
  161. package/dist/host/src/sync.js +201 -0
  162. package/dist/server/utils/db.js +64 -0
  163. package/dist/server/utils/git.js +8 -6
  164. package/dist/server/utils/prd-state.js +24 -2
  165. package/dist/server/utils/repos.js +12 -2
  166. package/dist/server/utils/state-migration.js +4 -3
  167. package/dist/server/utils/sync-apply.js +380 -0
  168. package/dist/server/utils/sync-export.js +183 -0
  169. package/dist/server/utils/sync-identity.js +231 -0
  170. package/dist/server/utils/sync-inspect.js +103 -0
  171. package/dist/server/utils/sync-merge.js +579 -0
  172. package/dist/server/utils/sync-schema.js +100 -0
  173. package/package.json +2 -1
  174. package/.output/public/_nuxt/6tINjQEd.js +0 -141
  175. package/.output/public/_nuxt/B2mIQf5X.js +0 -3
  176. package/.output/public/_nuxt/C0BBSDJ7.js +0 -1
  177. package/.output/public/_nuxt/CN46Bgts.js +0 -1
  178. package/.output/public/_nuxt/CTJgb0zb.js +0 -1
  179. package/.output/public/_nuxt/Cce168lk.js +0 -30
  180. package/.output/public/_nuxt/CyVSeLw5.js +0 -1
  181. package/.output/public/_nuxt/Detail.CYc96mGf.css +0 -1
  182. package/.output/public/_nuxt/ZNypZshD.js +0 -13
  183. package/.output/public/_nuxt/builds/meta/8c342d49-fe70-4f67-a987-821c16f86125.json +0 -1
  184. package/.output/public/_nuxt/entry.Bw0CE6Iz.css +0 -1
  185. package/.output/public/_nuxt/pYJYAY-W.js +0 -60
  186. package/.output/server/chunks/build/Detail-DMMUwTWr.mjs.map +0 -1
  187. package/.output/server/chunks/build/DiffViewer-styles-1.mjs-d2dQvARr.mjs +0 -4
  188. package/.output/server/chunks/build/DiffViewer-styles-1.mjs-d2dQvARr.mjs.map +0 -1
  189. package/.output/server/chunks/build/DiffViewer-styles-2.mjs-X6QKNjM0.mjs +0 -4
  190. package/.output/server/chunks/build/DiffViewer-styles-2.mjs-X6QKNjM0.mjs.map +0 -1
  191. package/.output/server/chunks/build/DiffViewer-styles.0AbHFl6N.mjs +0 -8
  192. package/.output/server/chunks/build/DiffViewer-styles.0AbHFl6N.mjs.map +0 -1
  193. package/.output/server/chunks/build/DiffViewer-styles.BDwAqkTk.mjs +0 -8
  194. package/.output/server/chunks/build/DiffViewer-styles.BDwAqkTk.mjs.map +0 -1
  195. package/.output/server/chunks/build/DiffViewer-styles.DRJh5Ui4.mjs +0 -10
  196. package/.output/server/chunks/build/DiffViewer-styles.DRJh5Ui4.mjs.map +0 -1
  197. package/.output/server/chunks/build/_prd_-ByugK4Yi.mjs.map +0 -1
  198. package/.output/server/chunks/build/default-BKKgG7HJ.mjs.map +0 -1
  199. package/.output/server/chunks/build/error-404-Bf6kdO80.mjs.map +0 -1
  200. package/.output/server/chunks/build/index-DE1tjHAd.mjs.map +0 -1
  201. package/.output/server/chunks/build/nuxt-link-SvT1nf8Z.mjs.map +0 -1
  202. package/.output/server/chunks/build/repo-graph-DzT45gSB.mjs.map +0 -1
  203. package/.output/server/chunks/build/usePrd-hXZOmvAv.mjs.map +0 -1
@@ -0,0 +1,243 @@
1
+ import { DEFAULT_THEMES } from "../constants.js";
2
+ import { areLanguagesAttached } from "../highlighter/languages/areLanguagesAttached.js";
3
+ import { getHighlighterIfLoaded, getSharedHighlighter } from "../highlighter/shared_highlighter.js";
4
+ import { getThemes } from "../utils/getThemes.js";
5
+ import { areThemesAttached } from "../highlighter/themes/areThemesAttached.js";
6
+ import { hasResolvedThemes } from "../highlighter/themes/hasResolvedThemes.js";
7
+ import { areThemesEqual } from "../utils/areThemesEqual.js";
8
+ import { createHastElement } from "../utils/hast_utils.js";
9
+ import { createAnnotationElement } from "../utils/createAnnotationElement.js";
10
+ import { createFileHeaderElement } from "../utils/createFileHeaderElement.js";
11
+ import { createPreElement } from "../utils/createPreElement.js";
12
+ import { getFiletypeFromFileName } from "../utils/getFiletypeFromFileName.js";
13
+ import { getHighlighterOptions } from "../utils/getHighlighterOptions.js";
14
+ import { getLineAnnotationName } from "../utils/getLineAnnotationName.js";
15
+ import { renderFileWithHighlighter } from "../utils/renderFileWithHighlighter.js";
16
+ import { toHtml } from "hast-util-to-html";
17
+
18
+ //#region src/renderers/FileRenderer.ts
19
+ var FileRenderer = class {
20
+ highlighter;
21
+ renderCache;
22
+ computedLang = "text";
23
+ lineAnnotations = {};
24
+ constructor(options = { theme: DEFAULT_THEMES }, onRenderUpdate, workerManager) {
25
+ this.options = options;
26
+ this.onRenderUpdate = onRenderUpdate;
27
+ this.workerManager = workerManager;
28
+ if (workerManager?.isWorkingPool() !== true) this.highlighter = areThemesAttached(options.theme ?? DEFAULT_THEMES) ? getHighlighterIfLoaded() : void 0;
29
+ }
30
+ setOptions(options) {
31
+ this.options = options;
32
+ }
33
+ mergeOptions(options) {
34
+ this.options = {
35
+ ...this.options,
36
+ ...options
37
+ };
38
+ }
39
+ setThemeType(themeType) {
40
+ if ((this.options.themeType ?? "system") === themeType) return;
41
+ this.mergeOptions({ themeType });
42
+ }
43
+ setLineAnnotations(lineAnnotations) {
44
+ this.lineAnnotations = {};
45
+ for (const annotation of lineAnnotations) {
46
+ const arr = this.lineAnnotations[annotation.lineNumber] ?? [];
47
+ this.lineAnnotations[annotation.lineNumber] = arr;
48
+ arr.push(annotation);
49
+ }
50
+ }
51
+ cleanUp() {
52
+ this.renderCache = void 0;
53
+ this.highlighter = void 0;
54
+ this.workerManager = void 0;
55
+ this.onRenderUpdate = void 0;
56
+ }
57
+ hydrate(file) {
58
+ const { options } = this.getRenderOptions(file);
59
+ let cache = this.workerManager?.getFileResultCache(file);
60
+ if (cache != null && !areRenderOptionsEqual(options, cache.options)) cache = void 0;
61
+ this.renderCache ??= {
62
+ file,
63
+ options,
64
+ highlighted: true,
65
+ result: cache?.result
66
+ };
67
+ if (this.workerManager?.isWorkingPool() === true && this.renderCache.result == null) this.workerManager.highlightFileAST(this, file);
68
+ else this.asyncHighlight(file).then(({ result, options: options$1 }) => {
69
+ this.onHighlightSuccess(file, result, options$1);
70
+ });
71
+ }
72
+ getRenderOptions(file) {
73
+ const options = (() => {
74
+ if (this.workerManager?.isWorkingPool() === true) return this.workerManager.getFileRenderOptions();
75
+ const { theme = DEFAULT_THEMES, tokenizeMaxLineLength = 1e3 } = this.options;
76
+ return {
77
+ theme,
78
+ tokenizeMaxLineLength
79
+ };
80
+ })();
81
+ const { renderCache } = this;
82
+ if (renderCache?.result == null) return {
83
+ options,
84
+ forceRender: true
85
+ };
86
+ if (file !== renderCache.file || !areRenderOptionsEqual(options, renderCache.options)) return {
87
+ options,
88
+ forceRender: true
89
+ };
90
+ return {
91
+ options,
92
+ forceRender: false
93
+ };
94
+ }
95
+ renderFile(file = this.renderCache?.file) {
96
+ if (file == null) return;
97
+ const cache = this.workerManager?.getFileResultCache(file);
98
+ if (cache != null && this.renderCache == null) this.renderCache = {
99
+ file,
100
+ highlighted: true,
101
+ ...cache
102
+ };
103
+ const { options, forceRender } = this.getRenderOptions(file);
104
+ this.renderCache ??= {
105
+ file,
106
+ highlighted: false,
107
+ options,
108
+ result: void 0
109
+ };
110
+ if (this.workerManager?.isWorkingPool() === true) {
111
+ this.renderCache.result ??= this.workerManager.getPlainFileAST(file);
112
+ if (!this.renderCache.highlighted || forceRender) this.workerManager.highlightFileAST(this, file);
113
+ } else {
114
+ this.computedLang = file.lang ?? getFiletypeFromFileName(file.name);
115
+ const hasThemes = this.highlighter != null && areThemesAttached(options.theme);
116
+ const hasLangs = this.highlighter != null && areLanguagesAttached(this.computedLang);
117
+ if (this.highlighter != null && hasThemes && (forceRender || !this.renderCache.highlighted && hasLangs || this.renderCache.result == null)) {
118
+ const { result, options: options$1 } = this.renderFileWithHighlighter(file, this.highlighter, !hasLangs);
119
+ this.renderCache = {
120
+ file,
121
+ options: options$1,
122
+ highlighted: hasLangs,
123
+ result
124
+ };
125
+ }
126
+ if (!hasThemes || !hasLangs) this.asyncHighlight(file).then(({ result, options: options$1 }) => {
127
+ this.onHighlightSuccess(file, result, options$1);
128
+ });
129
+ }
130
+ return this.renderCache.result != null ? this.processFileResult(this.renderCache.file, this.renderCache.result) : void 0;
131
+ }
132
+ async asyncRender(file) {
133
+ const { result } = await this.asyncHighlight(file);
134
+ return this.processFileResult(file, result);
135
+ }
136
+ async asyncHighlight(file) {
137
+ this.computedLang = file.lang ?? getFiletypeFromFileName(file.name);
138
+ const hasThemes = this.highlighter != null && hasResolvedThemes(getThemes(this.options.theme));
139
+ const hasLangs = this.highlighter != null && areLanguagesAttached(this.computedLang);
140
+ if (this.highlighter == null || !hasThemes || !hasLangs) this.highlighter = await this.initializeHighlighter();
141
+ return this.renderFileWithHighlighter(file, this.highlighter);
142
+ }
143
+ renderFileWithHighlighter(file, highlighter, plainText = false) {
144
+ const { options } = this.getRenderOptions(file);
145
+ return {
146
+ result: renderFileWithHighlighter(file, highlighter, options, plainText),
147
+ options
148
+ };
149
+ }
150
+ processFileResult(file, result) {
151
+ const { disableFileHeader = false } = this.options;
152
+ const codeAST = [];
153
+ let lineIndex = 1;
154
+ for (const line of result.code) {
155
+ codeAST.push(line);
156
+ const annotations = this.lineAnnotations[lineIndex];
157
+ if (annotations != null) codeAST.push(createAnnotationElement({
158
+ type: "annotation",
159
+ hunkIndex: 0,
160
+ lineIndex,
161
+ annotations: annotations.map((annotation) => getLineAnnotationName(annotation))
162
+ }));
163
+ lineIndex++;
164
+ }
165
+ return {
166
+ codeAST,
167
+ preAST: this.createPreElement(result.code.length, result.themeStyles, result.baseThemeType),
168
+ headerAST: !disableFileHeader ? this.renderHeader(file, result.themeStyles, result.baseThemeType) : void 0,
169
+ totalLines: result.code.length,
170
+ themeStyles: result.themeStyles,
171
+ baseThemeType: result.baseThemeType,
172
+ css: ""
173
+ };
174
+ }
175
+ renderHeader(file, themeStyles, baseThemeType) {
176
+ const { themeType = "system" } = this.options;
177
+ return createFileHeaderElement({
178
+ fileOrDiff: file,
179
+ themeStyles,
180
+ themeType: baseThemeType ?? themeType
181
+ });
182
+ }
183
+ renderFullHTML(result) {
184
+ return toHtml(this.renderFullAST(result));
185
+ }
186
+ renderFullAST(result, children = []) {
187
+ children.push(createHastElement({
188
+ tagName: "code",
189
+ children: result.codeAST,
190
+ properties: { "data-code": "" }
191
+ }));
192
+ return {
193
+ ...result.preAST,
194
+ children
195
+ };
196
+ }
197
+ renderPartialHTML(children, includeCodeNode = false) {
198
+ if (!includeCodeNode) return toHtml(children);
199
+ return toHtml(createHastElement({
200
+ tagName: "code",
201
+ children,
202
+ properties: { "data-code": "" }
203
+ }));
204
+ }
205
+ async initializeHighlighter() {
206
+ this.highlighter = await getSharedHighlighter(getHighlighterOptions(this.computedLang, this.options));
207
+ return this.highlighter;
208
+ }
209
+ onHighlightSuccess(file, result, options) {
210
+ if (this.renderCache == null) return;
211
+ const triggerRenderUpdate = this.renderCache.file !== file || !this.renderCache.highlighted || !areRenderOptionsEqual(options, this.renderCache.options);
212
+ this.renderCache = {
213
+ file,
214
+ options,
215
+ highlighted: true,
216
+ result
217
+ };
218
+ if (triggerRenderUpdate) this.onRenderUpdate?.();
219
+ }
220
+ onHighlightError(error) {
221
+ console.error(error);
222
+ }
223
+ createPreElement(totalLines, themeStyles, baseThemeType) {
224
+ const { disableLineNumbers = false, overflow = "scroll", themeType = "system" } = this.options;
225
+ return createPreElement({
226
+ diffIndicators: "none",
227
+ disableBackground: true,
228
+ disableLineNumbers,
229
+ overflow,
230
+ themeStyles,
231
+ themeType: baseThemeType ?? themeType,
232
+ split: false,
233
+ totalLines
234
+ });
235
+ }
236
+ };
237
+ function areRenderOptionsEqual(optionsA, optionsB) {
238
+ return areThemesEqual(optionsA.theme, optionsB.theme) && optionsA.tokenizeMaxLineLength === optionsB.tokenizeMaxLineLength;
239
+ }
240
+
241
+ //#endregion
242
+ export { FileRenderer };
243
+ //# sourceMappingURL=FileRenderer.js.map
@@ -0,0 +1,32 @@
1
+ import { ShikiStreamTokenizer } from "./tokenizer.js";
2
+
3
+ //#region src/shiki-stream/stream.ts
4
+ /**
5
+ * Create a transform stream that takes code chunks and emits themed tokens.
6
+ */
7
+ var CodeToTokenTransformStream = class extends TransformStream {
8
+ tokenizer;
9
+ options;
10
+ constructor(options) {
11
+ const tokenizer = new ShikiStreamTokenizer(options);
12
+ const { allowRecalls = false } = options;
13
+ super({
14
+ async transform(chunk, controller) {
15
+ const { stable, unstable: buffer, recall } = await tokenizer.enqueue(chunk);
16
+ if (allowRecalls && recall > 0) controller.enqueue({ recall });
17
+ for (const token of stable) controller.enqueue(token);
18
+ if (allowRecalls) for (const token of buffer) controller.enqueue(token);
19
+ },
20
+ async flush(controller) {
21
+ const { stable } = tokenizer.close();
22
+ if (!allowRecalls) for (const token of stable) controller.enqueue(token);
23
+ }
24
+ });
25
+ this.tokenizer = tokenizer;
26
+ this.options = options;
27
+ }
28
+ };
29
+
30
+ //#endregion
31
+ export { CodeToTokenTransformStream };
32
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1,71 @@
1
+ //#region src/shiki-stream/tokenizer.ts
2
+ var ShikiStreamTokenizer = class ShikiStreamTokenizer {
3
+ options;
4
+ tokensStable = [];
5
+ tokensUnstable = [];
6
+ lastUnstableCodeChunk = "";
7
+ lastStableGrammarState;
8
+ constructor(options) {
9
+ this.options = options;
10
+ }
11
+ /**
12
+ * Enqueue a chunk of code to the buffer.
13
+ */
14
+ async enqueue(chunk) {
15
+ const chunkLines = (this.lastUnstableCodeChunk + chunk).split("\n");
16
+ const stable = [];
17
+ let unstable = [];
18
+ const recall = this.tokensUnstable.length;
19
+ chunkLines.forEach((line, i) => {
20
+ const isLastLine = i === chunkLines.length - 1;
21
+ const result = this.options.highlighter.codeToTokens(line, {
22
+ ...this.options,
23
+ grammarState: this.lastStableGrammarState
24
+ });
25
+ const tokens = result.tokens[0];
26
+ if (!isLastLine) tokens.push({
27
+ content: "\n",
28
+ offset: 0
29
+ });
30
+ if (!isLastLine) {
31
+ this.lastStableGrammarState = result.grammarState;
32
+ stable.push(...tokens);
33
+ } else {
34
+ unstable = tokens;
35
+ this.lastUnstableCodeChunk = line;
36
+ }
37
+ });
38
+ this.tokensStable.push(...stable);
39
+ this.tokensUnstable = unstable;
40
+ return {
41
+ recall,
42
+ stable,
43
+ unstable
44
+ };
45
+ }
46
+ close() {
47
+ const stable = this.tokensUnstable;
48
+ this.tokensUnstable = [];
49
+ this.lastUnstableCodeChunk = "";
50
+ this.lastStableGrammarState = void 0;
51
+ return { stable };
52
+ }
53
+ clear() {
54
+ this.tokensStable = [];
55
+ this.tokensUnstable = [];
56
+ this.lastUnstableCodeChunk = "";
57
+ this.lastStableGrammarState = void 0;
58
+ }
59
+ clone() {
60
+ const clone = new ShikiStreamTokenizer(this.options);
61
+ clone.lastUnstableCodeChunk = this.lastUnstableCodeChunk;
62
+ clone.tokensUnstable = this.tokensUnstable;
63
+ clone.tokensStable = this.tokensStable;
64
+ clone.lastStableGrammarState = this.lastStableGrammarState;
65
+ return clone;
66
+ }
67
+ };
68
+
69
+ //#endregion
70
+ export { ShikiStreamTokenizer };
71
+ //# sourceMappingURL=tokenizer.js.map
@@ -0,0 +1,55 @@
1
+ //#region src/sprite.ts
2
+ const SVGSpriteSheet = `<svg data-icon-sprite aria-hidden="true" width="0" height="0">
3
+ <symbol id="diffs-icon-arrow-right-short" viewBox="0 0 16 16">
4
+ <path d="M8.47 4.22a.75.75 0 0 0 0 1.06l1.97 1.97H3.75a.75.75 0 0 0 0 1.5h6.69l-1.97 1.97a.75.75 0 1 0 1.06 1.06l3.25-3.25a.75.75 0 0 0 0-1.06L9.53 4.22a.75.75 0 0 0-1.06 0"/>
5
+ </symbol>
6
+ <symbol id="diffs-icon-brand-github" viewBox="0 0 16 16">
7
+ <path d="M8 0c4.42 0 8 3.58 8 8a8.01 8.01 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27s-1.36.09-2 .27c-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8"/>
8
+ </symbol>
9
+ <symbol id="diffs-icon-chevron" viewBox="0 0 16 16">
10
+ <path d="M1.47 4.47a.75.75 0 0 1 1.06 0L8 9.94l5.47-5.47a.75.75 0 1 1 1.06 1.06l-6 6a.75.75 0 0 1-1.06 0l-6-6a.75.75 0 0 1 0-1.06"/>
11
+ </symbol>
12
+ <symbol id="diffs-icon-chevrons-narrow" viewBox="0 0 10 16">
13
+ <path d="M4.47 2.22a.75.75 0 0 1 1.06 0l3.25 3.25a.75.75 0 0 1-1.06 1.06L5 3.81 2.28 6.53a.75.75 0 0 1-1.06-1.06zM1.22 9.47a.75.75 0 0 1 1.06 0L5 12.19l2.72-2.72a.75.75 0 0 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0l-3.25-3.25a.75.75 0 0 1 0-1.06"/>
14
+ </symbol>
15
+ <symbol id="diffs-icon-diff-split" viewBox="0 0 16 16">
16
+ <path d="M14 0H8.5v16H14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2m-1.5 6.5v1h1a.5.5 0 0 1 0 1h-1v1a.5.5 0 0 1-1 0v-1h-1a.5.5 0 0 1 0-1h1v-1a.5.5 0 0 1 1 0"/><path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5.5V0zm.5 7.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1 0-1" opacity=".3"/>
17
+ </symbol>
18
+ <symbol id="diffs-icon-diff-unified" viewBox="0 0 16 16">
19
+ <path fill-rule="evenodd" d="M16 14a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V8.5h16zm-8-4a.5.5 0 0 0-.5.5v1h-1a.5.5 0 0 0 0 1h1v1a.5.5 0 0 0 1 0v-1h1a.5.5 0 0 0 0-1h-1v-1A.5.5 0 0 0 8 10" clip-rule="evenodd"/><path fill-rule="evenodd" d="M14 0a2 2 0 0 1 2 2v5.5H0V2a2 2 0 0 1 2-2zM6.5 3.5a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1z" clip-rule="evenodd" opacity=".4"/>
20
+ </symbol>
21
+ <symbol id="diffs-icon-expand" viewBox="0 0 16 16">
22
+ <path d="M3.47 5.47a.75.75 0 0 1 1.06 0L8 8.94l3.47-3.47a.75.75 0 1 1 1.06 1.06l-4 4a.75.75 0 0 1-1.06 0l-4-4a.75.75 0 0 1 0-1.06"/>
23
+ </symbol>
24
+ <symbol id="diffs-icon-expand-all" viewBox="0 0 16 16">
25
+ <path d="M11.47 9.47a.75.75 0 1 1 1.06 1.06l-4 4a.75.75 0 0 1-1.06 0l-4-4a.75.75 0 1 1 1.06-1.06L8 12.94zM7.526 1.418a.75.75 0 0 1 1.004.052l4 4a.75.75 0 1 1-1.06 1.06L8 3.06 4.53 6.53a.75.75 0 1 1-1.06-1.06l4-4z"/>
26
+ </symbol>
27
+ <symbol id="diffs-icon-file-code" viewBox="0 0 16 16">
28
+ <path d="M10.75 0c.199 0 .39.08.53.22l3.5 3.5c.14.14.22.331.22.53v9A2.75 2.75 0 0 1 12.25 16h-8.5A2.75 2.75 0 0 1 1 13.25V2.75A2.75 2.75 0 0 1 3.75 0zm-7 1.5c-.69 0-1.25.56-1.25 1.25v10.5c0 .69.56 1.25 1.25 1.25h8.5c.69 0 1.25-.56 1.25-1.25V5h-1.25A2.25 2.25 0 0 1 10 2.75V1.5z"/><path d="M7.248 6.19a.75.75 0 0 1 .063 1.058L5.753 9l1.558 1.752a.75.75 0 0 1-1.122.996l-2-2.25a.75.75 0 0 1 0-.996l2-2.25a.75.75 0 0 1 1.06-.063M8.69 7.248a.75.75 0 1 1 1.12-.996l2 2.25a.75.75 0 0 1 0 .996l-2 2.25a.75.75 0 1 1-1.12-.996L10.245 9z"/>
29
+ </symbol>
30
+ <symbol id="diffs-icon-symbol-added" viewBox="0 0 16 16">
31
+ <path d="M8 4a.75.75 0 0 1 .75.75v2.5h2.5a.75.75 0 0 1 0 1.5h-2.5v2.5a.75.75 0 0 1-1.5 0v-2.5h-2.5a.75.75 0 0 1 0-1.5h2.5v-2.5A.75.75 0 0 1 8 4"/><path d="M1.788 4.296c.196-.88.478-1.381.802-1.706s.826-.606 1.706-.802C5.194 1.588 6.387 1.5 8 1.5s2.806.088 3.704.288c.88.196 1.381.478 1.706.802s.607.826.802 1.706c.2.898.288 2.091.288 3.704s-.088 2.806-.288 3.704c-.195.88-.478 1.381-.802 1.706s-.826.607-1.706.802c-.898.2-2.091.288-3.704.288s-2.806-.088-3.704-.288c-.88-.195-1.381-.478-1.706-.802s-.606-.826-.802-1.706C1.588 10.806 1.5 9.613 1.5 8s.088-2.806.288-3.704M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8"/>
32
+ </symbol>
33
+ <symbol id="diffs-icon-symbol-deleted" viewBox="0 0 16 16">
34
+ <path d="M4 8a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5A.75.75 0 0 1 4 8"/><path d="M1.788 4.296c.196-.88.478-1.381.802-1.706s.826-.606 1.706-.802C5.194 1.588 6.387 1.5 8 1.5s2.806.088 3.704.288c.88.196 1.381.478 1.706.802s.607.826.802 1.706c.2.898.288 2.091.288 3.704s-.088 2.806-.288 3.704c-.195.88-.478 1.381-.802 1.706s-.826.607-1.706.802c-.898.2-2.091.288-3.704.288s-2.806-.088-3.704-.288c-.88-.195-1.381-.478-1.706-.802s-.606-.826-.802-1.706C1.588 10.806 1.5 9.613 1.5 8s.088-2.806.288-3.704M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8"/>
35
+ </symbol>
36
+ <symbol id="diffs-icon-symbol-diffstat" viewBox="0 0 16 16">
37
+ <path d="M1.788 4.296c.196-.88.478-1.381.802-1.706s.826-.606 1.706-.802C5.194 1.588 6.387 1.5 8 1.5s2.806.088 3.704.288c.88.196 1.381.478 1.706.802s.607.826.802 1.706c.2.898.288 2.091.288 3.704s-.088 2.806-.288 3.704c-.195.88-.478 1.381-.802 1.706s-.826.607-1.706.802c-.898.2-2.091.288-3.704.288s-2.806-.088-3.704-.288c-.88-.195-1.381-.478-1.706-.802s-.606-.826-.802-1.706C1.588 10.806 1.5 9.613 1.5 8s.088-2.806.288-3.704M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8"/><path d="M8.75 4.296a.75.75 0 0 0-1.5 0V6.25h-2a.75.75 0 0 0 0 1.5h2v1.5h1.5v-1.5h2a.75.75 0 0 0 0-1.5h-2zM5.25 10a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5z"/>
38
+ </symbol>
39
+ <symbol id="diffs-icon-symbol-ignored" viewBox="0 0 16 16">
40
+ <path d="M1.5 8c0 1.613.088 2.806.288 3.704.196.88.478 1.381.802 1.706s.826.607 1.706.802c.898.2 2.091.288 3.704.288s2.806-.088 3.704-.288c.88-.195 1.381-.478 1.706-.802s.607-.826.802-1.706c.2-.898.288-2.091.288-3.704s-.088-2.806-.288-3.704c-.195-.88-.478-1.381-.802-1.706s-.826-.606-1.706-.802C10.806 1.588 9.613 1.5 8 1.5s-2.806.088-3.704.288c-.88.196-1.381.478-1.706.802s-.606.826-.802 1.706C1.588 5.194 1.5 6.387 1.5 8M0 8c0-6.588 1.412-8 8-8s8 1.412 8 8-1.412 8-8 8-8-1.412-8-8m11.53-2.47a.75.75 0 0 0-1.06-1.06l-6 6a.75.75 0 1 0 1.06 1.06z"/>
41
+ </symbol>
42
+ <symbol id="diffs-icon-symbol-modified" viewBox="0 0 16 16">
43
+ <path d="M1.5 8c0 1.613.088 2.806.288 3.704.196.88.478 1.381.802 1.706s.826.607 1.706.802c.898.2 2.091.288 3.704.288s2.806-.088 3.704-.288c.88-.195 1.381-.478 1.706-.802s.607-.826.802-1.706c.2-.898.288-2.091.288-3.704s-.088-2.806-.288-3.704c-.195-.88-.478-1.381-.802-1.706s-.826-.606-1.706-.802C10.806 1.588 9.613 1.5 8 1.5s-2.806.088-3.704.288c-.88.196-1.381.478-1.706.802s-.606.826-.802 1.706C1.588 5.194 1.5 6.387 1.5 8M0 8c0-6.588 1.412-8 8-8s8 1.412 8 8-1.412 8-8 8-8-1.412-8-8m8 3a3 3 0 1 0 0-6 3 3 0 0 0 0 6"/>
44
+ </symbol>
45
+ <symbol id="diffs-icon-symbol-moved" viewBox="0 0 16 16">
46
+ <path d="M1.788 4.296c.196-.88.478-1.381.802-1.706s.826-.606 1.706-.802C5.194 1.588 6.387 1.5 8 1.5s2.806.088 3.704.288c.88.196 1.381.478 1.706.802s.607.826.802 1.706c.2.898.288 2.091.288 3.704s-.088 2.806-.288 3.704c-.195.88-.478 1.381-.802 1.706s-.826.607-1.706.802c-.898.2-2.091.288-3.704.288s-2.806-.088-3.704-.288c-.88-.195-1.381-.478-1.706-.802s-.606-.826-.802-1.706C1.588 10.806 1.5 9.613 1.5 8s.088-2.806.288-3.704M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8"/><path d="M8.495 4.695a.75.75 0 0 0-.05 1.06L10.486 8l-2.041 2.246a.75.75 0 0 0 1.11 1.008l2.5-2.75a.75.75 0 0 0 0-1.008l-2.5-2.75a.75.75 0 0 0-1.06-.051m-4 0a.75.75 0 0 0-.05 1.06l2.044 2.248-1.796 1.995a.75.75 0 0 0 1.114 1.004l2.25-2.5a.75.75 0 0 0-.002-1.007l-2.5-2.75a.75.75 0 0 0-1.06-.05"/>
47
+ </symbol>
48
+ <symbol id="diffs-icon-symbol-ref" viewBox="0 0 16 16">
49
+ <path d="M1.5 8c0 1.613.088 2.806.288 3.704.196.88.478 1.381.802 1.706.286.286.71.54 1.41.73V1.86c-.7.19-1.124.444-1.41.73-.324.325-.606.826-.802 1.706C1.588 5.194 1.5 6.387 1.5 8m4 6.397c.697.07 1.522.103 2.5.103 1.613 0 2.806-.088 3.704-.288.88-.195 1.381-.478 1.706-.802s.607-.826.802-1.706c.2-.898.288-2.091.288-3.704s-.088-2.806-.288-3.704c-.195-.88-.478-1.381-.802-1.706s-.826-.606-1.706-.802C10.806 1.588 9.613 1.5 8 1.5c-.978 0-1.803.033-2.5.103zM0 8c0-6.588 1.412-8 8-8s8 1.412 8 8-1.412 8-8 8-8-1.412-8-8m7-2a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z"/>
50
+ </symbol>
51
+ </svg>`;
52
+
53
+ //#endregion
54
+ export { SVGSpriteSheet };
55
+ //# sourceMappingURL=sprite.js.map
@@ -0,0 +1,6 @@
1
+ //#region src/style.css
2
+ var style_default = "@layer base, theme, unsafe;\n\n@layer base {\n :host {\n --diffs-bg: #fff;\n --diffs-fg: #000;\n --diffs-font-fallback:\n 'SF Mono', Monaco, Consolas, 'Ubuntu Mono', 'Liberation Mono',\n 'Courier New', monospace;\n --diffs-header-font-fallback:\n system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue',\n 'Noto Sans', 'Liberation Sans', Arial, sans-serif;\n\n --diffs-mixer: light-dark(black, white);\n --diffs-gap-fallback: 8px;\n\n /*\n // Available CSS Color Overrides\n --diffs-bg-buffer-override\n --diffs-bg-hover-override\n --diffs-bg-context-override\n --diffs-bg-separator-override\n\n --diffs-fg-number-override\n --diffs-fg-number-addition-override\n --diffs-fg-number-deletion-override\n\n --diffs-deletion-color-override\n --diffs-addition-color-override\n --diffs-modified-color-override\n\n --diffs-bg-deletion-override\n --diffs-bg-deletion-number-override\n --diffs-bg-deletion-hover-override\n --diffs-bg-deletion-emphasis-override\n\n --diffs-bg-addition-override\n --diffs-bg-addition-number-override\n --diffs-bg-addition-hover-override\n --diffs-bg-addition-emphasis-override\n\n // Line Selection Color Overrides (for enableLineSelection)\n --diffs-selection-color-override\n --diffs-bg-selection-override\n --diffs-bg-selection-number-override\n --diffs-bg-selection-background-override\n --diffs-bg-selection-number-background-override\n\n // Available CSS Layout Overrides\n --diffs-gap-inline\n --diffs-gap-block\n --diffs-gap-style\n --diffs-tab-size\n */\n\n color-scheme: light dark;\n display: block;\n font-family: var(\n --diffs-header-font-family,\n var(--diffs-header-font-fallback)\n );\n font-size: var(--diffs-font-size, 13px);\n line-height: var(--diffs-line-height, 20px);\n font-feature-settings: var(--diffs-font-features);\n }\n\n /* NOTE(mdo): Some semantic HTML elements (e.g. `pre`, `code`) have default\n * user-agent styles. These must be overridden to use our custom styles. */\n pre,\n code,\n [data-error-wrapper] {\n margin: 0;\n padding: 0;\n display: block;\n outline: none;\n font-family: var(--diffs-font-family, var(--diffs-font-fallback));\n }\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n [data-icon-sprite] {\n display: none;\n }\n\n /* NOTE(mdo): Headers and separators are within pre/code, so we need to reset\n * their font-family explicitly. */\n [data-diffs-header],\n [data-separator] {\n font-family: var(\n --diffs-header-font-family,\n var(--diffs-header-font-fallback)\n );\n }\n\n [data-file-info] {\n padding: 10px;\n font-weight: 700;\n color: var(--fg);\n /* NOTE(amadeus): we cannot use 'in oklch' because current versions of cursor\n * and vscode use an older build of chrome that appears to have a bug with\n * color-mix and 'in oklch', so use 'in lab' instead */\n background-color: color-mix(in lab, var(--bg) 98%, var(--fg));\n border-block: 1px solid color-mix(in lab, var(--bg) 95%, var(--fg));\n }\n\n [data-diffs-header],\n [data-diffs],\n [data-error-wrapper] {\n --diffs-bg: light-dark(var(--diffs-light-bg), var(--diffs-dark-bg));\n /* NOTE(amadeus): we cannot use 'in oklch' because current versions of cursor\n * and vscode use an older build of chrome that appears to have a bug with\n * color-mix and 'in oklch', so use 'in lab' instead */\n --diffs-bg-buffer: var(\n --diffs-bg-buffer-override,\n light-dark(\n color-mix(in lab, var(--diffs-bg) 92%, var(--diffs-mixer)),\n color-mix(in lab, var(--diffs-bg) 92%, var(--diffs-mixer))\n )\n );\n --diffs-bg-hover: var(\n --diffs-bg-hover-override,\n light-dark(\n color-mix(in lab, var(--diffs-bg) 97%, var(--diffs-mixer)),\n color-mix(in lab, var(--diffs-bg) 91%, var(--diffs-mixer))\n )\n );\n --diffs-bg-context: var(\n --diffs-bg-context-override,\n light-dark(\n color-mix(in lab, var(--diffs-bg) 98.5%, var(--diffs-mixer)),\n color-mix(in lab, var(--diffs-bg) 92.5%, var(--diffs-mixer))\n )\n );\n --diffs-bg-separator: var(\n --diffs-bg-separator-override,\n light-dark(\n color-mix(in lab, var(--diffs-bg) 96%, var(--diffs-mixer)),\n color-mix(in lab, var(--diffs-bg) 85%, var(--diffs-mixer))\n )\n );\n\n --diffs-fg: light-dark(var(--diffs-light), var(--diffs-dark));\n --diffs-fg-number: var(\n --diffs-fg-number-override,\n light-dark(\n color-mix(in lab, var(--diffs-fg) 65%, var(--diffs-bg)),\n color-mix(in lab, var(--diffs-fg) 65%, var(--diffs-bg))\n )\n );\n\n --diffs-deletion-base: var(\n --diffs-deletion-color-override,\n light-dark(\n var(\n --diffs-light-deletion-color,\n var(--diffs-deletion-color, rgb(255, 0, 0))\n ),\n var(\n --diffs-dark-deletion-color,\n var(--diffs-deletion-color, rgb(255, 0, 0))\n )\n )\n );\n --diffs-addition-base: var(\n --diffs-addition-color-override,\n light-dark(\n var(\n --diffs-light-addition-color,\n var(--diffs-addition-color, rgb(0, 255, 0))\n ),\n var(\n --diffs-dark-addition-color,\n var(--diffs-addition-color, rgb(0, 255, 0))\n )\n )\n );\n --diffs-modified-base: var(\n --diffs-modified-color-override,\n light-dark(\n var(\n --diffs-light-modified-color,\n var(--diffs-modified-color, rgb(0, 0, 255))\n ),\n var(\n --diffs-dark-modified-color,\n var(--diffs-modified-color, rgb(0, 0, 255))\n )\n )\n );\n\n /* NOTE(amadeus): we cannot use 'in oklch' because current versions of cursor\n * and vscode use an older build of chrome that appears to have a bug with\n * color-mix and 'in oklch', so use 'in lab' instead */\n --diffs-bg-deletion: var(\n --diffs-bg-deletion-override,\n light-dark(\n color-mix(in lab, var(--diffs-bg) 88%, var(--diffs-deletion-base)),\n color-mix(in lab, var(--diffs-bg) 80%, var(--diffs-deletion-base))\n )\n );\n --diffs-bg-deletion-number: var(\n --diffs-bg-deletion-number-override,\n light-dark(\n color-mix(in lab, var(--diffs-bg) 91%, var(--diffs-deletion-base)),\n color-mix(in lab, var(--diffs-bg) 85%, var(--diffs-deletion-base))\n )\n );\n --diffs-bg-deletion-hover: var(\n --diffs-bg-deletion-hover-override,\n light-dark(\n color-mix(in lab, var(--diffs-bg) 80%, var(--diffs-deletion-base)),\n color-mix(in lab, var(--diffs-bg) 75%, var(--diffs-deletion-base))\n )\n );\n --diffs-bg-deletion-emphasis: var(\n --diffs-bg-deletion-emphasis-override,\n light-dark(\n rgb(from var(--diffs-deletion-base) r g b / 0.15),\n rgb(from var(--diffs-deletion-base) r g b / 0.2)\n )\n );\n\n --diffs-bg-addition: var(\n --diffs-bg-addition-override,\n light-dark(\n color-mix(in lab, var(--diffs-bg) 88%, var(--diffs-addition-base)),\n color-mix(in lab, var(--diffs-bg) 80%, var(--diffs-addition-base))\n )\n );\n --diffs-bg-addition-number: var(\n --diffs-bg-addition-number-override,\n light-dark(\n color-mix(in lab, var(--diffs-bg) 91%, var(--diffs-addition-base)),\n color-mix(in lab, var(--diffs-bg) 85%, var(--diffs-addition-base))\n )\n );\n --diffs-bg-addition-hover: var(\n --diffs-bg-addition-hover-override,\n light-dark(\n color-mix(in lab, var(--diffs-bg) 80%, var(--diffs-addition-base)),\n color-mix(in lab, var(--diffs-bg) 70%, var(--diffs-addition-base))\n )\n );\n --diffs-bg-addition-emphasis: var(\n --diffs-bg-addition-emphasis-override,\n light-dark(\n rgb(from var(--diffs-addition-base) r g b / 0.15),\n rgb(from var(--diffs-addition-base) r g b / 0.2)\n )\n );\n\n --diffs-selection-base: var(--diffs-modified-base);\n --diffs-selection-number-fg: light-dark(\n color-mix(in lab, var(--diffs-selection-base) 65%, var(--diffs-mixer)),\n color-mix(in lab, var(--diffs-selection-base) 75%, var(--diffs-mixer))\n );\n --diffs-bg-selection: var(\n --diffs-bg-selection-override,\n light-dark(\n color-mix(in lab, var(--diffs-bg) 82%, var(--diffs-selection-base)),\n color-mix(in lab, var(--diffs-bg) 75%, var(--diffs-selection-base))\n )\n );\n --diffs-bg-selection-number: var(\n --diffs-bg-selection-number-override,\n light-dark(\n color-mix(in lab, var(--diffs-bg) 75%, var(--diffs-selection-base)),\n color-mix(in lab, var(--diffs-bg) 60%, var(--diffs-selection-base))\n )\n );\n\n background-color: var(--diffs-bg);\n color: var(--diffs-fg);\n }\n\n [data-diffs] {\n --diffs-code-grid: minmax(min-content, max-content) 1fr;\n\n [data-column-content] span {\n color: light-dark(\n var(--diffs-token-light, var(--diffs-light)),\n var(--diffs-token-dark, var(--diffs-dark))\n );\n font-weight: var(--diffs-token-light-font-weight, inherit);\n font-style: var(--diffs-token-light-font-style, inherit);\n -webkit-text-decoration: var(--diffs-token-light-text-decoration, inherit);\n text-decoration: var(--diffs-token-light-text-decoration, inherit);\n }\n }\n\n /* Since span is a pretty innocuous selector, we need to make sure we don't\n * apply tokenized BG colors to diff-spans */\n [data-column-content] span:not([data-diff-span]) {\n background-color: light-dark(\n var(--diffs-token-light-bg, inherit),\n var(--diffs-token-dark-bg, inherit)\n );\n }\n\n [data-column-content] {\n background-color: var(--diffs-line-bg, 'transparent');\n grid-column: 2 / 3;\n }\n\n [data-diffs][data-dehydrated] {\n --diffs-code-grid: minmax(min-content, max-content) minmax(0, 1fr);\n }\n\n @media (prefers-color-scheme: dark) {\n [data-diffs-header],\n [data-diffs] {\n color-scheme: dark;\n }\n\n [data-diffs] [data-column-content] span {\n font-weight: var(--diffs-token-dark-font-weight, inherit);\n font-style: var(--diffs-token-dark-font-style, inherit);\n -webkit-text-decoration: var(--diffs-token-dark-text-decoration, inherit);\n text-decoration: var(--diffs-token-dark-text-decoration, inherit);\n }\n }\n\n [data-diffs-header][data-theme-type='light'],\n [data-diffs][data-theme-type='light'] {\n color-scheme: light;\n }\n\n [data-diffs][data-theme-type='light'] [data-column-content] span {\n font-weight: var(--diffs-token-light-font-weight, inherit);\n font-style: var(--diffs-token-light-font-style, inherit);\n -webkit-text-decoration: var(--diffs-token-light-text-decoration, inherit);\n text-decoration: var(--diffs-token-light-text-decoration, inherit);\n }\n\n [data-diffs-header][data-theme-type='dark'],\n [data-diffs][data-theme-type='dark'] {\n color-scheme: dark;\n }\n\n [data-diffs][data-theme-type='dark'] [data-column-content] span {\n font-weight: var(--diffs-token-dark-font-weight, inherit);\n font-style: var(--diffs-token-dark-font-style, inherit);\n -webkit-text-decoration: var(--diffs-token-dark-text-decoration, inherit);\n text-decoration: var(--diffs-token-dark-text-decoration, inherit);\n }\n\n [data-type='split'][data-overflow='wrap'] {\n display: grid;\n grid-auto-flow: dense;\n grid-template-columns: repeat(2, var(--diffs-code-grid));\n }\n\n [data-type='split'][data-overflow='scroll'] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 2px;\n }\n\n [data-code] {\n display: block;\n display: grid;\n grid-auto-flow: dense;\n grid-template-columns: var(--diffs-code-grid);\n overflow: scroll clip;\n overscroll-behavior-x: none;\n tab-size: var(--diffs-tab-size, 2);\n align-self: flex-start;\n padding-top: var(--diffs-gap-block, var(--diffs-gap-fallback));\n padding-bottom: max(\n 0px,\n calc(var(--diffs-gap-block, var(--diffs-gap-fallback)) - 6px)\n );\n }\n\n [data-code]::-webkit-scrollbar {\n width: 0;\n height: 6px;\n }\n\n [data-code]::-webkit-scrollbar-track {\n background: transparent;\n }\n\n [data-code]::-webkit-scrollbar-thumb {\n background-color: transparent;\n border: 1px solid transparent;\n background-clip: content-box;\n border-radius: 3px;\n }\n\n [data-diffs]:hover [data-code]::-webkit-scrollbar-thumb {\n background-color: var(--diffs-bg-context);\n }\n\n [data-code]::-webkit-scrollbar-corner {\n background-color: transparent;\n }\n\n /*\n * If we apply these rules globally it will mean that webkit will opt into the\n * standards compliant version of custom css scrollbars, which we do not want\n * because the custom stuff will look better\n */\n @supports (-moz-appearance: none) {\n [data-code] {\n scrollbar-width: thin;\n scrollbar-color: var(--diffs-bg-context) transparent;\n padding-bottom: var(--diffs-gap-block, var(--diffs-gap-fallback));\n }\n }\n\n [data-diffs][data-type='split'][data-overflow='wrap'] {\n padding-block: var(--diffs-gap-block, var(--diffs-gap-fallback));\n }\n\n [data-diffs-header] ~ [data-diffs] [data-code],\n [data-diffs-header] ~ [data-diffs][data-overflow='wrap'] {\n padding-top: 0;\n }\n\n [data-type='split'][data-overflow='wrap'] [data-code] {\n display: contents;\n }\n\n [data-line-annotation],\n [data-no-newline],\n [data-line] {\n position: relative;\n display: grid;\n grid-template-columns: subgrid;\n grid-column: 1 / 3;\n }\n\n [data-line-annotation][data-selected-line] {\n background-color: unset;\n\n &::before {\n content: '';\n position: sticky;\n top: 0;\n left: 0;\n display: block;\n border-right: var(--diffs-gap-style, 1px solid var(--diffs-bg));\n background-color: var(--diffs-bg-selection-number);\n }\n\n [data-annotation-content] {\n background-color: var(--diffs-bg-selection);\n }\n }\n\n [data-interactive-lines] [data-line] {\n cursor: pointer;\n }\n\n [data-buffer] {\n position: sticky;\n left: 0;\n grid-column: 1 / 3;\n -webkit-user-select: none;\n user-select: none;\n /* We multiply by 1.414 (√2) to better approximate the diagonal repeat distance */\n background-image: repeating-linear-gradient(\n -45deg,\n transparent,\n transparent calc(3px * 1.414),\n var(--diffs-bg-buffer) calc(3px * 1.414),\n var(--diffs-bg-buffer) calc(4px * 1.414)\n );\n min-height: 1lh;\n width: var(--diffs-column-width, auto);\n }\n\n [data-separator] {\n grid-column: span 2;\n }\n\n [data-separator='metadata'],\n [data-separator]:empty {\n min-height: 4px;\n background-color: var(--diffs-bg-separator);\n display: grid;\n grid-template-columns: subgrid;\n }\n\n [data-separator-wrapper] {\n -webkit-user-select: none;\n user-select: none;\n fill: currentColor;\n overflow: hidden;\n }\n\n [data-separator='metadata'] [data-separator-wrapper] {\n grid-column: 2 / 3;\n width: var(--diffs-column-content-width);\n position: sticky;\n left: var(--diffs-column-number-width);\n padding: 4px 1ch;\n }\n\n [data-separator='line-info'] {\n margin-block: var(--diffs-gap-block, var(--diffs-gap-fallback));\n }\n\n [data-separator='line-info'][data-separator-first] {\n margin-top: 0;\n }\n\n [data-separator='line-info'][data-separator-last] {\n margin-bottom: 0;\n }\n\n [data-separator='line-info'] [data-separator-wrapper] {\n position: sticky;\n display: flex;\n align-items: center;\n gap: 2px;\n width: auto;\n width: calc(var(--diffs-column-width) - var(--diffs-gap-fallback));\n border-radius: 6px;\n }\n\n @media (pointer: fine) {\n [data-separator-wrapper][data-separator-multi-button] {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr);\n grid-template-rows: 15px 15px;\n\n [data-expand-button] {\n height: 15px;\n }\n }\n\n [data-type='split']\n [data-additions]\n [data-separator-wrapper][data-separator-multi-button] {\n grid-template-columns: minmax(0, 1fr) auto;\n }\n\n [data-type='split'] [data-additions] [data-expand-button] {\n grid-column: 2;\n }\n\n [data-type='split'] [data-additions] [data-separator-content] {\n grid-column: 1;\n }\n }\n\n [data-expand-button],\n [data-separator-content] {\n display: flex;\n align-items: center;\n background-color: var(--diffs-bg-separator);\n }\n\n [data-expand-button] {\n justify-content: center;\n flex-shrink: 0;\n cursor: pointer;\n width: 32px;\n height: 32px;\n opacity: 0.65;\n }\n\n [data-hover-slot] {\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n display: flex;\n justify-content: flex-end;\n }\n\n @media (pointer: fine) {\n [data-expand-button]:hover {\n opacity: 1;\n }\n\n [data-line]:hover {\n z-index: 2;\n }\n }\n\n [data-expand-down] [data-icon] {\n transform: scaleY(-1);\n }\n\n [data-separator-content] {\n flex: 1 1 auto;\n padding: 0 1ch;\n height: 32px;\n opacity: 0.65;\n overflow: hidden;\n justify-content: flex-start;\n\n grid-column: 2;\n grid-row: 1 / -1;\n }\n\n [data-unmodified-lines] {\n display: block;\n overflow: hidden;\n min-width: 0;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 0 1 auto;\n }\n\n [data-type='split'] [data-additions] [data-separator-content] {\n justify-content: flex-end;\n }\n\n [data-type='file']\n [data-code]\n [data-separator='line-info']\n [data-separator-wrapper] {\n left: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n margin-left: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n margin-right: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n width: calc(\n var(--diffs-column-width) -\n (var(--diffs-gap-inline, var(--diffs-gap-fallback)) * 2)\n );\n }\n\n [data-type='split']\n [data-deletions]\n [data-separator='line-info']\n [data-separator-wrapper] {\n left: var(--diffs-gap-fallback);\n margin-left: var(--diffs-gap-fallback);\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n [data-type='split']\n [data-additions]\n [data-separator='line-info']\n [data-separator-wrapper] {\n left: 0;\n margin-right: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n flex-direction: row-reverse;\n }\n\n [data-line] {\n background-color: var(--diffs-bg);\n color: var(--diffs-fg);\n }\n\n [data-type='split'][data-overflow='wrap'] [data-deletions] {\n [data-line-annotation],\n [data-buffer],\n [data-line],\n [data-separator] {\n grid-column: 1 / 3;\n }\n }\n\n [data-line-annotation] {\n min-height: var(--diffs-annotation-min-height, 0);\n background-color: var(--diffs-bg-context);\n z-index: 3;\n }\n\n [data-type='split'][data-overflow='wrap'] [data-additions] {\n [data-line-annotation],\n [data-buffer],\n [data-line],\n [data-separator] {\n margin-left: 2px;\n grid-column: 3 / 5;\n }\n }\n\n [data-separator='custom'] {\n display: grid;\n grid-template-columns: subgrid;\n }\n\n [data-column-content],\n [data-column-number] {\n position: relative;\n padding-inline: 1ch;\n }\n\n [data-indicators='classic'] [data-column-content] {\n padding-inline-start: 2ch;\n }\n\n [data-indicators='classic'] {\n [data-line-type='change-addition'] [data-column-content]::before,\n [data-line-type='change-deletion'] [data-column-content]::before {\n display: inline-block;\n width: 1ch;\n height: 1lh;\n position: absolute;\n top: 0;\n left: 0;\n -webkit-user-select: none;\n user-select: none;\n }\n\n [data-line-type='change-addition'] [data-column-content]::before {\n content: '+';\n color: var(--diffs-addition-base);\n }\n\n [data-line-type='change-deletion'] [data-column-content]::before {\n content: '-';\n color: var(--diffs-deletion-base);\n }\n }\n\n [data-indicators='bars'] {\n [data-line-type='change-deletion'] [data-column-number]::before,\n [data-line-type='change-addition'] [data-column-number]::before {\n content: '';\n display: block;\n width: 4px;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n -webkit-user-select: none;\n user-select: none;\n }\n\n [data-line-type='change-deletion'] [data-column-number]::before {\n background-image: linear-gradient(\n 0deg,\n var(--diffs-bg-deletion) 50%,\n var(--diffs-deletion-base) 50%\n );\n background-repeat: repeat;\n background-size: 2px 2px;\n background-size: calc(1lh / round(1lh / 2px)) calc(1lh / round(1lh / 2px));\n }\n\n [data-line-type='change-addition'] [data-column-number]::before {\n background-color: var(--diffs-addition-base);\n }\n }\n\n [data-overflow='wrap'] [data-column-content],\n [data-overflow='wrap'] [data-annotation-content] {\n white-space: pre-wrap;\n word-break: break-word;\n }\n\n [data-overflow='scroll'] [data-column-content] {\n white-space: pre;\n min-height: 1lh;\n }\n\n [data-column-number] {\n grid-column: 1 / 2;\n box-sizing: content-box;\n text-align: right;\n position: sticky;\n left: 0;\n -webkit-user-select: none;\n user-select: none;\n background-color: var(--diffs-bg);\n color: var(--diffs-fg-number);\n z-index: 1;\n min-width: var(\n --diffs-min-number-column-width,\n var(--diffs-min-number-column-width-default, 3ch)\n );\n padding-left: 2ch;\n border-right: var(--diffs-gap-style, 1px solid var(--diffs-bg));\n }\n\n [data-disable-line-numbers] {\n &[data-indicators='bars'] [data-column-number] {\n min-width: 4px;\n border-right: var(--diffs-gap-style, 1px solid var(--diffs-bg));\n }\n\n [data-column-number] {\n border-right: none;\n min-width: 0;\n padding: 0;\n }\n\n [data-line-number-content] {\n display: none;\n }\n\n [data-hover-slot] {\n right: unset;\n left: 0;\n justify-content: flex-start;\n }\n\n &[data-indicators='bars'] [data-hover-slot] {\n /* Using 5px here because theres a 1px separator after the bar */\n left: 5px;\n }\n }\n\n [data-interactive-line-numbers] [data-column-number] {\n cursor: pointer;\n }\n\n [data-diff-span] {\n border-radius: 3px;\n -webkit-box-decoration-break: clone;\n box-decoration-break: clone;\n }\n\n [data-line-type='change-addition'] {\n [data-column-number] {\n color: var(\n --diffs-fg-number-addition-override,\n var(--diffs-addition-base)\n );\n }\n\n [data-diff-span] {\n background-color: var(--diffs-bg-addition-emphasis);\n }\n }\n\n [data-line-type='change-deletion'] {\n [data-column-number] {\n color: var(\n --diffs-fg-number-deletion-override,\n var(--diffs-deletion-base)\n );\n }\n\n [data-diff-span] {\n background-color: var(--diffs-bg-deletion-emphasis);\n }\n }\n\n [data-background] [data-line-type='change-addition'] {\n --diffs-line-bg: var(--diffs-bg-addition);\n\n [data-column-number] {\n background-color: var(--diffs-bg-addition-number);\n }\n }\n\n [data-background] [data-line-type='change-deletion'] {\n --diffs-line-bg: var(--diffs-bg-deletion);\n\n [data-column-number] {\n background-color: var(--diffs-bg-deletion-number);\n }\n }\n\n [data-line-type='context-expanded'] {\n --diffs-line-bg: var(--diffs-bg-context);\n\n [data-column-number] {\n background-color: var(--diffs-bg-context);\n }\n }\n\n /* By wrapping hovers in a pointer: fine, we ensure that mobile devices don't\n* require a double click */\n @media (pointer: fine) {\n [data-line]:hover:not([data-selected-line]) {\n [data-column-number],\n [data-column-content] {\n background-color: var(--diffs-bg-hover);\n }\n }\n\n [data-background] [data-line]:hover:not([data-selected-line]) {\n &[data-line-type='change-deletion'] [data-column-number],\n &[data-line-type='change-deletion'] [data-column-content] {\n background-color: var(--diffs-bg-deletion-hover);\n }\n\n &[data-line-type='change-addition'] [data-column-number],\n &[data-line-type='change-addition'] [data-column-content] {\n background-color: var(--diffs-bg-addition-hover);\n }\n }\n }\n\n [data-diffs-header] {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n gap: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n min-height: calc(\n 1lh + (var(--diffs-gap-block, var(--diffs-gap-fallback)) * 3)\n );\n padding-inline: 16px;\n }\n\n [data-header-content] {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n min-width: 0;\n white-space: nowrap;\n }\n\n [data-header-content] [data-prev-name],\n [data-header-content] [data-title] {\n direction: rtl;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n white-space: nowrap;\n }\n\n [data-prev-name] {\n opacity: 0.7;\n }\n\n [data-rename-icon] {\n fill: currentColor;\n flex-shrink: 0;\n flex-grow: 0;\n }\n\n [data-diffs-header] [data-metadata] {\n display: flex;\n align-items: center;\n gap: 1ch;\n white-space: nowrap;\n }\n\n [data-diffs-header] [data-additions-count] {\n font-family: var(--diffs-font-family, var(--diffs-font-fallback));\n color: var(--diffs-addition-base);\n }\n\n [data-diffs-header] [data-deletions-count] {\n font-family: var(--diffs-font-family, var(--diffs-font-fallback));\n color: var(--diffs-deletion-base);\n }\n\n [data-no-newline] {\n -webkit-user-select: none;\n user-select: none;\n\n [data-column-content] {\n opacity: 0.6;\n }\n }\n\n [data-annotation-content] {\n position: sticky;\n left: var(--diffs-column-number-width, 0);\n grid-column: 2 / -1;\n width: var(--diffs-column-content-width, auto);\n align-self: flex-start;\n z-index: 2;\n height: 100%;\n }\n\n /* Undo some of the stuff that the 'pre' tag does */\n [data-annotation-slot] {\n text-wrap-mode: wrap;\n word-break: normal;\n white-space-collapse: collapse;\n }\n\n [data-change-icon] {\n fill: currentColor;\n flex-shrink: 0;\n }\n\n [data-change-icon='change'],\n [data-change-icon='rename-pure'],\n [data-change-icon='rename-changed'] {\n color: var(--diffs-modified-base);\n }\n\n [data-change-icon='new'] {\n color: var(--diffs-addition-base);\n }\n\n [data-change-icon='deleted'] {\n color: var(--diffs-deletion-base);\n }\n\n [data-change-icon='file'] {\n opacity: 0.6;\n }\n\n /* Line selection highlighting */\n [data-line-type='context'][data-selected-line] {\n [data-column-number] {\n color: var(--diffs-selection-number-fg);\n background-color: var(--diffs-bg-selection-number);\n }\n\n [data-column-content] {\n background-color: var(--diffs-bg-selection);\n }\n }\n\n [data-line-type='context-expanded'],\n [data-line-type='change-addition'],\n [data-line-type='change-deletion'] {\n &[data-selected-line] {\n [data-column-content] {\n background-color: light-dark(\n color-mix(\n in lab,\n var(--diffs-line-bg, var(--diffs-bg)) 82%,\n var(--diffs-selection-base)\n ),\n color-mix(\n in lab,\n var(--diffs-line-bg, var(--diffs-bg)) 75%,\n var(--diffs-selection-base)\n )\n );\n }\n\n [data-column-number] {\n color: var(--diffs-selection-number-fg);\n background-color: light-dark(\n color-mix(\n in lab,\n var(--diffs-line-bg, var(--diffs-bg)) 75%,\n var(--diffs-selection-base)\n ),\n color-mix(\n in lab,\n var(--diffs-line-bg, var(--diffs-bg)) 60%,\n var(--diffs-selection-base)\n )\n );\n }\n }\n }\n\n [data-error-wrapper] {\n overflow: auto;\n padding: var(--diffs-gap-block, var(--diffs-gap-fallback))\n var(--diffs-gap-inline, var(--diffs-gap-fallback));\n max-height: 400px;\n scrollbar-width: none;\n\n [data-error-message] {\n font-weight: bold;\n font-size: 18px;\n color: var(--diffs-deletion-base);\n }\n\n [data-error-stack] {\n color: var(--diffs-fg-number);\n }\n }\n}\n";
3
+
4
+ //#endregion
5
+ export { style_default as default };
6
+ //# sourceMappingURL=style.js.map