@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResizeManager.js","names":[],"sources":["../../src/managers/ResizeManager.ts"],"sourcesContent":["import type { ObservedAnnotationNodes, ObservedGridNodes } from '../types';\n\ninterface CodeColumnUpdate {\n codeInlineSize?: number;\n numberInlineSize?: number;\n measuredNumberInlineSize?: number;\n}\n\ntype CodeUpdateMap = Map<ObservedGridNodes, CodeColumnUpdate>;\n\ninterface AnnotationSetup {\n child1: HTMLElement;\n child2: HTMLElement;\n item: ObservedAnnotationNodes;\n newHeight: number;\n}\n\nexport class ResizeManager {\n // Shared static resizeObserver that all ResizeManagers use\n private static resizeObserver: ResizeObserver | undefined;\n private static managersByElement = new Map<Element, ResizeManager>();\n\n private static getResizeObserver(): ResizeObserver {\n const resizeObserver =\n ResizeManager.resizeObserver ??\n new ResizeObserver(ResizeManager.handleSharedResizeEntries);\n ResizeManager.resizeObserver = resizeObserver;\n return resizeObserver;\n }\n\n private static handleSharedResizeEntries(entries: ResizeObserverEntry[]) {\n // First we need to batch all elements by manager, so callbacks are\n // properly aligned with a per-instance ResizeManager\n const entriesByManager = new Map<ResizeManager, ResizeObserverEntry[]>();\n for (const entry of entries) {\n const manager = ResizeManager.managersByElement.get(entry.target);\n if (manager == null) {\n continue;\n }\n const managerEntries = entriesByManager.get(manager);\n if (managerEntries == null) {\n entriesByManager.set(manager, [entry]);\n } else {\n managerEntries.push(entry);\n }\n }\n\n for (const [manager, managerEntries] of entriesByManager) {\n manager.handleResizeEntries(managerEntries);\n }\n }\n\n private observedNodes = new Map<\n HTMLElement,\n ObservedAnnotationNodes | ObservedGridNodes\n >();\n\n setup(pre: HTMLPreElement, disableAnnotations: boolean): void {\n const annotationUpdates = new Set<AnnotationSetup>();\n let columnCount = 0;\n const observedNodes = new Map(this.observedNodes);\n this.observedNodes.clear();\n\n for (const element of pre.children) {\n if (columnCount === 2) {\n break;\n }\n const codeElement: HTMLElement | undefined = (() => {\n if (element instanceof HTMLElement && element.tagName === 'CODE') {\n return element;\n }\n return undefined;\n })();\n if (codeElement == null) {\n continue;\n }\n columnCount++;\n let item: ObservedGridNodes | ObservedAnnotationNodes | undefined =\n observedNodes.get(codeElement);\n if (item != null && item.type !== 'code') {\n throw new Error(\n 'ResizeManager.setup: somehow a code node is being used for an annotation, should be impossible'\n );\n }\n\n let numberElement = codeElement.firstElementChild;\n if (!(numberElement instanceof HTMLElement)) {\n numberElement = null;\n }\n if (item != null) {\n this.observedNodes.set(codeElement, item);\n observedNodes.delete(codeElement);\n if (item.numberElement !== numberElement) {\n if (item.numberElement != null) {\n this.unobserve(item.numberElement);\n observedNodes.delete(item.numberElement);\n }\n if (numberElement != null) {\n this.observe(numberElement);\n observedNodes.delete(numberElement);\n this.observedNodes.set(numberElement, item);\n }\n item.numberElement = numberElement;\n item.numberWidth = 0;\n } else if (item.numberElement != null) {\n observedNodes.delete(item.numberElement);\n this.observedNodes.set(item.numberElement, item);\n // If there is a resize, let the resize handler handle it...\n } else {\n item.numberWidth = 0;\n }\n } else {\n item = {\n type: 'code',\n codeElement,\n numberElement,\n codeWidth: 'auto',\n numberWidth: 0,\n };\n this.observedNodes.set(codeElement, item);\n this.observe(codeElement);\n if (numberElement != null) {\n this.observedNodes.set(numberElement, item);\n this.observe(numberElement);\n }\n }\n }\n\n if (columnCount > 1 && !disableAnnotations) {\n const annotationElements = pre.querySelectorAll(\n '[data-line-annotation*=\",\"]'\n );\n\n const elementMap = new Map<string, HTMLElement[]>();\n // Iterate through all the matched elements and organize them into pairs\n // based on the data-line-annotation attribute\n for (const element of annotationElements) {\n if (!(element instanceof HTMLElement)) {\n continue;\n }\n const lineAnnotation =\n element.getAttribute('data-line-annotation') ?? '';\n if (!/^-?\\d+,-?\\d+$/.test(lineAnnotation)) {\n console.error(\n 'DiffFileRenderer.setupResizeObserver: Invalid element or annotation',\n { lineAnnotation, element }\n );\n continue;\n }\n let pairs = elementMap.get(lineAnnotation);\n if (pairs == null) {\n pairs = [];\n elementMap.set(lineAnnotation, pairs);\n }\n pairs.push(element);\n }\n\n for (const [key, pair] of elementMap) {\n if (pair.length !== 2) {\n console.error(\n 'DiffFileRenderer.setupResizeObserver: Bad Pair',\n key,\n pair\n );\n continue;\n }\n const [container1, container2] = pair;\n const child1 = container1.firstElementChild;\n const child2 = container2.firstElementChild;\n if (\n !(container1 instanceof HTMLElement) ||\n !(container2 instanceof HTMLElement) ||\n !(child1 instanceof HTMLElement) ||\n !(child2 instanceof HTMLElement)\n ) {\n continue;\n }\n\n let item = observedNodes.get(child1);\n\n if (item != null) {\n this.observedNodes.set(child1, item);\n this.observedNodes.set(child2, item);\n observedNodes.delete(child1);\n observedNodes.delete(child2);\n continue;\n }\n\n const child1Height = child1.getBoundingClientRect().height;\n const child2Height = child2.getBoundingClientRect().height;\n item = {\n type: 'annotations',\n column1: {\n container: container1,\n child: child1,\n childHeight: child1Height,\n },\n column2: {\n container: container2,\n child: child2,\n childHeight: child2Height,\n },\n currentHeight: 'auto',\n };\n annotationUpdates.add({\n child1,\n child2,\n item,\n newHeight: Math.max(child1Height, child2Height),\n });\n }\n\n // Measure all annotation heights first, then apply the paired min-height\n // styles after the read phase so setup does not bounce between layout\n // reads and writes for every annotation pair.\n for (const pendingUpdate of annotationUpdates) {\n this.applyNewHeight(pendingUpdate.item, pendingUpdate.newHeight);\n this.observedNodes.set(pendingUpdate.child1, pendingUpdate.item);\n this.observedNodes.set(pendingUpdate.child2, pendingUpdate.item);\n this.observe(pendingUpdate.child1);\n this.observe(pendingUpdate.child2);\n }\n annotationUpdates.clear();\n }\n\n // Cleanup any old nodes that might still be observed\n for (const [element, item] of observedNodes) {\n this.unobserve(element);\n if (item.type === 'code') {\n cleanupStaleCodeItem(item);\n } else {\n cleanupStaleAnnotationItem(item);\n }\n }\n observedNodes.clear();\n }\n\n cleanUp(): void {\n for (const element of this.observedNodes.keys()) {\n this.unobserve(element);\n }\n this.observedNodes.clear();\n }\n\n private observe(element: HTMLElement): void {\n const { managersByElement } = ResizeManager;\n const owner = managersByElement.get(element);\n // Already registered\n if (owner === this) {\n return;\n }\n // If we've already somehow registered with another manager, we in for a\n // world of pain, so complain loudly\n else if (owner != null && owner !== this) {\n throw new Error(\n 'ResizeManager.observe: element is already owned by another ResizeManager'\n );\n }\n managersByElement.set(element, this);\n ResizeManager.getResizeObserver().observe(element);\n }\n\n private unobserve(element: HTMLElement): void {\n const { managersByElement, resizeObserver } = ResizeManager;\n const owner = managersByElement.get(element);\n if (owner == null) {\n return;\n } else if (owner !== this) {\n throw new Error(\n 'ResizeManager.unobserve: element is owned by another ResizeManager'\n );\n }\n\n managersByElement.delete(element);\n resizeObserver?.unobserve(element);\n if (resizeObserver != null && managersByElement.size === 0) {\n resizeObserver.disconnect();\n ResizeManager.resizeObserver = undefined;\n }\n }\n\n private handleResizeEntries(entries: ResizeObserverEntry[]) {\n const codeUpdates: CodeUpdateMap = new Map();\n const annotationUpdates: Set<ObservedAnnotationNodes> = new Set();\n for (const entry of entries) {\n const { target, borderBoxSize, contentBoxSize } = entry;\n if (!(target instanceof HTMLElement)) {\n console.error(\n 'ResizeManager.handleResizeEntries: Invalid element for ResizeObserver',\n entry\n );\n continue;\n }\n const item = this.observedNodes.get(target);\n if (item == null) {\n console.error(\n 'ResizeManager.handleResizeEntries: Not a valid observed node',\n entry\n );\n continue;\n }\n if (item.type === 'annotations') {\n const column = (() => {\n if (target === item.column1.child) {\n return item.column1;\n }\n if (target === item.column2.child) {\n return item.column2;\n }\n return undefined;\n })();\n\n if (column == null) {\n console.error(\n `ResizeManager.handleResizeEntries: Couldn't find a column for`,\n { item, target }\n );\n continue;\n }\n\n column.childHeight = borderBoxSize[0].blockSize;\n annotationUpdates.add(item);\n } else if (item.type === 'code') {\n const update = codeUpdates.get(item) ?? {};\n const inlineSize = contentBoxSize[0].inlineSize;\n if (target === item.codeElement) {\n update.codeInlineSize = inlineSize;\n } else if (target === item.numberElement) {\n update.numberInlineSize = inlineSize;\n }\n codeUpdates.set(item, update);\n }\n }\n this.applyAnnotationUpdates(annotationUpdates);\n annotationUpdates.clear();\n this.applyColumnUpdates(codeUpdates);\n codeUpdates.clear();\n }\n\n private applyAnnotationUpdates(\n annotationUpdates: Set<ObservedAnnotationNodes>\n ) {\n for (const item of annotationUpdates) {\n this.applyNewHeight(\n item,\n Math.max(item.column1.childHeight, item.column2.childHeight)\n );\n }\n }\n\n private applyColumnUpdates = (queuedUpdates: CodeUpdateMap) => {\n for (const [item, update] of queuedUpdates) {\n const nextCodeWidth =\n update.codeInlineSize != null\n ? resolveCodeWidth(update.codeInlineSize)\n : item.codeWidth;\n const nextNumberWidth =\n update.numberInlineSize != null\n ? resolveNumberWidth(update.numberInlineSize)\n : item.numberWidth;\n const codeWidthChanged = nextCodeWidth !== item.codeWidth;\n const numberWidthChanged = nextNumberWidth !== item.numberWidth;\n\n if (!codeWidthChanged && !numberWidthChanged) {\n continue;\n }\n\n item.codeWidth = nextCodeWidth;\n item.numberWidth = nextNumberWidth;\n\n if (codeWidthChanged) {\n item.codeElement.style.setProperty(\n '--diffs-column-width',\n `${typeof nextCodeWidth === 'number' ? `${nextCodeWidth}px` : 'auto'}`\n );\n }\n\n if (numberWidthChanged) {\n item.codeElement.style.setProperty(\n '--diffs-column-number-width',\n `${nextNumberWidth === 0 ? 'auto' : `${nextNumberWidth}px`}`\n );\n }\n\n if (\n codeWidthChanged ||\n (numberWidthChanged && nextCodeWidth !== 'auto')\n ) {\n const targetWidth =\n typeof nextCodeWidth === 'number'\n ? Math.max(nextCodeWidth - nextNumberWidth, 0)\n : 0;\n item.codeElement.style.setProperty(\n '--diffs-column-content-width',\n `${targetWidth > 0 ? `${targetWidth}px` : 'auto'}`\n );\n }\n }\n };\n\n private applyNewHeight(item: ObservedAnnotationNodes, newHeight: number) {\n if (newHeight !== item.currentHeight) {\n item.currentHeight = Math.max(newHeight, 0);\n item.column1.container.style.setProperty(\n '--diffs-annotation-min-height',\n `${item.currentHeight}px`\n );\n item.column2.container.style.setProperty(\n '--diffs-annotation-min-height',\n `${item.currentHeight}px`\n );\n }\n }\n}\n\nfunction resolveCodeWidth(inlineSize: number): number | 'auto' {\n const width = Math.max(Math.floor(inlineSize), 0);\n return width === 0 ? 'auto' : width;\n}\n\nfunction resolveNumberWidth(inlineSize: number): number {\n return Math.max(Math.ceil(inlineSize), 0);\n}\n\nfunction cleanupStaleCodeItem(item: ObservedGridNodes): void {\n if (item.codeElement.isConnected) {\n item.codeElement.style.removeProperty('--diffs-column-content-width');\n item.codeElement.style.removeProperty('--diffs-column-number-width');\n item.codeElement.style.removeProperty('--diffs-column-width');\n }\n}\n\nfunction cleanupStaleAnnotationItem(item: ObservedAnnotationNodes): void {\n if (item.column1.container.isConnected) {\n item.column1.container.style.removeProperty(\n '--diffs-annotation-min-height'\n );\n }\n if (item.column2.container.isConnected) {\n item.column2.container.style.removeProperty(\n '--diffs-annotation-min-height'\n );\n }\n}\n"],"mappings":";AAiBA,IAAa,gBAAb,MAAa,cAAc;CAEzB,OAAe;CACf,OAAe,oCAAoB,IAAI,IAA4B;CAEnE,OAAe,oBAAoC;EACjD,MAAM,iBACJ,cAAc,kBACd,IAAI,eAAe,cAAc,yBAAyB;EAC5D,cAAc,iBAAiB;EAC/B,OAAO;CACT;CAEA,OAAe,0BAA0B,SAAgC;EAGvE,MAAM,mCAAmB,IAAI,IAA0C;EACvE,KAAK,MAAM,SAAS,SAAS;GAC3B,MAAM,UAAU,cAAc,kBAAkB,IAAI,MAAM,MAAM;GAChE,IAAI,WAAW,MACb;GAEF,MAAM,iBAAiB,iBAAiB,IAAI,OAAO;GACnD,IAAI,kBAAkB,MACpB,iBAAiB,IAAI,SAAS,CAAC,KAAK,CAAC;QAErC,eAAe,KAAK,KAAK;EAE7B;EAEA,KAAK,MAAM,CAAC,SAAS,mBAAmB,kBACtC,QAAQ,oBAAoB,cAAc;CAE9C;CAEA,gCAAwB,IAAI,IAG1B;CAEF,MAAM,KAAqB,oBAAmC;EAC5D,MAAM,oCAAoB,IAAI,IAAqB;EACnD,IAAI,cAAc;EAClB,MAAM,gBAAgB,IAAI,IAAI,KAAK,aAAa;EAChD,KAAK,cAAc,MAAM;EAEzB,KAAK,MAAM,WAAW,IAAI,UAAU;GAClC,IAAI,gBAAgB,GAClB;GAEF,MAAM,qBAA8C;IAClD,IAAI,mBAAmB,eAAe,QAAQ,YAAY,QACxD,OAAO;GAGX,EAAA,CAAG;GACH,IAAI,eAAe,MACjB;GAEF;GACA,IAAI,OACF,cAAc,IAAI,WAAW;GAC/B,IAAI,QAAQ,QAAQ,KAAK,SAAS,QAChC,MAAM,IAAI,MACR,gGACF;GAGF,IAAI,gBAAgB,YAAY;GAChC,IAAI,EAAE,yBAAyB,cAC7B,gBAAgB;GAElB,IAAI,QAAQ,MAAM;IAChB,KAAK,cAAc,IAAI,aAAa,IAAI;IACxC,cAAc,OAAO,WAAW;IAChC,IAAI,KAAK,kBAAkB,eAAe;KACxC,IAAI,KAAK,iBAAiB,MAAM;MAC9B,KAAK,UAAU,KAAK,aAAa;MACjC,cAAc,OAAO,KAAK,aAAa;KACzC;KACA,IAAI,iBAAiB,MAAM;MACzB,KAAK,QAAQ,aAAa;MAC1B,cAAc,OAAO,aAAa;MAClC,KAAK,cAAc,IAAI,eAAe,IAAI;KAC5C;KACA,KAAK,gBAAgB;KACrB,KAAK,cAAc;IACrB,OAAO,IAAI,KAAK,iBAAiB,MAAM;KACrC,cAAc,OAAO,KAAK,aAAa;KACvC,KAAK,cAAc,IAAI,KAAK,eAAe,IAAI;IAEjD,OACE,KAAK,cAAc;GAEvB,OAAO;IACL,OAAO;KACL,MAAM;KACN;KACA;KACA,WAAW;KACX,aAAa;IACf;IACA,KAAK,cAAc,IAAI,aAAa,IAAI;IACxC,KAAK,QAAQ,WAAW;IACxB,IAAI,iBAAiB,MAAM;KACzB,KAAK,cAAc,IAAI,eAAe,IAAI;KAC1C,KAAK,QAAQ,aAAa;IAC5B;GACF;EACF;EAEA,IAAI,cAAc,KAAK,CAAC,oBAAoB;GAC1C,MAAM,qBAAqB,IAAI,iBAC7B,+BACF;GAEA,MAAM,6BAAa,IAAI,IAA2B;GAGlD,KAAK,MAAM,WAAW,oBAAoB;IACxC,IAAI,EAAE,mBAAmB,cACvB;IAEF,MAAM,iBACJ,QAAQ,aAAa,sBAAsB,KAAK;IAClD,IAAI,CAAC,gBAAgB,KAAK,cAAc,GAAG;KACzC,QAAQ,MACN,uEACA;MAAE;MAAgB;KAAQ,CAC5B;KACA;IACF;IACA,IAAI,QAAQ,WAAW,IAAI,cAAc;IACzC,IAAI,SAAS,MAAM;KACjB,QAAQ,CAAC;KACT,WAAW,IAAI,gBAAgB,KAAK;IACtC;IACA,MAAM,KAAK,OAAO;GACpB;GAEA,KAAK,MAAM,CAAC,KAAK,SAAS,YAAY;IACpC,IAAI,KAAK,WAAW,GAAG;KACrB,QAAQ,MACN,kDACA,KACA,IACF;KACA;IACF;IACA,MAAM,CAAC,YAAY,cAAc;IACjC,MAAM,SAAS,WAAW;IAC1B,MAAM,SAAS,WAAW;IAC1B,IACE,EAAE,sBAAsB,gBACxB,EAAE,sBAAsB,gBACxB,EAAE,kBAAkB,gBACpB,EAAE,kBAAkB,cAEpB;IAGF,IAAI,OAAO,cAAc,IAAI,MAAM;IAEnC,IAAI,QAAQ,MAAM;KAChB,KAAK,cAAc,IAAI,QAAQ,IAAI;KACnC,KAAK,cAAc,IAAI,QAAQ,IAAI;KACnC,cAAc,OAAO,MAAM;KAC3B,cAAc,OAAO,MAAM;KAC3B;IACF;IAEA,MAAM,eAAe,OAAO,sBAAsB,CAAC,CAAC;IACpD,MAAM,eAAe,OAAO,sBAAsB,CAAC,CAAC;IACpD,OAAO;KACL,MAAM;KACN,SAAS;MACP,WAAW;MACX,OAAO;MACP,aAAa;KACf;KACA,SAAS;MACP,WAAW;MACX,OAAO;MACP,aAAa;KACf;KACA,eAAe;IACjB;IACA,kBAAkB,IAAI;KACpB;KACA;KACA;KACA,WAAW,KAAK,IAAI,cAAc,YAAY;IAChD,CAAC;GACH;GAKA,KAAK,MAAM,iBAAiB,mBAAmB;IAC7C,KAAK,eAAe,cAAc,MAAM,cAAc,SAAS;IAC/D,KAAK,cAAc,IAAI,cAAc,QAAQ,cAAc,IAAI;IAC/D,KAAK,cAAc,IAAI,cAAc,QAAQ,cAAc,IAAI;IAC/D,KAAK,QAAQ,cAAc,MAAM;IACjC,KAAK,QAAQ,cAAc,MAAM;GACnC;GACA,kBAAkB,MAAM;EAC1B;EAGA,KAAK,MAAM,CAAC,SAAS,SAAS,eAAe;GAC3C,KAAK,UAAU,OAAO;GACtB,IAAI,KAAK,SAAS,QAChB,qBAAqB,IAAI;QAEzB,2BAA2B,IAAI;EAEnC;EACA,cAAc,MAAM;CACtB;CAEA,UAAgB;EACd,KAAK,MAAM,WAAW,KAAK,cAAc,KAAK,GAC5C,KAAK,UAAU,OAAO;EAExB,KAAK,cAAc,MAAM;CAC3B;CAEA,QAAgB,SAA4B;EAC1C,MAAM,EAAE,sBAAsB;EAC9B,MAAM,QAAQ,kBAAkB,IAAI,OAAO;EAE3C,IAAI,UAAU,MACZ;OAIG,IAAI,SAAS,QAAQ,UAAU,MAClC,MAAM,IAAI,MACR,0EACF;EAEF,kBAAkB,IAAI,SAAS,IAAI;EACnC,cAAc,kBAAkB,CAAC,CAAC,QAAQ,OAAO;CACnD;CAEA,UAAkB,SAA4B;EAC5C,MAAM,EAAE,mBAAmB,mBAAmB;EAC9C,MAAM,QAAQ,kBAAkB,IAAI,OAAO;EAC3C,IAAI,SAAS,MACX;OACK,IAAI,UAAU,MACnB,MAAM,IAAI,MACR,oEACF;EAGF,kBAAkB,OAAO,OAAO;EAChC,gBAAgB,UAAU,OAAO;EACjC,IAAI,kBAAkB,QAAQ,kBAAkB,SAAS,GAAG;GAC1D,eAAe,WAAW;GAC1B,cAAc,iBAAiB,KAAA;EACjC;CACF;CAEA,oBAA4B,SAAgC;EAC1D,MAAM,8BAA6B,IAAI,IAAI;EAC3C,MAAM,oCAAkD,IAAI,IAAI;EAChE,KAAK,MAAM,SAAS,SAAS;GAC3B,MAAM,EAAE,QAAQ,eAAe,mBAAmB;GAClD,IAAI,EAAE,kBAAkB,cAAc;IACpC,QAAQ,MACN,yEACA,KACF;IACA;GACF;GACA,MAAM,OAAO,KAAK,cAAc,IAAI,MAAM;GAC1C,IAAI,QAAQ,MAAM;IAChB,QAAQ,MACN,gEACA,KACF;IACA;GACF;GACA,IAAI,KAAK,SAAS,eAAe;IAC/B,MAAM,gBAAgB;KACpB,IAAI,WAAW,KAAK,QAAQ,OAC1B,OAAO,KAAK;KAEd,IAAI,WAAW,KAAK,QAAQ,OAC1B,OAAO,KAAK;IAGhB,EAAA,CAAG;IAEH,IAAI,UAAU,MAAM;KAClB,QAAQ,MACN,iEACA;MAAE;MAAM;KAAO,CACjB;KACA;IACF;IAEA,OAAO,cAAc,cAAc,EAAE,CAAC;IACtC,kBAAkB,IAAI,IAAI;GAC5B,OAAO,IAAI,KAAK,SAAS,QAAQ;IAC/B,MAAM,SAAS,YAAY,IAAI,IAAI,KAAK,CAAC;IACzC,MAAM,aAAa,eAAe,EAAE,CAAC;IACrC,IAAI,WAAW,KAAK,aAClB,OAAO,iBAAiB;SACnB,IAAI,WAAW,KAAK,eACzB,OAAO,mBAAmB;IAE5B,YAAY,IAAI,MAAM,MAAM;GAC9B;EACF;EACA,KAAK,uBAAuB,iBAAiB;EAC7C,kBAAkB,MAAM;EACxB,KAAK,mBAAmB,WAAW;EACnC,YAAY,MAAM;CACpB;CAEA,uBACE,mBACA;EACA,KAAK,MAAM,QAAQ,mBACjB,KAAK,eACH,MACA,KAAK,IAAI,KAAK,QAAQ,aAAa,KAAK,QAAQ,WAAW,CAC7D;CAEJ;CAEA,sBAA8B,kBAAiC;EAC7D,KAAK,MAAM,CAAC,MAAM,WAAW,eAAe;GAC1C,MAAM,gBACJ,OAAO,kBAAkB,OACrB,iBAAiB,OAAO,cAAc,IACtC,KAAK;GACX,MAAM,kBACJ,OAAO,oBAAoB,OACvB,mBAAmB,OAAO,gBAAgB,IAC1C,KAAK;GACX,MAAM,mBAAmB,kBAAkB,KAAK;GAChD,MAAM,qBAAqB,oBAAoB,KAAK;GAEpD,IAAI,CAAC,oBAAoB,CAAC,oBACxB;GAGF,KAAK,YAAY;GACjB,KAAK,cAAc;GAEnB,IAAI,kBACF,KAAK,YAAY,MAAM,YACrB,wBACA,GAAG,OAAO,kBAAkB,WAAW,GAAG,cAAc,MAAM,QAChE;GAGF,IAAI,oBACF,KAAK,YAAY,MAAM,YACrB,+BACA,GAAG,oBAAoB,IAAI,SAAS,GAAG,gBAAgB,KACzD;GAGF,IACE,oBACC,sBAAsB,kBAAkB,QACzC;IACA,MAAM,cACJ,OAAO,kBAAkB,WACrB,KAAK,IAAI,gBAAgB,iBAAiB,CAAC,IAC3C;IACN,KAAK,YAAY,MAAM,YACrB,gCACA,GAAG,cAAc,IAAI,GAAG,YAAY,MAAM,QAC5C;GACF;EACF;CACF;CAEA,eAAuB,MAA+B,WAAmB;EACvE,IAAI,cAAc,KAAK,eAAe;GACpC,KAAK,gBAAgB,KAAK,IAAI,WAAW,CAAC;GAC1C,KAAK,QAAQ,UAAU,MAAM,YAC3B,iCACA,GAAG,KAAK,cAAc,GACxB;GACA,KAAK,QAAQ,UAAU,MAAM,YAC3B,iCACA,GAAG,KAAK,cAAc,GACxB;EACF;CACF;AACF;AAEA,SAAS,iBAAiB,YAAqC;CAC7D,MAAM,QAAQ,KAAK,IAAI,KAAK,MAAM,UAAU,GAAG,CAAC;CAChD,OAAO,UAAU,IAAI,SAAS;AAChC;AAEA,SAAS,mBAAmB,YAA4B;CACtD,OAAO,KAAK,IAAI,KAAK,KAAK,UAAU,GAAG,CAAC;AAC1C;AAEA,SAAS,qBAAqB,MAA+B;CAC3D,IAAI,KAAK,YAAY,aAAa;EAChC,KAAK,YAAY,MAAM,eAAe,8BAA8B;EACpE,KAAK,YAAY,MAAM,eAAe,6BAA6B;EACnE,KAAK,YAAY,MAAM,eAAe,sBAAsB;CAC9D;AACF;AAEA,SAAS,2BAA2B,MAAqC;CACvE,IAAI,KAAK,QAAQ,UAAU,aACzB,KAAK,QAAQ,UAAU,MAAM,eAC3B,+BACF;CAEF,IAAI,KAAK,QAAQ,UAAU,aACzB,KAAK,QAAQ,UAAU,MAAM,eAC3B,+BACF;AAEJ"}
|
|
1
|
+
{"version":3,"file":"ResizeManager.js","names":[],"sources":["../../src/managers/ResizeManager.ts"],"sourcesContent":["import type { ObservedAnnotationNodes, ObservedGridNodes } from '../types';\n\ninterface CodeColumnUpdate {\n codeInlineSize?: number;\n numberInlineSize?: number;\n measuredNumberInlineSize?: number;\n}\n\ninterface CodeColumnVariableChanges {\n codeWidthChanged: boolean;\n numberWidthChanged: boolean;\n}\n\ntype CodeUpdateMap = Map<ObservedGridNodes, CodeColumnUpdate>;\n\nexport type ResizeManagerColumnVariableMode = 'apply' | 'measure';\n\nexport interface ResizeManagerSetupOptions {\n disableAnnotations: boolean;\n columnVariables?: ResizeManagerColumnVariableMode;\n}\n\ninterface AnnotationSetup {\n child1: HTMLElement;\n child2: HTMLElement;\n item: ObservedAnnotationNodes;\n newHeight: number;\n}\n\nexport class ResizeManager {\n // Shared static resizeObserver that all ResizeManagers use\n private static resizeObserver: ResizeObserver | undefined;\n private static managersByElement = new Map<Element, ResizeManager>();\n\n private static getResizeObserver(): ResizeObserver {\n const resizeObserver =\n ResizeManager.resizeObserver ??\n new ResizeObserver(ResizeManager.handleSharedResizeEntries);\n ResizeManager.resizeObserver = resizeObserver;\n return resizeObserver;\n }\n\n private static handleSharedResizeEntries(entries: ResizeObserverEntry[]) {\n // First we need to batch all elements by manager, so callbacks are\n // properly aligned with a per-instance ResizeManager\n const entriesByManager = new Map<ResizeManager, ResizeObserverEntry[]>();\n for (const entry of entries) {\n const manager = ResizeManager.managersByElement.get(entry.target);\n if (manager == null) {\n continue;\n }\n const managerEntries = entriesByManager.get(manager);\n if (managerEntries == null) {\n entriesByManager.set(manager, [entry]);\n } else {\n managerEntries.push(entry);\n }\n }\n\n for (const [manager, managerEntries] of entriesByManager) {\n manager.handleResizeEntries(managerEntries);\n }\n }\n\n private observedNodes = new Map<\n HTMLElement,\n ObservedAnnotationNodes | ObservedGridNodes\n >();\n\n setup(\n pre: HTMLPreElement,\n { disableAnnotations, columnVariables = 'apply' }: ResizeManagerSetupOptions\n ): void {\n const annotationUpdates = new Set<AnnotationSetup>();\n const applyColumnVariables = columnVariables === 'apply';\n let columnCount = 0;\n const observedNodes = new Map(this.observedNodes);\n this.observedNodes.clear();\n\n for (const element of pre.children) {\n if (columnCount === 2) {\n break;\n }\n const codeElement: HTMLElement | undefined = (() => {\n if (element instanceof HTMLElement && element.tagName === 'CODE') {\n return element;\n }\n return undefined;\n })();\n if (codeElement == null) {\n continue;\n }\n columnCount++;\n let item: ObservedGridNodes | ObservedAnnotationNodes | undefined =\n observedNodes.get(codeElement);\n if (item != null && item.type !== 'code') {\n throw new Error(\n 'ResizeManager.setup: somehow a code node is being used for an annotation, should be impossible'\n );\n }\n\n let numberElement = codeElement.firstElementChild;\n if (!(numberElement instanceof HTMLElement)) {\n numberElement = null;\n }\n if (item != null) {\n this.observedNodes.set(codeElement, item);\n observedNodes.delete(codeElement);\n if (item.numberElement !== numberElement) {\n if (item.numberElement != null) {\n this.unobserve(item.numberElement);\n observedNodes.delete(item.numberElement);\n }\n if (numberElement != null) {\n this.observe(numberElement);\n observedNodes.delete(numberElement);\n this.observedNodes.set(numberElement, item);\n }\n item.numberElement = numberElement;\n item.numberWidth = 0;\n } else if (item.numberElement != null) {\n observedNodes.delete(item.numberElement);\n this.observedNodes.set(item.numberElement, item);\n // If there is a resize, let the resize handler handle it...\n } else {\n item.numberWidth = 0;\n }\n syncColumnVariableMode(item, applyColumnVariables);\n } else {\n item = {\n type: 'code',\n codeElement,\n numberElement,\n codeWidth: 'auto',\n numberWidth: 0,\n applyColumnVariables,\n };\n this.observedNodes.set(codeElement, item);\n this.observe(codeElement);\n if (numberElement != null) {\n this.observedNodes.set(numberElement, item);\n this.observe(numberElement);\n }\n }\n }\n\n if (columnCount > 1 && !disableAnnotations) {\n const annotationElements = pre.querySelectorAll(\n '[data-line-annotation*=\",\"]'\n );\n\n const elementMap = new Map<string, HTMLElement[]>();\n // Iterate through all the matched elements and organize them into pairs\n // based on the data-line-annotation attribute\n for (const element of annotationElements) {\n if (!(element instanceof HTMLElement)) {\n continue;\n }\n const lineAnnotation =\n element.getAttribute('data-line-annotation') ?? '';\n if (!/^-?\\d+,-?\\d+$/.test(lineAnnotation)) {\n console.error(\n 'DiffFileRenderer.setupResizeObserver: Invalid element or annotation',\n { lineAnnotation, element }\n );\n continue;\n }\n let pairs = elementMap.get(lineAnnotation);\n if (pairs == null) {\n pairs = [];\n elementMap.set(lineAnnotation, pairs);\n }\n pairs.push(element);\n }\n\n for (const [key, pair] of elementMap) {\n if (pair.length !== 2) {\n console.error(\n 'DiffFileRenderer.setupResizeObserver: Bad Pair',\n key,\n pair\n );\n continue;\n }\n const [container1, container2] = pair;\n const child1 = container1.firstElementChild;\n const child2 = container2.firstElementChild;\n if (\n !(container1 instanceof HTMLElement) ||\n !(container2 instanceof HTMLElement) ||\n !(child1 instanceof HTMLElement) ||\n !(child2 instanceof HTMLElement)\n ) {\n continue;\n }\n\n let item = observedNodes.get(child1);\n\n if (item != null) {\n this.observedNodes.set(child1, item);\n this.observedNodes.set(child2, item);\n observedNodes.delete(child1);\n observedNodes.delete(child2);\n continue;\n }\n\n const child1Height = child1.getBoundingClientRect().height;\n const child2Height = child2.getBoundingClientRect().height;\n item = {\n type: 'annotations',\n column1: {\n container: container1,\n child: child1,\n childHeight: child1Height,\n },\n column2: {\n container: container2,\n child: child2,\n childHeight: child2Height,\n },\n currentHeight: 'auto',\n };\n annotationUpdates.add({\n child1,\n child2,\n item,\n newHeight: Math.max(child1Height, child2Height),\n });\n }\n\n // Measure all annotation heights first, then apply the paired min-height\n // styles after the read phase so setup does not bounce between layout\n // reads and writes for every annotation pair.\n for (const pendingUpdate of annotationUpdates) {\n this.applyNewHeight(pendingUpdate.item, pendingUpdate.newHeight);\n this.observedNodes.set(pendingUpdate.child1, pendingUpdate.item);\n this.observedNodes.set(pendingUpdate.child2, pendingUpdate.item);\n this.observe(pendingUpdate.child1);\n this.observe(pendingUpdate.child2);\n }\n annotationUpdates.clear();\n }\n\n // Cleanup any old nodes that might still be observed\n for (const [element, item] of observedNodes) {\n this.unobserve(element);\n if (item.type === 'code') {\n cleanupStaleCodeItem(item);\n } else {\n cleanupStaleAnnotationItem(item);\n }\n }\n observedNodes.clear();\n }\n\n cleanUp(): void {\n for (const element of this.observedNodes.keys()) {\n this.unobserve(element);\n }\n this.observedNodes.clear();\n }\n\n private observe(element: HTMLElement): void {\n const { managersByElement } = ResizeManager;\n const owner = managersByElement.get(element);\n // Already registered\n if (owner === this) {\n return;\n }\n // If we've already somehow registered with another manager, we in for a\n // world of pain, so complain loudly\n else if (owner != null && owner !== this) {\n throw new Error(\n 'ResizeManager.observe: element is already owned by another ResizeManager'\n );\n }\n managersByElement.set(element, this);\n ResizeManager.getResizeObserver().observe(element);\n }\n\n private unobserve(element: HTMLElement): void {\n const { managersByElement, resizeObserver } = ResizeManager;\n const owner = managersByElement.get(element);\n if (owner == null) {\n return;\n } else if (owner !== this) {\n throw new Error(\n 'ResizeManager.unobserve: element is owned by another ResizeManager'\n );\n }\n\n managersByElement.delete(element);\n resizeObserver?.unobserve(element);\n if (resizeObserver != null && managersByElement.size === 0) {\n resizeObserver.disconnect();\n ResizeManager.resizeObserver = undefined;\n }\n }\n\n private handleResizeEntries(entries: ResizeObserverEntry[]) {\n const codeUpdates: CodeUpdateMap = new Map();\n const annotationUpdates: Set<ObservedAnnotationNodes> = new Set();\n for (const entry of entries) {\n const { target, borderBoxSize, contentBoxSize } = entry;\n if (!(target instanceof HTMLElement)) {\n console.error(\n 'ResizeManager.handleResizeEntries: Invalid element for ResizeObserver',\n entry\n );\n continue;\n }\n const item = this.observedNodes.get(target);\n if (item == null) {\n console.error(\n 'ResizeManager.handleResizeEntries: Not a valid observed node',\n entry\n );\n continue;\n }\n if (item.type === 'annotations') {\n const column = (() => {\n if (target === item.column1.child) {\n return item.column1;\n }\n if (target === item.column2.child) {\n return item.column2;\n }\n return undefined;\n })();\n\n if (column == null) {\n console.error(\n `ResizeManager.handleResizeEntries: Couldn't find a column for`,\n { item, target }\n );\n continue;\n }\n\n column.childHeight = borderBoxSize[0].blockSize;\n annotationUpdates.add(item);\n } else if (item.type === 'code') {\n const update = codeUpdates.get(item) ?? {};\n const inlineSize = contentBoxSize[0].inlineSize;\n if (target === item.codeElement) {\n update.codeInlineSize = inlineSize;\n } else if (target === item.numberElement) {\n update.numberInlineSize = inlineSize;\n }\n codeUpdates.set(item, update);\n }\n }\n this.applyAnnotationUpdates(annotationUpdates);\n annotationUpdates.clear();\n this.applyColumnUpdates(codeUpdates);\n codeUpdates.clear();\n }\n\n private applyAnnotationUpdates(\n annotationUpdates: Set<ObservedAnnotationNodes>\n ) {\n for (const item of annotationUpdates) {\n this.applyNewHeight(\n item,\n Math.max(item.column1.childHeight, item.column2.childHeight)\n );\n }\n }\n\n private applyColumnUpdates = (queuedUpdates: CodeUpdateMap) => {\n for (const [item, update] of queuedUpdates) {\n const nextCodeWidth =\n update.codeInlineSize != null\n ? resolveCodeWidth(update.codeInlineSize)\n : item.codeWidth;\n const nextNumberWidth =\n update.numberInlineSize != null\n ? resolveNumberWidth(update.numberInlineSize)\n : item.numberWidth;\n const codeWidthChanged = nextCodeWidth !== item.codeWidth;\n const numberWidthChanged = nextNumberWidth !== item.numberWidth;\n\n if (!codeWidthChanged && !numberWidthChanged) {\n continue;\n }\n\n item.codeWidth = nextCodeWidth;\n item.numberWidth = nextNumberWidth;\n\n if (item.applyColumnVariables) {\n applyCodeColumnVariables(item, {\n codeWidthChanged,\n numberWidthChanged,\n });\n }\n }\n };\n\n private applyNewHeight(item: ObservedAnnotationNodes, newHeight: number) {\n if (newHeight !== item.currentHeight) {\n item.currentHeight = Math.max(newHeight, 0);\n item.column1.container.style.setProperty(\n '--diffs-annotation-min-height',\n `${item.currentHeight}px`\n );\n item.column2.container.style.setProperty(\n '--diffs-annotation-min-height',\n `${item.currentHeight}px`\n );\n }\n }\n}\n\nfunction resolveCodeWidth(inlineSize: number): number | 'auto' {\n const width = Math.max(Math.floor(inlineSize), 0);\n return width === 0 ? 'auto' : width;\n}\n\nfunction resolveNumberWidth(inlineSize: number): number {\n return Math.max(Math.ceil(inlineSize), 0);\n}\n\nfunction syncColumnVariableMode(\n item: ObservedGridNodes,\n applyColumnVariables: boolean\n): void {\n if (item.applyColumnVariables === applyColumnVariables) {\n return;\n }\n\n item.applyColumnVariables = applyColumnVariables;\n if (applyColumnVariables) {\n applyCodeColumnVariables(item, {\n codeWidthChanged: true,\n numberWidthChanged: true,\n });\n } else {\n removeCodeColumnVariables(item);\n }\n}\n\nfunction applyCodeColumnVariables(\n item: ObservedGridNodes,\n { codeWidthChanged, numberWidthChanged }: CodeColumnVariableChanges\n): void {\n const { codeElement, codeWidth, numberWidth } = item;\n if (codeWidthChanged) {\n codeElement.style.setProperty(\n '--diffs-column-width',\n `${typeof codeWidth === 'number' ? `${codeWidth}px` : 'auto'}`\n );\n }\n\n if (numberWidthChanged) {\n codeElement.style.setProperty(\n '--diffs-column-number-width',\n `${numberWidth === 0 ? 'auto' : `${numberWidth}px`}`\n );\n }\n\n if (codeWidthChanged || (numberWidthChanged && codeWidth !== 'auto')) {\n const targetWidth =\n typeof codeWidth === 'number' ? Math.max(codeWidth - numberWidth, 0) : 0;\n codeElement.style.setProperty(\n '--diffs-column-content-width',\n `${targetWidth > 0 ? `${targetWidth}px` : 'auto'}`\n );\n }\n}\n\nfunction removeCodeColumnVariables(item: ObservedGridNodes): void {\n item.codeElement.style.removeProperty('--diffs-column-content-width');\n item.codeElement.style.removeProperty('--diffs-column-number-width');\n item.codeElement.style.removeProperty('--diffs-column-width');\n}\n\nfunction cleanupStaleCodeItem(item: ObservedGridNodes): void {\n if (item.codeElement.isConnected) {\n removeCodeColumnVariables(item);\n }\n}\n\nfunction cleanupStaleAnnotationItem(item: ObservedAnnotationNodes): void {\n if (item.column1.container.isConnected) {\n item.column1.container.style.removeProperty(\n '--diffs-annotation-min-height'\n );\n }\n if (item.column2.container.isConnected) {\n item.column2.container.style.removeProperty(\n '--diffs-annotation-min-height'\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
type Callback = (time: number) => unknown;
|
|
3
3
|
declare function queueRender(callback: Callback): void;
|
|
4
4
|
declare function dequeueRender(callback: Callback): void;
|
|
5
|
+
declare function clearRenderQueue(): void;
|
|
5
6
|
//#endregion
|
|
6
|
-
export { dequeueRender, queueRender };
|
|
7
|
+
export { clearRenderQueue, dequeueRender, queueRender };
|
|
7
8
|
//# sourceMappingURL=UniversalRenderingManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniversalRenderingManager.d.ts","names":[],"sources":["../../src/managers/UniversalRenderingManager.ts"],"mappings":";KAAK,QAAA,IAAY,IAAY;AAAA,iBAMb,WAAA,CAAY,QAAkB,EAAR,QAAQ;AAAA,iBAK9B,aAAA,CAAc,QAAkB,EAAR,QAAQ"}
|
|
1
|
+
{"version":3,"file":"UniversalRenderingManager.d.ts","names":[],"sources":["../../src/managers/UniversalRenderingManager.ts"],"mappings":";KAAK,QAAA,IAAY,IAAY;AAAA,iBAMb,WAAA,CAAY,QAAkB,EAAR,QAAQ;AAAA,iBAK9B,aAAA,CAAc,QAAkB,EAAR,QAAQ;AAAA,iBAUhC,gBAAA"}
|
|
@@ -6,12 +6,16 @@ function queueRender(callback) {
|
|
|
6
6
|
frameId ??= requestAnimationFrame(render);
|
|
7
7
|
}
|
|
8
8
|
function dequeueRender(callback) {
|
|
9
|
-
callbacks.delete(callback)
|
|
10
|
-
if (callbacks.size === 0 && frameId != null) {
|
|
9
|
+
if (callbacks.delete(callback) && callbacks.size === 0 && frameId != null) {
|
|
11
10
|
cancelAnimationFrame(frameId);
|
|
12
11
|
frameId = null;
|
|
13
12
|
}
|
|
14
13
|
}
|
|
14
|
+
function clearRenderQueue() {
|
|
15
|
+
callbacks.clear();
|
|
16
|
+
if (frameId != null && typeof cancelAnimationFrame === "function") cancelAnimationFrame(frameId);
|
|
17
|
+
frameId = null;
|
|
18
|
+
}
|
|
15
19
|
function render(time) {
|
|
16
20
|
const toIterate = new Set(callbacks);
|
|
17
21
|
callbacks.clear();
|
|
@@ -24,6 +28,6 @@ function render(time) {
|
|
|
24
28
|
else frameId = null;
|
|
25
29
|
}
|
|
26
30
|
//#endregion
|
|
27
|
-
export { dequeueRender, queueRender };
|
|
31
|
+
export { clearRenderQueue, dequeueRender, queueRender };
|
|
28
32
|
|
|
29
33
|
//# sourceMappingURL=UniversalRenderingManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniversalRenderingManager.js","names":[],"sources":["../../src/managers/UniversalRenderingManager.ts"],"sourcesContent":["type Callback = (time: number) => unknown;\n\nconst callbacks = new Set<Callback>();\nlet frameId: null | number = null;\n\n// TODO(amadeus): Figure out a proper name for this module...\nexport function queueRender(callback: Callback): void {\n callbacks.add(callback);\n frameId ??= requestAnimationFrame(render);\n}\n\nexport function dequeueRender(callback: Callback): void {\n callbacks.delete(callback)
|
|
1
|
+
{"version":3,"file":"UniversalRenderingManager.js","names":[],"sources":["../../src/managers/UniversalRenderingManager.ts"],"sourcesContent":["type Callback = (time: number) => unknown;\n\nconst callbacks = new Set<Callback>();\nlet frameId: null | number = null;\n\n// TODO(amadeus): Figure out a proper name for this module...\nexport function queueRender(callback: Callback): void {\n callbacks.add(callback);\n frameId ??= requestAnimationFrame(render);\n}\n\nexport function dequeueRender(callback: Callback): void {\n if (callbacks.delete(callback) && callbacks.size === 0 && frameId != null) {\n cancelAnimationFrame(frameId);\n frameId = null;\n }\n}\n\n// Drops every queued callback and cancels the pending frame. The guard\n// matters in test teardown, where the harness may have already removed the\n// requestAnimationFrame globals.\nexport function clearRenderQueue(): void {\n callbacks.clear();\n if (frameId != null && typeof cancelAnimationFrame === 'function') {\n cancelAnimationFrame(frameId);\n }\n frameId = null;\n}\n\nfunction render(time: number): void {\n const toIterate = new Set(callbacks);\n callbacks.clear();\n for (const callback of toIterate) {\n try {\n callback(time);\n } catch (error) {\n console.error(error);\n }\n }\n // If render picked up any new callbacks, lets trigger a new\n // requestAnimationFrame\n if (callbacks.size > 0) {\n frameId = requestAnimationFrame(render);\n } else {\n frameId = null;\n }\n}\n"],"mappings":";AAEA,MAAM,4BAAY,IAAI,IAAc;AACpC,IAAI,UAAyB;AAG7B,SAAgB,YAAY,UAA0B;CACpD,UAAU,IAAI,QAAQ;CACtB,YAAY,sBAAsB,MAAM;AAC1C;AAEA,SAAgB,cAAc,UAA0B;CACtD,IAAI,UAAU,OAAO,QAAQ,KAAK,UAAU,SAAS,KAAK,WAAW,MAAM;EACzE,qBAAqB,OAAO;EAC5B,UAAU;CACZ;AACF;AAKA,SAAgB,mBAAyB;CACvC,UAAU,MAAM;CAChB,IAAI,WAAW,QAAQ,OAAO,yBAAyB,YACrD,qBAAqB,OAAO;CAE9B,UAAU;AACZ;AAEA,SAAS,OAAO,MAAoB;CAClC,MAAM,YAAY,IAAI,IAAI,SAAS;CACnC,UAAU,MAAM;CAChB,KAAK,MAAM,YAAY,WACrB,IAAI;EACF,SAAS,IAAI;CACf,SAAS,OAAO;EACd,QAAQ,MAAM,KAAK;CACrB;CAIF,IAAI,UAAU,OAAO,GACnB,UAAU,sBAAsB,MAAM;MAEtC,UAAU;AAEd"}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
import { CodeViewItem, CodeViewScrollTarget, DiffLineAnnotation, LineAnnotation } from "../types.js";
|
|
1
|
+
import { CodeViewItem, CodeViewScrollTarget, DiffLineAnnotation, DiffsEditor, FileContents, LineAnnotation } from "../types.js";
|
|
2
2
|
import { GetHoveredLineResult } from "../managers/InteractionManager.js";
|
|
3
3
|
import { CodeView as CodeView$1, CodeViewLineSelection, CodeViewOptions } from "../components/CodeView.js";
|
|
4
|
+
import { EditorOptions } from "../editor/editor.js";
|
|
4
5
|
import { CSSProperties, ReactNode, Ref } from "react";
|
|
5
6
|
|
|
6
7
|
//#region src/react/CodeView.d.ts
|
|
7
8
|
type CodeViewGutterUtilityGetter = (() => GetHoveredLineResult<'file'> | undefined) | (() => GetHoveredLineResult<'diff'> | undefined);
|
|
9
|
+
type CodeViewReactOptions<LAnnotation = undefined> = Omit<CodeViewOptions<LAnnotation>, 'controlledSelection' | 'createEditor' | 'onSelectedLinesChange'>;
|
|
8
10
|
interface CodeViewBaseProps<LAnnotation> {
|
|
9
|
-
options?:
|
|
11
|
+
options?: CodeViewReactOptions<LAnnotation>;
|
|
12
|
+
/**
|
|
13
|
+
* Creation-time options passed to the nearest EditProvider factory.
|
|
14
|
+
* CodeView supplies its item-specific change callback.
|
|
15
|
+
*/
|
|
16
|
+
editorOptions?: Omit<EditorOptions<LAnnotation>, 'onChange'>;
|
|
10
17
|
className?: string;
|
|
11
18
|
style?: CSSProperties;
|
|
12
19
|
containerRef?: Ref<HTMLDivElement>;
|
|
@@ -14,8 +21,25 @@ interface CodeViewBaseProps<LAnnotation> {
|
|
|
14
21
|
selectedLines?: CodeViewLineSelection | null;
|
|
15
22
|
onSelectedLinesChange?(selection: CodeViewLineSelection | null): void;
|
|
16
23
|
onScroll?(scrollTop: number, viewer: CodeView$1<LAnnotation>): void;
|
|
24
|
+
/** Render a non-virtualized node at the very start of the scroll content,
|
|
25
|
+
* before the first item. Always rendered; scrolls with the content. */
|
|
26
|
+
renderCodeViewHeader?(): ReactNode;
|
|
27
|
+
/** Render a non-virtualized node at the very end of the scroll content, after
|
|
28
|
+
* the last item. Always rendered; scrolls with the content. */
|
|
29
|
+
renderCodeViewFooter?(): ReactNode;
|
|
30
|
+
/** Called with the owning item on every edited-document change. */
|
|
31
|
+
onItemEditChange?(item: CodeViewItem<LAnnotation>, file: FileContents, lineAnnotations?: LineAnnotation<LAnnotation>[] | DiffLineAnnotation<LAnnotation>[]): void;
|
|
32
|
+
/**
|
|
33
|
+
* Called once with the final contents when an item's edit session ends
|
|
34
|
+
* (edit turned off, item removed or collapsed). Not called for sessions
|
|
35
|
+
* that produced no changes. Committing is user-space: make one combined
|
|
36
|
+
* item write carrying the new file/fileDiff (with a fresh `cacheKey`,
|
|
37
|
+
* since the contents changed) along with `edit: false`.
|
|
38
|
+
*/
|
|
39
|
+
onItemEditComplete?(item: CodeViewItem<LAnnotation>, file: FileContents, lineAnnotations?: LineAnnotation<LAnnotation>[] | DiffLineAnnotation<LAnnotation>[]): void;
|
|
17
40
|
renderCustomHeader?(item: CodeViewItem<LAnnotation>): ReactNode;
|
|
18
41
|
renderHeaderPrefix?(item: CodeViewItem<LAnnotation>): ReactNode;
|
|
42
|
+
renderHeaderFilenameSuffix?(item: CodeViewItem<LAnnotation>): ReactNode;
|
|
19
43
|
renderHeaderMetadata?(item: CodeViewItem<LAnnotation>): ReactNode;
|
|
20
44
|
renderAnnotation?(annotation: LineAnnotation<LAnnotation> | DiffLineAnnotation<LAnnotation>, item: CodeViewItem<LAnnotation>): ReactNode;
|
|
21
45
|
renderGutterUtility?(getHoveredLine: CodeViewGutterUtilityGetter, item: CodeViewItem<LAnnotation>): ReactNode;
|
|
@@ -32,12 +56,14 @@ type CodeViewProps<LAnnotation = undefined> = ControlledCodeViewProps<LAnnotatio
|
|
|
32
56
|
interface CodeViewHandle<LAnnotation> {
|
|
33
57
|
addItems(items: readonly CodeViewItem<LAnnotation>[]): void;
|
|
34
58
|
getItem(id: string): CodeViewItem<LAnnotation> | undefined;
|
|
59
|
+
removeItem(id: string): boolean;
|
|
35
60
|
updateItem(item: CodeViewItem<LAnnotation>): boolean;
|
|
36
61
|
updateItemId(oldId: string, newId: string): boolean;
|
|
37
62
|
scrollTo(target: CodeViewScrollTarget): void;
|
|
38
63
|
setSelectedLines(selection: CodeViewLineSelection | null): void;
|
|
39
64
|
getSelectedLines(): CodeViewLineSelection | null;
|
|
40
65
|
clearSelectedLines(): void;
|
|
66
|
+
getEditor(id: string): DiffsEditor<LAnnotation> | undefined;
|
|
41
67
|
getInstance(): CodeView$1<LAnnotation> | undefined;
|
|
42
68
|
}
|
|
43
69
|
type CodeViewComponent = <LAnnotation = undefined>(props: CodeViewProps<LAnnotation> & {
|
|
@@ -45,5 +71,5 @@ type CodeViewComponent = <LAnnotation = undefined>(props: CodeViewProps<LAnnotat
|
|
|
45
71
|
}) => React.JSX.Element;
|
|
46
72
|
declare const CodeView: CodeViewComponent;
|
|
47
73
|
//#endregion
|
|
48
|
-
export { CodeView, CodeViewHandle, CodeViewProps, ControlledCodeViewProps, UncontrolledCodeViewProps };
|
|
74
|
+
export { CodeView, CodeViewHandle, CodeViewProps, CodeViewReactOptions, ControlledCodeViewProps, UncontrolledCodeViewProps };
|
|
49
75
|
//# sourceMappingURL=CodeView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeView.d.ts","names":[],"sources":["../../src/react/CodeView.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CodeView.d.ts","names":[],"sources":["../../src/react/CodeView.tsx"],"mappings":";;;;;;;KA+CK,2BAAA,UACM,oBAAA,+BACA,oBAAoB;AAAA,KAEnB,oBAAA,4BAAgD,IAAA,CAC1D,eAAA,CAAgB,WAAA;AAAA,UAIR,iBAAA;EACR,OAAA,GAAU,oBAAA,CAAqB,WAAA;;;AArBf;;EA0BhB,aAAA,GAAgB,IAAA,CAAK,aAAA,CAAc,WAAA;EACnC,SAAA;EACA,KAAA,GAAQ,aAAA;EACR,YAAA,GAAe,GAAA,CAAI,cAAA;EACnB,iBAAA;EACA,aAAA,GAAgB,qBAAA;EAChB,qBAAA,EAAuB,SAAA,EAAW,qBAAA;EAClC,QAAA,EAAU,SAAA,UAAmB,MAAA,EAAQ,UAAA,CAAc,WAAA;EAlBO;;EAqB1D,oBAAA,KAAyB,SAAA;EArBM;;EAwB/B,oBAAA,KAAyB,SAAA;EAvBT;EAyBhB,gBAAA,EACE,IAAA,EAAM,YAAA,CAAa,WAAA,GACnB,IAAA,EAAM,YAAA,EACN,eAAA,GACI,cAAA,CAAe,WAAA,MACf,kBAAA,CAAmB,WAAA;EA9BE;AAE3B;;;;;;EAqCA,kBAAA,EACE,IAAA,EAAM,YAAA,CAAa,WAAA,GACnB,IAAA,EAAM,YAAA,EACN,eAAA,GACI,cAAA,CAAe,WAAA,MACf,kBAAA,CAAmB,WAAA;EAEzB,kBAAA,EAAoB,IAAA,EAAM,YAAA,CAAa,WAAA,IAAe,SAAA;EACtD,kBAAA,EAAoB,IAAA,EAAM,YAAA,CAAa,WAAA,IAAe,SAAA;EACtD,0BAAA,EAA4B,IAAA,EAAM,YAAA,CAAa,WAAA,IAAe,SAAA;EAC9D,oBAAA,EAAsB,IAAA,EAAM,YAAA,CAAa,WAAA,IAAe,SAAA;EACxD,gBAAA,EACE,UAAA,EAAY,cAAA,CAAe,WAAA,IAAe,kBAAA,CAAmB,WAAA,GAC7D,IAAA,EAAM,YAAA,CAAa,WAAA,IAClB,SAAA;EACH,mBAAA,EACE,cAAA,EAAgB,2BAAA,EAChB,IAAA,EAAM,YAAA,CAAa,WAAA,IAClB,SAAA;AAAA;AAAA,UAGY,uBAAA,sBAEP,iBAAA,CAAkB,WAAA;EAC1B,KAAA,WAAgB,YAAA,CAAa,WAAA;EAC7B,YAAA;AAAA;AAAA,UAGe,yBAAA,sBAEP,iBAAA,CAAkB,WAAA;EAG1B,YAAA,YAAwB,YAAA,CAAa,WAAA;EACrC,KAAA;AAAA;AAAA,KAGU,aAAA,4BACR,uBAAA,CAAwB,WAAA,IACxB,yBAAA,CAA0B,WAAA;AAAA,UAEb,cAAA;EACf,QAAA,CAAS,KAAA,WAAgB,YAAA,CAAa,WAAA;EACtC,OAAA,CAAQ,EAAA,WAAa,YAAA,CAAa,WAAA;EAClC,UAAA,CAAW,EAAA;EACX,UAAA,CAAW,IAAA,EAAM,YAAA,CAAa,WAAA;EAC9B,YAAA,CAAa,KAAA,UAAe,KAAA;EAC5B,QAAA,CAAS,MAAA,EAAQ,oBAAA;EACjB,gBAAA,CAAiB,SAAA,EAAW,qBAAA;EAC5B,gBAAA,IAAoB,qBAAA;EACpB,kBAAA;EACA,SAAA,CAAU,EAAA,WAAa,WAAA,CAAY,WAAA;EACnC,WAAA,IAAe,UAAA,CAAc,WAAA;AAAA;AAAA,KAG1B,iBAAA,6BACH,KAAA,EAAO,aAAA,CAAc,WAAA;EACnB,GAAA,GAAM,KAAA,CAAM,GAAA,CAAI,cAAA,CAAe,WAAA;AAAA,MAE9B,KAAA,CAAM,GAAA,CAAI,OAAA;AAAA,cAueF,QAAA,EAAwC,iBAAiB"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { areManagedSnapshotsEqual } from "../utils/areManagedSnapshotsEqual.js";
|
|
2
3
|
import { areOptionsEqual } from "../utils/areOptionsEqual.js";
|
|
3
4
|
import { CodeView as CodeView$1 } from "../components/CodeView.js";
|
|
4
|
-
import {
|
|
5
|
+
import { useStableCallback } from "./utils/useStableCallback.js";
|
|
6
|
+
import { useCreateEditor } from "./EditContext.js";
|
|
5
7
|
import { renderDiffChildren } from "./utils/renderDiffChildren.js";
|
|
6
8
|
import { renderFileChildren } from "./utils/renderFileChildren.js";
|
|
7
|
-
import { useStableCallback } from "./utils/useStableCallback.js";
|
|
8
9
|
import { WorkerPoolContext } from "./WorkerPoolContext.js";
|
|
9
10
|
import { forwardRef, memo, useContext, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
10
11
|
import { createPortal, flushSync } from "react-dom";
|
|
11
12
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
12
13
|
//#region src/react/CodeView.tsx
|
|
13
|
-
const
|
|
14
|
+
const useIsomorphicLayoutEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
|
|
14
15
|
function createDefaultCache(controlled) {
|
|
15
16
|
return {
|
|
16
17
|
instance: void 0,
|
|
@@ -22,32 +23,63 @@ function createDefaultCache(controlled) {
|
|
|
22
23
|
};
|
|
23
24
|
}
|
|
24
25
|
function CodeViewInner(props, ref) {
|
|
25
|
-
const { className, containerRef, disableWorkerPool = false, initialItems, items: controlledItems, onScroll, onSelectedLinesChange, options, renderAnnotation, renderCustomHeader, renderGutterUtility, renderHeaderMetadata, renderHeaderPrefix, selectedLines, style } = props;
|
|
26
|
+
const { className, containerRef, disableWorkerPool = false, editorOptions, initialItems, items: controlledItems, onItemEditChange, onItemEditComplete, onScroll, onSelectedLinesChange, options, renderAnnotation, renderCodeViewFooter, renderCodeViewHeader, renderCustomHeader, renderGutterUtility, renderHeaderFilenameSuffix, renderHeaderMetadata, renderHeaderPrefix, selectedLines, style } = props;
|
|
26
27
|
const controlled = controlledItems !== void 0;
|
|
28
|
+
const contextCreateEditor = useCreateEditor();
|
|
27
29
|
const poolManager = useContext(WorkerPoolContext);
|
|
28
30
|
const cachedDataRef = useRef(createDefaultCache(controlled));
|
|
29
31
|
const hasCustomHeader = renderCustomHeader != null;
|
|
30
32
|
const hasAnnotationRenderer = renderAnnotation != null;
|
|
31
33
|
const hasGutterRenderer = renderGutterUtility != null;
|
|
32
|
-
const hasHeaderRenderers = hasCustomHeader || renderHeaderPrefix != null || renderHeaderMetadata != null;
|
|
34
|
+
const hasHeaderRenderers = hasCustomHeader || renderHeaderPrefix != null || renderHeaderFilenameSuffix != null || renderHeaderMetadata != null;
|
|
33
35
|
const hasRenderers = hasHeaderRenderers || hasAnnotationRenderer || hasGutterRenderer;
|
|
36
|
+
const hasCodeViewHeader = renderCodeViewHeader != null;
|
|
37
|
+
const hasCodeViewFooter = renderCodeViewFooter != null;
|
|
34
38
|
const emitSelectedLinesChange = useStableCallback((selection) => {
|
|
35
39
|
onSelectedLinesChange?.(selection);
|
|
36
40
|
});
|
|
37
41
|
const controlledSelection = selectedLines !== void 0;
|
|
42
|
+
const createEditor = useStableCallback((options) => {
|
|
43
|
+
if (contextCreateEditor == null) throw new Error("CodeView: EditContext is not attached");
|
|
44
|
+
const editor = contextCreateEditor({
|
|
45
|
+
...editorOptions,
|
|
46
|
+
...options
|
|
47
|
+
});
|
|
48
|
+
if (editor == null) throw new Error("CodeView: EditProvider.createEditor must return an editor instance");
|
|
49
|
+
return editor;
|
|
50
|
+
});
|
|
51
|
+
const emitItemEditChange = useStableCallback((item, file, lineAnnotations) => {
|
|
52
|
+
onItemEditChange?.(item, file, lineAnnotations);
|
|
53
|
+
});
|
|
54
|
+
const emitItemEditComplete = useStableCallback((item, file, lineAnnotations) => {
|
|
55
|
+
onItemEditComplete?.(item, file, lineAnnotations);
|
|
56
|
+
});
|
|
38
57
|
const managedOptions = useMemo(() => createManagedCodeViewOptions({
|
|
39
58
|
options,
|
|
40
59
|
hasCustomHeader,
|
|
41
60
|
hasGutterRenderer,
|
|
61
|
+
hasCodeViewHeader,
|
|
62
|
+
hasCodeViewFooter,
|
|
42
63
|
onSelectedLinesChange: onSelectedLinesChange != null ? emitSelectedLinesChange : void 0,
|
|
43
|
-
controlledSelection
|
|
64
|
+
controlledSelection,
|
|
65
|
+
createEditor: contextCreateEditor != null ? createEditor : void 0,
|
|
66
|
+
onItemEditChange: onItemEditChange != null ? emitItemEditChange : void 0,
|
|
67
|
+
onItemEditComplete: onItemEditComplete != null ? emitItemEditComplete : void 0
|
|
44
68
|
}), [
|
|
45
|
-
|
|
69
|
+
contextCreateEditor,
|
|
70
|
+
controlledSelection,
|
|
71
|
+
createEditor,
|
|
72
|
+
emitItemEditChange,
|
|
73
|
+
emitItemEditComplete,
|
|
74
|
+
emitSelectedLinesChange,
|
|
75
|
+
hasCodeViewFooter,
|
|
76
|
+
hasCodeViewHeader,
|
|
46
77
|
hasCustomHeader,
|
|
47
78
|
hasGutterRenderer,
|
|
79
|
+
onItemEditChange,
|
|
80
|
+
onItemEditComplete,
|
|
48
81
|
onSelectedLinesChange,
|
|
49
|
-
|
|
50
|
-
controlledSelection
|
|
82
|
+
options
|
|
51
83
|
]);
|
|
52
84
|
const [slotContentStore] = useState(() => createSlotContentStore());
|
|
53
85
|
const [, forceUpdate] = useState({});
|
|
@@ -71,7 +103,7 @@ function CodeViewInner(props, ref) {
|
|
|
71
103
|
});
|
|
72
104
|
});
|
|
73
105
|
const slotCoordinator = useMemo(() => {
|
|
74
|
-
if (!hasHeaderRenderers && !hasAnnotationRenderer && !hasGutterRenderer) return;
|
|
106
|
+
if (!hasHeaderRenderers && !hasAnnotationRenderer && !hasGutterRenderer && !hasCodeViewHeader && !hasCodeViewFooter) return;
|
|
75
107
|
else return {
|
|
76
108
|
hasHeaderRenderers,
|
|
77
109
|
hasAnnotationRenderer,
|
|
@@ -82,12 +114,14 @@ function CodeViewInner(props, ref) {
|
|
|
82
114
|
onSnapshotChange,
|
|
83
115
|
hasAnnotationRenderer,
|
|
84
116
|
hasGutterRenderer,
|
|
85
|
-
hasHeaderRenderers
|
|
117
|
+
hasHeaderRenderers,
|
|
118
|
+
hasCodeViewHeader,
|
|
119
|
+
hasCodeViewFooter
|
|
86
120
|
]);
|
|
87
|
-
|
|
121
|
+
useIsomorphicLayoutEffect(() => {
|
|
88
122
|
return onScroll != null ? cachedDataRef.current.instance?.subscribeToScroll(onScroll) : void 0;
|
|
89
123
|
});
|
|
90
|
-
|
|
124
|
+
useIsomorphicLayoutEffect(() => {
|
|
91
125
|
const { instance, controlled: prevControlled, items: prevItems, managedOptions: prevManagedOptions, slotCoordinator: prevSlotCoordinator } = cachedDataRef.current;
|
|
92
126
|
if (instance == null) return;
|
|
93
127
|
try {
|
|
@@ -148,6 +182,15 @@ function CodeViewInner(props, ref) {
|
|
|
148
182
|
return;
|
|
149
183
|
} else return instance.getItem(id);
|
|
150
184
|
},
|
|
185
|
+
removeItem(id) {
|
|
186
|
+
const { controlled, instance } = cachedDataRef.current;
|
|
187
|
+
assertUncontrolledCodeViewAction(controlled, "removeItem");
|
|
188
|
+
if (instance == null) {
|
|
189
|
+
console.error("CodeView.removeItem: no valid instance to remove item from", id);
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
return instance.removeItem(id);
|
|
193
|
+
},
|
|
151
194
|
updateItem(item) {
|
|
152
195
|
const { controlled, instance } = cachedDataRef.current;
|
|
153
196
|
assertUncontrolledCodeViewAction(controlled, "updateItem");
|
|
@@ -194,6 +237,14 @@ function CodeViewInner(props, ref) {
|
|
|
194
237
|
emitSelectedLinesChange(null);
|
|
195
238
|
}
|
|
196
239
|
},
|
|
240
|
+
getEditor(id) {
|
|
241
|
+
const { instance } = cachedDataRef.current;
|
|
242
|
+
if (instance == null) {
|
|
243
|
+
console.error("CodeView.getEditor: no valid instance exists", id);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
return instance.getEditor(id);
|
|
247
|
+
},
|
|
197
248
|
getInstance() {
|
|
198
249
|
return cachedDataRef.current.instance;
|
|
199
250
|
}
|
|
@@ -202,13 +253,16 @@ function CodeViewInner(props, ref) {
|
|
|
202
253
|
ref: nodeRef,
|
|
203
254
|
className,
|
|
204
255
|
style
|
|
205
|
-
}), hasRenderers && /* @__PURE__ */ jsx(SlotPortals, {
|
|
256
|
+
}), (hasRenderers || hasCodeViewHeader || hasCodeViewFooter) && /* @__PURE__ */ jsx(SlotPortals, {
|
|
206
257
|
managedContentStore: slotContentStore,
|
|
207
258
|
renderCustomHeader,
|
|
208
259
|
renderHeaderPrefix,
|
|
260
|
+
renderHeaderFilenameSuffix,
|
|
209
261
|
renderHeaderMetadata,
|
|
210
262
|
renderAnnotation,
|
|
211
|
-
renderGutterUtility
|
|
263
|
+
renderGutterUtility,
|
|
264
|
+
renderCodeViewHeader,
|
|
265
|
+
renderCodeViewFooter
|
|
212
266
|
})] });
|
|
213
267
|
}
|
|
214
268
|
const CodeView = forwardRef(CodeViewInner);
|
|
@@ -247,38 +301,64 @@ function createSlotContentStore() {
|
|
|
247
301
|
}
|
|
248
302
|
};
|
|
249
303
|
}
|
|
250
|
-
function createManagedCodeViewOptions({ options, hasCustomHeader, hasGutterRenderer, onSelectedLinesChange, controlledSelection }) {
|
|
251
|
-
|
|
252
|
-
options = {
|
|
304
|
+
function createManagedCodeViewOptions({ options, hasCustomHeader, hasGutterRenderer, hasCodeViewHeader, hasCodeViewFooter, onSelectedLinesChange, controlledSelection, createEditor, onItemEditChange, onItemEditComplete }) {
|
|
305
|
+
const managedOptions = {
|
|
253
306
|
...options,
|
|
254
307
|
controlledSelection,
|
|
255
|
-
onSelectedLinesChange
|
|
308
|
+
onSelectedLinesChange,
|
|
309
|
+
createEditor
|
|
256
310
|
};
|
|
257
|
-
if (
|
|
258
|
-
if (
|
|
259
|
-
|
|
311
|
+
if (onItemEditChange != null) managedOptions.onItemEditChange = onItemEditChange;
|
|
312
|
+
if (onItemEditComplete != null) managedOptions.onItemEditComplete = onItemEditComplete;
|
|
313
|
+
if (hasCustomHeader) managedOptions.renderCustomHeader = noopRender;
|
|
314
|
+
if (hasGutterRenderer) managedOptions.renderGutterUtility = noopRender;
|
|
315
|
+
if (hasCodeViewHeader) managedOptions.renderCodeViewHeader = noopRender;
|
|
316
|
+
if (hasCodeViewFooter) managedOptions.renderCodeViewFooter = noopRender;
|
|
317
|
+
return managedOptions;
|
|
260
318
|
}
|
|
261
|
-
const SlotPortals = memo(function SlotPortals({ managedContentStore, renderCustomHeader, renderHeaderPrefix, renderHeaderMetadata, renderAnnotation, renderGutterUtility }) {
|
|
319
|
+
const SlotPortals = memo(function SlotPortals({ managedContentStore, renderCustomHeader, renderHeaderPrefix, renderHeaderFilenameSuffix, renderHeaderMetadata, renderAnnotation, renderGutterUtility, renderCodeViewHeader, renderCodeViewFooter }) {
|
|
320
|
+
"use no memo";
|
|
262
321
|
const subscribe = useStableCallback((listener) => managedContentStore.subscribe(listener));
|
|
263
322
|
const getSnapshot = useStableCallback(() => managedContentStore.getSnapshot());
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
323
|
+
const snapshot = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
324
|
+
let itemKeys = "";
|
|
325
|
+
for (const item of snapshot?.items ?? []) itemKeys += `${item.id}:${item.version}:${item.type}`;
|
|
326
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
327
|
+
useMemo(() => {
|
|
328
|
+
return snapshot?.items?.map((renderedItem) => createPortal(renderCodeViewItemChildren({
|
|
329
|
+
renderedItem,
|
|
330
|
+
renderCustomHeader,
|
|
331
|
+
renderHeaderPrefix,
|
|
332
|
+
renderHeaderFilenameSuffix,
|
|
333
|
+
renderHeaderMetadata,
|
|
334
|
+
renderAnnotation,
|
|
335
|
+
renderGutterUtility
|
|
336
|
+
}), renderedItem.element, renderedItem.id));
|
|
337
|
+
}, [
|
|
267
338
|
renderCustomHeader,
|
|
268
339
|
renderHeaderPrefix,
|
|
340
|
+
renderHeaderFilenameSuffix,
|
|
269
341
|
renderHeaderMetadata,
|
|
270
342
|
renderAnnotation,
|
|
271
|
-
renderGutterUtility
|
|
272
|
-
|
|
273
|
-
|
|
343
|
+
renderGutterUtility,
|
|
344
|
+
itemKeys
|
|
345
|
+
]),
|
|
346
|
+
useMemo(() => {
|
|
347
|
+
return renderCodeViewHeader != null && snapshot?.header != null ? createPortal(renderCodeViewHeader(), snapshot.header) : null;
|
|
348
|
+
}, [renderCodeViewHeader, snapshot?.header]),
|
|
349
|
+
useMemo(() => {
|
|
350
|
+
return renderCodeViewFooter != null && snapshot?.footer != null ? createPortal(renderCodeViewFooter(), snapshot.footer) : null;
|
|
351
|
+
}, [renderCodeViewFooter, snapshot?.footer])
|
|
352
|
+
] });
|
|
274
353
|
});
|
|
275
|
-
function renderCodeViewItemChildren({ renderedItem, renderCustomHeader, renderHeaderPrefix, renderHeaderMetadata, renderAnnotation, renderGutterUtility }) {
|
|
354
|
+
function renderCodeViewItemChildren({ renderedItem, renderCustomHeader, renderHeaderPrefix, renderHeaderFilenameSuffix, renderHeaderMetadata, renderAnnotation, renderGutterUtility }) {
|
|
276
355
|
if (renderedItem.type === "diff") {
|
|
277
356
|
const { item, instance } = renderedItem;
|
|
278
357
|
return renderDiffChildren({
|
|
279
358
|
fileDiff: item.fileDiff,
|
|
280
359
|
renderCustomHeader: renderCustomHeader != null ? () => renderCustomHeader(item) : void 0,
|
|
281
360
|
renderHeaderPrefix: renderHeaderPrefix != null ? () => renderHeaderPrefix(item) : void 0,
|
|
361
|
+
renderHeaderFilenameSuffix: renderHeaderFilenameSuffix != null ? () => renderHeaderFilenameSuffix(item) : void 0,
|
|
282
362
|
renderHeaderMetadata: renderHeaderMetadata != null ? () => renderHeaderMetadata(item) : void 0,
|
|
283
363
|
renderAnnotation: renderAnnotation != null ? (annotation) => renderAnnotation(annotation, item) : void 0,
|
|
284
364
|
lineAnnotations: item.annotations,
|
|
@@ -291,6 +371,7 @@ function renderCodeViewItemChildren({ renderedItem, renderCustomHeader, renderHe
|
|
|
291
371
|
file: item.file,
|
|
292
372
|
renderCustomHeader: renderCustomHeader != null ? () => renderCustomHeader(item) : void 0,
|
|
293
373
|
renderHeaderPrefix: renderHeaderPrefix != null ? () => renderHeaderPrefix(item) : void 0,
|
|
374
|
+
renderHeaderFilenameSuffix: renderHeaderFilenameSuffix != null ? () => renderHeaderFilenameSuffix(item) : void 0,
|
|
294
375
|
renderHeaderMetadata: renderHeaderMetadata != null ? () => renderHeaderMetadata(item) : void 0,
|
|
295
376
|
renderAnnotation: renderAnnotation != null ? (annotation) => renderAnnotation(annotation, item) : void 0,
|
|
296
377
|
lineAnnotations: item.annotations,
|