@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
package/README.md CHANGED
@@ -38,11 +38,19 @@ export default defineConfig({ worker: { format: 'es' } });
38
38
  The canonical DocBlocks experience in one component — file explorer, workspace picker, app menu, the Squisq editor with its Editor / Markdown / Play views, and the export pipeline.
39
39
 
40
40
  ```tsx
41
- <DocBlocksShell theme="auto" logoUrl="/logo.png" />
41
+ <DocBlocksShell
42
+ theme="auto"
43
+ logoUrl="/logo.png"
44
+ ffmpegWasm={{
45
+ coreURL: '/ffmpeg-core/ffmpeg-core.js',
46
+ wasmURL: '/ffmpeg-core/ffmpeg-core.wasm',
47
+ }}
48
+ />
42
49
  ```
43
50
 
44
51
  - `theme` — `'light' | 'dark' | 'auto'` (auto follows `prefers-color-scheme`)
45
52
  - `logoUrl` — brand mark for the app menu button
53
+ - `ffmpegWasm` — optional same-origin ffmpeg core URLs; supplying them enables the built-in Animated GIF flow on cross-origin-isolated hosts
46
54
 
47
55
  Storage is abstracted behind the byte-authoritative `FileSystemProviderV2` contract from `@bendyline/docblocks/filesystem`: browser-local (IndexedDB), native folders (File System Access API), transient memory workspaces, or the Electron host. Built-in compatibility facades expose it as `provider.v2`; first-party shell and file-tree operations are v2-first.
48
56
 
@@ -74,7 +82,13 @@ import {
74
82
  } from '@bendyline/docblocks-react/export';
75
83
  ```
76
84
 
77
- The export flow: quick re-export of the last configuration plus the full dialog — format (PDF, Word, PowerPoint, HTML, Markdown), visual theme, and page size.
85
+ The shell overflow also offers **Share link with content embedded**. It creates
86
+ a bounded `#shared(<base64>)` URL containing a compressed, Markdown-only copy
87
+ and an optional initial Use mode. Opening the URL creates a session-only
88
+ workspace; generated links warn after 4,096 characters and are capped at
89
+ 32,768 characters.
90
+
91
+ The export flow: quick re-export of the last configuration plus the full dialog — format (PDF, Word, PowerPoint, EPUB, HTML, Markdown), visual theme, and page size. Hosts that supply `ffmpegWasm` also expose Animated GIF with timing, orientation, captions, looping, and color controls.
78
92
 
79
93
  ## Hooks
80
94
 
@@ -94,7 +108,8 @@ File tree state management over any v2-capable provider — returns the tree, se
94
108
  import '@bendyline/docblocks-react/styles';
95
109
  ```
96
110
 
97
- One stylesheet (`docblocks.css`) covers all components in both themes. The package also bundles the self-hosted woff2 fonts used by document themes (see `NOTICE.md` at the repo root for licenses).
111
+ One explicit stylesheet import covers the Squisq editor and all DocBlocks components in both
112
+ themes. Theme fonts are supplied by the host application; this package does not bundle fonts.
98
113
 
99
114
  ## Where new UI belongs
100
115
 
@@ -0,0 +1,9 @@
1
+ import {
2
+ ExportDialog
3
+ } from "./chunk-3CZ27FOA.js";
4
+ import "./chunk-YBEYTVU2.js";
5
+ import "./chunk-LG6HAWCK.js";
6
+ import "./chunk-EBWYGTN7.js";
7
+ export {
8
+ ExportDialog
9
+ };
@@ -1,12 +1,15 @@
1
1
  import {
2
2
  loadTransformStyleSummaries
3
- } from "./chunk-4XXSWN3T.js";
3
+ } from "./chunk-YBEYTVU2.js";
4
+ import {
5
+ Dialog
6
+ } from "./chunk-LG6HAWCK.js";
4
7
  import {
5
8
  DEFAULT_OPTIONS,
6
9
  FORMAT_EXTENSIONS,
7
10
  loadLastExportOptions,
8
11
  saveExportOptions
9
- } from "./chunk-DD4VFJQI.js";
12
+ } from "./chunk-EBWYGTN7.js";
10
13
 
11
14
  // src/Export/ExportToolbarControls.tsx
12
15
  import {
@@ -18,18 +21,40 @@ import {
18
21
  useRef,
19
22
  useMemo
20
23
  } from "react";
21
- import { useEditorContext } from "@bendyline/squisq-editor-react";
24
+ import { useEditorContext, usePreviewSettings } from "@bendyline/squisq-editor-react";
22
25
  import { getThemeSummaries } from "@bendyline/squisq/schemas";
23
26
  import { parseMarkdown } from "@bendyline/squisq/markdown";
24
27
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
25
28
  var ExportDialog = lazy(
26
- () => import("./ExportDialog-MEUISWZX.js").then((module) => ({ default: module.ExportDialog }))
29
+ () => import("./ExportDialog-VYATD5UC.js").then((module) => ({ default: module.ExportDialog }))
30
+ );
31
+ var ShareDialog = lazy(
32
+ () => import("./ShareDialog-PAMOQQFB.js").then((module) => ({ default: module.ShareDialog }))
27
33
  );
28
34
  var runExportModulePromise = null;
29
35
  function loadRunExportModule() {
30
- runExportModulePromise ?? (runExportModulePromise = import("./run-export-ICTZITXC.js"));
36
+ runExportModulePromise ?? (runExportModulePromise = import("./run-export-Z5BVFLIR.js"));
31
37
  return runExportModulePromise;
32
38
  }
39
+ var SHARED_USE_MODES = Object.freeze({
40
+ slideshow: "slideshow",
41
+ video: "video",
42
+ page: "linear",
43
+ document: "page",
44
+ narrate: "narrate"
45
+ });
46
+ function SharedModeInitializer({ mode }) {
47
+ const appliedRef = useRef(false);
48
+ const { setActiveView } = useEditorContext();
49
+ const { setSelectedDisplayMode } = usePreviewSettings();
50
+ useEffect(() => {
51
+ if (appliedRef.current) return;
52
+ appliedRef.current = true;
53
+ setSelectedDisplayMode(SHARED_USE_MODES[mode]);
54
+ setActiveView("preview");
55
+ }, [mode, setActiveView, setSelectedDisplayMode]);
56
+ return null;
57
+ }
33
58
  var videoExportModulesPromise = null;
34
59
  function loadVideoExportModules() {
35
60
  videoExportModulesPromise ?? (videoExportModulesPromise = Promise.all([
@@ -43,6 +68,10 @@ function loadVideoExportModules() {
43
68
  })));
44
69
  return videoExportModulesPromise;
45
70
  }
71
+ function exportErrorMessage(caught) {
72
+ const detail = caught instanceof Error ? caught.message.trim() : "";
73
+ return detail ? `Export failed: ${detail}` : "Export failed. The document could not be exported.";
74
+ }
46
75
  function quickLabel(opts, transformSummaries) {
47
76
  const baseExt = FORMAT_EXTENSIONS[opts.format].toUpperCase().replace(".", "");
48
77
  const isRecursiveHtml = opts.format === "html" && opts.includeLinkedDocs;
@@ -73,18 +102,26 @@ function ExportToolbarControls({
73
102
  saveBlob,
74
103
  destinationAdapter,
75
104
  trigger = "menu",
76
- showVideoExport = true
105
+ showVideoExport = true,
106
+ ffmpegWasm,
107
+ colorScheme = "light",
108
+ videoExportPalette,
109
+ shareBaseUrl,
110
+ initialSharedMode = null
77
111
  }) {
78
112
  const { markdownSource, markdownDoc } = useEditorContext();
79
113
  const [menuOpen, setMenuOpen] = useState(false);
80
114
  const [dialogOpen, setDialogOpen] = useState(false);
115
+ const [shareDialogOpen, setShareDialogOpen] = useState(false);
81
116
  const [videoModalOpen, setVideoModalOpen] = useState(false);
117
+ const [videoOutputFormat, setVideoOutputFormat] = useState("mp4");
82
118
  const [videoLoading, setVideoLoading] = useState(false);
83
119
  const [videoLoadError, setVideoLoadError] = useState(null);
84
120
  const [videoModules, setVideoModules] = useState(null);
85
121
  const [videoDoc, setVideoDoc] = useState(null);
86
122
  const [transformSummaries, setTransformSummaries] = useState([]);
87
123
  const [exporting, setExporting] = useState(false);
124
+ const [exportError, setExportError] = useState(null);
88
125
  const [destinationTarget, setDestinationTarget] = useState(null);
89
126
  const destinationRequestRef = useRef(0);
90
127
  const menuRef = useRef(null);
@@ -147,27 +184,51 @@ function ExportToolbarControls({
147
184
  );
148
185
  const handleOpenDialog = useCallback(() => {
149
186
  setMenuOpen(false);
187
+ setExportError(null);
150
188
  setDialogOpen(true);
151
189
  void refreshDestination(dialogInitial);
152
190
  }, [dialogInitial, refreshDestination]);
153
191
  const handleCloseDialog = useCallback(() => {
154
192
  setDialogOpen(false);
193
+ setExportError(null);
155
194
  }, []);
156
- const handleOpenVideoModal = useCallback(async () => {
195
+ const handleOpenShareDialog = useCallback(() => {
157
196
  setMenuOpen(false);
158
- setVideoModalOpen(true);
159
- setVideoLoading(true);
160
- setVideoLoadError(null);
161
- try {
162
- const modules = videoModules ?? await loadVideoExportModules();
163
- setVideoModules(modules);
164
- setVideoDoc(modules.markdownToDoc(parseMarkdown(markdownSource)));
165
- } catch {
166
- setVideoLoadError("Video export could not be loaded.");
167
- } finally {
168
- setVideoLoading(false);
169
- }
170
- }, [markdownSource, videoModules]);
197
+ setShareDialogOpen(true);
198
+ }, []);
199
+ const handleCloseShareDialog = useCallback(() => {
200
+ setShareDialogOpen(false);
201
+ }, []);
202
+ const handleOpenVideoModal = useCallback(
203
+ async (outputFormat) => {
204
+ setMenuOpen(false);
205
+ setVideoOutputFormat(outputFormat);
206
+ setVideoModalOpen(true);
207
+ setVideoLoadError(null);
208
+ if (outputFormat === "gif" && typeof SharedArrayBuffer === "undefined") {
209
+ setVideoLoading(false);
210
+ setVideoLoadError(
211
+ "Animated GIF export needs cross-origin isolation. If this app just finished installing for offline use, reload it once and try again."
212
+ );
213
+ return;
214
+ }
215
+ setVideoLoading(true);
216
+ try {
217
+ const modules = videoModules ?? await loadVideoExportModules();
218
+ setVideoModules(modules);
219
+ setVideoDoc(modules.markdownToDoc(parseMarkdown(markdownSource)));
220
+ } catch {
221
+ setVideoLoadError("Video export could not be loaded.");
222
+ } finally {
223
+ setVideoLoading(false);
224
+ }
225
+ },
226
+ [markdownSource, videoModules]
227
+ );
228
+ const handleOpenAnimatedGifFromDialog = useCallback(() => {
229
+ setDialogOpen(false);
230
+ void handleOpenVideoModal("gif");
231
+ }, [handleOpenVideoModal]);
171
232
  const handleCloseVideoModal = useCallback(() => {
172
233
  setVideoModalOpen(false);
173
234
  setVideoDoc(null);
@@ -210,6 +271,7 @@ function ExportToolbarControls({
210
271
  const handleExport = useCallback(
211
272
  async (opts) => {
212
273
  setExporting(true);
274
+ setExportError(null);
213
275
  try {
214
276
  const { runExport } = await loadRunExportModule();
215
277
  await runExport(
@@ -219,9 +281,11 @@ function ExportToolbarControls({
219
281
  mediaContainer,
220
282
  destinationAdapter ? handleDestinationSaveBlob : saveBlob
221
283
  );
284
+ setDialogOpen(false);
285
+ } catch (caught) {
286
+ setExportError(exportErrorMessage(caught));
222
287
  } finally {
223
288
  setExporting(false);
224
- setDialogOpen(false);
225
289
  }
226
290
  },
227
291
  [
@@ -237,6 +301,7 @@ function ExportToolbarControls({
237
301
  if (!lastOptions) return;
238
302
  setMenuOpen(false);
239
303
  setExporting(true);
304
+ setExportError(null);
240
305
  try {
241
306
  saveExportOptions(lastOptions);
242
307
  const { runExport } = await loadRunExportModule();
@@ -254,6 +319,8 @@ function ExportToolbarControls({
254
319
  mediaContainer,
255
320
  destinationAdapter ? async (blob, filename) => saveToDestination(blob, filename, quickTarget) : saveBlob
256
321
  );
322
+ } catch (caught) {
323
+ setExportError(exportErrorMessage(caught));
257
324
  } finally {
258
325
  setExporting(false);
259
326
  }
@@ -266,8 +333,13 @@ function ExportToolbarControls({
266
333
  saveToDestination,
267
334
  selectedFile
268
335
  ]);
336
+ const handleDismissExportError = useCallback(() => {
337
+ setExportError(null);
338
+ }, []);
269
339
  const LoadedVideoExportModal = videoModules?.Modal;
340
+ const showAnimatedGifExport = showVideoExport && typeof ffmpegWasm?.coreURL === "string" && ffmpegWasm.coreURL.length > 0;
270
341
  return /* @__PURE__ */ jsxs(Fragment, { children: [
342
+ initialSharedMode && /* @__PURE__ */ jsx(SharedModeInitializer, { mode: initialSharedMode }),
271
343
  trigger === "button" ? /* @__PURE__ */ jsx(
272
344
  "button",
273
345
  {
@@ -280,30 +352,76 @@ function ExportToolbarControls({
280
352
  children: /* @__PURE__ */ jsx(ExportGlyph, {})
281
353
  }
282
354
  ) : /* @__PURE__ */ jsxs("div", { className: "db-toolbar-menu", ref: menuRef, children: [
283
- /* @__PURE__ */ jsx(
355
+ /* @__PURE__ */ jsxs(
284
356
  "button",
285
357
  {
358
+ type: "button",
286
359
  className: "db-toolbar-menu-trigger",
287
360
  onClick: handleToggleMenu,
288
- "aria-label": "More actions",
289
- title: "More actions",
290
- children: "\xB7\xB7\xB7"
361
+ "aria-label": "Export and share",
362
+ "aria-haspopup": "menu",
363
+ "aria-expanded": menuOpen,
364
+ title: "Export and share",
365
+ children: [
366
+ /* @__PURE__ */ jsx(ShareGlyph, {}),
367
+ /* @__PURE__ */ jsx("span", { className: "db-toolbar-menu-trigger-label", children: "Export" })
368
+ ]
291
369
  }
292
370
  ),
293
- menuOpen && /* @__PURE__ */ jsxs("div", { className: "db-toolbar-menu-dropdown", children: [
371
+ menuOpen && /* @__PURE__ */ jsxs("div", { className: "db-toolbar-menu-dropdown", role: "menu", children: [
294
372
  lastOptions && /* @__PURE__ */ jsx(
295
373
  "button",
296
374
  {
375
+ type: "button",
376
+ role: "menuitem",
297
377
  className: "db-toolbar-menu-item",
298
378
  onClick: handleQuickExport,
299
379
  disabled: exporting,
300
380
  children: quickLabel(lastOptions, transformSummaries)
301
381
  }
302
382
  ),
303
- /* @__PURE__ */ jsx("button", { className: "db-toolbar-menu-item", onClick: handleOpenDialog, children: "Export..." }),
383
+ /* @__PURE__ */ jsx(
384
+ "button",
385
+ {
386
+ type: "button",
387
+ role: "menuitem",
388
+ className: "db-toolbar-menu-item",
389
+ onClick: handleOpenDialog,
390
+ children: "Export..."
391
+ }
392
+ ),
393
+ /* @__PURE__ */ jsx(
394
+ "button",
395
+ {
396
+ type: "button",
397
+ role: "menuitem",
398
+ className: "db-toolbar-menu-item",
399
+ onClick: handleOpenShareDialog,
400
+ children: "Share link with content embedded..."
401
+ }
402
+ ),
304
403
  showVideoExport && /* @__PURE__ */ jsxs(Fragment, { children: [
305
- /* @__PURE__ */ jsx("div", { className: "db-toolbar-menu-divider" }),
306
- /* @__PURE__ */ jsx("button", { className: "db-toolbar-menu-item", onClick: handleOpenVideoModal, children: "Export Video..." })
404
+ /* @__PURE__ */ jsx("div", { className: "db-toolbar-menu-divider", role: "separator" }),
405
+ /* @__PURE__ */ jsx(
406
+ "button",
407
+ {
408
+ type: "button",
409
+ role: "menuitem",
410
+ className: "db-toolbar-menu-item",
411
+ onClick: () => void handleOpenVideoModal("mp4"),
412
+ children: "Export Video..."
413
+ }
414
+ ),
415
+ showAnimatedGifExport && /* @__PURE__ */ jsx(
416
+ "button",
417
+ {
418
+ type: "button",
419
+ role: "menuitem",
420
+ className: "db-toolbar-menu-item",
421
+ onClick: () => void handleOpenVideoModal("gif"),
422
+ children: "Export Animated GIF..."
423
+ }
424
+ )
307
425
  ] })
308
426
  ] })
309
427
  ] }),
@@ -312,6 +430,7 @@ function ExportToolbarControls({
312
430
  {
313
431
  initial: dialogInitial,
314
432
  exporting,
433
+ error: exportError,
315
434
  destination: destinationAdapter ? {
316
435
  value: destinationTarget?.displayPath ?? "",
317
436
  onPick: handlePickDestination,
@@ -319,29 +438,56 @@ function ExportToolbarControls({
319
438
  } : void 0,
320
439
  onExport: handleExport,
321
440
  onOptionsChange: destinationAdapter ? handleOptionsChange : void 0,
441
+ onAnimatedGifExport: showAnimatedGifExport ? handleOpenAnimatedGifFromDialog : void 0,
322
442
  onClose: handleCloseDialog
323
443
  }
324
444
  ) }),
325
- videoModalOpen && (videoLoading || videoLoadError) && /* @__PURE__ */ jsx("div", { className: "db-dialog-overlay", children: /* @__PURE__ */ jsxs("div", { className: "db-dialog", children: [
326
- /* @__PURE__ */ jsxs("div", { className: "db-dialog-header", children: [
327
- /* @__PURE__ */ jsx("h2", { className: "db-dialog-title", children: "Export Video" }),
328
- /* @__PURE__ */ jsx(
445
+ exportError && !dialogOpen && /* @__PURE__ */ jsx(
446
+ Dialog,
447
+ {
448
+ title: "Export Document",
449
+ onClose: handleDismissExportError,
450
+ footer: /* @__PURE__ */ jsx(
329
451
  "button",
330
452
  {
331
- className: "db-dialog-close",
332
- onClick: handleCloseVideoModal,
333
- "aria-label": "Close",
334
- children: "\xD7"
453
+ type: "button",
454
+ className: "db-export-btn db-export-btn--secondary",
455
+ onClick: handleDismissExportError,
456
+ children: "Close"
335
457
  }
336
- )
337
- ] }),
338
- /* @__PURE__ */ jsx("div", { className: "db-dialog-body", children: /* @__PURE__ */ jsx("p", { className: "db-export-hint", children: videoLoadError ?? "Loading..." }) })
339
- ] }) }),
458
+ ),
459
+ children: /* @__PURE__ */ jsx("p", { className: "db-export-error", role: "alert", children: exportError })
460
+ }
461
+ ),
462
+ shareDialogOpen && /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(
463
+ ShareDialog,
464
+ {
465
+ markdown: markdownSource,
466
+ selectedFile,
467
+ baseUrl: shareBaseUrl ?? (typeof window === "undefined" ? "https://bendyline.github.io/docblocks/" : window.location.href),
468
+ onClose: handleCloseShareDialog
469
+ }
470
+ ) }),
471
+ videoModalOpen && (videoLoading || videoLoadError) && /* @__PURE__ */ jsx(
472
+ Dialog,
473
+ {
474
+ title: videoOutputFormat === "gif" ? "Export Animated GIF" : "Export Video",
475
+ onClose: handleCloseVideoModal,
476
+ children: /* @__PURE__ */ jsx("p", { className: "db-export-hint", role: videoLoadError ? "alert" : void 0, children: videoLoadError ?? "Loading..." })
477
+ }
478
+ ),
340
479
  videoModalOpen && videoModules && LoadedVideoExportModal && videoDoc && !videoLoading && !videoLoadError && /* @__PURE__ */ jsx(
341
480
  LoadedVideoExportModal,
342
481
  {
343
482
  doc: videoDoc,
344
483
  playerScript: videoModules.playerScript,
484
+ colorScheme,
485
+ uiPalette: videoExportPalette,
486
+ defaultConfig: {
487
+ audioPolicy: "best-effort",
488
+ ...ffmpegWasm ? { ffmpegWasm } : {},
489
+ outputFormat: videoOutputFormat
490
+ },
345
491
  onClose: handleCloseVideoModal
346
492
  }
347
493
  )
@@ -367,7 +513,25 @@ function ExportGlyph() {
367
513
  }
368
514
  );
369
515
  }
516
+ function ShareGlyph() {
517
+ return /* @__PURE__ */ jsxs(
518
+ "svg",
519
+ {
520
+ viewBox: "0 0 16 16",
521
+ fill: "none",
522
+ stroke: "currentColor",
523
+ strokeWidth: "1.5",
524
+ strokeLinecap: "round",
525
+ strokeLinejoin: "round",
526
+ "aria-hidden": "true",
527
+ children: [
528
+ /* @__PURE__ */ jsx("path", { d: "M8 10.5V1.75" }),
529
+ /* @__PURE__ */ jsx("path", { d: "M5.25 4.5 8 1.75l2.75 2.75" }),
530
+ /* @__PURE__ */ jsx("path", { d: "M4.25 6.75h-1a1.5 1.5 0 0 0-1.5 1.5v4.5a1.5 1.5 0 0 0 1.5 1.5h9.5a1.5 1.5 0 0 0 1.5-1.5v-4.5a1.5 1.5 0 0 0-1.5-1.5h-1" })
531
+ ]
532
+ }
533
+ );
534
+ }
370
535
  export {
371
536
  ExportToolbarControls
372
537
  };
373
- //# sourceMappingURL=ExportToolbarControls-D2YDWOXW.js.map
@@ -1,7 +1,10 @@
1
+ import {
2
+ useMenuKeyboard
3
+ } from "./chunk-TFMO7EVO.js";
1
4
  import {
2
5
  isFileDirty,
3
6
  useGitContext
4
- } from "./chunk-5A4KEWKT.js";
7
+ } from "./chunk-HFYPTTCH.js";
5
8
 
6
9
  // src/Git/GitToolbarControl.tsx
7
10
  import { useEffect, useRef, useState } from "react";
@@ -9,11 +12,12 @@ import { jsx, jsxs } from "react/jsx-runtime";
9
12
  function GitToolbarControl({ selectedFile }) {
10
13
  const git = useGitContext();
11
14
  const [menuOpen, setMenuOpen] = useState(false);
12
- const menuRef = useRef(null);
15
+ const rootRef = useRef(null);
16
+ const { menuRef, triggerRef, handleMenuKeyDown, handleTriggerKeyDown, closeMenu } = useMenuKeyboard(menuOpen, setMenuOpen);
13
17
  useEffect(() => {
14
18
  if (!menuOpen) return;
15
19
  const onPointerDown = (e) => {
16
- if (menuRef.current && !menuRef.current.contains(e.target)) {
20
+ if (rootRef.current && !rootRef.current.contains(e.target)) {
17
21
  setMenuOpen(false);
18
22
  }
19
23
  };
@@ -24,24 +28,26 @@ function GitToolbarControl({ selectedFile }) {
24
28
  const dirty = isFileDirty(git.status, selectedFile);
25
29
  const label = dirty ? "Git actions (file modified)" : "Git actions";
26
30
  const openDiff = () => {
27
- setMenuOpen(false);
31
+ closeMenu(false);
28
32
  git.openDialog({ kind: "diff", path: selectedFile });
29
33
  };
30
34
  const openHistory = () => {
31
- setMenuOpen(false);
35
+ closeMenu(false);
32
36
  git.openDialog({ kind: "history", path: selectedFile });
33
37
  };
34
38
  const openOnRemote = () => {
35
- setMenuOpen(false);
39
+ closeMenu(false);
36
40
  git.openOnRemote(selectedFile);
37
41
  };
38
- return /* @__PURE__ */ jsxs("div", { className: "db-toolbar-menu", ref: menuRef, children: [
42
+ return /* @__PURE__ */ jsxs("div", { className: "db-toolbar-menu", ref: rootRef, children: [
39
43
  /* @__PURE__ */ jsxs(
40
44
  "button",
41
45
  {
46
+ ref: triggerRef,
42
47
  type: "button",
43
48
  className: "squisq-toolbar-button db-git-toolbar-trigger",
44
49
  onClick: () => setMenuOpen((prev) => !prev),
50
+ onKeyDown: handleTriggerKeyDown,
45
51
  "aria-label": label,
46
52
  "aria-haspopup": "menu",
47
53
  "aria-expanded": menuOpen,
@@ -52,42 +58,55 @@ function GitToolbarControl({ selectedFile }) {
52
58
  ]
53
59
  }
54
60
  ),
55
- menuOpen && /* @__PURE__ */ jsxs("div", { className: "db-toolbar-menu-dropdown", role: "menu", children: [
56
- /* @__PURE__ */ jsx(
57
- "button",
58
- {
59
- type: "button",
60
- role: "menuitem",
61
- className: "db-toolbar-menu-item",
62
- disabled: !dirty,
63
- onClick: openDiff,
64
- children: "View changes"
65
- }
66
- ),
67
- /* @__PURE__ */ jsx(
68
- "button",
69
- {
70
- type: "button",
71
- role: "menuitem",
72
- className: "db-toolbar-menu-item",
73
- onClick: openHistory,
74
- children: "File history\u2026"
75
- }
76
- ),
77
- git.remoteWeb && /* @__PURE__ */ jsxs(
78
- "button",
79
- {
80
- type: "button",
81
- role: "menuitem",
82
- className: "db-toolbar-menu-item",
83
- onClick: openOnRemote,
84
- children: [
85
- "Open on ",
86
- git.remoteWeb.host
87
- ]
88
- }
89
- )
90
- ] })
61
+ menuOpen && /* @__PURE__ */ jsxs(
62
+ "div",
63
+ {
64
+ ref: menuRef,
65
+ className: "db-toolbar-menu-dropdown",
66
+ role: "menu",
67
+ "aria-label": label,
68
+ onKeyDown: handleMenuKeyDown,
69
+ children: [
70
+ /* @__PURE__ */ jsx(
71
+ "button",
72
+ {
73
+ type: "button",
74
+ role: "menuitem",
75
+ tabIndex: -1,
76
+ className: "db-toolbar-menu-item",
77
+ disabled: !dirty,
78
+ onClick: openDiff,
79
+ children: "View changes"
80
+ }
81
+ ),
82
+ /* @__PURE__ */ jsx(
83
+ "button",
84
+ {
85
+ type: "button",
86
+ role: "menuitem",
87
+ tabIndex: -1,
88
+ className: "db-toolbar-menu-item",
89
+ onClick: openHistory,
90
+ children: "File history\u2026"
91
+ }
92
+ ),
93
+ git.remoteWeb && /* @__PURE__ */ jsxs(
94
+ "button",
95
+ {
96
+ type: "button",
97
+ role: "menuitem",
98
+ tabIndex: -1,
99
+ className: "db-toolbar-menu-item",
100
+ onClick: openOnRemote,
101
+ children: [
102
+ "Open on ",
103
+ git.remoteWeb.host
104
+ ]
105
+ }
106
+ )
107
+ ]
108
+ }
109
+ )
91
110
  ] });
92
111
  }
93
112
  function BranchGlyph() {
@@ -114,4 +133,3 @@ function BranchGlyph() {
114
133
  export {
115
134
  GitToolbarControl
116
135
  };
117
- //# sourceMappingURL=GitToolbarControl-LMIR4R7I.js.map