@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/dist/editor.js CHANGED
@@ -1,70 +1,8 @@
1
- /**
2
- * Placeholder prompts shown by DocBlocks when a Markdown document is empty.
3
- * Hosts pick one prompt for each mounted document generation and pass it to
4
- * Squisq, so the copy remains stable while that document is open.
5
- */
6
- export const EMPTY_DOCUMENT_PROMPTS = [
7
- 'Start typing your content, or drop images on top of me...',
8
- 'Write anything -- paste markdown, drag in images, or just start typing...',
9
- 'Type away. Markdown syntax works too...',
10
- 'Chapter 1 begins here...',
11
- 'Once upon a time...',
12
- "A blank page. Exciting, isn't it?",
13
- 'The first word is always the hardest...',
14
- 'Plot twist: this is where it all starts...',
15
- 'Write something the future you will thank you for...',
16
- 'Begin at the beginning...',
17
- "Let's begin.",
18
- 'We can be heroes...',
19
- 'Here comes the sun...',
20
- 'And so it begins...',
21
- 'Let it be, let it be...',
22
- "Don't stop believing...",
23
- 'Started from the bottom...',
24
- 'This is the start of something new...',
25
- 'Ground control to Major Tom...',
26
- 'Come as you are...',
27
- 'Every new beginning...',
28
- "Hello, is it me you're looking for?",
29
- 'Imagine all the people...',
30
- 'Anything you want, you got it...',
31
- 'Rise above...',
32
- 'Do you have the time...',
33
- 'Here we are now, entertain us...',
34
- 'All the small things...',
35
- 'Should I stay or should I go?',
36
- 'I am a patient boy -- I wait, I wait, I wait...',
37
- 'Destination unknown...',
38
- 'Easy like Sunday morning...',
39
- 'Dance, dance, dance to the radio...',
40
- 'New day rising...',
41
- 'Visit the world...',
42
- 'Positive mental attitude...',
43
- 'Better I sing than I cry...',
44
- 'Disconnect for a minute...',
45
- 'We need new noise...',
46
- 'Shoot the moon...',
47
- "I'll surprise you sometime -- I'll come around...",
48
- 'Coming out of my cage, and doing just fine...',
49
- "Throw me to the wolves -- I'll come back, leading the pack...",
50
- 'There comes a time -- no excuses...',
51
- "It's up to me now, turn on the bright lights...",
52
- 'Do what you want...',
53
- 'Fingers crossed...',
54
- 'This is the start of how it all ends...',
55
- 'It has to start somewhere, it has to start sometime -- what better place than here? what better time than now?',
56
- "I know myself, and I'll begin again...",
57
- 'Dig me out, dig me in...',
58
- "Everybody's full of sugar, honey, ice and tea...",
59
- "Take time with a wounded hand, 'cause it likes to heal...",
60
- 'Grab a brush and put on a little makeup...',
61
- 'Amber is the color of your energy...',
62
- "Wait -- they don't love it like I love it...",
63
- "A world's been buried, where love is the law; a you-topia...",
64
- ];
65
- /** Pick a prompt using the supplied random source, or `Math.random`. */
66
- export function pickEmptyDocumentPrompt(random = Math.random) {
67
- const index = Math.floor(random() * EMPTY_DOCUMENT_PROMPTS.length);
68
- return EMPTY_DOCUMENT_PROMPTS[index] ?? EMPTY_DOCUMENT_PROMPTS[0];
69
- }
70
- //# sourceMappingURL=editor.js.map
1
+ import {
2
+ EMPTY_DOCUMENT_PROMPTS,
3
+ pickEmptyDocumentPrompt
4
+ } from "./chunk-BPGEBGAN.js";
5
+ export {
6
+ EMPTY_DOCUMENT_PROMPTS,
7
+ pickEmptyDocumentPrompt
8
+ };
@@ -1,10 +1,11 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as _bendyline_squisq_formats_pptx from '@bendyline/squisq-formats/pptx';
2
3
  import { ContentContainer } from '@bendyline/squisq/storage';
3
4
 
4
5
  /**
5
6
  * Export option types and localStorage persistence for quick-export.
6
7
  */
7
- type ExportFormat = 'docx' | 'pdf' | 'pptx' | 'md' | 'html';
8
+ type ExportFormat = 'docx' | 'pdf' | 'pptx' | 'epub' | 'md' | 'html';
8
9
  /** Visual style for HTML export. */
9
10
  type HtmlStyle =
10
11
  /** Render via SquisqPlayer (themed, embeds player bundle). */
@@ -54,34 +55,49 @@ declare const DEFAULT_OPTIONS: ExportOptions;
54
55
  declare function loadLastExportOptions(): ExportOptions | null;
55
56
  declare function saveExportOptions(options: ExportOptions): void;
56
57
 
57
- /**
58
- * Execute an export using @bendyline/squisq-formats.
59
- */
60
-
61
58
  type ExportBlobSaver = (blob: Blob, filename: string) => Promise<void> | void;
59
+ /** Host-provided converters that must be loaded before an export begins. */
60
+ interface ExportConverterOverrides {
61
+ docToPptx?: (typeof _bendyline_squisq_formats_pptx)['docToPptx'];
62
+ }
62
63
  declare function buildExportFilename(selectedFile: string | null, options: ExportOptions): string;
63
64
  /** Run the export and trigger a download. */
64
- declare function runExport(markdown: string, selectedFile: string | null, options: ExportOptions, mediaContainer?: ContentContainer | null, saveBlob?: ExportBlobSaver): Promise<void>;
65
+ declare function runExport(markdown: string, selectedFile: string | null, options: ExportOptions, mediaContainer?: ContentContainer | null, saveBlob?: ExportBlobSaver, converterOverrides?: ExportConverterOverrides): Promise<void>;
65
66
 
66
67
  interface ExportDialogProps {
67
68
  /** Initial options (pre-populated from last export). */
68
69
  initial: ExportOptions;
69
70
  /** Whether the export is currently running. */
70
71
  exporting: boolean;
72
+ /**
73
+ * Message from a failed export attempt. Rendered in the dialog, which
74
+ * stays open so the user can adjust options and retry — a failure must
75
+ * never look like a success.
76
+ */
77
+ error?: string | null;
71
78
  /** Optional host-provided destination path control. */
72
79
  destination?: ExportDestinationControl;
73
80
  /** Called when the user confirms the export. */
74
81
  onExport: (options: ExportOptions) => void;
75
82
  /** Called whenever the currently selected options change. */
76
83
  onOptionsChange?: (options: ExportOptions) => void;
84
+ /** Opens the richer animated-GIF export flow when the host supports ffmpeg.wasm. */
85
+ onAnimatedGifExport?: () => void;
77
86
  /** Called when the dialog is dismissed. */
78
87
  onClose: () => void;
79
88
  }
80
89
  interface ExportDestinationControl {
81
90
  value: string;
91
+ /** Enables host-validated edits. Omit to render the destination as read-only. */
92
+ onChange?: (value: string, options: ExportOptions) => void;
82
93
  onPick: (options: ExportOptions) => void | Promise<void>;
83
94
  hint?: string;
95
+ /** A host-supplied validation error for the current destination value. */
96
+ error?: string | null;
84
97
  }
85
- declare function ExportDialog({ initial, exporting, destination, onExport, onOptionsChange, onClose, }: ExportDialogProps): react_jsx_runtime.JSX.Element;
98
+ declare function ExportDialog({ initial, exporting, error, destination, onExport, onOptionsChange, onAnimatedGifExport, onClose, }: ExportDialogProps): react_jsx_runtime.JSX.Element;
99
+
100
+ /** Keep a user-edited target name while switching the selected export format. */
101
+ declare function updateExportTargetExtension(targetPath: string, suggestedFilename: string): string;
86
102
 
87
- export { DEFAULT_OPTIONS, type ExportBlobSaver, type ExportDestinationControl, ExportDialog, type ExportDialogProps, type ExportFormat, type ExportOptions, FORMAT_EXTENSIONS, FORMAT_LABELS, type HtmlBundle, type HtmlStyle, buildExportFilename, loadLastExportOptions, runExport, saveExportOptions };
103
+ export { DEFAULT_OPTIONS, type ExportBlobSaver, type ExportConverterOverrides, type ExportDestinationControl, ExportDialog, type ExportDialogProps, type ExportFormat, type ExportOptions, FORMAT_EXTENSIONS, FORMAT_LABELS, type HtmlBundle, type HtmlStyle, buildExportFilename, loadLastExportOptions, runExport, saveExportOptions, updateExportTargetExtension };
@@ -1,18 +1,22 @@
1
+ import {
2
+ updateExportTargetExtension
3
+ } from "../chunk-BI7NVU6T.js";
1
4
  import {
2
5
  ExportDialog
3
- } from "../chunk-AOVTHZU7.js";
6
+ } from "../chunk-3CZ27FOA.js";
4
7
  import {
5
8
  buildExportFilename,
6
9
  runExport
7
- } from "../chunk-ZI56BNB7.js";
8
- import "../chunk-4XXSWN3T.js";
10
+ } from "../chunk-GHQ4X7KM.js";
11
+ import "../chunk-YBEYTVU2.js";
12
+ import "../chunk-LG6HAWCK.js";
9
13
  import {
10
14
  DEFAULT_OPTIONS,
11
15
  FORMAT_EXTENSIONS,
12
16
  FORMAT_LABELS,
13
17
  loadLastExportOptions,
14
18
  saveExportOptions
15
- } from "../chunk-DD4VFJQI.js";
19
+ } from "../chunk-EBWYGTN7.js";
16
20
  export {
17
21
  DEFAULT_OPTIONS,
18
22
  ExportDialog,
@@ -21,6 +25,6 @@ export {
21
25
  buildExportFilename,
22
26
  loadLastExportOptions,
23
27
  runExport,
24
- saveExportOptions
28
+ saveExportOptions,
29
+ updateExportTargetExtension
25
30
  };
26
- //# sourceMappingURL=index.js.map
package/dist/index.d.ts CHANGED
@@ -1,23 +1,357 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { FileSystemProvider, FileSystemEntry } from '@bendyline/docblocks/filesystem';
3
+ import { WorkspaceDescriptor } from '@bendyline/docblocks/workspace';
4
+ import { EditorColorScheme } from '@bendyline/squisq-editor-react';
5
+ import { FfmpegWasmLoadConfig } from '@bendyline/squisq-video';
6
+ import { PrunePolicy, SaveVersionResult, DocumentVersionManager } from '@bendyline/squisq/versions';
7
+ import { ThemePreference, AccentColor, WriteCanvasPreferences } from './settings/index.js';
8
+ export { AccentColorSettings, AccentColorSettingsProps, SettingsDialog, SettingsDialogProps, ThemeSettings, ThemeSettingsProps, WriteCanvasSettingsControls, WriteCanvasSettingsControlsProps } from './settings/index.js';
9
+ import { SharedDocumentMode } from '@bendyline/docblocks/share';
10
+ import { ContentContainer } from '@bendyline/squisq/storage';
11
+ import { VideoExportModalProps } from '@bendyline/squisq-video-react';
12
+ import { ExportBlobSaver } from './export/index.js';
13
+ export { DEFAULT_OPTIONS, ExportDestinationControl, ExportDialog, ExportDialogProps, ExportFormat, ExportOptions, HtmlBundle, HtmlStyle, buildExportFilename, loadLastExportOptions, runExport, updateExportTargetExtension } from './export/index.js';
14
+ import { DocumentSession, DocumentSessionSnapshot } from '@bendyline/docblocks/document';
15
+ import 'react';
16
+ import '@bendyline/squisq-formats/pptx';
17
+
18
+ type FileTreeChange = {
19
+ type: 'create';
20
+ path: string;
21
+ kind?: 'file' | 'directory';
22
+ } | {
23
+ type: 'delete';
24
+ path: string;
25
+ kind: 'file' | 'directory';
26
+ } | {
27
+ type: 'move';
28
+ oldPath: string;
29
+ newPath: string;
30
+ kind: 'file' | 'directory';
31
+ };
32
+ type FileTreeMutationHandler = (change: FileTreeChange, mutate: () => Promise<void>) => Promise<void>;
33
+ interface WorkspaceMoveDestination {
34
+ id: string;
35
+ name: string;
36
+ }
37
+ interface FileExplorerProps {
38
+ /** The filesystem to display. */
39
+ provider: FileSystemProvider | null;
40
+ /** Active document to select and reveal by expanding all ancestor folders. */
41
+ activeFilePath?: string | null;
42
+ /** Called when any entry is selected (file or directory). */
43
+ onSelect?: (path: string, kind: 'file' | 'directory') => void;
44
+ /**
45
+ * Wraps destructive tree mutations so the active document session can
46
+ * flush, cancel, or retarget itself before storage changes.
47
+ */
48
+ onTreeMutation?: FileTreeMutationHandler;
49
+ /** Called after any mutation, with move details when paths change. */
50
+ onTreeChange?: (change?: FileTreeChange) => void;
51
+ /** Called when supported files are dropped onto the explorer. */
52
+ onImportFiles?: (files: File[]) => void;
53
+ /**
54
+ * Ask the user to confirm an irreversible delete. Resolve `false` to abort.
55
+ * Hosts with their own dialog pass it here; otherwise the tree falls back to
56
+ * a native prompt rather than deleting unasked.
57
+ */
58
+ confirmDelete?: (message: string) => boolean | Promise<boolean>;
59
+ /** Persisted workspaces that can receive the current transient workspace. */
60
+ moveDestinations?: readonly WorkspaceMoveDestination[];
61
+ /** When provided, shows the transient-workspace move action above the tree. */
62
+ onMoveToWorkspace?: (workspaceId: string) => Promise<void>;
63
+ /** Optional className for the root element. */
64
+ className?: string;
65
+ }
66
+ declare function FileExplorer({ provider, activeFilePath, onSelect, onTreeMutation, onTreeChange, onImportFiles, confirmDelete, moveDestinations, onMoveToWorkspace, className, }: FileExplorerProps): react_jsx_runtime.JSX.Element;
67
+
68
+ /** Git decoration for a row — precomputed by FileExplorer so this node stays context-free. */
69
+ interface FileTreeNodeBadge {
70
+ kind: string;
71
+ glyph: string;
72
+ label: string;
73
+ }
74
+ /** Git context-menu actions, prebound to this entry's path. */
75
+ interface FileTreeNodeGitActions {
76
+ viewChanges?: () => void;
77
+ fileHistory?: () => void;
78
+ openOnRemote?: () => void;
79
+ }
80
+ interface FileTreeNodeProps {
81
+ entry: FileSystemEntry;
82
+ depth: number;
83
+ expanded: boolean;
84
+ selected: boolean;
85
+ badge?: FileTreeNodeBadge;
86
+ gitActions?: FileTreeNodeGitActions;
87
+ children?: FileSystemEntry[];
88
+ /**
89
+ * Roving tabindex: true only for the tree's single tab stop. Defaults to
90
+ * true so a node rendered on its own is still reachable.
91
+ */
92
+ focusable?: boolean;
93
+ /** 1-based position among siblings, for aria-posinset. */
94
+ posInSet?: number;
95
+ /** Number of siblings, for aria-setsize. */
96
+ setSize?: number;
97
+ /** The row took focus (click or arrow key) — move the roving tab stop. */
98
+ onRowFocus?: (path: string) => void;
99
+ onToggle: (path: string) => void;
100
+ onSelect: (path: string) => void;
101
+ /**
102
+ * Ask the user to confirm an irreversible delete. Resolve `false` to abort.
103
+ *
104
+ * Optional so a standalone `<FileTreeNode>` still asks before destroying
105
+ * something; hosts that have their own dialog (as `<DocBlocksShell>` does)
106
+ * pass it here so the prompt matches the product instead of being a native
107
+ * browser/Electron dialog.
108
+ */
109
+ confirmDelete?: (message: string) => boolean | Promise<boolean>;
110
+ onDelete: (path: string, kind: 'file' | 'directory') => Promise<void>;
111
+ onRename: (oldPath: string, newPath: string, kind: 'file' | 'directory') => Promise<void>;
112
+ draggable?: boolean;
113
+ dragging?: boolean;
114
+ dropTarget?: boolean;
115
+ onDragStart?: (event: React.DragEvent, entry: FileSystemEntry) => void;
116
+ onDragEnd?: () => void;
117
+ onDragOverEntry?: (event: React.DragEvent, entry: FileSystemEntry) => void;
118
+ onDropEntry?: (event: React.DragEvent, entry: FileSystemEntry) => void;
119
+ renderChildren?: (dirPath: string) => React.ReactNode;
120
+ }
121
+ declare function FileTreeNode({ entry, depth, expanded, selected, badge, gitActions, focusable, posInSet, setSize, onRowFocus, onToggle, onSelect, confirmDelete, onDelete, onRename, draggable, dragging, dropTarget, onDragStart, onDragEnd, onDragOverEntry, onDropEntry, renderChildren, }: FileTreeNodeProps): react_jsx_runtime.JSX.Element;
122
+
1
123
  /**
2
- * @bendyline/docblocks-reactReact components for DocBlocks
124
+ * useFileTreehook that reads from a FileSystemProvider,
125
+ * maintains expanded/collapsed state, and provides CRUD operations.
3
126
  */
4
- export { FileExplorer } from './FileExplorer/index.js';
5
- export type { FileExplorerProps, FileTreeChange, FileTreeMutationHandler, } from './FileExplorer/index.js';
6
- export { FileTreeNode } from './FileExplorer/index.js';
7
- export type { FileTreeNodeProps } from './FileExplorer/index.js';
8
- export { useFileTree } from './FileExplorer/index.js';
9
- export { WorkspacePicker } from './WorkspacePicker/index.js';
10
- export type { WorkspacePickerProps } from './WorkspacePicker/index.js';
11
- export { DocBlocksShell } from './DocBlocksShell/index.js';
12
- export type { DocBlocksShellProps } from './DocBlocksShell/index.js';
13
- export { AppMenu } from './AppMenu/index.js';
14
- export type { AccentColor, AppMenuProps, ThemePreference } from './AppMenu/index.js';
15
- export { AccentColorSettings, SettingsDialog, ThemeSettings } from './Settings/public-api.js';
16
- export type { AccentColorSettingsProps, SettingsDialogProps, ThemeSettingsProps, } from './Settings/public-api.js';
17
- export { buildExportFilename, DEFAULT_OPTIONS, loadLastExportOptions, runExport, updateExportTargetExtension, ExportToolbarControls, } from './Export/index.js';
18
- export type { ExportDestinationControl, ExportDestinationAdapter, ExportDestinationTarget, ExportToolbarControlsProps, ExportFormat, HtmlBundle, HtmlStyle, ExportOptions, ExportBlobSaver, } from './Export/index.js';
19
- export { ExportDialog } from './Export/index.js';
20
- export type { ExportDialogProps } from './Export/index.js';
21
- export { useDocumentSession } from './hooks/index.js';
22
- export type { UseDocumentSessionResult } from './hooks/index.js';
23
- //# sourceMappingURL=index.d.ts.map
127
+
128
+ interface FileTreeState {
129
+ /** Flat list of entries for the current directory view. */
130
+ entries: FileSystemEntry[];
131
+ /** Set of expanded directory paths. */
132
+ expanded: Set<string>;
133
+ /** Currently selected path file or directory (null if none). */
134
+ selectedPath: string | null;
135
+ /** Kind of the selected entry. */
136
+ selectedKind: 'file' | 'directory' | null;
137
+ /** Whether the tree is loading. */
138
+ loading: boolean;
139
+ /** Latest provider/read/watch failure, cleared by a successful refresh. */
140
+ error: string | null;
141
+ }
142
+ interface FileTreeActions {
143
+ /** Toggle a directory's expanded state. */
144
+ toggleExpand: (path: string) => void;
145
+ /** Select a file or directory. */
146
+ select: (path: string, kind: 'file' | 'directory') => void;
147
+ /** Select an entry and expand each directory needed to reveal it. */
148
+ reveal: (path: string, kind: 'file' | 'directory') => void;
149
+ /** Create a new file with optional initial content. */
150
+ createFile: (path: string, content?: string) => Promise<void>;
151
+ /** Create a new directory. */
152
+ createDirectory: (path: string) => Promise<void>;
153
+ /** Delete a file or directory. */
154
+ deleteEntry: (path: string) => Promise<void>;
155
+ /** Rename or move a file or directory, including a markdown companion folder. */
156
+ renameEntry: (oldPath: string, newPath: string, kind?: 'file' | 'directory') => Promise<void>;
157
+ /** Force refresh the tree. */
158
+ refresh: () => Promise<void>;
159
+ }
160
+ declare function useFileTree(provider: FileSystemProvider | null): FileTreeState & FileTreeActions;
161
+
162
+ interface WorkspacePickerProps {
163
+ /** Currently active workspace id. */
164
+ activeWorkspaceId: string | null;
165
+ /** Called when the user picks a different workspace. */
166
+ onSelect: (descriptor: WorkspaceDescriptor) => void;
167
+ /** Called when the user chooses "Open Folder" (native FS). */
168
+ onOpenFolder: () => void;
169
+ /**
170
+ * Called when the user chooses "Clone Git repository". Only provided on
171
+ * the desktop when git is available — omitted, the item is hidden.
172
+ */
173
+ onCloneRepository?: () => void;
174
+ /** Forces a list refresh after an external workspace-registry mutation. */
175
+ refreshKey?: number;
176
+ /** Optional className. */
177
+ className?: string;
178
+ }
179
+ declare function WorkspacePicker({ activeWorkspaceId, onSelect, onOpenFolder, onCloneRepository, refreshKey, className, }: WorkspacePickerProps): react_jsx_runtime.JSX.Element;
180
+
181
+ interface DocBlocksShellProps {
182
+ /**
183
+ * The theme to use before the user has an opinion. Omit or pass `'auto'` to
184
+ * follow the OS. An explicit `'light'`/`'dark'` choice the user makes in
185
+ * Settings outranks this — it is their app, not the host's.
186
+ */
187
+ theme?: EditorColorScheme | 'auto';
188
+ /** Optional logo image URL for the app menu. */
189
+ logoUrl?: string;
190
+ /** Version and surface label included in prefilled issue reports, e.g. `1.1.2 web`. */
191
+ issueReportVersion?: string;
192
+ /** ISO build date shown in About, e.g. `2026-07-15`. */
193
+ appBuildDate?: string;
194
+ /** Self-hosted ffmpeg.wasm core. Supplying it enables Animated GIF export. */
195
+ ffmpegWasm?: FfmpegWasmLoadConfig;
196
+ /** Stable host title used before a document opens and for the optional home document. */
197
+ homeDocumentTitle?: string;
198
+ /** Document path that represents the host's indexable home experience. */
199
+ homeDocumentPath?: string;
200
+ /**
201
+ * Enable document version history. Snapshots are written under
202
+ * `<basename>_files/.versions/` next to each markdown file (i.e., the
203
+ * per-document container). Defaults to `true`.
204
+ */
205
+ allowVersioning?: boolean;
206
+ /**
207
+ * Override the document basename used in version filenames. Defaults
208
+ * to the basename of the currently selected file.
209
+ */
210
+ versionBasename?: string;
211
+ /** Prune policy applied after each successful save. Default: keep last 50. */
212
+ versioningPrunePolicy?: PrunePolicy;
213
+ /** Idle delay (ms) before the editor auto-saves a version. `0` disables. Default 5000. */
214
+ versioningAutoSaveIdleMs?: number;
215
+ /** Notified after each `saveVersion` attempt (saved=true and saved=false). */
216
+ onSaveVersion?: (result: SaveVersionResult) => void;
217
+ /** Optional escape hatch for hosts that want imperative access to the version manager. */
218
+ versioningRef?: React.Ref<DocumentVersionManager | null>;
219
+ /**
220
+ * True when a new deploy is waiting (browser PWA hosts: a fresh service
221
+ * worker finished installing). The shell shows an "Update available"
222
+ * status-bar notice that opens a Reload/Later prompt.
223
+ */
224
+ updateAvailable?: boolean;
225
+ /** Activates the waiting update and reloads onto the new version. */
226
+ onApplyUpdate?: () => void;
227
+ /**
228
+ * True once the app has been fully cached for offline use (browser PWA
229
+ * hosts). Shown to the user once as a passive notice.
230
+ */
231
+ offlineReady?: boolean;
232
+ }
233
+ declare function DocBlocksShell({ theme: hostTheme, logoUrl, issueReportVersion, appBuildDate, ffmpegWasm, homeDocumentTitle, homeDocumentPath, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, versioningRef, updateAvailable, onApplyUpdate, offlineReady, }: DocBlocksShellProps): react_jsx_runtime.JSX.Element;
234
+
235
+ /**
236
+ * Versioning preferences — global default + per-workspace resolution.
237
+ *
238
+ * The global preference controls whether DocBlocks writes version
239
+ * snapshots (under `<basename>_files/.versions/`) when editing. The
240
+ * default is `'browser-only'` so local-folder workspaces stay clean by
241
+ * default and only IndexedDB workspaces accumulate version history.
242
+ *
243
+ * Each workspace can override the global default with its own setting
244
+ * stored on the WorkspaceDescriptor. `'inherit'` (or absent) defers to
245
+ * the global preference; `'on'` / `'off'` force the behavior regardless.
246
+ */
247
+
248
+ type VersioningPreference = 'on' | 'browser-only' | 'off';
249
+
250
+ interface AppMenuProps {
251
+ /** Optional logo image URL to display instead of the text label. */
252
+ logoUrl?: string;
253
+ /** Current theme preference. */
254
+ themePreference?: ThemePreference;
255
+ /** Called when the user changes the theme preference. */
256
+ onThemeChange?: (theme: ThemePreference) => void;
257
+ /** Current accent color. */
258
+ accentColor?: AccentColor;
259
+ /** Called when the user changes the accent color. */
260
+ onAccentColorChange?: (color: AccentColor) => void;
261
+ /** Current typography preferences for the editor's Write canvas. */
262
+ writeCanvasSettings?: WriteCanvasPreferences;
263
+ /** Called when the user changes the Write canvas typography. */
264
+ onWriteCanvasSettingsChange?: (settings: WriteCanvasPreferences) => void;
265
+ /** Current global versioning preference. */
266
+ versioningPreference?: VersioningPreference;
267
+ /** Called when the user changes the global versioning preference. */
268
+ onVersioningPreferenceChange?: (pref: VersioningPreference) => void;
269
+ /**
270
+ * Called when the user clicks "Download all workspaces". When omitted,
271
+ * the menu item is hidden.
272
+ */
273
+ onDownloadAllWorkspaces?: () => void | Promise<void>;
274
+ /**
275
+ * Called when the user asks the browser to keep origin storage persistent.
276
+ * When omitted, the menu item is hidden.
277
+ */
278
+ onKeepBrowserData?: () => void | Promise<void>;
279
+ /**
280
+ * Called when the user clicks "Install DocBlocks…" (browser PWA install).
281
+ * When omitted — Electron, unsupported browsers, or already installed —
282
+ * the menu item is hidden.
283
+ */
284
+ onInstallApp?: () => void | Promise<void>;
285
+ /**
286
+ * Async origin storage usage/quota for the Settings "Storage" section
287
+ * (fetched when the dialog opens). When omitted — Electron, or browsers
288
+ * without `navigator.storage.estimate` — the section is hidden.
289
+ */
290
+ getStorageEstimate?: () => Promise<{
291
+ usage: number;
292
+ quota: number;
293
+ } | null>;
294
+ /** Whether the browser has marked origin storage persistent (Settings display). */
295
+ storagePersistent?: boolean;
296
+ /** Human-readable version/build and delivery surface shown in About. */
297
+ appVersion?: string;
298
+ /** ISO build date shown in About. */
299
+ appBuildDate?: string;
300
+ }
301
+ declare function AppMenu({ logoUrl, themePreference, onThemeChange, accentColor, onAccentColorChange, writeCanvasSettings, onWriteCanvasSettingsChange, versioningPreference, onVersioningPreferenceChange, onDownloadAllWorkspaces, onKeepBrowserData, onInstallApp, getStorageEstimate, storagePersistent, appVersion, appBuildDate, }: AppMenuProps): react_jsx_runtime.JSX.Element;
302
+
303
+ interface ExportToolbarControlsProps {
304
+ /** Currently selected file path — used to derive the download filename. */
305
+ selectedFile: string | null;
306
+ /** Media container for resolving images during export. */
307
+ mediaContainer?: ContentContainer | null;
308
+ /** Override the default browser download behavior for host-provided save flows. */
309
+ saveBlob?: ExportBlobSaver;
310
+ /** Optional host adapter for displaying, picking, and saving to a native target path. */
311
+ destinationAdapter?: ExportDestinationAdapter;
312
+ /** Render the trigger as a direct Export button instead of the overflow menu. */
313
+ trigger?: 'menu' | 'button';
314
+ /** Whether to show video export in the overflow menu. */
315
+ showVideoExport?: boolean;
316
+ /** Self-hosted ffmpeg.wasm core. Supplying it enables Animated GIF export. */
317
+ ffmpegWasm?: FfmpegWasmLoadConfig;
318
+ /** Resolved host color scheme for the video export dialog. */
319
+ colorScheme?: 'light' | 'dark';
320
+ /** Host palette overrides for the video export dialog and progress UI. */
321
+ videoExportPalette?: VideoExportModalProps['uiPalette'];
322
+ /** HTTP(S) DocBlocks page used as the base of generated shared links. */
323
+ shareBaseUrl?: string;
324
+ /** One-time Use mode supplied by an opened shared document link. */
325
+ initialSharedMode?: SharedDocumentMode | null;
326
+ }
327
+ /** Host-specific operations behind the shared export destination control. */
328
+ interface ExportDestinationTarget {
329
+ grantId: string | null;
330
+ displayPath: string;
331
+ }
332
+ interface ExportDestinationAdapter {
333
+ resolveTarget: (filename: string) => Promise<ExportDestinationTarget>;
334
+ pickTarget: (filename: string, currentTarget?: ExportDestinationTarget | null) => Promise<ExportDestinationTarget | null>;
335
+ saveBlob: (blob: Blob, filename: string, target?: ExportDestinationTarget | null) => Promise<ExportDestinationTarget | null>;
336
+ hint?: string;
337
+ }
338
+
339
+ /** Public toolbar control with its editor-coupled implementation deferred. */
340
+ declare function ExportToolbarControls(props: ExportToolbarControlsProps): react_jsx_runtime.JSX.Element;
341
+
342
+ interface UseDocumentSessionResult {
343
+ /** Stable controller for the lifetime of the mounted shell/panel. */
344
+ session: DocumentSession;
345
+ /** React snapshot of dirty/saving/saved/error/conflict state. */
346
+ snapshot: DocumentSessionSnapshot;
347
+ }
348
+ /**
349
+ * React binding for the framework-neutral DocumentSession engine.
350
+ *
351
+ * The hook deliberately does not infer target transitions from props.
352
+ * Callers must use transitionTo(), retarget(), or delete() before changing
353
+ * their view state so persistence ordering remains explicit.
354
+ */
355
+ declare function useDocumentSession(autoSaveDelayMs?: number): UseDocumentSessionResult;
356
+
357
+ export { AccentColor, AppMenu, type AppMenuProps, DocBlocksShell, type DocBlocksShellProps, ExportBlobSaver, type ExportDestinationAdapter, type ExportDestinationTarget, ExportToolbarControls, type ExportToolbarControlsProps, FileExplorer, type FileExplorerProps, type FileTreeChange, type FileTreeMutationHandler, FileTreeNode, type FileTreeNodeProps, ThemePreference, type UseDocumentSessionResult, WorkspacePicker, type WorkspacePickerProps, WriteCanvasPreferences, useDocumentSession, useFileTree };