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