@openclaw/diffs 2026.8.1-beta.3 → 2026.8.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/dist/assets/viewer-runtime.js +129 -156
- package/dist/{browser.runtime-_hkQDewM.js → browser.runtime-DTKAejqd.js} +1 -1
- package/dist/index.js +18 -16
- package/dist/{viewer-assets-DKR8WLAI.js → viewer-assets-D3qrnaxI.js} +11 -23
- package/node_modules/@pierre/diffs/README.md +9 -0
- package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts +94 -7
- package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/CodeView.js +333 -47
- package/node_modules/@pierre/diffs/dist/components/CodeView.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/File.d.ts +22 -4
- package/node_modules/@pierre/diffs/dist/components/File.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/File.js +143 -23
- package/node_modules/@pierre/diffs/dist/components/File.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts +83 -19
- package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileDiff.js +461 -46
- package/node_modules/@pierre/diffs/dist/components/FileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileStream.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileStream.js +2 -1
- package/node_modules/@pierre/diffs/dist/components/FileStream.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js +9 -4
- package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts +7 -3
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js +87 -60
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts +30 -5
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js +277 -56
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/Virtualizer.d.ts +17 -3
- package/node_modules/@pierre/diffs/dist/components/Virtualizer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/Virtualizer.js +44 -5
- package/node_modules/@pierre/diffs/dist/components/Virtualizer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/constants.d.ts +4 -1
- package/node_modules/@pierre/diffs/dist/constants.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/constants.js +4 -1
- package/node_modules/@pierre/diffs/dist/constants.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/edit/index.d.ts +6 -0
- package/node_modules/@pierre/diffs/dist/edit/index.js +3 -0
- package/node_modules/@pierre/diffs/dist/editor/command.d.ts +15 -0
- package/node_modules/@pierre/diffs/dist/editor/command.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/command.js +128 -0
- package/node_modules/@pierre/diffs/dist/editor/command.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts +76 -0
- package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/editStack.js +259 -0
- package/node_modules/@pierre/diffs/dist/editor/editStack.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/editor.d.ts +118 -0
- package/node_modules/@pierre/diffs/dist/editor/editor.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/editor.js +2880 -0
- package/node_modules/@pierre/diffs/dist/editor/editor.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/editor2.js +6 -0
- package/node_modules/@pierre/diffs/dist/editor/editor2.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/languages.d.ts +26 -0
- package/node_modules/@pierre/diffs/dist/editor/languages.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/languages.js +363 -0
- package/node_modules/@pierre/diffs/dist/editor/languages.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts +9 -0
- package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js +212 -0
- package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/marker.d.ts +38 -0
- package/node_modules/@pierre/diffs/dist/editor/marker.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/marker.js +245 -0
- package/node_modules/@pierre/diffs/dist/editor/marker.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts +9 -0
- package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/matchBrackets.js +138 -0
- package/node_modules/@pierre/diffs/dist/editor/matchBrackets.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts +40 -0
- package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/pieceTable.js +706 -0
- package/node_modules/@pierre/diffs/dist/editor/pieceTable.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/platform.d.ts +11 -0
- package/node_modules/@pierre/diffs/dist/editor/platform.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/platform.js +31 -0
- package/node_modules/@pierre/diffs/dist/editor/platform.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/popover.d.ts +65 -0
- package/node_modules/@pierre/diffs/dist/editor/popover.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/popover.js +191 -0
- package/node_modules/@pierre/diffs/dist/editor/popover.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts +41 -0
- package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/searchPanel.js +318 -0
- package/node_modules/@pierre/diffs/dist/editor/searchPanel.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/selection.d.ts +211 -0
- package/node_modules/@pierre/diffs/dist/editor/selection.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/selection.js +1626 -0
- package/node_modules/@pierre/diffs/dist/editor/selection.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts +47 -0
- package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/selectionAction.js +66 -0
- package/node_modules/@pierre/diffs/dist/editor/selectionAction.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/sprite.d.ts +8 -0
- package/node_modules/@pierre/diffs/dist/editor/sprite.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/sprite.js +45 -0
- package/node_modules/@pierre/diffs/dist/editor/sprite.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts +15 -0
- package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/stateStorage.js +65 -0
- package/node_modules/@pierre/diffs/dist/editor/stateStorage.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts +67 -0
- package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/textDocument.js +278 -0
- package/node_modules/@pierre/diffs/dist/editor/textDocument.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts +61 -0
- package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/textMeasure.js +209 -0
- package/node_modules/@pierre/diffs/dist/editor/textMeasure.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts +41 -0
- package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/tokenizer.js +596 -0
- package/node_modules/@pierre/diffs/dist/editor/tokenizer.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/utils.d.ts +22 -0
- package/node_modules/@pierre/diffs/dist/editor/utils.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/editor/utils.js +78 -0
- package/node_modules/@pierre/diffs/dist/editor/utils.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/index.d.ts +12 -9
- package/node_modules/@pierre/diffs/dist/index.js +13 -10
- package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts +20 -2
- package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js +155 -79
- package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/managers/ResizeManager.d.ts +10 -2
- package/node_modules/@pierre/diffs/dist/managers/ResizeManager.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/managers/ResizeManager.js +33 -13
- package/node_modules/@pierre/diffs/dist/managers/ResizeManager.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.d.ts +2 -1
- package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js +7 -3
- package/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts +29 -3
- package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/CodeView.js +111 -30
- package/node_modules/@pierre/diffs/dist/react/CodeView.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts +20 -0
- package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/react/EditContext.js +27 -0
- package/node_modules/@pierre/diffs/dist/react/EditContext.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/react/File.d.ts +4 -1
- package/node_modules/@pierre/diffs/dist/react/File.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/File.js +5 -2
- package/node_modules/@pierre/diffs/dist/react/File.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts +4 -1
- package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/FileDiff.js +5 -2
- package/node_modules/@pierre/diffs/dist/react/FileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts +7 -5
- package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js +5 -2
- package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts +4 -1
- package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/PatchDiff.js +5 -2
- package/node_modules/@pierre/diffs/dist/react/PatchDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts +2 -1
- package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js +2 -1
- package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/index.d.ts +4 -3
- package/node_modules/@pierre/diffs/dist/react/index.js +3 -2
- package/node_modules/@pierre/diffs/dist/react/types.d.ts +11 -0
- package/node_modules/@pierre/diffs/dist/react/types.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts +2 -0
- package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js +16 -8
- package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts +2 -0
- package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js +16 -8
- package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts +6 -2
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js +21 -6
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts +7 -2
- package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js +21 -6
- package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useUnresolvedFileInstance.js +4 -4
- package/node_modules/@pierre/diffs/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts +47 -2
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +361 -37
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts +26 -1
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +240 -55
- 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/ssr/preloadDiffs.d.ts +11 -10
- package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js +17 -7
- package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/ssr/preloadFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/ssr/preloadFile.js +2 -0
- package/node_modules/@pierre/diffs/dist/ssr/preloadFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/style.js +1 -1
- package/node_modules/@pierre/diffs/dist/types.d.ts +336 -5
- package/node_modules/@pierre/diffs/dist/types.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.d.ts +20 -0
- package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.js +29 -0
- package/node_modules/@pierre/diffs/dist/utils/annotationHelpers.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.d.ts +5 -0
- package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.js +11 -0
- package/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/areHunkDataEqual.js +1 -1
- package/node_modules/@pierre/diffs/dist/utils/areHunkDataEqual.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.js +6 -1
- package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.d.ts +5 -0
- package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.js +15 -0
- package/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js +6 -1
- package/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts +7 -0
- package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js +16 -0
- package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.d.ts +3 -1
- package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.js +8 -1
- package/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.d.ts +21 -0
- package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.js +80 -0
- package/node_modules/@pierre/diffs/dist/utils/computeFileOffsets.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.d.ts +5 -0
- package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.js +19 -0
- package/node_modules/@pierre/diffs/dist/utils/createCodeViewHeaderFooterHostElement.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js +5 -1
- package/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js +9 -0
- package/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts +66 -0
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js +437 -0
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.d.ts +14 -0
- package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.js +24 -0
- package/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js +3 -1
- package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js +2 -1
- package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js +2 -0
- package/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.d.ts +7 -0
- package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.js +12 -0
- package/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js +2 -1
- package/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.d.ts +20 -0
- package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.js +34 -0
- package/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts +10 -0
- package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js +141 -0
- package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.d.ts +5 -0
- package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.js +12 -0
- package/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js +20 -15
- package/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js +26 -5
- package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.js +9 -6
- package/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +6 -3
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/platform.d.ts +14 -0
- package/node_modules/@pierre/diffs/dist/utils/platform.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/platform.js +32 -0
- package/node_modules/@pierre/diffs/dist/utils/platform.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts +33 -0
- package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js +148 -0
- package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js +1 -1
- package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js +5 -14
- package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/resolveRegion.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/resolveRegion.js +18 -2
- package/node_modules/@pierre/diffs/dist/utils/resolveRegion.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.d.ts +7 -3
- package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.js +1 -1
- package/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.d.ts +24 -0
- package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.js +236 -0
- package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.d.ts +43 -2
- package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js +107 -5
- package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts +9 -3
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js +86 -18
- package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/index.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/worker/types.d.ts +11 -1
- package/node_modules/@pierre/diffs/dist/worker/types.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/wasm-B9ZqxnKj.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/worker-portable.js +116 -95
- package/node_modules/@pierre/diffs/dist/worker/worker-portable.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/worker.js +102 -80
- package/node_modules/@pierre/diffs/dist/worker/worker.js.map +1 -1
- package/node_modules/@pierre/diffs/node_modules/@pierre/theme/LICENSE +189 -21
- package/node_modules/@pierre/diffs/node_modules/@pierre/theme/NOTICE.md +32 -0
- package/node_modules/@pierre/diffs/node_modules/@pierre/theme/package.json +3 -2
- package/node_modules/@pierre/diffs/node_modules/@pierre/theming/LICENSE.md +189 -0
- package/node_modules/@pierre/diffs/node_modules/@pierre/theming/README.md +9 -0
- package/node_modules/@pierre/diffs/node_modules/@pierre/theming/package.json +5 -5
- package/node_modules/@pierre/diffs/node_modules/@shikijs/core/dist/index.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/core/dist/index.mjs +22 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/core/package.json +4 -4
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/{engine-compile-CMRQUZTL.d.mts → engine-compile-Bdn9ihA2.d.mts} +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-compile.d.mts +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-raw.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/index.d.mts +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/package.json +2 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-oniguruma/package.json +2 -2
- package/node_modules/@pierre/diffs/node_modules/@shikijs/primitive/dist/index.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/primitive/package.json +3 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-frappe.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-latte.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-macchiato.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/catppuccin-mocha.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/kanagawa-dragon.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/kanagawa-lotus.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/kanagawa-wave.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/monokai.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/red.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/rose-pine-dawn.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/rose-pine-moon.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/rose-pine.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/solarized-dark.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/solarized-light.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/package.json +3 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/dist/index.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/dist/index.mjs +2 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/package.json +3 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/types/dist/index.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/types/package.json +2 -2
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-full.d.mts +4 -7
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-full.mjs +3 -19
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-web.d.mts +5 -6
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-web.mjs +7 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/core-CaxrMD1A.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/core.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/index.d.mts +3 -9
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/index.mjs +3 -24
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/actionscript.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/actionscript.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk1.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk1.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk2.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ahk2.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/as3.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/as3.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chapel.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chapel.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chpl.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/chpl.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/justfile.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/justfile.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/nsis.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/nsis.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/org.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/org.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/pwsh.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/pwsh.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/rbs.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/rbs.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ruby-signature.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/ruby-signature.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/smithy.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs/smithy.mjs +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-B38xGbib.d.mts +1 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-bundle-full-B4n9xYHw.d.mts +13 -0
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/{langs-bundle-full-4noeO3oH.mjs → langs-bundle-full-xQVO1Cek.mjs} +48 -5
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs.d.mts +2 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/{themes-NeZbxnKu.d.mts → themes-BKdFAJ1v.d.mts} +0 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/themes.d.mts +1 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/types.d.mts +3 -3
- package/node_modules/@pierre/diffs/node_modules/shiki/package.json +10 -10
- package/node_modules/@pierre/diffs/package.json +13 -4
- package/node_modules/@shikijs/langs/dist/actionscript-3.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/actionscript.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/actionscript.mjs +2 -0
- package/node_modules/@shikijs/langs/dist/ahk.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/ahk.mjs +5 -0
- package/node_modules/@shikijs/langs/dist/ahk1.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/ahk1.mjs +2 -0
- package/node_modules/@shikijs/langs/dist/ahk2.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/ahk2.mjs +5 -0
- package/node_modules/@shikijs/langs/dist/apex.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/as3.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/as3.mjs +2 -0
- package/node_modules/@shikijs/langs/dist/asciidoc.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/bat.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/bird2.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/bsl.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/c3.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/chapel.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/chapel.mjs +8 -0
- package/node_modules/@shikijs/langs/dist/chpl.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/chpl.mjs +2 -0
- package/node_modules/@shikijs/langs/dist/clarity.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/cmd.mjs +2 -2
- package/node_modules/@shikijs/langs/dist/coq.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/cpp-macro.mjs +1 -3
- package/node_modules/@shikijs/langs/dist/cpp.mjs +1 -3
- package/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/gdscript.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/hack.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/haxe.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/hxml.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/index.mjs +14 -0
- package/node_modules/@shikijs/langs/dist/just.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/justfile.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/justfile.mjs +2 -0
- package/node_modules/@shikijs/langs/dist/llvm.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/luau.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/mdc.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/mermaid.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/mojo.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/moonbit.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/move.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/nsis.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/nsis.mjs +5 -0
- package/node_modules/@shikijs/langs/dist/nushell.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/org.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/org.mjs +100 -0
- package/node_modules/@shikijs/langs/dist/powershell.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/prisma.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/pwsh.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/pwsh.mjs +2 -0
- package/node_modules/@shikijs/langs/dist/r.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/rbs.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/rbs.mjs +5 -0
- package/node_modules/@shikijs/langs/dist/ruby-signature.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/ruby-signature.mjs +2 -0
- package/node_modules/@shikijs/langs/dist/scala.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/smalltalk.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/smithy.d.mts +3 -0
- package/node_modules/@shikijs/langs/dist/smithy.mjs +5 -0
- package/node_modules/@shikijs/langs/dist/solidity.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/surrealql.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/swift.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/system-verilog.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/twig.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/typst.mjs +116 -1
- package/node_modules/@shikijs/langs/dist/v.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/vb.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/verilog.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/vue.mjs +1 -1
- package/node_modules/@shikijs/langs/node_modules/@shikijs/types/dist/index.d.mts +0 -1
- package/node_modules/@shikijs/langs/node_modules/@shikijs/types/package.json +2 -2
- package/node_modules/@shikijs/langs/package.json +18 -4
- package/node_modules/typebox/build/format/date.d.mts +1 -1
- package/node_modules/typebox/build/format/date.mjs +1 -1
- package/node_modules/typebox/build/format/date_time.d.mts +2 -2
- package/node_modules/typebox/build/format/date_time.mjs +3 -3
- package/node_modules/typebox/build/format/email.d.mts +1 -1
- package/node_modules/typebox/build/format/email.mjs +2 -2
- package/node_modules/typebox/build/format/hostname.mjs +2 -10
- package/node_modules/typebox/build/format/idn_email.d.mts +1 -1
- package/node_modules/typebox/build/format/idn_email.mjs +3 -3
- package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idn_hostname.mjs +3 -11
- package/node_modules/typebox/build/format/idna/format/bidi.d.mts +3 -0
- package/node_modules/typebox/build/format/idna/format/bidi.mjs +98 -0
- package/node_modules/typebox/build/format/idna/format/puny.d.mts +3 -0
- package/node_modules/typebox/build/format/idna/format/puny.mjs +144 -0
- package/node_modules/typebox/build/format/idna/hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/hostname.mjs +16 -0
- package/node_modules/typebox/build/format/idna/idn-hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +41 -0
- package/node_modules/typebox/build/format/idna/index.d.mts +2 -0
- package/node_modules/typebox/build/format/idna/index.mjs +2 -0
- package/node_modules/typebox/build/format/idna/label/ascii.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/ascii.mjs +9 -0
- package/node_modules/typebox/build/format/idna/label/puny.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/puny.mjs +28 -0
- package/node_modules/typebox/build/format/idna/label/unicode.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/unicode.mjs +106 -0
- package/node_modules/typebox/build/format/idna/pattern/pattern.d.mts +30 -0
- package/node_modules/typebox/build/format/idna/pattern/pattern.mjs +70 -0
- package/node_modules/typebox/build/format/ipv4.d.mts +0 -1
- package/node_modules/typebox/build/format/ipv4.mjs +2 -32
- package/node_modules/typebox/build/format/ipv6.mjs +2 -61
- package/node_modules/typebox/build/format/iri.d.mts +2 -2
- package/node_modules/typebox/build/format/iri.mjs +26 -8
- package/node_modules/typebox/build/format/iri_reference.d.mts +2 -2
- package/node_modules/typebox/build/format/iri_reference.mjs +9 -55
- package/node_modules/typebox/build/format/regex.d.mts +1 -2
- package/node_modules/typebox/build/format/regex.mjs +2 -6
- package/node_modules/typebox/build/format/time.d.mts +2 -2
- package/node_modules/typebox/build/format/time.mjs +19 -14
- package/node_modules/typebox/build/format/uri.d.mts +1 -1
- package/node_modules/typebox/build/format/uri.mjs +3 -130
- package/node_modules/typebox/build/format/uri_reference.d.mts +1 -1
- package/node_modules/typebox/build/format/uri_reference.mjs +2 -3
- package/node_modules/typebox/build/format/uri_template.d.mts +2 -3
- package/node_modules/typebox/build/format/uri_template.mjs +4 -5
- package/node_modules/typebox/build/format/url.d.mts +3 -3
- package/node_modules/typebox/build/format/url.mjs +4 -5
- package/node_modules/typebox/build/guard/emit.d.mts +3 -1
- package/node_modules/typebox/build/guard/emit.mjs +12 -5
- package/node_modules/typebox/build/guard/guard.d.mts +8 -2
- package/node_modules/typebox/build/guard/guard.mjs +25 -4
- package/node_modules/typebox/build/guard/string.d.mts +2 -2
- package/node_modules/typebox/build/guard/string.mjs +7 -7
- package/node_modules/typebox/build/schema/engine/_context.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -2
- package/node_modules/typebox/build/schema/engine/_regexp.d.mts +2 -0
- package/node_modules/typebox/build/schema/engine/_regexp.mjs +4 -0
- package/node_modules/typebox/build/schema/engine/_stack.mjs +12 -13
- package/node_modules/typebox/build/schema/engine/additionalItems.mjs +17 -7
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +4 -3
- package/node_modules/typebox/build/schema/engine/contains.mjs +18 -6
- package/node_modules/typebox/build/schema/engine/enum.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/items.mjs +26 -6
- package/node_modules/typebox/build/schema/engine/maxContains.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/minContains.mjs +14 -4
- package/node_modules/typebox/build/schema/engine/not.mjs +4 -2
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +7 -6
- package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -2
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +4 -3
- package/node_modules/typebox/build/schema/engine/ref.mjs +1 -7
- package/node_modules/typebox/build/schema/engine/schema.mjs +13 -4
- package/node_modules/typebox/build/schema/engine/type.mjs +1 -1
- package/node_modules/typebox/build/schema/resolve/resolve.d.mts +4 -1
- package/node_modules/typebox/build/schema/resolve/resolve.mjs +202 -1
- package/node_modules/typebox/build/schema/static/propertyNames.d.mts +5 -0
- package/node_modules/typebox/build/schema/static/propertyNames.mjs +3 -0
- package/node_modules/typebox/build/schema/static/schema.d.mts +3 -0
- package/node_modules/typebox/build/schema/types/index.d.mts +0 -2
- package/node_modules/typebox/build/schema/types/index.mjs +0 -2
- package/node_modules/typebox/build/system/memory/clone.mjs +14 -11
- package/node_modules/typebox/build/system/memory/discard.mjs +6 -5
- package/node_modules/typebox/build/system/settings/settings.d.mts +9 -0
- package/node_modules/typebox/build/system/settings/settings.mjs +2 -0
- package/node_modules/typebox/build/type/engine/call/distribute_arguments.d.mts +6 -1
- package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +16 -3
- package/node_modules/typebox/build/type/engine/call/instantiate.mjs +34 -4
- package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +5 -5
- package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +20 -26
- package/node_modules/typebox/build/type/engine/evaluate/compare.d.mts +6 -10
- package/node_modules/typebox/build/type/engine/evaluate/compare.mjs +9 -13
- package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +7 -4
- package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +12 -19
- package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +4 -20
- package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +8 -20
- package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +4 -4
- package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +11 -8
- package/node_modules/typebox/build/type/engine/evaluate/flatten.d.mts +1 -1
- package/node_modules/typebox/build/type/engine/evaluate/flatten.mjs +3 -4
- package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +17 -2
- package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +26 -6
- package/node_modules/typebox/build/type/engine/exclude/operation.mjs +3 -4
- package/node_modules/typebox/build/type/engine/extract/operation.d.mts +1 -1
- package/node_modules/typebox/build/type/engine/extract/operation.mjs +3 -4
- package/node_modules/typebox/build/type/engine/priority/priority.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/priority/priority.mjs +3 -4
- package/node_modules/typebox/build/type/script/mapping.d.mts +32 -29
- package/node_modules/typebox/build/type/script/mapping.mjs +18 -25
- package/node_modules/typebox/build/type/script/parser.d.mts +19 -25
- package/node_modules/typebox/build/type/script/parser.mjs +27 -23
- package/node_modules/typebox/build/value/errors/errors.d.mts +2 -2
- package/node_modules/typebox/build/value/errors/errors.mjs +1 -1
- package/node_modules/typebox/package.json +27 -27
- package/node_modules/typebox/readme.md +79 -82
- package/package.json +9 -8
- package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.d.ts +0 -50
- package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.d.ts.map +0 -1
- package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.js +0 -49
- package/node_modules/@pierre/diffs/dist/utils/iterateOverFile.js.map +0 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/core-BVVgDSdq.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-BVVgDSdq.d.mts +0 -1
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/langs-bundle-full-WSWgUeqW.d.mts +0 -14
- package/node_modules/typebox/build/format/_idna.d.mts +0 -2
- package/node_modules/typebox/build/format/_idna.mjs +0 -246
- package/node_modules/typebox/build/format/_puny.d.mts +0 -1
- package/node_modules/typebox/build/format/_puny.mjs +0 -77
- package/node_modules/typebox/build/schema/resolve/ref.d.mts +0 -3
- package/node_modules/typebox/build/schema/resolve/ref.mjs +0 -146
- package/node_modules/typebox/build/schema/types/contentEncoding.d.mts +0 -9
- package/node_modules/typebox/build/schema/types/contentEncoding.mjs +0 -13
- package/node_modules/typebox/build/schema/types/contentMediaType.d.mts +0 -9
- package/node_modules/typebox/build/schema/types/contentMediaType.mjs +0 -13
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { DEFAULT_CODE_VIEW_FILE_METRICS, DEFAULT_CODE_VIEW_LAYOUT, DEFAULT_SMOOTH_SCROLL_SETTINGS, DEFAULT_THEMES, DIFFS_DEVELOPMENT_BUILD, DIFFS_TAG_NAME } from "../constants.js";
|
|
2
2
|
import { dequeueRender, queueRender } from "../managers/UniversalRenderingManager.js";
|
|
3
|
+
import { areManagedSnapshotsEqual } from "../utils/areManagedSnapshotsEqual.js";
|
|
3
4
|
import { areObjectsEqual } from "../utils/areObjectsEqual.js";
|
|
4
5
|
import { areThemesEqual } from "../utils/areThemesEqual.js";
|
|
5
6
|
import { areOptionsEqual } from "../utils/areOptionsEqual.js";
|
|
6
7
|
import { areSelectionsEqual } from "../utils/areSelectionsEqual.js";
|
|
8
|
+
import { createCodeViewHeaderFooterHostElement } from "../utils/createCodeViewHeaderFooterHostElement.js";
|
|
7
9
|
import { createWindowFromScrollPosition } from "../utils/createWindowFromScrollPosition.js";
|
|
10
|
+
import { finishEditSessionForDiff } from "../utils/editSessionHunks.js";
|
|
8
11
|
import { isStyleNode } from "../utils/isStyleNode.js";
|
|
9
12
|
import { prefersReducedMotion } from "../utils/prefersReducedMotion.js";
|
|
10
13
|
import { roundToDevicePixel } from "../utils/roundToDevicePixel.js";
|
|
@@ -28,6 +31,7 @@ const CODE_VIEW_DIFF_OPTION_KEYS = [
|
|
|
28
31
|
"diffIndicators",
|
|
29
32
|
"disableBackground",
|
|
30
33
|
"expandUnchanged",
|
|
34
|
+
"loadDiffFiles",
|
|
31
35
|
"collapsedContextThreshold",
|
|
32
36
|
"lineDiffType",
|
|
33
37
|
"maxLineDiffLength",
|
|
@@ -64,6 +68,7 @@ const CODE_VIEW_FILE_OPTION_KEYS = [
|
|
|
64
68
|
const CODE_VIEW_SHARED_CALLBACK_KEYS = [
|
|
65
69
|
"renderCustomHeader",
|
|
66
70
|
"renderHeaderPrefix",
|
|
71
|
+
"renderHeaderFilenameSuffix",
|
|
67
72
|
"renderHeaderMetadata",
|
|
68
73
|
"renderAnnotation",
|
|
69
74
|
"renderGutterUtility",
|
|
@@ -104,12 +109,16 @@ function defineItemOption(target, key, get) {
|
|
|
104
109
|
});
|
|
105
110
|
}
|
|
106
111
|
const DEFAULT_SCROLL_INTERACTION_RESTORE_DELAY_MS = 120;
|
|
112
|
+
const SUB_PIXEL_TOLERANCE = 1;
|
|
107
113
|
const SCROLLING_CODE_OVERFLOW_FIX_VARIABLE = "--diffs-overflow-override";
|
|
108
114
|
const SCROLL_REBASE_CONTAINER_HEIGHT = 12e6;
|
|
109
115
|
const SCROLL_REBASE_TRIGGER_TOP = 1e6;
|
|
110
116
|
const SCROLL_REBASE_TARGET_TOP = 2e6;
|
|
111
117
|
const SCROLL_REBASE_TARGET_BOTTOM = SCROLL_REBASE_CONTAINER_HEIGHT - SCROLL_REBASE_TARGET_TOP;
|
|
112
118
|
const SCROLL_REBASE_THRESHOLD = SCROLL_REBASE_CONTAINER_HEIGHT - SCROLL_REBASE_TRIGGER_TOP;
|
|
119
|
+
function assertEditorFactory(createEditor) {
|
|
120
|
+
if (createEditor == null) throw new Error("CodeView: createEditor is required for items with edit: true");
|
|
121
|
+
}
|
|
113
122
|
const MOBILE_SAFARI = (() => {
|
|
114
123
|
const { navigator } = globalThis;
|
|
115
124
|
const userAgent = navigator.userAgent;
|
|
@@ -129,6 +138,8 @@ var CodeView = class CodeView {
|
|
|
129
138
|
items = [];
|
|
130
139
|
idToItem = /* @__PURE__ */ new Map();
|
|
131
140
|
selectedLines = null;
|
|
141
|
+
itemEditors = /* @__PURE__ */ new Map();
|
|
142
|
+
attachedEditors = /* @__PURE__ */ new Set();
|
|
132
143
|
instanceToItem = /* @__PURE__ */ new Map();
|
|
133
144
|
layoutDirtyIndex;
|
|
134
145
|
pendingLayoutReset;
|
|
@@ -170,12 +181,23 @@ var CodeView = class CodeView {
|
|
|
170
181
|
container = document.createElement("div");
|
|
171
182
|
stickyContainer = document.createElement("div");
|
|
172
183
|
stickyOffset = document.createElement("div");
|
|
184
|
+
header = {
|
|
185
|
+
element: void 0,
|
|
186
|
+
render: void 0,
|
|
187
|
+
height: 0
|
|
188
|
+
};
|
|
189
|
+
footer = {
|
|
190
|
+
element: void 0,
|
|
191
|
+
render: void 0,
|
|
192
|
+
height: 0
|
|
193
|
+
};
|
|
173
194
|
elementPool = [];
|
|
174
195
|
elementPoolVersion = 0;
|
|
175
196
|
elementPoolTracker = /* @__PURE__ */ new WeakMap();
|
|
176
197
|
pendingElementPool = [];
|
|
177
198
|
options;
|
|
178
199
|
workerManager;
|
|
200
|
+
isReadySubscription;
|
|
179
201
|
isContainerManaged;
|
|
180
202
|
constructor(options = { theme: DEFAULT_THEMES }, workerManager, isContainerManaged = false) {
|
|
181
203
|
this.options = options;
|
|
@@ -195,6 +217,9 @@ var CodeView = class CodeView {
|
|
|
195
217
|
getLayout() {
|
|
196
218
|
return this.options.layout ?? DEFAULT_CODE_VIEW_LAYOUT;
|
|
197
219
|
}
|
|
220
|
+
getItemTopOffset() {
|
|
221
|
+
return this.getLayout().paddingTop + this.header.height;
|
|
222
|
+
}
|
|
198
223
|
computeMetricsCache(itemMetrics) {
|
|
199
224
|
this.itemMetricsCache = {
|
|
200
225
|
hunkLineCount: itemMetrics?.hunkLineCount ?? DEFAULT_CODE_VIEW_FILE_METRICS.hunkLineCount,
|
|
@@ -245,7 +270,7 @@ var CodeView = class CodeView {
|
|
|
245
270
|
const { firstIndex, lastIndex, stickyHeight, stickyTop, stickyBottom } = this.renderState;
|
|
246
271
|
if (firstIndex === -1 || lastIndex === -1) return;
|
|
247
272
|
const actualHeight = this.stickyContainer.getBoundingClientRect().height;
|
|
248
|
-
if (Math.abs(actualHeight - stickyHeight) <
|
|
273
|
+
if (Math.abs(actualHeight - stickyHeight) < SUB_PIXEL_TOLERANCE) return;
|
|
249
274
|
console.error("CodeView: sticky container height does not match computed layout", {
|
|
250
275
|
computedStickyHeight: stickyHeight,
|
|
251
276
|
actualStickyHeight: actualHeight,
|
|
@@ -297,6 +322,43 @@ var CodeView = class CodeView {
|
|
|
297
322
|
this.container?.style.setProperty("margin-top", `${paddingTop}px`);
|
|
298
323
|
this.container?.style.setProperty("margin-bottom", `${paddingBottom}px`);
|
|
299
324
|
}
|
|
325
|
+
reconcileHeaderFooterHosts() {
|
|
326
|
+
const headerChanged = this.reconcileHost("header");
|
|
327
|
+
const footerChanged = this.reconcileHost("footer");
|
|
328
|
+
return headerChanged || footerChanged;
|
|
329
|
+
}
|
|
330
|
+
reconcileHost(type) {
|
|
331
|
+
const { root, container } = this;
|
|
332
|
+
if (root == null || container == null) return false;
|
|
333
|
+
const host = type === "header" ? this.header : this.footer;
|
|
334
|
+
const render = type === "header" ? this.options.renderCodeViewHeader : this.options.renderCodeViewFooter;
|
|
335
|
+
if (render == null) {
|
|
336
|
+
if (host.element == null) return false;
|
|
337
|
+
this.resizeObserver?.unobserve(host.element);
|
|
338
|
+
host.element.remove();
|
|
339
|
+
host.element = void 0;
|
|
340
|
+
host.render = void 0;
|
|
341
|
+
this.setHostHeight(host, 0);
|
|
342
|
+
return false;
|
|
343
|
+
}
|
|
344
|
+
if (host.element != null && render === host.render) return false;
|
|
345
|
+
const element = host.element ?? createCodeViewHeaderFooterHostElement(type, container, this.resizeObserver);
|
|
346
|
+
host.element = element;
|
|
347
|
+
const content = render();
|
|
348
|
+
if (content != null) element.replaceChildren(content);
|
|
349
|
+
else if (!this.isContainerManaged && element.children.length > 0) element.textContent = "";
|
|
350
|
+
host.render = render;
|
|
351
|
+
return true;
|
|
352
|
+
}
|
|
353
|
+
setHostHeight(host, height) {
|
|
354
|
+
if (host.height === height) return;
|
|
355
|
+
host.height = height;
|
|
356
|
+
this.scrollDirty = true;
|
|
357
|
+
}
|
|
358
|
+
measureMountedHosts() {
|
|
359
|
+
if (this.header.element != null) this.setHostHeight(this.header, this.header.element.getBoundingClientRect().height);
|
|
360
|
+
if (this.footer.element != null) this.setHostHeight(this.footer, this.footer.element.getBoundingClientRect().height);
|
|
361
|
+
}
|
|
300
362
|
setup(root) {
|
|
301
363
|
if (this.root != null) throw new Error("CodeView.setup: already setup");
|
|
302
364
|
this.workerManager?.subscribeToThemeChanges(this);
|
|
@@ -336,8 +398,13 @@ var CodeView = class CodeView {
|
|
|
336
398
|
};
|
|
337
399
|
}
|
|
338
400
|
reset() {
|
|
401
|
+
dequeueRender(this.computeRenderRangeAndEmit);
|
|
402
|
+
this.clearReadySubscription();
|
|
339
403
|
this.restoreScrollInteractions();
|
|
340
404
|
this.cleanAllRenderedItems();
|
|
405
|
+
for (const record of this.itemEditors.values()) record.editor.cleanUp();
|
|
406
|
+
this.itemEditors.clear();
|
|
407
|
+
this.attachedEditors.clear();
|
|
341
408
|
this.selectedLines = null;
|
|
342
409
|
this.items.length = 0;
|
|
343
410
|
this.idToItem.clear();
|
|
@@ -380,6 +447,14 @@ var CodeView = class CodeView {
|
|
|
380
447
|
this.stickyOffset.remove();
|
|
381
448
|
this.stickyContainer.remove();
|
|
382
449
|
this.stickyContainer.textContent = "";
|
|
450
|
+
this.header.element?.remove();
|
|
451
|
+
this.header.element = void 0;
|
|
452
|
+
this.header.render = void 0;
|
|
453
|
+
this.header.height = 0;
|
|
454
|
+
this.footer.element?.remove();
|
|
455
|
+
this.footer.element = void 0;
|
|
456
|
+
this.footer.render = void 0;
|
|
457
|
+
this.footer.height = 0;
|
|
383
458
|
this.root = void 0;
|
|
384
459
|
this.container = void 0;
|
|
385
460
|
}
|
|
@@ -414,6 +489,7 @@ var CodeView = class CodeView {
|
|
|
414
489
|
const { element } = item;
|
|
415
490
|
if (element != null && this.renderedItemOwnsFocus(element)) this.shouldFixContainerFocus = true;
|
|
416
491
|
item.instance.cleanUp(true);
|
|
492
|
+
this.attachedEditors.delete(item.item.id);
|
|
417
493
|
item.element = void 0;
|
|
418
494
|
if (element == null) return;
|
|
419
495
|
element.remove();
|
|
@@ -506,6 +582,14 @@ var CodeView = class CodeView {
|
|
|
506
582
|
getItem(itemId) {
|
|
507
583
|
return this.idToItem.get(itemId)?.item;
|
|
508
584
|
}
|
|
585
|
+
/**
|
|
586
|
+
* Get the live editor for an item currently in edit mode. Use this to drive
|
|
587
|
+
* editor APIs CodeView does not wrap (applyEdits, undo, setMarkers, …).
|
|
588
|
+
* Returns undefined once the item leaves edit mode.
|
|
589
|
+
*/
|
|
590
|
+
getEditor(itemId) {
|
|
591
|
+
return this.itemEditors.get(itemId)?.editor;
|
|
592
|
+
}
|
|
509
593
|
updateItem(input) {
|
|
510
594
|
const item = this.idToItem.get(input.id);
|
|
511
595
|
if (item == null) {
|
|
@@ -516,6 +600,7 @@ var CodeView = class CodeView {
|
|
|
516
600
|
this.markItemLayoutDirty(item);
|
|
517
601
|
this.scrollDirty = true;
|
|
518
602
|
this.render();
|
|
603
|
+
this.syncItemEditors();
|
|
519
604
|
this.syncSelection();
|
|
520
605
|
return true;
|
|
521
606
|
}
|
|
@@ -541,6 +626,13 @@ var CodeView = class CodeView {
|
|
|
541
626
|
};
|
|
542
627
|
this.options.onSelectedLinesChange?.(this.selectedLines);
|
|
543
628
|
}
|
|
629
|
+
const editorRecord = this.itemEditors.get(oldId);
|
|
630
|
+
if (editorRecord != null) {
|
|
631
|
+
editorRecord.state.id = newId;
|
|
632
|
+
this.itemEditors.delete(oldId);
|
|
633
|
+
this.itemEditors.set(newId, editorRecord);
|
|
634
|
+
if (this.attachedEditors.delete(oldId)) this.attachedEditors.add(newId);
|
|
635
|
+
}
|
|
544
636
|
this.renamePendingScrollTarget(oldId, newId);
|
|
545
637
|
this.renamePendingLayoutAnchor(oldId, newId);
|
|
546
638
|
this.render();
|
|
@@ -548,16 +640,28 @@ var CodeView = class CodeView {
|
|
|
548
640
|
}
|
|
549
641
|
addItem(input) {
|
|
550
642
|
this.addItems([input]);
|
|
551
|
-
this.syncSelection();
|
|
552
643
|
}
|
|
553
644
|
addItems(inputs) {
|
|
554
645
|
this.appendItemsInternal(inputs);
|
|
646
|
+
this.syncItemEditors();
|
|
555
647
|
this.syncSelection();
|
|
556
648
|
}
|
|
649
|
+
removeItem(itemId) {
|
|
650
|
+
const item = this.idToItem.get(itemId);
|
|
651
|
+
if (item == null) {
|
|
652
|
+
console.error(`CodeView.removeItem: unknown item id "${itemId}"`);
|
|
653
|
+
return false;
|
|
654
|
+
}
|
|
655
|
+
const nextItems = [];
|
|
656
|
+
for (const current of this.items) if (current !== item) nextItems.push(current.item);
|
|
657
|
+
this.setItems(nextItems);
|
|
658
|
+
return true;
|
|
659
|
+
}
|
|
557
660
|
setItems(items) {
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
else if (!this.tryAppendItems(items)) this.reconcileItems(items);
|
|
661
|
+
let removedItemsById;
|
|
662
|
+
if (this.items.length === 0) this.appendItemsInternal(items);
|
|
663
|
+
else if (!this.tryAppendItems(items)) removedItemsById = this.reconcileItems(items);
|
|
664
|
+
this.syncItemEditors(removedItemsById);
|
|
561
665
|
this.syncSelection();
|
|
562
666
|
}
|
|
563
667
|
/**
|
|
@@ -620,11 +724,13 @@ var CodeView = class CodeView {
|
|
|
620
724
|
this.scrollDirty = true;
|
|
621
725
|
}
|
|
622
726
|
if (!areOptionsEqual(prevOptions, options)) this.renderOptionsRevision++;
|
|
623
|
-
|
|
727
|
+
this.syncItemEditors();
|
|
728
|
+
const headerFooterChanged = prevOptions.renderCodeViewHeader !== options.renderCodeViewHeader || prevOptions.renderCodeViewFooter !== options.renderCodeViewFooter;
|
|
729
|
+
if (!this.isContainerManaged && (this.items.length > 0 || headerFooterChanged)) this.render();
|
|
624
730
|
}
|
|
625
|
-
capturePendingLayoutAnchor() {
|
|
731
|
+
capturePendingLayoutAnchor(nextItems = this.idToItem) {
|
|
626
732
|
if (this.root == null || this.items.length === 0 || this.pendingScrollTarget != null) return;
|
|
627
|
-
this.pendingLayoutAnchor = this.getScrollAnchor(this.getScrollTop());
|
|
733
|
+
this.pendingLayoutAnchor = this.getScrollAnchor(this.getScrollTop(), nextItems);
|
|
628
734
|
}
|
|
629
735
|
render(immediate = false) {
|
|
630
736
|
if (CodeView.__STOP) return;
|
|
@@ -633,6 +739,25 @@ var CodeView = class CodeView {
|
|
|
633
739
|
this.computeRenderRangeAndEmit();
|
|
634
740
|
} else queueRender(this.computeRenderRangeAndEmit);
|
|
635
741
|
}
|
|
742
|
+
isReady() {
|
|
743
|
+
const { workerManager } = this;
|
|
744
|
+
if (workerManager == null || workerManager.isInitialized() || workerManager.getStats().workersFailed) {
|
|
745
|
+
this.clearReadySubscription();
|
|
746
|
+
return true;
|
|
747
|
+
}
|
|
748
|
+
this.isReadySubscription ??= workerManager.subscribeToStatChanges((stats) => {
|
|
749
|
+
if (stats.managerState !== "initialized" && !stats.workersFailed) return;
|
|
750
|
+
this.clearReadySubscription();
|
|
751
|
+
this.render(true);
|
|
752
|
+
});
|
|
753
|
+
if (workerManager.getStats().managerState === "waiting") workerManager.initialize().catch(() => {});
|
|
754
|
+
return false;
|
|
755
|
+
}
|
|
756
|
+
clearReadySubscription() {
|
|
757
|
+
if (this.isReadySubscription == null) return;
|
|
758
|
+
this.isReadySubscription();
|
|
759
|
+
this.isReadySubscription = void 0;
|
|
760
|
+
}
|
|
636
761
|
instanceChanged(instance, layoutDirty) {
|
|
637
762
|
const item = this.instanceToItem.get(instance);
|
|
638
763
|
if (item == null) throw new Error("CodeView.instanceChanged: An instance has changed that is not registered");
|
|
@@ -645,6 +770,12 @@ var CodeView = class CodeView {
|
|
|
645
770
|
getContainerElement() {
|
|
646
771
|
return this.root;
|
|
647
772
|
}
|
|
773
|
+
getHeaderElement() {
|
|
774
|
+
return this.header.element;
|
|
775
|
+
}
|
|
776
|
+
getFooterElement() {
|
|
777
|
+
return this.footer.element;
|
|
778
|
+
}
|
|
648
779
|
getRenderedItems() {
|
|
649
780
|
const { firstIndex, lastIndex } = this.renderState;
|
|
650
781
|
if (firstIndex === -1 || lastIndex === -1 || lastIndex < firstIndex) return [];
|
|
@@ -678,7 +809,18 @@ var CodeView = class CodeView {
|
|
|
678
809
|
return true;
|
|
679
810
|
}
|
|
680
811
|
getSlotSnapshot(coordinator) {
|
|
681
|
-
return
|
|
812
|
+
return this.buildSlotSnapshot(coordinator);
|
|
813
|
+
}
|
|
814
|
+
buildSlotSnapshot(coordinator) {
|
|
815
|
+
const items = getSlotItems(this.getRenderedItems(), coordinator);
|
|
816
|
+
const { element: header } = this.header;
|
|
817
|
+
const { element: footer } = this.footer;
|
|
818
|
+
if (items == null && header == null && footer == null) return;
|
|
819
|
+
return {
|
|
820
|
+
items,
|
|
821
|
+
header,
|
|
822
|
+
footer
|
|
823
|
+
};
|
|
682
824
|
}
|
|
683
825
|
subscribeToScroll(listener) {
|
|
684
826
|
this.scrollListeners.add(listener);
|
|
@@ -694,7 +836,7 @@ var CodeView = class CodeView {
|
|
|
694
836
|
getTopForItem(id) {
|
|
695
837
|
const item = this.idToItem.get(id);
|
|
696
838
|
if (item == null) return;
|
|
697
|
-
return item.top + this.
|
|
839
|
+
return item.top + this.getItemTopOffset();
|
|
698
840
|
}
|
|
699
841
|
createItem(input, index, top) {
|
|
700
842
|
const { itemMetricsCache: itemMetrics } = this;
|
|
@@ -737,10 +879,94 @@ var CodeView = class CodeView {
|
|
|
737
879
|
const item = this.idToItem.get(this.selectedLines.id);
|
|
738
880
|
if (item == null) {
|
|
739
881
|
this.selectedLines = null;
|
|
882
|
+
this.options.onSelectedLinesChange?.(null);
|
|
740
883
|
return;
|
|
741
884
|
}
|
|
742
885
|
item.instance.setSelectedLines(this.selectedLines.range, { notify: false });
|
|
743
886
|
}
|
|
887
|
+
isItemInEditMode(item) {
|
|
888
|
+
return item.item.edit === true && item.item.collapsed !== true;
|
|
889
|
+
}
|
|
890
|
+
/**
|
|
891
|
+
* Attach (or lazily create) the editor for a mounted edit-mode item. Called
|
|
892
|
+
* from the render loop so every mounted item passes through it: fresh
|
|
893
|
+
* mounts, remounts after virtualization released the item, and items whose
|
|
894
|
+
* edit flag was just turned on. Editors persist across unmounts, so a
|
|
895
|
+
* remounted item re-attaches its existing editor and resumes the retained
|
|
896
|
+
* document; the renderers keep the host's file/diff data in sync with the
|
|
897
|
+
* session so the remount paints the edited text.
|
|
898
|
+
*/
|
|
899
|
+
attachItemEditor(item) {
|
|
900
|
+
const { id } = item.item;
|
|
901
|
+
const { createEditor } = this.options;
|
|
902
|
+
if (item.element == null || this.attachedEditors.has(id) || !this.isItemInEditMode(item)) return;
|
|
903
|
+
let record = this.itemEditors.get(id);
|
|
904
|
+
let createdEditor = false;
|
|
905
|
+
try {
|
|
906
|
+
if (record == null) {
|
|
907
|
+
assertEditorFactory(createEditor);
|
|
908
|
+
const state = { id };
|
|
909
|
+
const editor = createEditor({ onChange: (file, lineAnnotations) => {
|
|
910
|
+
const latest = this.idToItem.get(state.id);
|
|
911
|
+
if (latest == null) return;
|
|
912
|
+
state.lastChange = {
|
|
913
|
+
item: latest.item,
|
|
914
|
+
file,
|
|
915
|
+
lineAnnotations
|
|
916
|
+
};
|
|
917
|
+
this.options.onItemEditChange?.(latest.item, file, lineAnnotations);
|
|
918
|
+
} });
|
|
919
|
+
if (editor == null) return;
|
|
920
|
+
record = {
|
|
921
|
+
editor,
|
|
922
|
+
state
|
|
923
|
+
};
|
|
924
|
+
this.itemEditors.set(id, record);
|
|
925
|
+
createdEditor = true;
|
|
926
|
+
}
|
|
927
|
+
record.editor.edit(item.instance);
|
|
928
|
+
this.attachedEditors.add(id);
|
|
929
|
+
} catch (error) {
|
|
930
|
+
if (createdEditor && record != null) {
|
|
931
|
+
this.itemEditors.delete(id);
|
|
932
|
+
record.editor.cleanUp();
|
|
933
|
+
}
|
|
934
|
+
this.releaseRenderedItem(item);
|
|
935
|
+
throw error;
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
/**
|
|
939
|
+
* Drop editors for items that can no longer be edited: removed, edit turned
|
|
940
|
+
* off, or collapsed. Attachment happens in the render loop via
|
|
941
|
+
* attachItemEditor, so this only reconciles editors CodeView is already
|
|
942
|
+
* holding.
|
|
943
|
+
*/
|
|
944
|
+
syncItemEditors(removedItems) {
|
|
945
|
+
if (this.itemEditors.size === 0) return;
|
|
946
|
+
const completions = [];
|
|
947
|
+
for (const [id, record] of this.itemEditors) {
|
|
948
|
+
const item = this.idToItem.get(id);
|
|
949
|
+
const removedItem = removedItems?.get(id);
|
|
950
|
+
if (removedItem == null && item != null && this.isItemInEditMode(item)) continue;
|
|
951
|
+
record.editor.cleanUp();
|
|
952
|
+
this.itemEditors.delete(id);
|
|
953
|
+
this.attachedEditors.delete(id);
|
|
954
|
+
const { lastChange } = record.state;
|
|
955
|
+
const itemSnapshot = removedItem == null ? item?.item ?? lastChange?.item : lastChange?.item ?? removedItem.item;
|
|
956
|
+
if (itemSnapshot?.type === "diff") {
|
|
957
|
+
if (removedItem == null && item != null && item.type === "diff" && item.instance.completeEditSession()) {
|
|
958
|
+
this.markItemLayoutDirty(item);
|
|
959
|
+
this.render();
|
|
960
|
+
}
|
|
961
|
+
finishEditSessionForDiff(itemSnapshot.fileDiff);
|
|
962
|
+
}
|
|
963
|
+
if (lastChange != null) completions.push(removedItem != null || item == null ? lastChange : {
|
|
964
|
+
...lastChange,
|
|
965
|
+
item: item.item
|
|
966
|
+
});
|
|
967
|
+
}
|
|
968
|
+
for (const { item, file, lineAnnotations } of completions) this.options.onItemEditComplete?.(item, file, lineAnnotations);
|
|
969
|
+
}
|
|
744
970
|
renamePendingScrollTarget(oldId, newId) {
|
|
745
971
|
const { pendingScrollTarget } = this;
|
|
746
972
|
if (pendingScrollTarget == null || pendingScrollTarget.type === "position" || pendingScrollTarget.id !== oldId) return;
|
|
@@ -756,7 +982,11 @@ var CodeView = class CodeView {
|
|
|
756
982
|
const prototype = {};
|
|
757
983
|
for (const key of CODE_VIEW_FILE_OPTION_KEYS) defineItemOption(prototype, key, () => this.options[key]);
|
|
758
984
|
defineItemOption(prototype, "stickyHeader", () => this.options.stickyHeaders);
|
|
759
|
-
defineItemOption(prototype, "collapsed", (receiver) =>
|
|
985
|
+
defineItemOption(prototype, "collapsed", (receiver) => {
|
|
986
|
+
const state = getItemOptionsState(receiver);
|
|
987
|
+
if (state == null) return;
|
|
988
|
+
return this.getItemOptions(state, "file")?.item.collapsed;
|
|
989
|
+
});
|
|
760
990
|
for (const key of CODE_VIEW_SHARED_CALLBACK_KEYS) this.defineItemSharedCallback(prototype, "file", key);
|
|
761
991
|
for (const key of CODE_VIEW_SELECTION_CALLBACK_KEYS) this.defineItemSelectionCallback(prototype, "file", key);
|
|
762
992
|
return prototype;
|
|
@@ -766,7 +996,11 @@ var CodeView = class CodeView {
|
|
|
766
996
|
for (const key of CODE_VIEW_DIFF_OPTION_KEYS) defineItemOption(prototype, key, () => this.options[key]);
|
|
767
997
|
defineItemOption(prototype, "stickyHeader", () => this.options.stickyHeaders);
|
|
768
998
|
defineItemOption(prototype, "hunkSeparators", () => this.options.hunkSeparators);
|
|
769
|
-
defineItemOption(prototype, "collapsed", (receiver) =>
|
|
999
|
+
defineItemOption(prototype, "collapsed", (receiver) => {
|
|
1000
|
+
const state = getItemOptionsState(receiver);
|
|
1001
|
+
if (state == null) return;
|
|
1002
|
+
return this.getItemOptions(state, "diff")?.item.collapsed;
|
|
1003
|
+
});
|
|
770
1004
|
for (const key of CODE_VIEW_SHARED_CALLBACK_KEYS) this.defineItemSharedCallback(prototype, "diff", key);
|
|
771
1005
|
for (const key of CODE_VIEW_SELECTION_CALLBACK_KEYS) this.defineItemSelectionCallback(prototype, "diff", key);
|
|
772
1006
|
return prototype;
|
|
@@ -782,7 +1016,9 @@ var CodeView = class CodeView {
|
|
|
782
1016
|
return options;
|
|
783
1017
|
}
|
|
784
1018
|
updateItemOptionsId(options, id) {
|
|
785
|
-
getItemOptionsState(options)
|
|
1019
|
+
const state = getItemOptionsState(options);
|
|
1020
|
+
if (state == null) throw new Error(`CodeView.updateItemOptionsId: No valid state`);
|
|
1021
|
+
state.id = id;
|
|
786
1022
|
}
|
|
787
1023
|
getItemOptions(state, mode) {
|
|
788
1024
|
const item = this.idToItem.get(state.id);
|
|
@@ -793,6 +1029,7 @@ var CodeView = class CodeView {
|
|
|
793
1029
|
defineItemOption(options, key, (receiver) => {
|
|
794
1030
|
if (this.options[key] == null) return;
|
|
795
1031
|
const state = getItemOptionsState(receiver);
|
|
1032
|
+
if (state == null) return;
|
|
796
1033
|
const callbackCache = state.callbackCache ??= {};
|
|
797
1034
|
let wrapped = callbackCache[key];
|
|
798
1035
|
if (wrapped == null) {
|
|
@@ -809,8 +1046,8 @@ var CodeView = class CodeView {
|
|
|
809
1046
|
}
|
|
810
1047
|
defineItemSelectionCallback(options, mode, key) {
|
|
811
1048
|
defineItemOption(options, key, (receiver) => {
|
|
812
|
-
if (this.options.enableLineSelection !== true) return;
|
|
813
1049
|
const state = getItemOptionsState(receiver);
|
|
1050
|
+
if (state == null) return;
|
|
814
1051
|
const callbackCache = state.callbackCache ??= {};
|
|
815
1052
|
let wrapped = callbackCache[key];
|
|
816
1053
|
if (wrapped == null) {
|
|
@@ -888,6 +1125,7 @@ var CodeView = class CodeView {
|
|
|
888
1125
|
const nextItems = [];
|
|
889
1126
|
const nextIdToItem = /* @__PURE__ */ new Map();
|
|
890
1127
|
const nextInstanceToItem = /* @__PURE__ */ new Map();
|
|
1128
|
+
const removedItemsById = /* @__PURE__ */ new Map();
|
|
891
1129
|
let firstDirtyIndex;
|
|
892
1130
|
for (let index = 0; index < items.length; index++) {
|
|
893
1131
|
const input = items[index];
|
|
@@ -905,14 +1143,19 @@ var CodeView = class CodeView {
|
|
|
905
1143
|
nextIdToItem.set(input.id, item);
|
|
906
1144
|
nextInstanceToItem.set(item.instance, item);
|
|
907
1145
|
}
|
|
1146
|
+
if (firstDirtyIndex == null) {
|
|
1147
|
+
if (removedItems.size === 0) return;
|
|
1148
|
+
firstDirtyIndex = Math.max(nextItems.length - 1, 0);
|
|
1149
|
+
}
|
|
1150
|
+
this.capturePendingLayoutAnchor(nextIdToItem);
|
|
908
1151
|
for (let index = 0; index < previousItems.length; index++) {
|
|
909
1152
|
const removedItem = previousItems[index];
|
|
910
1153
|
if (removedItem == null || !removedItems.has(removedItem)) continue;
|
|
1154
|
+
removedItemsById.set(removedItem.item.id, removedItem);
|
|
911
1155
|
this.releaseRenderedItem(removedItem);
|
|
912
1156
|
const dirtyIndex = Math.max(nextItems.length - 1, 0);
|
|
913
1157
|
firstDirtyIndex = Math.min(firstDirtyIndex ?? dirtyIndex, dirtyIndex);
|
|
914
1158
|
}
|
|
915
|
-
if (firstDirtyIndex == null) return;
|
|
916
1159
|
this.items = nextItems;
|
|
917
1160
|
this.idToItem = nextIdToItem;
|
|
918
1161
|
this.instanceToItem = nextInstanceToItem;
|
|
@@ -921,6 +1164,7 @@ var CodeView = class CodeView {
|
|
|
921
1164
|
this.markLayoutDirtyFromIndex(firstDirtyIndex);
|
|
922
1165
|
this.scrollDirty = true;
|
|
923
1166
|
this.render();
|
|
1167
|
+
return removedItemsById.size > 0 ? removedItemsById : void 0;
|
|
924
1168
|
}
|
|
925
1169
|
/**
|
|
926
1170
|
* Update a reused record from the latest controlled item only when its item
|
|
@@ -938,7 +1182,7 @@ var CodeView = class CodeView {
|
|
|
938
1182
|
}
|
|
939
1183
|
getMaxScrollTopForHeight(scrollHeight) {
|
|
940
1184
|
const { paddingBottom, paddingTop } = this.getLayout();
|
|
941
|
-
return Math.max(paddingTop + scrollHeight + paddingBottom - this.getHeight(), 0);
|
|
1185
|
+
return Math.max(paddingTop + this.header.height + scrollHeight + this.footer.height + paddingBottom - this.getHeight(), 0);
|
|
942
1186
|
}
|
|
943
1187
|
getMaxScrollTop() {
|
|
944
1188
|
return this.getMaxScrollTopForHeight(this.getScrollHeight());
|
|
@@ -1050,7 +1294,7 @@ var CodeView = class CodeView {
|
|
|
1050
1294
|
const rect = this.getScrollTargetRect(target);
|
|
1051
1295
|
if (rect == null) return;
|
|
1052
1296
|
const offset = target.offset ?? 0;
|
|
1053
|
-
const targetTop = this.
|
|
1297
|
+
const targetTop = this.getItemTopOffset() + rect.top;
|
|
1054
1298
|
const targetBottom = targetTop + rect.height;
|
|
1055
1299
|
const currentTop = this.getScrollTop();
|
|
1056
1300
|
const visibleTop = currentTop + (target.type === "line" || target.type === "range" ? this.getStickyHeaderOffset() : 0);
|
|
@@ -1102,7 +1346,7 @@ var CodeView = class CodeView {
|
|
|
1102
1346
|
* and stickyOffset if necessary
|
|
1103
1347
|
*/
|
|
1104
1348
|
resolveAlignedScrollPosition(targetTop, targetHeight, align, offset = 0, stickyOffset = 0) {
|
|
1105
|
-
targetTop += this.
|
|
1349
|
+
targetTop += this.getItemTopOffset();
|
|
1106
1350
|
const viewportHeight = this.getHeight();
|
|
1107
1351
|
if (align === "center" && targetHeight + offset < viewportHeight) return targetTop - (viewportHeight - targetHeight) / 2 + offset;
|
|
1108
1352
|
if (align === "end") return targetTop - (viewportHeight - targetHeight) + offset;
|
|
@@ -1206,6 +1450,7 @@ var CodeView = class CodeView {
|
|
|
1206
1450
|
}
|
|
1207
1451
|
computeRenderRangeAndEmit = (timestamp = performance.now()) => {
|
|
1208
1452
|
if (CodeView.__STOP || this.container == null) return;
|
|
1453
|
+
if (!this.isReady()) return;
|
|
1209
1454
|
const viewportHeight = this.getHeight();
|
|
1210
1455
|
const initialScrollTop = this.getScrollTop();
|
|
1211
1456
|
let scrollTopAfterLayout = initialScrollTop;
|
|
@@ -1233,7 +1478,7 @@ var CodeView = class CodeView {
|
|
|
1233
1478
|
const fitPerfectly = !computeScrollCorrection && (this.renderState.scrollTop === -1 || Math.abs(targetScrollTop - this.renderState.scrollTop) > viewportHeight + this.config.overscrollSize * 2);
|
|
1234
1479
|
if (fitPerfectly) scrollAnchor = void 0;
|
|
1235
1480
|
this.windowSpecs = createWindowFromScrollPosition({
|
|
1236
|
-
scrollTop: targetScrollTop,
|
|
1481
|
+
scrollTop: targetScrollTop - this.header.height,
|
|
1237
1482
|
height: viewportHeight,
|
|
1238
1483
|
scrollHeight: this.getScrollHeight(),
|
|
1239
1484
|
fitPerfectly,
|
|
@@ -1252,6 +1497,7 @@ var CodeView = class CodeView {
|
|
|
1252
1497
|
if (item == null) throw new Error(`CodeView.computeRenderRangeAndEmit: No item at index: ${index}`);
|
|
1253
1498
|
if (!(item.top > top - item.height && item.top <= bottom)) this.releaseRenderedItem(item);
|
|
1254
1499
|
}
|
|
1500
|
+
const hostsChanged = this.reconcileHeaderFooterHosts();
|
|
1255
1501
|
let prevElement;
|
|
1256
1502
|
const updatedItems = /* @__PURE__ */ new Set();
|
|
1257
1503
|
const startingIndex = this.findFirstVisibleIndex(top);
|
|
@@ -1277,10 +1523,13 @@ var CodeView = class CodeView {
|
|
|
1277
1523
|
}
|
|
1278
1524
|
prevElement = item.element;
|
|
1279
1525
|
}
|
|
1526
|
+
if (item.item.edit === true) this.attachItemEditor(item);
|
|
1280
1527
|
}
|
|
1281
1528
|
this.renderState.firstIndex = startingIndex <= lastRenderedIndex ? startingIndex : -1;
|
|
1282
1529
|
this.renderState.lastIndex = lastRenderedIndex;
|
|
1283
1530
|
this.flushSlotCoordinator();
|
|
1531
|
+
this.flushManagers(updatedItems);
|
|
1532
|
+
if (hostsChanged) this.measureMountedHosts();
|
|
1284
1533
|
this.reconcileRenderedItems(updatedItems);
|
|
1285
1534
|
this.syncContainerHeight();
|
|
1286
1535
|
this.updateStickyPositioning();
|
|
@@ -1305,7 +1554,7 @@ var CodeView = class CodeView {
|
|
|
1305
1554
|
this.scrollAnimation = void 0;
|
|
1306
1555
|
}
|
|
1307
1556
|
this.renderState.scrollTop = roundToDevicePixel(syncedScrollTop);
|
|
1308
|
-
this.
|
|
1557
|
+
this.updateStickyPositioning();
|
|
1309
1558
|
this.validateStickyContainerHeight();
|
|
1310
1559
|
this.fixContainerFocus();
|
|
1311
1560
|
if (fitPerfectly || this.scrollAnimation != null) this.render();
|
|
@@ -1384,7 +1633,10 @@ var CodeView = class CodeView {
|
|
|
1384
1633
|
}
|
|
1385
1634
|
updateStickyPositioning() {
|
|
1386
1635
|
const stickyBounds = this.getStickyBounds();
|
|
1387
|
-
if (stickyBounds == null)
|
|
1636
|
+
if (stickyBounds == null) {
|
|
1637
|
+
if (this.renderState.firstIndex === -1) this.stickyOffset.style.height = "";
|
|
1638
|
+
return;
|
|
1639
|
+
}
|
|
1388
1640
|
const { stickyTop, stickyBottom } = stickyBounds;
|
|
1389
1641
|
if (stickyBottom - stickyTop === this.renderState.stickyHeight && stickyTop === this.renderState.stickyTop && stickyBottom === this.renderState.stickyBottom) return;
|
|
1390
1642
|
this.applyStickyPositioning(stickyBounds);
|
|
@@ -1402,8 +1654,10 @@ var CodeView = class CodeView {
|
|
|
1402
1654
|
this.scrollAnimation = void 0;
|
|
1403
1655
|
};
|
|
1404
1656
|
handleResize = (entries) => {
|
|
1657
|
+
let shouldRender = false;
|
|
1405
1658
|
for (const entry of entries) if (entry.target === this.stickyContainer) {
|
|
1406
|
-
|
|
1659
|
+
const blockSize = entry.borderBoxSize[0].blockSize;
|
|
1660
|
+
if (Math.abs(blockSize - this.renderState.stickyHeight) >= SUB_PIXEL_TOLERANCE) {
|
|
1407
1661
|
const currentScrollTop = this.getScrollTop();
|
|
1408
1662
|
const anchor = this.getScrollAnchor(currentScrollTop);
|
|
1409
1663
|
this.reconcileRenderedItems();
|
|
@@ -1418,12 +1672,33 @@ var CodeView = class CodeView {
|
|
|
1418
1672
|
this.pendingScrollTarget = void 0;
|
|
1419
1673
|
this.scrollAnimation = void 0;
|
|
1420
1674
|
}
|
|
1675
|
+
shouldRender = true;
|
|
1676
|
+
}
|
|
1677
|
+
} else if (entry.target === this.header.element || entry.target === this.footer.element) {
|
|
1678
|
+
const host = entry.target === this.header.element ? this.header : this.footer;
|
|
1679
|
+
const blockSize = entry.borderBoxSize[0].blockSize;
|
|
1680
|
+
if (blockSize !== host.height) {
|
|
1681
|
+
const currentScrollTop = this.getScrollTop();
|
|
1682
|
+
const anchor = this.getScrollAnchor(currentScrollTop);
|
|
1683
|
+
this.setHostHeight(host, blockSize);
|
|
1684
|
+
const anchoredScrollTop = anchor != null ? this.resolveAnchoredScrollTop(anchor) : void 0;
|
|
1685
|
+
if (anchoredScrollTop != null) {
|
|
1686
|
+
const resizeAnchorDelta = anchoredScrollTop - currentScrollTop;
|
|
1687
|
+
this.applyScrollFix(anchoredScrollTop, currentScrollTop, this.windowSpecs);
|
|
1688
|
+
if (this.scrollAnimation != null) this.scrollAnimation.position += resizeAnchorDelta;
|
|
1689
|
+
}
|
|
1690
|
+
if (this.pendingScrollTarget != null && this.isPendingTargetSettled(this.pendingScrollTarget)) {
|
|
1691
|
+
this.pendingScrollTarget = void 0;
|
|
1692
|
+
this.scrollAnimation = void 0;
|
|
1693
|
+
}
|
|
1694
|
+
shouldRender = true;
|
|
1421
1695
|
}
|
|
1422
1696
|
} else {
|
|
1423
1697
|
this.scrollDirty = true;
|
|
1424
1698
|
this.heightDirty = true;
|
|
1425
|
-
|
|
1699
|
+
shouldRender = true;
|
|
1426
1700
|
}
|
|
1701
|
+
if (shouldRender) this.render(true);
|
|
1427
1702
|
};
|
|
1428
1703
|
/**
|
|
1429
1704
|
* Figure out scrollTop accounting for sticky header if enabled and
|
|
@@ -1439,8 +1714,15 @@ var CodeView = class CodeView {
|
|
|
1439
1714
|
* A scroll anchor represents the first fully visible element (in other
|
|
1440
1715
|
* words, the first file or first line who's top is fully in the viewport).
|
|
1441
1716
|
*/
|
|
1442
|
-
getScrollAnchor(scrollTop) {
|
|
1443
|
-
|
|
1717
|
+
getScrollAnchor(scrollTop, availableItems = this.idToItem) {
|
|
1718
|
+
let skippedItem;
|
|
1719
|
+
const { pendingLayoutAnchor } = this;
|
|
1720
|
+
if (pendingLayoutAnchor != null) {
|
|
1721
|
+
const pendingItem = this.idToItem.get(pendingLayoutAnchor.id);
|
|
1722
|
+
if (pendingItem != null && availableItems.get(pendingLayoutAnchor.id) === pendingItem) return pendingLayoutAnchor;
|
|
1723
|
+
if (pendingItem != null) skippedItem = pendingItem;
|
|
1724
|
+
}
|
|
1725
|
+
if (scrollTop <= 0) return;
|
|
1444
1726
|
const { firstIndex, lastIndex, stickyTop, stickyBottom } = this.renderState;
|
|
1445
1727
|
if (firstIndex === -1 || lastIndex === -1) return;
|
|
1446
1728
|
const viewportHeight = this.getHeight();
|
|
@@ -1448,9 +1730,13 @@ var CodeView = class CodeView {
|
|
|
1448
1730
|
for (let index = firstIndex; index <= lastIndex; index++) {
|
|
1449
1731
|
const item = this.items[index];
|
|
1450
1732
|
if (item == null) continue;
|
|
1451
|
-
const absoluteItemTop = this.
|
|
1733
|
+
const absoluteItemTop = this.getItemTopOffset() + item.top;
|
|
1452
1734
|
if (absoluteItemTop + item.height <= scrollTop) continue;
|
|
1453
1735
|
if (absoluteItemTop >= scrollTop + viewportHeight) break;
|
|
1736
|
+
if (!(availableItems.get(item.item.id) === item)) {
|
|
1737
|
+
skippedItem ??= item;
|
|
1738
|
+
continue;
|
|
1739
|
+
}
|
|
1454
1740
|
if (absoluteItemTop >= scrollTop) return {
|
|
1455
1741
|
type: "item",
|
|
1456
1742
|
id: item.item.id,
|
|
@@ -1469,6 +1755,14 @@ var CodeView = class CodeView {
|
|
|
1469
1755
|
};
|
|
1470
1756
|
}
|
|
1471
1757
|
}
|
|
1758
|
+
if (skippedItem != null) for (let index = skippedItem.index + 1; index < this.items.length; index++) {
|
|
1759
|
+
const candidate = this.items[index];
|
|
1760
|
+
if (candidate != null && availableItems.get(candidate.item.id) === candidate) return {
|
|
1761
|
+
type: "item",
|
|
1762
|
+
id: candidate.item.id,
|
|
1763
|
+
viewportOffset: 0
|
|
1764
|
+
};
|
|
1765
|
+
}
|
|
1472
1766
|
}
|
|
1473
1767
|
/**
|
|
1474
1768
|
* Given a scroll anchor, attempt to resolve a newly updated (and clamped)
|
|
@@ -1480,14 +1774,14 @@ var CodeView = class CodeView {
|
|
|
1480
1774
|
resolveAnchoredScrollTop(anchor) {
|
|
1481
1775
|
const item = this.idToItem.get(anchor.id);
|
|
1482
1776
|
if (item == null) return;
|
|
1483
|
-
const
|
|
1777
|
+
const itemTopOffset = this.getItemTopOffset();
|
|
1484
1778
|
if (anchor.type === "item") {
|
|
1485
|
-
const absoluteItemTop =
|
|
1779
|
+
const absoluteItemTop = itemTopOffset + item.top;
|
|
1486
1780
|
return this.clampScrollTop(absoluteItemTop - anchor.viewportOffset);
|
|
1487
1781
|
}
|
|
1488
1782
|
const linePosition = item.type === "diff" ? item.instance.getLinePosition(anchor.lineNumber, anchor.side) : item.instance.getLinePosition(anchor.lineNumber);
|
|
1489
1783
|
if (linePosition == null) return;
|
|
1490
|
-
const absoluteLineTop =
|
|
1784
|
+
const absoluteLineTop = itemTopOffset + item.top + linePosition.top;
|
|
1491
1785
|
return this.clampScrollTop(absoluteLineTop - anchor.viewportOffset);
|
|
1492
1786
|
}
|
|
1493
1787
|
/**
|
|
@@ -1544,11 +1838,10 @@ var CodeView = class CodeView {
|
|
|
1544
1838
|
}
|
|
1545
1839
|
flushSlotCoordinator() {
|
|
1546
1840
|
if (this.slotCoordinator == null) return;
|
|
1547
|
-
const
|
|
1548
|
-
|
|
1549
|
-
if (areSlotSnapshotsEqual(this.slotSnapshot, slotSnapshot)) return;
|
|
1841
|
+
const slotSnapshot = this.buildSlotSnapshot(this.slotCoordinator);
|
|
1842
|
+
if (areManagedSnapshotsEqual(this.slotSnapshot, slotSnapshot)) return;
|
|
1550
1843
|
this.slotSnapshot = slotSnapshot;
|
|
1551
|
-
onSnapshotChange(slotSnapshot);
|
|
1844
|
+
this.slotCoordinator.onSnapshotChange(slotSnapshot);
|
|
1552
1845
|
}
|
|
1553
1846
|
notifyScroll() {
|
|
1554
1847
|
if (this.scrollListeners.size === 0) return;
|
|
@@ -1617,8 +1910,11 @@ var CodeView = class CodeView {
|
|
|
1617
1910
|
const item = this.items[index];
|
|
1618
1911
|
if (item == null) throw new Error("CodeView.recomputeLayout: invalid item index");
|
|
1619
1912
|
item.top = runningTop;
|
|
1620
|
-
if (item.type === "diff")
|
|
1621
|
-
|
|
1913
|
+
if (item.type === "diff") {
|
|
1914
|
+
const fileDiff = item.instance.consumeCodeViewLayoutChanges(item.item.fileDiff);
|
|
1915
|
+
if (fileDiff != null) Object.assign(item.item.fileDiff, fileDiff);
|
|
1916
|
+
item.height = item.instance.prepareCodeViewItem(item.item.fileDiff, runningTop, reset, item.item.annotations ?? []);
|
|
1917
|
+
} else item.height = item.instance.prepareCodeViewItem(item.item.file, runningTop, reset, item.item.annotations ?? []);
|
|
1622
1918
|
runningTop += item.height;
|
|
1623
1919
|
if (index < this.items.length - 1) runningTop += layout.gap;
|
|
1624
1920
|
}
|
|
@@ -1696,7 +1992,7 @@ function syncRenderedItemOrder(container, element, prevElement) {
|
|
|
1696
1992
|
function hasAnnotations(item) {
|
|
1697
1993
|
return (item.annotations?.length ?? 0) > 0;
|
|
1698
1994
|
}
|
|
1699
|
-
function
|
|
1995
|
+
function getSlotItems(renderedItems, { hasHeaderRenderers, hasAnnotationRenderer, hasGutterRenderer }) {
|
|
1700
1996
|
if (renderedItems.length === 0) return;
|
|
1701
1997
|
if (hasHeaderRenderers || hasGutterRenderer) return renderedItems;
|
|
1702
1998
|
if (!hasAnnotationRenderer) return;
|
|
@@ -1704,17 +2000,7 @@ function getSlotSnapshot(renderedItems, { hasHeaderRenderers, hasAnnotationRende
|
|
|
1704
2000
|
for (const renderedItem of renderedItems) if (hasAnnotations(renderedItem.item)) slotSnapshot.push(renderedItem);
|
|
1705
2001
|
return slotSnapshot.length > 0 ? slotSnapshot : void 0;
|
|
1706
2002
|
}
|
|
1707
|
-
function areSlotSnapshotsEqual(previous, next) {
|
|
1708
|
-
if (previous == null || next == null) return previous === next;
|
|
1709
|
-
if (previous.length !== next.length) return false;
|
|
1710
|
-
for (let index = 0; index < previous.length; index++) {
|
|
1711
|
-
const previousItem = previous[index];
|
|
1712
|
-
const nextItem = next[index];
|
|
1713
|
-
if (previousItem == null || nextItem == null || previousItem.id !== nextItem.id || previousItem.type !== nextItem.type || previousItem.element !== nextItem.element || previousItem.version !== nextItem.version) return false;
|
|
1714
|
-
}
|
|
1715
|
-
return true;
|
|
1716
|
-
}
|
|
1717
2003
|
//#endregion
|
|
1718
|
-
export { CodeView };
|
|
2004
|
+
export { CODE_VIEW_DIFF_OPTION_KEYS, CODE_VIEW_FILE_OPTION_KEYS, CodeView };
|
|
1719
2005
|
|
|
1720
2006
|
//# sourceMappingURL=CodeView.js.map
|