@bendyline/docblocks-react 1.1.2 → 2.0.0
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 +31 -5
- package/dist/AppMenu/AppMenu.d.ts +29 -2
- package/dist/AppMenu/AppMenu.d.ts.map +1 -1
- package/dist/AppMenu/AppMenu.js +41 -2
- package/dist/AppMenu/AppMenu.js.map +1 -1
- package/dist/AppMenu/index.d.ts +1 -1
- package/dist/AppMenu/index.d.ts.map +1 -1
- package/dist/DocBlocksShell/DocBlocksShell.d.ts +15 -2
- package/dist/DocBlocksShell/DocBlocksShell.d.ts.map +1 -1
- package/dist/DocBlocksShell/DocBlocksShell.js +1677 -298
- package/dist/DocBlocksShell/DocBlocksShell.js.map +1 -1
- package/dist/DocBlocksShell/LazyEditorShell.d.ts +3 -0
- package/dist/DocBlocksShell/LazyEditorShell.d.ts.map +1 -0
- package/dist/DocBlocksShell/LazyEditorShell.js +3 -0
- package/dist/DocBlocksShell/LazyEditorShell.js.map +1 -0
- package/dist/DocBlocksShell/UpdateAvailableNotice.d.ts +13 -0
- package/dist/DocBlocksShell/UpdateAvailableNotice.d.ts.map +1 -0
- package/dist/DocBlocksShell/UpdateAvailableNotice.js +16 -0
- package/dist/DocBlocksShell/UpdateAvailableNotice.js.map +1 -0
- package/dist/DocBlocksShell/document-title.d.ts +3 -0
- package/dist/DocBlocksShell/document-title.d.ts.map +1 -0
- package/dist/DocBlocksShell/document-title.js +17 -0
- package/dist/DocBlocksShell/document-title.js.map +1 -0
- package/dist/DocBlocksShell/workspace-authority-barrier.d.ts +14 -0
- package/dist/DocBlocksShell/workspace-authority-barrier.d.ts.map +1 -0
- package/dist/DocBlocksShell/workspace-authority-barrier.js +23 -0
- package/dist/DocBlocksShell/workspace-authority-barrier.js.map +1 -0
- package/dist/Export/DeferredExportToolbarControls.d.ts +5 -0
- package/dist/Export/DeferredExportToolbarControls.d.ts.map +1 -0
- package/dist/Export/DeferredExportToolbarControls.js +10 -0
- package/dist/Export/DeferredExportToolbarControls.js.map +1 -0
- package/dist/Export/ExportDialog.d.ts +10 -1
- package/dist/Export/ExportDialog.d.ts.map +1 -1
- package/dist/Export/ExportDialog.js +20 -18
- package/dist/Export/ExportDialog.js.map +1 -1
- package/dist/Export/ExportToolbarControls.d.ts +21 -1
- package/dist/Export/ExportToolbarControls.d.ts.map +1 -1
- package/dist/Export/ExportToolbarControls.js +96 -11
- package/dist/Export/ExportToolbarControls.js.map +1 -1
- package/dist/Export/export-destination.d.ts +3 -0
- package/dist/Export/export-destination.d.ts.map +1 -0
- package/dist/Export/export-destination.js +32 -0
- package/dist/Export/export-destination.js.map +1 -0
- package/dist/Export/index.d.ts +8 -4
- package/dist/Export/index.d.ts.map +1 -1
- package/dist/Export/index.js +4 -1
- package/dist/Export/index.js.map +1 -1
- package/dist/Export/public-api.d.ts +12 -0
- package/dist/Export/public-api.d.ts.map +1 -0
- package/dist/Export/public-api.js +9 -0
- package/dist/Export/public-api.js.map +1 -0
- package/dist/Export/run-export.d.ts +3 -1
- package/dist/Export/run-export.d.ts.map +1 -1
- package/dist/Export/run-export.js +30 -13
- package/dist/Export/run-export.js.map +1 -1
- package/dist/ExportDialog-MEUISWZX.js +9 -0
- package/dist/ExportDialog-MEUISWZX.js.map +1 -0
- package/dist/ExportToolbarControls-D2YDWOXW.js +373 -0
- package/dist/ExportToolbarControls-D2YDWOXW.js.map +1 -0
- package/dist/FileExplorer/FileExplorer.d.ts +26 -4
- package/dist/FileExplorer/FileExplorer.d.ts.map +1 -1
- package/dist/FileExplorer/FileExplorer.js +204 -29
- package/dist/FileExplorer/FileExplorer.js.map +1 -1
- package/dist/FileExplorer/FileTreeNode.d.ts +24 -3
- package/dist/FileExplorer/FileTreeNode.d.ts.map +1 -1
- package/dist/FileExplorer/FileTreeNode.js +27 -8
- package/dist/FileExplorer/FileTreeNode.js.map +1 -1
- package/dist/FileExplorer/index.d.ts +1 -1
- package/dist/FileExplorer/index.d.ts.map +1 -1
- package/dist/FileExplorer/useFileTree.d.ts +5 -3
- package/dist/FileExplorer/useFileTree.d.ts.map +1 -1
- package/dist/FileExplorer/useFileTree.js +173 -13
- package/dist/FileExplorer/useFileTree.js.map +1 -1
- package/dist/Git/GitAuthGuidanceDialog.d.ts +18 -0
- package/dist/Git/GitAuthGuidanceDialog.d.ts.map +1 -0
- package/dist/Git/GitAuthGuidanceDialog.js +27 -0
- package/dist/Git/GitAuthGuidanceDialog.js.map +1 -0
- package/dist/Git/GitBranchesDialog.d.ts +13 -0
- package/dist/Git/GitBranchesDialog.d.ts.map +1 -0
- package/dist/Git/GitBranchesDialog.js +59 -0
- package/dist/Git/GitBranchesDialog.js.map +1 -0
- package/dist/Git/GitCloneDialog.d.ts +14 -0
- package/dist/Git/GitCloneDialog.d.ts.map +1 -0
- package/dist/Git/GitCloneDialog.js +79 -0
- package/dist/Git/GitCloneDialog.js.map +1 -0
- package/dist/Git/GitCommitDialog.d.ts +12 -0
- package/dist/Git/GitCommitDialog.d.ts.map +1 -0
- package/dist/Git/GitCommitDialog.js +38 -0
- package/dist/Git/GitCommitDialog.js.map +1 -0
- package/dist/Git/GitConflictsDialog.d.ts +12 -0
- package/dist/Git/GitConflictsDialog.d.ts.map +1 -0
- package/dist/Git/GitConflictsDialog.js +17 -0
- package/dist/Git/GitConflictsDialog.js.map +1 -0
- package/dist/Git/GitContext.d.ts +89 -0
- package/dist/Git/GitContext.d.ts.map +1 -0
- package/dist/Git/GitContext.js +15 -0
- package/dist/Git/GitContext.js.map +1 -0
- package/dist/Git/GitDiffDialog.d.ts +20 -0
- package/dist/Git/GitDiffDialog.d.ts.map +1 -0
- package/dist/Git/GitDiffDialog.js +100 -0
- package/dist/Git/GitDiffDialog.js.map +1 -0
- package/dist/Git/GitDiffView.d.ts +23 -0
- package/dist/Git/GitDiffView.d.ts.map +1 -0
- package/dist/Git/GitDiffView.js +77 -0
- package/dist/Git/GitDiffView.js.map +1 -0
- package/dist/Git/GitHistoryDialog.d.ts +15 -0
- package/dist/Git/GitHistoryDialog.d.ts.map +1 -0
- package/dist/Git/GitHistoryDialog.js +107 -0
- package/dist/Git/GitHistoryDialog.js.map +1 -0
- package/dist/Git/GitStatusBar.d.ts +8 -0
- package/dist/Git/GitStatusBar.d.ts.map +1 -0
- package/dist/Git/GitStatusBar.js +49 -0
- package/dist/Git/GitStatusBar.js.map +1 -0
- package/dist/Git/GitToolbarControl.d.ts +15 -0
- package/dist/Git/GitToolbarControl.d.ts.map +1 -0
- package/dist/Git/GitToolbarControl.js +51 -0
- package/dist/Git/GitToolbarControl.js.map +1 -0
- package/dist/Git/GitUI.d.ts +14 -0
- package/dist/Git/GitUI.d.ts.map +1 -0
- package/dist/Git/GitUI.js +21 -0
- package/dist/Git/GitUI.js.map +1 -0
- package/dist/Git/commit-selection.d.ts +22 -0
- package/dist/Git/commit-selection.d.ts.map +1 -0
- package/dist/Git/commit-selection.js +47 -0
- package/dist/Git/commit-selection.js.map +1 -0
- package/dist/Git/git-clone-utils.d.ts +8 -0
- package/dist/Git/git-clone-utils.d.ts.map +1 -0
- package/dist/Git/git-clone-utils.js +26 -0
- package/dist/Git/git-clone-utils.js.map +1 -0
- package/dist/Git/git-status.d.ts +24 -0
- package/dist/Git/git-status.d.ts.map +1 -0
- package/dist/Git/git-status.js +105 -0
- package/dist/Git/git-status.js.map +1 -0
- package/dist/Git/useGit.d.ts +15 -0
- package/dist/Git/useGit.d.ts.map +1 -0
- package/dist/Git/useGit.js +206 -0
- package/dist/Git/useGit.js.map +1 -0
- package/dist/Git/useGitStatus.d.ts +17 -0
- package/dist/Git/useGitStatus.d.ts.map +1 -0
- package/dist/Git/useGitStatus.js +63 -0
- package/dist/Git/useGitStatus.js.map +1 -0
- package/dist/GitToolbarControl-LMIR4R7I.js +117 -0
- package/dist/GitToolbarControl-LMIR4R7I.js.map +1 -0
- package/dist/GitUI-KGF5MSNV.js +1048 -0
- package/dist/GitUI-KGF5MSNV.js.map +1 -0
- package/dist/LazyEditorShell-EF2BWRXU.js +6 -0
- package/dist/LazyEditorShell-EF2BWRXU.js.map +1 -0
- package/dist/Settings/Settings.d.ts +23 -0
- package/dist/Settings/Settings.d.ts.map +1 -0
- package/dist/Settings/Settings.js +22 -0
- package/dist/Settings/Settings.js.map +1 -0
- package/dist/Settings/public-api.d.ts +3 -0
- package/dist/Settings/public-api.d.ts.map +1 -0
- package/dist/Settings/public-api.js +2 -0
- package/dist/Settings/public-api.js.map +1 -0
- package/dist/WorkspacePicker/WorkspacePicker.d.ts +6 -1
- package/dist/WorkspacePicker/WorkspacePicker.d.ts.map +1 -1
- package/dist/WorkspacePicker/WorkspacePicker.js +16 -5
- package/dist/WorkspacePicker/WorkspacePicker.js.map +1 -1
- package/dist/chunk-3SAXDU2U.js +157 -0
- package/dist/chunk-3SAXDU2U.js.map +1 -0
- package/dist/chunk-4XXSWN3T.js +13 -0
- package/dist/chunk-4XXSWN3T.js.map +1 -0
- package/dist/chunk-5A4KEWKT.js +97 -0
- package/dist/chunk-5A4KEWKT.js.map +1 -0
- package/dist/chunk-AOVTHZU7.js +321 -0
- package/dist/chunk-AOVTHZU7.js.map +1 -0
- package/dist/chunk-DD4VFJQI.js +51 -0
- package/dist/chunk-DD4VFJQI.js.map +1 -0
- package/dist/chunk-GSNZSCIK.js +55 -0
- package/dist/chunk-GSNZSCIK.js.map +1 -0
- package/dist/chunk-VHDP4IPL.js +70 -0
- package/dist/chunk-VHDP4IPL.js.map +1 -0
- package/dist/chunk-ZI56BNB7.js +270 -0
- package/dist/chunk-ZI56BNB7.js.map +1 -0
- package/dist/components/Dialog.d.ts +22 -0
- package/dist/components/Dialog.d.ts.map +1 -0
- package/dist/components/Dialog.js +33 -0
- package/dist/components/Dialog.js.map +1 -0
- package/dist/editor.d.ts +10 -0
- package/dist/editor.d.ts.map +1 -0
- package/dist/editor.js +70 -0
- package/dist/editor.js.map +1 -0
- package/dist/export/index.d.ts +87 -0
- package/dist/export/index.js +26 -0
- package/dist/export/index.js.map +1 -0
- package/dist/hooks/index.d.ts +2 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useDocumentSession.d.ts +16 -0
- package/dist/hooks/useDocumentSession.d.ts.map +1 -0
- package/dist/hooks/useDocumentSession.js +18 -0
- package/dist/hooks/useDocumentSession.js.map +1 -0
- package/dist/icons.d.ts +11 -6
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +21 -20
- package/dist/icons.js.map +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/preferences/theme.d.ts +18 -0
- package/dist/preferences/theme.d.ts.map +1 -0
- package/dist/preferences/theme.js +63 -0
- package/dist/preferences/theme.js.map +1 -0
- package/dist/provider-lease.d.ts +10 -0
- package/dist/provider-lease.d.ts.map +1 -0
- package/dist/provider-lease.js +42 -0
- package/dist/provider-lease.js.map +1 -0
- package/dist/run-export-ICTZITXC.js +10 -0
- package/dist/run-export-ICTZITXC.js.map +1 -0
- package/dist/settings/index.d.ts +28 -0
- package/dist/settings/index.js +12 -0
- package/dist/settings/index.js.map +1 -0
- package/package.json +24 -9
- package/src/AppMenu/AppMenu.tsx +169 -99
- package/src/AppMenu/index.ts +1 -1
- package/src/DocBlocksShell/DocBlocksShell.tsx +2157 -537
- package/src/DocBlocksShell/LazyEditorShell.ts +2 -0
- package/src/DocBlocksShell/UpdateAvailableNotice.tsx +60 -0
- package/src/DocBlocksShell/document-title.ts +19 -0
- package/src/DocBlocksShell/workspace-authority-barrier.ts +26 -0
- package/src/Export/DeferredExportToolbarControls.tsx +23 -0
- package/src/Export/ExportDialog.tsx +74 -20
- package/src/Export/ExportToolbarControls.tsx +238 -40
- package/src/Export/export-destination.ts +30 -0
- package/src/Export/index.ts +18 -4
- package/src/Export/public-api.ts +17 -0
- package/src/Export/run-export.ts +36 -11
- package/src/FileExplorer/FileExplorer.tsx +284 -38
- package/src/FileExplorer/FileTreeNode.tsx +100 -8
- package/src/FileExplorer/index.ts +1 -1
- package/src/FileExplorer/useFileTree.ts +190 -16
- package/src/Git/GitAuthGuidanceDialog.tsx +84 -0
- package/src/Git/GitBranchesDialog.tsx +144 -0
- package/src/Git/GitCloneDialog.tsx +200 -0
- package/src/Git/GitCommitDialog.tsx +119 -0
- package/src/Git/GitConflictsDialog.tsx +62 -0
- package/src/Git/GitContext.tsx +88 -0
- package/src/Git/GitDiffDialog.tsx +147 -0
- package/src/Git/GitDiffView.tsx +105 -0
- package/src/Git/GitHistoryDialog.tsx +195 -0
- package/src/Git/GitStatusBar.tsx +157 -0
- package/src/Git/GitToolbarControl.tsx +123 -0
- package/src/Git/GitUI.tsx +68 -0
- package/src/Git/commit-selection.ts +63 -0
- package/src/Git/git-clone-utils.ts +23 -0
- package/src/Git/git-status.ts +113 -0
- package/src/Git/useGit.ts +279 -0
- package/src/Git/useGitStatus.ts +78 -0
- package/src/Settings/Settings.tsx +118 -0
- package/src/Settings/public-api.ts +8 -0
- package/src/WorkspacePicker/WorkspacePicker.tsx +62 -8
- package/src/components/Dialog.tsx +81 -0
- package/src/editor.ts +72 -0
- package/src/hooks/index.ts +2 -1
- package/src/hooks/useDocumentSession.ts +37 -0
- package/src/icons.tsx +33 -55
- package/src/index.ts +35 -5
- package/src/preferences/theme.ts +67 -0
- package/src/provider-lease.ts +52 -0
- package/src/styles/docblocks.css +2174 -79
- package/src/types/pwa-dom.d.ts +31 -0
- package/dist/hooks/useAutoSave.d.ts +0 -15
- package/dist/hooks/useAutoSave.d.ts.map +0 -1
- package/dist/hooks/useAutoSave.js +0 -83
- package/dist/hooks/useAutoSave.js.map +0 -1
- package/dist/monaco-slim.d.ts +0 -19
- package/dist/monaco-slim.d.ts.map +0 -1
- package/dist/monaco-slim.js +0 -19
- package/dist/monaco-slim.js.map +0 -1
- package/src/fonts/fonts.css +0 -362
- package/src/fonts/licenses/LICENSE-cormorant-garamond.txt +0 -93
- package/src/fonts/licenses/LICENSE-crimson-text.txt +0 -93
- package/src/fonts/licenses/LICENSE-dm-sans.txt +0 -93
- package/src/fonts/licenses/LICENSE-dm-serif-display.txt +0 -93
- package/src/fonts/licenses/LICENSE-hanken-grotesk.txt +0 -94
- package/src/fonts/licenses/LICENSE-ibm-plex-sans.txt +0 -93
- package/src/fonts/licenses/LICENSE-inter.txt +0 -93
- package/src/fonts/licenses/LICENSE-jetbrains-mono.txt +0 -93
- package/src/fonts/licenses/LICENSE-lora.txt +0 -93
- package/src/fonts/licenses/LICENSE-merriweather.txt +0 -93
- package/src/fonts/licenses/LICENSE-oswald.txt +0 -93
- package/src/fonts/licenses/LICENSE-playfair-display.txt +0 -93
- package/src/fonts/licenses/LICENSE-pt-serif.txt +0 -93
- package/src/fonts/licenses/LICENSE-roboto.txt +0 -93
- package/src/fonts/licenses/LICENSE-source-serif-4.txt +0 -93
- package/src/fonts/woff2/cormorant-garamond-400.woff2 +0 -0
- package/src/fonts/woff2/cormorant-garamond-700.woff2 +0 -0
- package/src/fonts/woff2/crimson-text-400.woff2 +0 -0
- package/src/fonts/woff2/crimson-text-400i.woff2 +0 -0
- package/src/fonts/woff2/crimson-text-700.woff2 +0 -0
- package/src/fonts/woff2/dm-sans-400.woff2 +0 -0
- package/src/fonts/woff2/dm-sans-400i.woff2 +0 -0
- package/src/fonts/woff2/dm-sans-500.woff2 +0 -0
- package/src/fonts/woff2/dm-sans-700.woff2 +0 -0
- package/src/fonts/woff2/dm-serif-display-400.woff2 +0 -0
- package/src/fonts/woff2/hanken-grotesk-400.woff2 +0 -0
- package/src/fonts/woff2/hanken-grotesk-400i.woff2 +0 -0
- package/src/fonts/woff2/hanken-grotesk-500.woff2 +0 -0
- package/src/fonts/woff2/hanken-grotesk-600.woff2 +0 -0
- package/src/fonts/woff2/hanken-grotesk-700.woff2 +0 -0
- package/src/fonts/woff2/ibm-plex-sans-400.woff2 +0 -0
- package/src/fonts/woff2/ibm-plex-sans-400i.woff2 +0 -0
- package/src/fonts/woff2/ibm-plex-sans-500.woff2 +0 -0
- package/src/fonts/woff2/ibm-plex-sans-600.woff2 +0 -0
- package/src/fonts/woff2/ibm-plex-sans-700.woff2 +0 -0
- package/src/fonts/woff2/inter-400.woff2 +0 -0
- package/src/fonts/woff2/inter-400i.woff2 +0 -0
- package/src/fonts/woff2/inter-500.woff2 +0 -0
- package/src/fonts/woff2/inter-600.woff2 +0 -0
- package/src/fonts/woff2/inter-700.woff2 +0 -0
- package/src/fonts/woff2/jetbrains-mono-400.woff2 +0 -0
- package/src/fonts/woff2/jetbrains-mono-400i.woff2 +0 -0
- package/src/fonts/woff2/jetbrains-mono-700.woff2 +0 -0
- package/src/fonts/woff2/lora-400.woff2 +0 -0
- package/src/fonts/woff2/lora-400i.woff2 +0 -0
- package/src/fonts/woff2/lora-700.woff2 +0 -0
- package/src/fonts/woff2/merriweather-400.woff2 +0 -0
- package/src/fonts/woff2/merriweather-700.woff2 +0 -0
- package/src/fonts/woff2/oswald-400.woff2 +0 -0
- package/src/fonts/woff2/oswald-700.woff2 +0 -0
- package/src/fonts/woff2/playfair-display-400.woff2 +0 -0
- package/src/fonts/woff2/playfair-display-700.woff2 +0 -0
- package/src/fonts/woff2/pt-serif-400.woff2 +0 -0
- package/src/fonts/woff2/pt-serif-700.woff2 +0 -0
- package/src/fonts/woff2/roboto-400.woff2 +0 -0
- package/src/fonts/woff2/roboto-400i.woff2 +0 -0
- package/src/fonts/woff2/roboto-700.woff2 +0 -0
- package/src/fonts/woff2/source-serif-4-400.woff2 +0 -0
- package/src/fonts/woff2/source-serif-4-400i.woff2 +0 -0
- package/src/fonts/woff2/source-serif-4-700.woff2 +0 -0
- package/src/hooks/useAutoSave.ts +0 -116
- package/src/monaco-slim.ts +0 -20
package/README.md
CHANGED
|
@@ -21,6 +21,16 @@ function App() {
|
|
|
21
21
|
}
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
+
The video-export worker uses module chunks. Vite consumers must retain the
|
|
25
|
+
same worker setting used by the DocBlocks site and desktop renderer:
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
// vite.config.ts
|
|
29
|
+
import { defineConfig } from 'vite';
|
|
30
|
+
|
|
31
|
+
export default defineConfig({ worker: { format: 'es' } });
|
|
32
|
+
```
|
|
33
|
+
|
|
24
34
|
## Components
|
|
25
35
|
|
|
26
36
|
### DocBlocksShell
|
|
@@ -34,11 +44,13 @@ The canonical DocBlocks experience in one component — file explorer, workspace
|
|
|
34
44
|
- `theme` — `'light' | 'dark' | 'auto'` (auto follows `prefers-color-scheme`)
|
|
35
45
|
- `logoUrl` — brand mark for the app menu button
|
|
36
46
|
|
|
37
|
-
Storage is abstracted behind `
|
|
47
|
+
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.
|
|
38
48
|
|
|
39
49
|
### FileExplorer / FileTreeNode
|
|
40
50
|
|
|
41
|
-
File tree browser with inline create (file + folder), rename,
|
|
51
|
+
File tree browser with inline create (file + folder), rename, and delete. It follows filesystem
|
|
52
|
+
watch events automatically and re-reads the visible tree when a browser surface resumes. Long
|
|
53
|
+
names truncate gracefully.
|
|
42
54
|
|
|
43
55
|
### WorkspacePicker
|
|
44
56
|
|
|
@@ -50,17 +62,31 @@ Top-left brand menu with the app-wide **Settings** dialog (theme preference, glo
|
|
|
50
62
|
|
|
51
63
|
### ExportToolbarControls / ExportDialog
|
|
52
64
|
|
|
65
|
+
Consumers that need the export pipeline without the complete shell can use the
|
|
66
|
+
public, independently built entry point:
|
|
67
|
+
|
|
68
|
+
```ts
|
|
69
|
+
import {
|
|
70
|
+
DEFAULT_OPTIONS,
|
|
71
|
+
ExportDialog,
|
|
72
|
+
buildExportFilename,
|
|
73
|
+
runExport,
|
|
74
|
+
} from '@bendyline/docblocks-react/export';
|
|
75
|
+
```
|
|
76
|
+
|
|
53
77
|
The export flow: quick re-export of the last configuration plus the full dialog — format (PDF, Word, PowerPoint, HTML, Markdown), visual theme, and page size.
|
|
54
78
|
|
|
55
79
|
## Hooks
|
|
56
80
|
|
|
57
|
-
### `
|
|
81
|
+
### `useDocumentSession(delay?)`
|
|
58
82
|
|
|
59
|
-
|
|
83
|
+
React binding for the revisioned `DocumentSession`. Active-document writes,
|
|
84
|
+
transitions, conflicts, and close preparation must flow through this session;
|
|
85
|
+
there is intentionally no independent autosave hook.
|
|
60
86
|
|
|
61
87
|
### `useFileTree(provider)`
|
|
62
88
|
|
|
63
|
-
File tree state management over any
|
|
89
|
+
File tree state management over any v2-capable provider — returns the tree, selection, and explicit create/move/remove functions, with a temporary v1 fallback for external providers.
|
|
64
90
|
|
|
65
91
|
## Styles
|
|
66
92
|
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* AppMenu — top-left dropdown with workspace actions and app links.
|
|
3
3
|
*/
|
|
4
4
|
import type { VersioningPreference } from '../preferences/versioning.js';
|
|
5
|
-
|
|
5
|
+
import type { AccentColor, ThemePreference } from '../preferences/theme.js';
|
|
6
|
+
export type { AccentColor, ThemePreference } from '../preferences/theme.js';
|
|
6
7
|
export interface AppMenuProps {
|
|
7
8
|
/** URL for the about page. */
|
|
8
9
|
aboutUrl?: string;
|
|
@@ -12,6 +13,10 @@ export interface AppMenuProps {
|
|
|
12
13
|
themePreference?: ThemePreference;
|
|
13
14
|
/** Called when the user changes the theme preference. */
|
|
14
15
|
onThemeChange?: (theme: ThemePreference) => void;
|
|
16
|
+
/** Current accent color. */
|
|
17
|
+
accentColor?: AccentColor;
|
|
18
|
+
/** Called when the user changes the accent color. */
|
|
19
|
+
onAccentColorChange?: (color: AccentColor) => void;
|
|
15
20
|
/** Current global versioning preference. */
|
|
16
21
|
versioningPreference?: VersioningPreference;
|
|
17
22
|
/** Called when the user changes the global versioning preference. */
|
|
@@ -21,6 +26,28 @@ export interface AppMenuProps {
|
|
|
21
26
|
* the menu item is hidden.
|
|
22
27
|
*/
|
|
23
28
|
onDownloadAllWorkspaces?: () => void | Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Called when the user asks the browser to keep origin storage persistent.
|
|
31
|
+
* When omitted, the menu item is hidden.
|
|
32
|
+
*/
|
|
33
|
+
onKeepBrowserData?: () => void | Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Called when the user clicks "Install DocBlocks…" (browser PWA install).
|
|
36
|
+
* When omitted — Electron, unsupported browsers, or already installed —
|
|
37
|
+
* the menu item is hidden.
|
|
38
|
+
*/
|
|
39
|
+
onInstallApp?: () => void | Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Async origin storage usage/quota for the Settings "Storage" section
|
|
42
|
+
* (fetched when the dialog opens). When omitted — Electron, or browsers
|
|
43
|
+
* without `navigator.storage.estimate` — the section is hidden.
|
|
44
|
+
*/
|
|
45
|
+
getStorageEstimate?: () => Promise<{
|
|
46
|
+
usage: number;
|
|
47
|
+
quota: number;
|
|
48
|
+
} | null>;
|
|
49
|
+
/** Whether the browser has marked origin storage persistent (Settings display). */
|
|
50
|
+
storagePersistent?: boolean;
|
|
24
51
|
}
|
|
25
|
-
export declare function AppMenu({ aboutUrl: _aboutUrl, logoUrl, themePreference, onThemeChange, versioningPreference, onVersioningPreferenceChange, onDownloadAllWorkspaces, }: AppMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
52
|
+
export declare function AppMenu({ aboutUrl: _aboutUrl, logoUrl, themePreference, onThemeChange, accentColor, onAccentColorChange, versioningPreference, onVersioningPreferenceChange, onDownloadAllWorkspaces, onKeepBrowserData, onInstallApp, getStorageEstimate, storagePersistent, }: AppMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
26
53
|
//# sourceMappingURL=AppMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppMenu.d.ts","sourceRoot":"","sources":["../../src/AppMenu/AppMenu.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"AppMenu.d.ts","sourceRoot":"","sources":["../../src/AppMenu/AppMenu.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG5E,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE5E,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,yDAAyD;IACzD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,4BAA4B;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qDAAqD;IACrD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACnD,4CAA4C;IAC5C,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,qEAAqE;IACrE,4BAA4B,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACpE;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC5E,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAcD,wBAAgB,OAAO,CAAC,EACtB,QAAQ,EAAE,SAAoB,EAC9B,OAAO,EACP,eAAwB,EACxB,aAAa,EACb,WAAqB,EACrB,mBAAmB,EACnB,oBAAqC,EACrC,4BAA4B,EAC5B,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,EAAE,YAAY,2CA6Pd"}
|
package/dist/AppMenu/AppMenu.js
CHANGED
|
@@ -3,11 +3,44 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
3
3
|
* AppMenu — top-left dropdown with workspace actions and app links.
|
|
4
4
|
*/
|
|
5
5
|
import { useState, useCallback, useRef, useEffect } from 'react';
|
|
6
|
-
|
|
6
|
+
import { AccentColorSettings, SettingsDialog, ThemeSettings } from '../Settings/Settings.js';
|
|
7
|
+
function formatBytes(bytes) {
|
|
8
|
+
if (!Number.isFinite(bytes) || bytes < 0)
|
|
9
|
+
return '—';
|
|
10
|
+
let value = bytes;
|
|
11
|
+
let unit = 'B';
|
|
12
|
+
for (const next of ['KB', 'MB', 'GB', 'TB']) {
|
|
13
|
+
if (value < 1024)
|
|
14
|
+
break;
|
|
15
|
+
value /= 1024;
|
|
16
|
+
unit = next;
|
|
17
|
+
}
|
|
18
|
+
return `${value >= 100 || unit === 'B' ? Math.round(value) : value.toFixed(1)} ${unit}`;
|
|
19
|
+
}
|
|
20
|
+
export function AppMenu({ aboutUrl: _aboutUrl = '#about', logoUrl, themePreference = 'auto', onThemeChange, accentColor = 'brown', onAccentColorChange, versioningPreference = 'browser-only', onVersioningPreferenceChange, onDownloadAllWorkspaces, onKeepBrowserData, onInstallApp, getStorageEstimate, storagePersistent, }) {
|
|
7
21
|
const [isOpen, setIsOpen] = useState(false);
|
|
8
22
|
const [showAbout, setShowAbout] = useState(false);
|
|
9
23
|
const [showSettings, setShowSettings] = useState(false);
|
|
10
24
|
const menuRef = useRef(null);
|
|
25
|
+
const [storageEstimate, setStorageEstimate] = useState(null);
|
|
26
|
+
// Refresh the Settings "Storage" figures each time the dialog opens.
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (!showSettings || !getStorageEstimate)
|
|
29
|
+
return;
|
|
30
|
+
let cancelled = false;
|
|
31
|
+
getStorageEstimate()
|
|
32
|
+
.then((estimate) => {
|
|
33
|
+
if (!cancelled)
|
|
34
|
+
setStorageEstimate(estimate);
|
|
35
|
+
})
|
|
36
|
+
.catch(() => {
|
|
37
|
+
if (!cancelled)
|
|
38
|
+
setStorageEstimate(null);
|
|
39
|
+
});
|
|
40
|
+
return () => {
|
|
41
|
+
cancelled = true;
|
|
42
|
+
};
|
|
43
|
+
}, [showSettings, getStorageEstimate]);
|
|
11
44
|
useEffect(() => {
|
|
12
45
|
if (!isOpen)
|
|
13
46
|
return;
|
|
@@ -23,6 +56,12 @@ export function AppMenu({ aboutUrl: _aboutUrl = '#about', logoUrl, themePreferen
|
|
|
23
56
|
setIsOpen(false);
|
|
24
57
|
action();
|
|
25
58
|
}, []);
|
|
26
|
-
return (_jsxs(_Fragment, { children: [_jsxs("div", { ref: menuRef, className: "db-app-menu", children: [_jsxs("button", { className: "db-app-menu-btn", onClick: () => setIsOpen(!isOpen), "aria-expanded": isOpen, "aria-haspopup": "true", children: [logoUrl ? (_jsx("img", { src: logoUrl, alt: "docblocks", className: "db-app-menu-logo" })) : (_jsx("span", { className: "db-app-menu-label", children: "docblocks" })), _jsx("span", { className: `db-app-menu-caret${isOpen ? ' db-app-menu-caret--open' : ''}`,
|
|
59
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { ref: menuRef, className: "db-app-menu", children: [_jsxs("button", { className: "db-app-menu-btn", onClick: () => setIsOpen(!isOpen), "aria-expanded": isOpen, "aria-haspopup": "true", children: [logoUrl ? (_jsx("img", { src: logoUrl, alt: "docblocks", className: "db-app-menu-logo" })) : (_jsx("span", { className: "db-app-menu-label", children: "docblocks" })), _jsx("span", { className: `db-app-menu-caret${isOpen ? ' db-app-menu-caret--open' : ''}`, "aria-hidden": "true" })] }), isOpen && (_jsxs("div", { className: "db-app-menu-dropdown", role: "menu", children: [_jsx("button", { className: "db-app-menu-item", role: "menuitem", onClick: () => handleAction(() => setShowSettings(true)), children: "Settings" }), onInstallApp && (_jsx("button", { className: "db-app-menu-item", role: "menuitem", onClick: () => handleAction(() => void onInstallApp()), children: "Install DocBlocks\u2026" })), onKeepBrowserData && (_jsx("button", { className: "db-app-menu-item", role: "menuitem", onClick: () => handleAction(() => void onKeepBrowserData()), children: "Keep data in browser for longer" })), onDownloadAllWorkspaces && (_jsx("button", { className: "db-app-menu-item", role: "menuitem", onClick: () => handleAction(() => void onDownloadAllWorkspaces()), children: "Download all workspaces" })), _jsx("div", { className: "db-app-menu-divider" }), _jsx("button", { className: "db-app-menu-item", role: "menuitem", onClick: () => handleAction(() => setShowAbout(true)), children: "About" })] }))] }), showSettings && (_jsxs(SettingsDialog, { onClose: () => setShowSettings(false), children: [_jsx(ThemeSettings, { value: themePreference, onChange: (preference) => onThemeChange?.(preference) }), _jsx(AccentColorSettings, { value: accentColor, onChange: (color) => onAccentColorChange?.(color) }), getStorageEstimate && (_jsxs("fieldset", { className: "db-settings-fieldset", children: [_jsx("legend", { className: "db-settings-legend", children: "Storage" }), _jsxs("p", { className: "db-settings-hint", children: [storageEstimate
|
|
60
|
+
? `DocBlocks documents and app data are using ${formatBytes(storageEstimate.usage)} of the ${formatBytes(storageEstimate.quota)} this browser allows for the site.`
|
|
61
|
+
: 'Storage usage is not available in this browser.', ' ', storagePersistent === undefined
|
|
62
|
+
? ''
|
|
63
|
+
: storagePersistent
|
|
64
|
+
? 'Data is marked persistent, so the browser will avoid evicting it.'
|
|
65
|
+
: 'Data is not yet marked persistent — use “Keep data in browser for longer” in the app menu.'] })] })), onVersioningPreferenceChange && (_jsxs("fieldset", { className: "db-settings-fieldset", children: [_jsx("legend", { className: "db-settings-legend", children: "Version history" }), _jsxs("p", { className: "db-settings-hint", children: ["When on, DocBlocks keeps prior revisions of each document inside a sibling", ' ', _jsx("code", { children: "<name>_files/.versions/" }), " folder. Individual workspaces can override this default in their own settings."] }), _jsxs("label", { className: "db-settings-radio", children: [_jsx("input", { type: "radio", name: "versioning", value: "on", checked: versioningPreference === 'on', onChange: () => onVersioningPreferenceChange('on') }), "On for all workspaces"] }), _jsxs("label", { className: "db-settings-radio", children: [_jsx("input", { type: "radio", name: "versioning", value: "browser-only", checked: versioningPreference === 'browser-only', onChange: () => onVersioningPreferenceChange('browser-only') }), "On in browser workspaces, off for local folders"] }), _jsxs("label", { className: "db-settings-radio", children: [_jsx("input", { type: "radio", name: "versioning", value: "off", checked: versioningPreference === 'off', onChange: () => onVersioningPreferenceChange('off') }), "Off for all workspaces"] })] }))] })), showAbout && (_jsx("div", { className: "db-dialog-overlay", onClick: () => setShowAbout(false), children: _jsxs("div", { className: "db-dialog", role: "dialog", "aria-label": "About DocBlocks", onClick: (e) => e.stopPropagation(), children: [_jsxs("div", { className: "db-dialog-header", children: [_jsx("h2", { className: "db-dialog-title", children: "About DocBlocks" }), _jsx("button", { className: "db-dialog-close", onClick: () => setShowAbout(false), "aria-label": "Close", children: "\u00D7" })] }), _jsxs("div", { className: "db-dialog-body", children: [_jsxs("p", { children: [_jsx("strong", { children: "DocBlocks" }), " is a markdown document editor that runs entirely in your browser. Your files stay on your device."] }), _jsxs("p", { children: ["Built on", ' ', _jsx("a", { href: "https://github.com/bendyline/squisq", target: "_blank", rel: "noopener noreferrer", children: "squisq" }), ' ', "by", ' ', _jsx("a", { href: "https://bendyline.com", target: "_blank", rel: "noopener noreferrer", children: "Bendyline" }), "."] }), _jsxs("p", { className: "db-dialog-links", children: [_jsx("a", { href: "https://github.com/bendyline/docblocks", target: "_blank", rel: "noopener noreferrer", children: "GitHub" }), _jsx("span", { className: "db-dialog-sep", children: "\u00B7" }), _jsx("a", { href: "https://github.com/bendyline/docblocks/blob/main/LICENSE", target: "_blank", rel: "noopener noreferrer", children: "License (MIT)" }), _jsx("span", { className: "db-dialog-sep", children: "\u00B7" }), _jsx("a", { href: "https://github.com/bendyline/docblocks/blob/main/NOTICE.md", target: "_blank", rel: "noopener noreferrer", children: "\u2665 built on open source" })] })] })] }) }))] }));
|
|
27
66
|
}
|
|
28
67
|
//# sourceMappingURL=AppMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppMenu.js","sourceRoot":"","sources":["../../src/AppMenu/AppMenu.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AppMenu.js","sourceRoot":"","sources":["../../src/AppMenu/AppMenu.tsx"],"names":[],"mappings":"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"}
|
package/dist/AppMenu/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/AppMenu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/AppMenu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* DocBlocksShell
|
|
2
|
+
* DocBlocksShell -- top-level layout component.
|
|
3
3
|
*
|
|
4
4
|
* Composes the left sidebar (WorkspacePicker + FileExplorer) with
|
|
5
5
|
* the center editor area (squisq EditorShell).
|
|
@@ -31,6 +31,19 @@ export interface DocBlocksShellProps {
|
|
|
31
31
|
onSaveVersion?: (result: SaveVersionResult) => void;
|
|
32
32
|
/** Optional escape hatch for hosts that want imperative access to the version manager. */
|
|
33
33
|
versioningRef?: React.Ref<DocumentVersionManager | null>;
|
|
34
|
+
/**
|
|
35
|
+
* True when a new deploy is waiting (browser PWA hosts: a fresh service
|
|
36
|
+
* worker finished installing). The shell shows an "Update available"
|
|
37
|
+
* status-bar notice that opens a Reload/Later prompt.
|
|
38
|
+
*/
|
|
39
|
+
updateAvailable?: boolean;
|
|
40
|
+
/** Activates the waiting update and reloads onto the new version. */
|
|
41
|
+
onApplyUpdate?: () => void;
|
|
42
|
+
/**
|
|
43
|
+
* True once the app has been fully cached for offline use (browser PWA
|
|
44
|
+
* hosts). Shown to the user once as a passive notice.
|
|
45
|
+
*/
|
|
46
|
+
offlineReady?: boolean;
|
|
34
47
|
}
|
|
35
|
-
export declare function DocBlocksShell({ theme: _themeProp, logoUrl, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, versioningRef, }: DocBlocksShellProps): import("react/jsx-runtime").JSX.Element;
|
|
48
|
+
export declare function DocBlocksShell({ theme: _themeProp, logoUrl, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, versioningRef, updateAvailable, onApplyUpdate, offlineReady, }: DocBlocksShellProps): import("react/jsx-runtime").JSX.Element;
|
|
36
49
|
//# sourceMappingURL=DocBlocksShell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocBlocksShell.d.ts","sourceRoot":"","sources":["../../src/DocBlocksShell/DocBlocksShell.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"DocBlocksShell.d.ts","sourceRoot":"","sources":["../../src/DocBlocksShell/DocBlocksShell.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,iBAAiB,EAKlB,MAAM,gCAAgC,CAAC;AACxC,OAAO,uCAAuC,CAAC;AAG/C,OAAO,EACL,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AAyLpC,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC;IACnC,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,qBAAqB,CAAC,EAAE,WAAW,CAAC;IACpC,0FAA0F;IAC1F,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,8EAA8E;IAC9E,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACpD,0FAA0F;IAC1F,aAAa,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IACzD;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAkdD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EAAE,UAAmB,EAC1B,OAAO,EACP,eAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,eAAuB,EACvB,aAAa,EACb,YAAoB,GACrB,EAAE,mBAAmB,2CAmnFrB"}
|