@openclaw/diffs 2026.9.4 → 2026.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (950) hide show
  1. package/assets/activity.svg +3 -0
  2. package/assets/icon.png +0 -0
  3. package/dist/{browser.runtime-DTKAejqd.js → .setup/browser.runtime-VjaO3wrj.mjs} +1 -1
  4. package/dist/assets/viewer-runtime.js +48 -54
  5. package/dist/index.js +4 -4
  6. package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts +115 -68
  7. package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts.map +1 -1
  8. package/node_modules/@pierre/diffs/dist/components/CodeView.js +189 -59
  9. package/node_modules/@pierre/diffs/dist/components/CodeView.js.map +1 -1
  10. package/node_modules/@pierre/diffs/dist/components/File.d.ts +79 -15
  11. package/node_modules/@pierre/diffs/dist/components/File.d.ts.map +1 -1
  12. package/node_modules/@pierre/diffs/dist/components/File.js +244 -66
  13. package/node_modules/@pierre/diffs/dist/components/File.js.map +1 -1
  14. package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts +101 -21
  15. package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts.map +1 -1
  16. package/node_modules/@pierre/diffs/dist/components/FileDiff.js +432 -102
  17. package/node_modules/@pierre/diffs/dist/components/FileDiff.js.map +1 -1
  18. package/node_modules/@pierre/diffs/dist/components/FileStream.js +1 -1
  19. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts +2 -2
  20. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.d.ts.map +1 -1
  21. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js +2 -2
  22. package/node_modules/@pierre/diffs/dist/components/UnresolvedFile.js.map +1 -1
  23. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts +17 -7
  24. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts.map +1 -1
  25. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js +142 -53
  26. package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js.map +1 -1
  27. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts +15 -8
  28. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  29. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js +186 -96
  30. package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js.map +1 -1
  31. package/node_modules/@pierre/diffs/dist/components/VirtulizerDevelopment.d.ts +1 -1
  32. package/node_modules/@pierre/diffs/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
  33. package/node_modules/@pierre/diffs/dist/edit/index.d.ts +7 -4
  34. package/node_modules/@pierre/diffs/dist/edit/index.js +5 -1
  35. package/node_modules/@pierre/diffs/dist/editor/EditStateManager.d.ts +56 -0
  36. package/node_modules/@pierre/diffs/dist/editor/EditStateManager.d.ts.map +1 -0
  37. package/node_modules/@pierre/diffs/dist/editor/EditStateManager.js +135 -0
  38. package/node_modules/@pierre/diffs/dist/editor/EditStateManager.js.map +1 -0
  39. package/node_modules/@pierre/diffs/dist/editor/cloneRetainedDiffSessionSnapshot.d.ts +7 -0
  40. package/node_modules/@pierre/diffs/dist/editor/cloneRetainedDiffSessionSnapshot.d.ts.map +1 -0
  41. package/node_modules/@pierre/diffs/dist/editor/cloneRetainedDiffSessionSnapshot.js +16 -0
  42. package/node_modules/@pierre/diffs/dist/editor/cloneRetainedDiffSessionSnapshot.js.map +1 -0
  43. package/node_modules/@pierre/diffs/dist/editor/editPrediction.d.ts +76 -0
  44. package/node_modules/@pierre/diffs/dist/editor/editPrediction.d.ts.map +1 -0
  45. package/node_modules/@pierre/diffs/dist/editor/editPrediction.js +365 -0
  46. package/node_modules/@pierre/diffs/dist/editor/editPrediction.js.map +1 -0
  47. package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts +19 -40
  48. package/node_modules/@pierre/diffs/dist/editor/editStack.d.ts.map +1 -1
  49. package/node_modules/@pierre/diffs/dist/editor/editStack.js +67 -4
  50. package/node_modules/@pierre/diffs/dist/editor/editStack.js.map +1 -1
  51. package/node_modules/@pierre/diffs/dist/editor/editor.d.ts +118 -29
  52. package/node_modules/@pierre/diffs/dist/editor/editor.d.ts.map +1 -1
  53. package/node_modules/@pierre/diffs/dist/editor/editor.js +1108 -384
  54. package/node_modules/@pierre/diffs/dist/editor/editor.js.map +1 -1
  55. package/node_modules/@pierre/diffs/dist/editor/editor2.js +1 -1
  56. package/node_modules/@pierre/diffs/dist/editor/languages.d.ts +3 -3
  57. package/node_modules/@pierre/diffs/dist/editor/languages.d.ts.map +1 -1
  58. package/node_modules/@pierre/diffs/dist/editor/languages.js.map +1 -1
  59. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts +3 -3
  60. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.d.ts.map +1 -1
  61. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js +16 -7
  62. package/node_modules/@pierre/diffs/dist/editor/lineAnnotations.js.map +1 -1
  63. package/node_modules/@pierre/diffs/dist/editor/marker.d.ts +2 -2
  64. package/node_modules/@pierre/diffs/dist/editor/marker.d.ts.map +1 -1
  65. package/node_modules/@pierre/diffs/dist/editor/marker.js.map +1 -1
  66. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts +2 -2
  67. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.d.ts.map +1 -1
  68. package/node_modules/@pierre/diffs/dist/editor/matchBrackets.js.map +1 -1
  69. package/node_modules/@pierre/diffs/dist/editor/pieceTable.d.ts +1 -1
  70. package/node_modules/@pierre/diffs/dist/editor/pieceTable.js.map +1 -1
  71. package/node_modules/@pierre/diffs/dist/editor/searchPanel.d.ts +2 -2
  72. package/node_modules/@pierre/diffs/dist/editor/searchPanel.js +1 -1
  73. package/node_modules/@pierre/diffs/dist/editor/searchPanel.js.map +1 -1
  74. package/node_modules/@pierre/diffs/dist/editor/selection.d.ts +32 -23
  75. package/node_modules/@pierre/diffs/dist/editor/selection.d.ts.map +1 -1
  76. package/node_modules/@pierre/diffs/dist/editor/selection.js +3 -3
  77. package/node_modules/@pierre/diffs/dist/editor/selection.js.map +1 -1
  78. package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts +3 -3
  79. package/node_modules/@pierre/diffs/dist/editor/selectionAction.d.ts.map +1 -1
  80. package/node_modules/@pierre/diffs/dist/editor/selectionAction.js.map +1 -1
  81. package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts +11 -8
  82. package/node_modules/@pierre/diffs/dist/editor/textDocument.d.ts.map +1 -1
  83. package/node_modules/@pierre/diffs/dist/editor/textDocument.js +28 -5
  84. package/node_modules/@pierre/diffs/dist/editor/textDocument.js.map +1 -1
  85. package/node_modules/@pierre/diffs/dist/editor/textDocumentChangeTransaction.d.ts +15 -0
  86. package/node_modules/@pierre/diffs/dist/editor/textDocumentChangeTransaction.d.ts.map +1 -0
  87. package/node_modules/@pierre/diffs/dist/editor/textDocumentChangeTransaction.js +12 -0
  88. package/node_modules/@pierre/diffs/dist/editor/textDocumentChangeTransaction.js.map +1 -0
  89. package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts +5 -0
  90. package/node_modules/@pierre/diffs/dist/editor/textMeasure.d.ts.map +1 -1
  91. package/node_modules/@pierre/diffs/dist/editor/textMeasure.js +10 -0
  92. package/node_modules/@pierre/diffs/dist/editor/textMeasure.js.map +1 -1
  93. package/node_modules/@pierre/diffs/dist/editor/tokenizer.d.ts +1 -1
  94. package/node_modules/@pierre/diffs/dist/editor/tokenizer.js.map +1 -1
  95. package/node_modules/@pierre/diffs/dist/editor/types.d.ts +267 -0
  96. package/node_modules/@pierre/diffs/dist/editor/types.d.ts.map +1 -0
  97. package/node_modules/@pierre/diffs/dist/editor/types.js +0 -0
  98. package/node_modules/@pierre/diffs/dist/editor/utils.d.ts +2 -1
  99. package/node_modules/@pierre/diffs/dist/editor/utils.d.ts.map +1 -1
  100. package/node_modules/@pierre/diffs/dist/editor/utils.js +4 -1
  101. package/node_modules/@pierre/diffs/dist/editor/utils.js.map +1 -1
  102. package/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.d.ts +6 -2
  103. package/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.d.ts.map +1 -1
  104. package/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.js +7 -3
  105. package/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.js.map +1 -1
  106. package/node_modules/@pierre/diffs/dist/highlighter/themes/areThemesAttached.js +1 -1
  107. package/node_modules/@pierre/diffs/dist/index.d.ts +8 -6
  108. package/node_modules/@pierre/diffs/dist/index.js +22 -21
  109. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.d.ts.map +1 -1
  110. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js +7 -0
  111. package/node_modules/@pierre/diffs/dist/managers/InteractionManager.js.map +1 -1
  112. package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts +36 -25
  113. package/node_modules/@pierre/diffs/dist/react/CodeView.d.ts.map +1 -1
  114. package/node_modules/@pierre/diffs/dist/react/CodeView.js +15 -14
  115. package/node_modules/@pierre/diffs/dist/react/CodeView.js.map +1 -1
  116. package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts +8 -11
  117. package/node_modules/@pierre/diffs/dist/react/EditContext.d.ts.map +1 -1
  118. package/node_modules/@pierre/diffs/dist/react/EditContext.js +2 -9
  119. package/node_modules/@pierre/diffs/dist/react/EditContext.js.map +1 -1
  120. package/node_modules/@pierre/diffs/dist/react/File.d.ts +10 -6
  121. package/node_modules/@pierre/diffs/dist/react/File.d.ts.map +1 -1
  122. package/node_modules/@pierre/diffs/dist/react/File.js +8 -4
  123. package/node_modules/@pierre/diffs/dist/react/File.js.map +1 -1
  124. package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts +10 -5
  125. package/node_modules/@pierre/diffs/dist/react/FileDiff.d.ts.map +1 -1
  126. package/node_modules/@pierre/diffs/dist/react/FileDiff.js +8 -4
  127. package/node_modules/@pierre/diffs/dist/react/FileDiff.js.map +1 -1
  128. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts +8 -5
  129. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.d.ts.map +1 -1
  130. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js +8 -12
  131. package/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js.map +1 -1
  132. package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts +7 -4
  133. package/node_modules/@pierre/diffs/dist/react/PatchDiff.d.ts.map +1 -1
  134. package/node_modules/@pierre/diffs/dist/react/PatchDiff.js +8 -4
  135. package/node_modules/@pierre/diffs/dist/react/PatchDiff.js.map +1 -1
  136. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts +3 -3
  137. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.d.ts.map +1 -1
  138. package/node_modules/@pierre/diffs/dist/react/UnresolvedFile.js.map +1 -1
  139. package/node_modules/@pierre/diffs/dist/react/index.d.ts +8 -5
  140. package/node_modules/@pierre/diffs/dist/react/types.d.ts +46 -9
  141. package/node_modules/@pierre/diffs/dist/react/types.d.ts.map +1 -1
  142. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts +14 -12
  143. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  144. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js +2 -2
  145. package/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js.map +1 -1
  146. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts +14 -12
  147. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  148. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js +2 -2
  149. package/node_modules/@pierre/diffs/dist/react/utils/renderFileChildren.js.map +1 -1
  150. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts +22 -10
  151. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  152. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js +112 -22
  153. package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js.map +1 -1
  154. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts +15 -9
  155. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.d.ts.map +1 -1
  156. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js +84 -25
  157. package/node_modules/@pierre/diffs/dist/react/utils/useFileInstance.js.map +1 -1
  158. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts +30 -15
  159. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  160. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +172 -109
  161. package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js.map +1 -1
  162. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts +27 -11
  163. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts.map +1 -1
  164. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +141 -67
  165. package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js.map +1 -1
  166. package/node_modules/@pierre/diffs/dist/renderers/UnresolvedFileHunksRenderer.d.ts +2 -2
  167. package/node_modules/@pierre/diffs/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
  168. package/node_modules/@pierre/diffs/dist/renderers/UnresolvedFileHunksRenderer.js +2 -2
  169. package/node_modules/@pierre/diffs/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
  170. package/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.d.ts.map +1 -1
  171. package/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.js +2 -1
  172. package/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.js.map +1 -1
  173. package/node_modules/@pierre/diffs/dist/ssr/index.d.ts +2 -2
  174. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts +21 -21
  175. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.d.ts.map +1 -1
  176. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js +1 -1
  177. package/node_modules/@pierre/diffs/dist/ssr/preloadDiffs.js.map +1 -1
  178. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.d.ts +6 -6
  179. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.d.ts.map +1 -1
  180. package/node_modules/@pierre/diffs/dist/ssr/preloadFile.js.map +1 -1
  181. package/node_modules/@pierre/diffs/dist/ssr/preloadPatchFile.d.ts +4 -4
  182. package/node_modules/@pierre/diffs/dist/ssr/preloadPatchFile.d.ts.map +1 -1
  183. package/node_modules/@pierre/diffs/dist/ssr/preloadPatchFile.js.map +1 -1
  184. package/node_modules/@pierre/diffs/dist/style.js +1 -1
  185. package/node_modules/@pierre/diffs/dist/types.d.ts +13 -263
  186. package/node_modules/@pierre/diffs/dist/types.d.ts.map +1 -1
  187. package/node_modules/@pierre/diffs/dist/utils/appendItems.d.ts +5 -0
  188. package/node_modules/@pierre/diffs/dist/utils/appendItems.d.ts.map +1 -0
  189. package/node_modules/@pierre/diffs/dist/utils/appendItems.js +8 -0
  190. package/node_modules/@pierre/diffs/dist/utils/appendItems.js.map +1 -0
  191. package/node_modules/@pierre/diffs/dist/utils/areDiffTargetsEqual.js +1 -1
  192. package/node_modules/@pierre/diffs/dist/utils/areDiffTargetsEqual.js.map +1 -1
  193. package/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.d.ts +7 -0
  194. package/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.d.ts.map +1 -0
  195. package/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.js +8 -0
  196. package/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.js.map +1 -0
  197. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts +1 -1
  198. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  199. package/node_modules/@pierre/diffs/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  200. package/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.d.ts +3 -3
  201. package/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.d.ts.map +1 -1
  202. package/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.js.map +1 -1
  203. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts +3 -2
  204. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -1
  205. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js +8 -5
  206. package/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js.map +1 -1
  207. package/node_modules/@pierre/diffs/dist/utils/composeCacheKey.d.ts +6 -0
  208. package/node_modules/@pierre/diffs/dist/utils/composeCacheKey.d.ts.map +1 -0
  209. package/node_modules/@pierre/diffs/dist/utils/composeCacheKey.js +10 -0
  210. package/node_modules/@pierre/diffs/dist/utils/composeCacheKey.js.map +1 -0
  211. package/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.d.ts +69 -0
  212. package/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.d.ts.map +1 -0
  213. package/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.js +64 -0
  214. package/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.js.map +1 -0
  215. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts +5 -3
  216. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts.map +1 -1
  217. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js +7 -5
  218. package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js.map +1 -1
  219. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts +1 -1
  220. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
  221. package/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  222. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts +1 -1
  223. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.d.ts.map +1 -1
  224. package/node_modules/@pierre/diffs/dist/utils/getFileRendererOptions.js.map +1 -1
  225. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.d.ts.map +1 -1
  226. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js +2 -1
  227. package/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js.map +1 -1
  228. package/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.d.ts +16 -0
  229. package/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.d.ts.map +1 -0
  230. package/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.js +17 -0
  231. package/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.js.map +1 -0
  232. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts +2 -2
  233. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  234. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js +6 -6
  235. package/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js.map +1 -1
  236. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts +6 -3
  237. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts.map +1 -1
  238. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +34 -9
  239. package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js.map +1 -1
  240. package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  241. package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js +6 -5
  242. package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  243. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  244. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js +7 -4
  245. package/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js.map +1 -1
  246. package/node_modules/@pierre/diffs/dist/utils/trimPatchContext.d.ts.map +1 -1
  247. package/node_modules/@pierre/diffs/dist/utils/trimPatchContext.js +3 -2
  248. package/node_modules/@pierre/diffs/dist/utils/trimPatchContext.js.map +1 -1
  249. package/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.js +1 -1
  250. package/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js +1 -1
  251. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts +4 -3
  252. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  253. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js +44 -6
  254. package/node_modules/@pierre/diffs/dist/worker/WorkerPoolManager.js.map +1 -1
  255. package/node_modules/@pierre/diffs/dist/worker/types.d.ts +5 -0
  256. package/node_modules/@pierre/diffs/dist/worker/types.d.ts.map +1 -1
  257. package/node_modules/@pierre/diffs/dist/worker/worker-portable.js +14 -6
  258. package/node_modules/@pierre/diffs/dist/worker/worker-portable.js.map +1 -1
  259. package/node_modules/@pierre/diffs/dist/worker/worker.js +14 -6
  260. package/node_modules/@pierre/diffs/dist/worker/worker.js.map +1 -1
  261. package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/cjs/deserialize.js +12 -2
  262. package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/cjs/serialize.js +5 -1
  263. package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/esm/deserialize.js +12 -2
  264. package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/esm/serialize.js +5 -1
  265. package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/package.json +1 -1
  266. package/node_modules/@pierre/diffs/node_modules/@ungap/structured-clone/structured-json.js +1 -1
  267. package/node_modules/@pierre/diffs/package.json +9 -1
  268. package/node_modules/playwright-core/browsers.json +9 -32
  269. package/node_modules/playwright-core/lib/coreBundle.js +5402 -4419
  270. package/node_modules/playwright-core/lib/server/electron/loader.js +0 -2
  271. package/node_modules/playwright-core/lib/serverRegistry.js +1674 -7082
  272. package/node_modules/playwright-core/lib/serverRegistry.js.LICENSE +8 -297
  273. package/node_modules/playwright-core/lib/tools/cli-client/help.json +19 -6
  274. package/node_modules/playwright-core/lib/tools/cli-client/minimist.js +1 -1
  275. package/node_modules/playwright-core/lib/tools/cli-client/output.js +9 -1
  276. package/node_modules/playwright-core/lib/tools/cli-client/program.js +17 -3
  277. package/node_modules/playwright-core/lib/tools/cli-client/registry.js +9 -5
  278. package/node_modules/playwright-core/lib/tools/cli-client/session.js +2 -1
  279. package/node_modules/playwright-core/lib/tools/skills/playwright-cli/SKILL.md +5 -0
  280. package/node_modules/playwright-core/lib/tools/skills/playwright-cli/references/tracing.md +1 -1
  281. package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/SKILL.md +4 -11
  282. package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/references/migration.md +6 -2
  283. package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/references/react.md +2 -0
  284. package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/references/typing.md +173 -0
  285. package/node_modules/playwright-core/lib/tools/skills/playwright-component-testing/references/vue.md +2 -0
  286. package/node_modules/playwright-core/lib/tools/skills/playwright-trace/SKILL.md +6 -3
  287. package/node_modules/playwright-core/lib/tools/utils/extension.js +13 -2
  288. package/node_modules/playwright-core/lib/utilsBundle.js +1934 -7341
  289. package/node_modules/playwright-core/lib/utilsBundle.js.LICENSE +8 -297
  290. package/node_modules/playwright-core/lib/vite/dashboard/assets/codeMirrorModule--QdMvsKi.css +1 -0
  291. package/node_modules/playwright-core/lib/vite/{recorder/assets/codeMirrorModule-CwYYHbcZ.js → dashboard/assets/codeMirrorModule-CQ8RZGBm.js} +1 -1
  292. package/node_modules/playwright-core/lib/vite/dashboard/assets/index-AwgwcYie.css +1 -0
  293. package/node_modules/playwright-core/lib/vite/dashboard/assets/index-hRvO4yU2.js +12 -0
  294. package/node_modules/playwright-core/lib/vite/dashboard/index.html +2 -2
  295. package/node_modules/playwright-core/lib/vite/htmlReport/report.css +1 -1
  296. package/node_modules/playwright-core/lib/vite/htmlReport/report.js +4 -4
  297. package/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule-CVQWJZAA.js +32 -0
  298. package/node_modules/playwright-core/lib/vite/recorder/assets/index-BZpYJZ-P.css +1 -0
  299. package/node_modules/playwright-core/lib/vite/recorder/assets/index-hrlLqLtq.js +129 -0
  300. package/node_modules/playwright-core/lib/vite/recorder/index.html +2 -2
  301. package/node_modules/playwright-core/lib/vite/traceViewer/assets/{codeMirrorModule-rXmQmLUY.js → codeMirrorModule-BbkfBe3n.js} +1 -1
  302. package/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-Ds6CBOo0.js +182 -0
  303. package/node_modules/playwright-core/lib/vite/traceViewer/assets/{xtermModule-BuZfJS5v.js → xtermModule-DywYcAf8.js} +1 -1
  304. package/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.Bqk9acqE.css +1 -0
  305. package/node_modules/playwright-core/lib/vite/traceViewer/index.B4cLoZK3.js +1 -0
  306. package/node_modules/playwright-core/lib/vite/traceViewer/index.html +3 -3
  307. package/node_modules/playwright-core/lib/vite/traceViewer/sw.bundle.js +3 -3
  308. package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.CU5KtEkS.js +5 -0
  309. package/node_modules/playwright-core/lib/vite/traceViewer/{uiMode.C7UW1sC9.css → uiMode.CyMfwkXJ.css} +1 -1
  310. package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.html +4 -4
  311. package/node_modules/playwright-core/package.json +1 -1
  312. package/node_modules/playwright-core/types/protocol.d.ts +201 -398
  313. package/node_modules/playwright-core/types/types.d.ts +771 -327
  314. package/node_modules/typebox/build/compile/validator.d.mts +1 -1
  315. package/node_modules/typebox/build/compile/validator.mjs +1 -1
  316. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
  317. package/node_modules/typebox/build/format/iri.mjs +5 -1
  318. package/node_modules/typebox/build/guard/emit.mjs +2 -4
  319. package/node_modules/typebox/build/guard/guard.mjs +6 -18
  320. package/node_modules/typebox/build/guard/string.mjs +16 -24
  321. package/node_modules/typebox/build/schema/build.mjs +2 -2
  322. package/node_modules/typebox/build/schema/check.mjs +1 -1
  323. package/node_modules/typebox/build/schema/compile.d.mts +3 -2
  324. package/node_modules/typebox/build/schema/compile.mjs +8 -8
  325. package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
  326. package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
  327. package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
  328. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
  329. package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
  330. package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
  331. package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
  332. package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
  333. package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
  334. package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
  335. package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
  336. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
  337. package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
  338. package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
  339. package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
  340. package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
  341. package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
  342. package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
  343. package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
  344. package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
  345. package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
  346. package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
  347. package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
  348. package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
  349. package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
  350. package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
  351. package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
  352. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
  353. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
  354. package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
  355. package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
  356. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
  357. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
  358. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
  359. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
  360. package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
  361. package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
  362. package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
  363. package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
  364. package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
  365. package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
  366. package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
  367. package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
  368. package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
  369. package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
  370. package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
  371. package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
  372. package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
  373. package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
  374. package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
  375. package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
  376. package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
  377. package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
  378. package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
  379. package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
  380. package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
  381. package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
  382. package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
  383. package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
  384. package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
  385. package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
  386. package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
  387. package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
  388. package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
  389. package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
  390. package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
  391. package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
  392. package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
  393. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
  394. package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
  395. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
  396. package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
  397. package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
  398. package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
  399. package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
  400. package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
  401. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
  402. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
  403. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
  404. package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
  405. package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
  406. package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
  407. package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
  408. package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
  409. package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
  410. package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
  411. package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
  412. package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
  413. package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
  414. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
  415. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
  416. package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
  417. package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
  418. package/node_modules/typebox/build/schema/errors.d.mts +2 -2
  419. package/node_modules/typebox/build/schema/errors.mjs +8 -14
  420. package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
  421. package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
  422. package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
  423. package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
  424. package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
  425. package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
  426. package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
  427. package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
  428. package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
  429. package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
  430. package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
  431. package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
  432. package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
  433. package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
  434. package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
  435. package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
  436. package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
  437. package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
  438. package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
  439. package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
  440. package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
  441. package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
  442. package/node_modules/typebox/build/schema/parse.d.mts +1 -0
  443. package/node_modules/typebox/build/schema/parse.mjs +10 -5
  444. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
  445. package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
  446. package/node_modules/typebox/build/schema/schema.d.mts +2 -0
  447. package/node_modules/typebox/build/schema/schema.mjs +2 -0
  448. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
  449. package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
  450. package/node_modules/typebox/package.json +1 -1
  451. package/node_modules/typebox/readme.md +59 -89
  452. package/node_modules/zod/README.md +27 -0
  453. package/node_modules/zod/compile.cjs +77 -0
  454. package/node_modules/zod/compile.d.cts +1 -0
  455. package/node_modules/zod/compile.d.ts +1 -0
  456. package/node_modules/zod/compile.js +52 -0
  457. package/node_modules/zod/index.cjs +2 -2
  458. package/node_modules/zod/index.d.cts +1 -2
  459. package/node_modules/zod/index.d.ts +1 -2
  460. package/node_modules/zod/index.js +5 -2
  461. package/node_modules/zod/package.json +13 -2
  462. package/node_modules/zod/src/compile.ts +56 -0
  463. package/node_modules/zod/src/index.ts +5 -2
  464. package/node_modules/zod/src/v3/ZodError.ts +22 -12
  465. package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
  466. package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
  467. package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
  468. package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
  469. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
  470. package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
  471. package/node_modules/zod/src/v3/types.ts +5 -5
  472. package/node_modules/zod/src/v4/classic/checks.ts +1 -0
  473. package/node_modules/zod/src/v4/classic/compat.ts +26 -18
  474. package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
  475. package/node_modules/zod/src/v4/classic/errors.ts +59 -44
  476. package/node_modules/zod/src/v4/classic/external.ts +12 -9
  477. package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
  478. package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
  479. package/node_modules/zod/src/v4/classic/index.ts +2 -2
  480. package/node_modules/zod/src/v4/classic/iso.ts +2 -72
  481. package/node_modules/zod/src/v4/classic/parse.ts +10 -4
  482. package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
  483. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
  484. package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
  485. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
  486. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
  487. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
  488. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
  489. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
  490. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  491. package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
  492. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
  493. package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
  494. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
  495. package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
  496. package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
  497. package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
  498. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
  499. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
  500. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
  501. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
  502. package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
  503. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
  504. package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
  505. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
  506. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
  507. package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
  508. package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
  509. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
  510. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
  511. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
  512. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
  513. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
  514. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
  515. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
  516. package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
  517. package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
  518. package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
  519. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
  520. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
  521. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
  522. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
  523. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
  524. package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
  525. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
  526. package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
  527. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
  528. package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
  529. package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
  530. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
  531. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
  532. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
  533. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
  534. package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
  535. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
  536. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
  537. package/node_modules/zod/src/v4/core/api.ts +48 -12
  538. package/node_modules/zod/src/v4/core/checks.ts +57 -44
  539. package/node_modules/zod/src/v4/core/compile.ts +2188 -0
  540. package/node_modules/zod/src/v4/core/core.ts +98 -19
  541. package/node_modules/zod/src/v4/core/doc.ts +11 -7
  542. package/node_modules/zod/src/v4/core/errors.ts +115 -24
  543. package/node_modules/zod/src/v4/core/index.ts +3 -0
  544. package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
  545. package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
  546. package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
  547. package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
  548. package/node_modules/zod/src/v4/core/parse.ts +131 -38
  549. package/node_modules/zod/src/v4/core/regexes.ts +30 -13
  550. package/node_modules/zod/src/v4/core/registries.ts +2 -2
  551. package/node_modules/zod/src/v4/core/schemas.ts +759 -461
  552. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
  553. package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
  554. package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
  555. package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
  556. package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
  557. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
  558. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
  559. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
  560. package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
  561. package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
  562. package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
  563. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
  564. package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
  565. package/node_modules/zod/src/v4/core/util.ts +268 -42
  566. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  567. package/node_modules/zod/src/v4/core/visit.ts +193 -0
  568. package/node_modules/zod/src/v4/index.ts +3 -3
  569. package/node_modules/zod/src/v4/locales/ar.ts +3 -0
  570. package/node_modules/zod/src/v4/locales/az.ts +3 -0
  571. package/node_modules/zod/src/v4/locales/be.ts +10 -0
  572. package/node_modules/zod/src/v4/locales/bg.ts +3 -0
  573. package/node_modules/zod/src/v4/locales/bn.ts +121 -0
  574. package/node_modules/zod/src/v4/locales/ca.ts +3 -0
  575. package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
  576. package/node_modules/zod/src/v4/locales/cs.ts +3 -0
  577. package/node_modules/zod/src/v4/locales/da.ts +5 -2
  578. package/node_modules/zod/src/v4/locales/de.ts +3 -0
  579. package/node_modules/zod/src/v4/locales/el.ts +1 -0
  580. package/node_modules/zod/src/v4/locales/en.ts +15 -4
  581. package/node_modules/zod/src/v4/locales/eo.ts +3 -0
  582. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  583. package/node_modules/zod/src/v4/locales/fa.ts +3 -0
  584. package/node_modules/zod/src/v4/locales/fi.ts +3 -0
  585. package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
  586. package/node_modules/zod/src/v4/locales/fr.ts +19 -14
  587. package/node_modules/zod/src/v4/locales/gu.ts +121 -0
  588. package/node_modules/zod/src/v4/locales/he.ts +6 -1
  589. package/node_modules/zod/src/v4/locales/hi.ts +124 -0
  590. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  591. package/node_modules/zod/src/v4/locales/hu.ts +3 -0
  592. package/node_modules/zod/src/v4/locales/hy.ts +9 -0
  593. package/node_modules/zod/src/v4/locales/id.ts +3 -0
  594. package/node_modules/zod/src/v4/locales/index.ts +10 -0
  595. package/node_modules/zod/src/v4/locales/is.ts +3 -0
  596. package/node_modules/zod/src/v4/locales/it.ts +3 -0
  597. package/node_modules/zod/src/v4/locales/ja.ts +3 -0
  598. package/node_modules/zod/src/v4/locales/ka.ts +3 -0
  599. package/node_modules/zod/src/v4/locales/km.ts +3 -0
  600. package/node_modules/zod/src/v4/locales/kn.ts +124 -0
  601. package/node_modules/zod/src/v4/locales/ko.ts +3 -0
  602. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  603. package/node_modules/zod/src/v4/locales/mk.ts +3 -0
  604. package/node_modules/zod/src/v4/locales/ms.ts +3 -0
  605. package/node_modules/zod/src/v4/locales/ne.ts +126 -0
  606. package/node_modules/zod/src/v4/locales/nl.ts +3 -0
  607. package/node_modules/zod/src/v4/locales/nn.ts +119 -0
  608. package/node_modules/zod/src/v4/locales/no.ts +5 -2
  609. package/node_modules/zod/src/v4/locales/ota.ts +3 -0
  610. package/node_modules/zod/src/v4/locales/pl.ts +3 -0
  611. package/node_modules/zod/src/v4/locales/ps.ts +3 -0
  612. package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
  613. package/node_modules/zod/src/v4/locales/pt.ts +99 -58
  614. package/node_modules/zod/src/v4/locales/ro.ts +1 -0
  615. package/node_modules/zod/src/v4/locales/ru.ts +10 -0
  616. package/node_modules/zod/src/v4/locales/sk.ts +121 -0
  617. package/node_modules/zod/src/v4/locales/sl.ts +3 -0
  618. package/node_modules/zod/src/v4/locales/sv.ts +5 -2
  619. package/node_modules/zod/src/v4/locales/ta.ts +3 -0
  620. package/node_modules/zod/src/v4/locales/th.ts +3 -0
  621. package/node_modules/zod/src/v4/locales/tk.ts +111 -0
  622. package/node_modules/zod/src/v4/locales/tr.ts +3 -0
  623. package/node_modules/zod/src/v4/locales/uk.ts +3 -0
  624. package/node_modules/zod/src/v4/locales/ur.ts +3 -0
  625. package/node_modules/zod/src/v4/locales/uz.ts +1 -0
  626. package/node_modules/zod/src/v4/locales/vi.ts +3 -0
  627. package/node_modules/zod/src/v4/locales/yo.ts +3 -0
  628. package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
  629. package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
  630. package/node_modules/zod/src/v4/mini/checks.ts +1 -0
  631. package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
  632. package/node_modules/zod/src/v4/mini/external.ts +10 -1
  633. package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
  634. package/node_modules/zod/src/v4/mini/parse.ts +2 -0
  635. package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
  636. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
  637. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
  638. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
  639. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
  640. package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
  641. package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
  642. package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
  643. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
  644. package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
  645. package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
  646. package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
  647. package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
  648. package/node_modules/zod/v3/ZodError.cjs +22 -12
  649. package/node_modules/zod/v3/ZodError.d.cts +1 -1
  650. package/node_modules/zod/v3/ZodError.d.ts +1 -1
  651. package/node_modules/zod/v3/ZodError.js +22 -12
  652. package/node_modules/zod/v3/types.cjs +7 -5
  653. package/node_modules/zod/v3/types.js +7 -5
  654. package/node_modules/zod/v4/classic/checks.cjs +2 -1
  655. package/node_modules/zod/v4/classic/checks.d.cts +1 -1
  656. package/node_modules/zod/v4/classic/checks.d.ts +1 -1
  657. package/node_modules/zod/v4/classic/checks.js +1 -1
  658. package/node_modules/zod/v4/classic/compat.d.cts +9 -11
  659. package/node_modules/zod/v4/classic/compat.d.ts +9 -11
  660. package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
  661. package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
  662. package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
  663. package/node_modules/zod/v4/classic/deep-partial.js +13 -0
  664. package/node_modules/zod/v4/classic/errors.cjs +43 -34
  665. package/node_modules/zod/v4/classic/errors.d.cts +3 -4
  666. package/node_modules/zod/v4/classic/errors.d.ts +3 -4
  667. package/node_modules/zod/v4/classic/errors.js +43 -34
  668. package/node_modules/zod/v4/classic/external.cjs +30 -27
  669. package/node_modules/zod/v4/classic/external.d.cts +5 -2
  670. package/node_modules/zod/v4/classic/external.d.ts +5 -2
  671. package/node_modules/zod/v4/classic/external.js +5 -8
  672. package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
  673. package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
  674. package/node_modules/zod/v4/classic/in-out.cjs +63 -0
  675. package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
  676. package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
  677. package/node_modules/zod/v4/classic/in-out.js +36 -0
  678. package/node_modules/zod/v4/classic/index.cjs +2 -2
  679. package/node_modules/zod/v4/classic/index.d.cts +1 -2
  680. package/node_modules/zod/v4/classic/index.d.ts +1 -2
  681. package/node_modules/zod/v4/classic/index.js +2 -2
  682. package/node_modules/zod/v4/classic/iso.cjs +11 -22
  683. package/node_modules/zod/v4/classic/iso.d.cts +2 -17
  684. package/node_modules/zod/v4/classic/iso.d.ts +2 -17
  685. package/node_modules/zod/v4/classic/iso.js +2 -17
  686. package/node_modules/zod/v4/classic/parse.cjs +4 -1
  687. package/node_modules/zod/v4/classic/parse.d.cts +17 -4
  688. package/node_modules/zod/v4/classic/parse.d.ts +17 -4
  689. package/node_modules/zod/v4/classic/parse.js +1 -0
  690. package/node_modules/zod/v4/classic/schemas.cjs +498 -398
  691. package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
  692. package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
  693. package/node_modules/zod/v4/classic/schemas.js +492 -396
  694. package/node_modules/zod/v4/core/api.cjs +23 -4
  695. package/node_modules/zod/v4/core/api.d.cts +13 -9
  696. package/node_modules/zod/v4/core/api.d.ts +13 -9
  697. package/node_modules/zod/v4/core/api.js +21 -4
  698. package/node_modules/zod/v4/core/checks.cjs +37 -31
  699. package/node_modules/zod/v4/core/checks.d.cts +13 -13
  700. package/node_modules/zod/v4/core/checks.d.ts +13 -13
  701. package/node_modules/zod/v4/core/checks.js +37 -31
  702. package/node_modules/zod/v4/core/compile.cjs +1813 -0
  703. package/node_modules/zod/v4/core/compile.d.cts +51 -0
  704. package/node_modules/zod/v4/core/compile.d.ts +51 -0
  705. package/node_modules/zod/v4/core/compile.js +1783 -0
  706. package/node_modules/zod/v4/core/core.cjs +81 -18
  707. package/node_modules/zod/v4/core/core.d.cts +16 -4
  708. package/node_modules/zod/v4/core/core.d.ts +16 -4
  709. package/node_modules/zod/v4/core/core.js +82 -19
  710. package/node_modules/zod/v4/core/doc.cjs +5 -7
  711. package/node_modules/zod/v4/core/doc.d.cts +3 -1
  712. package/node_modules/zod/v4/core/doc.d.ts +3 -1
  713. package/node_modules/zod/v4/core/doc.js +5 -7
  714. package/node_modules/zod/v4/core/errors.cjs +110 -25
  715. package/node_modules/zod/v4/core/errors.d.cts +4 -0
  716. package/node_modules/zod/v4/core/errors.d.ts +4 -0
  717. package/node_modules/zod/v4/core/errors.js +110 -25
  718. package/node_modules/zod/v4/core/index.cjs +5 -1
  719. package/node_modules/zod/v4/core/index.d.cts +3 -0
  720. package/node_modules/zod/v4/core/index.d.ts +3 -0
  721. package/node_modules/zod/v4/core/index.js +3 -0
  722. package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
  723. package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
  724. package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
  725. package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
  726. package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
  727. package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
  728. package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
  729. package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
  730. package/node_modules/zod/v4/core/memoizer.cjs +272 -0
  731. package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
  732. package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
  733. package/node_modules/zod/v4/core/memoizer.js +265 -0
  734. package/node_modules/zod/v4/core/parse.cjs +96 -34
  735. package/node_modules/zod/v4/core/parse.d.cts +14 -11
  736. package/node_modules/zod/v4/core/parse.d.ts +14 -11
  737. package/node_modules/zod/v4/core/parse.js +94 -33
  738. package/node_modules/zod/v4/core/regexes.cjs +27 -15
  739. package/node_modules/zod/v4/core/regexes.d.cts +2 -0
  740. package/node_modules/zod/v4/core/regexes.d.ts +2 -0
  741. package/node_modules/zod/v4/core/regexes.js +24 -13
  742. package/node_modules/zod/v4/core/registries.js +2 -2
  743. package/node_modules/zod/v4/core/schemas.cjs +537 -326
  744. package/node_modules/zod/v4/core/schemas.d.cts +100 -31
  745. package/node_modules/zod/v4/core/schemas.d.ts +100 -31
  746. package/node_modules/zod/v4/core/schemas.js +526 -325
  747. package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
  748. package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
  749. package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
  750. package/node_modules/zod/v4/core/to-json-schema.js +241 -39
  751. package/node_modules/zod/v4/core/util.cjs +212 -31
  752. package/node_modules/zod/v4/core/util.d.cts +58 -1
  753. package/node_modules/zod/v4/core/util.d.ts +58 -1
  754. package/node_modules/zod/v4/core/util.js +202 -30
  755. package/node_modules/zod/v4/core/versions.cjs +2 -2
  756. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  757. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  758. package/node_modules/zod/v4/core/versions.js +2 -2
  759. package/node_modules/zod/v4/core/visit.cjs +195 -0
  760. package/node_modules/zod/v4/core/visit.d.cts +30 -0
  761. package/node_modules/zod/v4/core/visit.d.ts +30 -0
  762. package/node_modules/zod/v4/core/visit.js +169 -0
  763. package/node_modules/zod/v4/index.cjs +15 -5
  764. package/node_modules/zod/v4/index.d.cts +2 -2
  765. package/node_modules/zod/v4/index.d.ts +2 -2
  766. package/node_modules/zod/v4/index.js +3 -2
  767. package/node_modules/zod/v4/locales/ar.cjs +3 -0
  768. package/node_modules/zod/v4/locales/ar.js +3 -0
  769. package/node_modules/zod/v4/locales/az.cjs +3 -0
  770. package/node_modules/zod/v4/locales/az.js +3 -0
  771. package/node_modules/zod/v4/locales/be.cjs +10 -0
  772. package/node_modules/zod/v4/locales/be.js +10 -0
  773. package/node_modules/zod/v4/locales/bg.cjs +3 -0
  774. package/node_modules/zod/v4/locales/bg.js +3 -0
  775. package/node_modules/zod/v4/locales/bn.cjs +138 -0
  776. package/node_modules/zod/v4/locales/bn.d.cts +5 -0
  777. package/node_modules/zod/v4/locales/bn.d.ts +4 -0
  778. package/node_modules/zod/v4/locales/bn.js +111 -0
  779. package/node_modules/zod/v4/locales/ca.cjs +3 -0
  780. package/node_modules/zod/v4/locales/ca.js +3 -0
  781. package/node_modules/zod/v4/locales/ckb.cjs +158 -0
  782. package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
  783. package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
  784. package/node_modules/zod/v4/locales/ckb.js +131 -0
  785. package/node_modules/zod/v4/locales/cs.cjs +3 -0
  786. package/node_modules/zod/v4/locales/cs.js +3 -0
  787. package/node_modules/zod/v4/locales/da.cjs +5 -2
  788. package/node_modules/zod/v4/locales/da.js +5 -2
  789. package/node_modules/zod/v4/locales/de.cjs +3 -0
  790. package/node_modules/zod/v4/locales/de.js +3 -0
  791. package/node_modules/zod/v4/locales/el.cjs +1 -0
  792. package/node_modules/zod/v4/locales/el.js +1 -0
  793. package/node_modules/zod/v4/locales/en.cjs +14 -4
  794. package/node_modules/zod/v4/locales/en.js +14 -4
  795. package/node_modules/zod/v4/locales/eo.cjs +3 -0
  796. package/node_modules/zod/v4/locales/eo.js +3 -0
  797. package/node_modules/zod/v4/locales/es.cjs +2 -0
  798. package/node_modules/zod/v4/locales/es.js +2 -0
  799. package/node_modules/zod/v4/locales/fa.cjs +3 -0
  800. package/node_modules/zod/v4/locales/fa.js +3 -0
  801. package/node_modules/zod/v4/locales/fi.cjs +3 -0
  802. package/node_modules/zod/v4/locales/fi.js +3 -0
  803. package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
  804. package/node_modules/zod/v4/locales/fr-CA.js +3 -0
  805. package/node_modules/zod/v4/locales/fr.cjs +16 -14
  806. package/node_modules/zod/v4/locales/fr.js +16 -14
  807. package/node_modules/zod/v4/locales/gu.cjs +138 -0
  808. package/node_modules/zod/v4/locales/gu.d.cts +5 -0
  809. package/node_modules/zod/v4/locales/gu.d.ts +4 -0
  810. package/node_modules/zod/v4/locales/gu.js +111 -0
  811. package/node_modules/zod/v4/locales/he.cjs +5 -0
  812. package/node_modules/zod/v4/locales/he.js +5 -0
  813. package/node_modules/zod/v4/locales/hi.cjs +136 -0
  814. package/node_modules/zod/v4/locales/hi.d.cts +5 -0
  815. package/node_modules/zod/v4/locales/hi.d.ts +4 -0
  816. package/node_modules/zod/v4/locales/hi.js +109 -0
  817. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  818. package/node_modules/zod/v4/locales/hr.js +2 -0
  819. package/node_modules/zod/v4/locales/hu.cjs +3 -0
  820. package/node_modules/zod/v4/locales/hu.js +3 -0
  821. package/node_modules/zod/v4/locales/hy.cjs +9 -0
  822. package/node_modules/zod/v4/locales/hy.js +9 -0
  823. package/node_modules/zod/v4/locales/id.cjs +3 -0
  824. package/node_modules/zod/v4/locales/id.js +3 -0
  825. package/node_modules/zod/v4/locales/index.cjs +22 -2
  826. package/node_modules/zod/v4/locales/index.d.cts +10 -0
  827. package/node_modules/zod/v4/locales/index.d.ts +10 -0
  828. package/node_modules/zod/v4/locales/index.js +10 -0
  829. package/node_modules/zod/v4/locales/is.cjs +3 -0
  830. package/node_modules/zod/v4/locales/is.js +3 -0
  831. package/node_modules/zod/v4/locales/it.cjs +3 -0
  832. package/node_modules/zod/v4/locales/it.js +3 -0
  833. package/node_modules/zod/v4/locales/ja.cjs +3 -0
  834. package/node_modules/zod/v4/locales/ja.js +3 -0
  835. package/node_modules/zod/v4/locales/ka.cjs +3 -0
  836. package/node_modules/zod/v4/locales/ka.js +3 -0
  837. package/node_modules/zod/v4/locales/km.cjs +3 -0
  838. package/node_modules/zod/v4/locales/km.js +3 -0
  839. package/node_modules/zod/v4/locales/kn.cjs +141 -0
  840. package/node_modules/zod/v4/locales/kn.d.cts +5 -0
  841. package/node_modules/zod/v4/locales/kn.d.ts +4 -0
  842. package/node_modules/zod/v4/locales/kn.js +114 -0
  843. package/node_modules/zod/v4/locales/ko.cjs +3 -0
  844. package/node_modules/zod/v4/locales/ko.js +3 -0
  845. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  846. package/node_modules/zod/v4/locales/lt.js +2 -0
  847. package/node_modules/zod/v4/locales/mk.cjs +3 -0
  848. package/node_modules/zod/v4/locales/mk.js +3 -0
  849. package/node_modules/zod/v4/locales/ms.cjs +3 -0
  850. package/node_modules/zod/v4/locales/ms.js +3 -0
  851. package/node_modules/zod/v4/locales/ne.cjs +136 -0
  852. package/node_modules/zod/v4/locales/ne.d.cts +5 -0
  853. package/node_modules/zod/v4/locales/ne.d.ts +4 -0
  854. package/node_modules/zod/v4/locales/ne.js +109 -0
  855. package/node_modules/zod/v4/locales/nl.cjs +3 -0
  856. package/node_modules/zod/v4/locales/nl.js +3 -0
  857. package/node_modules/zod/v4/locales/nn.cjs +138 -0
  858. package/node_modules/zod/v4/locales/nn.d.cts +5 -0
  859. package/node_modules/zod/v4/locales/nn.d.ts +4 -0
  860. package/node_modules/zod/v4/locales/nn.js +111 -0
  861. package/node_modules/zod/v4/locales/no.cjs +5 -2
  862. package/node_modules/zod/v4/locales/no.js +5 -2
  863. package/node_modules/zod/v4/locales/ota.cjs +3 -0
  864. package/node_modules/zod/v4/locales/ota.js +3 -0
  865. package/node_modules/zod/v4/locales/pl.cjs +3 -0
  866. package/node_modules/zod/v4/locales/pl.js +3 -0
  867. package/node_modules/zod/v4/locales/ps.cjs +3 -0
  868. package/node_modules/zod/v4/locales/ps.js +3 -0
  869. package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
  870. package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
  871. package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
  872. package/node_modules/zod/v4/locales/pt-BR.js +141 -0
  873. package/node_modules/zod/v4/locales/pt.cjs +87 -55
  874. package/node_modules/zod/v4/locales/pt.js +87 -55
  875. package/node_modules/zod/v4/locales/ro.cjs +1 -0
  876. package/node_modules/zod/v4/locales/ro.js +1 -0
  877. package/node_modules/zod/v4/locales/ru.cjs +10 -0
  878. package/node_modules/zod/v4/locales/ru.js +10 -0
  879. package/node_modules/zod/v4/locales/sk.cjs +141 -0
  880. package/node_modules/zod/v4/locales/sk.d.cts +5 -0
  881. package/node_modules/zod/v4/locales/sk.d.ts +4 -0
  882. package/node_modules/zod/v4/locales/sk.js +114 -0
  883. package/node_modules/zod/v4/locales/sl.cjs +3 -0
  884. package/node_modules/zod/v4/locales/sl.js +3 -0
  885. package/node_modules/zod/v4/locales/sv.cjs +5 -2
  886. package/node_modules/zod/v4/locales/sv.js +5 -2
  887. package/node_modules/zod/v4/locales/ta.cjs +3 -0
  888. package/node_modules/zod/v4/locales/ta.js +3 -0
  889. package/node_modules/zod/v4/locales/th.cjs +3 -0
  890. package/node_modules/zod/v4/locales/th.js +3 -0
  891. package/node_modules/zod/v4/locales/tk.cjs +132 -0
  892. package/node_modules/zod/v4/locales/tk.d.cts +5 -0
  893. package/node_modules/zod/v4/locales/tk.d.ts +4 -0
  894. package/node_modules/zod/v4/locales/tk.js +105 -0
  895. package/node_modules/zod/v4/locales/tr.cjs +3 -0
  896. package/node_modules/zod/v4/locales/tr.js +3 -0
  897. package/node_modules/zod/v4/locales/uk.cjs +3 -0
  898. package/node_modules/zod/v4/locales/uk.js +3 -0
  899. package/node_modules/zod/v4/locales/ur.cjs +3 -0
  900. package/node_modules/zod/v4/locales/ur.js +3 -0
  901. package/node_modules/zod/v4/locales/uz.cjs +1 -0
  902. package/node_modules/zod/v4/locales/uz.js +1 -0
  903. package/node_modules/zod/v4/locales/vi.cjs +3 -0
  904. package/node_modules/zod/v4/locales/vi.js +3 -0
  905. package/node_modules/zod/v4/locales/yo.cjs +3 -0
  906. package/node_modules/zod/v4/locales/yo.js +3 -0
  907. package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
  908. package/node_modules/zod/v4/locales/zh-CN.js +3 -0
  909. package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
  910. package/node_modules/zod/v4/locales/zh-TW.js +3 -0
  911. package/node_modules/zod/v4/mini/checks.cjs +2 -1
  912. package/node_modules/zod/v4/mini/checks.d.cts +1 -1
  913. package/node_modules/zod/v4/mini/checks.d.ts +1 -1
  914. package/node_modules/zod/v4/mini/checks.js +1 -1
  915. package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
  916. package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
  917. package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
  918. package/node_modules/zod/v4/mini/deep-partial.js +13 -0
  919. package/node_modules/zod/v4/mini/external.cjs +12 -1
  920. package/node_modules/zod/v4/mini/external.d.cts +5 -2
  921. package/node_modules/zod/v4/mini/external.d.ts +5 -2
  922. package/node_modules/zod/v4/mini/external.js +3 -1
  923. package/node_modules/zod/v4/mini/in-out.cjs +63 -0
  924. package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
  925. package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
  926. package/node_modules/zod/v4/mini/in-out.js +36 -0
  927. package/node_modules/zod/v4/mini/parse.cjs +3 -1
  928. package/node_modules/zod/v4/mini/parse.d.cts +1 -1
  929. package/node_modules/zod/v4/mini/parse.d.ts +1 -1
  930. package/node_modules/zod/v4/mini/parse.js +1 -1
  931. package/node_modules/zod/v4/mini/schemas.cjs +75 -47
  932. package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
  933. package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
  934. package/node_modules/zod/v4/mini/schemas.js +71 -45
  935. package/openclaw.plugin.json +15 -1
  936. package/package.json +10 -8
  937. package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts +0 -15
  938. package/node_modules/@pierre/diffs/dist/editor/stateStorage.d.ts.map +0 -1
  939. package/node_modules/@pierre/diffs/dist/editor/stateStorage.js +0 -65
  940. package/node_modules/@pierre/diffs/dist/editor/stateStorage.js.map +0 -1
  941. package/node_modules/playwright-core/lib/vite/dashboard/assets/index-CyWAfh-p.js +0 -11
  942. package/node_modules/playwright-core/lib/vite/dashboard/assets/index-DhC616m4.css +0 -1
  943. package/node_modules/playwright-core/lib/vite/recorder/assets/index-DYjdXIbE.js +0 -129
  944. package/node_modules/playwright-core/lib/vite/recorder/assets/index-l_lX622x.css +0 -1
  945. package/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-B-dXF5JN.js +0 -181
  946. package/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.BLFoOugd.css +0 -1
  947. package/node_modules/playwright-core/lib/vite/traceViewer/index.KZ4wOW1K.js +0 -1
  948. package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.Dzuouizj.js +0 -5
  949. package/node_modules/zod/src/v4/core/config.ts +0 -15
  950. /package/dist/{viewer-assets-D3qrnaxI.js → .setup/viewer-assets-D3qrnaxI.mjs} +0 -0
@@ -1,42 +1,53 @@
1
- import { CodeViewItem, CodeViewScrollTarget, DiffLineAnnotation, DiffsEditor, FileContents, LineAnnotation } from "../types.js";
1
+ import { CodeViewItem, CodeViewScrollTarget, DiffLineAnnotation, LineAnnotation } from "../types.js";
2
+ import { EditorChangeEvent, EditorType } from "../editor/types.js";
2
3
  import { GetHoveredLineResult } from "../managers/InteractionManager.js";
3
- import { CodeView as CodeView$1, CodeViewLineSelection, CodeViewOptions } from "../components/CodeView.js";
4
- import { EditorOptions } from "../editor/editor.js";
4
+ import { Editor, EditorOptions } from "../editor/editor.js";
5
+ import { CodeView as CodeView$1, CodeViewItemEditCompleteHandler, CodeViewLineSelection, CodeViewOptions } from "../components/CodeView.js";
5
6
  import { CSSProperties, ReactNode, Ref } from "react";
6
7
 
7
8
  //#region src/react/CodeView.d.ts
8
9
  type CodeViewGutterUtilityGetter = (() => GetHoveredLineResult<'file'> | undefined) | (() => GetHoveredLineResult<'diff'> | undefined);
9
- type CodeViewReactOptions<LAnnotation = undefined> = Omit<CodeViewOptions<LAnnotation>, 'controlledSelection' | 'createEditor' | 'onSelectedLinesChange'>;
10
- interface CodeViewBaseProps<LAnnotation> {
11
- options?: CodeViewReactOptions<LAnnotation>;
10
+ type CodeViewReactOptions<LAnnotation, Caret> = Omit<CodeViewOptions<LAnnotation, Caret>, 'controlledSelection' | 'createEditor' | 'onSelectedLinesChange'>;
11
+ interface CodeViewBaseProps<LAnnotation, Caret> {
12
+ options?: CodeViewReactOptions<LAnnotation, Caret>;
12
13
  /**
13
14
  * Creation-time options passed to the nearest EditProvider factory.
14
15
  * CodeView supplies its item-specific change callback.
15
16
  */
16
- editorOptions?: Omit<EditorOptions<LAnnotation>, 'onChange'>;
17
+ editorOptions?: Omit<EditorOptions<EditorType, LAnnotation, Caret>, 'onChange'>;
18
+ /** Resolve an in-memory retention key for an item's draft and undo history. */
19
+ getEditStateKey?(item: CodeViewItem<LAnnotation>): string | undefined;
17
20
  className?: string;
18
21
  style?: CSSProperties;
19
22
  containerRef?: Ref<HTMLDivElement>;
20
23
  disableWorkerPool?: boolean;
21
24
  selectedLines?: CodeViewLineSelection | null;
22
25
  onSelectedLinesChange?(selection: CodeViewLineSelection | null): void;
23
- onScroll?(scrollTop: number, viewer: CodeView$1<LAnnotation>): void;
26
+ onScroll?(scrollTop: number, viewer: CodeView$1<LAnnotation, Caret>): void;
24
27
  /** Render a non-virtualized node at the very start of the scroll content,
25
28
  * before the first item. Always rendered; scrolls with the content. */
26
29
  renderCodeViewHeader?(): ReactNode;
27
30
  /** Render a non-virtualized node at the very end of the scroll content, after
28
31
  * the last item. Always rendered; scrolls with the content. */
29
32
  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
  /**
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`.
34
+ * Called with the editor's `EditorChangeEvent` and the owning item on every
35
+ * document change. Do not feed it directly back into the controlled item,
36
+ * which can create update loops.
38
37
  */
39
- onItemEditComplete?(item: CodeViewItem<LAnnotation>, file: FileContents, lineAnnotations?: LineAnnotation<LAnnotation>[] | DiffLineAnnotation<LAnnotation>[]): void;
38
+ onItemEditChange?(event: EditorChangeEvent<EditorType, LAnnotation, Caret>, item: CodeViewItem<LAnnotation>): void;
39
+ /**
40
+ * Called once when an edit session ends: edit turned off, the item removed,
41
+ * or the CodeView unmounted (where the result is not installed). Collapse
42
+ * suspends the session instead of completing it. `nextItem` is the accepted
43
+ * replacement CodeView built from `item`: the event's completed
44
+ * `file`/`fileDiff` and annotations, `edit: false`, and a bumped `version`.
45
+ * Return `'accept'` to install the edit — CodeView applies `nextItem` through
46
+ * the item update path when the item still exists, and a controlled owner
47
+ * puts the same `nextItem` into its state — or `'reject'` to revert. The event
48
+ * is frozen; re-key the accepted value in place before accepting.
49
+ */
50
+ onItemEditComplete?: CodeViewItemEditCompleteHandler<LAnnotation, Caret>;
40
51
  renderCustomHeader?(item: CodeViewItem<LAnnotation>): ReactNode;
41
52
  renderHeaderPrefix?(item: CodeViewItem<LAnnotation>): ReactNode;
42
53
  renderHeaderFilenameSuffix?(item: CodeViewItem<LAnnotation>): ReactNode;
@@ -44,16 +55,16 @@ interface CodeViewBaseProps<LAnnotation> {
44
55
  renderAnnotation?(annotation: LineAnnotation<LAnnotation> | DiffLineAnnotation<LAnnotation>, item: CodeViewItem<LAnnotation>): ReactNode;
45
56
  renderGutterUtility?(getHoveredLine: CodeViewGutterUtilityGetter, item: CodeViewItem<LAnnotation>): ReactNode;
46
57
  }
47
- interface ControlledCodeViewProps<LAnnotation> extends CodeViewBaseProps<LAnnotation> {
58
+ interface ControlledCodeViewProps<LAnnotation, Caret> extends CodeViewBaseProps<LAnnotation, Caret> {
48
59
  items: readonly CodeViewItem<LAnnotation>[];
49
60
  initialItems?: never;
50
61
  }
51
- interface UncontrolledCodeViewProps<LAnnotation> extends CodeViewBaseProps<LAnnotation> {
62
+ interface UncontrolledCodeViewProps<LAnnotation, Caret> extends CodeViewBaseProps<LAnnotation, Caret> {
52
63
  initialItems?: readonly CodeViewItem<LAnnotation>[];
53
64
  items?: never;
54
65
  }
55
- type CodeViewProps<LAnnotation = undefined> = ControlledCodeViewProps<LAnnotation> | UncontrolledCodeViewProps<LAnnotation>;
56
- interface CodeViewHandle<LAnnotation> {
66
+ type CodeViewProps<LAnnotation, Caret> = ControlledCodeViewProps<LAnnotation, Caret> | UncontrolledCodeViewProps<LAnnotation, Caret>;
67
+ interface CodeViewHandle<LAnnotation, Caret> {
57
68
  addItems(items: readonly CodeViewItem<LAnnotation>[]): void;
58
69
  getItem(id: string): CodeViewItem<LAnnotation> | undefined;
59
70
  removeItem(id: string): boolean;
@@ -63,13 +74,13 @@ interface CodeViewHandle<LAnnotation> {
63
74
  setSelectedLines(selection: CodeViewLineSelection | null): void;
64
75
  getSelectedLines(): CodeViewLineSelection | null;
65
76
  clearSelectedLines(): void;
66
- getEditor(id: string): DiffsEditor<LAnnotation> | undefined;
67
- getInstance(): CodeView$1<LAnnotation> | undefined;
77
+ getEditor(id: string): Editor<'file', LAnnotation, Caret> | Editor<'file-diff', LAnnotation, Caret> | undefined;
78
+ getInstance(): CodeView$1<LAnnotation, Caret> | undefined;
68
79
  }
69
- type CodeViewComponent = <LAnnotation = undefined>(props: CodeViewProps<LAnnotation> & {
70
- ref?: React.Ref<CodeViewHandle<LAnnotation>>;
80
+ type CodeViewComponent = <LAnnotation = undefined, Caret = undefined>(props: CodeViewProps<LAnnotation, Caret> & {
81
+ ref?: React.Ref<CodeViewHandle<LAnnotation, Caret>>;
71
82
  }) => React.JSX.Element;
72
83
  declare const CodeView: CodeViewComponent;
73
84
  //#endregion
74
- export { CodeView, CodeViewHandle, CodeViewProps, CodeViewReactOptions, ControlledCodeViewProps, UncontrolledCodeViewProps };
85
+ export { CodeView, CodeViewHandle, type CodeViewItemEditCompleteHandler, CodeViewProps, CodeViewReactOptions, ControlledCodeViewProps, UncontrolledCodeViewProps };
75
86
  //# sourceMappingURL=CodeView.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"CodeView.d.ts","names":[],"sources":["../../src/react/CodeView.tsx"],"mappings":";;;;;;;;KAwDK,2BAAA,UACM,oBAAA,+BACA,oBAAoB;AAAA,KAEnB,oBAAA,uBAA2C,IAAA,CACrD,eAAA,CAAgB,WAAA,EAAa,KAAA;AAAA,UAIrB,iBAAA;EACR,OAAA,GAAU,oBAAA,CAAqB,WAAA,EAAa,KAAA;;;AAfE;;EAoB9C,aAAA,GAAgB,IAAA,CACd,aAAA,CAAc,UAAA,EAAY,WAAA,EAAa,KAAA;EAfhC;EAmBT,eAAA,EAAiB,IAAA,EAAM,YAAA,CAAa,WAAA;EACpC,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,EAAa,KAAA;EAvBP;;EA0BzD,oBAAA,KAAyB,SAAA;EA1BmB;;EA6B5C,oBAAA,KAAyB,SAAA;EA5BT;;;AAAkB;AAElC;EAgCA,gBAAA,EACE,KAAA,EAAO,iBAAA,CAAkB,UAAA,EAAY,WAAA,EAAa,KAAA,GAClD,IAAA,EAAM,YAAA,CAAa,WAAA;EAhCI;;;;;;;;;;;EA6CzB,kBAAA,GAAqB,+BAAA,CAAgC,WAAA,EAAa,KAAA;EAClE,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,6BAGP,iBAAA,CAAkB,WAAA,EAAa,KAAA;EACvC,KAAA,WAAgB,YAAA,CAAa,WAAA;EAC7B,YAAA;AAAA;AAAA,UAGe,yBAAA,6BAGP,iBAAA,CAAkB,WAAA,EAAa,KAAA;EAGvC,YAAA,YAAwB,YAAA,CAAa,WAAA;EACrC,KAAA;AAAA;AAAA,KAGU,aAAA,uBACR,uBAAA,CAAwB,WAAA,EAAa,KAAA,IACrC,yBAAA,CAA0B,WAAA,EAAa,KAAA;AAAA,UAE1B,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,CACE,EAAA,WAEE,MAAA,SAAe,WAAA,EAAa,KAAA,IAC5B,MAAA,cAAoB,WAAA,EAAa,KAAA;EAErC,WAAA,IAAe,UAAA,CAAc,WAAA,EAAa,KAAA;AAAA;AAAA,KAGvC,iBAAA,gDACH,KAAA,EAAO,aAAA,CAAc,WAAA,EAAa,KAAA;EAChC,GAAA,GAAM,KAAA,CAAM,GAAA,CAAI,cAAA,CAAe,WAAA,EAAa,KAAA;AAAA,MAE3C,KAAA,CAAM,GAAA,CAAI,OAAA;AAAA,cAueF,QAAA,EAAwC,iBAAiB"}
@@ -23,7 +23,7 @@ function createDefaultCache(controlled) {
23
23
  };
24
24
  }
25
25
  function CodeViewInner(props, ref) {
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
+ const { className, containerRef, disableWorkerPool = false, editorOptions, getEditStateKey, initialItems, items: controlledItems, onItemEditChange, onItemEditComplete, onScroll, onSelectedLinesChange, options, renderAnnotation, renderCodeViewFooter, renderCodeViewHeader, renderCustomHeader, renderGutterUtility, renderHeaderFilenameSuffix, renderHeaderMetadata, renderHeaderPrefix, selectedLines, style } = props;
27
27
  const controlled = controlledItems !== void 0;
28
28
  const contextCreateEditor = useCreateEditor();
29
29
  const poolManager = useContext(WorkerPoolContext);
@@ -39,21 +39,17 @@ function CodeViewInner(props, ref) {
39
39
  onSelectedLinesChange?.(selection);
40
40
  });
41
41
  const controlledSelection = selectedLines !== void 0;
42
- const createEditor = useStableCallback((options) => {
42
+ const createEditor = useStableCallback((editorType, options, editStateKey) => {
43
43
  if (contextCreateEditor == null) throw new Error("CodeView: EditContext is not attached");
44
- const editor = contextCreateEditor({
44
+ return contextCreateEditor(editorType, {
45
45
  ...editorOptions,
46
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);
47
+ }, editStateKey);
53
48
  });
54
- const emitItemEditComplete = useStableCallback((item, file, lineAnnotations) => {
55
- onItemEditComplete?.(item, file, lineAnnotations);
49
+ const emitItemEditChange = useStableCallback((event, item) => {
50
+ onItemEditChange?.(event, item);
56
51
  });
52
+ const emitItemEditComplete = useStableCallback((event, item, nextItem) => onItemEditComplete?.(event, item, nextItem) ?? "reject");
57
53
  const managedOptions = useMemo(() => createManagedCodeViewOptions({
58
54
  options,
59
55
  hasCustomHeader,
@@ -62,6 +58,7 @@ function CodeViewInner(props, ref) {
62
58
  hasCodeViewFooter,
63
59
  onSelectedLinesChange: onSelectedLinesChange != null ? emitSelectedLinesChange : void 0,
64
60
  controlledSelection,
61
+ getEditStateKey,
65
62
  createEditor: contextCreateEditor != null ? createEditor : void 0,
66
63
  onItemEditChange: onItemEditChange != null ? emitItemEditChange : void 0,
67
64
  onItemEditComplete: onItemEditComplete != null ? emitItemEditComplete : void 0
@@ -76,6 +73,7 @@ function CodeViewInner(props, ref) {
76
73
  hasCodeViewHeader,
77
74
  hasCustomHeader,
78
75
  hasGutterRenderer,
76
+ getEditStateKey,
79
77
  onItemEditChange,
80
78
  onItemEditComplete,
81
79
  onSelectedLinesChange,
@@ -301,13 +299,14 @@ function createSlotContentStore() {
301
299
  }
302
300
  };
303
301
  }
304
- function createManagedCodeViewOptions({ options, hasCustomHeader, hasGutterRenderer, hasCodeViewHeader, hasCodeViewFooter, onSelectedLinesChange, controlledSelection, createEditor, onItemEditChange, onItemEditComplete }) {
302
+ function createManagedCodeViewOptions({ options, hasCustomHeader, hasGutterRenderer, hasCodeViewHeader, hasCodeViewFooter, onSelectedLinesChange, controlledSelection, getEditStateKey, createEditor, onItemEditChange, onItemEditComplete }) {
305
303
  const managedOptions = {
306
304
  ...options,
307
305
  controlledSelection,
308
306
  onSelectedLinesChange,
309
307
  createEditor
310
308
  };
309
+ if (getEditStateKey != null) managedOptions.getEditStateKey = getEditStateKey;
311
310
  if (onItemEditChange != null) managedOptions.onItemEditChange = onItemEditChange;
312
311
  if (onItemEditComplete != null) managedOptions.onItemEditComplete = onItemEditComplete;
313
312
  if (hasCustomHeader) managedOptions.renderCustomHeader = noopRender;
@@ -363,7 +362,8 @@ function renderCodeViewItemChildren({ renderedItem, renderCustomHeader, renderHe
363
362
  renderAnnotation: renderAnnotation != null ? (annotation) => renderAnnotation(annotation, item) : void 0,
364
363
  lineAnnotations: item.annotations,
365
364
  renderGutterUtility: renderGutterUtility != null ? (getHoveredLine) => renderGutterUtility(getHoveredLine, item) : void 0,
366
- getHoveredLine: instance.getHoveredLine
365
+ getHoveredLine: instance.getHoveredLine,
366
+ getAnnotationSlotName: instance.getAnnotationSlotName
367
367
  });
368
368
  } else {
369
369
  const { item, instance } = renderedItem;
@@ -376,7 +376,8 @@ function renderCodeViewItemChildren({ renderedItem, renderCustomHeader, renderHe
376
376
  renderAnnotation: renderAnnotation != null ? (annotation) => renderAnnotation(annotation, item) : void 0,
377
377
  lineAnnotations: item.annotations,
378
378
  renderGutterUtility: renderGutterUtility != null ? (getHoveredLine) => renderGutterUtility(getHoveredLine, item) : void 0,
379
- getHoveredLine: instance.getHoveredLine
379
+ getHoveredLine: instance.getHoveredLine,
380
+ getAnnotationSlotName: instance.getAnnotationSlotName
380
381
  });
381
382
  }
382
383
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CodeView.js","names":["CodeViewClass"],"sources":["../../src/react/CodeView.tsx"],"sourcesContent":["'use client';\n\nimport {\n type CSSProperties,\n forwardRef,\n memo,\n type ReactNode,\n type Ref,\n useContext,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from 'react';\nimport { createPortal, flushSync } from 'react-dom';\n\nimport type { EditorOptions } from '../edit';\nimport {\n areOptionsEqual,\n CodeView as CodeViewClass,\n type CodeViewCoordinator,\n type CodeViewCreateEditorOptions,\n type CodeViewItem,\n type CodeViewLineSelection,\n type CodeViewOptions,\n type CodeViewRenderedItem,\n type CodeViewScrollTarget,\n type CodeViewSlotSnapshot,\n type DiffLineAnnotation,\n type DiffsEditor,\n type FileContents,\n type GetHoveredLineResult,\n type LineAnnotation,\n} from '../index';\nimport { areManagedSnapshotsEqual } from '../utils/areManagedSnapshotsEqual';\nimport { useCreateEditor } from './EditContext';\nimport { renderDiffChildren } from './utils/renderDiffChildren';\nimport { renderFileChildren } from './utils/renderFileChildren';\nimport { useStableCallback } from './utils/useStableCallback';\nimport { WorkerPoolContext } from './WorkerPoolContext';\n\nconst useIsomorphicLayoutEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ntype CodeViewGutterUtilityGetter =\n | (() => GetHoveredLineResult<'file'> | undefined)\n | (() => GetHoveredLineResult<'diff'> | undefined);\n\nexport type CodeViewReactOptions<LAnnotation = undefined> = Omit<\n CodeViewOptions<LAnnotation>,\n 'controlledSelection' | 'createEditor' | 'onSelectedLinesChange'\n>;\n\ninterface CodeViewBaseProps<LAnnotation> {\n options?: CodeViewReactOptions<LAnnotation>;\n /**\n * Creation-time options passed to the nearest EditProvider factory.\n * CodeView supplies its item-specific change callback.\n */\n editorOptions?: Omit<EditorOptions<LAnnotation>, 'onChange'>;\n className?: string;\n style?: CSSProperties;\n containerRef?: Ref<HTMLDivElement>;\n disableWorkerPool?: boolean;\n selectedLines?: CodeViewLineSelection | null;\n onSelectedLinesChange?(selection: CodeViewLineSelection | null): void;\n onScroll?(scrollTop: number, viewer: CodeViewClass<LAnnotation>): void;\n /** Render a non-virtualized node at the very start of the scroll content,\n * before the first item. Always rendered; scrolls with the content. */\n renderCodeViewHeader?(): ReactNode;\n /** Render a non-virtualized node at the very end of the scroll content, after\n * the last item. Always rendered; scrolls with the content. */\n renderCodeViewFooter?(): ReactNode;\n /** Called with the owning item on every edited-document change. */\n onItemEditChange?(\n item: CodeViewItem<LAnnotation>,\n file: FileContents,\n lineAnnotations?:\n | LineAnnotation<LAnnotation>[]\n | DiffLineAnnotation<LAnnotation>[]\n ): void;\n /**\n * Called once with the final contents when an item's edit session ends\n * (edit turned off, item removed or collapsed). Not called for sessions\n * that produced no changes. Committing is user-space: make one combined\n * item write carrying the new file/fileDiff (with a fresh `cacheKey`,\n * since the contents changed) along with `edit: false`.\n */\n onItemEditComplete?(\n item: CodeViewItem<LAnnotation>,\n file: FileContents,\n lineAnnotations?:\n | LineAnnotation<LAnnotation>[]\n | DiffLineAnnotation<LAnnotation>[]\n ): void;\n renderCustomHeader?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderHeaderPrefix?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderHeaderFilenameSuffix?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderHeaderMetadata?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderAnnotation?(\n annotation: LineAnnotation<LAnnotation> | DiffLineAnnotation<LAnnotation>,\n item: CodeViewItem<LAnnotation>\n ): ReactNode;\n renderGutterUtility?(\n getHoveredLine: CodeViewGutterUtilityGetter,\n item: CodeViewItem<LAnnotation>\n ): ReactNode;\n}\n\nexport interface ControlledCodeViewProps<\n LAnnotation,\n> extends CodeViewBaseProps<LAnnotation> {\n items: readonly CodeViewItem<LAnnotation>[];\n initialItems?: never;\n}\n\nexport interface UncontrolledCodeViewProps<\n LAnnotation,\n> extends CodeViewBaseProps<LAnnotation> {\n // Seeds the imperative CodeView instance once. Later item changes should go\n // through the ref API instead of being reconciled from React props.\n initialItems?: readonly CodeViewItem<LAnnotation>[];\n items?: never;\n}\n\nexport type CodeViewProps<LAnnotation = undefined> =\n | ControlledCodeViewProps<LAnnotation>\n | UncontrolledCodeViewProps<LAnnotation>;\n\nexport interface CodeViewHandle<LAnnotation> {\n addItems(items: readonly CodeViewItem<LAnnotation>[]): void;\n getItem(id: string): CodeViewItem<LAnnotation> | undefined;\n removeItem(id: string): boolean;\n updateItem(item: CodeViewItem<LAnnotation>): boolean;\n updateItemId(oldId: string, newId: string): boolean;\n scrollTo(target: CodeViewScrollTarget): void;\n setSelectedLines(selection: CodeViewLineSelection | null): void;\n getSelectedLines(): CodeViewLineSelection | null;\n clearSelectedLines(): void;\n getEditor(id: string): DiffsEditor<LAnnotation> | undefined;\n getInstance(): CodeViewClass<LAnnotation> | undefined;\n}\n\ntype CodeViewComponent = <LAnnotation = undefined>(\n props: CodeViewProps<LAnnotation> & {\n ref?: React.Ref<CodeViewHandle<LAnnotation>>;\n }\n) => React.JSX.Element;\n\ntype SlotPortalsComponent = <LAnnotation = undefined>(\n props: SlotPortalsProps<LAnnotation>\n) => React.JSX.Element;\n\ninterface ManagedContentStore<LAnnotation> {\n getSnapshot(): CodeViewSlotSnapshot<LAnnotation> | undefined;\n publish(snapshot: CodeViewSlotSnapshot<LAnnotation> | undefined): void;\n subscribe(listener: () => void): () => void;\n}\n\ninterface CachedDataRef<LAnnotation> {\n instance: CodeViewClass<LAnnotation> | undefined;\n items: readonly CodeViewItem<LAnnotation>[] | undefined;\n controlled: boolean;\n managedOptions: CodeViewOptions<LAnnotation> | undefined;\n disableFlushSync: boolean;\n slotCoordinator: CodeViewCoordinator<LAnnotation> | undefined;\n}\n\nfunction createDefaultCache<LAnnotation>(\n controlled: boolean\n): CachedDataRef<LAnnotation> {\n return {\n instance: undefined,\n items: undefined,\n controlled,\n managedOptions: undefined,\n disableFlushSync: false,\n slotCoordinator: undefined,\n };\n}\n\nfunction CodeViewInner<LAnnotation = undefined>(\n props: CodeViewProps<LAnnotation>,\n ref: React.ForwardedRef<CodeViewHandle<LAnnotation>>\n): React.JSX.Element {\n const {\n className,\n containerRef,\n disableWorkerPool = false,\n editorOptions,\n initialItems,\n items: controlledItems,\n onItemEditChange,\n onItemEditComplete,\n onScroll,\n onSelectedLinesChange,\n options,\n renderAnnotation,\n renderCodeViewFooter,\n renderCodeViewHeader,\n renderCustomHeader,\n renderGutterUtility,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderHeaderPrefix,\n selectedLines,\n style,\n } = props;\n const controlled = controlledItems !== undefined;\n const contextCreateEditor = useCreateEditor<LAnnotation>();\n const poolManager = useContext(WorkerPoolContext);\n const cachedDataRef = useRef<CachedDataRef<LAnnotation>>(\n createDefaultCache<LAnnotation>(controlled)\n );\n const hasCustomHeader = renderCustomHeader != null;\n const hasAnnotationRenderer = renderAnnotation != null;\n const hasGutterRenderer = renderGutterUtility != null;\n const hasHeaderRenderers =\n hasCustomHeader ||\n renderHeaderPrefix != null ||\n renderHeaderFilenameSuffix != null ||\n renderHeaderMetadata != null;\n const hasRenderers =\n hasHeaderRenderers || hasAnnotationRenderer || hasGutterRenderer;\n const hasCodeViewHeader = renderCodeViewHeader != null;\n const hasCodeViewFooter = renderCodeViewFooter != null;\n const emitSelectedLinesChange = useStableCallback(\n (selection: CodeViewLineSelection | null) => {\n onSelectedLinesChange?.(selection);\n }\n );\n const controlledSelection = selectedLines !== undefined;\n\n // Keep the adapter stable so provider and editor-option changes affect the\n // next item edit session without forcing CodeView to reconcile active editors.\n const createEditor = useStableCallback(\n (\n options: CodeViewCreateEditorOptions<LAnnotation>\n ): DiffsEditor<LAnnotation> => {\n if (contextCreateEditor == null) {\n throw new Error('CodeView: EditContext is not attached');\n }\n\n const editor = contextCreateEditor({\n ...editorOptions,\n ...options,\n });\n if (editor == null) {\n throw new Error(\n 'CodeView: EditProvider.createEditor must return an editor instance'\n );\n }\n return editor;\n }\n );\n const emitItemEditChange = useStableCallback(\n (\n item: CodeViewItem<LAnnotation>,\n file: FileContents,\n lineAnnotations?:\n | LineAnnotation<LAnnotation>[]\n | DiffLineAnnotation<LAnnotation>[]\n ) => {\n onItemEditChange?.(item, file, lineAnnotations);\n }\n );\n const emitItemEditComplete = useStableCallback(\n (\n item: CodeViewItem<LAnnotation>,\n file: FileContents,\n lineAnnotations?:\n | LineAnnotation<LAnnotation>[]\n | DiffLineAnnotation<LAnnotation>[]\n ) => {\n onItemEditComplete?.(item, file, lineAnnotations);\n }\n );\n\n const managedOptions = useMemo(\n () =>\n createManagedCodeViewOptions({\n options,\n hasCustomHeader,\n hasGutterRenderer,\n hasCodeViewHeader,\n hasCodeViewFooter,\n onSelectedLinesChange:\n onSelectedLinesChange != null ? emitSelectedLinesChange : undefined,\n controlledSelection,\n createEditor: contextCreateEditor != null ? createEditor : undefined,\n onItemEditChange:\n onItemEditChange != null ? emitItemEditChange : undefined,\n onItemEditComplete:\n onItemEditComplete != null ? emitItemEditComplete : undefined,\n }),\n [\n contextCreateEditor,\n controlledSelection,\n createEditor,\n emitItemEditChange,\n emitItemEditComplete,\n emitSelectedLinesChange,\n hasCodeViewFooter,\n hasCodeViewHeader,\n hasCustomHeader,\n hasGutterRenderer,\n onItemEditChange,\n onItemEditComplete,\n onSelectedLinesChange,\n options,\n ]\n );\n\n const [slotContentStore] = useState<ManagedContentStore<LAnnotation>>(() =>\n createSlotContentStore()\n );\n const [, forceUpdate] = useState<unknown>({});\n\n const nodeRef = useStableCallback((node: HTMLDivElement | null) => {\n // If we have a pre-existing instance and there's no node or the node being\n // passed in is NOT the same as before, then we need to clean up and\n // garbage collect the old instance\n if (\n cachedDataRef.current.instance != null &&\n (node == null ||\n node !== cachedDataRef.current.instance.getContainerElement())\n ) {\n cachedDataRef.current.instance.cleanUp();\n slotContentStore.publish(undefined);\n cachedDataRef.current = createDefaultCache<LAnnotation>(controlled);\n }\n\n // If our node matches the existing node then we should not attempt to\n // setup. This is a case that should never be possible to hit, but just in\n // case, lets make sure we don't re-setup an instance that is already setup\n // properly\n if (\n node != null &&\n node !== cachedDataRef.current.instance?.getContainerElement()\n ) {\n cachedDataRef.current.instance = new CodeViewClass<LAnnotation>(\n managedOptions,\n !disableWorkerPool ? poolManager : undefined,\n true\n );\n cachedDataRef.current.instance.setup(node);\n }\n\n if (typeof containerRef === 'function') {\n containerRef(node);\n } else if (containerRef != null) {\n containerRef.current = node;\n }\n });\n\n const onSnapshotChange = useStableCallback(\n (snapshot: CodeViewSlotSnapshot<LAnnotation> | undefined) => {\n if (cachedDataRef.current.disableFlushSync) {\n slotContentStore.publish(snapshot);\n } else {\n flushSync(() => {\n slotContentStore.publish(snapshot);\n });\n }\n }\n );\n\n const slotCoordinator: CodeViewCoordinator<LAnnotation> | undefined =\n useMemo(() => {\n // A coordinator is needed whenever React portals anything — per-item\n // slots and codeview header and footer\n if (\n !hasHeaderRenderers &&\n !hasAnnotationRenderer &&\n !hasGutterRenderer &&\n !hasCodeViewHeader &&\n !hasCodeViewFooter\n ) {\n return undefined;\n } else {\n return {\n hasHeaderRenderers,\n hasAnnotationRenderer,\n hasGutterRenderer,\n onSnapshotChange,\n };\n }\n }, [\n onSnapshotChange,\n hasAnnotationRenderer,\n hasGutterRenderer,\n hasHeaderRenderers,\n hasCodeViewHeader,\n hasCodeViewFooter,\n ]);\n\n useIsomorphicLayoutEffect(() => {\n return onScroll != null\n ? cachedDataRef.current.instance?.subscribeToScroll(onScroll)\n : undefined;\n });\n\n useIsomorphicLayoutEffect(() => {\n const {\n instance,\n controlled: prevControlled,\n items: prevItems,\n managedOptions: prevManagedOptions,\n slotCoordinator: prevSlotCoordinator,\n } = cachedDataRef.current;\n if (instance == null) {\n return;\n }\n\n try {\n cachedDataRef.current.disableFlushSync = true;\n let shouldRender = false;\n\n if (!areOptionsEqual(managedOptions, prevManagedOptions)) {\n cachedDataRef.current.managedOptions = managedOptions;\n instance.setOptions(managedOptions);\n shouldRender = true;\n }\n\n if (prevControlled !== controlled) {\n console.error(\n 'CodeView: cannot switch between controlled and uncontrolled modes. Remount with a new key instead.'\n );\n return;\n }\n\n if (controlled) {\n if (controlledItems !== prevItems) {\n if (areItemListsEqual(prevItems, controlledItems)) {\n cachedDataRef.current.items = controlledItems;\n } else if (isAppendOnlyItemUpdate(prevItems, controlledItems)) {\n cachedDataRef.current.items = controlledItems;\n instance.addItems(controlledItems.slice(prevItems.length));\n } else {\n cachedDataRef.current.items = controlledItems;\n instance.setItems(controlledItems);\n shouldRender = true;\n }\n }\n }\n // If uncontrolled, we should only ever set items once, and just depend\n // on imperative instance changes going forward\n else if (prevItems == null) {\n const seedItems = initialItems ?? [];\n cachedDataRef.current.items = seedItems;\n if (seedItems.length > 0) {\n instance.setItems(seedItems);\n shouldRender = true;\n }\n }\n\n if (selectedLines !== undefined) {\n instance.setSelectedLines(selectedLines, { notify: false });\n }\n\n const slotPublish = instance.setSlotCoordinator(slotCoordinator);\n let forceInlinePublish = false;\n if (slotCoordinator !== prevSlotCoordinator) {\n if (slotCoordinator == null || prevSlotCoordinator == null) {\n forceInlinePublish = true;\n }\n cachedDataRef.current.slotCoordinator = slotCoordinator;\n }\n\n if (shouldRender || slotPublish) {\n instance.render(true);\n }\n\n // FIXME(amadeus): This feels kinda bad and flakey with regards to how\n // other things are working... it makes me think that we should\n // re-architect the slotCoordinator a bit, and maybe DON'T make it an\n // undefineable thing...\n if (slotPublish && slotCoordinator == null) {\n slotContentStore.publish(undefined);\n }\n\n if (forceInlinePublish) {\n forceUpdate({});\n }\n } finally {\n cachedDataRef.current.disableFlushSync = false;\n }\n });\n\n // Setup the ref handler\n useImperativeHandle(\n ref,\n (): CodeViewHandle<LAnnotation> => ({\n addItems(items) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'addItems');\n if (instance == null) {\n console.error(\n 'CodeView.addItems: no valid instance to append items with',\n items\n );\n } else {\n instance.addItems(items);\n }\n },\n getItem(id) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error('CodeView.getItem: no valid instance exists', id);\n return undefined;\n } else {\n return instance.getItem(id);\n }\n },\n removeItem(id) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'removeItem');\n if (instance == null) {\n console.error(\n 'CodeView.removeItem: no valid instance to remove item from',\n id\n );\n return false;\n }\n\n return instance.removeItem(id);\n },\n updateItem(item) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'updateItem');\n if (instance == null) {\n console.error(\n 'CodeView.updateItem: no valid instance to update item with',\n item\n );\n return false;\n }\n\n return instance.updateItem(item);\n },\n updateItemId(oldId, newId) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'updateItemId');\n if (instance == null) {\n console.error(\n 'CodeView.updateItemId: no valid instance to update item id with',\n oldId,\n newId\n );\n return false;\n }\n\n return instance.updateItemId(oldId, newId);\n },\n scrollTo(target) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error(\n 'CodeView.scrollTo: no valid instance to scroll with',\n target\n );\n } else {\n instance.scrollTo(target);\n }\n },\n setSelectedLines(selection) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error(\n 'CodeView.setSelectedLines: no valid instance to update selection with',\n selection\n );\n } else {\n instance.setSelectedLines(selection, { notify: false });\n emitSelectedLinesChange(selection);\n }\n },\n getSelectedLines() {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error('CodeView.getSelectedLines: no valid instance exists');\n return null;\n } else {\n return instance.getSelectedLines();\n }\n },\n clearSelectedLines() {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error(\n 'CodeView.clearSelectedLines: no valid instance to update selection with'\n );\n } else {\n instance.clearSelectedLines({ notify: false });\n emitSelectedLinesChange(null);\n }\n },\n getEditor(id) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error('CodeView.getEditor: no valid instance exists', id);\n return undefined;\n }\n\n return instance.getEditor(id);\n },\n getInstance() {\n return cachedDataRef.current.instance;\n },\n }),\n [emitSelectedLinesChange]\n );\n\n return (\n <>\n <div ref={nodeRef} className={className} style={style} />\n {(hasRenderers || hasCodeViewHeader || hasCodeViewFooter) && (\n <SlotPortals<LAnnotation>\n managedContentStore={slotContentStore}\n renderCustomHeader={renderCustomHeader}\n renderHeaderPrefix={renderHeaderPrefix}\n renderHeaderFilenameSuffix={renderHeaderFilenameSuffix}\n renderHeaderMetadata={renderHeaderMetadata}\n renderAnnotation={renderAnnotation}\n renderGutterUtility={renderGutterUtility}\n renderCodeViewHeader={renderCodeViewHeader}\n renderCodeViewFooter={renderCodeViewFooter}\n />\n )}\n </>\n );\n}\n\n// React was a mistake\nexport const CodeView = forwardRef(CodeViewInner) as CodeViewComponent;\n\nfunction isAppendOnlyItemUpdate<LAnnotation>(\n previousItems: readonly CodeViewItem<LAnnotation>[] | undefined,\n nextItems: readonly CodeViewItem<LAnnotation>[]\n): previousItems is readonly CodeViewItem<LAnnotation>[] {\n if (previousItems == null || nextItems.length <= previousItems.length) {\n return false;\n }\n\n if (previousItems.length === 0) {\n return true;\n }\n\n for (let index = 0; index < previousItems.length; index++) {\n if (nextItems[index] !== previousItems[index]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction areItemListsEqual<LAnnotation>(\n previousItems: readonly CodeViewItem<LAnnotation>[] | undefined,\n nextItems: readonly CodeViewItem<LAnnotation>[]\n): boolean {\n if (previousItems == null || previousItems.length !== nextItems.length) {\n return false;\n }\n\n for (let index = 0; index < previousItems.length; index++) {\n if (previousItems[index] !== nextItems[index]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction assertUncontrolledCodeViewAction(\n controlled: boolean,\n action: string\n): void {\n if (!controlled) {\n return;\n }\n\n throw new Error(\n `CodeView.${action} cannot be used when CodeView is controlled. Use initialItems for imperative item updates.`\n );\n}\n\nfunction createSlotContentStore<\n LAnnotation,\n>(): ManagedContentStore<LAnnotation> {\n let snapshot: CodeViewSlotSnapshot<LAnnotation> | undefined;\n const listeners = new Set<() => void>();\n\n return {\n getSnapshot() {\n return snapshot;\n },\n publish(nextSnapshot) {\n if (areManagedSnapshotsEqual(snapshot, nextSnapshot)) {\n return;\n }\n\n snapshot = nextSnapshot;\n for (const listener of listeners) {\n listener();\n }\n },\n subscribe(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n };\n}\n\ninterface CreateManagedCodeViewOptionsProps<LAnnotation> {\n options: CodeViewReactOptions<LAnnotation> | undefined;\n hasCustomHeader: boolean;\n hasGutterRenderer: boolean;\n hasCodeViewHeader: boolean;\n hasCodeViewFooter: boolean;\n onSelectedLinesChange?(selection: CodeViewLineSelection | null): void;\n controlledSelection: boolean;\n createEditor: CodeViewOptions<LAnnotation>['createEditor'];\n onItemEditChange: CodeViewOptions<LAnnotation>['onItemEditChange'];\n onItemEditComplete: CodeViewOptions<LAnnotation>['onItemEditComplete'];\n}\n\nfunction createManagedCodeViewOptions<LAnnotation>({\n options,\n hasCustomHeader,\n hasGutterRenderer,\n hasCodeViewHeader,\n hasCodeViewFooter,\n onSelectedLinesChange,\n controlledSelection,\n createEditor,\n onItemEditChange,\n onItemEditComplete,\n}: CreateManagedCodeViewOptionsProps<LAnnotation>): CodeViewOptions<LAnnotation> {\n const managedOptions: CodeViewOptions<LAnnotation> = {\n ...options,\n controlledSelection,\n onSelectedLinesChange,\n createEditor,\n };\n\n // Prop-level editor callbacks win over their options-object counterparts,\n // but an absent prop must not clobber a value provided via `options`.\n if (onItemEditChange != null) {\n managedOptions.onItemEditChange = onItemEditChange;\n }\n if (onItemEditComplete != null) {\n managedOptions.onItemEditComplete = onItemEditComplete;\n }\n\n // The imperative CodeView adapters use this callback's presence to\n // switch file and diff headers into custom-slot mode. React portals\n // provide the actual header content, so this placeholder\n // intentionally returns nothing.\n if (hasCustomHeader) {\n managedOptions.renderCustomHeader = noopRender;\n }\n\n // The imperative CodeView adapters use this callback's presence to\n // create the custom gutter utility slot. React portals provide the\n // actual content, so this placeholder intentionally returns nothing.\n if (hasGutterRenderer) {\n managedOptions.renderGutterUtility = noopRender;\n }\n\n // The imperative CodeView adapters use these callbacks' presence to create the\n // header/footer host elements. React portals the actual content into them (via\n // the slot snapshot), so these placeholders intentionally return nothing.\n if (hasCodeViewHeader) {\n managedOptions.renderCodeViewHeader = noopRender;\n }\n if (hasCodeViewFooter) {\n managedOptions.renderCodeViewFooter = noopRender;\n }\n\n return managedOptions;\n}\n\ninterface RenderCodeViewItemChildrenProps<LAnnotation> {\n renderedItem: CodeViewRenderedItem<LAnnotation>;\n renderCustomHeader: CodeViewBaseProps<LAnnotation>['renderCustomHeader'];\n renderHeaderPrefix: CodeViewBaseProps<LAnnotation>['renderHeaderPrefix'];\n renderHeaderFilenameSuffix: CodeViewBaseProps<LAnnotation>['renderHeaderFilenameSuffix'];\n renderHeaderMetadata: CodeViewBaseProps<LAnnotation>['renderHeaderMetadata'];\n renderAnnotation: CodeViewBaseProps<LAnnotation>['renderAnnotation'];\n renderGutterUtility: CodeViewBaseProps<LAnnotation>['renderGutterUtility'];\n}\n\ninterface SlotPortalsProps<LAnnotation> {\n managedContentStore: ManagedContentStore<LAnnotation>;\n renderCustomHeader: CodeViewBaseProps<LAnnotation>['renderCustomHeader'];\n renderHeaderPrefix: CodeViewBaseProps<LAnnotation>['renderHeaderPrefix'];\n renderHeaderFilenameSuffix: CodeViewBaseProps<LAnnotation>['renderHeaderFilenameSuffix'];\n renderHeaderMetadata: CodeViewBaseProps<LAnnotation>['renderHeaderMetadata'];\n renderAnnotation: CodeViewBaseProps<LAnnotation>['renderAnnotation'];\n renderGutterUtility: CodeViewBaseProps<LAnnotation>['renderGutterUtility'];\n renderCodeViewHeader: CodeViewBaseProps<LAnnotation>['renderCodeViewHeader'];\n renderCodeViewFooter: CodeViewBaseProps<LAnnotation>['renderCodeViewFooter'];\n}\n\nconst SlotPortals = memo(function SlotPortals<LAnnotation>({\n managedContentStore,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n renderCodeViewHeader,\n renderCodeViewFooter,\n}: SlotPortalsProps<LAnnotation>) {\n 'use no memo';\n const subscribe = useStableCallback((listener: () => void) =>\n managedContentStore.subscribe(listener)\n );\n const getSnapshot = useStableCallback(() =>\n managedContentStore.getSnapshot()\n );\n const snapshot = useSyncExternalStore<\n CodeViewSlotSnapshot<LAnnotation> | undefined\n >(subscribe, getSnapshot, getSnapshot);\n let itemKeys = '';\n for (const item of snapshot?.items ?? []) {\n itemKeys += `${item.id}:${item.version}:${item.type}`;\n }\n // NOTE(amadeus): And just like that, the react compiler do be failing us\n // lol... we need to pre-render everything for items, headers and footers to\n // not trigger needless renders while scrolling\n const renderedItems = useMemo(\n () => {\n return snapshot?.items?.map((renderedItem) =>\n createPortal(\n renderCodeViewItemChildren({\n renderedItem,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n }),\n renderedItem.element,\n renderedItem.id\n )\n );\n },\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n [\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n itemKeys,\n ]\n );\n const renderedHeader = useMemo(() => {\n return renderCodeViewHeader != null && snapshot?.header != null\n ? createPortal(renderCodeViewHeader(), snapshot.header)\n : null;\n }, [renderCodeViewHeader, snapshot?.header]);\n const renderedFooter = useMemo(() => {\n return renderCodeViewFooter != null && snapshot?.footer != null\n ? createPortal(renderCodeViewFooter(), snapshot.footer)\n : null;\n }, [renderCodeViewFooter, snapshot?.footer]);\n return (\n <>\n {renderedItems}\n {renderedHeader}\n {renderedFooter}\n </>\n );\n}) as SlotPortalsComponent;\n\nfunction renderCodeViewItemChildren<LAnnotation>({\n renderedItem,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n}: RenderCodeViewItemChildrenProps<LAnnotation>): ReactNode {\n if (renderedItem.type === 'diff') {\n const { item, instance } = renderedItem;\n return renderDiffChildren({\n fileDiff: item.fileDiff,\n renderCustomHeader:\n renderCustomHeader != null ? () => renderCustomHeader(item) : undefined,\n renderHeaderPrefix:\n renderHeaderPrefix != null ? () => renderHeaderPrefix(item) : undefined,\n renderHeaderFilenameSuffix:\n renderHeaderFilenameSuffix != null\n ? () => renderHeaderFilenameSuffix(item)\n : undefined,\n renderHeaderMetadata:\n renderHeaderMetadata != null\n ? () => renderHeaderMetadata(item)\n : undefined,\n renderAnnotation:\n renderAnnotation != null\n ? (annotation) => renderAnnotation(annotation, item)\n : undefined,\n lineAnnotations: item.annotations,\n renderGutterUtility:\n renderGutterUtility != null\n ? (getHoveredLine) => renderGutterUtility(getHoveredLine, item)\n : undefined,\n getHoveredLine: instance.getHoveredLine,\n });\n } else {\n const { item, instance } = renderedItem;\n return renderFileChildren({\n file: item.file,\n renderCustomHeader:\n renderCustomHeader != null ? () => renderCustomHeader(item) : undefined,\n renderHeaderPrefix:\n renderHeaderPrefix != null ? () => renderHeaderPrefix(item) : undefined,\n renderHeaderFilenameSuffix:\n renderHeaderFilenameSuffix != null\n ? () => renderHeaderFilenameSuffix(item)\n : undefined,\n renderHeaderMetadata:\n renderHeaderMetadata != null\n ? () => renderHeaderMetadata(item)\n : undefined,\n renderAnnotation:\n renderAnnotation != null\n ? (annotation) => renderAnnotation(annotation, item)\n : undefined,\n lineAnnotations: item.annotations,\n renderGutterUtility:\n renderGutterUtility != null\n ? (getHoveredLine) => renderGutterUtility(getHoveredLine, item)\n : undefined,\n getHoveredLine: instance.getHoveredLine,\n });\n }\n}\n\nfunction noopRender() {\n return undefined;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CodeView.js","names":["CodeViewClass"],"sources":["../../src/react/CodeView.tsx"],"sourcesContent":["'use client';\n\nimport {\n type CSSProperties,\n forwardRef,\n memo,\n type ReactNode,\n type Ref,\n useContext,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from 'react';\nimport { createPortal, flushSync } from 'react-dom';\n\nimport type {\n Editor,\n EditorChangeEvent,\n EditorOptions,\n EditorType,\n} from '../edit';\nimport {\n areOptionsEqual,\n CodeView as CodeViewClass,\n type CodeViewCoordinator,\n type CodeViewCreateEditorOptions,\n type CodeViewItem,\n type CodeViewItemEditCompleteEventMap,\n type CodeViewItemEditCompleteHandler,\n type CodeViewLineSelection,\n type CodeViewMode,\n type CodeViewModeItemMap,\n type CodeViewOptions,\n type CodeViewRenderedItem,\n type CodeViewScrollTarget,\n type CodeViewSlotSnapshot,\n type DiffLineAnnotation,\n type GetHoveredLineResult,\n type LineAnnotation,\n} from '../index';\nimport { areManagedSnapshotsEqual } from '../utils/areManagedSnapshotsEqual';\nimport { useCreateEditor } from './EditContext';\nimport { renderDiffChildren } from './utils/renderDiffChildren';\nimport { renderFileChildren } from './utils/renderFileChildren';\nimport { useStableCallback } from './utils/useStableCallback';\nimport { WorkerPoolContext } from './WorkerPoolContext';\n\nexport type { CodeViewItemEditCompleteHandler };\n\nconst useIsomorphicLayoutEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ntype CodeViewGutterUtilityGetter =\n | (() => GetHoveredLineResult<'file'> | undefined)\n | (() => GetHoveredLineResult<'diff'> | undefined);\n\nexport type CodeViewReactOptions<LAnnotation, Caret> = Omit<\n CodeViewOptions<LAnnotation, Caret>,\n 'controlledSelection' | 'createEditor' | 'onSelectedLinesChange'\n>;\n\ninterface CodeViewBaseProps<LAnnotation, Caret> {\n options?: CodeViewReactOptions<LAnnotation, Caret>;\n /**\n * Creation-time options passed to the nearest EditProvider factory.\n * CodeView supplies its item-specific change callback.\n */\n editorOptions?: Omit<\n EditorOptions<EditorType, LAnnotation, Caret>,\n 'onChange'\n >;\n /** Resolve an in-memory retention key for an item's draft and undo history. */\n getEditStateKey?(item: CodeViewItem<LAnnotation>): string | undefined;\n className?: string;\n style?: CSSProperties;\n containerRef?: Ref<HTMLDivElement>;\n disableWorkerPool?: boolean;\n selectedLines?: CodeViewLineSelection | null;\n onSelectedLinesChange?(selection: CodeViewLineSelection | null): void;\n onScroll?(scrollTop: number, viewer: CodeViewClass<LAnnotation, Caret>): void;\n /** Render a non-virtualized node at the very start of the scroll content,\n * before the first item. Always rendered; scrolls with the content. */\n renderCodeViewHeader?(): ReactNode;\n /** Render a non-virtualized node at the very end of the scroll content, after\n * the last item. Always rendered; scrolls with the content. */\n renderCodeViewFooter?(): ReactNode;\n /**\n * Called with the editor's `EditorChangeEvent` and the owning item on every\n * document change. Do not feed it directly back into the controlled item,\n * which can create update loops.\n */\n onItemEditChange?(\n event: EditorChangeEvent<EditorType, LAnnotation, Caret>,\n item: CodeViewItem<LAnnotation>\n ): void;\n /**\n * Called once when an edit session ends: edit turned off, the item removed,\n * or the CodeView unmounted (where the result is not installed). Collapse\n * suspends the session instead of completing it. `nextItem` is the accepted\n * replacement CodeView built from `item`: the event's completed\n * `file`/`fileDiff` and annotations, `edit: false`, and a bumped `version`.\n * Return `'accept'` to install the edit — CodeView applies `nextItem` through\n * the item update path when the item still exists, and a controlled owner\n * puts the same `nextItem` into its state — or `'reject'` to revert. The event\n * is frozen; re-key the accepted value in place before accepting.\n */\n onItemEditComplete?: CodeViewItemEditCompleteHandler<LAnnotation, Caret>;\n renderCustomHeader?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderHeaderPrefix?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderHeaderFilenameSuffix?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderHeaderMetadata?(item: CodeViewItem<LAnnotation>): ReactNode;\n renderAnnotation?(\n annotation: LineAnnotation<LAnnotation> | DiffLineAnnotation<LAnnotation>,\n item: CodeViewItem<LAnnotation>\n ): ReactNode;\n renderGutterUtility?(\n getHoveredLine: CodeViewGutterUtilityGetter,\n item: CodeViewItem<LAnnotation>\n ): ReactNode;\n}\n\nexport interface ControlledCodeViewProps<\n LAnnotation,\n Caret,\n> extends CodeViewBaseProps<LAnnotation, Caret> {\n items: readonly CodeViewItem<LAnnotation>[];\n initialItems?: never;\n}\n\nexport interface UncontrolledCodeViewProps<\n LAnnotation,\n Caret,\n> extends CodeViewBaseProps<LAnnotation, Caret> {\n // Seeds the imperative CodeView instance once. Later item changes should go\n // through the ref API instead of being reconciled from React props.\n initialItems?: readonly CodeViewItem<LAnnotation>[];\n items?: never;\n}\n\nexport type CodeViewProps<LAnnotation, Caret> =\n | ControlledCodeViewProps<LAnnotation, Caret>\n | UncontrolledCodeViewProps<LAnnotation, Caret>;\n\nexport interface CodeViewHandle<LAnnotation, Caret> {\n addItems(items: readonly CodeViewItem<LAnnotation>[]): void;\n getItem(id: string): CodeViewItem<LAnnotation> | undefined;\n removeItem(id: string): boolean;\n updateItem(item: CodeViewItem<LAnnotation>): boolean;\n updateItemId(oldId: string, newId: string): boolean;\n scrollTo(target: CodeViewScrollTarget): void;\n setSelectedLines(selection: CodeViewLineSelection | null): void;\n getSelectedLines(): CodeViewLineSelection | null;\n clearSelectedLines(): void;\n getEditor(\n id: string\n ):\n | Editor<'file', LAnnotation, Caret>\n | Editor<'file-diff', LAnnotation, Caret>\n | undefined;\n getInstance(): CodeViewClass<LAnnotation, Caret> | undefined;\n}\n\ntype CodeViewComponent = <LAnnotation = undefined, Caret = undefined>(\n props: CodeViewProps<LAnnotation, Caret> & {\n ref?: React.Ref<CodeViewHandle<LAnnotation, Caret>>;\n }\n) => React.JSX.Element;\n\ntype SlotPortalsComponent = <LAnnotation, Caret>(\n props: SlotPortalsProps<LAnnotation, Caret>\n) => React.JSX.Element;\n\ninterface ManagedContentStore<LAnnotation, Caret> {\n getSnapshot(): CodeViewSlotSnapshot<LAnnotation, Caret> | undefined;\n publish(snapshot: CodeViewSlotSnapshot<LAnnotation, Caret> | undefined): void;\n subscribe(listener: () => void): () => void;\n}\n\ninterface CachedDataRef<LAnnotation, Caret> {\n instance: CodeViewClass<LAnnotation, Caret> | undefined;\n items: readonly CodeViewItem<LAnnotation>[] | undefined;\n controlled: boolean;\n managedOptions: CodeViewOptions<LAnnotation, Caret> | undefined;\n disableFlushSync: boolean;\n slotCoordinator: CodeViewCoordinator<LAnnotation, Caret> | undefined;\n}\n\nfunction createDefaultCache<LAnnotation, Caret>(\n controlled: boolean\n): CachedDataRef<LAnnotation, Caret> {\n return {\n instance: undefined,\n items: undefined,\n controlled,\n managedOptions: undefined,\n disableFlushSync: false,\n slotCoordinator: undefined,\n };\n}\n\nfunction CodeViewInner<LAnnotation = undefined, Caret = undefined>(\n props: CodeViewProps<LAnnotation, Caret>,\n ref: React.ForwardedRef<CodeViewHandle<LAnnotation, Caret>>\n): React.JSX.Element {\n const {\n className,\n containerRef,\n disableWorkerPool = false,\n editorOptions,\n getEditStateKey,\n initialItems,\n items: controlledItems,\n onItemEditChange,\n onItemEditComplete,\n onScroll,\n onSelectedLinesChange,\n options,\n renderAnnotation,\n renderCodeViewFooter,\n renderCodeViewHeader,\n renderCustomHeader,\n renderGutterUtility,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderHeaderPrefix,\n selectedLines,\n style,\n } = props;\n const controlled = controlledItems !== undefined;\n const contextCreateEditor = useCreateEditor<LAnnotation, Caret>();\n const poolManager = useContext(WorkerPoolContext);\n const cachedDataRef = useRef<CachedDataRef<LAnnotation, Caret>>(\n createDefaultCache<LAnnotation, Caret>(controlled)\n );\n const hasCustomHeader = renderCustomHeader != null;\n const hasAnnotationRenderer = renderAnnotation != null;\n const hasGutterRenderer = renderGutterUtility != null;\n const hasHeaderRenderers =\n hasCustomHeader ||\n renderHeaderPrefix != null ||\n renderHeaderFilenameSuffix != null ||\n renderHeaderMetadata != null;\n const hasRenderers =\n hasHeaderRenderers || hasAnnotationRenderer || hasGutterRenderer;\n const hasCodeViewHeader = renderCodeViewHeader != null;\n const hasCodeViewFooter = renderCodeViewFooter != null;\n const emitSelectedLinesChange = useStableCallback(\n (selection: CodeViewLineSelection | null) => {\n onSelectedLinesChange?.(selection);\n }\n );\n const controlledSelection = selectedLines !== undefined;\n\n // Keep the adapter stable so provider and editor-option changes affect the\n // next item edit session without forcing CodeView to reconcile active editors.\n const createEditor = useStableCallback(\n <EType extends EditorType>(\n editorType: EType,\n options: CodeViewCreateEditorOptions<EType, LAnnotation, Caret>,\n editStateKey?: string\n ): Editor<EType, LAnnotation, Caret> => {\n if (contextCreateEditor == null) {\n throw new Error('CodeView: EditContext is not attached');\n }\n\n const resolvedOptions = {\n ...editorOptions,\n ...options,\n } as EditorOptions<EType, LAnnotation, Caret>;\n const editor = contextCreateEditor(\n editorType,\n resolvedOptions,\n editStateKey\n );\n return editor;\n }\n );\n const emitItemEditChange = useStableCallback(\n (\n event: EditorChangeEvent<EditorType, LAnnotation, Caret>,\n item: CodeViewItem<LAnnotation>\n ) => {\n onItemEditChange?.(event, item);\n }\n );\n const emitItemEditComplete = useStableCallback(\n <TMode extends CodeViewMode>(\n event: CodeViewItemEditCompleteEventMap<LAnnotation, Caret>[TMode],\n item: CodeViewModeItemMap<LAnnotation>[TMode],\n nextItem: CodeViewModeItemMap<LAnnotation>[TMode]\n ) => onItemEditComplete?.(event, item, nextItem) ?? 'reject'\n );\n\n const managedOptions = useMemo(\n () =>\n createManagedCodeViewOptions({\n options,\n hasCustomHeader,\n hasGutterRenderer,\n hasCodeViewHeader,\n hasCodeViewFooter,\n onSelectedLinesChange:\n onSelectedLinesChange != null ? emitSelectedLinesChange : undefined,\n controlledSelection,\n getEditStateKey,\n createEditor: contextCreateEditor != null ? createEditor : undefined,\n onItemEditChange:\n onItemEditChange != null ? emitItemEditChange : undefined,\n onItemEditComplete:\n onItemEditComplete != null ? emitItemEditComplete : undefined,\n }),\n [\n contextCreateEditor,\n controlledSelection,\n createEditor,\n emitItemEditChange,\n emitItemEditComplete,\n emitSelectedLinesChange,\n hasCodeViewFooter,\n hasCodeViewHeader,\n hasCustomHeader,\n hasGutterRenderer,\n getEditStateKey,\n onItemEditChange,\n onItemEditComplete,\n onSelectedLinesChange,\n options,\n ]\n );\n\n const [slotContentStore] = useState<ManagedContentStore<LAnnotation, Caret>>(\n () => createSlotContentStore()\n );\n const [, forceUpdate] = useState<unknown>({});\n\n const nodeRef = useStableCallback((node: HTMLDivElement | null) => {\n // If we have a pre-existing instance and there's no node or the node being\n // passed in is NOT the same as before, then we need to clean up and\n // garbage collect the old instance\n if (\n cachedDataRef.current.instance != null &&\n (node == null ||\n node !== cachedDataRef.current.instance.getContainerElement())\n ) {\n cachedDataRef.current.instance.cleanUp();\n slotContentStore.publish(undefined);\n cachedDataRef.current = createDefaultCache<LAnnotation, Caret>(\n controlled\n );\n }\n\n // If our node matches the existing node then we should not attempt to\n // setup. This is a case that should never be possible to hit, but just in\n // case, lets make sure we don't re-setup an instance that is already setup\n // properly\n if (\n node != null &&\n node !== cachedDataRef.current.instance?.getContainerElement()\n ) {\n cachedDataRef.current.instance = new CodeViewClass<LAnnotation, Caret>(\n managedOptions,\n !disableWorkerPool ? poolManager : undefined,\n true\n );\n cachedDataRef.current.instance.setup(node);\n }\n\n if (typeof containerRef === 'function') {\n containerRef(node);\n } else if (containerRef != null) {\n containerRef.current = node;\n }\n });\n\n const onSnapshotChange = useStableCallback(\n (snapshot: CodeViewSlotSnapshot<LAnnotation, Caret> | undefined) => {\n if (cachedDataRef.current.disableFlushSync) {\n slotContentStore.publish(snapshot);\n } else {\n flushSync(() => {\n slotContentStore.publish(snapshot);\n });\n }\n }\n );\n\n const slotCoordinator: CodeViewCoordinator<LAnnotation, Caret> | undefined =\n useMemo(() => {\n // A coordinator is needed whenever React portals anything — per-item\n // slots and codeview header and footer\n if (\n !hasHeaderRenderers &&\n !hasAnnotationRenderer &&\n !hasGutterRenderer &&\n !hasCodeViewHeader &&\n !hasCodeViewFooter\n ) {\n return undefined;\n } else {\n return {\n hasHeaderRenderers,\n hasAnnotationRenderer,\n hasGutterRenderer,\n onSnapshotChange,\n };\n }\n }, [\n onSnapshotChange,\n hasAnnotationRenderer,\n hasGutterRenderer,\n hasHeaderRenderers,\n hasCodeViewHeader,\n hasCodeViewFooter,\n ]);\n\n useIsomorphicLayoutEffect(() => {\n return onScroll != null\n ? cachedDataRef.current.instance?.subscribeToScroll(onScroll)\n : undefined;\n });\n\n useIsomorphicLayoutEffect(() => {\n const {\n instance,\n controlled: prevControlled,\n items: prevItems,\n managedOptions: prevManagedOptions,\n slotCoordinator: prevSlotCoordinator,\n } = cachedDataRef.current;\n if (instance == null) {\n return;\n }\n\n try {\n cachedDataRef.current.disableFlushSync = true;\n let shouldRender = false;\n\n if (!areOptionsEqual(managedOptions, prevManagedOptions)) {\n cachedDataRef.current.managedOptions = managedOptions;\n instance.setOptions(managedOptions);\n shouldRender = true;\n }\n\n if (prevControlled !== controlled) {\n console.error(\n 'CodeView: cannot switch between controlled and uncontrolled modes. Remount with a new key instead.'\n );\n return;\n }\n\n if (controlled) {\n if (controlledItems !== prevItems) {\n if (areItemListsEqual(prevItems, controlledItems)) {\n cachedDataRef.current.items = controlledItems;\n } else if (isAppendOnlyItemUpdate(prevItems, controlledItems)) {\n cachedDataRef.current.items = controlledItems;\n instance.addItems(controlledItems.slice(prevItems.length));\n } else {\n cachedDataRef.current.items = controlledItems;\n instance.setItems(controlledItems);\n shouldRender = true;\n }\n }\n }\n // If uncontrolled, we should only ever set items once, and just depend\n // on imperative instance changes going forward\n else if (prevItems == null) {\n const seedItems = initialItems ?? [];\n cachedDataRef.current.items = seedItems;\n if (seedItems.length > 0) {\n instance.setItems(seedItems);\n shouldRender = true;\n }\n }\n\n if (selectedLines !== undefined) {\n instance.setSelectedLines(selectedLines, { notify: false });\n }\n\n const slotPublish = instance.setSlotCoordinator(slotCoordinator);\n let forceInlinePublish = false;\n if (slotCoordinator !== prevSlotCoordinator) {\n if (slotCoordinator == null || prevSlotCoordinator == null) {\n forceInlinePublish = true;\n }\n cachedDataRef.current.slotCoordinator = slotCoordinator;\n }\n\n if (shouldRender || slotPublish) {\n instance.render(true);\n }\n\n // FIXME(amadeus): This feels kinda bad and flakey with regards to how\n // other things are working... it makes me think that we should\n // re-architect the slotCoordinator a bit, and maybe DON'T make it an\n // undefineable thing...\n if (slotPublish && slotCoordinator == null) {\n slotContentStore.publish(undefined);\n }\n\n if (forceInlinePublish) {\n forceUpdate({});\n }\n } finally {\n cachedDataRef.current.disableFlushSync = false;\n }\n });\n\n // Setup the ref handler\n useImperativeHandle(\n ref,\n (): CodeViewHandle<LAnnotation, Caret> => ({\n addItems(items) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'addItems');\n if (instance == null) {\n console.error(\n 'CodeView.addItems: no valid instance to append items with',\n items\n );\n } else {\n instance.addItems(items);\n }\n },\n getItem(id) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error('CodeView.getItem: no valid instance exists', id);\n return undefined;\n } else {\n return instance.getItem(id);\n }\n },\n removeItem(id) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'removeItem');\n if (instance == null) {\n console.error(\n 'CodeView.removeItem: no valid instance to remove item from',\n id\n );\n return false;\n }\n\n return instance.removeItem(id);\n },\n updateItem(item) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'updateItem');\n if (instance == null) {\n console.error(\n 'CodeView.updateItem: no valid instance to update item with',\n item\n );\n return false;\n }\n\n return instance.updateItem(item);\n },\n updateItemId(oldId, newId) {\n const { controlled, instance } = cachedDataRef.current;\n assertUncontrolledCodeViewAction(controlled, 'updateItemId');\n if (instance == null) {\n console.error(\n 'CodeView.updateItemId: no valid instance to update item id with',\n oldId,\n newId\n );\n return false;\n }\n\n return instance.updateItemId(oldId, newId);\n },\n scrollTo(target) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error(\n 'CodeView.scrollTo: no valid instance to scroll with',\n target\n );\n } else {\n instance.scrollTo(target);\n }\n },\n setSelectedLines(selection) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error(\n 'CodeView.setSelectedLines: no valid instance to update selection with',\n selection\n );\n } else {\n instance.setSelectedLines(selection, { notify: false });\n emitSelectedLinesChange(selection);\n }\n },\n getSelectedLines() {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error('CodeView.getSelectedLines: no valid instance exists');\n return null;\n } else {\n return instance.getSelectedLines();\n }\n },\n clearSelectedLines() {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error(\n 'CodeView.clearSelectedLines: no valid instance to update selection with'\n );\n } else {\n instance.clearSelectedLines({ notify: false });\n emitSelectedLinesChange(null);\n }\n },\n getEditor(id) {\n const { instance } = cachedDataRef.current;\n if (instance == null) {\n console.error('CodeView.getEditor: no valid instance exists', id);\n return undefined;\n }\n\n return instance.getEditor(id);\n },\n getInstance() {\n return cachedDataRef.current.instance;\n },\n }),\n [emitSelectedLinesChange]\n );\n\n return (\n <>\n <div ref={nodeRef} className={className} style={style} />\n {(hasRenderers || hasCodeViewHeader || hasCodeViewFooter) && (\n <SlotPortals<LAnnotation, Caret>\n managedContentStore={slotContentStore}\n renderCustomHeader={renderCustomHeader}\n renderHeaderPrefix={renderHeaderPrefix}\n renderHeaderFilenameSuffix={renderHeaderFilenameSuffix}\n renderHeaderMetadata={renderHeaderMetadata}\n renderAnnotation={renderAnnotation}\n renderGutterUtility={renderGutterUtility}\n renderCodeViewHeader={renderCodeViewHeader}\n renderCodeViewFooter={renderCodeViewFooter}\n />\n )}\n </>\n );\n}\n\n// React was a mistake\nexport const CodeView = forwardRef(CodeViewInner) as CodeViewComponent;\n\nfunction isAppendOnlyItemUpdate<LAnnotation>(\n previousItems: readonly CodeViewItem<LAnnotation>[] | undefined,\n nextItems: readonly CodeViewItem<LAnnotation>[]\n): previousItems is readonly CodeViewItem<LAnnotation>[] {\n if (previousItems == null || nextItems.length <= previousItems.length) {\n return false;\n }\n\n if (previousItems.length === 0) {\n return true;\n }\n\n for (let index = 0; index < previousItems.length; index++) {\n if (nextItems[index] !== previousItems[index]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction areItemListsEqual<LAnnotation>(\n previousItems: readonly CodeViewItem<LAnnotation>[] | undefined,\n nextItems: readonly CodeViewItem<LAnnotation>[]\n): boolean {\n if (previousItems == null || previousItems.length !== nextItems.length) {\n return false;\n }\n\n for (let index = 0; index < previousItems.length; index++) {\n if (previousItems[index] !== nextItems[index]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction assertUncontrolledCodeViewAction(\n controlled: boolean,\n action: string\n): void {\n if (!controlled) {\n return;\n }\n\n throw new Error(\n `CodeView.${action} cannot be used when CodeView is controlled. Use initialItems for imperative item updates.`\n );\n}\n\nfunction createSlotContentStore<LAnnotation, Caret>(): ManagedContentStore<\n LAnnotation,\n Caret\n> {\n let snapshot: CodeViewSlotSnapshot<LAnnotation, Caret> | undefined;\n const listeners = new Set<() => void>();\n\n return {\n getSnapshot() {\n return snapshot;\n },\n publish(nextSnapshot) {\n if (areManagedSnapshotsEqual(snapshot, nextSnapshot)) {\n return;\n }\n\n snapshot = nextSnapshot;\n for (const listener of listeners) {\n listener();\n }\n },\n subscribe(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n };\n}\n\ninterface CreateManagedCodeViewOptionsProps<LAnnotation, Caret> {\n options: CodeViewReactOptions<LAnnotation, Caret> | undefined;\n hasCustomHeader: boolean;\n hasGutterRenderer: boolean;\n hasCodeViewHeader: boolean;\n hasCodeViewFooter: boolean;\n onSelectedLinesChange?(selection: CodeViewLineSelection | null): void;\n controlledSelection: boolean;\n getEditStateKey: CodeViewOptions<LAnnotation, Caret>['getEditStateKey'];\n createEditor: CodeViewOptions<LAnnotation, Caret>['createEditor'];\n onItemEditChange: CodeViewOptions<LAnnotation, Caret>['onItemEditChange'];\n onItemEditComplete: CodeViewOptions<LAnnotation, Caret>['onItemEditComplete'];\n}\n\nfunction createManagedCodeViewOptions<LAnnotation, Caret>({\n options,\n hasCustomHeader,\n hasGutterRenderer,\n hasCodeViewHeader,\n hasCodeViewFooter,\n onSelectedLinesChange,\n controlledSelection,\n getEditStateKey,\n createEditor,\n onItemEditChange,\n onItemEditComplete,\n}: CreateManagedCodeViewOptionsProps<LAnnotation, Caret>): CodeViewOptions<\n LAnnotation,\n Caret\n> {\n const managedOptions: CodeViewOptions<LAnnotation, Caret> = {\n ...options,\n controlledSelection,\n onSelectedLinesChange,\n createEditor,\n };\n\n if (getEditStateKey != null) {\n managedOptions.getEditStateKey = getEditStateKey;\n }\n\n // Prop-level editor callbacks win over their options-object counterparts,\n // but an absent prop must not clobber a value provided via `options`.\n if (onItemEditChange != null) {\n managedOptions.onItemEditChange = onItemEditChange;\n }\n if (onItemEditComplete != null) {\n managedOptions.onItemEditComplete = onItemEditComplete;\n }\n\n // The imperative CodeView adapters use this callback's presence to\n // switch file and diff headers into custom-slot mode. React portals\n // provide the actual header content, so this placeholder\n // intentionally returns nothing.\n if (hasCustomHeader) {\n managedOptions.renderCustomHeader = noopRender;\n }\n\n // The imperative CodeView adapters use this callback's presence to\n // create the custom gutter utility slot. React portals provide the\n // actual content, so this placeholder intentionally returns nothing.\n if (hasGutterRenderer) {\n managedOptions.renderGutterUtility = noopRender;\n }\n\n // The imperative CodeView adapters use these callbacks' presence to create the\n // header/footer host elements. React portals the actual content into them (via\n // the slot snapshot), so these placeholders intentionally return nothing.\n if (hasCodeViewHeader) {\n managedOptions.renderCodeViewHeader = noopRender;\n }\n if (hasCodeViewFooter) {\n managedOptions.renderCodeViewFooter = noopRender;\n }\n\n return managedOptions;\n}\n\ninterface RenderCodeViewItemChildrenProps<LAnnotation, Caret> {\n renderedItem: CodeViewRenderedItem<LAnnotation, Caret>;\n renderCustomHeader: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderCustomHeader'];\n renderHeaderPrefix: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderHeaderPrefix'];\n renderHeaderFilenameSuffix: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderHeaderFilenameSuffix'];\n renderHeaderMetadata: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderHeaderMetadata'];\n renderAnnotation: CodeViewBaseProps<LAnnotation, Caret>['renderAnnotation'];\n renderGutterUtility: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderGutterUtility'];\n}\n\ninterface SlotPortalsProps<LAnnotation, Caret> {\n managedContentStore: ManagedContentStore<LAnnotation, Caret>;\n renderCustomHeader: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderCustomHeader'];\n renderHeaderPrefix: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderHeaderPrefix'];\n renderHeaderFilenameSuffix: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderHeaderFilenameSuffix'];\n renderHeaderMetadata: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderHeaderMetadata'];\n renderAnnotation: CodeViewBaseProps<LAnnotation, Caret>['renderAnnotation'];\n renderGutterUtility: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderGutterUtility'];\n renderCodeViewHeader: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderCodeViewHeader'];\n renderCodeViewFooter: CodeViewBaseProps<\n LAnnotation,\n Caret\n >['renderCodeViewFooter'];\n}\n\nconst SlotPortals = memo(function SlotPortals<LAnnotation, Caret>({\n managedContentStore,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n renderCodeViewHeader,\n renderCodeViewFooter,\n}: SlotPortalsProps<LAnnotation, Caret>) {\n 'use no memo';\n const subscribe = useStableCallback((listener: () => void) =>\n managedContentStore.subscribe(listener)\n );\n const getSnapshot = useStableCallback(() =>\n managedContentStore.getSnapshot()\n );\n const snapshot = useSyncExternalStore<\n CodeViewSlotSnapshot<LAnnotation, Caret> | undefined\n >(subscribe, getSnapshot, getSnapshot);\n let itemKeys = '';\n for (const item of snapshot?.items ?? []) {\n itemKeys += `${item.id}:${item.version}:${item.type}`;\n }\n // NOTE(amadeus): And just like that, the react compiler do be failing us\n // lol... we need to pre-render everything for items, headers and footers to\n // not trigger needless renders while scrolling\n const renderedItems = useMemo(\n () => {\n return snapshot?.items?.map((renderedItem) =>\n createPortal(\n renderCodeViewItemChildren({\n renderedItem,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n }),\n renderedItem.element,\n renderedItem.id\n )\n );\n },\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n [\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n itemKeys,\n ]\n );\n const renderedHeader = useMemo(() => {\n return renderCodeViewHeader != null && snapshot?.header != null\n ? createPortal(renderCodeViewHeader(), snapshot.header)\n : null;\n }, [renderCodeViewHeader, snapshot?.header]);\n const renderedFooter = useMemo(() => {\n return renderCodeViewFooter != null && snapshot?.footer != null\n ? createPortal(renderCodeViewFooter(), snapshot.footer)\n : null;\n }, [renderCodeViewFooter, snapshot?.footer]);\n return (\n <>\n {renderedItems}\n {renderedHeader}\n {renderedFooter}\n </>\n );\n}) as SlotPortalsComponent;\n\nfunction renderCodeViewItemChildren<LAnnotation, Caret>({\n renderedItem,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderAnnotation,\n renderGutterUtility,\n}: RenderCodeViewItemChildrenProps<LAnnotation, Caret>): ReactNode {\n if (renderedItem.type === 'diff') {\n const { item, instance } = renderedItem;\n return renderDiffChildren({\n fileDiff: item.fileDiff,\n renderCustomHeader:\n renderCustomHeader != null ? () => renderCustomHeader(item) : undefined,\n renderHeaderPrefix:\n renderHeaderPrefix != null ? () => renderHeaderPrefix(item) : undefined,\n renderHeaderFilenameSuffix:\n renderHeaderFilenameSuffix != null\n ? () => renderHeaderFilenameSuffix(item)\n : undefined,\n renderHeaderMetadata:\n renderHeaderMetadata != null\n ? () => renderHeaderMetadata(item)\n : undefined,\n renderAnnotation:\n renderAnnotation != null\n ? (annotation) => renderAnnotation(annotation, item)\n : undefined,\n lineAnnotations: item.annotations,\n renderGutterUtility:\n renderGutterUtility != null\n ? (getHoveredLine) => renderGutterUtility(getHoveredLine, item)\n : undefined,\n getHoveredLine: instance.getHoveredLine,\n getAnnotationSlotName: instance.getAnnotationSlotName,\n });\n } else {\n const { item, instance } = renderedItem;\n return renderFileChildren({\n file: item.file,\n renderCustomHeader:\n renderCustomHeader != null ? () => renderCustomHeader(item) : undefined,\n renderHeaderPrefix:\n renderHeaderPrefix != null ? () => renderHeaderPrefix(item) : undefined,\n renderHeaderFilenameSuffix:\n renderHeaderFilenameSuffix != null\n ? () => renderHeaderFilenameSuffix(item)\n : undefined,\n renderHeaderMetadata:\n renderHeaderMetadata != null\n ? () => renderHeaderMetadata(item)\n : undefined,\n renderAnnotation:\n renderAnnotation != null\n ? (annotation) => renderAnnotation(annotation, item)\n : undefined,\n lineAnnotations: item.annotations,\n renderGutterUtility:\n renderGutterUtility != null\n ? (getHoveredLine) => renderGutterUtility(getHoveredLine, item)\n : undefined,\n getHoveredLine: instance.getHoveredLine,\n getAnnotationSlotName: instance.getAnnotationSlotName,\n });\n }\n}\n\nfunction noopRender() {\n return undefined;\n}\n"],"mappings":"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"}
@@ -1,20 +1,17 @@
1
- import { DiffsEditor } from "../types.js";
2
- import { EditorOptions } from "../editor/editor.js";
1
+ import { EditorFactory } from "../editor/types.js";
3
2
  import { Context, PropsWithChildren } from "react";
4
3
 
5
4
  //#region src/react/EditContext.d.ts
6
- /** Creates an Editor. Components manage the instance lifecycle. */
7
- type CreateEditor<LAnnotation> = (options: EditorOptions<LAnnotation>) => DiffsEditor<LAnnotation>;
8
- interface EditProviderProps<LAnnotation> {
5
+ interface EditProviderProps<LAnnotation, Caret> {
9
6
  /** Combines shared defaults with the supplied per-surface options. */
10
- createEditor: CreateEditor<LAnnotation>;
7
+ createEditor: EditorFactory<LAnnotation, Caret>;
11
8
  }
12
- declare const EditContext: Context<CreateEditor<any> | undefined>;
13
- declare function EditProvider<LAnnotation>({
9
+ declare const EditContext: Context<EditorFactory<any, any> | undefined>;
10
+ declare function EditProvider<LAnnotation = undefined, Caret = undefined>({
14
11
  children,
15
12
  createEditor
16
- }: PropsWithChildren<EditProviderProps<LAnnotation>>): React.JSX.Element;
17
- declare function useCreateEditor<LAnnotation>(): CreateEditor<LAnnotation> | undefined;
13
+ }: PropsWithChildren<EditProviderProps<LAnnotation, Caret>>): React.JSX.Element;
14
+ declare function useCreateEditor<LAnnotation, Caret>(): EditorFactory<LAnnotation, Caret> | undefined;
18
15
  //#endregion
19
- export { CreateEditor, EditContext, EditProvider, EditProviderProps, useCreateEditor };
16
+ export { EditContext, EditProvider, EditProviderProps, type EditorFactory, useCreateEditor };
20
17
  //# sourceMappingURL=EditContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditContext.d.ts","names":[],"sources":["../../src/react/EditContext.tsx"],"mappings":";;;;;;KAWY,YAAA,iBACV,OAAA,EAAS,aAAA,CAAc,WAAA,MACpB,WAAA,CAAY,WAAA;AAAA,UAEA,iBAAA;EAJL;EAMV,YAAA,EAAc,YAAY,CAAC,WAAA;AAAA;AAAA,cAGhB,WAAA,EAAa,OAAO,CAAC,YAAA;AAAA,iBAGlB,YAAA;EACd,QAAA;EACA;AAAA,GACC,iBAAA,CAAkB,iBAAA,CAAkB,WAAA,KAAgB,KAAA,CAAM,GAAA,CAAI,OAAA;AAAA,iBAwBjD,eAAA,iBACZ,YAAY,CAAC,WAAA"}
1
+ {"version":3,"file":"EditContext.d.ts","names":[],"sources":["../../src/react/EditContext.tsx"],"mappings":";;;;UAWiB,iBAAA;;EAEf,YAAA,EAAc,aAAA,CAAc,WAAA,EAAa,KAAA;AAAA;AAAA,cAG9B,WAAA,EAAa,OAAO,CAAC,aAAA;AAAA,iBAGlB,YAAA;EACd,QAAA;EACA;AAAA,GACC,iBAAA,CACD,iBAAA,CAAkB,WAAA,EAAa,KAAA,KAC7B,KAAA,CAAM,GAAA,CAAI,OAAA;AAAA,iBAgBE,eAAA,wBACZ,aAAA,CAAc,WAAA,EAAa,KAAA"}
@@ -1,18 +1,11 @@
1
1
  "use client";
2
2
  import { useStableCallback } from "./utils/useStableCallback.js";
3
- import { createContext, useContext, useRef } from "react";
3
+ import { createContext, useContext } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region src/react/EditContext.tsx
6
6
  const EditContext = createContext(void 0);
7
7
  function EditProvider({ children, createEditor }) {
8
- const editorCacheRef = useRef(/* @__PURE__ */ new WeakMap());
9
- const stableCreateEditor = useStableCallback((options) => {
10
- const cached = editorCacheRef.current.get(options);
11
- if (cached != null) return cached;
12
- const editor = createEditor(options);
13
- editorCacheRef.current.set(options, editor);
14
- return editor;
15
- });
8
+ const stableCreateEditor = useStableCallback((editorType, options, editStateKey) => createEditor(editorType, options, editStateKey));
16
9
  return /* @__PURE__ */ jsx(EditContext.Provider, {
17
10
  value: stableCreateEditor,
18
11
  children
@@ -1 +1 @@
1
- {"version":3,"file":"EditContext.js","names":[],"sources":["../../src/react/EditContext.tsx"],"sourcesContent":["// oxlint-disable typescript/no-explicit-any\n'use client';\n\nimport type { Context, PropsWithChildren } from 'react';\nimport { createContext, useContext, useRef } from 'react';\n\nimport type { EditorOptions } from '../edit';\nimport type { DiffsEditor } from '../types';\nimport { useStableCallback } from './utils/useStableCallback';\n\n/** Creates an Editor. Components manage the instance lifecycle. */\nexport type CreateEditor<LAnnotation> = (\n options: EditorOptions<LAnnotation>\n) => DiffsEditor<LAnnotation>;\n\nexport interface EditProviderProps<LAnnotation> {\n /** Combines shared defaults with the supplied per-surface options. */\n createEditor: CreateEditor<LAnnotation>;\n}\n\nexport const EditContext: Context<CreateEditor<any> | undefined> =\n createContext<CreateEditor<any> | undefined>(undefined);\n\nexport function EditProvider<LAnnotation>({\n children,\n createEditor,\n}: PropsWithChildren<EditProviderProps<LAnnotation>>): React.JSX.Element {\n // Editors cached by options-object identity: an edit session that restarts\n // with the same `editorOptions`\n const editorCacheRef = useRef(\n new WeakMap<EditorOptions<LAnnotation>, DiffsEditor<LAnnotation>>()\n );\n const stableCreateEditor = useStableCallback(\n (options: EditorOptions<LAnnotation>): DiffsEditor<LAnnotation> => {\n const cached = editorCacheRef.current.get(options);\n if (cached != null) {\n return cached;\n }\n const editor = createEditor(options);\n editorCacheRef.current.set(options, editor);\n return editor;\n }\n );\n return (\n <EditContext.Provider value={stableCreateEditor}>\n {children}\n </EditContext.Provider>\n );\n}\n\nexport function useCreateEditor<LAnnotation>():\n | CreateEditor<LAnnotation>\n | undefined {\n return useContext(EditContext);\n}\n"],"mappings":";;;;;AAoBA,MAAa,cACX,cAA6C,KAAA,CAAS;AAExD,SAAgB,aAA0B,EACxC,UACA,gBACuE;CAGvE,MAAM,iBAAiB,uBACrB,IAAI,QAA8D,CACpE;CACA,MAAM,qBAAqB,mBACxB,YAAkE;EACjE,MAAM,SAAS,eAAe,QAAQ,IAAI,OAAO;EACjD,IAAI,UAAU,MACZ,OAAO;EAET,MAAM,SAAS,aAAa,OAAO;EACnC,eAAe,QAAQ,IAAI,SAAS,MAAM;EAC1C,OAAO;CACT,CACF;CACA,OACE,oBAAC,YAAY,UAAb;EAAsB,OAAO;EAC1B;CACmB,CAAA;AAE1B;AAEA,SAAgB,kBAEF;CACZ,OAAO,WAAW,WAAW;AAC/B"}
1
+ {"version":3,"file":"EditContext.js","names":[],"sources":["../../src/react/EditContext.tsx"],"sourcesContent":["// oxlint-disable typescript/no-explicit-any\n'use client';\n\nimport type { Context, PropsWithChildren } from 'react';\nimport { createContext, useContext } from 'react';\n\nimport type { Editor, EditorFactory, EditorOptions, EditorType } from '../edit';\nimport { useStableCallback } from './utils/useStableCallback';\n\nexport type { EditorFactory } from '../edit';\n\nexport interface EditProviderProps<LAnnotation, Caret> {\n /** Combines shared defaults with the supplied per-surface options. */\n createEditor: EditorFactory<LAnnotation, Caret>;\n}\n\nexport const EditContext: Context<EditorFactory<any, any> | undefined> =\n createContext<EditorFactory<any, any> | undefined>(undefined);\n\nexport function EditProvider<LAnnotation = undefined, Caret = undefined>({\n children,\n createEditor,\n}: PropsWithChildren<\n EditProviderProps<LAnnotation, Caret>\n>): React.JSX.Element {\n const stableCreateEditor = useStableCallback(\n <EType extends EditorType>(\n editorType: EType,\n options: EditorOptions<EType, LAnnotation, Caret>,\n editStateKey?: string\n ): Editor<EType, LAnnotation, Caret> =>\n createEditor(editorType, options, editStateKey)\n );\n return (\n <EditContext.Provider value={stableCreateEditor}>\n {children}\n </EditContext.Provider>\n );\n}\n\nexport function useCreateEditor<LAnnotation, Caret>():\n | EditorFactory<LAnnotation, Caret>\n | undefined {\n return useContext(EditContext);\n}\n"],"mappings":";;;;;AAgBA,MAAa,cACX,cAAmD,KAAA,CAAS;AAE9D,SAAgB,aAAyD,EACvE,UACA,gBAGoB;CACpB,MAAM,qBAAqB,mBAEvB,YACA,SACA,iBAEA,aAAa,YAAY,SAAS,YAAY,CAClD;CACA,OACE,oBAAC,YAAY,UAAb;EAAsB,OAAO;EAC1B;CACmB,CAAA;AAE1B;AAEA,SAAgB,kBAEF;CACZ,OAAO,WAAW,WAAW;AAC/B"}
@@ -1,13 +1,15 @@
1
- import { FileOptions } from "../components/File.js";
2
- import { FileProps } from "./types.js";
1
+ import { FileEditCompleteEvent } from "../editor/types.js";
2
+ import { FileEditChangeHandler, FileEditCompleteHandler } from "../components/File.js";
3
+ import { FileOptions, FileProps } from "./types.js";
3
4
 
4
5
  //#region src/react/File.d.ts
5
- declare function File<LAnnotation = undefined>({
6
+ declare function File<LAnnotation = undefined, Caret = undefined>({
6
7
  file,
7
8
  lineAnnotations,
8
9
  selectedLines,
9
10
  options,
10
11
  editorOptions,
12
+ editStateKey,
11
13
  metrics,
12
14
  className,
13
15
  style,
@@ -19,8 +21,10 @@ declare function File<LAnnotation = undefined>({
19
21
  prerenderedHTML,
20
22
  renderGutterUtility,
21
23
  disableWorkerPool,
22
- edit
23
- }: FileProps<LAnnotation>): React.JSX.Element;
24
+ edit,
25
+ onEditChange,
26
+ onEditComplete
27
+ }: FileProps<LAnnotation, Caret>): React.JSX.Element;
24
28
  //#endregion
25
- export { File, type FileOptions };
29
+ export { File, type FileEditChangeHandler, type FileEditCompleteEvent, type FileEditCompleteHandler, type FileOptions };
26
30
  //# sourceMappingURL=File.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"File.d.ts","names":[],"sources":["../../src/react/File.tsx"],"mappings":";;;;iBAWgB,IAAA;EACd,IAAA;EACA,eAAA;EACA,aAAA;EACA,OAAA;EACA,aAAA;EACA,OAAA;EACA,SAAA;EACA,KAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,0BAAA;EACA,oBAAA;EACA,eAAA;EACA,mBAAA;EACA,iBAAA;EACA;AAAA,GACC,SAAA,CAAU,WAAA,IAAe,KAAA,CAAM,GAAA,CAAI,OAAA"}
1
+ {"version":3,"file":"File.d.ts","names":[],"sources":["../../src/react/File.tsx"],"mappings":";;;;;iBAoBgB,IAAA;EACd,IAAA;EACA,eAAA;EACA,aAAA;EACA,OAAA;EACA,aAAA;EACA,YAAA;EACA,OAAA;EACA,SAAA;EACA,KAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,0BAAA;EACA,oBAAA;EACA,eAAA;EACA,mBAAA;EACA,iBAAA;EACA,IAAA;EACA,YAAA;EACA;AAAA,GACC,SAAA,CAAU,WAAA,EAAa,KAAA,IAAS,KAAA,CAAM,GAAA,CAAI,OAAA"}
@@ -5,11 +5,12 @@ import { templateRender } from "./utils/templateRender.js";
5
5
  import { useFileInstance } from "./utils/useFileInstance.js";
6
6
  import { jsx } from "react/jsx-runtime";
7
7
  //#region src/react/File.tsx
8
- function File({ file, lineAnnotations, selectedLines, options, editorOptions, metrics, className, style, renderAnnotation, renderCustomHeader, renderHeaderPrefix, renderHeaderFilenameSuffix, renderHeaderMetadata, prerenderedHTML, renderGutterUtility, disableWorkerPool = false, edit = false }) {
9
- const { ref, getHoveredLine } = useFileInstance({
8
+ function File({ file, lineAnnotations, selectedLines, options, editorOptions, editStateKey, metrics, className, style, renderAnnotation, renderCustomHeader, renderHeaderPrefix, renderHeaderFilenameSuffix, renderHeaderMetadata, prerenderedHTML, renderGutterUtility, disableWorkerPool = false, edit = false, onEditChange, onEditComplete }) {
9
+ const { ref, getHoveredLine, getAnnotationSlotName } = useFileInstance({
10
10
  file,
11
11
  options,
12
12
  editorOptions,
13
+ editStateKey,
13
14
  metrics,
14
15
  lineAnnotations,
15
16
  selectedLines,
@@ -17,7 +18,9 @@ function File({ file, lineAnnotations, selectedLines, options, editorOptions, me
17
18
  hasGutterRenderUtility: renderGutterUtility != null,
18
19
  hasCustomHeader: renderCustomHeader != null,
19
20
  disableWorkerPool,
20
- edit
21
+ edit,
22
+ onEditChange,
23
+ onEditComplete
21
24
  });
22
25
  return /* @__PURE__ */ jsx(DIFFS_TAG_NAME, {
23
26
  ref,
@@ -32,7 +35,8 @@ function File({ file, lineAnnotations, selectedLines, options, editorOptions, me
32
35
  renderHeaderMetadata,
33
36
  renderGutterUtility,
34
37
  lineAnnotations,
35
- getHoveredLine
38
+ getHoveredLine,
39
+ getAnnotationSlotName
36
40
  }), prerenderedHTML)
37
41
  });
38
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"File.js","names":[],"sources":["../../src/react/File.tsx"],"sourcesContent":["'use client';\n\nimport { type FileOptions } from '../components/File';\nimport { DIFFS_TAG_NAME } from '../constants';\nimport type { FileProps } from './types';\nimport { renderFileChildren } from './utils/renderFileChildren';\nimport { templateRender } from './utils/templateRender';\nimport { useFileInstance } from './utils/useFileInstance';\n\nexport type { FileOptions };\n\nexport function File<LAnnotation = undefined>({\n file,\n lineAnnotations,\n selectedLines,\n options,\n editorOptions,\n metrics,\n className,\n style,\n renderAnnotation,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n prerenderedHTML,\n renderGutterUtility,\n disableWorkerPool = false,\n edit = false,\n}: FileProps<LAnnotation>): React.JSX.Element {\n const { ref, getHoveredLine } = useFileInstance({\n file,\n options,\n editorOptions,\n metrics,\n lineAnnotations,\n selectedLines,\n prerenderedHTML,\n hasGutterRenderUtility: renderGutterUtility != null,\n hasCustomHeader: renderCustomHeader != null,\n disableWorkerPool,\n edit,\n });\n const children = renderFileChildren({\n file,\n renderAnnotation,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderGutterUtility,\n lineAnnotations,\n getHoveredLine,\n });\n return (\n <DIFFS_TAG_NAME ref={ref} className={className} style={style}>\n {templateRender(children, prerenderedHTML)}\n </DIFFS_TAG_NAME>\n );\n}\n"],"mappings":";;;;;;;AAWA,SAAgB,KAA8B,EAC5C,MACA,iBACA,eACA,SACA,eACA,SACA,WACA,OACA,kBACA,oBACA,oBACA,4BACA,sBACA,iBACA,qBACA,oBAAoB,OACpB,OAAO,SACqC;CAC5C,MAAM,EAAE,KAAK,mBAAmB,gBAAgB;EAC9C;EACA;EACA;EACA;EACA;EACA;EACA;EACA,wBAAwB,uBAAuB;EAC/C,iBAAiB,sBAAsB;EACvC;EACA;CACF,CAAC;CAYD,OACE,oBAAC,gBAAD;EAAqB;EAAgB;EAAkB;YACpD,eAbY,mBAAmB;GAClC;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAG2B,GAAG,eAAe;CAC3B,CAAA;AAEpB"}
1
+ {"version":3,"file":"File.js","names":[],"sources":["../../src/react/File.tsx"],"sourcesContent":["'use client';\n\nimport {\n type FileEditChangeHandler,\n type FileEditCompleteEvent,\n type FileEditCompleteHandler,\n} from '../components/File';\nimport { DIFFS_TAG_NAME } from '../constants';\nimport type { FileProps } from './types';\nimport { renderFileChildren } from './utils/renderFileChildren';\nimport { templateRender } from './utils/templateRender';\nimport { useFileInstance } from './utils/useFileInstance';\n\nexport type {\n FileEditChangeHandler,\n FileEditCompleteEvent,\n FileEditCompleteHandler,\n};\nexport type { FileOptions } from './types';\n\nexport function File<LAnnotation = undefined, Caret = undefined>({\n file,\n lineAnnotations,\n selectedLines,\n options,\n editorOptions,\n editStateKey,\n metrics,\n className,\n style,\n renderAnnotation,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n prerenderedHTML,\n renderGutterUtility,\n disableWorkerPool = false,\n edit = false,\n onEditChange,\n onEditComplete,\n}: FileProps<LAnnotation, Caret>): React.JSX.Element {\n const { ref, getHoveredLine, getAnnotationSlotName } = useFileInstance({\n file,\n options,\n editorOptions,\n editStateKey,\n metrics,\n lineAnnotations,\n selectedLines,\n prerenderedHTML,\n hasGutterRenderUtility: renderGutterUtility != null,\n hasCustomHeader: renderCustomHeader != null,\n disableWorkerPool,\n edit,\n onEditChange,\n onEditComplete,\n });\n const children = renderFileChildren({\n file,\n renderAnnotation,\n renderCustomHeader,\n renderHeaderPrefix,\n renderHeaderFilenameSuffix,\n renderHeaderMetadata,\n renderGutterUtility,\n lineAnnotations,\n getHoveredLine,\n getAnnotationSlotName,\n });\n return (\n <DIFFS_TAG_NAME ref={ref} className={className} style={style}>\n {templateRender(children, prerenderedHTML)}\n </DIFFS_TAG_NAME>\n );\n}\n"],"mappings":";;;;;;;AAoBA,SAAgB,KAAiD,EAC/D,MACA,iBACA,eACA,SACA,eACA,cACA,SACA,WACA,OACA,kBACA,oBACA,oBACA,4BACA,sBACA,iBACA,qBACA,oBAAoB,OACpB,OAAO,OACP,cACA,kBACmD;CACnD,MAAM,EAAE,KAAK,gBAAgB,0BAA0B,gBAAgB;EACrE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,wBAAwB,uBAAuB;EAC/C,iBAAiB,sBAAsB;EACvC;EACA;EACA;EACA;CACF,CAAC;CAaD,OACE,oBAAC,gBAAD;EAAqB;EAAgB;EAAkB;YACpD,eAdY,mBAAmB;GAClC;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAG2B,GAAG,eAAe;CAC3B,CAAA;AAEpB"}