Unified · Split
| @@ -7,7 +7,7 @@ import type { · 6 unmodified lines | |||
| 7 | import { isWorkspaceImagePreviewPath } from "@t3tools/shared/filePreview"; | 7 | import { isWorkspaceImagePreviewPath } from "@t3tools/shared/filePreview"; |
| 8 | import { VirtualizedFile, type SelectedLineRange } from "@pierre/diffs"; | 8 | import { VirtualizedFile, type SelectedLineRange } from "@pierre/diffs"; |
| 9 | import { Editor } from "@pierre/diffs/editor"; | 9 | import { Editor } from "@pierre/diffs/editor"; |
| 10 | import { EditorProvider, File, type FileOptions, Virtualizer } from "@pierre/diffs/react"; | 10 | import { EditProvider, File, type FileOptions, Virtualizer } from "@pierre/diffs/react"; |
| 11 | import { | 11 | import { |
| 12 | isAtomCommandInterrupted, | 12 | isAtomCommandInterrupted, |
| 13 | squashAtomCommandFailure, | 13 | squashAtomCommandFailure, |
| @@ -52,7 +52,7 @@ import { · 38 unmodified lines | |||
| 52 | } from "./fileCommentAnnotations"; | 52 | } from "./fileCommentAnnotations"; |
| 53 | import { installFileEditorDismissal } from "./fileEditorDismissal"; | 53 | import { installFileEditorDismissal } from "./fileEditorDismissal"; |
| 54 | import { LocalCommentAnnotation } from "./LocalCommentAnnotation"; | 54 | import { LocalCommentAnnotation } from "./LocalCommentAnnotation"; |
| 55 | import { projectFileCacheKey } from "./fileContentRevision"; | 55 | import { projectFileCacheKey, projectFileEditorCacheKey } from "./fileContentRevision"; |
| 56 | import { fileBreadcrumbs } from "./filePath"; | 56 | import { fileBreadcrumbs } from "./filePath"; |
| 57 | import { isMarkdownPreviewFile, setMarkdownTaskChecked } from "./filePreviewMode"; | 57 | import { isMarkdownPreviewFile, setMarkdownTaskChecked } from "./filePreviewMode"; |
| 58 | import { FileSaveCoordinator } from "./fileSaveCoordinator"; | 58 | import { FileSaveCoordinator } from "./fileSaveCoordinator"; |
| @@ -364,6 +364,8 @@ function EditableFileSurface({ · 305 unmodified lines | |||
| 364 | const editor = useMemo( | 364 | const editor = useMemo( |
| 365 | () => | 365 | () => |
| 366 | new Editor<FileCommentAnnotationGroup>({ | 366 | new Editor<FileCommentAnnotationGroup>({ |
| 367 | persistState: true, | ||
| 368 | persistStateStorage: "inMemory", | ||
| 367 | onChange: (file, nextLineAnnotations) => { | 369 | onChange: (file, nextLineAnnotations) => { |
| 368 | setProjectFileQueryData(environmentId, cwd, relativePath, file.contents); | 370 | setProjectFileQueryData(environmentId, cwd, relativePath, file.contents); |
| 369 | saveCoordinator.change(file.contents); | 371 | saveCoordinator.change(file.contents); |
| @@ -536,7 +538,7 @@ function EditableFileSurface({ · 166 unmodified lines | |||
| 536 | ); | 538 | ); |
| 537 | 539 | ||
| 538 | return ( | 540 | return ( |
| 539 | <EditorProvider editor={editor}> | 541 | <EditProvider editor={editor}> |
| 540 | <div ref={surfaceRef} className="flex min-h-0 flex-1"> | 542 | <div ref={surfaceRef} className="flex min-h-0 flex-1"> |
| 541 | <Virtualizer | 543 | <Virtualizer |
| 542 | className="file-preview-virtualizer min-h-0 flex-1 overflow-auto" | 544 | className="file-preview-virtualizer min-h-0 flex-1 overflow-auto" |
| @@ -549,7 +551,13 @@ function EditableFileSurface({ · 6 unmodified lines | |||
| 549 | file={{ | 551 | file={{ |
| 550 | name: relativePath, | 552 | name: relativePath, |
| 551 | contents, | 553 | contents, |
| 552 | cacheKey: projectFileCacheKey(cwd, relativePath, contents), | 554 | cacheKey: projectFileEditorCacheKey( |
| 555 | environmentId, | ||
| 556 | cwd, | ||
| 557 | relativePath, | ||
| 558 | contents, | ||
| 559 | editor.getFile(), | ||
| 560 | ), | ||
| 553 | }} | 561 | }} |
| 554 | options={{ | 562 | options={{ |
| 555 | disableFileHeader: true, | 563 | disableFileHeader: true, |
| @@ -586,7 +594,7 @@ function EditableFileSurface({ · 30 unmodified lines | |||
| 586 | /> | 594 | /> |
| 587 | </Virtualizer> | 595 | </Virtualizer> |
| 588 | </div> | 596 | </div> |
| 589 | </EditorProvider> | 597 | </EditProvider> |
| 590 | ); | 598 | ); |
| 591 | } | 599 | } |
| 592 | 600 | ||
| @@ -1,6 +1,10 @@ | |||
| 1 | import { describe, expect, it } from "vite-plus/test"; | 1 | import { describe, expect, it } from "vite-plus/test"; |
| 2 | 2 | ||
| 3 | import { fileContentRevision, projectFileCacheKey } from "./fileContentRevision"; | 3 | import { |
| 4 | fileContentRevision, | ||
| 5 | projectFileCacheKey, | ||
| 6 | projectFileEditorCacheKey, | ||
| 7 | } from "./fileContentRevision"; | ||
| 4 | 8 | ||
| 5 | describe("fileContentRevision", () => { | 9 | describe("fileContentRevision", () => { |
| 6 | it("changes for same-length edits", () => { | 10 | it("changes for same-length edits", () => { |
| @@ -12,4 +16,27 @@ describe("fileContentRevision", () => { · 5 unmodified lines | |||
| 12 | projectFileCacheKey("/repo", "file.json", "contents"), | 16 | projectFileCacheKey("/repo", "file.json", "contents"), |
| 13 | ); | 17 | ); |
| 14 | }); | 18 | }); |
| 19 | |||
| 20 | it("keeps editor identity stable for locally edited contents", () => { | ||
| 21 | const cacheKey = projectFileEditorCacheKey("local", "/repo", "file.json", "after", undefined); | ||
| 22 | |||
| 23 | expect( | ||
| 24 | projectFileEditorCacheKey("local", "/repo", "file.json", "after edit", { | ||
| 25 | cacheKey, | ||
| 26 | contents: "after edit", | ||
| 27 | }), | ||
| 28 | ).toBe(cacheKey); | ||
| 29 | }); | ||
| 30 | |||
| 31 | it("rotates editor identity for external contents and environments", () => { | ||
| 32 | const cacheKey = projectFileEditorCacheKey("local", "/repo", "file.json", "before", undefined); | ||
| 33 | const editorFile = { cacheKey, contents: "before" }; | ||
| 34 | |||
| 35 | expect( | ||
| 36 | projectFileEditorCacheKey("local", "/repo", "file.json", "external edit", editorFile), | ||
| 37 | ).not.toBe(cacheKey); | ||
| 38 | expect(projectFileEditorCacheKey("remote", "/repo", "file.json", "before", undefined)).not.toBe( | ||
| 39 | cacheKey, | ||
| 40 | ); | ||
| 41 | }); | ||
| 15 | }); | 42 | }); |
| @@ -10,3 +10,21 @@ export function fileContentRevision(contents: string): string { · 9 unmodified lines | |||
| 10 | export function projectFileCacheKey(cwd: string, relativePath: string, contents: string): string { | 10 | export function projectFileCacheKey(cwd: string, relativePath: string, contents: string): string { |
| 11 | return `${cwd}:${relativePath}:${fileContentRevision(contents)}`; | 11 | return `${cwd}:${relativePath}:${fileContentRevision(contents)}`; |
| 12 | } | 12 | } |
| 13 | |||
| 14 | interface EditorFileIdentity { | ||
| 15 | readonly cacheKey?: string; | ||
| 16 | readonly contents: string; | ||
| 17 | } | ||
| 18 | |||
| 19 | export function projectFileEditorCacheKey( | ||
| 20 | environmentId: string, | ||
| 21 | cwd: string, | ||
| 22 | relativePath: string, | ||
| 23 | contents: string, | ||
| 24 | editorFile: EditorFileIdentity | undefined, | ||
| 25 | ): string { | ||
| 26 | if (editorFile?.contents === contents && editorFile.cacheKey) { | ||
| 27 | return editorFile.cacheKey; | ||
| 28 | } | ||
| 29 | return `editor:${environmentId}:${projectFileCacheKey(cwd, relativePath, contents)}`; | ||
| 30 | } | ||
| @@ -1,38 +1,54 @@ | |||
| 1 | diff --git a/dist/editor/editor.js b/dist/editor/editor.js | 1 | diff --git a/dist/editor/editor.js b/dist/editor/editor.js |
| 2 | index e8013fc6eb6f243a6c912facf3fc0319ac66a8d0..80c82df4cdeb828bd331f5ec2f443d216bedc304 100644 | 2 | index ff78e2a..f9df318 100644 |
| 3 | --- a/dist/editor/editor.js | 3 | --- a/dist/editor/editor.js |
| 4 | +++ b/dist/editor/editor.js | 4 | +++ b/dist/editor/editor.js |
| 5 | @@ -77,15 +77,12 @@ var Editor = class { | 5 | @@ -146,14 +146,11 @@ var Editor = class { |
| 6 | this.#options = options; | 6 | const file = fileInstance.__getCurrentFile?.(); |
| 7 | } | 7 | if (file !== void 0) requirePersistedCacheKey(file); |
| 8 | edit(component) { | 8 | } |
| 9 | - const { useTokenTransformer, enableGutterUtility, enableLineSelection, expandUnchanged, diffStyle, lineHoverHighlight,...rest } = component.options; | 9 | - const { useTokenTransformer, enableGutterUtility, enableLineSelection, lineHoverHighlight = "disabled", ...rest } = fileInstance.options; |
| 10 | + const { useTokenTransformer, expandUnchanged, diffStyle,...rest } = component.options; | 10 | - if (useTokenTransformer !== true || enableGutterUtility === true || enableLineSelection === true || lineHoverHighlight !== "disabled") { |
| 11 | const isDiff = component.type === "file-diff"; | 11 | + const { useTokenTransformer, ...rest } = fileInstance.options; |
| 12 | - if (useTokenTransformer !== true || enableGutterUtility === true || enableLineSelection === true || lineHoverHighlight !== "disabled" || expandUnchanged !== true && isDiff || diffStyle === "unified" && isDiff) { | 12 | + if (useTokenTransformer !== true) { |
| 13 | + if (useTokenTransformer !== true || expandUnchanged !== true && isDiff || diffStyle === "unified" && isDiff) { | 13 | fileInstance.setOptions({ |
| 14 | component.setOptions({ | ||
| 15 | ...rest, | 14 | ...rest, |
| 16 | useTokenTransformer: true, | 15 | - useTokenTransformer: true, |
| 17 | - enableGutterUtility: false, | 16 | - enableGutterUtility: false, |
| 18 | - enableLineSelection: false, | 17 | - enableLineSelection: false, |
| 19 | - lineHoverHighlight: "disabled", | 18 | - lineHoverHighlight: "disabled" |
| 20 | expandUnchanged: true, | 19 | + useTokenTransformer: true |
| 21 | diffStyle: "split" | ||
| 22 | }); | 20 | }); |
| 23 | @@ -511,6 +508,7 @@ var Editor = class { | 21 | fileInstance.rerender(); |
| 22 | } | ||
| 23 | @@ -908,6 +905,7 @@ var Editor = class { | ||
| 24 | return lineNumber - 1; | 24 | return lineNumber - 1; |
| 25 | }; | 25 | }; |
| 26 | this.#editorEventDisposes.push(addEventListener(gutterEl, "pointerdown", (e) => { | 26 | this.#editorEventDisposes.push(addEventListener(gutterEl, "pointerdown", (e) => { |
| 27 | + if (this.#fileInstance?.options.enableLineSelection === true) return; | 27 | + if (this.#fileInstance?.options.enableLineSelection === true) return; |
| 28 | const textDocument = this.#textDocument; | 28 | const gutterRow = resolveGutterTarget(e.composedPath()[0]); |
| 29 | const lineIndex = resolveEditableLine(resolveGutterTarget(e.composedPath()[0])); | 29 | if (gutterRow?.dataset.lineType === "change-deletion") { |
| 30 | if (lineIndex === void 0 || textDocument === void 0) return; | 30 | const code = gutterRow.closest("[data-code]"); |
| 31 | @@ -1522,6 +1520,7 @@ var Editor = class { | ||
| 32 | if (gutterEl !== void 0) gutterEl.style.gridRow = "span " + gridRow; | ||
| 33 | } | ||
| 34 | fileInstance.updateRenderCache(dirtyLines, tokenizer.themeType, !didLineCountChange, didLineCountChange); | ||
| 35 | + if (fileInstance.file !== void 0) fileInstance.file.contents = textDocument.getText(); | ||
| 36 | if (didLineCountChange) fileInstance.applyDocumentChange(textDocument, newLineAnnotations, shouldUpdateBuffer); | ||
| 37 | if (this.#isDiff && (this.#diffSyle === "unified" || didLineCountChange)) this.#resetCache(); | ||
| 38 | if (newLineAnnotations !== void 0) { | ||
| 39 | @@ -1788,6 +1787,7 @@ var Editor = class { | ||
| 40 | } | ||
| 41 | } | ||
| 42 | #setSelectedLinesSafe(range, lineNumberOnly = false) { | ||
| 43 | + if (this.#fileInstance?.options.controlledSelection === true) return; | ||
| 44 | try { | ||
| 45 | this.#fileInstance?.setSelectedLines(range, { | ||
| 46 | notify: false, | ||
| 31 | diff --git a/dist/react/utils/useFileInstance.js b/dist/react/utils/useFileInstance.js | 47 | diff --git a/dist/react/utils/useFileInstance.js b/dist/react/utils/useFileInstance.js |
| 32 | index cb8e2026fb5d7a19f489c0a2402efbcb7dff3322..510fad6364d4a2214c7dd65fe2b114f1cce0c815 100644 | 48 | index e9f62f5..af82a46 100644 |
| 33 | --- a/dist/react/utils/useFileInstance.js | 49 | --- a/dist/react/utils/useFileInstance.js |
| 34 | +++ b/dist/react/utils/useFileInstance.js | 50 | +++ b/dist/react/utils/useFileInstance.js |
| 35 | @@ -92,10 +92,7 @@ function mergeFileOptions({ options, controlledSelection, contentEditable, hasCu | 51 | @@ -91,10 +91,7 @@ function mergeFileOptions({ options, controlledSelection, contentEditable, hasCu |
| 36 | }; | 52 | }; |
| 37 | if (needsEditorOptions) merged = { | 53 | if (needsEditorOptions) merged = { |
| 38 | ...merged, | 54 | ...merged, |
| @@ -45,7 +61,7 @@ index cb8e2026fb5d7a19f489c0a2402efbcb7dff3322..510fad6364d4a2214c7dd65fe2b114f1 · 6 unmodified lines | |||
| 45 | return merged; | 61 | return merged; |
| 46 | } | 62 | } |
| 47 | diff --git a/package.json b/package.json | 63 | diff --git a/package.json b/package.json |
| 48 | index d1558633de87044b7aa96cff09443db11f163cec..c0b16f0a0bec6fba2026f24f38b2c0a8fa06af7c 100644 | 64 | index ff61c90..1e170e5 100644 |
| 49 | --- a/package.json | 65 | --- a/package.json |
| 50 | +++ b/package.json | 66 | +++ b/package.json |
| 51 | @@ -55,6 +55,18 @@ | 67 | @@ -55,6 +55,18 @@ |
| @@ -19,8 +19,8 @@ catalogs: · 18 unmodified lines | |||
| 19 | specifier: 1.8.0 | 19 | specifier: 1.8.0 |
| 20 | version: 1.8.0 | 20 | version: 1.8.0 |
| 21 | '@pierre/diffs': | 21 | '@pierre/diffs': |
| 22 | specifier: 1.3.0-beta.5 | 22 | specifier: 1.3.0-beta.10 |
| 23 | version: 1.3.0-beta.5 | 23 | version: 1.3.0-beta.10 |
| 24 | '@typescript/native-preview': | 24 | '@typescript/native-preview': |
| 25 | specifier: 7.0.0-dev.20260604.1 | 25 | specifier: 7.0.0-dev.20260604.1 |
| 26 | version: 7.0.0-dev.20260604.1 | 26 | version: 7.0.0-dev.20260604.1 |
| @@ -75,7 +75,7 @@ patchedDependencies: · 48 unmodified lines | |||
| 75 | '@expo/metro-config@56.0.14': 8cb08b5bb7051ed9d2dbe46a2c293c5a1e17f1bd6ddf30de27909e18c921ff46 | 75 | '@expo/metro-config@56.0.14': 8cb08b5bb7051ed9d2dbe46a2c293c5a1e17f1bd6ddf30de27909e18c921ff46 |
| 76 | '@ff-labs/fff-node@0.9.4': 2b16019ce7ab61aec6478dd02f79ef468cc1d5c51e9d00764f7d2ab8167210c8 | 76 | '@ff-labs/fff-node@0.9.4': 2b16019ce7ab61aec6478dd02f79ef468cc1d5c51e9d00764f7d2ab8167210c8 |
| 77 | '@legendapp/list@3.2.0': 9203ec3db86574a31e157a265cefd8997b259cc420a0c4c61c580c80ed8cf78d | 77 | '@legendapp/list@3.2.0': 9203ec3db86574a31e157a265cefd8997b259cc420a0c4c61c580c80ed8cf78d |
| 78 | '@pierre/diffs@1.3.0-beta.5': 7cb6da88544119adda056b2f46f43956f99326227732da0b345081e285a6c53a | 78 | '@pierre/diffs@1.3.0-beta.10': 7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa |
| 79 | '@react-native-menu/menu@2.0.0': 5ea3ae4bf1d9baf5443b65c269bb09621c27a68d556f713778f37b1e8d46aaae | 79 | '@react-native-menu/menu@2.0.0': 5ea3ae4bf1d9baf5443b65c269bb09621c27a68d556f713778f37b1e8d46aaae |
| 80 | '@react-navigation/native-stack@7.17.6': c7fc101b78d434904425e5a24c22fb0042298dec6f807250486e784f3c717273 | 80 | '@react-navigation/native-stack@7.17.6': c7fc101b78d434904425e5a24c22fb0042298dec6f807250486e784f3c717273 |
| 81 | effect@4.0.0-beta.102: 71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488 | 81 | effect@4.0.0-beta.102: 71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488 |
| @@ -222,7 +222,7 @@ importers: · 140 unmodified lines | |||
| 222 | version: 1.8.0 | 222 | version: 1.8.0 |
| 223 | '@pierre/diffs': | 223 | '@pierre/diffs': |
| 224 | specifier: 'catalog:' | 224 | specifier: 'catalog:' |
| 225 | version: 1.3.0-beta.5(patch_hash=7cb6da88544119adda056b2f46f43956f99326227732da0b345081e285a6c53a)(@shikijs/themes@4.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) | 225 | version: 1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) |
| 226 | '@react-native-menu/menu': | 226 | '@react-native-menu/menu': |
| 227 | specifier: ^2.0.0 | 227 | specifier: ^2.0.0 |
| 228 | version: 2.0.0(patch_hash=5ea3ae4bf1d9baf5443b65c269bb09621c27a68d556f713778f37b1e8d46aaae)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3) | 228 | version: 2.0.0(patch_hash=5ea3ae4bf1d9baf5443b65c269bb09621c27a68d556f713778f37b1e8d46aaae)(react-native@0.85.3(@babel/core@7.29.7)(@react-native/metro-config@0.85.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.2.16)(bufferutil@4.1.0)(react@19.2.3)(utf-8-validate@6.0.6))(react@19.2.3) |
| @@ -466,7 +466,7 @@ importers: · 237 unmodified lines | |||
| 466 | version: 1.15.13 | 466 | version: 1.15.13 |
| 467 | '@pierre/diffs': | 467 | '@pierre/diffs': |
| 468 | specifier: 'catalog:' | 468 | specifier: 'catalog:' |
| 469 | version: 1.3.0-beta.5(patch_hash=7cb6da88544119adda056b2f46f43956f99326227732da0b345081e285a6c53a)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) | 469 | version: 1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) |
| 470 | effect: | 470 | effect: |
| 471 | specifier: 4.0.0-beta.102 | 471 | specifier: 4.0.0-beta.102 |
| 472 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) | 472 | version: 4.0.0-beta.102(patch_hash=71215759e1ac0a7f65d7b75d816986687ae6c3a6cba02d928d184ca71790d488) |
| @@ -551,7 +551,7 @@ importers: · 78 unmodified lines | |||
| 551 | version: 0.41.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(yjs@13.6.31) | 551 | version: 0.41.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(yjs@13.6.31) |
| 552 | '@pierre/diffs': | 552 | '@pierre/diffs': |
| 553 | specifier: 'catalog:' | 553 | specifier: 'catalog:' |
| 554 | version: 1.3.0-beta.5(patch_hash=7cb6da88544119adda056b2f46f43956f99326227732da0b345081e285a6c53a)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) | 554 | version: 1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) |
| 555 | '@pierre/trees': | 555 | '@pierre/trees': |
| 556 | specifier: 1.0.0-beta.4 | 556 | specifier: 1.0.0-beta.4 |
| 557 | version: 1.0.0-beta.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6) | 557 | version: 1.0.0-beta.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6) |
| @@ -3584,20 +3584,20 @@ packages: · 3026 unmodified lines | |||
| 3584 | resolution: {integrity: sha512-ODOov0sGMJMf3jPonOkgGqPknTsu+DdQ7kD++gz8aI+aFMOMHFbWAA2taqXXVTdP+OTOQR/znGvSpmkeI0WTYQ==} | 3584 | resolution: {integrity: sha512-ODOov0sGMJMf3jPonOkgGqPknTsu+DdQ7kD++gz8aI+aFMOMHFbWAA2taqXXVTdP+OTOQR/znGvSpmkeI0WTYQ==} |
| 3585 | engines: {node: '>=14.18.0'} | 3585 | engines: {node: '>=14.18.0'} |
| 3586 | 3586 | ||
| 3587 | '@pierre/diffs@1.3.0-beta.5': | 3587 | '@pierre/diffs@1.3.0-beta.10': |
| 3588 | resolution: {integrity: sha512-d7449IY6Phcg9LCRLbPxhsxn6Bv4KoaP/vPyZtGu2uR1SFsSJPQcRoPf8lzyobNGKD0GZGuhgHW5LrOlilFo7w==} | 3588 | resolution: {integrity: sha512-efyFM9GRfI6WkmHJP0CnZBopuM8yCwGqIKbZHoe1D5PV15VDkr7Vpi8EZt40AYrN1km//utQtYhHDSwt2KwjSg==} |
| 3589 | peerDependencies: | 3589 | peerDependencies: |
| 3590 | react: ^18.3.1 || ^19.0.0 | 3590 | react: ^18.3.1 || ^19.0.0 |
| 3591 | react-dom: ^18.3.1 || ^19.0.0 | 3591 | react-dom: ^18.3.1 || ^19.0.0 |
| 3592 | 3592 | ||
| 3593 | '@pierre/theme@1.0.3': | 3593 | '@pierre/theme@1.1.0': |
| 3594 | resolution: {integrity: sha512-sWHv11TMoqKxKDgTIk5VbhQjdPhs8DCcBxbjh3mRlS3YOM/OcrWoGX6MM8eBGn9cUu3M46Py0JnxsG2nJaFTuA==} | 3594 | resolution: {integrity: sha512-GC2OWTAfTIIWWYhPCygwG8t2EtePQkRfON4MI2rwIkJylmiyqIttJID2dCL8sUD8cNdEvYkEyfEHHKMeCiDLoQ==} |
| 3595 | engines: {vscode: ^1.0.0} | 3595 | engines: {vscode: ^1.0.0} |
| 3596 | 3596 | ||
| 3597 | '@pierre/theming@0.0.1': | 3597 | '@pierre/theming@0.0.2': |
| 3598 | resolution: {integrity: sha512-1thlEtJbqdyLzc1ZS2KQa1q7FzDGHT4dTEdKHoyQjOMeWWOmbVG5/ndEfOKfAb5Fzkz8cNJrOjFLiZoDH/A03A==} | 3598 | resolution: {integrity: sha512-QM1M4stXfnzfaE8I8YbjXSApV8c+2dBsXJj8eYg9WTpBR/cTmCZIcfGnN4p13iRrYu2Br/R/OJfEL7uR8Qjctw==} |
| 3599 | peerDependencies: | 3599 | peerDependencies: |
| 3600 | '@pierre/theme': ^1.0.0 | 3600 | '@pierre/theme': ^1.1.0 |
| 3601 | '@shikijs/themes': ^3.0.0 || ^4.0.0 | 3601 | '@shikijs/themes': ^3.0.0 || ^4.0.0 |
| 3602 | react: ^18.3.1 || ^19.0.0 | 3602 | react: ^18.3.1 || ^19.0.0 |
| 3603 | react-dom: ^18.3.1 || ^19.0.0 | 3603 | react-dom: ^18.3.1 || ^19.0.0 |
| @@ -6104,6 +6104,10 @@ packages: · 2500 unmodified lines | |||
| 6104 | resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} | 6104 | resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} |
| 6105 | engines: {node: '>=0.3.1'} | 6105 | engines: {node: '>=0.3.1'} |
| 6106 | 6106 | ||
| 6107 | diff@9.0.0: | ||
| 6108 | resolution: {integrity: sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==} | ||
| 6109 | engines: {node: '>=0.3.1'} | ||
| 6110 | |||
| 6107 | dir-compare@4.2.0: | 6111 | dir-compare@4.2.0: |
| 6108 | resolution: {integrity: sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==} | 6112 | resolution: {integrity: sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==} |
| 6109 | 6113 | ||
| @@ -13569,12 +13573,12 @@ snapshots: · 7459 unmodified lines | |||
| 13569 | tslib: 2.8.1 | 13573 | tslib: 2.8.1 |
| 13570 | webcrypto-core: 1.9.2 | 13574 | webcrypto-core: 1.9.2 |
| 13571 | 13575 | ||
| 13572 | '@pierre/diffs@1.3.0-beta.5(patch_hash=7cb6da88544119adda056b2f46f43956f99326227732da0b345081e285a6c53a)(@shikijs/themes@4.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': | 13576 | '@pierre/diffs@1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': |
| 13573 | dependencies: | 13577 | dependencies: |
| 13574 | '@pierre/theme': 1.0.3 | 13578 | '@pierre/theme': 1.1.0 |
| 13575 | '@pierre/theming': 0.0.1(@pierre/theme@1.0.3)(@shikijs/themes@4.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(shiki@4.2.0) | 13579 | '@pierre/theming': 0.0.2(@pierre/theme@1.1.0)(@shikijs/themes@4.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(shiki@4.2.0) |
| 13576 | '@shikijs/transformers': 4.2.0 | 13580 | '@shikijs/transformers': 4.2.0 |
| 13577 | diff: 8.0.3 | 13581 | diff: 9.0.0 |
| 13578 | hast-util-to-html: 9.0.5 | 13582 | hast-util-to-html: 9.0.5 |
| 13579 | lru_map: 0.4.1 | 13583 | lru_map: 0.4.1 |
| 13580 | react: 19.2.3 | 13584 | react: 19.2.3 |
| @@ -13583,12 +13587,12 @@ snapshots: · 2 unmodified lines | |||
| 13583 | transitivePeerDependencies: | 13587 | transitivePeerDependencies: |
| 13584 | - '@shikijs/themes' | 13588 | - '@shikijs/themes' |
| 13585 | 13589 | ||
| 13586 | '@pierre/diffs@1.3.0-beta.5(patch_hash=7cb6da88544119adda056b2f46f43956f99326227732da0b345081e285a6c53a)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': | 13590 | '@pierre/diffs@1.3.0-beta.10(patch_hash=7ef7cb0cbabb17c15cdb137554068b36f15f6f5265e73fb51452aa3380db91aa)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': |
| 13587 | dependencies: | 13591 | dependencies: |
| 13588 | '@pierre/theme': 1.0.3 | 13592 | '@pierre/theme': 1.1.0 |
| 13589 | '@pierre/theming': 0.0.1(@pierre/theme@1.0.3)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(shiki@4.2.0) | 13593 | '@pierre/theming': 0.0.2(@pierre/theme@1.1.0)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(shiki@4.2.0) |
| 13590 | '@shikijs/transformers': 4.2.0 | 13594 | '@shikijs/transformers': 4.2.0 |
| 13591 | diff: 8.0.3 | 13595 | diff: 9.0.0 |
| 13592 | hast-util-to-html: 9.0.5 | 13596 | hast-util-to-html: 9.0.5 |
| 13593 | lru_map: 0.4.1 | 13597 | lru_map: 0.4.1 |
| 13594 | react: 19.2.6 | 13598 | react: 19.2.6 |
| @@ -13597,19 +13601,19 @@ snapshots: · 2 unmodified lines | |||
| 13597 | transitivePeerDependencies: | 13601 | transitivePeerDependencies: |
| 13598 | - '@shikijs/themes' | 13602 | - '@shikijs/themes' |
| 13599 | 13603 | ||
| 13600 | '@pierre/theme@1.0.3': {} | 13604 | '@pierre/theme@1.1.0': {} |
| 13601 | 13605 | ||
| 13602 | '@pierre/theming@0.0.1(@pierre/theme@1.0.3)(@shikijs/themes@4.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(shiki@4.2.0)': | 13606 | '@pierre/theming@0.0.2(@pierre/theme@1.1.0)(@shikijs/themes@4.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(shiki@4.2.0)': |
| 13603 | optionalDependencies: | 13607 | optionalDependencies: |
| 13604 | '@pierre/theme': 1.0.3 | 13608 | '@pierre/theme': 1.1.0 |
| 13605 | '@shikijs/themes': 4.2.0 | 13609 | '@shikijs/themes': 4.2.0 |
| 13606 | react: 19.2.3 | 13610 | react: 19.2.3 |
| 13607 | react-dom: 19.2.3(react@19.2.3) | 13611 | react-dom: 19.2.3(react@19.2.3) |
| 13608 | shiki: 4.2.0 | 13612 | shiki: 4.2.0 |
| 13609 | 13613 | ||
| 13610 | '@pierre/theming@0.0.1(@pierre/theme@1.0.3)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(shiki@4.2.0)': | 13614 | '@pierre/theming@0.0.2(@pierre/theme@1.1.0)(@shikijs/themes@4.3.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(shiki@4.2.0)': |
| 13611 | optionalDependencies: | 13615 | optionalDependencies: |
| 13612 | '@pierre/theme': 1.0.3 | 13616 | '@pierre/theme': 1.1.0 |
| 13613 | '@shikijs/themes': 4.3.0 | 13617 | '@shikijs/themes': 4.3.0 |
| 13614 | react: 19.2.6 | 13618 | react: 19.2.6 |
| 13615 | react-dom: 19.2.6(react@19.2.6) | 13619 | react-dom: 19.2.6(react@19.2.6) |
| @@ -16379,6 +16383,8 @@ snapshots: · 2763 unmodified lines | |||
| 16379 | 16383 | ||
| 16380 | diff@8.0.3: {} | 16384 | diff@8.0.3: {} |
| 16381 | 16385 | ||
| 16386 | diff@9.0.0: {} | ||
| 16387 | |||
| 16382 | dir-compare@4.2.0: | 16388 | dir-compare@4.2.0: |
| 16383 | dependencies: | 16389 | dependencies: |
| 16384 | minimatch: 3.1.5 | 16390 | minimatch: 3.1.5 |
| @@ -41,7 +41,7 @@ catalog: · 40 unmodified lines | |||
| 41 | "@effect/vitest": 4.0.0-beta.102 | 41 | "@effect/vitest": 4.0.0-beta.102 |
| 42 | "@noble/curves": 1.9.1 | 42 | "@noble/curves": 1.9.1 |
| 43 | "@noble/hashes": 1.8.0 | 43 | "@noble/hashes": 1.8.0 |
| 44 | "@pierre/diffs": 1.3.0-beta.5 | 44 | "@pierre/diffs": 1.3.0-beta.10 |
| 45 | "@types/node": 24.12.4 | 45 | "@types/node": 24.12.4 |
| 46 | "@typescript/native-preview": 7.0.0-dev.20260604.1 | 46 | "@typescript/native-preview": 7.0.0-dev.20260604.1 |
| 47 | effect: 4.0.0-beta.102 | 47 | effect: 4.0.0-beta.102 |
| @@ -128,7 +128,7 @@ patchedDependencies: · 80 unmodified lines | |||
| 128 | "@expo/metro-config@56.0.14": patches/@expo%2Fmetro-config@56.0.14.patch | 128 | "@expo/metro-config@56.0.14": patches/@expo%2Fmetro-config@56.0.14.patch |
| 129 | "@ff-labs/fff-node@0.9.4": patches/@ff-labs__fff-node@0.9.4.patch | 129 | "@ff-labs/fff-node@0.9.4": patches/@ff-labs__fff-node@0.9.4.patch |
| 130 | "@legendapp/list@3.2.0": patches/@legendapp__list@3.2.0.patch | 130 | "@legendapp/list@3.2.0": patches/@legendapp__list@3.2.0.patch |
| 131 | "@pierre/diffs@1.3.0-beta.5": patches/@pierre%2Fdiffs@1.3.0-beta.5.patch | 131 | "@pierre/diffs@1.3.0-beta.10": patches/@pierre%2Fdiffs@1.3.0-beta.10.patch |
| 132 | "@react-native-menu/menu@2.0.0": patches/@react-native-menu__menu@2.0.0.patch | 132 | "@react-native-menu/menu@2.0.0": patches/@react-native-menu__menu@2.0.0.patch |
| 133 | "@react-navigation/native-stack@7.17.6": patches/@react-navigation%2Fnative-stack@7.17.6.patch | 133 | "@react-navigation/native-stack@7.17.6": patches/@react-navigation%2Fnative-stack@7.17.6.patch |
| 134 | effect@4.0.0-beta.102: patches/effect@4.0.0-beta.102.patch | 134 | effect@4.0.0-beta.102: patches/effect@4.0.0-beta.102.patch |