@openclaw/diffs 2026.5.27 → 2026.5.28-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/assets/viewer-runtime.js +50 -50
- package/dist/index.js +427 -88
- package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts +22 -7
- package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/CodeView.js +202 -105
- package/node_modules/@pierre/diffs/dist/components/CodeView.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/File.d.ts +2 -0
- package/node_modules/@pierre/diffs/dist/components/File.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/File.js +13 -9
- package/node_modules/@pierre/diffs/dist/components/File.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts +2 -0
- package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileDiff.js +12 -6
- package/node_modules/@pierre/diffs/dist/components/FileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts +4 -2
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js +23 -6
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts +9 -8
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js +329 -142
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/constants.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/index.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/index.js +3 -3
- package/node_modules/@pierre/diffs/dist/react/index.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts +1 -0
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +12 -5
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts +1 -0
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +4 -1
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/ssr/index.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/types.d.ts +7 -1
- package/node_modules/@pierre/diffs/dist/types.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.d.ts +28 -0
- package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.js +111 -0
- package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts +8 -0
- package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js +31 -0
- package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts +8 -0
- package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js +24 -0
- package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js +29 -30
- package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +8 -1
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.d.ts +65 -0
- package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js +94 -0
- package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts +4 -1
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js +49 -24
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/types.d.ts +2 -0
- package/node_modules/@pierre/diffs/dist/worker/types.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/worker-portable.js +163 -40
- package/node_modules/@pierre/diffs/dist/worker/worker-portable.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/worker.js +60 -30
- package/node_modules/@pierre/diffs/dist/worker/worker.js.map +1 -1
- package/node_modules/@pierre/diffs/package.json +1 -1
- package/node_modules/@shikijs/core/node_modules/@shikijs/types/LICENSE +22 -0
- package/node_modules/@shikijs/core/node_modules/@shikijs/types/README.md +7 -0
- package/node_modules/@shikijs/core/node_modules/@shikijs/types/dist/index.d.mts +885 -0
- package/node_modules/@shikijs/core/node_modules/@shikijs/types/dist/index.mjs +8 -0
- package/node_modules/@shikijs/core/node_modules/@shikijs/types/package.json +36 -0
- package/node_modules/@shikijs/engine-javascript/node_modules/@shikijs/types/LICENSE +22 -0
- package/node_modules/@shikijs/engine-javascript/node_modules/@shikijs/types/README.md +7 -0
- package/node_modules/@shikijs/engine-javascript/node_modules/@shikijs/types/dist/index.d.mts +885 -0
- package/node_modules/@shikijs/engine-javascript/node_modules/@shikijs/types/dist/index.mjs +8 -0
- package/node_modules/@shikijs/engine-javascript/node_modules/@shikijs/types/package.json +36 -0
- package/node_modules/@shikijs/engine-oniguruma/node_modules/@shikijs/types/LICENSE +22 -0
- package/node_modules/@shikijs/engine-oniguruma/node_modules/@shikijs/types/README.md +7 -0
- package/node_modules/@shikijs/engine-oniguruma/node_modules/@shikijs/types/dist/index.d.mts +885 -0
- package/node_modules/@shikijs/engine-oniguruma/node_modules/@shikijs/types/dist/index.mjs +8 -0
- package/node_modules/@shikijs/engine-oniguruma/node_modules/@shikijs/types/package.json +36 -0
- package/node_modules/@shikijs/langs/dist/apex.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/bird2.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/c3.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/cobol.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/csharp.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/css.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/dart.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/es-tag-sql.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/go.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/hack.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/julia.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/just.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/kusto.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/latex.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/luau.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/nextflow-groovy.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/php.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/ruby.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/sql.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/typespec.mjs +1 -1
- package/node_modules/@shikijs/langs/package.json +6 -3
- package/node_modules/@shikijs/themes/node_modules/@shikijs/types/LICENSE +22 -0
- package/node_modules/@shikijs/themes/node_modules/@shikijs/types/README.md +7 -0
- package/node_modules/@shikijs/themes/node_modules/@shikijs/types/dist/index.d.mts +885 -0
- package/node_modules/@shikijs/themes/node_modules/@shikijs/types/dist/index.mjs +8 -0
- package/node_modules/@shikijs/themes/node_modules/@shikijs/types/package.json +36 -0
- package/node_modules/@shikijs/transformers/node_modules/@shikijs/types/LICENSE +22 -0
- package/node_modules/@shikijs/transformers/node_modules/@shikijs/types/README.md +7 -0
- package/node_modules/@shikijs/transformers/node_modules/@shikijs/types/dist/index.d.mts +885 -0
- package/node_modules/@shikijs/transformers/node_modules/@shikijs/types/dist/index.mjs +8 -0
- package/node_modules/@shikijs/transformers/node_modules/@shikijs/types/package.json +36 -0
- package/node_modules/@shikijs/types/dist/index.d.mts +686 -684
- package/node_modules/@shikijs/types/dist/index.mjs +8 -7
- package/node_modules/@shikijs/types/package.json +6 -3
- package/node_modules/diff/CONTRIBUTING.md +1 -1
- package/node_modules/diff/dist/diff.js +32 -73
- package/node_modules/diff/dist/diff.min.js +1 -1
- package/node_modules/diff/libcjs/diff/word.d.ts.map +1 -1
- package/node_modules/diff/libcjs/diff/word.js +31 -15
- package/node_modules/diff/libcjs/util/string.d.ts +2 -14
- package/node_modules/diff/libcjs/util/string.d.ts.map +1 -1
- package/node_modules/diff/libcjs/util/string.js +2 -61
- package/node_modules/diff/libesm/diff/word.d.ts.map +1 -1
- package/node_modules/diff/libesm/diff/word.js +31 -16
- package/node_modules/diff/libesm/util/string.d.ts +2 -14
- package/node_modules/diff/libesm/util/string.d.ts.map +1 -1
- package/node_modules/diff/libesm/util/string.js +2 -58
- package/node_modules/diff/package.json +24 -22
- package/node_modules/diff/release-notes.md +0 -28
- package/node_modules/shiki/node_modules/@shikijs/langs/LICENSE +22 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/README.md +7 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/1c-query.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/1c-query.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/1c.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/1c.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/abap.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/abap.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/actionscript-3.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/actionscript-3.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ada.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ada.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/adoc.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/adoc.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-expression.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-expression.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-html.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-html.mjs +16 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-inline-style.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-inline-style.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-inline-template.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-inline-template.mjs +10 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-let-declaration.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-let-declaration.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-template-blocks.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-template-blocks.mjs +10 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-template.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-template.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-ts.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/angular-ts.mjs +18 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/apache.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/apache.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/apex.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/apex.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/apl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/apl.mjs +16 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/applescript.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/applescript.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ara.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ara.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/asciidoc.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/asciidoc.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/asm.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/asm.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/astro.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/astro.mjs +18 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/awk.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/awk.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ballerina.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ballerina.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/bash.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/bash.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/bat.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/bat.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/batch.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/batch.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/be.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/be.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/beancount.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/beancount.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/berry.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/berry.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/bibtex.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/bibtex.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/bicep.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/bicep.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/bird.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/bird.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/bird2.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/bird2.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/blade.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/blade.mjs +20 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/bsl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/bsl.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/c.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/c.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/c3.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/c3.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cadence.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cadence.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cairo.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cairo.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cdc.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cdc.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cjs.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cjs.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/clarity.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/clarity.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/clj.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/clj.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/clojure.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/clojure.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/closure-templates.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/closure-templates.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cmake.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cmake.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cmd.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cmd.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cobol.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cobol.mjs +10 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/codeowners.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/codeowners.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/codeql.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/codeql.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/coffee.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/coffee.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/coffeescript.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/coffeescript.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/common-lisp.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/common-lisp.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/console.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/console.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/coq.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/coq.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cpp-macro.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cpp-macro.mjs +12 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cpp.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cpp.mjs +14 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cql.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cql.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/crystal.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/crystal.mjs +18 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cs.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cs.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/csharp.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/csharp.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/css.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/css.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/csv.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/csv.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cts.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cts.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cue.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cue.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cypher.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/cypher.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/d.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/d.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/dart.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/dart.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/dax.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/dax.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/desktop.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/desktop.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/diff.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/diff.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/docker.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/docker.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/dockerfile.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/dockerfile.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/dotenv.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/dotenv.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/dream-maker.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/dream-maker.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/edge.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/edge.mjs +12 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/elisp.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/elisp.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/elixir.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/elixir.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/elm.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/elm.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/emacs-lisp.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/erb.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/erb.mjs +10 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/erl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/erl.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/erlang.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/erlang.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/es-tag-css.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/es-tag-css.mjs +12 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/es-tag-glsl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/es-tag-glsl.mjs +12 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/es-tag-html.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/es-tag-html.mjs +12 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/es-tag-sql.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/es-tag-sql.mjs +10 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/es-tag-xml.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/es-tag-xml.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/f.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/f.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/f03.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/f03.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/f08.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/f08.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/f18.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/f18.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/f77.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/f77.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/f90.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/f90.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/f95.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/f95.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fennel.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fennel.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fish.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fish.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fluent.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fluent.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/for.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/for.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fortran-fixed-form.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fortran-fixed-form.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fortran-free-form.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fortran-free-form.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fs.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fs.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fsharp.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fsharp.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fsl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/fsl.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ftl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ftl.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gd.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gd.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gdresource.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gdresource.mjs +10 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gdscript.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gdscript.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gdshader.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gdshader.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/genie.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/genie.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gherkin.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gherkin.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/git-commit.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/git-commit.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/git-rebase.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/git-rebase.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gjs.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gjs.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gleam.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gleam.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/glimmer-js.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/glimmer-js.mjs +14 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/glimmer-ts.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/glimmer-ts.mjs +14 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/glsl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/glsl.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gn.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gn.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gnuplot.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gnuplot.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/go.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/go.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gql.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gql.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/graphql.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/graphql.mjs +14 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/groovy.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/groovy.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gts.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/gts.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hack.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hack.mjs +10 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/haml.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/haml.mjs +10 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/handlebars.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/handlebars.mjs +14 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/haskell.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/haskell.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/haxe.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/haxe.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hbs.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hbs.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hcl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hcl.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hjson.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hjson.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hlsl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hlsl.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hs.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hs.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/html-derivative.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/html-derivative.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/html.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/html.mjs +10 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/http.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/http.mjs +14 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hurl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hurl.mjs +12 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hxml.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hxml.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hy.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/hy.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/imba.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/imba.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/index.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/index.mjs +353 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ini.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ini.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jade.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jade.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/java.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/java.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/javascript.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/javascript.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jinja-html.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jinja-html.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jinja.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jinja.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jison.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jison.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jl.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/js.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/js.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/json.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/json.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/json5.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/json5.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jsonc.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jsonc.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jsonl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jsonl.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jsonnet.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jsonnet.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jssm.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jssm.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jsx.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/jsx.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/julia.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/julia.mjs +16 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/just.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/just.mjs +18 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/kdl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/kdl.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/kotlin.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/kotlin.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/kql.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/kql.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/kt.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/kt.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/kts.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/kts.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/kusto.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/kusto.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/latex.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/latex.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/lean.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/lean.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/lean4.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/lean4.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/less.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/less.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/liquid.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/liquid.mjs +14 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/lisp.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/lisp.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/lit.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/lit.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/llvm.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/llvm.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/log.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/log.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/logo.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/logo.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/lua.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/lua.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/luau.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/luau.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/make.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/make.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/makefile.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/makefile.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/markdown-nix.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/markdown-nix.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/markdown-vue.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/markdown-vue.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/markdown.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/markdown.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/marko.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/marko.mjs +14 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/matlab.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/matlab.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mbt.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mbt.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mbti.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mbti.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/md.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/md.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mdc.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mdc.mjs +12 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mdx.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mdx.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mediawiki.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mediawiki.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mermaid.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mermaid.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mips.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mips.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mipsasm.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mipsasm.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mjs.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mjs.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mmd.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mmd.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mojo.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mojo.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/moonbit.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/moonbit.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/move.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/move.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mts.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/mts.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nar.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nar.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/narrat.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/narrat.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nextflow-groovy.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nextflow-groovy.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nextflow.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nextflow.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nf.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nf.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nginx.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nginx.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nim.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nim.mjs +20 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nix.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nix.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nu.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nu.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nushell.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/nushell.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/objc.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/objc.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/objective-c.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/objective-c.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/objective-cpp.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/objective-cpp.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ocaml.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ocaml.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/odin.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/odin.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/openscad.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/openscad.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/pascal.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/pascal.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/perl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/perl.mjs +16 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/perl6.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/perl6.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/php.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/php.mjs +18 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/pkl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/pkl.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/plsql.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/plsql.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/po.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/po.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/polar.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/polar.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/postcss.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/postcss.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/pot.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/pot.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/potx.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/potx.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/powerquery.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/powerquery.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/powershell.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/powershell.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/prisma.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/prisma.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/prolog.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/prolog.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/properties.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/properties.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/proto.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/proto.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/protobuf.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/protobuf.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ps.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ps.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ps1.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ps1.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/pug.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/pug.mjs +12 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/puppet.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/puppet.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/purescript.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/purescript.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/py.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/py.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/python.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/python.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ql.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ql.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/qml.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/qml.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/qmldir.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/qmldir.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/qss.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/qss.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/r.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/r.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/racket.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/racket.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/raku.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/raku.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/razor.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/razor.mjs +10 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/rb.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/rb.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/reg.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/reg.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/regex.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/regex.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/regexp.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/regexp.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/rel.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/rel.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/riscv.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/riscv.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ron.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ron.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/rosmsg.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/rosmsg.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/rs.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/rs.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/rst.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/rst.mjs +22 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ruby.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ruby.mjs +30 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/rust.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/rust.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/sas.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/sas.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/sass.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/sass.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/scad.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/scad.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/scala.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/scala.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/scheme.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/scheme.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/scss.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/scss.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/sdbl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/sdbl.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/sh.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/sh.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/shader.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/shader.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/shaderlab.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/shaderlab.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/shell.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/shell.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/shellscript.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/shellscript.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/shellsession.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/shellsession.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/smalltalk.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/smalltalk.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/solidity.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/solidity.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/soy.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/soy.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/sparql.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/sparql.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/spl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/spl.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/splunk.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/splunk.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/sql.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/sql.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ssh-config.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ssh-config.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/stata.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/stata.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/styl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/styl.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/stylus.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/stylus.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/surql.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/surql.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/surrealql.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/surrealql.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/svelte.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/svelte.mjs +14 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/swift.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/swift.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/system-verilog.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/system-verilog.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/systemd.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/systemd.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/talon.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/talon.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/talonscript.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/talonscript.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tasl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tasl.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tcl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tcl.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/templ.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/templ.mjs +12 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/terraform.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/terraform.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tex.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tex.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tf.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tf.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tfvars.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tfvars.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/toml.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/toml.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tres.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tres.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ts-tags.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ts-tags.mjs +18 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ts.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/ts.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tscn.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tscn.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tsp.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tsp.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tsv.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tsv.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tsx.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/tsx.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/turtle.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/turtle.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/twig.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/twig.mjs +18 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/typ.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/typ.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/typescript.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/typescript.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/typespec.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/typespec.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/typst.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/typst.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/v.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/v.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vala.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vala.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vb.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vb.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/verilog.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/verilog.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vhdl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vhdl.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vim.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vim.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/viml.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/viml.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vimscript.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vimscript.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vue-directives.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vue-directives.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vue-html.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vue-html.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vue-interpolations.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vue-interpolations.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vue-sfc-style-variable-injection.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vue-sfc-style-variable-injection.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vue-vine.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vue-vine.mjs +18 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vue.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vue.mjs +26 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vy.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vy.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vyper.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/vyper.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wasm.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wasm.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wenyan.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wenyan.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wgsl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wgsl.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wiki.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wiki.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wikitext.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wikitext.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wit.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wit.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wl.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wolfram.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/wolfram.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/xml.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/xml.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/xsl.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/xsl.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/yaml.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/yaml.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/yml.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/yml.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/zenscript.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/zenscript.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/zig.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/zig.mjs +5 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/zsh.d.mts +3 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/dist/zsh.mjs +2 -0
- package/node_modules/shiki/node_modules/@shikijs/langs/package.json +384 -0
- package/node_modules/shiki/node_modules/@shikijs/types/LICENSE +22 -0
- package/node_modules/shiki/node_modules/@shikijs/types/README.md +7 -0
- package/node_modules/shiki/node_modules/@shikijs/types/dist/index.d.mts +885 -0
- package/node_modules/shiki/node_modules/@shikijs/types/dist/index.mjs +8 -0
- package/node_modules/shiki/node_modules/@shikijs/types/package.json +36 -0
- package/npm-shrinkwrap.json +90 -14
- package/package.json +10 -8
|
@@ -83,7 +83,9 @@ declare class File<LAnnotation = undefined> {
|
|
|
83
83
|
constructor(options?: FileOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);
|
|
84
84
|
private handleHighlightRender;
|
|
85
85
|
rerender(): void;
|
|
86
|
+
onThemeChange(): void;
|
|
86
87
|
setOptions(options: FileOptions<LAnnotation> | undefined): void;
|
|
88
|
+
protected syncInteractionOptions(): void;
|
|
87
89
|
private mergeOptions;
|
|
88
90
|
setThemeType(themeType: ThemeTypes): void;
|
|
89
91
|
private applyCachedThemeState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"File.d.ts","names":["GetHoveredLineResult","InteractionManager","InteractionManagerBaseOptions","SelectionWriteOptions","ResizeManager","FileRenderer","AppliedThemeStyleCache","BaseCodeOptions","FileContents","LineAnnotation","PrePropertiesConfig","RenderFileMetadata","RenderRange","SelectedLineRange","ThemeTypes","WorkerPoolManager","FileRenderProps","LAnnotation","HTMLElement","FileHydrateProps","Omit","FileOptions","File","AnnotationElementCache","HydrationSetup","SVGElement","HTMLPreElement","HTMLStyleElement","Map","file","lineAnnotations","fileContainer","forceRender","preventEmit","containerWrapper","deferManagers","renderRange"],"sources":["../../src/components/File.d.ts"],"sourcesContent":["import { type GetHoveredLineResult, InteractionManager, type InteractionManagerBaseOptions, type SelectionWriteOptions } from '../managers/InteractionManager';\nimport { ResizeManager } from '../managers/ResizeManager';\nimport { FileRenderer } from '../renderers/FileRenderer';\nimport type { AppliedThemeStyleCache, BaseCodeOptions, FileContents, LineAnnotation, PrePropertiesConfig, RenderFileMetadata, RenderRange, SelectedLineRange, ThemeTypes } from '../types';\nimport type { WorkerPoolManager } from '../worker';\nexport interface FileRenderProps<LAnnotation> {\n file: FileContents;\n fileContainer?: HTMLElement;\n containerWrapper?: HTMLElement;\n deferManagers?: boolean;\n forceRender?: boolean;\n preventEmit?: boolean;\n lineAnnotations?: LineAnnotation<LAnnotation>[];\n renderRange?: RenderRange;\n}\nexport interface FileHydrateProps<LAnnotation> extends Omit<FileRenderProps<LAnnotation>, 'fileContainer'> {\n fileContainer: HTMLElement;\n prerenderedHTML?: string;\n}\nexport interface FileOptions<LAnnotation> extends BaseCodeOptions, InteractionManagerBaseOptions<'file'> {\n disableFileHeader?: boolean;\n renderHeaderPrefix?: RenderFileMetadata;\n renderHeaderMetadata?: RenderFileMetadata;\n renderCustomHeader?: RenderFileMetadata;\n /**\n * When true, errors during rendering are rethrown instead of being caught\n * and displayed in the DOM. Useful for testing or when you want to handle\n * errors yourself.\n */\n disableErrorHandling?: boolean;\n renderAnnotation?(annotation: LineAnnotation<LAnnotation>): HTMLElement | undefined;\n renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<'file'> | undefined): HTMLElement | null | undefined;\n onPostRender?(node: HTMLElement, instance: File<LAnnotation>): unknown;\n}\ninterface AnnotationElementCache<LAnnotation> {\n element: HTMLElement;\n annotation: LineAnnotation<LAnnotation>;\n}\ninterface HydrationSetup<LAnnotation> {\n file: FileContents;\n lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;\n}\nexport declare class File<LAnnotation = undefined> {\n options: FileOptions<LAnnotation>;\n private workerManager?;\n private isContainerManaged;\n static LoadedCustomComponent: boolean;\n readonly __id: string;\n protected fileContainer: HTMLElement | undefined;\n protected spriteSVG: SVGElement | undefined;\n protected pre: HTMLPreElement | undefined;\n protected code: HTMLElement | undefined;\n protected bufferBefore: HTMLElement | undefined;\n protected bufferAfter: HTMLElement | undefined;\n protected themeCSSStyle: HTMLStyleElement | undefined;\n protected appliedThemeCSS: AppliedThemeStyleCache | undefined;\n protected hasAdoptedThemeCSS: boolean;\n protected unsafeCSSStyle: HTMLStyleElement | undefined;\n protected appliedUnsafeCSS: string | undefined;\n protected gutterUtilityContent: HTMLElement | undefined;\n protected errorWrapper: HTMLElement | undefined;\n protected placeHolder: HTMLElement | undefined;\n protected lastRenderedHeaderHTML: string | undefined;\n protected cachedHeaderHTML: string | undefined;\n protected appliedPreAttributes: PrePropertiesConfig | undefined;\n protected lastRowCount: number | undefined;\n protected headerElement: HTMLElement | undefined;\n protected headerCustom: HTMLElement | undefined;\n protected headerPrefix: HTMLElement | undefined;\n protected headerMetadata: HTMLElement | undefined;\n protected fileRenderer: FileRenderer<LAnnotation>;\n protected resizeManager: ResizeManager;\n protected interactionManager: InteractionManager<'file'>;\n protected annotationCache: Map<string, AnnotationElementCache<LAnnotation>>;\n protected lineAnnotations: LineAnnotation<LAnnotation>[];\n protected managersDirty: boolean;\n protected file: FileContents | undefined;\n protected renderRange: RenderRange | undefined;\n protected enabled: boolean;\n constructor(options?: FileOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);\n private handleHighlightRender;\n rerender(): void;\n setOptions(options: FileOptions<LAnnotation> | undefined): void;\n private mergeOptions;\n setThemeType(themeType: ThemeTypes): void;\n private applyCachedThemeState;\n private hasThemeChanged;\n getHoveredLine: () => {\n lineNumber: number;\n } | undefined;\n setLineAnnotations(lineAnnotations: LineAnnotation<LAnnotation>[]): void;\n setSelectedLines(range: SelectedLineRange | null, options?: SelectionWriteOptions): void;\n flushManagers(): void;\n cleanUp(recycle?: boolean): void;\n virtualizedSetup(): void;\n hydrate(props: FileHydrateProps<LAnnotation>): void;\n protected hydrateElements(fileContainer: HTMLElement, prerenderedHTML: string | undefined): void;\n protected hydrationSetup({ file, lineAnnotations }: HydrationSetup<LAnnotation>): void;\n getOrCreateLineCache(file?: FileContents | undefined): string[];\n render({ file, fileContainer, forceRender, preventEmit, containerWrapper, deferManagers, lineAnnotations, renderRange }: FileRenderProps<LAnnotation>): boolean;\n private emitPostRender;\n private removeRenderedCode;\n private clearAuxiliaryNodes;\n private canPartiallyRender;\n renderPlaceholder(height: number): boolean;\n primeHighlightCache(): void;\n private cleanChildNodes;\n private renderAnnotations;\n private renderGutterUtility;\n private injectUnsafeCSS;\n private applyThemeState;\n private hydrateMeasuredScrollbar;\n private applyFullRender;\n private applyPartialRender;\n private getColumns;\n private trimDOMToOverlap;\n private getDOMBoundaryIndices;\n private getLineIndexFromDOMNode;\n private applyBuffers;\n protected shouldDisableVirtualizationBuffers(): boolean;\n private applyHeaderToDOM;\n private clearHeaderSlots;\n private upsertHeaderSlotElement;\n private replaceHeaderSlotContent;\n private createHeaderSlotElement;\n protected getOrCreateFileContainerNode(fileContainer?: HTMLElement, parentNode?: HTMLElement): HTMLElement;\n private adoptReusableShellElements;\n private ensureSpriteSVG;\n private getOrCreatePreNode;\n private syncCodeNodeFromPre;\n private applyPreNodeAttributes;\n private applyErrorToDOM;\n private cleanupErrorWrapper;\n}\nexport {};\n//# sourceMappingURL=File.d.ts.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"File.d.ts","names":["GetHoveredLineResult","InteractionManager","InteractionManagerBaseOptions","SelectionWriteOptions","ResizeManager","FileRenderer","AppliedThemeStyleCache","BaseCodeOptions","FileContents","LineAnnotation","PrePropertiesConfig","RenderFileMetadata","RenderRange","SelectedLineRange","ThemeTypes","WorkerPoolManager","FileRenderProps","LAnnotation","HTMLElement","FileHydrateProps","Omit","FileOptions","File","AnnotationElementCache","HydrationSetup","SVGElement","HTMLPreElement","HTMLStyleElement","Map","file","lineAnnotations","fileContainer","forceRender","preventEmit","containerWrapper","deferManagers","renderRange"],"sources":["../../src/components/File.d.ts"],"sourcesContent":["import { type GetHoveredLineResult, InteractionManager, type InteractionManagerBaseOptions, type SelectionWriteOptions } from '../managers/InteractionManager';\nimport { ResizeManager } from '../managers/ResizeManager';\nimport { FileRenderer } from '../renderers/FileRenderer';\nimport type { AppliedThemeStyleCache, BaseCodeOptions, FileContents, LineAnnotation, PrePropertiesConfig, RenderFileMetadata, RenderRange, SelectedLineRange, ThemeTypes } from '../types';\nimport type { WorkerPoolManager } from '../worker';\nexport interface FileRenderProps<LAnnotation> {\n file: FileContents;\n fileContainer?: HTMLElement;\n containerWrapper?: HTMLElement;\n deferManagers?: boolean;\n forceRender?: boolean;\n preventEmit?: boolean;\n lineAnnotations?: LineAnnotation<LAnnotation>[];\n renderRange?: RenderRange;\n}\nexport interface FileHydrateProps<LAnnotation> extends Omit<FileRenderProps<LAnnotation>, 'fileContainer'> {\n fileContainer: HTMLElement;\n prerenderedHTML?: string;\n}\nexport interface FileOptions<LAnnotation> extends BaseCodeOptions, InteractionManagerBaseOptions<'file'> {\n disableFileHeader?: boolean;\n renderHeaderPrefix?: RenderFileMetadata;\n renderHeaderMetadata?: RenderFileMetadata;\n renderCustomHeader?: RenderFileMetadata;\n /**\n * When true, errors during rendering are rethrown instead of being caught\n * and displayed in the DOM. Useful for testing or when you want to handle\n * errors yourself.\n */\n disableErrorHandling?: boolean;\n renderAnnotation?(annotation: LineAnnotation<LAnnotation>): HTMLElement | undefined;\n renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<'file'> | undefined): HTMLElement | null | undefined;\n onPostRender?(node: HTMLElement, instance: File<LAnnotation>): unknown;\n}\ninterface AnnotationElementCache<LAnnotation> {\n element: HTMLElement;\n annotation: LineAnnotation<LAnnotation>;\n}\ninterface HydrationSetup<LAnnotation> {\n file: FileContents;\n lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;\n}\nexport declare class File<LAnnotation = undefined> {\n options: FileOptions<LAnnotation>;\n private workerManager?;\n private isContainerManaged;\n static LoadedCustomComponent: boolean;\n readonly __id: string;\n protected fileContainer: HTMLElement | undefined;\n protected spriteSVG: SVGElement | undefined;\n protected pre: HTMLPreElement | undefined;\n protected code: HTMLElement | undefined;\n protected bufferBefore: HTMLElement | undefined;\n protected bufferAfter: HTMLElement | undefined;\n protected themeCSSStyle: HTMLStyleElement | undefined;\n protected appliedThemeCSS: AppliedThemeStyleCache | undefined;\n protected hasAdoptedThemeCSS: boolean;\n protected unsafeCSSStyle: HTMLStyleElement | undefined;\n protected appliedUnsafeCSS: string | undefined;\n protected gutterUtilityContent: HTMLElement | undefined;\n protected errorWrapper: HTMLElement | undefined;\n protected placeHolder: HTMLElement | undefined;\n protected lastRenderedHeaderHTML: string | undefined;\n protected cachedHeaderHTML: string | undefined;\n protected appliedPreAttributes: PrePropertiesConfig | undefined;\n protected lastRowCount: number | undefined;\n protected headerElement: HTMLElement | undefined;\n protected headerCustom: HTMLElement | undefined;\n protected headerPrefix: HTMLElement | undefined;\n protected headerMetadata: HTMLElement | undefined;\n protected fileRenderer: FileRenderer<LAnnotation>;\n protected resizeManager: ResizeManager;\n protected interactionManager: InteractionManager<'file'>;\n protected annotationCache: Map<string, AnnotationElementCache<LAnnotation>>;\n protected lineAnnotations: LineAnnotation<LAnnotation>[];\n protected managersDirty: boolean;\n protected file: FileContents | undefined;\n protected renderRange: RenderRange | undefined;\n protected enabled: boolean;\n constructor(options?: FileOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);\n private handleHighlightRender;\n rerender(): void;\n onThemeChange(): void;\n setOptions(options: FileOptions<LAnnotation> | undefined): void;\n protected syncInteractionOptions(): void;\n private mergeOptions;\n setThemeType(themeType: ThemeTypes): void;\n private applyCachedThemeState;\n private hasThemeChanged;\n getHoveredLine: () => {\n lineNumber: number;\n } | undefined;\n setLineAnnotations(lineAnnotations: LineAnnotation<LAnnotation>[]): void;\n setSelectedLines(range: SelectedLineRange | null, options?: SelectionWriteOptions): void;\n flushManagers(): void;\n cleanUp(recycle?: boolean): void;\n virtualizedSetup(): void;\n hydrate(props: FileHydrateProps<LAnnotation>): void;\n protected hydrateElements(fileContainer: HTMLElement, prerenderedHTML: string | undefined): void;\n protected hydrationSetup({ file, lineAnnotations }: HydrationSetup<LAnnotation>): void;\n getOrCreateLineCache(file?: FileContents | undefined): string[];\n render({ file, fileContainer, forceRender, preventEmit, containerWrapper, deferManagers, lineAnnotations, renderRange }: FileRenderProps<LAnnotation>): boolean;\n private emitPostRender;\n private removeRenderedCode;\n private clearAuxiliaryNodes;\n private canPartiallyRender;\n renderPlaceholder(height: number): boolean;\n primeHighlightCache(): void;\n private cleanChildNodes;\n private renderAnnotations;\n private renderGutterUtility;\n private injectUnsafeCSS;\n private applyThemeState;\n private hydrateMeasuredScrollbar;\n private applyFullRender;\n private applyPartialRender;\n private getColumns;\n private trimDOMToOverlap;\n private getDOMBoundaryIndices;\n private getLineIndexFromDOMNode;\n private applyBuffers;\n protected shouldDisableVirtualizationBuffers(): boolean;\n private applyHeaderToDOM;\n private clearHeaderSlots;\n private upsertHeaderSlotElement;\n private replaceHeaderSlotContent;\n private createHeaderSlotElement;\n protected getOrCreateFileContainerNode(fileContainer?: HTMLElement, parentNode?: HTMLElement): HTMLElement;\n private adoptReusableShellElements;\n private ensureSpriteSVG;\n private getOrCreatePreNode;\n private syncCodeNodeFromPre;\n private applyPreNodeAttributes;\n private applyErrorToDOM;\n private cleanupErrorWrapper;\n}\nexport {};\n//# sourceMappingURL=File.d.ts.map"],"mappings":";;;;;;;;UAKiBgB;QACPR;kBACUU;EAFHF,gBAAAA,CAAAA,EAGME,WAHSD;EACtBT,aAAAA,CAAAA,EAAAA,OAAAA;EACUU,WAAAA,CAAAA,EAAAA,OAAAA;EACGA,WAAAA,CAAAA,EAAAA,OAAAA;EAIcD,eAAAA,CAAAA,EAAfR,cAAeQ,CAAAA,WAAAA,CAAAA,EAAAA;EAAfR,WAAAA,CAAAA,EACJG,WADIH;;AACO,UAEZU,gBAFY,CAAA,WAAA,CAAA,SAE0BC,IAF1B,CAE+BJ,eAF/B,CAE+CC,WAF/C,CAAA,EAAA,eAAA,CAAA,CAAA;EAEZE,aAAAA,EACED,WADcD;EAA2CA,eAAAA,CAAAA,EAAAA,MAAAA;;AACzDC,UAGFG,WAHEH,CAAAA,WAAAA,CAAAA,SAG+BX,eAH/BW,EAGgDhB,6BAHhDgB,CAAAA,MAAAA,CAAAA,CAAAA;EADoCE,iBAAAA,CAAAA,EAAAA,OAAAA;EAAI,kBAAA,CAAA,EAMlCT,kBANkC;EAI1CU,oBAAW,CAAAJ,EAGDN,kBAHC;EAEHA,kBAAAA,CAAAA,EAEAA,kBAFAA;EACEA;;;;;EASmBX,oBAAAA,CAAAA,EAAAA,OAAAA;EAA2CkB,gBAAAA,EAAAA,UAAAA,EADvDT,cACuDS,CADxCD,WACwCC,CAAAA,CAAAA,EADzBA,WACyBA,GAAAA,SAAAA;EACjEA,mBAAAA,EAAAA,aAAAA,EAAAA,GAAAA,GADsBlB,oBACtBkB,CAAAA,MAAAA,CAAAA,GAAAA,SAAAA,CAAAA,EADiEA,WACjEA,GAAAA,IAAAA,GAAAA,SAAAA;EAA4BD,YAAAA,EAAAA,IAAAA,EAA5BC,WAA4BD,EAAAA,QAAAA,EAALK,IAAKL,CAAAA,WAAAA,CAAAA,CAAAA,EAAAA,OAAAA;;UAE1CM,sBAfwChB,CAAAA,WAAAA,CAAAA,CAAAA;EAAiBL,OAAAA,EAgBtDgB,WAhBsDhB;EAA6B,UAAA,EAiBhFO,cAjBgF,CAiBjEQ,WAjBiE,CAAA;AAc/F;UAKSO,cAHGN,CAAAA,WAAAA,CAAAA,CAAAA;EACkBD,IAAAA,EAGrBT,YAHqBS;EAAfR,eAAAA,EAIKA,cAJLA,CAIoBQ,WAJpBR,CAAAA,EAAAA,GAAAA,SAAAA;;AAENe,cAIWF,IAJG,CAAA,cAAAL,SAAA,CAAA,CAAA;EACdT,OAAAA,EAIGa,WAJHb,CAIeS,WAJfT,CAAAA;EAC0BS,QAAAA,aAAAA;EAAfR,QAAAA,kBAAAA;EAAc,OAAA,qBAAA,EAAA,OAAA;EAEda,SAAI,IAAA,EAAAL,MAAAA;EACAA,UAAAA,aAAAA,EAKIC,WALJD,GAAAA,SAAAA;EAAZI,UAAAA,SAAAA,EAMYI,UANZJ,GAAAA,SAAAA;EAKgBH,UAAAA,GAAAA,EAEVQ,cAFUR,GAAAA,SAAAA;EACJO,UAAAA,IAAAA,EAELP,WAFKO,GAAAA,SAAAA;EACNC,UAAAA,YAAAA,EAESR,WAFTQ,GAAAA,SAAAA;EACCR,UAAAA,WAAAA,EAEOA,WAFPA,GAAAA,SAAAA;EACQA,UAAAA,aAAAA,EAECS,gBAFDT,GAAAA,SAAAA;EACDA,UAAAA,eAAAA,EAEIZ,sBAFJY,GAAAA,SAAAA;EACES,UAAAA,kBAAAA,EAAAA,OAAAA;EACErB,UAAAA,cAAAA,EAEDqB,gBAFCrB,GAAAA,SAAAA;EAEDqB,UAAAA,gBAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAEMT,UAAAA,oBAAAA,EAAAA,WAAAA,GAAAA,SAAAA;EACRA,UAAAA,YAAAA,EAAAA,WAAAA,GAAAA,SAAAA;EACDA,UAAAA,WAAAA,EAAAA,WAAAA,GAAAA,SAAAA;EAGSR,UAAAA,sBAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAEPQ,UAAAA,gBAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EACDA,UAAAA,oBAAAA,EAHQR,mBAGRQ,GAAAA,SAAAA;EACAA,UAAAA,YAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EACEA,UAAAA,aAAAA,EAHDA,WAGCA,GAAAA,SAAAA;EACWD,UAAAA,YAAAA,EAHbC,WAGaD,GAAAA,SAAAA;EAAbZ,UAAAA,YAAAA,EAFAa,WAEAb,GAAAA,SAAAA;EACCD,UAAAA,cAAAA,EAFCc,WAEDd,GAAAA,SAAAA;EACKH,UAAAA,YAAAA,EAFNI,YAEMJ,CAFOgB,WAEPhB,CAAAA;EACgCgB,UAAAA,aAAAA,EAFrCb,aAEqCa;EAAvBM,UAAAA,kBAAAA,EADTtB,kBACSsB,CAAAA,MAAAA,CAAAA;EAAZK,UAAAA,eAAAA,EAAAA,GAAAA,CAAAA,MAAAA,EAAYL,sBAAZK,CAAmCX,WAAnCW,CAAAA,CAAAA;EACeX,UAAAA,eAAAA,EAAfR,cAAeQ,CAAAA,WAAAA,CAAAA,EAAAA;EAAfR,UAAAA,aAAAA,EAAAA,OAAAA;EAEXD,UAAAA,IAAAA,EAAAA,YAAAA,GAAAA,SAAAA;EACOI,UAAAA,WAAAA,EAAAA,WAAAA,GAAAA,SAAAA;EAEWK,UAAAA,OAAAA,EAAAA,OAAAA;EAAZI,WAAAA,CAAAA,OAAAA,CAAAA,EAAAA,WAAAA,CAAYJ,WAAZI,CAAAA,EAAAA,aAAAA,CAAAA,EAA0CN,iBAA1CM,GAAAA,SAAAA,EAAAA,kBAAAA,CAAAA,EAAAA,OAAAA;EAA0CN,QAAAA,qBAAAA;EAIhCE,QAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAAZI,aAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAGIP,UAAAA,CAAAA,OAAAA,EAHJO,WAGIP,CAHQG,WAGRH,CAAAA,GAAAA,SAAAA,CAAAA,EAAAA,IAAAA;EAM2BG,UAAAA,sBAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAAfR,QAAAA,YAAAA;EACZI,YAAAA,CAAAA,SAAAA,EAPAC,UAOAD,CAAAA,EAAAA,IAAAA;EAAoCV,QAAAA,qBAAAA;EAI5Bc,QAAAA,eAAAA;EAAjBE,cAAAA,EAAAA,GAAAA,GAAAA;IAC0BD,UAAAA,EAAAA,MAAAA;EACdW,CAAAA,GAAAA,SAAAA;EAAMC,kBAAAA,CAAAA,eAAAA,EAPGrB,cAOHqB,CAPkBb,WAOlBa,CAAAA,EAAAA,CAAAA,EAAAA,IAAAA;EAAkCb,gBAAAA,CAAAA,KAAAA,EAN3CJ,iBAM2CI,GAAAA,IAAAA,EAAAA,OAAAA,CAAAA,EANPd,qBAMOc,CAAAA,EAAAA,IAAAA;EAAfO,aAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EACxBhB,OAAAA,CAAAA,OAAAA,CAAAA,EAAAA,OAAAA,CAAAA,EAAAA,IAAAA;EACnBqB,gBAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAAME,OAAAA,CAAAA,KAAAA,EAJAZ,gBAIAY,CAJiBd,WAIjBc,CAAAA,CAAAA,EAAAA,IAAAA;EAAeC,UAAAA,eAAAA,CAAAA,aAAAA,EAHWd,WAGXc,EAAAA,eAAAA,EAAAA,MAAAA,GAAAA,SAAAA,CAAAA,EAAAA,IAAAA;EAAaC,UAAAA,cAAAA,CAAAA;IAAAA,IAAAA;IAAAA;EAAAA,CAAAA,EAFST,cAETS,CAFwBhB,WAExBgB,CAAAA,CAAAA,EAAAA,IAAAA;EAAaC,oBAAAA,CAAAA,IAAAA,CAAAA,EAD5B1B,YAC4B0B,GAAAA,SAAAA,CAAAA,EAAAA,MAAAA,EAAAA;EAAkBC,MAAAA,CAAAA;IAAAA,IAAAA;IAAAA,aAAAA;IAAAA,WAAAA;IAAAA,WAAAA;IAAAA,gBAAAA;IAAAA,aAAAA;IAAAA,eAAAA;IAAAA;EAAAA,CAAAA,EAA+CnB,eAA/CmB,CAA+DlB,WAA/DkB,CAAAA,CAAAA,EAAAA,OAAAA;EAAeL,QAAAA,cAAAA;EAAiBM,QAAAA,kBAAAA;EAA+BnB,QAAAA,mBAAAA;EAAhBD,QAAAA,kBAAAA;EA0BlEE,iBAAAA,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA,EAAAA,OAAAA;EAA0BA,mBAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAAcA,QAAAA,eAAAA;EAAW,QAAA,iBAAA;;;;;;;;;;;;;;;;;;yDAAnDA,0BAA0BA,cAAcA"}
|
|
@@ -16,6 +16,7 @@ import { createGutterUtilityContentNode } from "../utils/createGutterUtilityCont
|
|
|
16
16
|
import { createUnsafeCSSStyleNode } from "../utils/createUnsafeCSSStyleNode.js";
|
|
17
17
|
import { getMeasuredScrollbarGutter } from "../utils/scrollbarGutter.js";
|
|
18
18
|
import { patchScrollbarGutterSize, wrapThemeCSS, wrapUnsafeCSS } from "../utils/cssWrappers.js";
|
|
19
|
+
import { getFileRendererOptions } from "../utils/getFileRendererOptions.js";
|
|
19
20
|
import { getOrCreateCodeNode } from "../utils/getOrCreateCodeNode.js";
|
|
20
21
|
import { upsertHostThemeStyle } from "../utils/hostTheme.js";
|
|
21
22
|
import { prerenderHTMLIfNecessary } from "../utils/prerenderHTMLIfNecessary.js";
|
|
@@ -80,11 +81,18 @@ var File = class {
|
|
|
80
81
|
renderRange: this.renderRange
|
|
81
82
|
});
|
|
82
83
|
}
|
|
84
|
+
onThemeChange() {
|
|
85
|
+
this.fileRenderer.clearRenderCache();
|
|
86
|
+
this.rerender();
|
|
87
|
+
}
|
|
83
88
|
setOptions(options) {
|
|
84
89
|
if (options == null) return;
|
|
85
90
|
this.options = options;
|
|
86
91
|
this.cachedHeaderHTML = void 0;
|
|
87
|
-
this.
|
|
92
|
+
this.syncInteractionOptions();
|
|
93
|
+
}
|
|
94
|
+
syncInteractionOptions() {
|
|
95
|
+
this.interactionManager.setOptions(pluckInteractionOptions(this.options));
|
|
88
96
|
}
|
|
89
97
|
mergeOptions(options) {
|
|
90
98
|
this.options = {
|
|
@@ -218,10 +226,8 @@ var File = class {
|
|
|
218
226
|
hydrationSetup({ file, lineAnnotations }) {
|
|
219
227
|
this.lineAnnotations = lineAnnotations ?? this.lineAnnotations;
|
|
220
228
|
this.file = file;
|
|
221
|
-
this.fileRenderer.setOptions(
|
|
222
|
-
|
|
223
|
-
headerRenderMode: this.options.renderCustomHeader != null ? "custom" : "default"
|
|
224
|
-
});
|
|
229
|
+
this.fileRenderer.setOptions(getFileRendererOptions(this.options));
|
|
230
|
+
this.syncInteractionOptions();
|
|
225
231
|
if (this.pre == null) return;
|
|
226
232
|
this.fileRenderer.hydrate(file);
|
|
227
233
|
this.renderAnnotations();
|
|
@@ -245,10 +251,8 @@ var File = class {
|
|
|
245
251
|
this.renderRange = nextRenderRange;
|
|
246
252
|
if (didFileChange) this.cachedHeaderHTML = void 0;
|
|
247
253
|
this.file = file;
|
|
248
|
-
this.fileRenderer.setOptions(
|
|
249
|
-
|
|
250
|
-
headerRenderMode: this.options.renderCustomHeader != null ? "custom" : "default"
|
|
251
|
-
});
|
|
254
|
+
this.fileRenderer.setOptions(getFileRendererOptions(this.options));
|
|
255
|
+
this.syncInteractionOptions();
|
|
252
256
|
if (lineAnnotations != null) this.setLineAnnotations(lineAnnotations);
|
|
253
257
|
this.fileRenderer.setLineAnnotations(this.lineAnnotations);
|
|
254
258
|
const { disableErrorHandling = false, disableFileHeader = false } = this.options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"File.js","names":["EMPTY_STRINGS: string[]","options: FileOptions<LAnnotation>","workerManager?: WorkerPoolManager | undefined","error: unknown","preProperties: PrePropertiesConfig"],"sources":["../../src/components/File.ts"],"sourcesContent":["import type { Element as HASTElement } from 'hast';\nimport { toHtml } from 'hast-util-to-html';\n\nimport {\n CUSTOM_HEADER_SLOT_ID,\n DEFAULT_THEMES,\n DEFAULT_TOKENIZE_MAX_LENGTH,\n DIFFS_TAG_NAME,\n EMPTY_RENDER_RANGE,\n HEADER_METADATA_SLOT_ID,\n HEADER_PREFIX_SLOT_ID,\n THEME_CSS_ATTRIBUTE,\n UNSAFE_CSS_ATTRIBUTE,\n} from '../constants';\nimport {\n type GetHoveredLineResult,\n InteractionManager,\n type InteractionManagerBaseOptions,\n pluckInteractionOptions,\n type SelectionWriteOptions,\n} from '../managers/InteractionManager';\nimport { ResizeManager } from '../managers/ResizeManager';\nimport { FileRenderer, type FileRenderResult } from '../renderers/FileRenderer';\nimport { SVGSpriteSheet } from '../sprite';\nimport type {\n AppliedThemeStyleCache,\n BaseCodeOptions,\n FileContents,\n LineAnnotation,\n PrePropertiesConfig,\n RenderFileMetadata,\n RenderRange,\n SelectedLineRange,\n ThemeTypes,\n} from '../types';\nimport { areFilesEqual } from '../utils/areFilesEqual';\nimport { areLineAnnotationsEqual } from '../utils/areLineAnnotationsEqual';\nimport { arePrePropertiesEqual } from '../utils/arePrePropertiesEqual';\nimport { areRenderRangesEqual } from '../utils/areRenderRangesEqual';\nimport { areThemesEqual } from '../utils/areThemesEqual';\nimport { createAnnotationWrapperNode } from '../utils/createAnnotationWrapperNode';\nimport { createGutterUtilityContentNode } from '../utils/createGutterUtilityContentNode';\nimport { createUnsafeCSSStyleNode } from '../utils/createUnsafeCSSStyleNode';\nimport {\n patchScrollbarGutterSize,\n wrapThemeCSS,\n wrapUnsafeCSS,\n} from '../utils/cssWrappers';\nimport { getLineAnnotationName } from '../utils/getLineAnnotationName';\nimport { getOrCreateCodeNode } from '../utils/getOrCreateCodeNode';\nimport { upsertHostThemeStyle } from '../utils/hostTheme';\nimport { isFilePlainText } from '../utils/isFilePlainText';\nimport { isStyleNode } from '../utils/isStyleNode';\nimport { prerenderHTMLIfNecessary } from '../utils/prerenderHTMLIfNecessary';\nimport { getMeasuredScrollbarGutter } from '../utils/scrollbarGutter';\nimport { setPreNodeProperties } from '../utils/setWrapperNodeProps';\nimport type { WorkerPoolManager } from '../worker';\nimport { DiffsContainerLoaded } from './web-components';\n\nconst EMPTY_STRINGS: string[] = [];\n\nexport interface FileRenderProps<LAnnotation> {\n file: FileContents;\n fileContainer?: HTMLElement;\n containerWrapper?: HTMLElement;\n deferManagers?: boolean;\n forceRender?: boolean;\n preventEmit?: boolean;\n lineAnnotations?: LineAnnotation<LAnnotation>[];\n renderRange?: RenderRange;\n}\n\nexport interface FileHydrateProps<LAnnotation> extends Omit<\n FileRenderProps<LAnnotation>,\n 'fileContainer'\n> {\n fileContainer: HTMLElement;\n prerenderedHTML?: string;\n}\n\nexport interface FileOptions<LAnnotation>\n extends BaseCodeOptions, InteractionManagerBaseOptions<'file'> {\n disableFileHeader?: boolean;\n renderHeaderPrefix?: RenderFileMetadata;\n renderHeaderMetadata?: RenderFileMetadata;\n renderCustomHeader?: RenderFileMetadata;\n /**\n * When true, errors during rendering are rethrown instead of being caught\n * and displayed in the DOM. Useful for testing or when you want to handle\n * errors yourself.\n */\n disableErrorHandling?: boolean;\n renderAnnotation?(\n annotation: LineAnnotation<LAnnotation>\n ): HTMLElement | undefined;\n renderGutterUtility?(\n getHoveredRow: () => GetHoveredLineResult<'file'> | undefined\n ): HTMLElement | null | undefined;\n\n onPostRender?(node: HTMLElement, instance: File<LAnnotation>): unknown;\n}\n\ninterface AnnotationElementCache<LAnnotation> {\n element: HTMLElement;\n annotation: LineAnnotation<LAnnotation>;\n}\n\ninterface ColumnElements {\n gutter: HTMLElement;\n content: HTMLElement;\n}\n\ninterface HydrationSetup<LAnnotation> {\n file: FileContents;\n lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;\n}\n\nlet instanceId = -1;\n\nexport class File<LAnnotation = undefined> {\n static LoadedCustomComponent: boolean = DiffsContainerLoaded;\n\n readonly __id: string = `file:${++instanceId}`;\n\n protected fileContainer: HTMLElement | undefined;\n protected spriteSVG: SVGElement | undefined;\n protected pre: HTMLPreElement | undefined;\n protected code: HTMLElement | undefined;\n protected bufferBefore: HTMLElement | undefined;\n protected bufferAfter: HTMLElement | undefined;\n protected themeCSSStyle: HTMLStyleElement | undefined;\n protected appliedThemeCSS: AppliedThemeStyleCache | undefined;\n protected hasAdoptedThemeCSS = false;\n protected unsafeCSSStyle: HTMLStyleElement | undefined;\n protected appliedUnsafeCSS: string | undefined;\n protected gutterUtilityContent: HTMLElement | undefined;\n protected errorWrapper: HTMLElement | undefined;\n protected placeHolder: HTMLElement | undefined;\n protected lastRenderedHeaderHTML: string | undefined;\n protected cachedHeaderHTML: string | undefined;\n protected appliedPreAttributes: PrePropertiesConfig | undefined;\n protected lastRowCount: number | undefined;\n\n protected headerElement: HTMLElement | undefined;\n protected headerCustom: HTMLElement | undefined;\n protected headerPrefix: HTMLElement | undefined;\n protected headerMetadata: HTMLElement | undefined;\n\n protected fileRenderer: FileRenderer<LAnnotation>;\n protected resizeManager: ResizeManager;\n protected interactionManager: InteractionManager<'file'>;\n\n protected annotationCache: Map<string, AnnotationElementCache<LAnnotation>> =\n new Map();\n protected lineAnnotations: LineAnnotation<LAnnotation>[] = [];\n protected managersDirty = false;\n\n protected file: FileContents | undefined;\n protected renderRange: RenderRange | undefined;\n protected enabled = true;\n\n constructor(\n public options: FileOptions<LAnnotation> = { theme: DEFAULT_THEMES },\n private workerManager?: WorkerPoolManager | undefined,\n private isContainerManaged = false\n ) {\n this.fileRenderer = new FileRenderer<LAnnotation>(\n options,\n this.handleHighlightRender,\n this.workerManager\n );\n this.resizeManager = new ResizeManager();\n this.interactionManager = new InteractionManager(\n 'file',\n pluckInteractionOptions(options)\n );\n this.workerManager?.subscribeToThemeChanges(this);\n }\n\n private handleHighlightRender = (): void => {\n this.rerender();\n };\n\n public rerender(): void {\n if (!this.enabled || this.file == null) return;\n this.render({\n file: this.file,\n forceRender: true,\n renderRange: this.renderRange,\n });\n }\n\n public setOptions(options: FileOptions<LAnnotation> | undefined): void {\n if (options == null) return;\n this.options = options;\n this.cachedHeaderHTML = undefined;\n this.interactionManager.setOptions(pluckInteractionOptions(options));\n }\n\n private mergeOptions(options: Partial<FileOptions<LAnnotation>>): void {\n this.options = { ...this.options, ...options };\n }\n\n public setThemeType(themeType: ThemeTypes): void {\n if ((this.options.themeType ?? 'system') === themeType) {\n return;\n }\n this.mergeOptions({ themeType });\n this.applyCachedThemeState(themeType);\n }\n\n private applyCachedThemeState(themeType: ThemeTypes): boolean {\n if (\n typeof this.options.theme === 'string' ||\n this.fileContainer == null ||\n this.appliedThemeCSS == null\n ) {\n return false;\n }\n const effectiveThemeType = this.appliedThemeCSS.baseThemeType ?? themeType;\n if (this.appliedThemeCSS.themeType === effectiveThemeType) {\n return false;\n }\n this.applyThemeState(\n this.fileContainer,\n this.appliedThemeCSS.themeStyles,\n themeType,\n this.appliedThemeCSS.baseThemeType\n );\n return true;\n }\n\n private hasThemeChanged(): boolean {\n return (\n this.appliedThemeCSS != null &&\n !areThemesEqual(\n this.appliedThemeCSS.theme,\n this.options.theme ?? DEFAULT_THEMES\n )\n );\n }\n\n public getHoveredLine = (): GetHoveredLineResult<'file'> | undefined => {\n return this.interactionManager.getHoveredLine();\n };\n\n public setLineAnnotations(\n lineAnnotations: LineAnnotation<LAnnotation>[]\n ): void {\n this.lineAnnotations = lineAnnotations;\n }\n\n public setSelectedLines(\n range: SelectedLineRange | null,\n options?: SelectionWriteOptions\n ): void {\n this.interactionManager.setSelection(range, options);\n }\n\n public flushManagers(): void {\n if (!this.managersDirty || this.pre == null) {\n this.managersDirty = false;\n return;\n }\n\n const { overflow = 'scroll' } = this.options;\n this.interactionManager.setup(this.pre);\n this.resizeManager.setup(this.pre, overflow === 'wrap');\n this.managersDirty = false;\n }\n\n public cleanUp(recycle = false): void {\n this.resizeManager.cleanUp();\n this.interactionManager.cleanUp();\n this.managersDirty = false;\n this.workerManager?.unsubscribeToThemeChanges(this);\n this.renderRange = undefined;\n\n // Clean up the elements\n if (!this.isContainerManaged) {\n this.fileContainer?.remove();\n }\n this.fileContainer = undefined;\n this.lineAnnotations = [];\n this.annotationCache.clear();\n this.pre = undefined;\n this.bufferBefore = undefined;\n this.bufferAfter = undefined;\n this.appliedPreAttributes = undefined;\n this.lastRowCount = undefined;\n this.headerElement = undefined;\n this.headerPrefix = undefined;\n this.headerMetadata = undefined;\n this.headerCustom = undefined;\n this.lastRenderedHeaderHTML = undefined;\n if (!recycle) {\n this.cachedHeaderHTML = undefined;\n }\n this.errorWrapper = undefined;\n this.themeCSSStyle = undefined;\n this.appliedThemeCSS = undefined;\n this.hasAdoptedThemeCSS = false;\n this.unsafeCSSStyle = undefined;\n this.appliedUnsafeCSS = undefined;\n this.placeHolder = undefined;\n this.unsafeCSSStyle = undefined;\n\n if (recycle) {\n this.fileRenderer.recycle();\n } else {\n this.fileRenderer.cleanUp();\n this.workerManager = undefined;\n this.file = undefined;\n }\n\n this.enabled = false;\n }\n\n public virtualizedSetup(): void {\n this.enabled = true;\n this.workerManager?.subscribeToThemeChanges(this);\n }\n\n public hydrate(props: FileHydrateProps<LAnnotation>): void {\n const {\n fileContainer,\n prerenderedHTML,\n preventEmit = false,\n file,\n lineAnnotations,\n } = props;\n this.hydrateElements(fileContainer, prerenderedHTML);\n if (\n shouldRenderCode(this.pre, file, this.options.collapsed) ||\n shouldRenderHeader(\n this.headerElement,\n file,\n this.options.disableFileHeader\n )\n ) {\n this.render({ ...props, preventEmit: true });\n }\n // Otherwise orchestrate our setup.\n else {\n this.hydrationSetup({ file, lineAnnotations });\n }\n if (!preventEmit) {\n this.emitPostRender();\n }\n }\n\n protected hydrateElements(\n fileContainer: HTMLElement,\n prerenderedHTML: string | undefined\n ): void {\n prerenderHTMLIfNecessary(fileContainer, prerenderedHTML);\n for (const element of Array.from(\n fileContainer.shadowRoot?.children ?? []\n )) {\n if (element instanceof SVGElement) {\n this.spriteSVG = element;\n continue;\n }\n if (!(element instanceof HTMLElement)) {\n continue;\n }\n if (element instanceof HTMLPreElement) {\n this.pre = element;\n this.appliedPreAttributes = undefined;\n continue;\n }\n if (\n element instanceof HTMLStyleElement &&\n element.hasAttribute(THEME_CSS_ATTRIBUTE)\n ) {\n this.themeCSSStyle = element;\n continue;\n }\n if (\n element instanceof HTMLStyleElement &&\n element.hasAttribute(UNSAFE_CSS_ATTRIBUTE)\n ) {\n this.unsafeCSSStyle = element;\n this.appliedUnsafeCSS = element.textContent;\n continue;\n }\n if ('diffsHeader' in element.dataset) {\n this.headerElement = element;\n this.lastRenderedHeaderHTML = undefined;\n continue;\n }\n }\n if (this.pre != null) {\n this.syncCodeNodeFromPre(this.pre);\n this.pre.removeAttribute('data-dehydrated');\n }\n this.fileContainer = fileContainer;\n this.hydrateMeasuredScrollbar();\n }\n\n protected hydrationSetup({\n file,\n lineAnnotations,\n }: HydrationSetup<LAnnotation>): void {\n this.lineAnnotations = lineAnnotations ?? this.lineAnnotations;\n this.file = file;\n this.fileRenderer.setOptions({\n ...this.options,\n headerRenderMode:\n this.options.renderCustomHeader != null ? 'custom' : 'default',\n });\n if (this.pre == null) {\n return;\n }\n this.fileRenderer.hydrate(file);\n this.renderAnnotations();\n this.renderGutterUtility();\n this.injectUnsafeCSS();\n this.managersDirty = true;\n this.flushManagers();\n }\n\n public getOrCreateLineCache(\n file: FileContents | undefined = this.file\n ): string[] {\n return file != null\n ? this.fileRenderer.getOrCreateLineCache(file)\n : EMPTY_STRINGS;\n }\n\n public render({\n file,\n fileContainer,\n forceRender = false,\n preventEmit = false,\n containerWrapper,\n deferManagers = false,\n lineAnnotations,\n renderRange,\n }: FileRenderProps<LAnnotation>): boolean {\n const { collapsed = false, themeType = 'system' } = this.options;\n if (!this.enabled) {\n throw new Error(\n 'File.render: attempting to call render after cleaned up'\n );\n }\n const nextRenderRange = collapsed ? undefined : renderRange;\n const previousRenderRange = this.renderRange;\n const themeChanged = this.hasThemeChanged();\n const annotationsChanged =\n lineAnnotations != null &&\n (lineAnnotations.length > 0 || this.lineAnnotations.length > 0)\n ? lineAnnotations !== this.lineAnnotations\n : false;\n const didFileChange = !areFilesEqual(this.file, file);\n if (\n !collapsed &&\n !forceRender &&\n areRenderRangesEqual(nextRenderRange, this.renderRange) &&\n !didFileChange &&\n !annotationsChanged &&\n !themeChanged\n ) {\n return this.applyCachedThemeState(themeType);\n }\n\n this.renderRange = nextRenderRange;\n if (didFileChange) {\n this.cachedHeaderHTML = undefined;\n }\n this.file = file;\n this.fileRenderer.setOptions({\n ...this.options,\n headerRenderMode:\n this.options.renderCustomHeader != null ? 'custom' : 'default',\n });\n if (lineAnnotations != null) {\n this.setLineAnnotations(lineAnnotations);\n }\n this.fileRenderer.setLineAnnotations(this.lineAnnotations);\n\n const { disableErrorHandling = false, disableFileHeader = false } =\n this.options;\n if (disableFileHeader) {\n // Remove existing header from DOM\n if (this.headerElement != null) {\n this.headerElement.remove();\n this.headerElement = undefined;\n this.lastRenderedHeaderHTML = undefined;\n }\n this.clearHeaderSlots();\n }\n\n fileContainer = this.getOrCreateFileContainerNode(\n fileContainer,\n containerWrapper\n );\n this.applyCachedThemeState(themeType);\n\n if (collapsed) {\n this.removeRenderedCode();\n this.clearAuxiliaryNodes();\n\n try {\n const fileResult = this.fileRenderer.renderFile(\n file,\n EMPTY_RENDER_RANGE\n );\n if (fileResult != null) {\n this.applyThemeState(\n fileContainer,\n fileResult.themeStyles,\n themeType,\n fileResult.baseThemeType\n );\n }\n if (fileResult?.headerAST != null) {\n this.applyHeaderToDOM(fileResult.headerAST, fileContainer);\n }\n this.injectUnsafeCSS();\n } catch (error: unknown) {\n if (disableErrorHandling) {\n throw error;\n }\n console.error(error);\n if (error instanceof Error) {\n this.applyErrorToDOM(error, fileContainer);\n }\n }\n if (!preventEmit) {\n this.emitPostRender();\n }\n return true;\n }\n\n try {\n const pre = this.getOrCreatePreNode(fileContainer);\n if (\n !this.canPartiallyRender(\n forceRender,\n annotationsChanged,\n didFileChange || themeChanged\n ) ||\n !this.applyPartialRender(previousRenderRange, nextRenderRange)\n ) {\n const fileResult = this.fileRenderer.renderFile(file, nextRenderRange);\n if (fileResult == null) {\n if (this.workerManager?.isInitialized() === false) {\n void this.workerManager.initialize().then(() => this.rerender());\n }\n return false;\n }\n this.applyThemeState(\n fileContainer,\n fileResult.themeStyles,\n themeType,\n fileResult.baseThemeType\n );\n if (fileResult.headerAST != null) {\n this.applyHeaderToDOM(fileResult.headerAST, fileContainer);\n }\n this.applyFullRender(fileResult, pre);\n }\n\n this.applyBuffers(pre, nextRenderRange);\n this.injectUnsafeCSS();\n this.managersDirty = true;\n if (!deferManagers) {\n this.flushManagers();\n }\n this.renderAnnotations();\n this.renderGutterUtility();\n } catch (error: unknown) {\n if (disableErrorHandling) {\n throw error;\n }\n console.error(error);\n if (error instanceof Error) {\n this.applyErrorToDOM(error, fileContainer);\n }\n }\n if (!preventEmit) {\n this.emitPostRender();\n }\n return true;\n }\n\n private emitPostRender() {\n if (this.fileContainer != null) {\n this.options.onPostRender?.(this.fileContainer, this);\n }\n }\n\n private removeRenderedCode(): void {\n this.resizeManager.cleanUp();\n this.interactionManager.cleanUp();\n\n this.bufferBefore?.remove();\n this.bufferBefore = undefined;\n this.bufferAfter?.remove();\n this.bufferAfter = undefined;\n\n this.code?.remove();\n this.code = undefined;\n\n this.pre?.remove();\n this.pre = undefined;\n\n this.appliedPreAttributes = undefined;\n this.lastRowCount = undefined;\n }\n\n private clearAuxiliaryNodes(): void {\n for (const { element } of this.annotationCache.values()) {\n element.remove();\n }\n this.annotationCache.clear();\n\n this.gutterUtilityContent?.remove();\n this.gutterUtilityContent = undefined;\n }\n\n private canPartiallyRender(\n forceRender: boolean,\n annotationsChanged: boolean,\n didContentChange: boolean\n ): boolean {\n if (forceRender || annotationsChanged || didContentChange) {\n return false;\n }\n return true;\n }\n\n public renderPlaceholder(height: number): boolean {\n if (this.fileContainer == null) {\n return false;\n }\n this.cleanChildNodes();\n\n if (this.placeHolder == null) {\n const shadowRoot =\n this.fileContainer.shadowRoot ??\n this.fileContainer.attachShadow({ mode: 'open' });\n this.placeHolder = document.createElement('div');\n this.placeHolder.dataset.placeholder = '';\n shadowRoot.appendChild(this.placeHolder);\n }\n this.placeHolder.style.setProperty('height', `${height}px`);\n return true;\n }\n\n public primeHighlightCache(): void {\n const { file, workerManager } = this;\n if (\n file == null ||\n file.cacheKey == null ||\n workerManager == null ||\n isFilePlainText(file)\n ) {\n return;\n }\n const lines = this.fileRenderer.getOrCreateLineCache(file);\n if (\n lines.length >\n (this.options.tokenizeMaxLength ?? DEFAULT_TOKENIZE_MAX_LENGTH)\n ) {\n return;\n }\n workerManager.primeFileHighlightCache(file);\n }\n\n private cleanChildNodes() {\n this.resizeManager.cleanUp();\n this.interactionManager.cleanUp();\n\n this.bufferAfter?.remove();\n this.bufferBefore?.remove();\n this.code?.remove();\n this.errorWrapper?.remove();\n this.headerElement?.remove();\n this.gutterUtilityContent?.remove();\n this.headerPrefix?.remove();\n this.headerMetadata?.remove();\n this.headerCustom?.remove();\n this.pre?.remove();\n this.spriteSVG?.remove();\n this.themeCSSStyle?.remove();\n this.unsafeCSSStyle?.remove();\n\n this.bufferAfter = undefined;\n this.bufferBefore = undefined;\n this.code = undefined;\n this.errorWrapper = undefined;\n this.headerElement = undefined;\n this.gutterUtilityContent = undefined;\n this.headerPrefix = undefined;\n this.headerMetadata = undefined;\n this.headerCustom = undefined;\n this.pre = undefined;\n this.spriteSVG = undefined;\n this.themeCSSStyle = undefined;\n this.appliedThemeCSS = undefined;\n this.hasAdoptedThemeCSS = false;\n this.unsafeCSSStyle = undefined;\n this.appliedUnsafeCSS = undefined;\n\n this.lastRenderedHeaderHTML = undefined;\n this.lastRowCount = undefined;\n }\n\n private renderAnnotations(): void {\n if (this.isContainerManaged || this.fileContainer == null) {\n for (const { element } of this.annotationCache.values()) {\n element.remove();\n }\n this.annotationCache.clear();\n return;\n }\n const staleAnnotations = new Map(this.annotationCache);\n const { renderAnnotation } = this.options;\n if (renderAnnotation != null && this.lineAnnotations.length > 0) {\n for (const [index, annotation] of this.lineAnnotations.entries()) {\n const id = `${index}-${getLineAnnotationName(annotation)}`;\n let cache = this.annotationCache.get(id);\n if (\n cache == null ||\n !areLineAnnotationsEqual(annotation, cache.annotation)\n ) {\n cache?.element.remove();\n const content = renderAnnotation(annotation);\n // If we can't render anything, then we should not render anything\n // and clear the annotation cache if necessary.\n if (content == null) {\n continue;\n }\n cache = {\n element: createAnnotationWrapperNode(\n getLineAnnotationName(annotation)\n ),\n annotation,\n };\n cache.element.appendChild(content);\n this.fileContainer.appendChild(cache.element);\n this.annotationCache.set(id, cache);\n }\n staleAnnotations.delete(id);\n }\n }\n for (const [id, { element }] of staleAnnotations.entries()) {\n this.annotationCache.delete(id);\n element.remove();\n }\n }\n\n private renderGutterUtility() {\n const { renderGutterUtility } = this.options;\n if (this.fileContainer == null || renderGutterUtility == null) {\n this.gutterUtilityContent?.remove();\n this.gutterUtilityContent = undefined;\n return;\n }\n const element = renderGutterUtility(this.interactionManager.getHoveredLine);\n if (element != null && this.gutterUtilityContent != null) {\n return;\n } else if (element == null) {\n this.gutterUtilityContent?.remove();\n this.gutterUtilityContent = undefined;\n return;\n }\n const gutterUtilityContent = createGutterUtilityContentNode();\n gutterUtilityContent.appendChild(element);\n this.fileContainer.appendChild(gutterUtilityContent);\n this.gutterUtilityContent = gutterUtilityContent;\n }\n\n private injectUnsafeCSS(): void {\n const { unsafeCSS } = this.options;\n const shadowRoot = this.fileContainer?.shadowRoot;\n if (shadowRoot == null) {\n return;\n }\n\n if (unsafeCSS == null || unsafeCSS === '') {\n if (this.unsafeCSSStyle != null) {\n this.unsafeCSSStyle.remove();\n this.unsafeCSSStyle = undefined;\n }\n this.appliedUnsafeCSS = undefined;\n return;\n }\n\n if (\n this.unsafeCSSStyle?.parentNode === shadowRoot &&\n this.appliedUnsafeCSS === unsafeCSS\n ) {\n return;\n }\n\n // Create or update the style element\n this.unsafeCSSStyle ??= createUnsafeCSSStyleNode();\n if (this.unsafeCSSStyle.parentNode !== shadowRoot) {\n shadowRoot.appendChild(this.unsafeCSSStyle);\n }\n // Wrap in @layer unsafe to match SSR behavior\n this.unsafeCSSStyle.textContent = wrapUnsafeCSS(unsafeCSS);\n this.appliedUnsafeCSS = unsafeCSS;\n }\n\n private applyThemeState(\n container: HTMLElement,\n themeStyles: string,\n themeType: ThemeTypes,\n baseThemeType?: 'light' | 'dark'\n ): void {\n const shadowRoot =\n container.shadowRoot ?? container.attachShadow({ mode: 'open' });\n const effectiveThemeType = baseThemeType ?? themeType;\n const currentTheme = this.options.theme ?? DEFAULT_THEMES;\n const theme =\n typeof currentTheme === 'string' ? currentTheme : { ...currentTheme };\n const scrollbarGutter = getMeasuredScrollbarGutter(shadowRoot);\n if (\n this.themeCSSStyle?.parentNode === shadowRoot &&\n this.appliedThemeCSS?.themeStyles === themeStyles &&\n this.appliedThemeCSS.themeType === effectiveThemeType &&\n this.appliedThemeCSS.scrollbarGutter === scrollbarGutter\n ) {\n this.appliedThemeCSS.theme = theme;\n return;\n }\n if (\n this.hasAdoptedThemeCSS &&\n this.themeCSSStyle?.parentNode === shadowRoot\n ) {\n this.hasAdoptedThemeCSS = false;\n this.appliedThemeCSS = {\n theme,\n themeStyles,\n themeType: effectiveThemeType,\n baseThemeType,\n scrollbarGutter,\n };\n return;\n }\n this.themeCSSStyle = upsertHostThemeStyle({\n shadowRoot,\n currentNode: this.themeCSSStyle,\n themeCSS: wrapThemeCSS(themeStyles, effectiveThemeType, scrollbarGutter),\n });\n this.appliedThemeCSS =\n this.themeCSSStyle != null\n ? {\n theme,\n themeStyles,\n themeType: effectiveThemeType,\n baseThemeType,\n scrollbarGutter,\n }\n : undefined;\n }\n\n private hydrateMeasuredScrollbar(): void {\n const shadowRoot = this.fileContainer?.shadowRoot;\n if (shadowRoot == null || this.themeCSSStyle == null) {\n return;\n }\n this.themeCSSStyle.textContent = patchScrollbarGutterSize(\n this.themeCSSStyle.textContent ?? '',\n getMeasuredScrollbarGutter(shadowRoot)\n );\n }\n\n private applyFullRender(result: FileRenderResult, pre: HTMLPreElement): void {\n this.cleanupErrorWrapper();\n this.applyPreNodeAttributes(pre, result);\n this.code = getOrCreateCodeNode({ code: this.code });\n this.code.innerHTML = this.fileRenderer.renderPartialHTML(\n this.fileRenderer.renderCodeAST(result)\n );\n pre.replaceChildren(this.code);\n this.lastRowCount = result.rowCount;\n }\n\n private applyPartialRender(\n previousRenderRange: RenderRange | undefined,\n renderRange: RenderRange | undefined\n ): boolean {\n if (previousRenderRange == null || renderRange == null) {\n return false;\n }\n const { file, code } = this;\n const columns = code != null ? this.getColumns(code) : undefined;\n if (file == null || code == null || columns == null) {\n return false;\n }\n\n const previousStart = previousRenderRange.startingLine;\n const nextStart = renderRange.startingLine;\n const previousEnd =\n previousRenderRange.totalLines === Infinity\n ? Number.POSITIVE_INFINITY\n : previousStart + previousRenderRange.totalLines;\n const nextEnd =\n renderRange.totalLines === Infinity\n ? Number.POSITIVE_INFINITY\n : nextStart + renderRange.totalLines;\n\n const overlapStart = Math.max(previousStart, nextStart);\n const overlapEnd = Math.min(previousEnd, nextEnd);\n if (overlapEnd <= overlapStart) {\n return false;\n }\n\n if (\n !this.trimDOMToOverlap(columns.gutter, overlapStart, overlapEnd) ||\n !this.trimDOMToOverlap(columns.content, overlapStart, overlapEnd)\n ) {\n return false;\n }\n\n let { length: rowCount } = columns.content.children;\n\n const renderChunk = (\n startingLine: number,\n totalLines: number\n ): FileRenderResult | undefined => {\n if (totalLines <= 0) {\n return undefined;\n }\n return this.fileRenderer.renderFile(file, {\n startingLine,\n totalLines,\n bufferBefore: 0,\n bufferAfter: 0,\n });\n };\n\n const prependResult =\n nextStart < overlapStart\n ? renderChunk(nextStart, overlapStart - nextStart)\n : undefined;\n if (prependResult === undefined && nextStart < overlapStart) {\n return false;\n }\n\n const appendTotalLines =\n nextEnd === Number.POSITIVE_INFINITY\n ? Number.POSITIVE_INFINITY\n : Math.max(0, nextEnd - overlapEnd);\n const appendResult =\n nextEnd > overlapEnd\n ? renderChunk(overlapEnd, appendTotalLines)\n : undefined;\n if (appendResult === undefined && nextEnd > overlapEnd) {\n return false;\n }\n\n this.cleanupErrorWrapper();\n if (prependResult != null) {\n columns.gutter.insertAdjacentHTML(\n 'afterbegin',\n this.fileRenderer.renderPartialHTML(prependResult.gutterAST)\n );\n columns.content.insertAdjacentHTML(\n 'afterbegin',\n this.fileRenderer.renderPartialHTML(prependResult.contentAST)\n );\n rowCount += prependResult.rowCount;\n }\n\n if (appendResult != null) {\n columns.gutter.insertAdjacentHTML(\n 'beforeend',\n this.fileRenderer.renderPartialHTML(appendResult.gutterAST)\n );\n columns.content.insertAdjacentHTML(\n 'beforeend',\n this.fileRenderer.renderPartialHTML(appendResult.contentAST)\n );\n rowCount += appendResult.rowCount;\n }\n\n if (this.lastRowCount !== rowCount) {\n columns.gutter.style.setProperty('grid-row', `span ${rowCount}`);\n columns.content.style.setProperty('grid-row', `span ${rowCount}`);\n this.lastRowCount = rowCount;\n }\n\n return true;\n }\n\n private getColumns(code: HTMLElement): ColumnElements | undefined {\n const gutter = code.children[0];\n const content = code.children[1];\n if (\n !(gutter instanceof HTMLElement) ||\n !(content instanceof HTMLElement) ||\n gutter.dataset.gutter == null ||\n content.dataset.content == null\n ) {\n return undefined;\n }\n return { gutter, content };\n }\n\n private trimDOMToOverlap(\n container: HTMLElement,\n overlapStart: number,\n overlapEnd: number\n ): boolean {\n const boundaryIndices = this.getDOMBoundaryIndices(container, [\n overlapStart,\n overlapEnd,\n ]);\n const startIndex =\n boundaryIndices.get(overlapStart) ?? container.children.length;\n const endIndex =\n boundaryIndices.get(overlapEnd) ?? container.children.length;\n\n if (startIndex > endIndex) {\n return false;\n }\n\n for (let i = container.children.length - 1; i >= endIndex; i -= 1) {\n container.children[i]?.remove();\n }\n for (let i = startIndex - 1; i >= 0; i -= 1) {\n container.children[i]?.remove();\n }\n return true;\n }\n\n private getDOMBoundaryIndices(\n container: HTMLElement,\n boundaries: number[]\n ): Map<number, number> {\n const sortedBoundaries = [...new Set(boundaries)].sort((a, b) => a - b);\n const boundaryIndices = new Map<number, number>();\n if (sortedBoundaries.length === 0) {\n return boundaryIndices;\n }\n let boundaryIndex = 0;\n let nextBoundary = sortedBoundaries[boundaryIndex];\n const { children } = container;\n\n for (let i = 0; i < children.length; i += 1) {\n const child = children[i];\n if (!(child instanceof HTMLElement)) {\n continue;\n }\n const lineIndex = this.getLineIndexFromDOMNode(child);\n if (lineIndex == null) {\n continue;\n }\n while (nextBoundary != null && lineIndex >= nextBoundary) {\n boundaryIndices.set(nextBoundary, i);\n boundaryIndex += 1;\n nextBoundary = sortedBoundaries[boundaryIndex];\n }\n if (boundaryIndex >= sortedBoundaries.length) {\n break;\n }\n }\n\n for (const boundary of sortedBoundaries) {\n if (!boundaryIndices.has(boundary)) {\n boundaryIndices.set(boundary, children.length);\n }\n }\n return boundaryIndices;\n }\n\n private getLineIndexFromDOMNode(node: HTMLElement): number | undefined {\n const lineIndexAttr = node.dataset.lineIndex;\n if (lineIndexAttr == null) {\n return undefined;\n }\n const parsed = Number(lineIndexAttr);\n return Number.isNaN(parsed) ? undefined : parsed;\n }\n\n private applyBuffers(\n pre: HTMLPreElement,\n renderRange: RenderRange | undefined\n ) {\n if (renderRange == null || this.shouldDisableVirtualizationBuffers()) {\n if (this.bufferBefore != null) {\n this.bufferBefore.remove();\n this.bufferBefore = undefined;\n }\n if (this.bufferAfter != null) {\n this.bufferAfter.remove();\n this.bufferAfter = undefined;\n }\n return;\n }\n\n if (renderRange.bufferBefore > 0) {\n if (this.bufferBefore == null) {\n this.bufferBefore = document.createElement('div');\n this.bufferBefore.dataset.virtualizerBuffer = 'before';\n pre.before(this.bufferBefore);\n }\n this.bufferBefore.style.setProperty(\n 'height',\n `${renderRange.bufferBefore}px`\n );\n this.bufferBefore.style.setProperty('contain', 'strict');\n } else if (this.bufferBefore != null) {\n this.bufferBefore.remove();\n this.bufferBefore = undefined;\n }\n\n if (renderRange.bufferAfter > 0) {\n if (this.bufferAfter == null) {\n this.bufferAfter = document.createElement('div');\n this.bufferAfter.dataset.virtualizerBuffer = 'after';\n pre.after(this.bufferAfter);\n }\n this.bufferAfter.style.setProperty(\n 'height',\n `${renderRange.bufferAfter}px`\n );\n this.bufferAfter.style.setProperty('contain', 'strict');\n } else if (this.bufferAfter != null) {\n this.bufferAfter.remove();\n this.bufferAfter = undefined;\n }\n }\n\n protected shouldDisableVirtualizationBuffers(): boolean {\n return this.options.disableVirtualizationBuffers ?? false;\n }\n\n private applyHeaderToDOM(\n headerAST: HASTElement,\n container: HTMLElement\n ): void {\n const { file } = this;\n if (file == null) return;\n this.cleanupErrorWrapper();\n this.placeHolder?.remove();\n this.placeHolder = undefined;\n const headerHTML = this.cachedHeaderHTML ?? toHtml(headerAST);\n this.cachedHeaderHTML = headerHTML;\n if (headerHTML !== this.lastRenderedHeaderHTML) {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = headerHTML;\n const newHeader = tempDiv.firstElementChild;\n if (!(newHeader instanceof HTMLElement)) {\n return;\n }\n if (this.headerElement != null) {\n container.shadowRoot?.replaceChild(newHeader, this.headerElement);\n } else {\n container.shadowRoot?.prepend(newHeader);\n }\n this.headerElement = newHeader;\n this.lastRenderedHeaderHTML = headerHTML;\n }\n\n if (this.isContainerManaged) return;\n\n const { renderHeaderPrefix, renderCustomHeader, renderHeaderMetadata } =\n this.options;\n\n if (renderCustomHeader != null) {\n const content = renderCustomHeader(file) ?? undefined;\n this.headerCustom = this.upsertHeaderSlotElement(\n container,\n this.headerCustom,\n CUSTOM_HEADER_SLOT_ID,\n content\n );\n this.headerPrefix?.remove();\n this.headerMetadata?.remove();\n this.headerPrefix = undefined;\n this.headerMetadata = undefined;\n } else {\n const prefix = renderHeaderPrefix?.(file) ?? undefined;\n const content = renderHeaderMetadata?.(file) ?? undefined;\n this.headerPrefix = this.upsertHeaderSlotElement(\n container,\n this.headerPrefix,\n HEADER_PREFIX_SLOT_ID,\n prefix\n );\n this.headerMetadata = this.upsertHeaderSlotElement(\n container,\n this.headerMetadata,\n HEADER_METADATA_SLOT_ID,\n content\n );\n this.headerCustom?.remove();\n this.headerCustom = undefined;\n }\n }\n\n private clearHeaderSlots(): void {\n this.headerPrefix?.remove();\n this.headerMetadata?.remove();\n this.headerCustom?.remove();\n this.headerPrefix = undefined;\n this.headerMetadata = undefined;\n this.headerCustom = undefined;\n }\n\n // Header slot callbacks are presence-based render hooks, not reactive views.\n private upsertHeaderSlotElement(\n container: HTMLElement,\n current: HTMLElement | undefined,\n slot: string,\n content: Element | string | number | undefined\n ): HTMLElement | undefined {\n if (content == null) {\n current?.remove();\n return undefined;\n }\n const element = current ?? this.createHeaderSlotElement(slot);\n if (current == null) {\n container.appendChild(element);\n }\n this.replaceHeaderSlotContent(element, content);\n return element;\n }\n\n private replaceHeaderSlotContent(\n element: HTMLElement,\n content: Element | string | number\n ): void {\n element.replaceChildren();\n if (content instanceof Element) {\n element.appendChild(content);\n } else {\n element.innerText = `${content}`;\n }\n }\n\n private createHeaderSlotElement(slot: string): HTMLElement {\n const element = document.createElement('div');\n element.slot = slot;\n return element;\n }\n\n protected getOrCreateFileContainerNode(\n fileContainer?: HTMLElement,\n parentNode?: HTMLElement\n ): HTMLElement {\n const previousContainer = this.fileContainer;\n this.fileContainer =\n fileContainer ??\n this.fileContainer ??\n document.createElement(DIFFS_TAG_NAME);\n const containerChanged = previousContainer !== this.fileContainer;\n if (previousContainer != null && containerChanged) {\n this.lastRenderedHeaderHTML = undefined;\n this.headerElement = undefined;\n }\n if (parentNode != null && this.fileContainer.parentNode !== parentNode) {\n parentNode.appendChild(this.fileContainer);\n }\n if (containerChanged) {\n this.adoptReusableShellElements(this.fileContainer);\n }\n this.ensureSpriteSVG(this.fileContainer);\n return this.fileContainer;\n }\n\n // NOTE(amadeus): Technically this method is not safe for use outside of\n // the CodeView component, however I don't think in practice it really\n // should matter, but maybe there's some system we need in place to prevent\n // this from running outside of that environment?\n //\n // It's making very specific assumptions that all the elements will have the\n // correct content based on CodeView global options\n private adoptReusableShellElements(fileContainer: HTMLElement): void {\n const { shadowRoot } = fileContainer;\n if (shadowRoot == null) {\n return;\n }\n\n for (const element of shadowRoot.children) {\n if (element instanceof SVGElement) {\n this.spriteSVG ??= element;\n } else if (\n isStyleNode(element) &&\n element.hasAttribute(THEME_CSS_ATTRIBUTE)\n ) {\n this.themeCSSStyle ??= element;\n this.hasAdoptedThemeCSS = true;\n } else if (\n isStyleNode(element) &&\n element.hasAttribute(UNSAFE_CSS_ATTRIBUTE)\n ) {\n this.unsafeCSSStyle ??= element;\n this.appliedUnsafeCSS ??= this.options.unsafeCSS ?? undefined;\n }\n }\n }\n\n private ensureSpriteSVG(fileContainer: HTMLElement): void {\n const shadowRoot =\n fileContainer.shadowRoot ?? fileContainer.attachShadow({ mode: 'open' });\n if (this.spriteSVG == null) {\n const fragment = document.createElement('div');\n fragment.innerHTML = SVGSpriteSheet;\n const firstChild = fragment.firstChild;\n if (firstChild instanceof SVGElement) {\n this.spriteSVG = firstChild;\n }\n }\n if (this.spriteSVG != null && this.spriteSVG.parentNode !== shadowRoot) {\n shadowRoot.appendChild(this.spriteSVG);\n }\n }\n\n private getOrCreatePreNode(container: HTMLElement): HTMLPreElement {\n const shadowRoot =\n container.shadowRoot ?? container.attachShadow({ mode: 'open' });\n // If we haven't created a pre element yet, lets go ahead and do that\n if (this.pre == null) {\n this.pre = document.createElement('pre');\n this.appliedPreAttributes = undefined;\n this.code = undefined;\n shadowRoot.appendChild(this.pre);\n }\n // If we have a new parent container for the pre element, lets go ahead and\n // move it into the new container\n else if (this.pre.parentNode !== shadowRoot) {\n container.shadowRoot?.appendChild(this.pre);\n this.appliedPreAttributes = undefined;\n }\n\n this.placeHolder?.remove();\n this.placeHolder = undefined;\n\n return this.pre;\n }\n\n private syncCodeNodeFromPre(pre: HTMLPreElement): void {\n this.code = undefined;\n for (const child of Array.from(pre.children)) {\n if (!(child instanceof HTMLElement)) {\n continue;\n }\n if (child.hasAttribute('data-code')) {\n this.code = child;\n return;\n }\n }\n }\n\n private applyPreNodeAttributes(\n pre: HTMLPreElement,\n { totalLines }: FileRenderResult\n ): void {\n const { overflow = 'scroll', disableLineNumbers = false } = this.options;\n const preProperties: PrePropertiesConfig = {\n type: 'file',\n split: false,\n overflow,\n disableLineNumbers,\n diffIndicators: 'none',\n disableBackground: true,\n totalLines,\n };\n if (arePrePropertiesEqual(preProperties, this.appliedPreAttributes)) {\n return;\n }\n setPreNodeProperties(pre, preProperties);\n this.appliedPreAttributes = preProperties;\n }\n\n private applyErrorToDOM(error: Error, container: HTMLElement) {\n this.cleanupErrorWrapper();\n this.pre?.remove();\n this.pre = undefined;\n this.appliedPreAttributes = undefined;\n const shadowRoot =\n container.shadowRoot ?? container.attachShadow({ mode: 'open' });\n this.errorWrapper ??= document.createElement('div');\n this.errorWrapper.dataset.errorWrapper = '';\n this.errorWrapper.textContent = '';\n shadowRoot.appendChild(this.errorWrapper);\n const errorMessage = document.createElement('div');\n errorMessage.dataset.errorMessage = '';\n errorMessage.innerText = error.message;\n this.errorWrapper.appendChild(errorMessage);\n const errorStack = document.createElement('pre');\n errorStack.dataset.errorStack = '';\n errorStack.innerText = error.stack ?? 'No Error Stack';\n this.errorWrapper.appendChild(errorStack);\n }\n\n private cleanupErrorWrapper() {\n this.errorWrapper?.remove();\n this.errorWrapper = undefined;\n }\n}\n\nfunction shouldRenderCode(\n pre: HTMLPreElement | undefined,\n file: FileContents | undefined,\n collapsed = false\n): boolean {\n return !collapsed && pre == null && file != null;\n}\n\nfunction shouldRenderHeader(\n headerElement: HTMLElement | undefined,\n file: FileContents | undefined,\n disableFileHeader: boolean = false\n): boolean {\n return headerElement == null && file != null && !disableFileHeader;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"File.js","names":["EMPTY_STRINGS: string[]","options: FileOptions<LAnnotation>","workerManager?: WorkerPoolManager | undefined","error: unknown","preProperties: PrePropertiesConfig"],"sources":["../../src/components/File.ts"],"sourcesContent":["import type { Element as HASTElement } from 'hast';\nimport { toHtml } from 'hast-util-to-html';\n\nimport {\n CUSTOM_HEADER_SLOT_ID,\n DEFAULT_THEMES,\n DEFAULT_TOKENIZE_MAX_LENGTH,\n DIFFS_TAG_NAME,\n EMPTY_RENDER_RANGE,\n HEADER_METADATA_SLOT_ID,\n HEADER_PREFIX_SLOT_ID,\n THEME_CSS_ATTRIBUTE,\n UNSAFE_CSS_ATTRIBUTE,\n} from '../constants';\nimport {\n type GetHoveredLineResult,\n InteractionManager,\n type InteractionManagerBaseOptions,\n pluckInteractionOptions,\n type SelectionWriteOptions,\n} from '../managers/InteractionManager';\nimport { ResizeManager } from '../managers/ResizeManager';\nimport { FileRenderer, type FileRenderResult } from '../renderers/FileRenderer';\nimport { SVGSpriteSheet } from '../sprite';\nimport type {\n AppliedThemeStyleCache,\n BaseCodeOptions,\n FileContents,\n LineAnnotation,\n PrePropertiesConfig,\n RenderFileMetadata,\n RenderRange,\n SelectedLineRange,\n ThemeTypes,\n} from '../types';\nimport { areFilesEqual } from '../utils/areFilesEqual';\nimport { areLineAnnotationsEqual } from '../utils/areLineAnnotationsEqual';\nimport { arePrePropertiesEqual } from '../utils/arePrePropertiesEqual';\nimport { areRenderRangesEqual } from '../utils/areRenderRangesEqual';\nimport { areThemesEqual } from '../utils/areThemesEqual';\nimport { createAnnotationWrapperNode } from '../utils/createAnnotationWrapperNode';\nimport { createGutterUtilityContentNode } from '../utils/createGutterUtilityContentNode';\nimport { createUnsafeCSSStyleNode } from '../utils/createUnsafeCSSStyleNode';\nimport {\n patchScrollbarGutterSize,\n wrapThemeCSS,\n wrapUnsafeCSS,\n} from '../utils/cssWrappers';\nimport { getFileRendererOptions } from '../utils/getFileRendererOptions';\nimport { getLineAnnotationName } from '../utils/getLineAnnotationName';\nimport { getOrCreateCodeNode } from '../utils/getOrCreateCodeNode';\nimport { upsertHostThemeStyle } from '../utils/hostTheme';\nimport { isFilePlainText } from '../utils/isFilePlainText';\nimport { isStyleNode } from '../utils/isStyleNode';\nimport { prerenderHTMLIfNecessary } from '../utils/prerenderHTMLIfNecessary';\nimport { getMeasuredScrollbarGutter } from '../utils/scrollbarGutter';\nimport { setPreNodeProperties } from '../utils/setWrapperNodeProps';\nimport type { WorkerPoolManager } from '../worker';\nimport { DiffsContainerLoaded } from './web-components';\n\nconst EMPTY_STRINGS: string[] = [];\n\nexport interface FileRenderProps<LAnnotation> {\n file: FileContents;\n fileContainer?: HTMLElement;\n containerWrapper?: HTMLElement;\n deferManagers?: boolean;\n forceRender?: boolean;\n preventEmit?: boolean;\n lineAnnotations?: LineAnnotation<LAnnotation>[];\n renderRange?: RenderRange;\n}\n\nexport interface FileHydrateProps<LAnnotation> extends Omit<\n FileRenderProps<LAnnotation>,\n 'fileContainer'\n> {\n fileContainer: HTMLElement;\n prerenderedHTML?: string;\n}\n\nexport interface FileOptions<LAnnotation>\n extends BaseCodeOptions, InteractionManagerBaseOptions<'file'> {\n disableFileHeader?: boolean;\n renderHeaderPrefix?: RenderFileMetadata;\n renderHeaderMetadata?: RenderFileMetadata;\n renderCustomHeader?: RenderFileMetadata;\n /**\n * When true, errors during rendering are rethrown instead of being caught\n * and displayed in the DOM. Useful for testing or when you want to handle\n * errors yourself.\n */\n disableErrorHandling?: boolean;\n renderAnnotation?(\n annotation: LineAnnotation<LAnnotation>\n ): HTMLElement | undefined;\n renderGutterUtility?(\n getHoveredRow: () => GetHoveredLineResult<'file'> | undefined\n ): HTMLElement | null | undefined;\n\n onPostRender?(node: HTMLElement, instance: File<LAnnotation>): unknown;\n}\n\ninterface AnnotationElementCache<LAnnotation> {\n element: HTMLElement;\n annotation: LineAnnotation<LAnnotation>;\n}\n\ninterface ColumnElements {\n gutter: HTMLElement;\n content: HTMLElement;\n}\n\ninterface HydrationSetup<LAnnotation> {\n file: FileContents;\n lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;\n}\n\nlet instanceId = -1;\n\nexport class File<LAnnotation = undefined> {\n static LoadedCustomComponent: boolean = DiffsContainerLoaded;\n\n readonly __id: string = `file:${++instanceId}`;\n\n protected fileContainer: HTMLElement | undefined;\n protected spriteSVG: SVGElement | undefined;\n protected pre: HTMLPreElement | undefined;\n protected code: HTMLElement | undefined;\n protected bufferBefore: HTMLElement | undefined;\n protected bufferAfter: HTMLElement | undefined;\n protected themeCSSStyle: HTMLStyleElement | undefined;\n protected appliedThemeCSS: AppliedThemeStyleCache | undefined;\n protected hasAdoptedThemeCSS = false;\n protected unsafeCSSStyle: HTMLStyleElement | undefined;\n protected appliedUnsafeCSS: string | undefined;\n protected gutterUtilityContent: HTMLElement | undefined;\n protected errorWrapper: HTMLElement | undefined;\n protected placeHolder: HTMLElement | undefined;\n protected lastRenderedHeaderHTML: string | undefined;\n protected cachedHeaderHTML: string | undefined;\n protected appliedPreAttributes: PrePropertiesConfig | undefined;\n protected lastRowCount: number | undefined;\n\n protected headerElement: HTMLElement | undefined;\n protected headerCustom: HTMLElement | undefined;\n protected headerPrefix: HTMLElement | undefined;\n protected headerMetadata: HTMLElement | undefined;\n\n protected fileRenderer: FileRenderer<LAnnotation>;\n protected resizeManager: ResizeManager;\n protected interactionManager: InteractionManager<'file'>;\n\n protected annotationCache: Map<string, AnnotationElementCache<LAnnotation>> =\n new Map();\n protected lineAnnotations: LineAnnotation<LAnnotation>[] = [];\n protected managersDirty = false;\n\n protected file: FileContents | undefined;\n protected renderRange: RenderRange | undefined;\n protected enabled = true;\n\n constructor(\n public options: FileOptions<LAnnotation> = { theme: DEFAULT_THEMES },\n private workerManager?: WorkerPoolManager | undefined,\n private isContainerManaged = false\n ) {\n this.fileRenderer = new FileRenderer<LAnnotation>(\n options,\n this.handleHighlightRender,\n this.workerManager\n );\n this.resizeManager = new ResizeManager();\n this.interactionManager = new InteractionManager(\n 'file',\n pluckInteractionOptions(options)\n );\n this.workerManager?.subscribeToThemeChanges(this);\n }\n\n private handleHighlightRender = (): void => {\n this.rerender();\n };\n\n public rerender(): void {\n if (!this.enabled || this.file == null) return;\n this.render({\n file: this.file,\n forceRender: true,\n renderRange: this.renderRange,\n });\n }\n\n public onThemeChange(): void {\n this.fileRenderer.clearRenderCache();\n this.rerender();\n }\n\n public setOptions(options: FileOptions<LAnnotation> | undefined): void {\n if (options == null) return;\n this.options = options;\n this.cachedHeaderHTML = undefined;\n this.syncInteractionOptions();\n }\n\n protected syncInteractionOptions(): void {\n this.interactionManager.setOptions(pluckInteractionOptions(this.options));\n }\n\n private mergeOptions(options: Partial<FileOptions<LAnnotation>>): void {\n this.options = { ...this.options, ...options };\n }\n\n public setThemeType(themeType: ThemeTypes): void {\n if ((this.options.themeType ?? 'system') === themeType) {\n return;\n }\n this.mergeOptions({ themeType });\n this.applyCachedThemeState(themeType);\n }\n\n private applyCachedThemeState(themeType: ThemeTypes): boolean {\n if (\n typeof this.options.theme === 'string' ||\n this.fileContainer == null ||\n this.appliedThemeCSS == null\n ) {\n return false;\n }\n const effectiveThemeType = this.appliedThemeCSS.baseThemeType ?? themeType;\n if (this.appliedThemeCSS.themeType === effectiveThemeType) {\n return false;\n }\n this.applyThemeState(\n this.fileContainer,\n this.appliedThemeCSS.themeStyles,\n themeType,\n this.appliedThemeCSS.baseThemeType\n );\n return true;\n }\n\n private hasThemeChanged(): boolean {\n return (\n this.appliedThemeCSS != null &&\n !areThemesEqual(\n this.appliedThemeCSS.theme,\n this.options.theme ?? DEFAULT_THEMES\n )\n );\n }\n\n public getHoveredLine = (): GetHoveredLineResult<'file'> | undefined => {\n return this.interactionManager.getHoveredLine();\n };\n\n public setLineAnnotations(\n lineAnnotations: LineAnnotation<LAnnotation>[]\n ): void {\n this.lineAnnotations = lineAnnotations;\n }\n\n public setSelectedLines(\n range: SelectedLineRange | null,\n options?: SelectionWriteOptions\n ): void {\n this.interactionManager.setSelection(range, options);\n }\n\n public flushManagers(): void {\n if (!this.managersDirty || this.pre == null) {\n this.managersDirty = false;\n return;\n }\n\n const { overflow = 'scroll' } = this.options;\n this.interactionManager.setup(this.pre);\n this.resizeManager.setup(this.pre, overflow === 'wrap');\n this.managersDirty = false;\n }\n\n public cleanUp(recycle = false): void {\n this.resizeManager.cleanUp();\n this.interactionManager.cleanUp();\n this.managersDirty = false;\n this.workerManager?.unsubscribeToThemeChanges(this);\n this.renderRange = undefined;\n\n // Clean up the elements\n if (!this.isContainerManaged) {\n this.fileContainer?.remove();\n }\n this.fileContainer = undefined;\n this.lineAnnotations = [];\n this.annotationCache.clear();\n this.pre = undefined;\n this.bufferBefore = undefined;\n this.bufferAfter = undefined;\n this.appliedPreAttributes = undefined;\n this.lastRowCount = undefined;\n this.headerElement = undefined;\n this.headerPrefix = undefined;\n this.headerMetadata = undefined;\n this.headerCustom = undefined;\n this.lastRenderedHeaderHTML = undefined;\n if (!recycle) {\n this.cachedHeaderHTML = undefined;\n }\n this.errorWrapper = undefined;\n this.themeCSSStyle = undefined;\n this.appliedThemeCSS = undefined;\n this.hasAdoptedThemeCSS = false;\n this.unsafeCSSStyle = undefined;\n this.appliedUnsafeCSS = undefined;\n this.placeHolder = undefined;\n this.unsafeCSSStyle = undefined;\n\n if (recycle) {\n this.fileRenderer.recycle();\n } else {\n this.fileRenderer.cleanUp();\n this.workerManager = undefined;\n this.file = undefined;\n }\n\n this.enabled = false;\n }\n\n public virtualizedSetup(): void {\n this.enabled = true;\n this.workerManager?.subscribeToThemeChanges(this);\n }\n\n public hydrate(props: FileHydrateProps<LAnnotation>): void {\n const {\n fileContainer,\n prerenderedHTML,\n preventEmit = false,\n file,\n lineAnnotations,\n } = props;\n this.hydrateElements(fileContainer, prerenderedHTML);\n if (\n shouldRenderCode(this.pre, file, this.options.collapsed) ||\n shouldRenderHeader(\n this.headerElement,\n file,\n this.options.disableFileHeader\n )\n ) {\n this.render({ ...props, preventEmit: true });\n }\n // Otherwise orchestrate our setup.\n else {\n this.hydrationSetup({ file, lineAnnotations });\n }\n if (!preventEmit) {\n this.emitPostRender();\n }\n }\n\n protected hydrateElements(\n fileContainer: HTMLElement,\n prerenderedHTML: string | undefined\n ): void {\n prerenderHTMLIfNecessary(fileContainer, prerenderedHTML);\n for (const element of Array.from(\n fileContainer.shadowRoot?.children ?? []\n )) {\n if (element instanceof SVGElement) {\n this.spriteSVG = element;\n continue;\n }\n if (!(element instanceof HTMLElement)) {\n continue;\n }\n if (element instanceof HTMLPreElement) {\n this.pre = element;\n this.appliedPreAttributes = undefined;\n continue;\n }\n if (\n element instanceof HTMLStyleElement &&\n element.hasAttribute(THEME_CSS_ATTRIBUTE)\n ) {\n this.themeCSSStyle = element;\n continue;\n }\n if (\n element instanceof HTMLStyleElement &&\n element.hasAttribute(UNSAFE_CSS_ATTRIBUTE)\n ) {\n this.unsafeCSSStyle = element;\n this.appliedUnsafeCSS = element.textContent;\n continue;\n }\n if ('diffsHeader' in element.dataset) {\n this.headerElement = element;\n this.lastRenderedHeaderHTML = undefined;\n continue;\n }\n }\n if (this.pre != null) {\n this.syncCodeNodeFromPre(this.pre);\n this.pre.removeAttribute('data-dehydrated');\n }\n this.fileContainer = fileContainer;\n this.hydrateMeasuredScrollbar();\n }\n\n protected hydrationSetup({\n file,\n lineAnnotations,\n }: HydrationSetup<LAnnotation>): void {\n this.lineAnnotations = lineAnnotations ?? this.lineAnnotations;\n this.file = file;\n this.fileRenderer.setOptions(getFileRendererOptions(this.options));\n this.syncInteractionOptions();\n if (this.pre == null) {\n return;\n }\n this.fileRenderer.hydrate(file);\n this.renderAnnotations();\n this.renderGutterUtility();\n this.injectUnsafeCSS();\n this.managersDirty = true;\n this.flushManagers();\n }\n\n public getOrCreateLineCache(\n file: FileContents | undefined = this.file\n ): string[] {\n return file != null\n ? this.fileRenderer.getOrCreateLineCache(file)\n : EMPTY_STRINGS;\n }\n\n public render({\n file,\n fileContainer,\n forceRender = false,\n preventEmit = false,\n containerWrapper,\n deferManagers = false,\n lineAnnotations,\n renderRange,\n }: FileRenderProps<LAnnotation>): boolean {\n const { collapsed = false, themeType = 'system' } = this.options;\n if (!this.enabled) {\n throw new Error(\n 'File.render: attempting to call render after cleaned up'\n );\n }\n const nextRenderRange = collapsed ? undefined : renderRange;\n const previousRenderRange = this.renderRange;\n const themeChanged = this.hasThemeChanged();\n const annotationsChanged =\n lineAnnotations != null &&\n (lineAnnotations.length > 0 || this.lineAnnotations.length > 0)\n ? lineAnnotations !== this.lineAnnotations\n : false;\n const didFileChange = !areFilesEqual(this.file, file);\n if (\n !collapsed &&\n !forceRender &&\n areRenderRangesEqual(nextRenderRange, this.renderRange) &&\n !didFileChange &&\n !annotationsChanged &&\n !themeChanged\n ) {\n return this.applyCachedThemeState(themeType);\n }\n\n this.renderRange = nextRenderRange;\n if (didFileChange) {\n this.cachedHeaderHTML = undefined;\n }\n this.file = file;\n this.fileRenderer.setOptions(getFileRendererOptions(this.options));\n this.syncInteractionOptions();\n if (lineAnnotations != null) {\n this.setLineAnnotations(lineAnnotations);\n }\n this.fileRenderer.setLineAnnotations(this.lineAnnotations);\n\n const { disableErrorHandling = false, disableFileHeader = false } =\n this.options;\n if (disableFileHeader) {\n // Remove existing header from DOM\n if (this.headerElement != null) {\n this.headerElement.remove();\n this.headerElement = undefined;\n this.lastRenderedHeaderHTML = undefined;\n }\n this.clearHeaderSlots();\n }\n\n fileContainer = this.getOrCreateFileContainerNode(\n fileContainer,\n containerWrapper\n );\n this.applyCachedThemeState(themeType);\n\n if (collapsed) {\n this.removeRenderedCode();\n this.clearAuxiliaryNodes();\n\n try {\n const fileResult = this.fileRenderer.renderFile(\n file,\n EMPTY_RENDER_RANGE\n );\n if (fileResult != null) {\n this.applyThemeState(\n fileContainer,\n fileResult.themeStyles,\n themeType,\n fileResult.baseThemeType\n );\n }\n if (fileResult?.headerAST != null) {\n this.applyHeaderToDOM(fileResult.headerAST, fileContainer);\n }\n this.injectUnsafeCSS();\n } catch (error: unknown) {\n if (disableErrorHandling) {\n throw error;\n }\n console.error(error);\n if (error instanceof Error) {\n this.applyErrorToDOM(error, fileContainer);\n }\n }\n if (!preventEmit) {\n this.emitPostRender();\n }\n return true;\n }\n\n try {\n const pre = this.getOrCreatePreNode(fileContainer);\n if (\n !this.canPartiallyRender(\n forceRender,\n annotationsChanged,\n didFileChange || themeChanged\n ) ||\n !this.applyPartialRender(previousRenderRange, nextRenderRange)\n ) {\n const fileResult = this.fileRenderer.renderFile(file, nextRenderRange);\n if (fileResult == null) {\n if (this.workerManager?.isInitialized() === false) {\n void this.workerManager.initialize().then(() => this.rerender());\n }\n return false;\n }\n this.applyThemeState(\n fileContainer,\n fileResult.themeStyles,\n themeType,\n fileResult.baseThemeType\n );\n if (fileResult.headerAST != null) {\n this.applyHeaderToDOM(fileResult.headerAST, fileContainer);\n }\n this.applyFullRender(fileResult, pre);\n }\n\n this.applyBuffers(pre, nextRenderRange);\n this.injectUnsafeCSS();\n this.managersDirty = true;\n if (!deferManagers) {\n this.flushManagers();\n }\n this.renderAnnotations();\n this.renderGutterUtility();\n } catch (error: unknown) {\n if (disableErrorHandling) {\n throw error;\n }\n console.error(error);\n if (error instanceof Error) {\n this.applyErrorToDOM(error, fileContainer);\n }\n }\n if (!preventEmit) {\n this.emitPostRender();\n }\n return true;\n }\n\n private emitPostRender() {\n if (this.fileContainer != null) {\n this.options.onPostRender?.(this.fileContainer, this);\n }\n }\n\n private removeRenderedCode(): void {\n this.resizeManager.cleanUp();\n this.interactionManager.cleanUp();\n\n this.bufferBefore?.remove();\n this.bufferBefore = undefined;\n this.bufferAfter?.remove();\n this.bufferAfter = undefined;\n\n this.code?.remove();\n this.code = undefined;\n\n this.pre?.remove();\n this.pre = undefined;\n\n this.appliedPreAttributes = undefined;\n this.lastRowCount = undefined;\n }\n\n private clearAuxiliaryNodes(): void {\n for (const { element } of this.annotationCache.values()) {\n element.remove();\n }\n this.annotationCache.clear();\n\n this.gutterUtilityContent?.remove();\n this.gutterUtilityContent = undefined;\n }\n\n private canPartiallyRender(\n forceRender: boolean,\n annotationsChanged: boolean,\n didContentChange: boolean\n ): boolean {\n if (forceRender || annotationsChanged || didContentChange) {\n return false;\n }\n return true;\n }\n\n public renderPlaceholder(height: number): boolean {\n if (this.fileContainer == null) {\n return false;\n }\n this.cleanChildNodes();\n\n if (this.placeHolder == null) {\n const shadowRoot =\n this.fileContainer.shadowRoot ??\n this.fileContainer.attachShadow({ mode: 'open' });\n this.placeHolder = document.createElement('div');\n this.placeHolder.dataset.placeholder = '';\n shadowRoot.appendChild(this.placeHolder);\n }\n this.placeHolder.style.setProperty('height', `${height}px`);\n return true;\n }\n\n public primeHighlightCache(): void {\n const { file, workerManager } = this;\n if (\n file == null ||\n file.cacheKey == null ||\n workerManager == null ||\n isFilePlainText(file)\n ) {\n return;\n }\n const lines = this.fileRenderer.getOrCreateLineCache(file);\n if (\n lines.length >\n (this.options.tokenizeMaxLength ?? DEFAULT_TOKENIZE_MAX_LENGTH)\n ) {\n return;\n }\n workerManager.primeFileHighlightCache(file);\n }\n\n private cleanChildNodes() {\n this.resizeManager.cleanUp();\n this.interactionManager.cleanUp();\n\n this.bufferAfter?.remove();\n this.bufferBefore?.remove();\n this.code?.remove();\n this.errorWrapper?.remove();\n this.headerElement?.remove();\n this.gutterUtilityContent?.remove();\n this.headerPrefix?.remove();\n this.headerMetadata?.remove();\n this.headerCustom?.remove();\n this.pre?.remove();\n this.spriteSVG?.remove();\n this.themeCSSStyle?.remove();\n this.unsafeCSSStyle?.remove();\n\n this.bufferAfter = undefined;\n this.bufferBefore = undefined;\n this.code = undefined;\n this.errorWrapper = undefined;\n this.headerElement = undefined;\n this.gutterUtilityContent = undefined;\n this.headerPrefix = undefined;\n this.headerMetadata = undefined;\n this.headerCustom = undefined;\n this.pre = undefined;\n this.spriteSVG = undefined;\n this.themeCSSStyle = undefined;\n this.appliedThemeCSS = undefined;\n this.hasAdoptedThemeCSS = false;\n this.unsafeCSSStyle = undefined;\n this.appliedUnsafeCSS = undefined;\n\n this.lastRenderedHeaderHTML = undefined;\n this.lastRowCount = undefined;\n }\n\n private renderAnnotations(): void {\n if (this.isContainerManaged || this.fileContainer == null) {\n for (const { element } of this.annotationCache.values()) {\n element.remove();\n }\n this.annotationCache.clear();\n return;\n }\n const staleAnnotations = new Map(this.annotationCache);\n const { renderAnnotation } = this.options;\n if (renderAnnotation != null && this.lineAnnotations.length > 0) {\n for (const [index, annotation] of this.lineAnnotations.entries()) {\n const id = `${index}-${getLineAnnotationName(annotation)}`;\n let cache = this.annotationCache.get(id);\n if (\n cache == null ||\n !areLineAnnotationsEqual(annotation, cache.annotation)\n ) {\n cache?.element.remove();\n const content = renderAnnotation(annotation);\n // If we can't render anything, then we should not render anything\n // and clear the annotation cache if necessary.\n if (content == null) {\n continue;\n }\n cache = {\n element: createAnnotationWrapperNode(\n getLineAnnotationName(annotation)\n ),\n annotation,\n };\n cache.element.appendChild(content);\n this.fileContainer.appendChild(cache.element);\n this.annotationCache.set(id, cache);\n }\n staleAnnotations.delete(id);\n }\n }\n for (const [id, { element }] of staleAnnotations.entries()) {\n this.annotationCache.delete(id);\n element.remove();\n }\n }\n\n private renderGutterUtility() {\n const { renderGutterUtility } = this.options;\n if (this.fileContainer == null || renderGutterUtility == null) {\n this.gutterUtilityContent?.remove();\n this.gutterUtilityContent = undefined;\n return;\n }\n const element = renderGutterUtility(this.interactionManager.getHoveredLine);\n if (element != null && this.gutterUtilityContent != null) {\n return;\n } else if (element == null) {\n this.gutterUtilityContent?.remove();\n this.gutterUtilityContent = undefined;\n return;\n }\n const gutterUtilityContent = createGutterUtilityContentNode();\n gutterUtilityContent.appendChild(element);\n this.fileContainer.appendChild(gutterUtilityContent);\n this.gutterUtilityContent = gutterUtilityContent;\n }\n\n private injectUnsafeCSS(): void {\n const { unsafeCSS } = this.options;\n const shadowRoot = this.fileContainer?.shadowRoot;\n if (shadowRoot == null) {\n return;\n }\n\n if (unsafeCSS == null || unsafeCSS === '') {\n if (this.unsafeCSSStyle != null) {\n this.unsafeCSSStyle.remove();\n this.unsafeCSSStyle = undefined;\n }\n this.appliedUnsafeCSS = undefined;\n return;\n }\n\n if (\n this.unsafeCSSStyle?.parentNode === shadowRoot &&\n this.appliedUnsafeCSS === unsafeCSS\n ) {\n return;\n }\n\n // Create or update the style element\n this.unsafeCSSStyle ??= createUnsafeCSSStyleNode();\n if (this.unsafeCSSStyle.parentNode !== shadowRoot) {\n shadowRoot.appendChild(this.unsafeCSSStyle);\n }\n // Wrap in @layer unsafe to match SSR behavior\n this.unsafeCSSStyle.textContent = wrapUnsafeCSS(unsafeCSS);\n this.appliedUnsafeCSS = unsafeCSS;\n }\n\n private applyThemeState(\n container: HTMLElement,\n themeStyles: string,\n themeType: ThemeTypes,\n baseThemeType?: 'light' | 'dark'\n ): void {\n const shadowRoot =\n container.shadowRoot ?? container.attachShadow({ mode: 'open' });\n const effectiveThemeType = baseThemeType ?? themeType;\n const currentTheme = this.options.theme ?? DEFAULT_THEMES;\n const theme =\n typeof currentTheme === 'string' ? currentTheme : { ...currentTheme };\n const scrollbarGutter = getMeasuredScrollbarGutter(shadowRoot);\n if (\n this.themeCSSStyle?.parentNode === shadowRoot &&\n this.appliedThemeCSS?.themeStyles === themeStyles &&\n this.appliedThemeCSS.themeType === effectiveThemeType &&\n this.appliedThemeCSS.scrollbarGutter === scrollbarGutter\n ) {\n this.appliedThemeCSS.theme = theme;\n return;\n }\n if (\n this.hasAdoptedThemeCSS &&\n this.themeCSSStyle?.parentNode === shadowRoot\n ) {\n this.hasAdoptedThemeCSS = false;\n this.appliedThemeCSS = {\n theme,\n themeStyles,\n themeType: effectiveThemeType,\n baseThemeType,\n scrollbarGutter,\n };\n return;\n }\n this.themeCSSStyle = upsertHostThemeStyle({\n shadowRoot,\n currentNode: this.themeCSSStyle,\n themeCSS: wrapThemeCSS(themeStyles, effectiveThemeType, scrollbarGutter),\n });\n this.appliedThemeCSS =\n this.themeCSSStyle != null\n ? {\n theme,\n themeStyles,\n themeType: effectiveThemeType,\n baseThemeType,\n scrollbarGutter,\n }\n : undefined;\n }\n\n private hydrateMeasuredScrollbar(): void {\n const shadowRoot = this.fileContainer?.shadowRoot;\n if (shadowRoot == null || this.themeCSSStyle == null) {\n return;\n }\n this.themeCSSStyle.textContent = patchScrollbarGutterSize(\n this.themeCSSStyle.textContent ?? '',\n getMeasuredScrollbarGutter(shadowRoot)\n );\n }\n\n private applyFullRender(result: FileRenderResult, pre: HTMLPreElement): void {\n this.cleanupErrorWrapper();\n this.applyPreNodeAttributes(pre, result);\n this.code = getOrCreateCodeNode({ code: this.code });\n this.code.innerHTML = this.fileRenderer.renderPartialHTML(\n this.fileRenderer.renderCodeAST(result)\n );\n pre.replaceChildren(this.code);\n this.lastRowCount = result.rowCount;\n }\n\n private applyPartialRender(\n previousRenderRange: RenderRange | undefined,\n renderRange: RenderRange | undefined\n ): boolean {\n if (previousRenderRange == null || renderRange == null) {\n return false;\n }\n const { file, code } = this;\n const columns = code != null ? this.getColumns(code) : undefined;\n if (file == null || code == null || columns == null) {\n return false;\n }\n\n const previousStart = previousRenderRange.startingLine;\n const nextStart = renderRange.startingLine;\n const previousEnd =\n previousRenderRange.totalLines === Infinity\n ? Number.POSITIVE_INFINITY\n : previousStart + previousRenderRange.totalLines;\n const nextEnd =\n renderRange.totalLines === Infinity\n ? Number.POSITIVE_INFINITY\n : nextStart + renderRange.totalLines;\n\n const overlapStart = Math.max(previousStart, nextStart);\n const overlapEnd = Math.min(previousEnd, nextEnd);\n if (overlapEnd <= overlapStart) {\n return false;\n }\n\n if (\n !this.trimDOMToOverlap(columns.gutter, overlapStart, overlapEnd) ||\n !this.trimDOMToOverlap(columns.content, overlapStart, overlapEnd)\n ) {\n return false;\n }\n\n let { length: rowCount } = columns.content.children;\n\n const renderChunk = (\n startingLine: number,\n totalLines: number\n ): FileRenderResult | undefined => {\n if (totalLines <= 0) {\n return undefined;\n }\n return this.fileRenderer.renderFile(file, {\n startingLine,\n totalLines,\n bufferBefore: 0,\n bufferAfter: 0,\n });\n };\n\n const prependResult =\n nextStart < overlapStart\n ? renderChunk(nextStart, overlapStart - nextStart)\n : undefined;\n if (prependResult === undefined && nextStart < overlapStart) {\n return false;\n }\n\n const appendTotalLines =\n nextEnd === Number.POSITIVE_INFINITY\n ? Number.POSITIVE_INFINITY\n : Math.max(0, nextEnd - overlapEnd);\n const appendResult =\n nextEnd > overlapEnd\n ? renderChunk(overlapEnd, appendTotalLines)\n : undefined;\n if (appendResult === undefined && nextEnd > overlapEnd) {\n return false;\n }\n\n this.cleanupErrorWrapper();\n if (prependResult != null) {\n columns.gutter.insertAdjacentHTML(\n 'afterbegin',\n this.fileRenderer.renderPartialHTML(prependResult.gutterAST)\n );\n columns.content.insertAdjacentHTML(\n 'afterbegin',\n this.fileRenderer.renderPartialHTML(prependResult.contentAST)\n );\n rowCount += prependResult.rowCount;\n }\n\n if (appendResult != null) {\n columns.gutter.insertAdjacentHTML(\n 'beforeend',\n this.fileRenderer.renderPartialHTML(appendResult.gutterAST)\n );\n columns.content.insertAdjacentHTML(\n 'beforeend',\n this.fileRenderer.renderPartialHTML(appendResult.contentAST)\n );\n rowCount += appendResult.rowCount;\n }\n\n if (this.lastRowCount !== rowCount) {\n columns.gutter.style.setProperty('grid-row', `span ${rowCount}`);\n columns.content.style.setProperty('grid-row', `span ${rowCount}`);\n this.lastRowCount = rowCount;\n }\n\n return true;\n }\n\n private getColumns(code: HTMLElement): ColumnElements | undefined {\n const gutter = code.children[0];\n const content = code.children[1];\n if (\n !(gutter instanceof HTMLElement) ||\n !(content instanceof HTMLElement) ||\n gutter.dataset.gutter == null ||\n content.dataset.content == null\n ) {\n return undefined;\n }\n return { gutter, content };\n }\n\n private trimDOMToOverlap(\n container: HTMLElement,\n overlapStart: number,\n overlapEnd: number\n ): boolean {\n const boundaryIndices = this.getDOMBoundaryIndices(container, [\n overlapStart,\n overlapEnd,\n ]);\n const startIndex =\n boundaryIndices.get(overlapStart) ?? container.children.length;\n const endIndex =\n boundaryIndices.get(overlapEnd) ?? container.children.length;\n\n if (startIndex > endIndex) {\n return false;\n }\n\n for (let i = container.children.length - 1; i >= endIndex; i -= 1) {\n container.children[i]?.remove();\n }\n for (let i = startIndex - 1; i >= 0; i -= 1) {\n container.children[i]?.remove();\n }\n return true;\n }\n\n private getDOMBoundaryIndices(\n container: HTMLElement,\n boundaries: number[]\n ): Map<number, number> {\n const sortedBoundaries = [...new Set(boundaries)].sort((a, b) => a - b);\n const boundaryIndices = new Map<number, number>();\n if (sortedBoundaries.length === 0) {\n return boundaryIndices;\n }\n let boundaryIndex = 0;\n let nextBoundary = sortedBoundaries[boundaryIndex];\n const { children } = container;\n\n for (let i = 0; i < children.length; i += 1) {\n const child = children[i];\n if (!(child instanceof HTMLElement)) {\n continue;\n }\n const lineIndex = this.getLineIndexFromDOMNode(child);\n if (lineIndex == null) {\n continue;\n }\n while (nextBoundary != null && lineIndex >= nextBoundary) {\n boundaryIndices.set(nextBoundary, i);\n boundaryIndex += 1;\n nextBoundary = sortedBoundaries[boundaryIndex];\n }\n if (boundaryIndex >= sortedBoundaries.length) {\n break;\n }\n }\n\n for (const boundary of sortedBoundaries) {\n if (!boundaryIndices.has(boundary)) {\n boundaryIndices.set(boundary, children.length);\n }\n }\n return boundaryIndices;\n }\n\n private getLineIndexFromDOMNode(node: HTMLElement): number | undefined {\n const lineIndexAttr = node.dataset.lineIndex;\n if (lineIndexAttr == null) {\n return undefined;\n }\n const parsed = Number(lineIndexAttr);\n return Number.isNaN(parsed) ? undefined : parsed;\n }\n\n private applyBuffers(\n pre: HTMLPreElement,\n renderRange: RenderRange | undefined\n ) {\n if (renderRange == null || this.shouldDisableVirtualizationBuffers()) {\n if (this.bufferBefore != null) {\n this.bufferBefore.remove();\n this.bufferBefore = undefined;\n }\n if (this.bufferAfter != null) {\n this.bufferAfter.remove();\n this.bufferAfter = undefined;\n }\n return;\n }\n\n if (renderRange.bufferBefore > 0) {\n if (this.bufferBefore == null) {\n this.bufferBefore = document.createElement('div');\n this.bufferBefore.dataset.virtualizerBuffer = 'before';\n pre.before(this.bufferBefore);\n }\n this.bufferBefore.style.setProperty(\n 'height',\n `${renderRange.bufferBefore}px`\n );\n this.bufferBefore.style.setProperty('contain', 'strict');\n } else if (this.bufferBefore != null) {\n this.bufferBefore.remove();\n this.bufferBefore = undefined;\n }\n\n if (renderRange.bufferAfter > 0) {\n if (this.bufferAfter == null) {\n this.bufferAfter = document.createElement('div');\n this.bufferAfter.dataset.virtualizerBuffer = 'after';\n pre.after(this.bufferAfter);\n }\n this.bufferAfter.style.setProperty(\n 'height',\n `${renderRange.bufferAfter}px`\n );\n this.bufferAfter.style.setProperty('contain', 'strict');\n } else if (this.bufferAfter != null) {\n this.bufferAfter.remove();\n this.bufferAfter = undefined;\n }\n }\n\n protected shouldDisableVirtualizationBuffers(): boolean {\n return this.options.disableVirtualizationBuffers ?? false;\n }\n\n private applyHeaderToDOM(\n headerAST: HASTElement,\n container: HTMLElement\n ): void {\n const { file } = this;\n if (file == null) return;\n this.cleanupErrorWrapper();\n this.placeHolder?.remove();\n this.placeHolder = undefined;\n const headerHTML = this.cachedHeaderHTML ?? toHtml(headerAST);\n this.cachedHeaderHTML = headerHTML;\n if (headerHTML !== this.lastRenderedHeaderHTML) {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = headerHTML;\n const newHeader = tempDiv.firstElementChild;\n if (!(newHeader instanceof HTMLElement)) {\n return;\n }\n if (this.headerElement != null) {\n container.shadowRoot?.replaceChild(newHeader, this.headerElement);\n } else {\n container.shadowRoot?.prepend(newHeader);\n }\n this.headerElement = newHeader;\n this.lastRenderedHeaderHTML = headerHTML;\n }\n\n if (this.isContainerManaged) return;\n\n const { renderHeaderPrefix, renderCustomHeader, renderHeaderMetadata } =\n this.options;\n\n if (renderCustomHeader != null) {\n const content = renderCustomHeader(file) ?? undefined;\n this.headerCustom = this.upsertHeaderSlotElement(\n container,\n this.headerCustom,\n CUSTOM_HEADER_SLOT_ID,\n content\n );\n this.headerPrefix?.remove();\n this.headerMetadata?.remove();\n this.headerPrefix = undefined;\n this.headerMetadata = undefined;\n } else {\n const prefix = renderHeaderPrefix?.(file) ?? undefined;\n const content = renderHeaderMetadata?.(file) ?? undefined;\n this.headerPrefix = this.upsertHeaderSlotElement(\n container,\n this.headerPrefix,\n HEADER_PREFIX_SLOT_ID,\n prefix\n );\n this.headerMetadata = this.upsertHeaderSlotElement(\n container,\n this.headerMetadata,\n HEADER_METADATA_SLOT_ID,\n content\n );\n this.headerCustom?.remove();\n this.headerCustom = undefined;\n }\n }\n\n private clearHeaderSlots(): void {\n this.headerPrefix?.remove();\n this.headerMetadata?.remove();\n this.headerCustom?.remove();\n this.headerPrefix = undefined;\n this.headerMetadata = undefined;\n this.headerCustom = undefined;\n }\n\n // Header slot callbacks are presence-based render hooks, not reactive views.\n private upsertHeaderSlotElement(\n container: HTMLElement,\n current: HTMLElement | undefined,\n slot: string,\n content: Element | string | number | undefined\n ): HTMLElement | undefined {\n if (content == null) {\n current?.remove();\n return undefined;\n }\n const element = current ?? this.createHeaderSlotElement(slot);\n if (current == null) {\n container.appendChild(element);\n }\n this.replaceHeaderSlotContent(element, content);\n return element;\n }\n\n private replaceHeaderSlotContent(\n element: HTMLElement,\n content: Element | string | number\n ): void {\n element.replaceChildren();\n if (content instanceof Element) {\n element.appendChild(content);\n } else {\n element.innerText = `${content}`;\n }\n }\n\n private createHeaderSlotElement(slot: string): HTMLElement {\n const element = document.createElement('div');\n element.slot = slot;\n return element;\n }\n\n protected getOrCreateFileContainerNode(\n fileContainer?: HTMLElement,\n parentNode?: HTMLElement\n ): HTMLElement {\n const previousContainer = this.fileContainer;\n this.fileContainer =\n fileContainer ??\n this.fileContainer ??\n document.createElement(DIFFS_TAG_NAME);\n const containerChanged = previousContainer !== this.fileContainer;\n if (previousContainer != null && containerChanged) {\n this.lastRenderedHeaderHTML = undefined;\n this.headerElement = undefined;\n }\n if (parentNode != null && this.fileContainer.parentNode !== parentNode) {\n parentNode.appendChild(this.fileContainer);\n }\n if (containerChanged) {\n this.adoptReusableShellElements(this.fileContainer);\n }\n this.ensureSpriteSVG(this.fileContainer);\n return this.fileContainer;\n }\n\n // NOTE(amadeus): Technically this method is not safe for use outside of\n // the CodeView component, however I don't think in practice it really\n // should matter, but maybe there's some system we need in place to prevent\n // this from running outside of that environment?\n //\n // It's making very specific assumptions that all the elements will have the\n // correct content based on CodeView global options\n private adoptReusableShellElements(fileContainer: HTMLElement): void {\n const { shadowRoot } = fileContainer;\n if (shadowRoot == null) {\n return;\n }\n\n for (const element of shadowRoot.children) {\n if (element instanceof SVGElement) {\n this.spriteSVG ??= element;\n } else if (\n isStyleNode(element) &&\n element.hasAttribute(THEME_CSS_ATTRIBUTE)\n ) {\n this.themeCSSStyle ??= element;\n this.hasAdoptedThemeCSS = true;\n } else if (\n isStyleNode(element) &&\n element.hasAttribute(UNSAFE_CSS_ATTRIBUTE)\n ) {\n this.unsafeCSSStyle ??= element;\n this.appliedUnsafeCSS ??= this.options.unsafeCSS ?? undefined;\n }\n }\n }\n\n private ensureSpriteSVG(fileContainer: HTMLElement): void {\n const shadowRoot =\n fileContainer.shadowRoot ?? fileContainer.attachShadow({ mode: 'open' });\n if (this.spriteSVG == null) {\n const fragment = document.createElement('div');\n fragment.innerHTML = SVGSpriteSheet;\n const firstChild = fragment.firstChild;\n if (firstChild instanceof SVGElement) {\n this.spriteSVG = firstChild;\n }\n }\n if (this.spriteSVG != null && this.spriteSVG.parentNode !== shadowRoot) {\n shadowRoot.appendChild(this.spriteSVG);\n }\n }\n\n private getOrCreatePreNode(container: HTMLElement): HTMLPreElement {\n const shadowRoot =\n container.shadowRoot ?? container.attachShadow({ mode: 'open' });\n // If we haven't created a pre element yet, lets go ahead and do that\n if (this.pre == null) {\n this.pre = document.createElement('pre');\n this.appliedPreAttributes = undefined;\n this.code = undefined;\n shadowRoot.appendChild(this.pre);\n }\n // If we have a new parent container for the pre element, lets go ahead and\n // move it into the new container\n else if (this.pre.parentNode !== shadowRoot) {\n container.shadowRoot?.appendChild(this.pre);\n this.appliedPreAttributes = undefined;\n }\n\n this.placeHolder?.remove();\n this.placeHolder = undefined;\n\n return this.pre;\n }\n\n private syncCodeNodeFromPre(pre: HTMLPreElement): void {\n this.code = undefined;\n for (const child of Array.from(pre.children)) {\n if (!(child instanceof HTMLElement)) {\n continue;\n }\n if (child.hasAttribute('data-code')) {\n this.code = child;\n return;\n }\n }\n }\n\n private applyPreNodeAttributes(\n pre: HTMLPreElement,\n { totalLines }: FileRenderResult\n ): void {\n const { overflow = 'scroll', disableLineNumbers = false } = this.options;\n const preProperties: PrePropertiesConfig = {\n type: 'file',\n split: false,\n overflow,\n disableLineNumbers,\n diffIndicators: 'none',\n disableBackground: true,\n totalLines,\n };\n if (arePrePropertiesEqual(preProperties, this.appliedPreAttributes)) {\n return;\n }\n setPreNodeProperties(pre, preProperties);\n this.appliedPreAttributes = preProperties;\n }\n\n private applyErrorToDOM(error: Error, container: HTMLElement) {\n this.cleanupErrorWrapper();\n this.pre?.remove();\n this.pre = undefined;\n this.appliedPreAttributes = undefined;\n const shadowRoot =\n container.shadowRoot ?? container.attachShadow({ mode: 'open' });\n this.errorWrapper ??= document.createElement('div');\n this.errorWrapper.dataset.errorWrapper = '';\n this.errorWrapper.textContent = '';\n shadowRoot.appendChild(this.errorWrapper);\n const errorMessage = document.createElement('div');\n errorMessage.dataset.errorMessage = '';\n errorMessage.innerText = error.message;\n this.errorWrapper.appendChild(errorMessage);\n const errorStack = document.createElement('pre');\n errorStack.dataset.errorStack = '';\n errorStack.innerText = error.stack ?? 'No Error Stack';\n this.errorWrapper.appendChild(errorStack);\n }\n\n private cleanupErrorWrapper() {\n this.errorWrapper?.remove();\n this.errorWrapper = undefined;\n }\n}\n\nfunction shouldRenderCode(\n pre: HTMLPreElement | undefined,\n file: FileContents | undefined,\n collapsed = false\n): boolean {\n return !collapsed && pre == null && file != null;\n}\n\nfunction shouldRenderHeader(\n headerElement: HTMLElement | undefined,\n file: FileContents | undefined,\n disableFileHeader: boolean = false\n): boolean {\n return headerElement == null && file != null && !disableFileHeader;\n}\n"],"mappings":"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"}
|
|
@@ -106,6 +106,7 @@ declare class FileDiff<LAnnotation = undefined> {
|
|
|
106
106
|
protected createHunksRenderer(options: FileDiffOptions<LAnnotation>): DiffHunksRenderer<LAnnotation>;
|
|
107
107
|
getLineIndex: GetLineIndexUtility;
|
|
108
108
|
setOptions(options: FileDiffOptions<LAnnotation> | undefined): void;
|
|
109
|
+
protected syncInteractionOptions(): void;
|
|
109
110
|
private mergeOptions;
|
|
110
111
|
setThemeType(themeType: ThemeTypes): void;
|
|
111
112
|
private applyCachedThemeState;
|
|
@@ -129,6 +130,7 @@ declare class FileDiff<LAnnotation = undefined> {
|
|
|
129
130
|
lineAnnotations
|
|
130
131
|
}: HydrationSetup<LAnnotation>): void;
|
|
131
132
|
rerender(): void;
|
|
133
|
+
onThemeChange(): void;
|
|
132
134
|
handleExpandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;
|
|
133
135
|
expandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;
|
|
134
136
|
render({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileDiff.d.ts","names":["GetHoveredLineResult","GetLineIndexUtility","InteractionManager","InteractionManagerBaseOptions","SelectionWriteOptions","ResizeManager","ScrollSyncManager","DiffHunksRenderer","DiffHunksRendererOptions","HunksRenderResult","AppliedThemeStyleCache","BaseDiffOptions","CustomPreProperties","DiffLineAnnotation","ExpansionDirections","FileContents","FileDiffMetadata","HunkData","HunkSeparators","PrePropertiesConfig","RenderHeaderMetadataCallback","RenderHeaderPrefixCallback","RenderRange","SelectedLineRange","ThemeTypes","WorkerPoolManager","FileDiffRenderProps","LAnnotation","HTMLElement","FileDiffHydrationProps","Omit","FileDiffOptions","Exclude","FileDiff","DocumentFragment","AnnotationElementCache","CustomHunkElementCache","HydrationSetup","SVGElement","HTMLPreElement","HTMLStyleElement","Map","__0","AnnotationSide","fileDiff","oldFile","newFile","lineAnnotations","deferManagers","forceRender","preventEmit","fileContainer","containerWrapper","renderRange","additionsContentAST","deletionsContentAST","totalLines"],"sources":["../../src/components/FileDiff.d.ts"],"sourcesContent":["import { type GetHoveredLineResult, type GetLineIndexUtility, InteractionManager, type InteractionManagerBaseOptions, type SelectionWriteOptions } from '../managers/InteractionManager';\nimport { ResizeManager } from '../managers/ResizeManager';\nimport { ScrollSyncManager } from '../managers/ScrollSyncManager';\nimport { DiffHunksRenderer, type DiffHunksRendererOptions, type HunksRenderResult } from '../renderers/DiffHunksRenderer';\nimport type { AppliedThemeStyleCache, BaseDiffOptions, CustomPreProperties, DiffLineAnnotation, ExpansionDirections, FileContents, FileDiffMetadata, HunkData, HunkSeparators, PrePropertiesConfig, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, SelectedLineRange, ThemeTypes } from '../types';\nimport type { WorkerPoolManager } from '../worker';\nexport interface FileDiffRenderProps<LAnnotation> {\n fileDiff?: FileDiffMetadata;\n oldFile?: FileContents;\n newFile?: FileContents;\n deferManagers?: boolean;\n forceRender?: boolean;\n preventEmit?: boolean;\n fileContainer?: HTMLElement;\n containerWrapper?: HTMLElement;\n lineAnnotations?: DiffLineAnnotation<LAnnotation>[];\n renderRange?: RenderRange;\n}\nexport interface FileDiffHydrationProps<LAnnotation> extends Omit<FileDiffRenderProps<LAnnotation>, 'fileContainer'> {\n fileContainer: HTMLElement;\n prerenderedHTML?: string;\n}\nexport interface FileDiffOptions<LAnnotation> extends Omit<BaseDiffOptions, 'hunkSeparators'>, InteractionManagerBaseOptions<'diff'> {\n hunkSeparators?: Exclude<HunkSeparators, 'custom'> /**\n * @deprecated Custom hunk separator functions are deprecated and will be\n * removed in a future version.\n */ | ((hunk: HunkData, instance: FileDiff<LAnnotation>) => HTMLElement | DocumentFragment | null | undefined);\n disableFileHeader?: boolean;\n renderHeaderPrefix?: RenderHeaderPrefixCallback;\n renderHeaderMetadata?: RenderHeaderMetadataCallback;\n renderCustomHeader?: RenderHeaderMetadataCallback;\n /**\n * When true, errors during rendering are rethrown instead of being caught\n * and displayed in the DOM. Useful for testing or when you want to handle\n * errors yourself.\n */\n disableErrorHandling?: boolean;\n renderAnnotation?(annotation: DiffLineAnnotation<LAnnotation>): HTMLElement | undefined;\n renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<'diff'> | undefined): HTMLElement | null | undefined;\n onPostRender?(node: HTMLElement, instance: FileDiff<LAnnotation>): unknown;\n}\ninterface AnnotationElementCache<LAnnotation> {\n element: HTMLElement;\n annotation: DiffLineAnnotation<LAnnotation>;\n}\ninterface CustomHunkElementCache {\n element: HTMLElement;\n hunkData: HunkData;\n}\ninterface HydrationSetup<LAnnotation> {\n fileDiff: FileDiffMetadata | undefined;\n lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;\n oldFile?: FileContents;\n newFile?: FileContents;\n}\nexport declare class FileDiff<LAnnotation = undefined> {\n options: FileDiffOptions<LAnnotation>;\n protected workerManager?: WorkerPoolManager | undefined;\n protected isContainerManaged: boolean;\n static LoadedCustomComponent: boolean;\n readonly __id: string;\n protected fileContainer: HTMLElement | undefined;\n protected spriteSVG: SVGElement | undefined;\n protected pre: HTMLPreElement | undefined;\n protected codeUnified: HTMLElement | undefined;\n protected codeDeletions: HTMLElement | undefined;\n protected codeAdditions: HTMLElement | undefined;\n protected bufferBefore: HTMLElement | undefined;\n protected bufferAfter: HTMLElement | undefined;\n protected themeCSSStyle: HTMLStyleElement | undefined;\n protected appliedThemeCSS: AppliedThemeStyleCache | undefined;\n protected hasAdoptedThemeCSS: boolean;\n protected unsafeCSSStyle: HTMLStyleElement | undefined;\n protected appliedUnsafeCSS: string | undefined;\n protected gutterUtilityContent: HTMLElement | undefined;\n protected headerElement: HTMLElement | undefined;\n protected headerPrefix: HTMLElement | undefined;\n protected headerMetadata: HTMLElement | undefined;\n protected headerCustom: HTMLElement | undefined;\n protected separatorCache: Map<string, CustomHunkElementCache>;\n protected errorWrapper: HTMLElement | undefined;\n protected placeHolder: HTMLElement | undefined;\n protected hunksRenderer: DiffHunksRenderer<LAnnotation>;\n protected resizeManager: ResizeManager;\n protected scrollSyncManager: ScrollSyncManager;\n protected interactionManager: InteractionManager<'diff'>;\n protected annotationCache: Map<string, AnnotationElementCache<LAnnotation>>;\n protected lineAnnotations: DiffLineAnnotation<LAnnotation>[];\n protected managersDirty: boolean;\n protected deletionFile: FileContents | undefined;\n protected additionFile: FileContents | undefined;\n protected fileDiff: FileDiffMetadata | undefined;\n protected renderRange: RenderRange | undefined;\n protected appliedPreAttributes: PrePropertiesConfig | undefined;\n protected lastRenderedHeaderHTML: string | undefined;\n protected cachedHeaderHTML: string | undefined;\n protected lastRowCount: number | undefined;\n protected enabled: boolean;\n constructor(options?: FileDiffOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);\n protected handleHighlightRender: () => void;\n protected getHunksRendererOptions(options: FileDiffOptions<LAnnotation>): DiffHunksRendererOptions;\n protected createHunksRenderer(options: FileDiffOptions<LAnnotation>): DiffHunksRenderer<LAnnotation>;\n getLineIndex: GetLineIndexUtility;\n setOptions(options: FileDiffOptions<LAnnotation> | undefined): void;\n private mergeOptions;\n setThemeType(themeType: ThemeTypes): void;\n private applyCachedThemeState;\n private hasThemeChanged;\n getHoveredLine: () => {\n lineNumber: number;\n side: import(\"..\").AnnotationSide;\n } | undefined;\n setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;\n private canPartiallyRender;\n setSelectedLines(range: SelectedLineRange | null, options?: SelectionWriteOptions): void;\n flushManagers(): void;\n cleanUp(recycle?: boolean): void;\n virtualizedSetup(): void;\n hydrate(props: FileDiffHydrationProps<LAnnotation>): void;\n protected hydrateElements(fileContainer: HTMLElement, prerenderedHTML: string | undefined): void;\n protected hydrationSetup({ fileDiff, oldFile, newFile, lineAnnotations }: HydrationSetup<LAnnotation>): void;\n rerender(): void;\n handleExpandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n expandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n render({ oldFile, newFile, fileDiff, deferManagers, forceRender, preventEmit, lineAnnotations, fileContainer, containerWrapper, renderRange }: FileDiffRenderProps<LAnnotation>): boolean;\n protected emitPostRender(): void;\n private removeRenderedCode;\n private clearAuxiliaryNodes;\n renderPlaceholder(height: number): boolean;\n primeHighlightCache(): void;\n private cleanChildNodes;\n private renderSeparators;\n protected renderAnnotations(): void;\n protected renderGutterUtility(): void;\n protected getOrCreateFileContainer(fileContainer?: HTMLElement, parentNode?: HTMLElement): HTMLElement;\n private adoptReusableShellElements;\n private ensureSpriteSVG;\n private getOrCreatePreNode;\n protected syncCodeNodesFromPre(pre: HTMLPreElement): void;\n private applyHeaderToDOM;\n private clearHeaderSlots;\n private upsertHeaderSlotElement;\n private replaceHeaderSlotContent;\n private createHeaderSlotElement;\n protected injectUnsafeCSS(): void;\n private applyThemeState;\n private hydrateMeasuredScrollbar;\n private applyHunksToDOM;\n private applyPartialRender;\n private insertPartialHTML;\n private renderPartialColumn;\n private mergeBuffersIfNecessary;\n private applyRowSpan;\n private trimColumnRows;\n private trimColumns;\n private getBufferSize;\n private updateBufferSize;\n private getCodeColumns;\n private applyBuffers;\n protected shouldDisableVirtualizationBuffers(): boolean;\n protected applyPreNodeAttributes(pre: HTMLPreElement, { additionsContentAST, deletionsContentAST, totalLines }: HunksRenderResult, customProperties?: CustomPreProperties): void;\n private applyErrorToDOM;\n private cleanupErrorWrapper;\n}\nexport {};\n//# sourceMappingURL=FileDiff.d.ts.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileDiff.d.ts","names":["GetHoveredLineResult","GetLineIndexUtility","InteractionManager","InteractionManagerBaseOptions","SelectionWriteOptions","ResizeManager","ScrollSyncManager","DiffHunksRenderer","DiffHunksRendererOptions","HunksRenderResult","AppliedThemeStyleCache","BaseDiffOptions","CustomPreProperties","DiffLineAnnotation","ExpansionDirections","FileContents","FileDiffMetadata","HunkData","HunkSeparators","PrePropertiesConfig","RenderHeaderMetadataCallback","RenderHeaderPrefixCallback","RenderRange","SelectedLineRange","ThemeTypes","WorkerPoolManager","FileDiffRenderProps","LAnnotation","HTMLElement","FileDiffHydrationProps","Omit","FileDiffOptions","Exclude","FileDiff","DocumentFragment","AnnotationElementCache","CustomHunkElementCache","HydrationSetup","SVGElement","HTMLPreElement","HTMLStyleElement","Map","__0","AnnotationSide","fileDiff","oldFile","newFile","lineAnnotations","deferManagers","forceRender","preventEmit","fileContainer","containerWrapper","renderRange","additionsContentAST","deletionsContentAST","totalLines"],"sources":["../../src/components/FileDiff.d.ts"],"sourcesContent":["import { type GetHoveredLineResult, type GetLineIndexUtility, InteractionManager, type InteractionManagerBaseOptions, type SelectionWriteOptions } from '../managers/InteractionManager';\nimport { ResizeManager } from '../managers/ResizeManager';\nimport { ScrollSyncManager } from '../managers/ScrollSyncManager';\nimport { DiffHunksRenderer, type DiffHunksRendererOptions, type HunksRenderResult } from '../renderers/DiffHunksRenderer';\nimport type { AppliedThemeStyleCache, BaseDiffOptions, CustomPreProperties, DiffLineAnnotation, ExpansionDirections, FileContents, FileDiffMetadata, HunkData, HunkSeparators, PrePropertiesConfig, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, SelectedLineRange, ThemeTypes } from '../types';\nimport type { WorkerPoolManager } from '../worker';\nexport interface FileDiffRenderProps<LAnnotation> {\n fileDiff?: FileDiffMetadata;\n oldFile?: FileContents;\n newFile?: FileContents;\n deferManagers?: boolean;\n forceRender?: boolean;\n preventEmit?: boolean;\n fileContainer?: HTMLElement;\n containerWrapper?: HTMLElement;\n lineAnnotations?: DiffLineAnnotation<LAnnotation>[];\n renderRange?: RenderRange;\n}\nexport interface FileDiffHydrationProps<LAnnotation> extends Omit<FileDiffRenderProps<LAnnotation>, 'fileContainer'> {\n fileContainer: HTMLElement;\n prerenderedHTML?: string;\n}\nexport interface FileDiffOptions<LAnnotation> extends Omit<BaseDiffOptions, 'hunkSeparators'>, InteractionManagerBaseOptions<'diff'> {\n hunkSeparators?: Exclude<HunkSeparators, 'custom'> /**\n * @deprecated Custom hunk separator functions are deprecated and will be\n * removed in a future version.\n */ | ((hunk: HunkData, instance: FileDiff<LAnnotation>) => HTMLElement | DocumentFragment | null | undefined);\n disableFileHeader?: boolean;\n renderHeaderPrefix?: RenderHeaderPrefixCallback;\n renderHeaderMetadata?: RenderHeaderMetadataCallback;\n renderCustomHeader?: RenderHeaderMetadataCallback;\n /**\n * When true, errors during rendering are rethrown instead of being caught\n * and displayed in the DOM. Useful for testing or when you want to handle\n * errors yourself.\n */\n disableErrorHandling?: boolean;\n renderAnnotation?(annotation: DiffLineAnnotation<LAnnotation>): HTMLElement | undefined;\n renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<'diff'> | undefined): HTMLElement | null | undefined;\n onPostRender?(node: HTMLElement, instance: FileDiff<LAnnotation>): unknown;\n}\ninterface AnnotationElementCache<LAnnotation> {\n element: HTMLElement;\n annotation: DiffLineAnnotation<LAnnotation>;\n}\ninterface CustomHunkElementCache {\n element: HTMLElement;\n hunkData: HunkData;\n}\ninterface HydrationSetup<LAnnotation> {\n fileDiff: FileDiffMetadata | undefined;\n lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;\n oldFile?: FileContents;\n newFile?: FileContents;\n}\nexport declare class FileDiff<LAnnotation = undefined> {\n options: FileDiffOptions<LAnnotation>;\n protected workerManager?: WorkerPoolManager | undefined;\n protected isContainerManaged: boolean;\n static LoadedCustomComponent: boolean;\n readonly __id: string;\n protected fileContainer: HTMLElement | undefined;\n protected spriteSVG: SVGElement | undefined;\n protected pre: HTMLPreElement | undefined;\n protected codeUnified: HTMLElement | undefined;\n protected codeDeletions: HTMLElement | undefined;\n protected codeAdditions: HTMLElement | undefined;\n protected bufferBefore: HTMLElement | undefined;\n protected bufferAfter: HTMLElement | undefined;\n protected themeCSSStyle: HTMLStyleElement | undefined;\n protected appliedThemeCSS: AppliedThemeStyleCache | undefined;\n protected hasAdoptedThemeCSS: boolean;\n protected unsafeCSSStyle: HTMLStyleElement | undefined;\n protected appliedUnsafeCSS: string | undefined;\n protected gutterUtilityContent: HTMLElement | undefined;\n protected headerElement: HTMLElement | undefined;\n protected headerPrefix: HTMLElement | undefined;\n protected headerMetadata: HTMLElement | undefined;\n protected headerCustom: HTMLElement | undefined;\n protected separatorCache: Map<string, CustomHunkElementCache>;\n protected errorWrapper: HTMLElement | undefined;\n protected placeHolder: HTMLElement | undefined;\n protected hunksRenderer: DiffHunksRenderer<LAnnotation>;\n protected resizeManager: ResizeManager;\n protected scrollSyncManager: ScrollSyncManager;\n protected interactionManager: InteractionManager<'diff'>;\n protected annotationCache: Map<string, AnnotationElementCache<LAnnotation>>;\n protected lineAnnotations: DiffLineAnnotation<LAnnotation>[];\n protected managersDirty: boolean;\n protected deletionFile: FileContents | undefined;\n protected additionFile: FileContents | undefined;\n protected fileDiff: FileDiffMetadata | undefined;\n protected renderRange: RenderRange | undefined;\n protected appliedPreAttributes: PrePropertiesConfig | undefined;\n protected lastRenderedHeaderHTML: string | undefined;\n protected cachedHeaderHTML: string | undefined;\n protected lastRowCount: number | undefined;\n protected enabled: boolean;\n constructor(options?: FileDiffOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);\n protected handleHighlightRender: () => void;\n protected getHunksRendererOptions(options: FileDiffOptions<LAnnotation>): DiffHunksRendererOptions;\n protected createHunksRenderer(options: FileDiffOptions<LAnnotation>): DiffHunksRenderer<LAnnotation>;\n getLineIndex: GetLineIndexUtility;\n setOptions(options: FileDiffOptions<LAnnotation> | undefined): void;\n protected syncInteractionOptions(): void;\n private mergeOptions;\n setThemeType(themeType: ThemeTypes): void;\n private applyCachedThemeState;\n private hasThemeChanged;\n getHoveredLine: () => {\n lineNumber: number;\n side: import(\"..\").AnnotationSide;\n } | undefined;\n setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;\n private canPartiallyRender;\n setSelectedLines(range: SelectedLineRange | null, options?: SelectionWriteOptions): void;\n flushManagers(): void;\n cleanUp(recycle?: boolean): void;\n virtualizedSetup(): void;\n hydrate(props: FileDiffHydrationProps<LAnnotation>): void;\n protected hydrateElements(fileContainer: HTMLElement, prerenderedHTML: string | undefined): void;\n protected hydrationSetup({ fileDiff, oldFile, newFile, lineAnnotations }: HydrationSetup<LAnnotation>): void;\n rerender(): void;\n onThemeChange(): void;\n handleExpandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n expandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n render({ oldFile, newFile, fileDiff, deferManagers, forceRender, preventEmit, lineAnnotations, fileContainer, containerWrapper, renderRange }: FileDiffRenderProps<LAnnotation>): boolean;\n protected emitPostRender(): void;\n private removeRenderedCode;\n private clearAuxiliaryNodes;\n renderPlaceholder(height: number): boolean;\n primeHighlightCache(): void;\n private cleanChildNodes;\n private renderSeparators;\n protected renderAnnotations(): void;\n protected renderGutterUtility(): void;\n protected getOrCreateFileContainer(fileContainer?: HTMLElement, parentNode?: HTMLElement): HTMLElement;\n private adoptReusableShellElements;\n private ensureSpriteSVG;\n private getOrCreatePreNode;\n protected syncCodeNodesFromPre(pre: HTMLPreElement): void;\n private applyHeaderToDOM;\n private clearHeaderSlots;\n private upsertHeaderSlotElement;\n private replaceHeaderSlotContent;\n private createHeaderSlotElement;\n protected injectUnsafeCSS(): void;\n private applyThemeState;\n private hydrateMeasuredScrollbar;\n private applyHunksToDOM;\n private applyPartialRender;\n private insertPartialHTML;\n private renderPartialColumn;\n private mergeBuffersIfNecessary;\n private applyRowSpan;\n private trimColumnRows;\n private trimColumns;\n private getBufferSize;\n private updateBufferSize;\n private getCodeColumns;\n private applyBuffers;\n protected shouldDisableVirtualizationBuffers(): boolean;\n protected applyPreNodeAttributes(pre: HTMLPreElement, { additionsContentAST, deletionsContentAST, totalLines }: HunksRenderResult, customProperties?: CustomPreProperties): void;\n private applyErrorToDOM;\n private cleanupErrorWrapper;\n}\nexport {};\n//# sourceMappingURL=FileDiff.d.ts.map"],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ import { isDiffPlainText } from "../utils/isDiffPlainText.js";
|
|
|
24
24
|
import { DiffHunksRenderer } from "../renderers/DiffHunksRenderer.js";
|
|
25
25
|
import { areDiffLineAnnotationsEqual } from "../utils/areDiffLineAnnotationsEqual.js";
|
|
26
26
|
import { areHunkDataEqual } from "../utils/areHunkDataEqual.js";
|
|
27
|
+
import { getDiffHunksRendererOptions } from "../utils/getDiffHunksRendererOptions.js";
|
|
27
28
|
import { toHtml } from "hast-util-to-html";
|
|
28
29
|
|
|
29
30
|
//#region src/components/FileDiff.ts
|
|
@@ -83,11 +84,7 @@ var FileDiff = class {
|
|
|
83
84
|
this.rerender();
|
|
84
85
|
};
|
|
85
86
|
getHunksRendererOptions(options) {
|
|
86
|
-
return
|
|
87
|
-
...options,
|
|
88
|
-
headerRenderMode: options.renderCustomHeader != null ? "custom" : "default",
|
|
89
|
-
hunkSeparators: typeof options.hunkSeparators === "function" ? "custom" : options.hunkSeparators
|
|
90
|
-
};
|
|
87
|
+
return getDiffHunksRendererOptions(options);
|
|
91
88
|
}
|
|
92
89
|
createHunksRenderer(options) {
|
|
93
90
|
return new DiffHunksRenderer(this.getHunksRendererOptions(options), this.handleHighlightRender, this.workerManager);
|
|
@@ -150,7 +147,10 @@ var FileDiff = class {
|
|
|
150
147
|
this.options = options;
|
|
151
148
|
this.cachedHeaderHTML = void 0;
|
|
152
149
|
this.hunksRenderer.setOptions(this.getHunksRendererOptions(options));
|
|
153
|
-
this.
|
|
150
|
+
this.syncInteractionOptions();
|
|
151
|
+
}
|
|
152
|
+
syncInteractionOptions() {
|
|
153
|
+
this.interactionManager.setOptions(pluckInteractionOptions(this.options, typeof this.options.hunkSeparators === "function" || (this.options.hunkSeparators ?? "line-info") === "line-info" || this.options.hunkSeparators === "line-info-basic" ? this.handleExpandHunk : void 0, this.getLineIndex));
|
|
154
154
|
}
|
|
155
155
|
mergeOptions(options) {
|
|
156
156
|
this.options = {
|
|
@@ -314,6 +314,7 @@ var FileDiff = class {
|
|
|
314
314
|
this.deletionFile = oldFile;
|
|
315
315
|
this.fileDiff = fileDiff ?? (oldFile != null && newFile != null ? parseDiffFromFile(oldFile, newFile, this.options.parseDiffOptions) : void 0);
|
|
316
316
|
if (this.pre == null) return;
|
|
317
|
+
this.syncInteractionOptions();
|
|
317
318
|
this.hunksRenderer.hydrate(this.fileDiff);
|
|
318
319
|
this.renderAnnotations();
|
|
319
320
|
this.renderGutterUtility();
|
|
@@ -328,6 +329,10 @@ var FileDiff = class {
|
|
|
328
329
|
renderRange: this.renderRange
|
|
329
330
|
});
|
|
330
331
|
}
|
|
332
|
+
onThemeChange() {
|
|
333
|
+
this.hunksRenderer.clearRenderCache();
|
|
334
|
+
this.rerender();
|
|
335
|
+
}
|
|
331
336
|
handleExpandHunk = (hunkIndex, direction, expansionLineCountOverride) => {
|
|
332
337
|
this.expandHunk(hunkIndex, direction, expansionLineCountOverride);
|
|
333
338
|
};
|
|
@@ -357,6 +362,7 @@ var FileDiff = class {
|
|
|
357
362
|
if (lineAnnotations != null) this.setLineAnnotations(lineAnnotations);
|
|
358
363
|
if (this.fileDiff == null) return false;
|
|
359
364
|
this.hunksRenderer.setOptions(this.getHunksRendererOptions(this.options));
|
|
365
|
+
this.syncInteractionOptions();
|
|
360
366
|
this.hunksRenderer.setLineAnnotations(this.lineAnnotations);
|
|
361
367
|
const { disableErrorHandling = false, disableFileHeader = false } = this.options;
|
|
362
368
|
if (disableFileHeader) {
|