@bendyline/docblocks-react 2.0.0 → 2.1.1

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 (310) hide show
  1. package/README.md +18 -3
  2. package/dist/ExportDialog-VYATD5UC.js +9 -0
  3. package/dist/{ExportToolbarControls-D2YDWOXW.js → ExportToolbarControls-5HUE3LSX.js} +206 -42
  4. package/dist/{GitToolbarControl-LMIR4R7I.js → GitToolbarControl-FW3BZFXV.js} +62 -44
  5. package/dist/{GitUI-KGF5MSNV.js → GitUI-GMH3PAYL.js} +225 -141
  6. package/dist/{LazyEditorShell-EF2BWRXU.js → LazyEditorShell-RF54B5UD.js} +0 -1
  7. package/dist/ShareDialog-PAMOQQFB.js +212 -0
  8. package/dist/chunk-3CZ27FOA.js +359 -0
  9. package/dist/chunk-3QSZY74C.js +255 -0
  10. package/{src/Export/export-destination.ts → dist/chunk-BI7NVU6T.js} +16 -15
  11. package/dist/{chunk-VHDP4IPL.js → chunk-BPGEBGAN.js} +0 -1
  12. package/dist/{chunk-DD4VFJQI.js → chunk-EBWYGTN7.js} +2 -1
  13. package/dist/{chunk-ZI56BNB7.js → chunk-GHQ4X7KM.js} +27 -7
  14. package/dist/{chunk-5A4KEWKT.js → chunk-HFYPTTCH.js} +0 -1
  15. package/dist/chunk-LG6HAWCK.js +109 -0
  16. package/dist/chunk-TFMO7EVO.js +88 -0
  17. package/dist/{chunk-4XXSWN3T.js → chunk-YBEYTVU2.js} +0 -1
  18. package/dist/editor.d.ts +5 -4
  19. package/dist/editor.js +8 -70
  20. package/dist/export/index.d.ts +24 -8
  21. package/dist/export/index.js +10 -6
  22. package/dist/index.d.ts +355 -21
  23. package/dist/index.js +6419 -21
  24. package/dist/run-export-Z5BVFLIR.js +9 -0
  25. package/dist/settings/index.d.ts +9 -1
  26. package/dist/settings/index.js +6 -5
  27. package/package.json +18 -13
  28. package/src/styles/docblocks.css +985 -35
  29. package/dist/AppMenu/AppMenu.d.ts +0 -53
  30. package/dist/AppMenu/AppMenu.d.ts.map +0 -1
  31. package/dist/AppMenu/AppMenu.js +0 -67
  32. package/dist/AppMenu/AppMenu.js.map +0 -1
  33. package/dist/AppMenu/index.d.ts +0 -3
  34. package/dist/AppMenu/index.d.ts.map +0 -1
  35. package/dist/AppMenu/index.js +0 -2
  36. package/dist/AppMenu/index.js.map +0 -1
  37. package/dist/DocBlocksShell/DocBlocksShell.d.ts +0 -49
  38. package/dist/DocBlocksShell/DocBlocksShell.d.ts.map +0 -1
  39. package/dist/DocBlocksShell/DocBlocksShell.js +0 -2730
  40. package/dist/DocBlocksShell/DocBlocksShell.js.map +0 -1
  41. package/dist/DocBlocksShell/LazyEditorShell.d.ts +0 -3
  42. package/dist/DocBlocksShell/LazyEditorShell.d.ts.map +0 -1
  43. package/dist/DocBlocksShell/LazyEditorShell.js +0 -3
  44. package/dist/DocBlocksShell/LazyEditorShell.js.map +0 -1
  45. package/dist/DocBlocksShell/UpdateAvailableNotice.d.ts +0 -13
  46. package/dist/DocBlocksShell/UpdateAvailableNotice.d.ts.map +0 -1
  47. package/dist/DocBlocksShell/UpdateAvailableNotice.js +0 -16
  48. package/dist/DocBlocksShell/UpdateAvailableNotice.js.map +0 -1
  49. package/dist/DocBlocksShell/document-title.d.ts +0 -3
  50. package/dist/DocBlocksShell/document-title.d.ts.map +0 -1
  51. package/dist/DocBlocksShell/document-title.js +0 -17
  52. package/dist/DocBlocksShell/document-title.js.map +0 -1
  53. package/dist/DocBlocksShell/index.d.ts +0 -3
  54. package/dist/DocBlocksShell/index.d.ts.map +0 -1
  55. package/dist/DocBlocksShell/index.js +0 -2
  56. package/dist/DocBlocksShell/index.js.map +0 -1
  57. package/dist/DocBlocksShell/workspace-authority-barrier.d.ts +0 -14
  58. package/dist/DocBlocksShell/workspace-authority-barrier.d.ts.map +0 -1
  59. package/dist/DocBlocksShell/workspace-authority-barrier.js +0 -23
  60. package/dist/DocBlocksShell/workspace-authority-barrier.js.map +0 -1
  61. package/dist/Export/DeferredExportToolbarControls.d.ts +0 -5
  62. package/dist/Export/DeferredExportToolbarControls.d.ts.map +0 -1
  63. package/dist/Export/DeferredExportToolbarControls.js +0 -10
  64. package/dist/Export/DeferredExportToolbarControls.js.map +0 -1
  65. package/dist/Export/ExportDialog.d.ts +0 -25
  66. package/dist/Export/ExportDialog.d.ts.map +0 -1
  67. package/dist/Export/ExportDialog.js +0 -160
  68. package/dist/Export/ExportDialog.js.map +0 -1
  69. package/dist/Export/ExportToolbarControls.d.ts +0 -37
  70. package/dist/Export/ExportToolbarControls.d.ts.map +0 -1
  71. package/dist/Export/ExportToolbarControls.js +0 -285
  72. package/dist/Export/ExportToolbarControls.js.map +0 -1
  73. package/dist/Export/export-destination.d.ts +0 -3
  74. package/dist/Export/export-destination.d.ts.map +0 -1
  75. package/dist/Export/export-destination.js +0 -32
  76. package/dist/Export/export-destination.js.map +0 -1
  77. package/dist/Export/export-options.d.ts +0 -53
  78. package/dist/Export/export-options.d.ts.map +0 -1
  79. package/dist/Export/export-options.js +0 -49
  80. package/dist/Export/export-options.js.map +0 -1
  81. package/dist/Export/index.d.ts +0 -10
  82. package/dist/Export/index.d.ts.map +0 -1
  83. package/dist/Export/index.js +0 -6
  84. package/dist/Export/index.js.map +0 -1
  85. package/dist/Export/public-api.d.ts +0 -12
  86. package/dist/Export/public-api.d.ts.map +0 -1
  87. package/dist/Export/public-api.js +0 -9
  88. package/dist/Export/public-api.js.map +0 -1
  89. package/dist/Export/run-export.d.ts +0 -10
  90. package/dist/Export/run-export.d.ts.map +0 -1
  91. package/dist/Export/run-export.js +0 -313
  92. package/dist/Export/run-export.js.map +0 -1
  93. package/dist/Export/transform-summaries.d.ts +0 -7
  94. package/dist/Export/transform-summaries.d.ts.map +0 -1
  95. package/dist/Export/transform-summaries.js +0 -6
  96. package/dist/Export/transform-summaries.js.map +0 -1
  97. package/dist/ExportDialog-MEUISWZX.js +0 -9
  98. package/dist/ExportDialog-MEUISWZX.js.map +0 -1
  99. package/dist/ExportToolbarControls-D2YDWOXW.js.map +0 -1
  100. package/dist/FileExplorer/FileExplorer.d.ts +0 -43
  101. package/dist/FileExplorer/FileExplorer.d.ts.map +0 -1
  102. package/dist/FileExplorer/FileExplorer.js +0 -315
  103. package/dist/FileExplorer/FileExplorer.js.map +0 -1
  104. package/dist/FileExplorer/FileTreeNode.d.ts +0 -39
  105. package/dist/FileExplorer/FileTreeNode.d.ts.map +0 -1
  106. package/dist/FileExplorer/FileTreeNode.js +0 -131
  107. package/dist/FileExplorer/FileTreeNode.js.map +0 -1
  108. package/dist/FileExplorer/index.d.ts +0 -6
  109. package/dist/FileExplorer/index.d.ts.map +0 -1
  110. package/dist/FileExplorer/index.js +0 -4
  111. package/dist/FileExplorer/index.js.map +0 -1
  112. package/dist/FileExplorer/useFileTree.d.ts +0 -37
  113. package/dist/FileExplorer/useFileTree.d.ts.map +0 -1
  114. package/dist/FileExplorer/useFileTree.js +0 -284
  115. package/dist/FileExplorer/useFileTree.js.map +0 -1
  116. package/dist/Git/GitAuthGuidanceDialog.d.ts +0 -18
  117. package/dist/Git/GitAuthGuidanceDialog.d.ts.map +0 -1
  118. package/dist/Git/GitAuthGuidanceDialog.js +0 -27
  119. package/dist/Git/GitAuthGuidanceDialog.js.map +0 -1
  120. package/dist/Git/GitBranchesDialog.d.ts +0 -13
  121. package/dist/Git/GitBranchesDialog.d.ts.map +0 -1
  122. package/dist/Git/GitBranchesDialog.js +0 -59
  123. package/dist/Git/GitBranchesDialog.js.map +0 -1
  124. package/dist/Git/GitCloneDialog.d.ts +0 -14
  125. package/dist/Git/GitCloneDialog.d.ts.map +0 -1
  126. package/dist/Git/GitCloneDialog.js +0 -79
  127. package/dist/Git/GitCloneDialog.js.map +0 -1
  128. package/dist/Git/GitCommitDialog.d.ts +0 -12
  129. package/dist/Git/GitCommitDialog.d.ts.map +0 -1
  130. package/dist/Git/GitCommitDialog.js +0 -38
  131. package/dist/Git/GitCommitDialog.js.map +0 -1
  132. package/dist/Git/GitConflictsDialog.d.ts +0 -12
  133. package/dist/Git/GitConflictsDialog.d.ts.map +0 -1
  134. package/dist/Git/GitConflictsDialog.js +0 -17
  135. package/dist/Git/GitConflictsDialog.js.map +0 -1
  136. package/dist/Git/GitContext.d.ts +0 -89
  137. package/dist/Git/GitContext.d.ts.map +0 -1
  138. package/dist/Git/GitContext.js +0 -15
  139. package/dist/Git/GitContext.js.map +0 -1
  140. package/dist/Git/GitDiffDialog.d.ts +0 -20
  141. package/dist/Git/GitDiffDialog.d.ts.map +0 -1
  142. package/dist/Git/GitDiffDialog.js +0 -100
  143. package/dist/Git/GitDiffDialog.js.map +0 -1
  144. package/dist/Git/GitDiffView.d.ts +0 -23
  145. package/dist/Git/GitDiffView.d.ts.map +0 -1
  146. package/dist/Git/GitDiffView.js +0 -77
  147. package/dist/Git/GitDiffView.js.map +0 -1
  148. package/dist/Git/GitHistoryDialog.d.ts +0 -15
  149. package/dist/Git/GitHistoryDialog.d.ts.map +0 -1
  150. package/dist/Git/GitHistoryDialog.js +0 -107
  151. package/dist/Git/GitHistoryDialog.js.map +0 -1
  152. package/dist/Git/GitStatusBar.d.ts +0 -8
  153. package/dist/Git/GitStatusBar.d.ts.map +0 -1
  154. package/dist/Git/GitStatusBar.js +0 -49
  155. package/dist/Git/GitStatusBar.js.map +0 -1
  156. package/dist/Git/GitToolbarControl.d.ts +0 -15
  157. package/dist/Git/GitToolbarControl.d.ts.map +0 -1
  158. package/dist/Git/GitToolbarControl.js +0 -51
  159. package/dist/Git/GitToolbarControl.js.map +0 -1
  160. package/dist/Git/GitUI.d.ts +0 -14
  161. package/dist/Git/GitUI.d.ts.map +0 -1
  162. package/dist/Git/GitUI.js +0 -21
  163. package/dist/Git/GitUI.js.map +0 -1
  164. package/dist/Git/commit-selection.d.ts +0 -22
  165. package/dist/Git/commit-selection.d.ts.map +0 -1
  166. package/dist/Git/commit-selection.js +0 -47
  167. package/dist/Git/commit-selection.js.map +0 -1
  168. package/dist/Git/git-clone-utils.d.ts +0 -8
  169. package/dist/Git/git-clone-utils.d.ts.map +0 -1
  170. package/dist/Git/git-clone-utils.js +0 -26
  171. package/dist/Git/git-clone-utils.js.map +0 -1
  172. package/dist/Git/git-status.d.ts +0 -24
  173. package/dist/Git/git-status.d.ts.map +0 -1
  174. package/dist/Git/git-status.js +0 -105
  175. package/dist/Git/git-status.js.map +0 -1
  176. package/dist/Git/useGit.d.ts +0 -15
  177. package/dist/Git/useGit.d.ts.map +0 -1
  178. package/dist/Git/useGit.js +0 -206
  179. package/dist/Git/useGit.js.map +0 -1
  180. package/dist/Git/useGitStatus.d.ts +0 -17
  181. package/dist/Git/useGitStatus.d.ts.map +0 -1
  182. package/dist/Git/useGitStatus.js +0 -63
  183. package/dist/Git/useGitStatus.js.map +0 -1
  184. package/dist/GitToolbarControl-LMIR4R7I.js.map +0 -1
  185. package/dist/GitUI-KGF5MSNV.js.map +0 -1
  186. package/dist/LazyEditorShell-EF2BWRXU.js.map +0 -1
  187. package/dist/Settings/Settings.d.ts +0 -23
  188. package/dist/Settings/Settings.d.ts.map +0 -1
  189. package/dist/Settings/Settings.js +0 -22
  190. package/dist/Settings/Settings.js.map +0 -1
  191. package/dist/Settings/public-api.d.ts +0 -3
  192. package/dist/Settings/public-api.d.ts.map +0 -1
  193. package/dist/Settings/public-api.js +0 -2
  194. package/dist/Settings/public-api.js.map +0 -1
  195. package/dist/WorkspacePicker/WorkspacePicker.d.ts +0 -22
  196. package/dist/WorkspacePicker/WorkspacePicker.d.ts.map +0 -1
  197. package/dist/WorkspacePicker/WorkspacePicker.js +0 -74
  198. package/dist/WorkspacePicker/WorkspacePicker.js.map +0 -1
  199. package/dist/WorkspacePicker/WorkspaceSettingsButton.d.ts +0 -11
  200. package/dist/WorkspacePicker/WorkspaceSettingsButton.d.ts.map +0 -1
  201. package/dist/WorkspacePicker/WorkspaceSettingsButton.js +0 -27
  202. package/dist/WorkspacePicker/WorkspaceSettingsButton.js.map +0 -1
  203. package/dist/WorkspacePicker/WorkspaceSettingsDialog.d.ts +0 -20
  204. package/dist/WorkspacePicker/WorkspaceSettingsDialog.d.ts.map +0 -1
  205. package/dist/WorkspacePicker/WorkspaceSettingsDialog.js +0 -36
  206. package/dist/WorkspacePicker/WorkspaceSettingsDialog.js.map +0 -1
  207. package/dist/WorkspacePicker/index.d.ts +0 -3
  208. package/dist/WorkspacePicker/index.d.ts.map +0 -1
  209. package/dist/WorkspacePicker/index.js +0 -2
  210. package/dist/WorkspacePicker/index.js.map +0 -1
  211. package/dist/chunk-3SAXDU2U.js +0 -157
  212. package/dist/chunk-3SAXDU2U.js.map +0 -1
  213. package/dist/chunk-4XXSWN3T.js.map +0 -1
  214. package/dist/chunk-5A4KEWKT.js.map +0 -1
  215. package/dist/chunk-AOVTHZU7.js +0 -321
  216. package/dist/chunk-AOVTHZU7.js.map +0 -1
  217. package/dist/chunk-DD4VFJQI.js.map +0 -1
  218. package/dist/chunk-GSNZSCIK.js +0 -55
  219. package/dist/chunk-GSNZSCIK.js.map +0 -1
  220. package/dist/chunk-VHDP4IPL.js.map +0 -1
  221. package/dist/chunk-ZI56BNB7.js.map +0 -1
  222. package/dist/components/Dialog.d.ts +0 -22
  223. package/dist/components/Dialog.d.ts.map +0 -1
  224. package/dist/components/Dialog.js +0 -33
  225. package/dist/components/Dialog.js.map +0 -1
  226. package/dist/editor.d.ts.map +0 -1
  227. package/dist/editor.js.map +0 -1
  228. package/dist/export/index.js.map +0 -1
  229. package/dist/hooks/index.d.ts +0 -3
  230. package/dist/hooks/index.d.ts.map +0 -1
  231. package/dist/hooks/index.js +0 -2
  232. package/dist/hooks/index.js.map +0 -1
  233. package/dist/hooks/useDocumentSession.d.ts +0 -16
  234. package/dist/hooks/useDocumentSession.d.ts.map +0 -1
  235. package/dist/hooks/useDocumentSession.js +0 -18
  236. package/dist/hooks/useDocumentSession.js.map +0 -1
  237. package/dist/icons.d.ts +0 -12
  238. package/dist/icons.d.ts.map +0 -1
  239. package/dist/icons.js +0 -28
  240. package/dist/icons.js.map +0 -1
  241. package/dist/index.d.ts.map +0 -1
  242. package/dist/index.js.map +0 -1
  243. package/dist/preferences/theme.d.ts +0 -18
  244. package/dist/preferences/theme.d.ts.map +0 -1
  245. package/dist/preferences/theme.js +0 -63
  246. package/dist/preferences/theme.js.map +0 -1
  247. package/dist/preferences/versioning.d.ts +0 -27
  248. package/dist/preferences/versioning.d.ts.map +0 -1
  249. package/dist/preferences/versioning.js +0 -62
  250. package/dist/preferences/versioning.js.map +0 -1
  251. package/dist/provider-lease.d.ts +0 -10
  252. package/dist/provider-lease.d.ts.map +0 -1
  253. package/dist/provider-lease.js +0 -42
  254. package/dist/provider-lease.js.map +0 -1
  255. package/dist/run-export-ICTZITXC.js +0 -10
  256. package/dist/run-export-ICTZITXC.js.map +0 -1
  257. package/dist/settings/index.js.map +0 -1
  258. package/src/AppMenu/AppMenu.tsx +0 -334
  259. package/src/AppMenu/index.ts +0 -2
  260. package/src/DocBlocksShell/DocBlocksShell.tsx +0 -3398
  261. package/src/DocBlocksShell/LazyEditorShell.ts +0 -2
  262. package/src/DocBlocksShell/UpdateAvailableNotice.tsx +0 -60
  263. package/src/DocBlocksShell/document-title.ts +0 -19
  264. package/src/DocBlocksShell/index.ts +0 -2
  265. package/src/DocBlocksShell/workspace-authority-barrier.ts +0 -26
  266. package/src/Export/DeferredExportToolbarControls.tsx +0 -23
  267. package/src/Export/ExportDialog.tsx +0 -437
  268. package/src/Export/ExportToolbarControls.tsx +0 -511
  269. package/src/Export/export-options.ts +0 -99
  270. package/src/Export/index.ts +0 -19
  271. package/src/Export/public-api.ts +0 -17
  272. package/src/Export/run-export.ts +0 -374
  273. package/src/Export/transform-summaries.ts +0 -14
  274. package/src/FileExplorer/FileExplorer.tsx +0 -528
  275. package/src/FileExplorer/FileTreeNode.tsx +0 -306
  276. package/src/FileExplorer/index.ts +0 -5
  277. package/src/FileExplorer/useFileTree.ts +0 -352
  278. package/src/Git/GitAuthGuidanceDialog.tsx +0 -84
  279. package/src/Git/GitBranchesDialog.tsx +0 -144
  280. package/src/Git/GitCloneDialog.tsx +0 -200
  281. package/src/Git/GitCommitDialog.tsx +0 -119
  282. package/src/Git/GitConflictsDialog.tsx +0 -62
  283. package/src/Git/GitContext.tsx +0 -88
  284. package/src/Git/GitDiffDialog.tsx +0 -147
  285. package/src/Git/GitDiffView.tsx +0 -105
  286. package/src/Git/GitHistoryDialog.tsx +0 -195
  287. package/src/Git/GitStatusBar.tsx +0 -157
  288. package/src/Git/GitToolbarControl.tsx +0 -123
  289. package/src/Git/GitUI.tsx +0 -68
  290. package/src/Git/commit-selection.ts +0 -63
  291. package/src/Git/git-clone-utils.ts +0 -23
  292. package/src/Git/git-status.ts +0 -113
  293. package/src/Git/useGit.ts +0 -279
  294. package/src/Git/useGitStatus.ts +0 -78
  295. package/src/Settings/Settings.tsx +0 -118
  296. package/src/Settings/public-api.ts +0 -8
  297. package/src/WorkspacePicker/WorkspacePicker.tsx +0 -191
  298. package/src/WorkspacePicker/WorkspaceSettingsButton.tsx +0 -88
  299. package/src/WorkspacePicker/WorkspaceSettingsDialog.tsx +0 -121
  300. package/src/WorkspacePicker/index.ts +0 -2
  301. package/src/components/Dialog.tsx +0 -81
  302. package/src/editor.ts +0 -72
  303. package/src/hooks/index.ts +0 -2
  304. package/src/hooks/useDocumentSession.ts +0 -37
  305. package/src/icons.tsx +0 -48
  306. package/src/index.ts +0 -61
  307. package/src/preferences/theme.ts +0 -67
  308. package/src/preferences/versioning.ts +0 -69
  309. package/src/provider-lease.ts +0 -52
  310. package/src/types/pwa-dom.d.ts +0 -31
@@ -1,12 +0,0 @@
1
- /**
2
- * GitConflictsDialog — lists conflicted files after a pull hits a merge
3
- * conflict. Each row opens the file in the editor so the user can resolve
4
- * the markers; the primary action hands off to the commit dialog, which
5
- * concludes the merge.
6
- */
7
- export declare function GitConflictsDialog({ paths, onOpenFile, onClose, }: {
8
- paths: string[];
9
- onOpenFile: (path: string) => void;
10
- onClose: () => void;
11
- }): import("react/jsx-runtime").JSX.Element;
12
- //# sourceMappingURL=GitConflictsDialog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitConflictsDialog.d.ts","sourceRoot":"","sources":["../../src/Git/GitConflictsDialog.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,UAAU,EACV,OAAO,GACR,EAAE;IACD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,2CA2CA"}
@@ -1,17 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * GitConflictsDialog — lists conflicted files after a pull hits a merge
4
- * conflict. Each row opens the file in the editor so the user can resolve
5
- * the markers; the primary action hands off to the commit dialog, which
6
- * concludes the merge.
7
- */
8
- import { Dialog } from '../components/Dialog.js';
9
- import { useGitContext } from './GitContext.js';
10
- export function GitConflictsDialog({ paths, onOpenFile, onClose, }) {
11
- const git = useGitContext();
12
- return (_jsxs(Dialog, { title: "Merge conflicts", onClose: onClose, footer: _jsxs(_Fragment, { children: [_jsx("button", { type: "button", className: "db-git-secondary-btn", onClick: onClose, children: "Close" }), _jsx("button", { type: "button", className: "db-git-primary-btn", onClick: () => git?.openDialog({ kind: 'commit' }), children: "Open commit dialog" })] }), children: [_jsx("p", { className: "db-settings-hint", children: "These files contain conflict markers. Edit each one to resolve the conflicts, then commit to complete the merge." }), _jsx("ul", { className: "db-git-file-list", children: paths.map((path) => (_jsx("li", { className: "db-git-file-row", children: _jsx("button", { type: "button", onClick: () => {
13
- onOpenFile(path);
14
- onClose();
15
- }, children: path.replace(/^\/+/, '') }) }, path))) })] }));
16
- }
17
- //# sourceMappingURL=GitConflictsDialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitConflictsDialog.js","sourceRoot":"","sources":["../../src/Git/GitConflictsDialog.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,UAAU,kBAAkB,CAAC,EACjC,KAAK,EACL,UAAU,EACV,OAAO,GAKR;IACC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAE5B,OAAO,CACL,MAAC,MAAM,IACL,KAAK,EAAC,iBAAiB,EACvB,OAAO,EAAE,OAAO,EAChB,MAAM,EACJ,8BACE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,sBAAsB,EAAC,OAAO,EAAE,OAAO,sBAE9D,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,oBAAoB,EAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,mCAG3C,IACR,aAGL,YAAG,SAAS,EAAC,kBAAkB,iIAG3B,EACJ,aAAI,SAAS,EAAC,kBAAkB,YAC7B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,aAAe,SAAS,EAAC,iBAAiB,YACxC,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE;4BACZ,UAAU,CAAC,IAAI,CAAC,CAAC;4BACjB,OAAO,EAAE,CAAC;wBACZ,CAAC,YAEA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAClB,IATF,IAAI,CAUR,CACN,CAAC,GACC,IACE,CACV,CAAC;AACJ,CAAC"}
@@ -1,89 +0,0 @@
1
- /**
2
- * GitContext — the seam between DocBlocksShell and every git UI surface.
3
- *
4
- * The shell calls useGit() once and provides the value here; the status
5
- * bar, file-tree badges, toolbar control, and dialogs all consume it.
6
- * Consumers must tolerate a null context (FileExplorer renders standalone
7
- * in tests and on surfaces with no git).
8
- */
9
- import type { DocBlocksHostGitAPI, GitCapabilities, GitRepoDetection, GitStatus } from '@bendyline/docblocks/host';
10
- import type { FileSystemProvider } from '@bendyline/docblocks/filesystem';
11
- import type { GitBadgeKind } from './git-status.js';
12
- export type GitDialogState = {
13
- kind: 'none';
14
- } | {
15
- kind: 'commit';
16
- } | {
17
- kind: 'branches';
18
- createFocus?: boolean;
19
- } | {
20
- kind: 'history';
21
- path?: string;
22
- }
23
- /** `revision` absent → working tree vs HEAD; present → that commit vs its parent. */
24
- | {
25
- kind: 'diff';
26
- path: string;
27
- revision?: {
28
- sha: string;
29
- };
30
- } | {
31
- kind: 'clone';
32
- } | {
33
- kind: 'auth-guidance';
34
- operation: 'push' | 'pull' | 'fetch' | 'clone' | 'pr';
35
- detail?: string;
36
- } | {
37
- kind: 'conflicts';
38
- paths: string[];
39
- };
40
- export type GitBusyKind = 'push' | 'pull' | 'fetch' | 'commit' | 'branch' | 'pr' | null;
41
- export interface GitInlineResult {
42
- tone: 'info' | 'error';
43
- message: string;
44
- }
45
- export interface GitValue {
46
- /** Tier 1 — Electron host with a working git. Gates the clone entry. */
47
- available: boolean;
48
- capabilities: GitCapabilities | null;
49
- /** Tier 2 — the active workspace root is a repository. Gates everything else. */
50
- repo: GitRepoDetection | null;
51
- /** Main-owned repository capability; never a native path. */
52
- repositoryId: string | null;
53
- /** Parsed web location of the first remote, when one exists and parses. */
54
- remoteWeb: {
55
- host: string;
56
- owner: string;
57
- repo: string;
58
- webUrl: string;
59
- } | null;
60
- /** Raw host API for read-heavy dialogs (log, branches, file-at-revision). */
61
- gitApi: DocBlocksHostGitAPI | null;
62
- provider: FileSystemProvider | null;
63
- theme: 'light' | 'dark';
64
- status: GitStatus | null;
65
- badges: ReadonlyMap<string, GitBadgeKind>;
66
- busy: GitBusyKind;
67
- /** Latest operation outcome, surfaced in an aria-live region. */
68
- lastResult: GitInlineResult | null;
69
- refresh: () => void;
70
- /** Debounced refresh — used after autosave writes. */
71
- scheduleRefresh: () => void;
72
- /** Actions route their typed errors to dialogs/lastResult internally. */
73
- commit: (message: string, paths: string[]) => Promise<boolean>;
74
- push: () => Promise<void>;
75
- pull: () => Promise<void>;
76
- fetchRemote: () => Promise<void>;
77
- createBranch: (name: string) => Promise<boolean>;
78
- switchBranch: (name: string) => Promise<boolean>;
79
- /** Open the repo (or a file within it) on the remote's web host. */
80
- openOnRemote: (filePath?: string) => void;
81
- createPullRequest: () => Promise<void>;
82
- dialog: GitDialogState;
83
- openDialog: (dialog: GitDialogState) => void;
84
- closeDialog: () => void;
85
- }
86
- export declare const GitContext: import("react").Context<GitValue | null>;
87
- /** Null when no provider is mounted — callers must degrade gracefully. */
88
- export declare function useGitContext(): GitValue | null;
89
- //# sourceMappingURL=GitContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitContext.d.ts","sourceRoot":"","sources":["../../src/Git/GitContext.tsx"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * GitContext — the seam between DocBlocksShell and every git UI surface.
3
- *
4
- * The shell calls useGit() once and provides the value here; the status
5
- * bar, file-tree badges, toolbar control, and dialogs all consume it.
6
- * Consumers must tolerate a null context (FileExplorer renders standalone
7
- * in tests and on surfaces with no git).
8
- */
9
- import { createContext, useContext } from 'react';
10
- export const GitContext = createContext(null);
11
- /** Null when no provider is mounted — callers must degrade gracefully. */
12
- export function useGitContext() {
13
- return useContext(GitContext);
14
- }
15
- //# sourceMappingURL=GitContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitContext.js","sourceRoot":"","sources":["../../src/Git/GitContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAyElD,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAkB,IAAI,CAAC,CAAC;AAE/D,0EAA0E;AAC1E,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC"}
@@ -1,20 +0,0 @@
1
- /**
2
- * GitDiffDialog — full-size modal showing a file diff.
3
- *
4
- * Without a revision: working tree vs HEAD (HEAD side via the git host API,
5
- * working side via the workspace FileSystemProvider). With a revision: that
6
- * commit vs its parent, both sides via readFileAtRevision. Absent sides
7
- * render as empty text with an "(absent)" label; binary files short-circuit
8
- * to a hint since there is no text diff to show.
9
- */
10
- export interface GitDiffDialogProps {
11
- /** Slash-prefixed workspace-relative path. */
12
- path: string;
13
- /** Absent → working tree vs HEAD; present → that commit vs its parent. */
14
- revision?: {
15
- sha: string;
16
- };
17
- onClose: () => void;
18
- }
19
- export declare function GitDiffDialog({ path, revision, onClose }: GitDiffDialogProps): import("react/jsx-runtime").JSX.Element | null;
20
- //# sourceMappingURL=GitDiffDialog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitDiffDialog.d.ts","sourceRoot":"","sources":["../../src/Git/GitDiffDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,QAAQ,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAaD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,kBAAkB,kDA+G5E"}
@@ -1,100 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * GitDiffDialog — full-size modal showing a file diff.
4
- *
5
- * Without a revision: working tree vs HEAD (HEAD side via the git host API,
6
- * working side via the workspace FileSystemProvider). With a revision: that
7
- * commit vs its parent, both sides via readFileAtRevision. Absent sides
8
- * render as empty text with an "(absent)" label; binary files short-circuit
9
- * to a hint since there is no text diff to show.
10
- */
11
- import { useEffect, useState } from 'react';
12
- import { getFileSystemProviderV2, parseWorkspacePath } from '@bendyline/docblocks/filesystem';
13
- import { Dialog } from '../components/Dialog.js';
14
- import { useGitContext } from './GitContext.js';
15
- import { GitDiffView } from './GitDiffView.js';
16
- export function GitDiffDialog({ path, revision, onClose }) {
17
- const git = useGitContext();
18
- const gitApi = git?.gitApi ?? null;
19
- const provider = git?.provider ?? null;
20
- const repositoryId = git?.repositoryId ?? null;
21
- const sha = revision?.sha ?? null;
22
- const [state, setState] = useState({ phase: 'loading' });
23
- useEffect(() => {
24
- if (!gitApi || !repositoryId) {
25
- setState({ phase: 'error', message: 'Git is not available for this workspace.' });
26
- return;
27
- }
28
- let cancelled = false;
29
- setState({ phase: 'loading' });
30
- const load = async () => {
31
- if (sha) {
32
- const short = sha.slice(0, 7);
33
- const [parent, at] = await Promise.all([
34
- gitApi.readFileAtRevision(repositoryId, path, { kind: 'parent-of', sha }),
35
- gitApi.readFileAtRevision(repositoryId, path, { kind: 'commit', sha }),
36
- ]);
37
- if (!parent.ok)
38
- return { phase: 'error', message: parent.error.message };
39
- if (!at.ok)
40
- return { phase: 'error', message: at.error.message };
41
- if ((parent.value.content === null && parent.value.binary) ||
42
- (at.value.content === null && at.value.binary)) {
43
- return { phase: 'binary' };
44
- }
45
- return {
46
- phase: 'ready',
47
- original: parent.value.content ?? '',
48
- modified: at.value.content ?? '',
49
- labels: {
50
- original: parent.value.content === null ? `${short}^ (absent)` : `${short}^`,
51
- modified: at.value.content === null ? `${short} (absent)` : short,
52
- },
53
- };
54
- }
55
- if (!provider) {
56
- return { phase: 'error', message: 'Workspace files are not available.' };
57
- }
58
- const providerV2 = getFileSystemProviderV2(provider);
59
- const [head, working] = await Promise.all([
60
- gitApi.readFileAtRevision(repositoryId, path, { kind: 'head' }),
61
- providerV2
62
- ? providerV2
63
- .readFile(parseWorkspacePath(path))
64
- .then((file) => (file ? new TextDecoder().decode(file.data) : null))
65
- : provider.readFile(path),
66
- ]);
67
- if (!head.ok)
68
- return { phase: 'error', message: head.error.message };
69
- if (head.value.content === null && head.value.binary)
70
- return { phase: 'binary' };
71
- return {
72
- phase: 'ready',
73
- original: head.value.content ?? '',
74
- modified: working ?? '',
75
- labels: {
76
- original: head.value.content === null ? 'HEAD (absent)' : 'HEAD',
77
- modified: working === null ? 'Working tree (absent)' : 'Working tree',
78
- },
79
- };
80
- };
81
- load()
82
- .catch((err) => ({
83
- phase: 'error',
84
- message: err instanceof Error ? err.message : 'Failed to load the diff',
85
- }))
86
- .then((next) => {
87
- if (!cancelled)
88
- setState(next);
89
- });
90
- return () => {
91
- cancelled = true;
92
- };
93
- }, [gitApi, provider, repositoryId, path, sha]);
94
- if (!git)
95
- return null;
96
- const fullPath = path.replace(/^\/+/, '');
97
- const baseName = fullPath.split('/').pop() || fullPath;
98
- return (_jsxs(Dialog, { title: baseName, size: "full", onClose: onClose, children: [_jsx("p", { className: "db-settings-hint", children: fullPath }), state.phase === 'loading' && _jsx("p", { className: "db-git-hint", children: "Loading changes\u2026" }), state.phase === 'error' && (_jsx("p", { className: "db-git-form-error", role: "alert", children: state.message })), state.phase === 'binary' && (_jsx("p", { className: "db-git-hint", children: "Binary file \u2014 no text diff available." })), state.phase === 'ready' && (_jsx(GitDiffView, { original: state.original, modified: state.modified, fileName: baseName, theme: git.theme, labels: state.labels }))] }));
99
- }
100
- //# sourceMappingURL=GitDiffDialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitDiffDialog.js","sourceRoot":"","sources":["../../src/Git/GitDiffDialog.tsx"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * GitDiffView — read-only Monaco side-by-side diff.
3
- *
4
- * Monaco is never statically imported: squisq's useMonacoLoader() lazily
5
- * imports the editor bundle once per page and hands back the namespace.
6
- * The diff editor and both text models are created imperatively into a
7
- * host div and disposed on unmount (the classic Monaco leak). Content and
8
- * theme changes update the existing editor without recreating it.
9
- */
10
- export interface GitDiffViewProps {
11
- original: string;
12
- modified: string;
13
- /** Used for language detection (markdown for .md, plain text otherwise). */
14
- fileName: string;
15
- theme: 'light' | 'dark';
16
- /** Optional column headers rendered above the two panes. */
17
- labels?: {
18
- original: string;
19
- modified: string;
20
- };
21
- }
22
- export declare function GitDiffView({ original, modified, fileName, theme, labels }: GitDiffViewProps): import("react/jsx-runtime").JSX.Element;
23
- //# sourceMappingURL=GitDiffView.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitDiffView.d.ts","sourceRoot":"","sources":["../../src/Git/GitDiffView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,4DAA4D;IAC5D,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD;AAQD,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,gBAAgB,2CAmE5F"}
@@ -1,77 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- /**
3
- * GitDiffView — read-only Monaco side-by-side diff.
4
- *
5
- * Monaco is never statically imported: squisq's useMonacoLoader() lazily
6
- * imports the editor bundle once per page and hands back the namespace.
7
- * The diff editor and both text models are created imperatively into a
8
- * host div and disposed on unmount (the classic Monaco leak). Content and
9
- * theme changes update the existing editor without recreating it.
10
- */
11
- import { useEffect, useRef } from 'react';
12
- import { detectLanguageFromFileName, useMonacoLoader, } from '@bendyline/squisq-editor-react';
13
- function languageFor(fileName) {
14
- const detected = detectLanguageFromFileName(fileName);
15
- if (detected)
16
- return detected;
17
- return fileName.toLowerCase().endsWith('.md') ? 'markdown' : 'plaintext';
18
- }
19
- export function GitDiffView({ original, modified, fileName, theme, labels }) {
20
- const { monaco, ready } = useMonacoLoader();
21
- const hostRef = useRef(null);
22
- const editorRef = useRef(null);
23
- const modelsRef = useRef(null);
24
- const language = languageFor(fileName);
25
- // Create the editor once monaco settles; dispose editor AND models on unmount.
26
- useEffect(() => {
27
- const host = hostRef.current;
28
- if (!monaco || !host)
29
- return;
30
- const originalModel = monaco.editor.createModel('', 'plaintext');
31
- const modifiedModel = monaco.editor.createModel('', 'plaintext');
32
- const editor = monaco.editor.createDiffEditor(host, {
33
- readOnly: true,
34
- renderSideBySide: true,
35
- automaticLayout: true,
36
- minimap: { enabled: false },
37
- wordWrap: 'on',
38
- scrollBeyondLastLine: false,
39
- renderOverviewRuler: false,
40
- });
41
- editor.setModel({ original: originalModel, modified: modifiedModel });
42
- editorRef.current = editor;
43
- modelsRef.current = { original: originalModel, modified: modifiedModel };
44
- return () => {
45
- editorRef.current = null;
46
- modelsRef.current = null;
47
- editor.dispose();
48
- originalModel.dispose();
49
- modifiedModel.dispose();
50
- };
51
- }, [monaco]);
52
- // Sync content + language into the existing models — never recreate the editor.
53
- useEffect(() => {
54
- if (!monaco)
55
- return;
56
- const models = modelsRef.current;
57
- if (!models)
58
- return;
59
- if (models.original.getValue() !== original)
60
- models.original.setValue(original);
61
- if (models.modified.getValue() !== modified)
62
- models.modified.setValue(modified);
63
- monaco.editor.setModelLanguage(models.original, language);
64
- monaco.editor.setModelLanguage(models.modified, language);
65
- }, [monaco, original, modified, language]);
66
- // React to theme prop changes.
67
- useEffect(() => {
68
- if (!monaco)
69
- return;
70
- monaco.editor.setTheme(theme === 'dark' ? 'vs-dark' : 'vs');
71
- }, [monaco, theme]);
72
- if (!ready) {
73
- return _jsx("div", { className: "db-git-diff-loading", children: "Loading diff\u2026" });
74
- }
75
- return (_jsxs(_Fragment, { children: [labels && (_jsxs("div", { className: "db-git-diff-labels", children: [_jsx("span", { children: labels.original }), _jsx("span", { children: labels.modified })] })), _jsx("div", { ref: hostRef, className: "db-git-diff-host" })] }));
76
- }
77
- //# sourceMappingURL=GitDiffView.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitDiffView.js","sourceRoot":"","sources":["../../src/Git/GitDiffView.tsx"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * GitHistoryDialog — paged commit log for the repository or a single file.
3
- *
4
- * Pages `git log` 50 commits at a time; a row expands (one at a time) to
5
- * show the full message body and the files changed in that commit — each
6
- * file opens the commit-vs-parent diff dialog (which replaces this one;
7
- * acceptable for v1).
8
- */
9
- export interface GitHistoryDialogProps {
10
- /** Slash-prefixed workspace-relative path; absent → whole-repo history. */
11
- path?: string;
12
- onClose: () => void;
13
- }
14
- export declare function GitHistoryDialog({ path, onClose }: GitHistoryDialogProps): import("react/jsx-runtime").JSX.Element | null;
15
- //# sourceMappingURL=GitHistoryDialog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitHistoryDialog.d.ts","sourceRoot":"","sources":["../../src/Git/GitHistoryDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,MAAM,WAAW,qBAAqB;IACpC,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAsBD,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,qBAAqB,kDAyJxE"}
@@ -1,107 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- /**
3
- * GitHistoryDialog — paged commit log for the repository or a single file.
4
- *
5
- * Pages `git log` 50 commits at a time; a row expands (one at a time) to
6
- * show the full message body and the files changed in that commit — each
7
- * file opens the commit-vs-parent diff dialog (which replaces this one;
8
- * acceptable for v1).
9
- */
10
- import { useCallback, useEffect, useState } from 'react';
11
- import { Dialog } from '../components/Dialog.js';
12
- import { useGitContext } from './GitContext.js';
13
- import { BADGE_GLYPHS, BADGE_LABELS, badgeKindFor } from './git-status.js';
14
- const PAGE_SIZE = 50;
15
- /** Message body beyond the subject line, or '' when it adds nothing. */
16
- function extraBody(body, subject) {
17
- const trimmedBody = body.trim();
18
- const trimmedSubject = subject.trim();
19
- if (!trimmedBody || trimmedBody === trimmedSubject)
20
- return '';
21
- if (trimmedBody.startsWith(trimmedSubject)) {
22
- return trimmedBody.slice(trimmedSubject.length).trim();
23
- }
24
- return trimmedBody;
25
- }
26
- function formatDate(iso) {
27
- const date = new Date(iso);
28
- return `${date.toLocaleDateString()} ${date.toLocaleTimeString()}`;
29
- }
30
- export function GitHistoryDialog({ path, onClose }) {
31
- const git = useGitContext();
32
- const gitApi = git?.gitApi ?? null;
33
- const repositoryId = git?.repositoryId ?? null;
34
- const [entries, setEntries] = useState([]);
35
- const [loading, setLoading] = useState(false);
36
- const [error, setError] = useState(null);
37
- const [hasMore, setHasMore] = useState(false);
38
- const [expandedSha, setExpandedSha] = useState(null);
39
- const [details, setDetails] = useState(new Map());
40
- const loadPage = useCallback(async (skip) => {
41
- if (!gitApi || !repositoryId)
42
- return;
43
- setLoading(true);
44
- setError(null);
45
- try {
46
- const result = await gitApi.log(repositoryId, { path, maxCount: PAGE_SIZE, skip });
47
- if (!result.ok) {
48
- setError(result.error.message);
49
- return;
50
- }
51
- setEntries((prev) => (skip === 0 ? result.value : [...prev, ...result.value]));
52
- setHasMore(result.value.length === PAGE_SIZE);
53
- }
54
- finally {
55
- setLoading(false);
56
- }
57
- }, [gitApi, repositoryId, path]);
58
- useEffect(() => {
59
- setEntries([]);
60
- setExpandedSha(null);
61
- setDetails(new Map());
62
- setHasMore(false);
63
- void loadPage(0);
64
- }, [loadPage]);
65
- const handleRowClick = (sha) => {
66
- if (expandedSha === sha) {
67
- setExpandedSha(null);
68
- return;
69
- }
70
- setExpandedSha(sha);
71
- if (!gitApi || !repositoryId || details.has(sha))
72
- return;
73
- void gitApi.commitFiles(repositoryId, sha).then((result) => {
74
- setDetails((prev) => {
75
- const next = new Map(prev);
76
- next.set(sha, result.ok ? result.value : { error: result.error.message });
77
- return next;
78
- });
79
- });
80
- };
81
- if (!git)
82
- return null;
83
- const baseName = path ? path.replace(/^\/+/, '').split('/').pop() : null;
84
- const title = baseName ? `History — ${baseName}` : 'Commit history';
85
- return (_jsxs(Dialog, { title: title, size: "wide", onClose: onClose, children: [error && (_jsx("p", { className: "db-git-form-error", role: "alert", children: error })), !error && entries.length === 0 && loading && _jsx("p", { className: "db-git-hint", children: "Loading history\u2026" }), !error && entries.length === 0 && !loading && _jsx("p", { className: "db-git-hint", children: "No commits yet." }), entries.length > 0 && (_jsx("ul", { className: "db-git-history-list", children: entries.map((entry) => {
86
- const expanded = expandedSha === entry.sha;
87
- const detail = details.get(entry.sha);
88
- const meta = [
89
- entry.authorName,
90
- entry.sha.slice(0, 7),
91
- formatDate(entry.authorDate),
92
- entry.refs.join(', '),
93
- ]
94
- .filter(Boolean)
95
- .join(' · ');
96
- const body = detail && !('error' in detail) ? extraBody(detail.body, entry.subject) : '';
97
- return (_jsxs("li", { className: "db-git-history-item", children: [_jsxs("button", { type: "button", className: "db-git-history-toggle", "aria-expanded": expanded, onClick: () => handleRowClick(entry.sha), children: [_jsx("span", { className: "db-git-history-subject", children: entry.subject }), _jsx("span", { className: "db-git-history-meta", children: meta })] }), expanded && !detail && _jsx("p", { className: "db-git-hint", children: "Loading\u2026" }), expanded && detail && 'error' in detail && (_jsx("p", { className: "db-git-form-error", role: "alert", children: detail.error })), expanded && detail && !('error' in detail) && (_jsxs(_Fragment, { children: [body && _jsx("pre", { className: "db-git-history-body", children: body }), _jsx("ul", { className: "db-git-history-files", children: detail.files.map((file) => {
98
- const kind = badgeKindFor(file);
99
- return (_jsx("li", { children: _jsxs("button", { type: "button", className: "db-git-history-file", onClick: () => git.openDialog({
100
- kind: 'diff',
101
- path: file.path,
102
- revision: { sha: entry.sha },
103
- }), children: [_jsx("span", { className: "db-git-file-kind", "aria-label": BADGE_LABELS[kind], title: BADGE_LABELS[kind], children: BADGE_GLYPHS[kind] }), file.path.replace(/^\/+/, '')] }) }, file.path));
104
- }) })] }))] }, entry.sha));
105
- }) })), hasMore && (_jsx("button", { type: "button", className: "db-git-secondary-btn", disabled: loading, onClick: () => void loadPage(entries.length), children: "Show older commits" }))] }));
106
- }
107
- //# sourceMappingURL=GitHistoryDialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitHistoryDialog.js","sourceRoot":"","sources":["../../src/Git/GitHistoryDialog.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * GitStatusBar — slim sidebar row showing branch, ahead/behind, and dirty
3
- * count, with the repo actions menu (commit, sync, branches, history,
4
- * remote conveniences). Renders nothing unless the active workspace is a
5
- * git repository.
6
- */
7
- export declare function GitStatusBar(): import("react/jsx-runtime").JSX.Element | null;
8
- //# sourceMappingURL=GitStatusBar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitStatusBar.d.ts","sourceRoot":"","sources":["../../src/Git/GitStatusBar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,wBAAgB,YAAY,mDAiJ3B"}
@@ -1,49 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * GitStatusBar — slim sidebar row showing branch, ahead/behind, and dirty
4
- * count, with the repo actions menu (commit, sync, branches, history,
5
- * remote conveniences). Renders nothing unless the active workspace is a
6
- * git repository.
7
- */
8
- import { useCallback, useEffect, useRef, useState } from 'react';
9
- import { useGitContext } from './GitContext.js';
10
- import { formatAheadBehind, summarizeDirty } from './git-status.js';
11
- export function GitStatusBar() {
12
- const git = useGitContext();
13
- const [menuOpen, setMenuOpen] = useState(false);
14
- const rootRef = useRef(null);
15
- useEffect(() => {
16
- if (!menuOpen)
17
- return;
18
- const onPointerDown = (e) => {
19
- if (rootRef.current && !rootRef.current.contains(e.target)) {
20
- setMenuOpen(false);
21
- }
22
- };
23
- document.addEventListener('pointerdown', onPointerDown);
24
- return () => document.removeEventListener('pointerdown', onPointerDown);
25
- }, [menuOpen]);
26
- const runItem = useCallback((action) => {
27
- setMenuOpen(false);
28
- action();
29
- }, []);
30
- if (!git || !git.repo || !git.status)
31
- return null;
32
- const { status } = git;
33
- const branchLabel = status.detached ? 'detached HEAD' : (status.branch ?? 'no branch');
34
- const aheadBehind = formatAheadBehind(status);
35
- const dirty = summarizeDirty(status);
36
- const merging = status.operation === 'merge';
37
- const chipLabelParts = [`Git: branch ${branchLabel}`];
38
- if (status.ahead > 0)
39
- chipLabelParts.push(`${status.ahead} ahead`);
40
- if (status.behind > 0)
41
- chipLabelParts.push(`${status.behind} behind`);
42
- if (dirty)
43
- chipLabelParts.push(dirty);
44
- if (merging)
45
- chipLabelParts.push('merge in progress');
46
- const canCreatePr = git.capabilities?.ghAvailable === true && git.remoteWeb?.host === 'github.com';
47
- return (_jsxs("div", { ref: rootRef, className: "db-git-statusbar", children: [_jsxs("button", { type: "button", className: "db-git-statusbar-chip", onClick: () => setMenuOpen((open) => !open), "aria-haspopup": "menu", "aria-expanded": menuOpen, "aria-label": chipLabelParts.join(', '), title: chipLabelParts.join(', '), children: [_jsx("span", { className: "db-git-branch-glyph", "aria-hidden": "true", children: '⎇' }), _jsx("span", { className: "db-git-statusbar-branch", children: branchLabel }), aheadBehind && _jsx("span", { className: "db-git-statusbar-counts", children: aheadBehind }), dirty && _jsx("span", { className: "db-git-statusbar-dirty", children: dirty }), merging && _jsx("span", { className: "db-git-statusbar-merge", children: "merging" }), git.busy && (_jsx("span", { className: "db-git-statusbar-busy", "aria-hidden": "true", children: '…' }))] }), menuOpen && (_jsxs("div", { className: "db-git-menu", role: "menu", "aria-label": "Git actions", children: [_jsx("button", { type: "button", role: "menuitem", className: "db-git-menu-item", disabled: status.changes.length === 0 && !merging, onClick: () => runItem(() => git.openDialog({ kind: 'commit' })), children: merging ? 'Commit merge…' : 'Commit…' }), _jsx("button", { type: "button", role: "menuitem", className: "db-git-menu-item", disabled: git.busy !== null, onClick: () => runItem(() => void git.push()), children: status.upstream === null && !status.unborn ? 'Publish branch' : 'Push' }), _jsx("button", { type: "button", role: "menuitem", className: "db-git-menu-item", disabled: git.busy !== null, onClick: () => runItem(() => void git.pull()), children: "Pull" }), _jsx("button", { type: "button", role: "menuitem", className: "db-git-menu-item", disabled: git.busy !== null, onClick: () => runItem(() => void git.fetchRemote()), children: "Fetch" }), _jsx("div", { className: "db-git-menu-divider", role: "separator" }), _jsx("button", { type: "button", role: "menuitem", className: "db-git-menu-item", onClick: () => runItem(() => git.openDialog({ kind: 'branches' })), children: "Branches\u2026" }), _jsx("button", { type: "button", role: "menuitem", className: "db-git-menu-item", onClick: () => runItem(() => git.openDialog({ kind: 'history' })), children: "Commit history\u2026" }), (git.remoteWeb || canCreatePr) && (_jsx("div", { className: "db-git-menu-divider", role: "separator" })), git.remoteWeb && (_jsxs("button", { type: "button", role: "menuitem", className: "db-git-menu-item", onClick: () => runItem(() => git.openOnRemote()), children: ["Open on ", git.remoteWeb.host] })), canCreatePr && (_jsx("button", { type: "button", role: "menuitem", className: "db-git-menu-item", disabled: git.busy !== null, onClick: () => runItem(() => void git.createPullRequest()), children: "Create pull request" }))] }))] }));
48
- }
49
- //# sourceMappingURL=GitStatusBar.js.map