@lapis-notes/history 0.1.2 → 0.2.0

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 (334) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/LICENSE.md +3 -7
  3. package/README.md +2 -2
  4. package/dist/history-compare-panel.css +28 -6
  5. package/dist/history-compare-panel.svelte +115 -108
  6. package/dist/repository/NOTICE.md +11 -0
  7. package/dist/repository/components/RepositoryAuthorAvatar.svelte +77 -0
  8. package/dist/repository/components/RepositoryAuthorAvatar.svelte.d.ts +11 -0
  9. package/dist/repository/components/RepositoryBackupStatus.svelte +236 -0
  10. package/dist/repository/components/RepositoryBackupStatus.svelte.d.ts +11 -0
  11. package/dist/repository/components/RepositoryChangedFiles.svelte +104 -0
  12. package/dist/repository/components/RepositoryChangedFiles.svelte.d.ts +13 -0
  13. package/dist/repository/components/RepositoryCommitMessage.svelte +93 -0
  14. package/dist/repository/components/RepositoryCommitMessage.svelte.d.ts +6 -0
  15. package/dist/repository/components/RepositoryCommitPicker.svelte +205 -0
  16. package/dist/repository/components/RepositoryCommitPicker.svelte.d.ts +17 -0
  17. package/dist/repository/components/RepositoryComparisonBar.svelte +71 -0
  18. package/dist/repository/components/RepositoryComparisonBar.svelte.d.ts +9 -0
  19. package/dist/repository/components/RepositoryComparisonTime.svelte +32 -0
  20. package/dist/repository/components/RepositoryComparisonTime.svelte.d.ts +6 -0
  21. package/dist/repository/components/RepositoryDiff.svelte +56 -0
  22. package/dist/repository/components/RepositoryDiff.svelte.d.ts +11 -0
  23. package/dist/repository/components/RepositoryDiffColumn.svelte +78 -0
  24. package/dist/repository/components/RepositoryDiffColumn.svelte.d.ts +14 -0
  25. package/dist/repository/components/RepositoryDiffControls.svelte +117 -0
  26. package/dist/repository/components/RepositoryDiffControls.svelte.d.ts +8 -0
  27. package/dist/repository/components/RepositoryFileHistory.svelte +170 -0
  28. package/dist/repository/components/RepositoryFileHistory.svelte.d.ts +10 -0
  29. package/dist/repository/components/RepositoryFileTitle.svelte +30 -0
  30. package/dist/repository/components/RepositoryFileTitle.svelte.d.ts +6 -0
  31. package/dist/repository/components/RepositoryGraph.svelte +216 -0
  32. package/dist/repository/components/RepositoryGraph.svelte.d.ts +19 -0
  33. package/dist/repository/components/RepositoryGraphSvg.svelte +110 -0
  34. package/dist/repository/components/RepositoryGraphSvg.svelte.d.ts +11 -0
  35. package/dist/repository/components/RepositoryIdentifiers.svelte +221 -0
  36. package/dist/repository/components/RepositoryIdentifiers.svelte.d.ts +15 -0
  37. package/dist/repository/components/RepositoryLogHeader.svelte +90 -0
  38. package/dist/repository/components/RepositoryLogHeader.svelte.d.ts +23 -0
  39. package/dist/repository/components/RepositoryOperationArguments.svelte +52 -0
  40. package/dist/repository/components/RepositoryOperationArguments.svelte.d.ts +6 -0
  41. package/dist/repository/components/RepositoryOperationColumn.svelte +163 -0
  42. package/dist/repository/components/RepositoryOperationColumn.svelte.d.ts +11 -0
  43. package/dist/repository/components/RepositoryOperationFiles.svelte +245 -0
  44. package/dist/repository/components/RepositoryOperationFiles.svelte.d.ts +14 -0
  45. package/dist/repository/components/RepositoryOperationMessage.svelte +169 -0
  46. package/dist/repository/components/RepositoryOperationMessage.svelte.d.ts +10 -0
  47. package/dist/repository/components/RepositoryOperationOption.svelte +183 -0
  48. package/dist/repository/components/RepositoryOperationOption.svelte.d.ts +10 -0
  49. package/dist/repository/components/RepositoryOperationParentPicker.svelte +188 -0
  50. package/dist/repository/components/RepositoryOperationParentPicker.svelte.d.ts +14 -0
  51. package/dist/repository/components/RepositoryOperationPinPicker.svelte +170 -0
  52. package/dist/repository/components/RepositoryOperationPinPicker.svelte.d.ts +13 -0
  53. package/dist/repository/components/RepositoryOperationRail.svelte +136 -0
  54. package/dist/repository/components/RepositoryOperationRail.svelte.d.ts +9 -0
  55. package/dist/repository/components/RepositoryOperationTarget.svelte +99 -0
  56. package/dist/repository/components/RepositoryOperationTarget.svelte.d.ts +8 -0
  57. package/dist/repository/components/RepositoryOperations.svelte +199 -0
  58. package/dist/repository/components/RepositoryOperations.svelte.d.ts +12 -0
  59. package/dist/repository/components/RepositoryPanel.svelte +207 -0
  60. package/dist/repository/components/RepositoryPanel.svelte.d.ts +15 -0
  61. package/dist/repository/components/RepositoryParentSummary.svelte +52 -0
  62. package/dist/repository/components/RepositoryParentSummary.svelte.d.ts +10 -0
  63. package/dist/repository/components/RepositoryPickerSearch.svelte +51 -0
  64. package/dist/repository/components/RepositoryPickerSearch.svelte.d.ts +11 -0
  65. package/dist/repository/components/RepositoryRestoreDialog.svelte +81 -0
  66. package/dist/repository/components/RepositoryRestoreDialog.svelte.d.ts +7 -0
  67. package/dist/repository/components/RepositoryRevisionActions.svelte +53 -0
  68. package/dist/repository/components/RepositoryRevisionActions.svelte.d.ts +9 -0
  69. package/dist/repository/components/RepositoryRevisionFiles.svelte +110 -0
  70. package/dist/repository/components/RepositoryRevisionFiles.svelte.d.ts +14 -0
  71. package/dist/repository/components/RepositoryRevisionOption.svelte +60 -0
  72. package/dist/repository/components/RepositoryRevisionOption.svelte.d.ts +9 -0
  73. package/dist/repository/components/RepositoryRevisionPicker.svelte +165 -0
  74. package/dist/repository/components/RepositoryRevisionPicker.svelte.d.ts +14 -0
  75. package/dist/repository/components/RepositoryRevisions.svelte +115 -0
  76. package/dist/repository/components/RepositoryRevisions.svelte.d.ts +20 -0
  77. package/dist/repository/components/RepositoryShell.svelte +44 -0
  78. package/dist/repository/components/RepositoryShell.svelte.d.ts +11 -0
  79. package/dist/repository/components/RepositorySkeleton.svelte +138 -0
  80. package/dist/repository/components/RepositorySkeleton.svelte.d.ts +7 -0
  81. package/dist/repository/components/RepositorySourcePicker.svelte +114 -0
  82. package/dist/repository/components/RepositorySourcePicker.svelte.d.ts +7 -0
  83. package/dist/repository/components/RepositoryUpstreamActions.svelte +125 -0
  84. package/dist/repository/components/RepositoryUpstreamActions.svelte.d.ts +8 -0
  85. package/dist/repository/components/RepositoryWorkingCopyStatus.svelte +290 -0
  86. package/dist/repository/components/RepositoryWorkingCopyStatus.svelte.d.ts +11 -0
  87. package/dist/repository/components/RepositoryWorkspacePicker.svelte +158 -0
  88. package/dist/repository/components/RepositoryWorkspacePicker.svelte.d.ts +11 -0
  89. package/dist/repository/components/backup/AdoptionSettings.svelte +95 -0
  90. package/dist/repository/components/backup/AdoptionSettings.svelte.d.ts +7 -0
  91. package/dist/repository/components/backup/BackupCard.svelte +79 -0
  92. package/dist/repository/components/backup/BackupCard.svelte.d.ts +14 -0
  93. package/dist/repository/components/backup/BackupField.svelte +45 -0
  94. package/dist/repository/components/backup/BackupField.svelte.d.ts +10 -0
  95. package/dist/repository/components/backup/BackupSelect.svelte +71 -0
  96. package/dist/repository/components/backup/BackupSelect.svelte.d.ts +35 -0
  97. package/dist/repository/components/backup/BackupSettings.svelte +122 -0
  98. package/dist/repository/components/backup/BackupSettings.svelte.d.ts +18 -0
  99. package/dist/repository/components/backup/BackupSettingsField.svelte +13 -0
  100. package/dist/repository/components/backup/BackupSettingsField.svelte.d.ts +4 -0
  101. package/dist/repository/components/backup/ForgeAccounts.svelte +231 -0
  102. package/dist/repository/components/backup/ForgeAccounts.svelte.d.ts +9 -0
  103. package/dist/repository/components/backup/ForgeAuthorization.svelte +267 -0
  104. package/dist/repository/components/backup/ForgeAuthorization.svelte.d.ts +9 -0
  105. package/dist/repository/components/backup/ForgeIcon.svelte +21 -0
  106. package/dist/repository/components/backup/ForgeIcon.svelte.d.ts +7 -0
  107. package/dist/repository/components/backup/PublicationRecovery.svelte +129 -0
  108. package/dist/repository/components/backup/PublicationRecovery.svelte.d.ts +11 -0
  109. package/dist/repository/components/backup/RemoteSettings.svelte +288 -0
  110. package/dist/repository/components/backup/RemoteSettings.svelte.d.ts +11 -0
  111. package/dist/repository/components/backup/RepositorySettingsPage.svelte +51 -0
  112. package/dist/repository/components/backup/RepositorySettingsPage.svelte.d.ts +4 -0
  113. package/dist/repository/components/backup/StorageSettings.svelte +158 -0
  114. package/dist/repository/components/backup/StorageSettings.svelte.d.ts +7 -0
  115. package/dist/repository/components/backup/SyncConflictEditor.svelte +158 -0
  116. package/dist/repository/components/backup/SyncConflictEditor.svelte.d.ts +9 -0
  117. package/dist/repository/components/backup/SyncSettings.svelte +97 -0
  118. package/dist/repository/components/backup/SyncSettings.svelte.d.ts +9 -0
  119. package/dist/repository/components/backup/adoption-settings.d.ts +7 -0
  120. package/dist/repository/components/backup/adoption-settings.js +42 -0
  121. package/dist/repository/components/backup/backup-settings.d.ts +35 -0
  122. package/dist/repository/components/backup/backup-settings.js +96 -0
  123. package/dist/repository/components/backup/forge-icons.d.ts +10 -0
  124. package/dist/repository/components/backup/forge-icons.js +11 -0
  125. package/dist/repository/components/backup/remote-restore.d.ts +3 -0
  126. package/dist/repository/components/backup/remote-restore.js +17 -0
  127. package/dist/repository/components/backup/storage-settings.d.ts +8 -0
  128. package/dist/repository/components/backup/storage-settings.js +23 -0
  129. package/dist/repository/components/blame/RepositoryBlameCommitTitle.svelte +212 -0
  130. package/dist/repository/components/blame/RepositoryBlameCommitTitle.svelte.d.ts +14 -0
  131. package/dist/repository/components/blame/RepositoryBlameGroup.svelte +189 -0
  132. package/dist/repository/components/blame/RepositoryBlameGroup.svelte.d.ts +20 -0
  133. package/dist/repository/components/blame/RepositoryBlamePanel.svelte +148 -0
  134. package/dist/repository/components/blame/RepositoryBlamePanel.svelte.d.ts +13 -0
  135. package/dist/repository/components/blame/RepositoryBlameRows.svelte +137 -0
  136. package/dist/repository/components/blame/RepositoryBlameRows.svelte.d.ts +32 -0
  137. package/dist/repository/components/blame/RepositoryBlameView.svelte +121 -0
  138. package/dist/repository/components/blame/RepositoryBlameView.svelte.d.ts +16 -0
  139. package/dist/repository/components/blame/blame-view.d.ts +16 -0
  140. package/dist/repository/components/blame/blame-view.js +73 -0
  141. package/dist/repository/components/blame/editor-actions.d.ts +3 -0
  142. package/dist/repository/components/blame/editor-actions.js +53 -0
  143. package/dist/repository/components/conflicts/RepositoryConflictActions.svelte +83 -0
  144. package/dist/repository/components/conflicts/RepositoryConflictActions.svelte.d.ts +13 -0
  145. package/dist/repository/components/conflicts/RepositoryConflictBody.svelte +93 -0
  146. package/dist/repository/components/conflicts/RepositoryConflictBody.svelte.d.ts +16 -0
  147. package/dist/repository/components/conflicts/RepositoryConflictFileTree.svelte +84 -0
  148. package/dist/repository/components/conflicts/RepositoryConflictFileTree.svelte.d.ts +21 -0
  149. package/dist/repository/components/conflicts/RepositoryConflictPath.svelte +35 -0
  150. package/dist/repository/components/conflicts/RepositoryConflictPath.svelte.d.ts +9 -0
  151. package/dist/repository/components/conflicts/RepositoryConflictResolution.svelte +133 -0
  152. package/dist/repository/components/conflicts/RepositoryConflictResolution.svelte.d.ts +12 -0
  153. package/dist/repository/components/conflicts/RepositoryConflictSurface.svelte +105 -0
  154. package/dist/repository/components/conflicts/RepositoryConflictSurface.svelte.d.ts +23 -0
  155. package/dist/repository/components/conflicts/RepositoryConflictText.svelte +104 -0
  156. package/dist/repository/components/conflicts/RepositoryConflictText.svelte.d.ts +26 -0
  157. package/dist/repository/components/conflicts/RepositorySidebarToggleIcon.svelte +52 -0
  158. package/dist/repository/components/conflicts/RepositorySidebarToggleIcon.svelte.d.ts +7 -0
  159. package/dist/repository/components/conflicts/repository-conflict-file-tree.css +73 -0
  160. package/dist/repository/components/conflicts/repository-conflicts.css +125 -0
  161. package/dist/repository/components/file-history-view.d.ts +15 -0
  162. package/dist/repository/components/file-history-view.js +110 -0
  163. package/dist/repository/components/operation-view.d.ts +16 -0
  164. package/dist/repository/components/operation-view.js +95 -0
  165. package/dist/repository/components/repository-backup.d.ts +22 -0
  166. package/dist/repository/components/repository-backup.js +75 -0
  167. package/dist/repository/components/repository-column-chrome.css +35 -0
  168. package/dist/repository/components/repository-commit-picker.css +55 -0
  169. package/dist/repository/components/repository-feedback.d.ts +7 -0
  170. package/dist/repository/components/repository-feedback.js +40 -0
  171. package/dist/repository/components/repository-identifiers.css +199 -0
  172. package/dist/repository/components/repository-navigation.d.ts +4 -0
  173. package/dist/repository/components/repository-navigation.js +16 -0
  174. package/dist/repository/components/repository-operation-column.css +112 -0
  175. package/dist/repository/components/repository-picker-options.css +11 -0
  176. package/dist/repository/components/repository-plugin.d.ts +33 -0
  177. package/dist/repository/components/repository-plugin.js +191 -0
  178. package/dist/repository/components/repository-review-identifiers.css +50 -0
  179. package/dist/repository/components/repository-status.d.ts +13 -0
  180. package/dist/repository/components/repository-status.js +227 -0
  181. package/dist/repository/components/repository-sync.d.ts +13 -0
  182. package/dist/repository/components/repository-sync.js +93 -0
  183. package/dist/repository/components/repository-tools.d.ts +3 -0
  184. package/dist/repository/components/repository-tools.js +13 -0
  185. package/dist/repository/components/repository-view.d.ts +16 -0
  186. package/dist/repository/components/repository-view.js +140 -0
  187. package/dist/repository/components/restore-controller.d.ts +9 -0
  188. package/dist/repository/components/restore-controller.js +44 -0
  189. package/dist/repository/components/search/search-provider.d.ts +3 -0
  190. package/dist/repository/components/search/search-provider.js +185 -0
  191. package/dist/repository/controllers/adoption-controller.d.ts +29 -0
  192. package/dist/repository/controllers/adoption-controller.js +145 -0
  193. package/dist/repository/controllers/adoption.d.ts +30 -0
  194. package/dist/repository/controllers/adoption.js +21 -0
  195. package/dist/repository/controllers/ai-history.d.ts +57 -0
  196. package/dist/repository/controllers/ai-history.js +51 -0
  197. package/dist/repository/controllers/author.d.ts +2 -0
  198. package/dist/repository/controllers/author.js +11 -0
  199. package/dist/repository/controllers/background-work.d.ts +14 -0
  200. package/dist/repository/controllers/background-work.js +57 -0
  201. package/dist/repository/controllers/backup-follow.d.ts +5 -0
  202. package/dist/repository/controllers/backup-follow.js +29 -0
  203. package/dist/repository/controllers/backup.d.ts +39 -0
  204. package/dist/repository/controllers/backup.js +129 -0
  205. package/dist/repository/controllers/blame-chunks.d.ts +13 -0
  206. package/dist/repository/controllers/blame-chunks.js +51 -0
  207. package/dist/repository/controllers/blame-controller.d.ts +17 -0
  208. package/dist/repository/controllers/blame-controller.js +148 -0
  209. package/dist/repository/controllers/blame-model.d.ts +25 -0
  210. package/dist/repository/controllers/blame-model.js +31 -0
  211. package/dist/repository/controllers/blame-preferences.d.ts +3 -0
  212. package/dist/repository/controllers/blame-preferences.js +18 -0
  213. package/dist/repository/controllers/commit-cards.d.ts +4 -0
  214. package/dist/repository/controllers/commit-cards.js +38 -0
  215. package/dist/repository/controllers/conflict-menu.d.ts +2 -0
  216. package/dist/repository/controllers/conflict-menu.js +1 -0
  217. package/dist/repository/controllers/file-history-controller.d.ts +29 -0
  218. package/dist/repository/controllers/file-history-controller.js +182 -0
  219. package/dist/repository/controllers/forge-accounts.d.ts +48 -0
  220. package/dist/repository/controllers/forge-accounts.js +1 -0
  221. package/dist/repository/controllers/forge-controller.d.ts +24 -0
  222. package/dist/repository/controllers/forge-controller.js +168 -0
  223. package/dist/repository/controllers/graph/model.d.ts +20 -0
  224. package/dist/repository/controllers/graph/model.js +33 -0
  225. package/dist/repository/controllers/graph/repository-log-graph.d.ts +44 -0
  226. package/dist/repository/controllers/graph/repository-log-graph.js +182 -0
  227. package/dist/repository/controllers/graph/repository-log-lanes.d.ts +7 -0
  228. package/dist/repository/controllers/graph/repository-log-lanes.js +19 -0
  229. package/dist/repository/controllers/graph/revision-id.d.ts +3 -0
  230. package/dist/repository/controllers/graph/revision-id.js +10 -0
  231. package/dist/repository/controllers/history-canvas.d.ts +2 -0
  232. package/dist/repository/controllers/history-canvas.js +45 -0
  233. package/dist/repository/controllers/history-controller.d.ts +31 -0
  234. package/dist/repository/controllers/history-controller.js +238 -0
  235. package/dist/repository/controllers/history-files.d.ts +7 -0
  236. package/dist/repository/controllers/history-files.js +18 -0
  237. package/dist/repository/controllers/history-graph.d.ts +20 -0
  238. package/dist/repository/controllers/history-graph.js +89 -0
  239. package/dist/repository/controllers/history-index-controller.d.ts +22 -0
  240. package/dist/repository/controllers/history-index-controller.js +77 -0
  241. package/dist/repository/controllers/history-lifetime.d.ts +13 -0
  242. package/dist/repository/controllers/history-lifetime.js +40 -0
  243. package/dist/repository/controllers/history-reader.d.ts +22 -0
  244. package/dist/repository/controllers/history-reader.js +1 -0
  245. package/dist/repository/controllers/history-search-expression.d.ts +9 -0
  246. package/dist/repository/controllers/history-search-expression.js +86 -0
  247. package/dist/repository/controllers/history-selection.d.ts +5 -0
  248. package/dist/repository/controllers/history-selection.js +32 -0
  249. package/dist/repository/controllers/history-source.d.ts +10 -0
  250. package/dist/repository/controllers/history-source.js +7 -0
  251. package/dist/repository/controllers/history-state.d.ts +34 -0
  252. package/dist/repository/controllers/history-state.js +55 -0
  253. package/dist/repository/controllers/indexed-search-validation.d.ts +4 -0
  254. package/dist/repository/controllers/indexed-search-validation.js +64 -0
  255. package/dist/repository/controllers/indexed-search.d.ts +11 -0
  256. package/dist/repository/controllers/indexed-search.js +1 -0
  257. package/dist/repository/controllers/log-canvas.d.ts +2 -0
  258. package/dist/repository/controllers/log-canvas.js +25 -0
  259. package/dist/repository/controllers/native-indexed-search.d.ts +4 -0
  260. package/dist/repository/controllers/native-indexed-search.js +10 -0
  261. package/dist/repository/controllers/open-history-revision.d.ts +3 -0
  262. package/dist/repository/controllers/open-history-revision.js +8 -0
  263. package/dist/repository/controllers/operation-command.d.ts +2 -0
  264. package/dist/repository/controllers/operation-command.js +55 -0
  265. package/dist/repository/controllers/operation-controller.d.ts +33 -0
  266. package/dist/repository/controllers/operation-controller.js +267 -0
  267. package/dist/repository/controllers/operation-files.d.ts +33 -0
  268. package/dist/repository/controllers/operation-files.js +182 -0
  269. package/dist/repository/controllers/operation-graph.d.ts +17 -0
  270. package/dist/repository/controllers/operation-graph.js +50 -0
  271. package/dist/repository/controllers/operation-message.d.ts +5 -0
  272. package/dist/repository/controllers/operation-message.js +18 -0
  273. package/dist/repository/controllers/operation-metadata.d.ts +5 -0
  274. package/dist/repository/controllers/operation-metadata.js +26 -0
  275. package/dist/repository/controllers/operation-parent.d.ts +5 -0
  276. package/dist/repository/controllers/operation-parent.js +46 -0
  277. package/dist/repository/controllers/operation-state.d.ts +28 -0
  278. package/dist/repository/controllers/operation-state.js +26 -0
  279. package/dist/repository/controllers/parent-candidates.d.ts +4 -0
  280. package/dist/repository/controllers/parent-candidates.js +27 -0
  281. package/dist/repository/controllers/plugin-data.d.ts +9 -0
  282. package/dist/repository/controllers/plugin-data.js +33 -0
  283. package/dist/repository/controllers/preparation-queue.d.ts +9 -0
  284. package/dist/repository/controllers/preparation-queue.js +55 -0
  285. package/dist/repository/controllers/remote-controller.d.ts +23 -0
  286. package/dist/repository/controllers/remote-controller.js +98 -0
  287. package/dist/repository/controllers/remote.d.ts +48 -0
  288. package/dist/repository/controllers/remote.js +13 -0
  289. package/dist/repository/controllers/restore-recovery.d.ts +3 -0
  290. package/dist/repository/controllers/restore-recovery.js +32 -0
  291. package/dist/repository/controllers/restore.d.ts +66 -0
  292. package/dist/repository/controllers/restore.js +201 -0
  293. package/dist/repository/controllers/revision-comparison.d.ts +20 -0
  294. package/dist/repository/controllers/revision-comparison.js +89 -0
  295. package/dist/repository/controllers/search-controller.d.ts +19 -0
  296. package/dist/repository/controllers/search-controller.js +105 -0
  297. package/dist/repository/controllers/search-page.d.ts +2 -0
  298. package/dist/repository/controllers/search-page.js +39 -0
  299. package/dist/repository/controllers/search.d.ts +51 -0
  300. package/dist/repository/controllers/search.js +8 -0
  301. package/dist/repository/controllers/services.d.ts +7 -0
  302. package/dist/repository/controllers/services.js +24 -0
  303. package/dist/repository/controllers/storage-controller.d.ts +30 -0
  304. package/dist/repository/controllers/storage-controller.js +130 -0
  305. package/dist/repository/controllers/storage.d.ts +26 -0
  306. package/dist/repository/controllers/storage.js +1 -0
  307. package/dist/repository/controllers/sync-application.d.ts +17 -0
  308. package/dist/repository/controllers/sync-application.js +45 -0
  309. package/dist/repository/controllers/sync-controller.d.ts +31 -0
  310. package/dist/repository/controllers/sync-controller.js +300 -0
  311. package/dist/repository/controllers/sync-publication.d.ts +7 -0
  312. package/dist/repository/controllers/sync-publication.js +29 -0
  313. package/dist/repository/controllers/sync-recovery.d.ts +7 -0
  314. package/dist/repository/controllers/sync-recovery.js +27 -0
  315. package/dist/repository/controllers/sync.d.ts +62 -0
  316. package/dist/repository/controllers/sync.js +38 -0
  317. package/dist/repository/controllers/tags.d.ts +7 -0
  318. package/dist/repository/controllers/tags.js +71 -0
  319. package/dist/repository/controllers/transcript-paths.d.ts +2 -0
  320. package/dist/repository/controllers/transcript-paths.js +17 -0
  321. package/dist/repository/controllers/transcript-writers.d.ts +9 -0
  322. package/dist/repository/controllers/transcript-writers.js +37 -0
  323. package/dist/repository/controllers/working-copy-controller.d.ts +22 -0
  324. package/dist/repository/controllers/working-copy-controller.js +58 -0
  325. package/dist/repository/controllers/working-copy-status.d.ts +16 -0
  326. package/dist/repository/controllers/working-copy-status.js +57 -0
  327. package/dist/repository/controllers/workspaces.d.ts +7 -0
  328. package/dist/repository/controllers/workspaces.js +4 -0
  329. package/dist/repository/index.d.ts +9 -0
  330. package/dist/repository/index.js +6 -0
  331. package/manifest.json +12 -3
  332. package/package.json +43 -10
  333. package/registry-content/overview.md +10 -0
  334. package/registry.json +131 -2
@@ -0,0 +1,73 @@
1
+ import { historySource, } from "../../controllers/history-source.js";
2
+ import { View } from "@lapis-notes/api";
3
+ import { mount, unmount } from "svelte";
4
+ import RepositoryBlamePanel from "./RepositoryBlamePanel.svelte";
5
+ export class BlameView extends View {
6
+ plugin;
7
+ #source = "backup";
8
+ #selection;
9
+ #controller;
10
+ #component;
11
+ constructor(leaf, plugin) {
12
+ super(leaf);
13
+ this.plugin = plugin;
14
+ }
15
+ getViewType() {
16
+ return "repository-file-blame";
17
+ }
18
+ getDisplayText() {
19
+ return this.#selection ? `Blame · ${this.#selection.path}` : "File blame";
20
+ }
21
+ getIcon() {
22
+ return "git-merge-conflict";
23
+ }
24
+ getState() {
25
+ return { ...this.#selection, source: this.#source };
26
+ }
27
+ async setState(state) {
28
+ const source = historySource(state);
29
+ if (this.#controller && source !== this.#source)
30
+ throw new Error("Open a separate tab to change history source");
31
+ this.#source = source;
32
+ this.#selection =
33
+ typeof state.operation === "string" &&
34
+ typeof state.commit === "string" &&
35
+ typeof state.path === "string"
36
+ ? { operation: state.operation, commit: state.commit, path: state.path }
37
+ : undefined;
38
+ if (this.#controller && this.#selection)
39
+ await this.#controller.open(this.#selection);
40
+ await super.setState(state);
41
+ }
42
+ async onOpen() { }
43
+ async onClose() { }
44
+ onload() {
45
+ const controller = (this.#controller = this.plugin.createBlameController(this.#source));
46
+ this.#component = mount(RepositoryBlamePanel, {
47
+ target: this.containerEl,
48
+ props: {
49
+ controller,
50
+ copyText: (value) => this.plugin.copyIdentifier(value),
51
+ onOpen: (commit) => {
52
+ const operation = controller.state.selection?.operation;
53
+ if (operation)
54
+ void this.plugin
55
+ .open(operation, commit, this.#source)
56
+ .catch((error) => this.plugin.report(error));
57
+ },
58
+ },
59
+ });
60
+ if (this.#selection)
61
+ void controller.open(this.#selection);
62
+ }
63
+ onunload() {
64
+ if (this.#component)
65
+ void unmount(this.#component);
66
+ this.#component = undefined;
67
+ if (this.#controller)
68
+ void this.plugin
69
+ .release(this.#controller)
70
+ .catch((error) => this.plugin.report(error));
71
+ this.#controller = undefined;
72
+ }
73
+ }
@@ -0,0 +1,3 @@
1
+ import type { RepositoryPlugin } from "../repository-plugin.js";
2
+ /** The enabled plugin owns editor contributions and their read-only controllers. */
3
+ export declare function registerBlameEditorActions(plugin: RepositoryPlugin): void;
@@ -0,0 +1,53 @@
1
+ import { FileView } from "@lapis-notes/api";
2
+ /** The enabled plugin owns editor contributions and their read-only controllers. */
3
+ export function registerBlameEditorActions(plugin) {
4
+ const app = plugin.app;
5
+ const actions = new Map();
6
+ let disposed = false;
7
+ const sync = () => {
8
+ if (disposed)
9
+ return;
10
+ app.workspace.iterateRootLeaves((leaf) => {
11
+ const view = leaf.view;
12
+ if (!(view instanceof FileView))
13
+ return;
14
+ const installed = actions.get(view);
15
+ if (installed && view.actions.includes(installed))
16
+ return;
17
+ view.addAction("git-merge-conflict", "Blame file", async () => {
18
+ if (disposed || !view.file)
19
+ return;
20
+ const path = view.file.path;
21
+ const controller = plugin.createFileHistoryController();
22
+ try {
23
+ await controller.follow(path);
24
+ const { operation, workspaceCommit: commit } = controller.state;
25
+ if (!disposed && view.file?.path === path && operation && commit)
26
+ await plugin.openBlame(operation, commit, path);
27
+ }
28
+ catch (error) {
29
+ if (!disposed)
30
+ plugin.report(error);
31
+ }
32
+ finally {
33
+ await plugin.release(controller);
34
+ }
35
+ });
36
+ actions.set(view, view.actions.at(-1));
37
+ });
38
+ };
39
+ const fileOpen = app.workspace.on("file-open", sync);
40
+ const leafChange = app.workspace.on("active-leaf-change", sync);
41
+ const layoutChange = app.workspace.on("layout-change", sync);
42
+ plugin.register(() => {
43
+ disposed = true;
44
+ app.workspace.offref(fileOpen);
45
+ app.workspace.offref(leafChange);
46
+ app.workspace.offref(layoutChange);
47
+ for (const [view, action] of actions)
48
+ view.actions = view.actions.filter((value) => value !== action);
49
+ actions.clear();
50
+ });
51
+ app.workspace.onLayoutReady(sync);
52
+ sync();
53
+ }
@@ -0,0 +1,83 @@
1
+ <script lang="ts">
2
+ import { Button } from "@lapismd/design-core/shadcn/button";
3
+ import Trash2Icon from "@lucide/svelte/icons/trash-2";
4
+ import FileCheck2Icon from "@lucide/svelte/icons/file-check-2";
5
+ import EyeIcon from "@lucide/svelte/icons/eye";
6
+ import ArrowLeftIcon from "@lucide/svelte/icons/arrow-left";
7
+ import CheckIcon from "@lucide/svelte/icons/check";
8
+ let {
9
+ preview,
10
+ resolution,
11
+ selectedCount,
12
+ pathCount,
13
+ onDelete,
14
+ onStage,
15
+ onPreview,
16
+ onBack,
17
+ }: {
18
+ preview: boolean;
19
+ resolution?: "delete" | "uploaded_file";
20
+ selectedCount: number;
21
+ pathCount: number;
22
+ onDelete(): void;
23
+ onStage(): void;
24
+ onPreview(): void;
25
+ onBack(): void;
26
+ } = $props();
27
+ </script>
28
+
29
+ <div
30
+ class="store-conflict-editor__actions"
31
+ role="group"
32
+ aria-label="Conflict actions"
33
+ >
34
+ {#if !preview}
35
+ <Button
36
+ type="button"
37
+ size="sm"
38
+ variant={resolution === "delete" ? "destructive" : "outline"}
39
+ aria-label="Delete path"
40
+ title="Delete path"
41
+ aria-pressed={resolution === "delete"}
42
+ onclick={onDelete}
43
+ >
44
+ <Trash2Icon data-icon="inline-start" aria-hidden="true" />
45
+ <span class="store-conflict-editor__action-label">Delete path</span>
46
+ </Button>
47
+ {#if resolution === "uploaded_file"}
48
+ <span class="store-conflict-editor__staged" role="status"
49
+ >Merged file staged</span
50
+ >
51
+ {/if}
52
+ <Button
53
+ type="button"
54
+ size="sm"
55
+ variant="outline"
56
+ aria-label="Stage merged file"
57
+ title="Stage merged file"
58
+ onclick={onStage}
59
+ >
60
+ <FileCheck2Icon data-icon="inline-start" aria-hidden="true" />
61
+ <span class="store-conflict-editor__action-label">Stage merged file</span>
62
+ </Button>
63
+ <Button
64
+ type="button"
65
+ size="sm"
66
+ disabled={selectedCount === 0}
67
+ onclick={onPreview}
68
+ >
69
+ <EyeIcon data-icon="inline-start" aria-hidden="true" />Preview {selectedCount}/{pathCount}
70
+ </Button>
71
+ {:else}
72
+ <Button type="button" size="sm" variant="outline" onclick={onBack}>
73
+ <ArrowLeftIcon data-icon="inline-start" aria-hidden="true" />Back
74
+ </Button>
75
+ <Button
76
+ size="sm"
77
+ disabled
78
+ title="Native conflict commands are not connected in this preview"
79
+ >
80
+ <CheckIcon data-icon="inline-start" aria-hidden="true" />Apply resolution
81
+ </Button>
82
+ {/if}
83
+ </div>
@@ -0,0 +1,13 @@
1
+ type $$ComponentProps = {
2
+ preview: boolean;
3
+ resolution?: "delete" | "uploaded_file";
4
+ selectedCount: number;
5
+ pathCount: number;
6
+ onDelete(): void;
7
+ onStage(): void;
8
+ onPreview(): void;
9
+ onBack(): void;
10
+ };
11
+ declare const RepositoryConflictActions: import("svelte").Component<$$ComponentProps, {}, "">;
12
+ type RepositoryConflictActions = ReturnType<typeof RepositoryConflictActions>;
13
+ export default RepositoryConflictActions;
@@ -0,0 +1,93 @@
1
+ <script lang="ts">
2
+ import { AppShell, AppShellController } from "@lapismd/design-core/shell";
3
+ import type { FileListingViewMode } from "@lapismd/design-core/diff";
4
+ import { onDestroy, type Snippet } from "svelte";
5
+ import RepositoryConflictFileTree from "./RepositoryConflictFileTree.svelte";
6
+
7
+ let {
8
+ height,
9
+ files,
10
+ activePath,
11
+ browserOpen,
12
+ compact,
13
+ locked,
14
+ onSelect,
15
+ children,
16
+ }: {
17
+ height: number;
18
+ files: readonly { path: string }[];
19
+ activePath: string;
20
+ browserOpen: boolean;
21
+ compact: boolean;
22
+ locked: boolean;
23
+ onSelect: (path: string) => void;
24
+ children: Snippet;
25
+ } = $props();
26
+ const shell = new AppShellController();
27
+ onDestroy(() => void shell.dispose());
28
+ let mode = $state<FileListingViewMode>("tree");
29
+ let collapsed = $state(new Set<string>());
30
+ function toggleDirectory(path: string) {
31
+ const next = new Set(collapsed);
32
+ if (!next.delete(path)) next.add(path);
33
+ collapsed = next;
34
+ }
35
+ </script>
36
+
37
+ <AppShell.Root
38
+ controller={shell}
39
+ displayMode="desktop"
40
+ desktopMinMainWidth={0}
41
+ class="store-conflict-editor__body-shell"
42
+ style={`--ui-shell-height:${height}px`}
43
+ >
44
+ <AppShell.Main>
45
+ <AppShell.Body
46
+ layout="regions"
47
+ element="section"
48
+ label="Conflict editor body"
49
+ >
50
+ <AppShell.Body.Sidebar
51
+ id="conflict-file-browser"
52
+ panelId="conflict-file-browser"
53
+ side="left"
54
+ label="Conflict file browser"
55
+ open={browserOpen}
56
+ scrollbarVisibility="hover"
57
+ class="community-projects__file-tree-region"
58
+ style={`--ui-shell-body-sidebar-width: ${compact ? "100%" : "15rem"}`}
59
+ >
60
+ <div
61
+ class="store-conflict-editor__file-browser"
62
+ inert={locked}
63
+ aria-disabled={locked}
64
+ >
65
+ <RepositoryConflictFileTree
66
+ {files}
67
+ {mode}
68
+ collapsedDirectoryPaths={collapsed}
69
+ selectedPath={activePath}
70
+ onSelectPath={(path) => {
71
+ if (!locked) onSelect(path);
72
+ }}
73
+ onModeChange={(next) => (mode = next)}
74
+ onDirectoryToggle={toggleDirectory}
75
+ />
76
+ </div>
77
+ </AppShell.Body.Sidebar>
78
+ <AppShell.Body.Content
79
+ label="Conflict merge content"
80
+ scrollbarVisibility="hover"
81
+ class="store-conflict-editor__content"
82
+ hidden={compact && browserOpen}
83
+ >
84
+ <div
85
+ class="store-conflict-editor__content-body"
86
+ style={`height:${height}px`}
87
+ >
88
+ {@render children()}
89
+ </div>
90
+ </AppShell.Body.Content>
91
+ </AppShell.Body>
92
+ </AppShell.Main>
93
+ </AppShell.Root>
@@ -0,0 +1,16 @@
1
+ import { type Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ height: number;
4
+ files: readonly {
5
+ path: string;
6
+ }[];
7
+ activePath: string;
8
+ browserOpen: boolean;
9
+ compact: boolean;
10
+ locked: boolean;
11
+ onSelect: (path: string) => void;
12
+ children: Snippet;
13
+ };
14
+ declare const RepositoryConflictBody: import("svelte").Component<$$ComponentProps, {}, "">;
15
+ type RepositoryConflictBody = ReturnType<typeof RepositoryConflictBody>;
16
+ export default RepositoryConflictBody;
@@ -0,0 +1,84 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from "svelte";
3
+ import {
4
+ FileListing,
5
+ FileListingViewModeToggle,
6
+ FileChangeStats,
7
+ type FileListingFile,
8
+ type FileListingDirectory,
9
+ type FileListingViewMode,
10
+ } from "@lapismd/design-core/diff";
11
+ import "./repository-conflict-file-tree.css";
12
+
13
+ let {
14
+ files,
15
+ directories = [],
16
+ mode = "tree",
17
+ collapsedDirectoryPaths,
18
+ selectedPath = "",
19
+ hasMore = false,
20
+ loading = false,
21
+ showChangeStats = false,
22
+ onSelectPath,
23
+ onLoadMore,
24
+ onModeChange,
25
+ onDirectoryToggle,
26
+ empty,
27
+ }: {
28
+ files: readonly FileListingFile[];
29
+ directories?: readonly FileListingDirectory[];
30
+ mode?: FileListingViewMode;
31
+ collapsedDirectoryPaths?: ReadonlySet<string>;
32
+ selectedPath?: string | undefined;
33
+ hasMore?: boolean;
34
+ loading?: boolean;
35
+ showChangeStats?: boolean;
36
+ onSelectPath: (path: string) => void;
37
+ onLoadMore?: () => void;
38
+ onModeChange?: (mode: FileListingViewMode) => void;
39
+ onDirectoryToggle?: (path: string) => void;
40
+ empty?: Snippet;
41
+ } = $props();
42
+ </script>
43
+
44
+ <div class="community-projects__file-tree">
45
+ <div class="community-projects__file-tree-actions">
46
+ <span class="community-projects__file-tree-title">Files</span>
47
+ <span class="community-projects__file-tree-count">{files.length}</span>
48
+ <FileListingViewModeToggle {mode} {onModeChange} />
49
+ </div>
50
+ {#if !files.length && !directories.length && empty}
51
+ {@render empty()}
52
+ {:else}
53
+ <div class="review-conflict-file-list">
54
+ <FileListing
55
+ files={[...files]}
56
+ directories={[...directories]}
57
+ {mode}
58
+ {collapsedDirectoryPaths}
59
+ selectedPath={selectedPath || null}
60
+ virtualize
61
+ {hasMore}
62
+ {loading}
63
+ loadingLabel="Loading more repository files"
64
+ {onSelectPath}
65
+ {onLoadMore}
66
+ {onDirectoryToggle}
67
+ >
68
+ {#snippet fileLabel({ name })}<span class="review-conflict-file-label"
69
+ >{name}</span
70
+ >{/snippet}
71
+ {#snippet fileMeta({ file })}
72
+ {#if showChangeStats}
73
+ {#if typeof file.additions === "number" && typeof file.deletions === "number"}
74
+ <FileChangeStats
75
+ additions={file.additions}
76
+ deletions={file.deletions}
77
+ />
78
+ {:else}<span class="sr-only">Line counts unavailable</span>{/if}
79
+ {:else}<span class="sr-only">Repository file</span>{/if}
80
+ {/snippet}
81
+ </FileListing>
82
+ </div>
83
+ {/if}
84
+ </div>
@@ -0,0 +1,21 @@
1
+ import type { Snippet } from "svelte";
2
+ import { type FileListingFile, type FileListingDirectory, type FileListingViewMode } from "@lapismd/design-core/diff";
3
+ import "./repository-conflict-file-tree.css";
4
+ type $$ComponentProps = {
5
+ files: readonly FileListingFile[];
6
+ directories?: readonly FileListingDirectory[];
7
+ mode?: FileListingViewMode;
8
+ collapsedDirectoryPaths?: ReadonlySet<string>;
9
+ selectedPath?: string | undefined;
10
+ hasMore?: boolean;
11
+ loading?: boolean;
12
+ showChangeStats?: boolean;
13
+ onSelectPath: (path: string) => void;
14
+ onLoadMore?: () => void;
15
+ onModeChange?: (mode: FileListingViewMode) => void;
16
+ onDirectoryToggle?: (path: string) => void;
17
+ empty?: Snippet;
18
+ };
19
+ declare const RepositoryConflictFileTree: import("svelte").Component<$$ComponentProps, {}, "">;
20
+ type RepositoryConflictFileTree = ReturnType<typeof RepositoryConflictFileTree>;
21
+ export default RepositoryConflictFileTree;
@@ -0,0 +1,35 @@
1
+ <script lang="ts">
2
+ import { untrack } from "svelte";
3
+ import type { LocalConflictDescriptor } from "@lapismd/jj-history";
4
+ import RepositoryConflictText from "./RepositoryConflictText.svelte";
5
+ let {
6
+ conflict,
7
+ draft,
8
+ onChange,
9
+ }: {
10
+ conflict: LocalConflictDescriptor;
11
+ draft?: string;
12
+ onChange(content: string): void;
13
+ } = $props();
14
+ // This seed belongs to this mounted path; keystrokes must not rebuild the editor.
15
+ const seed = untrack(
16
+ () =>
17
+ draft ??
18
+ (conflict.editor.status === "text" ? conflict.editor.contents[1] : ""),
19
+ );
20
+ </script>
21
+
22
+ <section class="store-conflict-path" aria-label={`Conflict ${conflict.path}`}>
23
+ {#if conflict.editor.status === "text" && conflict.editor.contents.length === 3}
24
+ <div class="store-conflict-path__editor">
25
+ <RepositoryConflictText
26
+ path={conflict.path}
27
+ left={conflict.editor.contents[0]}
28
+ base={seed}
29
+ right={conflict.editor.contents[2]}
30
+ editable
31
+ onResolvedChange={({ content }) => onChange(content)}
32
+ />
33
+ </div>
34
+ {:else}<p>Merge editor unavailable for this native conflict shape.</p>{/if}
35
+ </section>
@@ -0,0 +1,9 @@
1
+ import type { LocalConflictDescriptor } from "@lapismd/jj-history";
2
+ type $$ComponentProps = {
3
+ conflict: LocalConflictDescriptor;
4
+ draft?: string;
5
+ onChange(content: string): void;
6
+ };
7
+ declare const RepositoryConflictPath: import("svelte").Component<$$ComponentProps, {}, "">;
8
+ type RepositoryConflictPath = ReturnType<typeof RepositoryConflictPath>;
9
+ export default RepositoryConflictPath;
@@ -0,0 +1,133 @@
1
+ <script lang="ts">
2
+ import RepositorySkeleton from "../RepositorySkeleton.svelte";
3
+ import { untrack } from "svelte";
4
+ import { MediaQuery } from "svelte/reactivity";
5
+ import type { LocalConflictDescriptor } from "@lapismd/jj-history";
6
+ import { Button } from "@lapismd/design-core/shadcn/button";
7
+ import RepositoryConflictSurface from "./RepositoryConflictSurface.svelte";
8
+ import RepositoryConflictActions from "./RepositoryConflictActions.svelte";
9
+ import RepositoryConflictPath from "./RepositoryConflictPath.svelte";
10
+ let {
11
+ open,
12
+ conflicts,
13
+ ready,
14
+ busy,
15
+ onLoad,
16
+ onClose,
17
+ }: {
18
+ open: boolean;
19
+ conflicts: readonly LocalConflictDescriptor[];
20
+ ready: boolean;
21
+ busy: boolean;
22
+ onLoad(): void;
23
+ onClose(): void;
24
+ } = $props();
25
+ const compact = new MediaQuery("(max-width: 700px)");
26
+ let browserOpen = $state(true),
27
+ activePath = $state("");
28
+ let drafts = $state<Record<string, string>>({});
29
+ let staged = $state<
30
+ Record<string, { type: "delete" } | { type: "uploaded_file"; text: string }>
31
+ >({});
32
+ let preview = $state(false);
33
+ let requested = $state(false);
34
+ const active = $derived(
35
+ conflicts.find((c) => c.path === activePath) ?? conflicts[0],
36
+ );
37
+ const selected = $derived(active ? staged[active.path] : undefined);
38
+ $effect(() => {
39
+ if (compact.current) browserOpen = false;
40
+ });
41
+ $effect(() => {
42
+ if (open && !requested) {
43
+ requested = true;
44
+ untrack(() => onLoad());
45
+ }
46
+ });
47
+ function stage() {
48
+ if (active?.editor.status !== "text") return;
49
+ staged[active.path] = {
50
+ type: "uploaded_file",
51
+ text: drafts[active.path] ?? active.editor.contents[1] ?? "",
52
+ };
53
+ }
54
+ </script>
55
+
56
+ <RepositoryConflictSurface
57
+ {open}
58
+ label="Resolve native conflicts"
59
+ {busy}
60
+ locked={busy || preview}
61
+ bind:browserOpen
62
+ compact={compact.current}
63
+ files={conflicts}
64
+ activePath={active?.path ?? ""}
65
+ onSelect={(path) => {
66
+ activePath = path;
67
+ if (compact.current) browserOpen = false;
68
+ }}
69
+ {onClose}
70
+ >
71
+ {#snippet actions()}
72
+ {#if ready && active}<RepositoryConflictActions
73
+ {preview}
74
+ resolution={selected?.type}
75
+ selectedCount={Object.keys(staged).length}
76
+ pathCount={conflicts.length}
77
+ onDelete={() => {
78
+ if (!active) return;
79
+ if (selected?.type === "delete") delete staged[active.path];
80
+ else staged[active.path] = { type: "delete" };
81
+ }}
82
+ onStage={stage}
83
+ onPreview={() => {
84
+ if (Object.keys(staged).length) preview = true;
85
+ }}
86
+ onBack={() => (preview = false)}
87
+ />{/if}
88
+ {/snippet}
89
+ {#if !ready}
90
+ {#if busy}<RepositorySkeleton
91
+ kind="conflicts"
92
+ label="Loading native conflict details…"
93
+ />
94
+ {:else}<p role="status">Conflict details are unavailable.</p>
95
+ <Button variant="outline" size="sm" onclick={onLoad}
96
+ >Retry conflict details</Button
97
+ >
98
+ {/if}
99
+ {:else if !conflicts.length}<p>
100
+ No conflict descriptors are available for this revision.
101
+ </p>
102
+ {:else if preview}
103
+ <section
104
+ class="store-conflict-preview"
105
+ aria-label="Conflict resolution preview"
106
+ >
107
+ <h2>Resolution draft</h2>
108
+ {#each Object.entries(staged) as [path, resolution] (path)}
109
+ <p>{resolution.type === "delete" ? "Delete" : "Replace"} {path}</p>
110
+ {#if resolution.type === "uploaded_file"}<pre><code
111
+ >{resolution.text}</code
112
+ ></pre>{/if}
113
+ {/each}
114
+ <p>
115
+ Draft retained locally while this revision stays selected. Applying
116
+ repository changes is unavailable in this read-only plugin.
117
+ </p>
118
+ </section>
119
+ {:else if active}
120
+ <div class="store-conflict-editor__path">
121
+ {#key active.path}<RepositoryConflictPath
122
+ conflict={active}
123
+ draft={drafts[active.path]}
124
+ onChange={(content) => {
125
+ drafts[active.path] = content;
126
+ const current = staged[active.path];
127
+ if (current?.type === "uploaded_file" && current.text !== content)
128
+ delete staged[active.path];
129
+ }}
130
+ />{/key}
131
+ </div>
132
+ {/if}
133
+ </RepositoryConflictSurface>
@@ -0,0 +1,12 @@
1
+ import type { LocalConflictDescriptor } from "@lapismd/jj-history";
2
+ type $$ComponentProps = {
3
+ open: boolean;
4
+ conflicts: readonly LocalConflictDescriptor[];
5
+ ready: boolean;
6
+ busy: boolean;
7
+ onLoad(): void;
8
+ onClose(): void;
9
+ };
10
+ declare const RepositoryConflictResolution: import("svelte").Component<$$ComponentProps, {}, "">;
11
+ type RepositoryConflictResolution = ReturnType<typeof RepositoryConflictResolution>;
12
+ export default RepositoryConflictResolution;