@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,160 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- /**
3
- * ExportDialog — modal for choosing export format and options.
4
- */
5
- import { useState, useCallback, useEffect, useMemo, useRef } from 'react';
6
- import { getThemeSummaries } from '@bendyline/squisq/schemas';
7
- import { FORMAT_LABELS, saveExportOptions } from './export-options.js';
8
- import { loadTransformStyleSummaries } from './transform-summaries.js';
9
- const FORMATS = ['pdf', 'docx', 'pptx', 'html', 'md'];
10
- /** Short labels for the Format chip row. The fuller `FORMAT_LABELS` list
11
- * is still used as a tooltip so users can confirm the file extension. */
12
- const FORMAT_CHIP_LABELS = {
13
- pdf: 'PDF',
14
- docx: 'Word',
15
- pptx: 'PowerPoint',
16
- html: 'HTML',
17
- md: 'Markdown',
18
- };
19
- const HTML_STYLE_CHIPS = [
20
- {
21
- key: 'plain',
22
- label: 'Plain',
23
- hint: 'A lightweight static HTML document.',
24
- },
25
- {
26
- key: 'rendered',
27
- label: 'Rendered',
28
- hint: 'Renders via SquisqPlayer with themes and playback support.',
29
- },
30
- ];
31
- const HTML_BUNDLE_CHIPS = [
32
- {
33
- key: 'single',
34
- label: 'Single file',
35
- hint: 'One .html file with images embedded as base64 data URIs.',
36
- },
37
- {
38
- key: 'zip',
39
- label: 'ZIP archive',
40
- hint: 'A .zip with index.html plus separate image (and JS) files.',
41
- },
42
- ];
43
- function ChipRadioGroup({ name, value, options, onChange, }) {
44
- return (_jsx("div", { className: "db-export-chips", role: "radiogroup", "aria-label": name, children: options.map((opt) => {
45
- const active = opt.key === value;
46
- return (_jsx("button", { type: "button", role: "radio", "aria-checked": active, className: `db-export-chip${active ? ' db-export-chip--active' : ''}`, onClick: () => onChange(opt.key), title: opt.title, children: opt.label }, opt.key));
47
- }) }));
48
- }
49
- export function ExportDialog({ initial, exporting, destination, onExport, onOptionsChange, onClose, }) {
50
- const [format, setFormat] = useState(initial.format);
51
- const [themeId, setThemeId] = useState(initial.themeId);
52
- const [transformStyle, setTransformStyle] = useState(initial.transformStyle);
53
- const [pageSize, setPageSize] = useState(initial.pageSize);
54
- const [htmlStyle, setHtmlStyle] = useState(initial.htmlStyle);
55
- const [htmlBundle, setHtmlBundle] = useState(initial.htmlBundle);
56
- const [includeLinkedDocs, setIncludeLinkedDocs] = useState(initial.includeLinkedDocs);
57
- const [entryAsIndex, setEntryAsIndex] = useState(initial.entryAsIndex);
58
- const [transforms, setTransforms] = useState([]);
59
- const dialogRef = useRef(null);
60
- const themes = getThemeSummaries();
61
- // Both HTML styles honor themes now: rendered HTML through the
62
- // SquisqPlayer's theme system, plain HTML through squisq's
63
- // `markdownDocToPlainHtml` which emits theme-driven CSS variables
64
- // and Google Fonts links. Show the dropdown for any export format
65
- // whose pipeline actually applies the picked theme.
66
- const showTheme = format === 'docx' || format === 'pdf' || format === 'pptx' || format === 'html';
67
- const showTransform = format === 'pptx';
68
- const showPageSize = format === 'pdf';
69
- const showHtmlOptions = format === 'html';
70
- // Both HTML styles now have a recursive bundle: plain via
71
- // `markdownDocsToPlainHtmlBundle`, rendered via
72
- // `markdownDocsToHtmlBundle` (which rewrites Doc-tree links to
73
- // `.html` before SquisqPlayer serialization). So the option applies
74
- // to any HTML export.
75
- const showIncludeLinked = format === 'html';
76
- // Multi-doc output is inherently a directory tree, so when recursion
77
- // is on the Bundle row would only confuse — ZIP is the only valid
78
- // packaging. Hide the chip row and surface the implication in a hint.
79
- const showHtmlBundle = showHtmlOptions && !includeLinkedDocs;
80
- // `entryAsIndex` is only honored in pipelines where we control the
81
- // output filename ourselves:
82
- // • single-file HTML downloads → renames `<doc>.html` → `index.html`
83
- // • recursive bundles → passed through to squisq's bundle helpers
84
- // In the single-doc ZIP path, squisq's `docToHtmlZip` and our plain-
85
- // HTML zip writer always emit `index.html` inside the archive, so the
86
- // checkbox has no observable effect — hide it to avoid surfacing an
87
- // inert control.
88
- const showEntryAsIndex = showHtmlOptions && (htmlBundle === 'single' || includeLinkedDocs);
89
- useEffect(() => {
90
- if (!showTransform)
91
- return;
92
- let cancelled = false;
93
- loadTransformStyleSummaries()
94
- .then((nextTransforms) => {
95
- if (!cancelled)
96
- setTransforms(nextTransforms);
97
- })
98
- .catch(() => {
99
- if (!cancelled)
100
- setTransforms([]);
101
- });
102
- return () => {
103
- cancelled = true;
104
- };
105
- }, [showTransform]);
106
- const currentOptions = useMemo(() => ({
107
- format,
108
- themeId,
109
- transformStyle,
110
- pageSize,
111
- htmlStyle,
112
- htmlBundle,
113
- includeLinkedDocs: showIncludeLinked && includeLinkedDocs,
114
- entryAsIndex: showEntryAsIndex && entryAsIndex,
115
- }), [
116
- format,
117
- themeId,
118
- transformStyle,
119
- pageSize,
120
- htmlStyle,
121
- htmlBundle,
122
- includeLinkedDocs,
123
- entryAsIndex,
124
- showIncludeLinked,
125
- showEntryAsIndex,
126
- ]);
127
- useEffect(() => {
128
- onOptionsChange?.(currentOptions);
129
- }, [currentOptions, onOptionsChange]);
130
- const handleExport = useCallback(() => {
131
- saveExportOptions(currentOptions);
132
- onExport(currentOptions);
133
- }, [currentOptions, onExport]);
134
- // Close on Escape
135
- useEffect(() => {
136
- const onKey = (e) => {
137
- if (e.key === 'Escape')
138
- onClose();
139
- };
140
- window.addEventListener('keydown', onKey);
141
- return () => window.removeEventListener('keydown', onKey);
142
- }, [onClose]);
143
- // Close on backdrop click
144
- const handleBackdropClick = useCallback((e) => {
145
- if (e.target === e.currentTarget)
146
- onClose();
147
- }, [onClose]);
148
- return (_jsx("div", { className: "db-dialog-overlay", onClick: handleBackdropClick, children: _jsxs("div", { className: "db-dialog db-export-dialog", ref: dialogRef, children: [_jsxs("div", { className: "db-dialog-header", children: [_jsx("h2", { className: "db-dialog-title", children: "Export Document" }), _jsx("button", { className: "db-dialog-close", onClick: onClose, "aria-label": "Close", children: "\u00D7" })] }), _jsxs("div", { className: "db-dialog-body", children: [_jsxs("div", { className: "db-export-field", children: [_jsx("span", { className: "db-export-label", children: "Format" }), _jsx(ChipRadioGroup, { name: "Format", value: format, options: FORMATS.map((f) => ({
149
- key: f,
150
- label: FORMAT_CHIP_LABELS[f],
151
- title: FORMAT_LABELS[f],
152
- })), onChange: setFormat })] }), destination && (_jsxs("div", { className: "db-export-field", children: [_jsx("label", { className: "db-export-label", htmlFor: "db-export-path", children: "Export to" }), _jsxs("div", { className: "db-export-path-row", children: [_jsx("input", { id: "db-export-path", className: "db-export-path-input", value: destination.value, readOnly: true, disabled: exporting, spellCheck: false, autoComplete: "off" }), _jsx("button", { type: "button", className: "db-export-path-pick", onClick: () => void destination.onPick(currentOptions), disabled: exporting, "aria-label": "Choose export location", title: "Choose export location", children: "..." })] }), destination.hint && _jsx("span", { className: "db-export-hint", children: destination.hint })] })), showHtmlOptions && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "db-export-field", children: [_jsx("span", { className: "db-export-label", children: "Style" }), _jsx(ChipRadioGroup, { name: "Style", value: htmlStyle, options: HTML_STYLE_CHIPS, onChange: setHtmlStyle }), _jsx("span", { className: "db-export-hint", children: HTML_STYLE_CHIPS.find((c) => c.key === htmlStyle)?.hint })] }), showHtmlBundle && (_jsxs("div", { className: "db-export-field", children: [_jsx("span", { className: "db-export-label", children: "Bundle" }), _jsx(ChipRadioGroup, { name: "Bundle", value: htmlBundle, options: HTML_BUNDLE_CHIPS, onChange: setHtmlBundle }), _jsx("span", { className: "db-export-hint", children: HTML_BUNDLE_CHIPS.find((c) => c.key === htmlBundle)?.hint })] })), showIncludeLinked && (_jsxs("div", { className: "db-export-field", children: [_jsxs("label", { className: "db-export-checkbox", children: [_jsx("input", { type: "checkbox", checked: includeLinkedDocs, onChange: (e) => setIncludeLinkedDocs(e.target.checked) }), _jsx("span", { children: "Include linked-to documents" })] }), _jsx("span", { className: "db-export-hint", children: includeLinkedDocs
153
- ? 'Follows relative .md links from this page and bundles every reachable document as its own .html in a ZIP. Cross-doc links rewrite from .md to .html.'
154
- : 'Only this document is exported.' })] })), showEntryAsIndex && (_jsxs("div", { className: "db-export-field", children: [_jsxs("label", { className: "db-export-checkbox", children: [_jsx("input", { type: "checkbox", checked: entryAsIndex, onChange: (e) => setEntryAsIndex(e.target.checked) }), _jsx("span", { children: "Name entry page index.html" })] }), _jsx("span", { className: "db-export-hint", children: entryAsIndex
155
- ? includeLinkedDocs
156
- ? 'Renames this page to index.html in the ZIP and rewrites any cross-doc links pointing back at it. Drops straight into a static-site host.'
157
- : 'Downloads as index.html instead of the document name. Drops straight into a static-site host.'
158
- : 'Exports under the document name.' })] }))] })), showTheme && (_jsxs("div", { className: "db-export-field", children: [_jsx("label", { className: "db-export-label", htmlFor: "db-export-theme", children: "Theme" }), _jsx("select", { id: "db-export-theme", className: "db-export-select", value: themeId, onChange: (e) => setThemeId(e.target.value), children: themes.map((t) => (_jsx("option", { value: t.id, children: t.name }, t.id))) }), _jsx("span", { className: "db-export-hint", children: themes.find((t) => t.id === themeId)?.description })] })), showTransform && (_jsxs("div", { className: "db-export-field", children: [_jsx("label", { className: "db-export-label", htmlFor: "db-export-transform", children: "Transform" }), _jsx("select", { id: "db-export-transform", className: "db-export-select", value: transformStyle, onChange: (e) => setTransformStyle(e.target.value), children: transforms.length === 0 ? (_jsx("option", { value: transformStyle, children: "Loading..." })) : (transforms.map((t) => (_jsx("option", { value: t.id, children: t.name }, t.id)))) }), _jsx("span", { className: "db-export-hint", children: transforms.find((t) => t.id === transformStyle)?.description })] })), showPageSize && (_jsxs("div", { className: "db-export-field", children: [_jsx("label", { className: "db-export-label", htmlFor: "db-export-pagesize", children: "Page Size" }), _jsxs("select", { id: "db-export-pagesize", className: "db-export-select", value: pageSize, onChange: (e) => setPageSize(e.target.value), children: [_jsx("option", { value: "letter", children: "US Letter" }), _jsx("option", { value: "a4", children: "A4" })] })] }))] }), _jsxs("div", { className: "db-export-footer", children: [_jsx("button", { className: "db-export-btn db-export-btn--secondary", onClick: onClose, children: "Cancel" }), _jsx("button", { className: "db-export-btn db-export-btn--primary", onClick: handleExport, disabled: exporting, children: exporting ? 'Exporting...' : 'Export' })] })] }) }));
159
- }
160
- //# sourceMappingURL=ExportDialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExportDialog.js","sourceRoot":"","sources":["../../src/Export/ExportDialog.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAA4B,MAAM,0BAA0B,CAAC;AAuBjG,MAAM,OAAO,GAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAEtE;0EAC0E;AAC1E,MAAM,kBAAkB,GAAiC;IACvD,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,UAAU;CACf,CAAC;AAEF,MAAM,gBAAgB,GAAsD;IAC1E;QACE,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,qCAAqC;KAC5C;IACD;QACE,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,4DAA4D;KACnE;CACF,CAAC;AAEF,MAAM,iBAAiB,GAAuD;IAC5E;QACE,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,0DAA0D;KACjE;IACD;QACE,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,4DAA4D;KACnE;CACF,CAAC;AAQF,SAAS,cAAc,CAAmB,EACxC,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,GAMT;IACC,OAAO,CACL,cAAK,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAC,YAAY,gBAAa,IAAI,YAChE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,KAAK,CAAC;YACjC,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,kBACE,MAAM,EACpB,SAAS,EAAE,iBAAiB,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,EACrE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAChC,KAAK,EAAE,GAAG,CAAC,KAAK,YAEf,GAAG,CAAC,KAAK,IARL,GAAG,CAAC,GAAG,CASL,CACV,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,SAAS,EACT,WAAW,EACX,QAAQ,EACR,eAAe,EACf,OAAO,GACW;IAClB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAe,OAAO,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAY,OAAO,CAAC,SAAS,CAAC,CAAC;IACzE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAa,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7E,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAU,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/F,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAU,OAAO,CAAC,YAAY,CAAC,CAAC;IAChF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAwB,EAAE,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IAEnC,+DAA+D;IAC/D,2DAA2D;IAC3D,kEAAkE;IAClE,kEAAkE;IAClE,oDAAoD;IACpD,MAAM,SAAS,GAAG,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC;IAClG,MAAM,aAAa,GAAG,MAAM,KAAK,MAAM,CAAC;IACxC,MAAM,YAAY,GAAG,MAAM,KAAK,KAAK,CAAC;IACtC,MAAM,eAAe,GAAG,MAAM,KAAK,MAAM,CAAC;IAC1C,0DAA0D;IAC1D,gDAAgD;IAChD,+DAA+D;IAC/D,oEAAoE;IACpE,sBAAsB;IACtB,MAAM,iBAAiB,GAAG,MAAM,KAAK,MAAM,CAAC;IAC5C,qEAAqE;IACrE,kEAAkE;IAClE,sEAAsE;IACtE,MAAM,cAAc,GAAG,eAAe,IAAI,CAAC,iBAAiB,CAAC;IAC7D,mEAAmE;IACnE,6BAA6B;IAC7B,uEAAuE;IACvE,oEAAoE;IACpE,qEAAqE;IACrE,sEAAsE;IACtE,oEAAoE;IACpE,iBAAiB;IACjB,MAAM,gBAAgB,GAAG,eAAe,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,iBAAiB,CAAC,CAAC;IAE3F,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa;YAAE,OAAO;QAC3B,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,2BAA2B,EAAE;aAC1B,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;YACvB,IAAI,CAAC,SAAS;gBAAE,aAAa,CAAC,cAAc,CAAC,CAAC;QAChD,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,SAAS;gBAAE,aAAa,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,CAAC;QACL,MAAM;QACN,OAAO;QACP,cAAc;QACd,QAAQ;QACR,SAAS;QACT,UAAU;QACV,iBAAiB,EAAE,iBAAiB,IAAI,iBAAiB;QACzD,YAAY,EAAE,gBAAgB,IAAI,YAAY;KAC/C,CAAC,EACF;QACE,MAAM;QACN,OAAO;QACP,cAAc;QACd,QAAQ;QACR,SAAS;QACT,UAAU;QACV,iBAAiB;QACjB,YAAY;QACZ,iBAAiB;QACjB,gBAAgB;KACjB,CACF,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,EAAE,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;IAEtC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAClC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/B,kBAAkB;IAClB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,CAAC,CAAgB,EAAE,EAAE;YACjC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;QACpC,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,0BAA0B;IAC1B,MAAM,mBAAmB,GAAG,WAAW,CACrC,CAAC,CAAmB,EAAE,EAAE;QACtB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,aAAa;YAAE,OAAO,EAAE,CAAC;IAC9C,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,mBAAmB,EAAC,OAAO,EAAE,mBAAmB,YAC7D,eAAK,SAAS,EAAC,4BAA4B,EAAC,GAAG,EAAE,SAAS,aACxD,eAAK,SAAS,EAAC,kBAAkB,aAC/B,aAAI,SAAS,EAAC,iBAAiB,gCAAqB,EACpD,iBAAQ,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAE,OAAO,gBAAa,OAAO,uBAE/D,IACL,EAEN,eAAK,SAAS,EAAC,gBAAgB,aAE7B,eAAK,SAAS,EAAC,iBAAiB,aAC9B,eAAM,SAAS,EAAC,iBAAiB,uBAAc,EAC/C,KAAC,cAAc,IACb,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wCAC3B,GAAG,EAAE,CAAC;wCACN,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;wCAC5B,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;qCACxB,CAAC,CAAC,EACH,QAAQ,EAAE,SAAS,GACnB,IACE,EAEL,WAAW,IAAI,CACd,eAAK,SAAS,EAAC,iBAAiB,aAC9B,gBAAO,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAC,gBAAgB,0BAEnD,EACR,eAAK,SAAS,EAAC,oBAAoB,aACjC,gBACE,EAAE,EAAC,gBAAgB,EACnB,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAE,WAAW,CAAC,KAAK,EACxB,QAAQ,QACR,QAAQ,EAAE,SAAS,EACnB,UAAU,EAAE,KAAK,EACjB,YAAY,EAAC,KAAK,GAClB,EACF,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qBAAqB,EAC/B,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,EACtD,QAAQ,EAAE,SAAS,gBACR,wBAAwB,EACnC,KAAK,EAAC,wBAAwB,oBAGvB,IACL,EACL,WAAW,CAAC,IAAI,IAAI,eAAM,SAAS,EAAC,gBAAgB,YAAE,WAAW,CAAC,IAAI,GAAQ,IAC3E,CACP,EAGA,eAAe,IAAI,CAClB,8BACE,eAAK,SAAS,EAAC,iBAAiB,aAC9B,eAAM,SAAS,EAAC,iBAAiB,sBAAa,EAC9C,KAAC,cAAc,IACb,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,YAAY,GACtB,EACF,eAAM,SAAS,EAAC,gBAAgB,YAC7B,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE,IAAI,GACnD,IACH,EACL,cAAc,IAAI,CACjB,eAAK,SAAS,EAAC,iBAAiB,aAC9B,eAAM,SAAS,EAAC,iBAAiB,uBAAc,EAC/C,KAAC,cAAc,IACb,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,aAAa,GACvB,EACF,eAAM,SAAS,EAAC,gBAAgB,YAC7B,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,EAAE,IAAI,GACrD,IACH,CACP,EACA,iBAAiB,IAAI,CACpB,eAAK,SAAS,EAAC,iBAAiB,aAC9B,iBAAO,SAAS,EAAC,oBAAoB,aACnC,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GACvD,EACF,yDAAwC,IAClC,EACR,eAAM,SAAS,EAAC,gBAAgB,YAC7B,iBAAiB;gDAChB,CAAC,CAAC,sJAAsJ;gDACxJ,CAAC,CAAC,iCAAiC,GAChC,IACH,CACP,EACA,gBAAgB,IAAI,CACnB,eAAK,SAAS,EAAC,iBAAiB,aAC9B,iBAAO,SAAS,EAAC,oBAAoB,aACnC,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAClD,EACF,wDAAuC,IACjC,EACR,eAAM,SAAS,EAAC,gBAAgB,YAC7B,YAAY;gDACX,CAAC,CAAC,iBAAiB;oDACjB,CAAC,CAAC,0IAA0I;oDAC5I,CAAC,CAAC,+FAA+F;gDACnG,CAAC,CAAC,kCAAkC,GACjC,IACH,CACP,IACA,CACJ,EAGA,SAAS,IAAI,CACZ,eAAK,SAAS,EAAC,iBAAiB,aAC9B,gBAAO,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAC,iBAAiB,sBAEpD,EACR,iBACE,EAAE,EAAC,iBAAiB,EACpB,SAAS,EAAC,kBAAkB,EAC5B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,YAE1C,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACjB,iBAAmB,KAAK,EAAE,CAAC,CAAC,EAAE,YAC3B,CAAC,CAAC,IAAI,IADI,CAAC,CAAC,EAAE,CAER,CACV,CAAC,GACK,EACT,eAAM,SAAS,EAAC,gBAAgB,YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,WAAW,GAC7C,IACH,CACP,EAGA,aAAa,IAAI,CAChB,eAAK,SAAS,EAAC,iBAAiB,aAC9B,gBAAO,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAC,qBAAqB,0BAExD,EACR,iBACE,EAAE,EAAC,qBAAqB,EACxB,SAAS,EAAC,kBAAkB,EAC5B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,YAEjD,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACzB,iBAAQ,KAAK,EAAE,cAAc,2BAAqB,CACnD,CAAC,CAAC,CAAC,CACF,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,iBAAmB,KAAK,EAAE,CAAC,CAAC,EAAE,YAC3B,CAAC,CAAC,IAAI,IADI,CAAC,CAAC,EAAE,CAER,CACV,CAAC,CACH,GACM,EACT,eAAM,SAAS,EAAC,gBAAgB,YAC7B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,WAAW,GACxD,IACH,CACP,EAGA,YAAY,IAAI,CACf,eAAK,SAAS,EAAC,iBAAiB,aAC9B,gBAAO,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAC,oBAAoB,0BAEvD,EACR,kBACE,EAAE,EAAC,oBAAoB,EACvB,SAAS,EAAC,kBAAkB,EAC5B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAwB,CAAC,aAE/D,iBAAQ,KAAK,EAAC,QAAQ,0BAAmB,EACzC,iBAAQ,KAAK,EAAC,IAAI,mBAAY,IACvB,IACL,CACP,IACG,EAEN,eAAK,SAAS,EAAC,kBAAkB,aAC/B,iBAAQ,SAAS,EAAC,wCAAwC,EAAC,OAAO,EAAE,OAAO,uBAElE,EACT,iBACE,SAAS,EAAC,sCAAsC,EAChD,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,SAAS,YAElB,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,GAC/B,IACL,IACF,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -1,37 +0,0 @@
1
- /**
2
- * ExportToolbarControls — toolbar-right slot content.
3
- *
4
- * Renders a "..." overflow menu on the right side of the toolbar
5
- * containing export actions (document export + video export).
6
- *
7
- * Must be rendered inside <EditorProvider> so useEditorContext() works.
8
- */
9
- import type { ContentContainer } from '@bendyline/squisq/storage';
10
- import type { ExportBlobSaver } from './run-export.js';
11
- export interface ExportToolbarControlsProps {
12
- /** Currently selected file path — used to derive the download filename. */
13
- selectedFile: string | null;
14
- /** Media container for resolving images during export. */
15
- mediaContainer?: ContentContainer | null;
16
- /** Override the default browser download behavior for host-provided save flows. */
17
- saveBlob?: ExportBlobSaver;
18
- /** Optional host adapter for displaying, picking, and saving to a native target path. */
19
- destinationAdapter?: ExportDestinationAdapter;
20
- /** Render the trigger as a direct Export button instead of the overflow menu. */
21
- trigger?: 'menu' | 'button';
22
- /** Whether to show video export in the overflow menu. */
23
- showVideoExport?: boolean;
24
- }
25
- /** Host-specific operations behind the shared export destination control. */
26
- export interface ExportDestinationTarget {
27
- grantId: string | null;
28
- displayPath: string;
29
- }
30
- export interface ExportDestinationAdapter {
31
- resolveTarget: (filename: string) => Promise<ExportDestinationTarget>;
32
- pickTarget: (filename: string, currentTarget?: ExportDestinationTarget | null) => Promise<ExportDestinationTarget | null>;
33
- saveBlob: (blob: Blob, filename: string, target?: ExportDestinationTarget | null) => Promise<ExportDestinationTarget | null>;
34
- hint?: string;
35
- }
36
- export declare function ExportToolbarControls({ selectedFile, mediaContainer, saveBlob, destinationAdapter, trigger, showVideoExport, }: ExportToolbarControlsProps): import("react/jsx-runtime").JSX.Element;
37
- //# sourceMappingURL=ExportToolbarControls.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExportToolbarControls.d.ts","sourceRoot":"","sources":["../../src/Export/ExportToolbarControls.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AASlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAcvD,MAAM,WAAW,0BAA0B;IACzC,2EAA2E;IAC3E,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,0DAA0D;IAC1D,cAAc,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACzC,mFAAmF;IACnF,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAC9C,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,yDAAyD;IACzD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,6EAA6E;AAC7E,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtE,UAAU,EAAE,CACV,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,uBAAuB,GAAG,IAAI,KAC3C,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IAC7C,QAAQ,EAAE,CACR,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,uBAAuB,GAAG,IAAI,KACpC,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA4DD,wBAAgB,qBAAqB,CAAC,EACpC,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,OAAgB,EAChB,eAAsB,GACvB,EAAE,0BAA0B,2CA0V5B"}
@@ -1,285 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * ExportToolbarControls — toolbar-right slot content.
4
- *
5
- * Renders a "..." overflow menu on the right side of the toolbar
6
- * containing export actions (document export + video export).
7
- *
8
- * Must be rendered inside <EditorProvider> so useEditorContext() works.
9
- */
10
- import { lazy, Suspense, useState, useCallback, useEffect, useRef, useMemo, } from 'react';
11
- import { useEditorContext } from '@bendyline/squisq-editor-react';
12
- import { getThemeSummaries } from '@bendyline/squisq/schemas';
13
- import { parseMarkdown } from '@bendyline/squisq/markdown';
14
- import { DEFAULT_OPTIONS, FORMAT_EXTENSIONS, loadLastExportOptions, saveExportOptions, } from './export-options.js';
15
- import { loadTransformStyleSummaries } from './transform-summaries.js';
16
- const ExportDialog = lazy(() => import('./ExportDialog.js').then((module) => ({ default: module.ExportDialog })));
17
- let runExportModulePromise = null;
18
- function loadRunExportModule() {
19
- runExportModulePromise ?? (runExportModulePromise = import('./run-export.js'));
20
- return runExportModulePromise;
21
- }
22
- let videoExportModulesPromise = null;
23
- function loadVideoExportModules() {
24
- videoExportModulesPromise ?? (videoExportModulesPromise = Promise.all([
25
- import('@bendyline/squisq/doc'),
26
- import('@bendyline/squisq-video-react'),
27
- import('@bendyline/squisq-react/standalone-source'),
28
- ]).then(([docModule, videoModule, playerModule]) => ({
29
- Modal: videoModule.VideoExportModal,
30
- markdownToDoc: docModule.markdownToDoc,
31
- playerScript: playerModule.PLAYER_BUNDLE,
32
- })));
33
- return videoExportModulesPromise;
34
- }
35
- /** Build the quick-export label from saved options. */
36
- function quickLabel(opts, transformSummaries) {
37
- const baseExt = FORMAT_EXTENSIONS[opts.format].toUpperCase().replace('.', '');
38
- // Recursive HTML always emits a ZIP (multi-doc tree), regardless of
39
- // the saved `htmlBundle` value. Applies to both plain and rendered
40
- // styles since both now ship recursive bundle helpers.
41
- const isRecursiveHtml = opts.format === 'html' && opts.includeLinkedDocs;
42
- const ext = opts.format === 'html' && (opts.htmlBundle === 'zip' || isRecursiveHtml) ? 'ZIP' : baseExt;
43
- const parts = [];
44
- if (opts.format === 'html' && opts.htmlStyle === 'rendered') {
45
- parts.push('rendered');
46
- }
47
- if (isRecursiveHtml) {
48
- parts.push('linked docs');
49
- }
50
- // Plain HTML also applies themes now (squisq's `markdownDocToPlainHtml`
51
- // emits theme-driven CSS), so include the theme name in the quick-
52
- // export label for every HTML style — not just rendered.
53
- if (opts.themeId !== 'standard') {
54
- const theme = getThemeSummaries().find((t) => t.id === opts.themeId);
55
- if (theme)
56
- parts.push(theme.name);
57
- }
58
- if (opts.format === 'pptx' && opts.transformStyle) {
59
- const transform = transformSummaries.find((t) => t.id === opts.transformStyle);
60
- if (transform)
61
- parts.push(transform.name);
62
- }
63
- if (parts.length > 0) {
64
- return `Export ${ext} with ${parts.join(' + ')}`;
65
- }
66
- return `Export ${ext}`;
67
- }
68
- export function ExportToolbarControls({ selectedFile, mediaContainer, saveBlob, destinationAdapter, trigger = 'menu', showVideoExport = true, }) {
69
- const { markdownSource, markdownDoc } = useEditorContext();
70
- const [menuOpen, setMenuOpen] = useState(false);
71
- const [dialogOpen, setDialogOpen] = useState(false);
72
- const [videoModalOpen, setVideoModalOpen] = useState(false);
73
- const [videoLoading, setVideoLoading] = useState(false);
74
- const [videoLoadError, setVideoLoadError] = useState(null);
75
- const [videoModules, setVideoModules] = useState(null);
76
- const [videoDoc, setVideoDoc] = useState(null);
77
- const [transformSummaries, setTransformSummaries] = useState([]);
78
- const [exporting, setExporting] = useState(false);
79
- const [destinationTarget, setDestinationTarget] = useState(null);
80
- const destinationRequestRef = useRef(0);
81
- const menuRef = useRef(null);
82
- const lastOptions = loadLastExportOptions();
83
- /** Doc's currently-set squisq theme, pulled from the markdown
84
- * frontmatter. The Document Settings dialog and Theme Customizer
85
- * write the theme under `squisq-theme` (canonical) or `theme`
86
- * (legacy); some older docs persist it as `themeId`. We honor all
87
- * three so an author who set their theme anywhere upstream sees it
88
- * pre-selected in the export dialog. */
89
- const docThemeId = useMemo(() => {
90
- const fm = markdownDoc?.frontmatter;
91
- if (!fm)
92
- return null;
93
- const candidates = [fm['squisq-theme'], fm['theme'], fm['themeId']];
94
- for (const v of candidates) {
95
- if (typeof v === 'string' && v.trim())
96
- return v.trim();
97
- }
98
- return null;
99
- }, [markdownDoc]);
100
- /** Options used to populate the export dialog. Layered: built-in
101
- * defaults → user's last-chosen export options (if any) → doc's
102
- * current frontmatter theme (wins). The frontmatter override
103
- * guarantees that "set theme in the editor, then export" pre-selects
104
- * the right theme instead of resurrecting whatever the user picked
105
- * for some unrelated previous doc. */
106
- const dialogInitial = useMemo(() => {
107
- const base = lastOptions ?? DEFAULT_OPTIONS;
108
- return docThemeId ? { ...base, themeId: docThemeId } : base;
109
- }, [lastOptions, docThemeId]);
110
- // Close menu on outside click
111
- useEffect(() => {
112
- if (!menuOpen)
113
- return;
114
- const onPointerDown = (e) => {
115
- if (menuRef.current && !menuRef.current.contains(e.target)) {
116
- setMenuOpen(false);
117
- }
118
- };
119
- document.addEventListener('pointerdown', onPointerDown);
120
- return () => document.removeEventListener('pointerdown', onPointerDown);
121
- }, [menuOpen]);
122
- useEffect(() => {
123
- if (!menuOpen ||
124
- lastOptions?.format !== 'pptx' ||
125
- !lastOptions.transformStyle ||
126
- transformSummaries.length > 0) {
127
- return;
128
- }
129
- let cancelled = false;
130
- loadTransformStyleSummaries()
131
- .then((nextSummaries) => {
132
- if (!cancelled)
133
- setTransformSummaries(nextSummaries);
134
- })
135
- .catch(() => {
136
- if (!cancelled)
137
- setTransformSummaries([]);
138
- });
139
- return () => {
140
- cancelled = true;
141
- };
142
- }, [lastOptions?.format, lastOptions?.transformStyle, menuOpen, transformSummaries.length]);
143
- const handleToggleMenu = useCallback(() => {
144
- setMenuOpen((prev) => !prev);
145
- }, []);
146
- const refreshDestination = useCallback(async (options) => {
147
- if (!destinationAdapter)
148
- return;
149
- const requestId = destinationRequestRef.current + 1;
150
- destinationRequestRef.current = requestId;
151
- try {
152
- const { buildExportFilename } = await loadRunExportModule();
153
- const filename = buildExportFilename(selectedFile, options);
154
- const target = await destinationAdapter.resolveTarget(filename);
155
- if (destinationRequestRef.current === requestId)
156
- setDestinationTarget(target);
157
- }
158
- catch {
159
- if (destinationRequestRef.current === requestId)
160
- setDestinationTarget(null);
161
- }
162
- }, [destinationAdapter, selectedFile]);
163
- const handleOpenDialog = useCallback(() => {
164
- setMenuOpen(false);
165
- setDialogOpen(true);
166
- void refreshDestination(dialogInitial);
167
- }, [dialogInitial, refreshDestination]);
168
- const handleCloseDialog = useCallback(() => {
169
- setDialogOpen(false);
170
- }, []);
171
- const handleOpenVideoModal = useCallback(async () => {
172
- setMenuOpen(false);
173
- setVideoModalOpen(true);
174
- setVideoLoading(true);
175
- setVideoLoadError(null);
176
- try {
177
- const modules = videoModules ?? (await loadVideoExportModules());
178
- setVideoModules(modules);
179
- setVideoDoc(modules.markdownToDoc(parseMarkdown(markdownSource)));
180
- }
181
- catch {
182
- setVideoLoadError('Video export could not be loaded.');
183
- }
184
- finally {
185
- setVideoLoading(false);
186
- }
187
- }, [markdownSource, videoModules]);
188
- const handleCloseVideoModal = useCallback(() => {
189
- setVideoModalOpen(false);
190
- setVideoDoc(null);
191
- setVideoLoadError(null);
192
- }, []);
193
- const handleOptionsChange = useCallback((options) => {
194
- void refreshDestination(options);
195
- }, [refreshDestination]);
196
- const handlePickDestination = useCallback(async (options) => {
197
- if (!destinationAdapter)
198
- return;
199
- try {
200
- const { buildExportFilename } = await loadRunExportModule();
201
- const filename = buildExportFilename(selectedFile, options);
202
- const pickedTarget = await destinationAdapter.pickTarget(filename, destinationTarget);
203
- if (pickedTarget === null)
204
- return;
205
- setDestinationTarget(pickedTarget);
206
- }
207
- catch {
208
- // Native hosts surface picker failures through their own UI channel.
209
- }
210
- }, [destinationAdapter, destinationTarget, selectedFile]);
211
- const saveToDestination = useCallback(async (blob, filename, target) => {
212
- if (!destinationAdapter)
213
- return;
214
- const savedTarget = await destinationAdapter.saveBlob(blob, filename, target);
215
- if (savedTarget)
216
- setDestinationTarget(savedTarget);
217
- }, [destinationAdapter]);
218
- const handleDestinationSaveBlob = useCallback(async (blob, filename) => {
219
- await saveToDestination(blob, filename, destinationTarget);
220
- }, [destinationTarget, saveToDestination]);
221
- const handleExport = useCallback(async (opts) => {
222
- setExporting(true);
223
- try {
224
- const { runExport } = await loadRunExportModule();
225
- await runExport(markdownSource, selectedFile, opts, mediaContainer, destinationAdapter ? handleDestinationSaveBlob : saveBlob);
226
- }
227
- finally {
228
- setExporting(false);
229
- setDialogOpen(false);
230
- }
231
- }, [
232
- markdownSource,
233
- selectedFile,
234
- mediaContainer,
235
- destinationAdapter,
236
- handleDestinationSaveBlob,
237
- saveBlob,
238
- ]);
239
- const handleQuickExport = useCallback(async () => {
240
- if (!lastOptions)
241
- return;
242
- setMenuOpen(false);
243
- setExporting(true);
244
- try {
245
- saveExportOptions(lastOptions);
246
- const { runExport } = await loadRunExportModule();
247
- let quickTarget = null;
248
- if (destinationAdapter) {
249
- const { buildExportFilename } = await loadRunExportModule();
250
- quickTarget = await destinationAdapter.resolveTarget(buildExportFilename(selectedFile, lastOptions));
251
- }
252
- await runExport(markdownSource, selectedFile, lastOptions, mediaContainer, destinationAdapter
253
- ? async (blob, filename) => saveToDestination(blob, filename, quickTarget)
254
- : saveBlob);
255
- }
256
- finally {
257
- setExporting(false);
258
- }
259
- }, [
260
- destinationAdapter,
261
- lastOptions,
262
- markdownSource,
263
- mediaContainer,
264
- saveBlob,
265
- saveToDestination,
266
- selectedFile,
267
- ]);
268
- const LoadedVideoExportModal = videoModules?.Modal;
269
- return (_jsxs(_Fragment, { children: [trigger === 'button' ? (_jsx("button", { type: "button", className: "squisq-toolbar-button db-toolbar-export-trigger", onClick: handleOpenDialog, disabled: exporting, "aria-label": "Export document", "data-tooltip": exporting ? 'Exporting...' : 'Export document', children: _jsx(ExportGlyph, {}) })) : (_jsxs("div", { className: "db-toolbar-menu", ref: menuRef, children: [_jsx("button", { className: "db-toolbar-menu-trigger", onClick: handleToggleMenu, "aria-label": "More actions", title: "More actions", children: "\u00B7\u00B7\u00B7" }), menuOpen && (_jsxs("div", { className: "db-toolbar-menu-dropdown", children: [lastOptions && (_jsx("button", { className: "db-toolbar-menu-item", onClick: handleQuickExport, disabled: exporting, children: quickLabel(lastOptions, transformSummaries) })), _jsx("button", { className: "db-toolbar-menu-item", onClick: handleOpenDialog, children: "Export..." }), showVideoExport && (_jsxs(_Fragment, { children: [_jsx("div", { className: "db-toolbar-menu-divider" }), _jsx("button", { className: "db-toolbar-menu-item", onClick: handleOpenVideoModal, children: "Export Video..." })] }))] }))] })), dialogOpen && (_jsx(Suspense, { fallback: null, children: _jsx(ExportDialog, { initial: dialogInitial, exporting: exporting, destination: destinationAdapter
270
- ? {
271
- value: destinationTarget?.displayPath ?? '',
272
- onPick: handlePickDestination,
273
- hint: destinationAdapter.hint,
274
- }
275
- : undefined, onExport: handleExport, onOptionsChange: destinationAdapter ? handleOptionsChange : undefined, onClose: handleCloseDialog }) })), videoModalOpen && (videoLoading || videoLoadError) && (_jsx("div", { className: "db-dialog-overlay", children: _jsxs("div", { className: "db-dialog", children: [_jsxs("div", { className: "db-dialog-header", children: [_jsx("h2", { className: "db-dialog-title", children: "Export Video" }), _jsx("button", { className: "db-dialog-close", onClick: handleCloseVideoModal, "aria-label": "Close", children: "\u00D7" })] }), _jsx("div", { className: "db-dialog-body", children: _jsx("p", { className: "db-export-hint", children: videoLoadError ?? 'Loading...' }) })] }) })), videoModalOpen &&
276
- videoModules &&
277
- LoadedVideoExportModal &&
278
- videoDoc &&
279
- !videoLoading &&
280
- !videoLoadError && (_jsx(LoadedVideoExportModal, { doc: videoDoc, playerScript: videoModules.playerScript, onClose: handleCloseVideoModal }))] }));
281
- }
282
- function ExportGlyph() {
283
- return (_jsxs("svg", { viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("path", { d: "M4.5 1.75h4.25L12 5v7.25a1.5 1.5 0 0 1-1.5 1.5h-6A1.5 1.5 0 0 1 3 12.25v-9a1.5 1.5 0 0 1 1.5-1.5z" }), _jsx("path", { d: "M8.75 1.75V5h3.25" }), _jsx("path", { d: "M6 8.75h4.5" }), _jsx("path", { d: "M8.75 7 10.5 8.75 8.75 10.5" })] }));
284
- }
285
- //# sourceMappingURL=ExportToolbarControls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExportToolbarControls.js","sourceRoot":"","sources":["../../src/Export/ExportToolbarControls.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- /** Keep a user-edited target name while switching the selected export format. */
2
- export declare function updateExportTargetExtension(targetPath: string, suggestedFilename: string): string;
3
- //# sourceMappingURL=export-destination.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"export-destination.d.ts","sourceRoot":"","sources":["../../src/Export/export-destination.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAYjG"}
@@ -1,32 +0,0 @@
1
- /** Keep a user-edited target name while switching the selected export format. */
2
- export function updateExportTargetExtension(targetPath, suggestedFilename) {
3
- const nextExtension = extensionOf(suggestedFilename);
4
- if (!nextExtension)
5
- return targetPath;
6
- if (!targetPath.trim())
7
- return suggestedFilename;
8
- const suffixIndex = firstSuffixIndex(targetPath);
9
- const pathPart = suffixIndex === -1 ? targetPath : targetPath.slice(0, suffixIndex);
10
- const suffix = suffixIndex === -1 ? '' : targetPath.slice(suffixIndex);
11
- const separatorIndex = Math.max(pathPart.lastIndexOf('/'), pathPart.lastIndexOf('\\'));
12
- const dotIndex = pathPart.lastIndexOf('.');
13
- const stem = dotIndex > separatorIndex ? pathPart.slice(0, dotIndex) : pathPart;
14
- return `${stem}${nextExtension}${suffix}`;
15
- }
16
- function extensionOf(value) {
17
- const suffixIndex = firstSuffixIndex(value);
18
- const pathPart = suffixIndex === -1 ? value : value.slice(0, suffixIndex);
19
- const separatorIndex = Math.max(pathPart.lastIndexOf('/'), pathPart.lastIndexOf('\\'));
20
- const dotIndex = pathPart.lastIndexOf('.');
21
- return dotIndex > separatorIndex ? pathPart.slice(dotIndex) : '';
22
- }
23
- function firstSuffixIndex(value) {
24
- const query = value.indexOf('?');
25
- const fragment = value.indexOf('#');
26
- if (query === -1)
27
- return fragment;
28
- if (fragment === -1)
29
- return query;
30
- return Math.min(query, fragment);
31
- }
32
- //# sourceMappingURL=export-destination.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"export-destination.js","sourceRoot":"","sources":["../../src/Export/export-destination.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,UAAU,2BAA2B,CAAC,UAAkB,EAAE,iBAAyB;IACvF,MAAM,aAAa,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACrD,IAAI,CAAC,aAAa;QAAE,OAAO,UAAU,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;QAAE,OAAO,iBAAiB,CAAC;IAEjD,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChF,OAAO,GAAG,IAAI,GAAG,aAAa,GAAG,MAAM,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClC,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC"}
@@ -1,53 +0,0 @@
1
- /**
2
- * Export option types and localStorage persistence for quick-export.
3
- */
4
- export type ExportFormat = 'docx' | 'pdf' | 'pptx' | 'md' | 'html';
5
- /** Visual style for HTML export. */
6
- export type HtmlStyle =
7
- /** Render via SquisqPlayer (themed, embeds player bundle). */
8
- 'rendered'
9
- /** Plain semantic HTML — small, no JS, no playback. */
10
- | 'plain';
11
- /** Packaging for HTML export. */
12
- export type HtmlBundle =
13
- /** Single self-contained .html file (images base64-embedded). */
14
- 'single'
15
- /** ZIP containing index.html + asset files. */
16
- | 'zip';
17
- export interface ExportOptions {
18
- format: ExportFormat;
19
- themeId: string;
20
- /** Transform style for PPTX — controls how content is segmented and styled. */
21
- transformStyle: string;
22
- /** Only applies to PDF */
23
- pageSize: 'letter' | 'a4';
24
- /** HTML rendering style. Only applies to format=html. */
25
- htmlStyle: HtmlStyle;
26
- /** HTML bundle layout. Only applies to format=html. */
27
- htmlBundle: HtmlBundle;
28
- /**
29
- * Recursive HTML bundle: walk relative `.md` links from the entry
30
- * document, render every reachable sibling/child page, and rewrite
31
- * cross-doc links from `.md` → `.html`. The output is a ZIP
32
- * regardless of `htmlBundle` because multi-doc output needs a
33
- * directory tree. Supported for both plain (`markdownDocsToPlainHtmlBundle`)
34
- * and rendered (`markdownDocsToHtmlBundle`) HTML styles. Only
35
- * meaningful when `format === 'html'`.
36
- */
37
- includeLinkedDocs: boolean;
38
- /**
39
- * Rename the entry page from `<basename>.html` to `index.html` so the
40
- * export drops straight into a static-site host that expects an
41
- * `index.html` landing page. For recursive bundles, cross-doc links
42
- * targeting the entry also rewrite to `index.html` so siblings don't
43
- * 404. For a single-doc HTML download, this just renames the file.
44
- * Only meaningful when `format === 'html'`.
45
- */
46
- entryAsIndex: boolean;
47
- }
48
- export declare const FORMAT_LABELS: Record<ExportFormat, string>;
49
- export declare const FORMAT_EXTENSIONS: Record<ExportFormat, string>;
50
- export declare const DEFAULT_OPTIONS: ExportOptions;
51
- export declare function loadLastExportOptions(): ExportOptions | null;
52
- export declare function saveExportOptions(options: ExportOptions): void;
53
- //# sourceMappingURL=export-options.d.ts.map