@bendyline/docblocks-react 1.1.0 → 1.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/dist/AppMenu/AppMenu.d.ts +11 -1
- package/dist/AppMenu/AppMenu.d.ts.map +1 -1
- package/dist/AppMenu/AppMenu.js +2 -2
- package/dist/AppMenu/AppMenu.js.map +1 -1
- package/dist/DocBlocksShell/DocBlocksShell.d.ts +21 -1
- package/dist/DocBlocksShell/DocBlocksShell.d.ts.map +1 -1
- package/dist/DocBlocksShell/DocBlocksShell.js +562 -67
- package/dist/DocBlocksShell/DocBlocksShell.js.map +1 -1
- package/dist/Export/ExportDialog.d.ts.map +1 -1
- package/dist/Export/ExportDialog.js +104 -5
- package/dist/Export/ExportDialog.js.map +1 -1
- package/dist/Export/ExportToolbarControls.d.ts.map +1 -1
- package/dist/Export/ExportToolbarControls.js +44 -3
- package/dist/Export/ExportToolbarControls.js.map +1 -1
- package/dist/Export/export-options.d.ts +35 -0
- package/dist/Export/export-options.d.ts.map +1 -1
- package/dist/Export/export-options.js +6 -1
- package/dist/Export/export-options.js.map +1 -1
- package/dist/Export/run-export.d.ts.map +1 -1
- package/dist/Export/run-export.js +163 -91
- package/dist/Export/run-export.js.map +1 -1
- package/dist/FileExplorer/FileExplorer.d.ts.map +1 -1
- package/dist/FileExplorer/FileExplorer.js +17 -2
- package/dist/FileExplorer/FileExplorer.js.map +1 -1
- package/dist/WorkspacePicker/WorkspaceSettingsButton.d.ts +2 -1
- package/dist/WorkspacePicker/WorkspaceSettingsButton.d.ts.map +1 -1
- package/dist/WorkspacePicker/WorkspaceSettingsButton.js +2 -2
- package/dist/WorkspacePicker/WorkspaceSettingsButton.js.map +1 -1
- package/dist/WorkspacePicker/WorkspaceSettingsDialog.d.ts +20 -0
- package/dist/WorkspacePicker/WorkspaceSettingsDialog.d.ts.map +1 -0
- package/dist/WorkspacePicker/WorkspaceSettingsDialog.js +36 -0
- package/dist/WorkspacePicker/WorkspaceSettingsDialog.js.map +1 -0
- package/dist/hooks/useAutoSave.d.ts +8 -2
- package/dist/hooks/useAutoSave.d.ts.map +1 -1
- package/dist/hooks/useAutoSave.js +65 -30
- package/dist/hooks/useAutoSave.js.map +1 -1
- package/dist/preferences/versioning.d.ts +27 -0
- package/dist/preferences/versioning.d.ts.map +1 -0
- package/dist/preferences/versioning.js +62 -0
- package/dist/preferences/versioning.js.map +1 -0
- package/package.json +10 -8
- package/src/AppMenu/AppMenu.tsx +64 -1
- package/src/DocBlocksShell/DocBlocksShell.tsx +756 -80
- package/src/Export/ExportDialog.tsx +208 -19
- package/src/Export/ExportToolbarControls.tsx +45 -3
- package/src/Export/export-options.ts +43 -1
- package/src/Export/run-export.ts +190 -91
- package/src/FileExplorer/FileExplorer.tsx +31 -9
- package/src/WorkspacePicker/WorkspaceSettingsButton.tsx +9 -0
- package/src/WorkspacePicker/WorkspaceSettingsDialog.tsx +121 -0
- package/src/hooks/useAutoSave.ts +87 -29
- package/src/preferences/versioning.ts +69 -0
- package/src/styles/docblocks.css +920 -53
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AppMenu — top-left dropdown with workspace actions and app links.
|
|
3
3
|
*/
|
|
4
|
+
import type { VersioningPreference } from '../preferences/versioning.js';
|
|
4
5
|
export type ThemePreference = 'auto' | 'light' | 'dark';
|
|
5
6
|
export interface AppMenuProps {
|
|
6
7
|
/** URL for the about page. */
|
|
@@ -11,6 +12,15 @@ export interface AppMenuProps {
|
|
|
11
12
|
themePreference?: ThemePreference;
|
|
12
13
|
/** Called when the user changes the theme preference. */
|
|
13
14
|
onThemeChange?: (theme: ThemePreference) => void;
|
|
15
|
+
/** Current global versioning preference. */
|
|
16
|
+
versioningPreference?: VersioningPreference;
|
|
17
|
+
/** Called when the user changes the global versioning preference. */
|
|
18
|
+
onVersioningPreferenceChange?: (pref: VersioningPreference) => void;
|
|
19
|
+
/**
|
|
20
|
+
* Called when the user clicks "Download all workspaces". When omitted,
|
|
21
|
+
* the menu item is hidden.
|
|
22
|
+
*/
|
|
23
|
+
onDownloadAllWorkspaces?: () => void | Promise<void>;
|
|
14
24
|
}
|
|
15
|
-
export declare function AppMenu({ aboutUrl: _aboutUrl, logoUrl, themePreference, onThemeChange, }: AppMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export declare function AppMenu({ aboutUrl: _aboutUrl, logoUrl, themePreference, onThemeChange, versioningPreference, onVersioningPreferenceChange, onDownloadAllWorkspaces, }: AppMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
16
26
|
//# sourceMappingURL=AppMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppMenu.d.ts","sourceRoot":"","sources":["../../src/AppMenu/AppMenu.tsx"],"names":[],"mappings":"AAAA;;GAEG;
|
|
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;AAEzE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAExD,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,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;CACtD;AAED,wBAAgB,OAAO,CAAC,EACtB,QAAQ,EAAE,SAAoB,EAC9B,OAAO,EACP,eAAwB,EACxB,aAAa,EACb,oBAAqC,EACrC,4BAA4B,EAC5B,uBAAuB,GACxB,EAAE,YAAY,2CAkOd"}
|
package/dist/AppMenu/AppMenu.js
CHANGED
|
@@ -3,7 +3,7 @@ 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
|
-
export function AppMenu({ aboutUrl: _aboutUrl = '#about', logoUrl, themePreference = 'auto', onThemeChange, }) {
|
|
6
|
+
export function AppMenu({ aboutUrl: _aboutUrl = '#about', logoUrl, themePreference = 'auto', onThemeChange, versioningPreference = 'browser-only', onVersioningPreferenceChange, onDownloadAllWorkspaces, }) {
|
|
7
7
|
const [isOpen, setIsOpen] = useState(false);
|
|
8
8
|
const [showAbout, setShowAbout] = useState(false);
|
|
9
9
|
const [showSettings, setShowSettings] = useState(false);
|
|
@@ -23,6 +23,6 @@ export function AppMenu({ aboutUrl: _aboutUrl = '#about', logoUrl, themePreferen
|
|
|
23
23
|
setIsOpen(false);
|
|
24
24
|
action();
|
|
25
25
|
}, []);
|
|
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' : ''}`, children: '\u25BE' })] }), 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" }), _jsx("div", { className: "db-app-menu-divider" }), _jsx("button", { className: "db-app-menu-item", role: "menuitem", onClick: () => handleAction(() => setShowAbout(true)), children: "About" })] }))] }), showSettings && (_jsx("div", { className: "db-dialog-overlay", onClick: () => setShowSettings(false), children: _jsxs("div", { className: "db-dialog", role: "dialog", "aria-label": "Settings", onClick: (e) => e.stopPropagation(), children: [_jsxs("div", { className: "db-dialog-header", children: [_jsx("h2", { className: "db-dialog-title", children: "Settings" }), _jsx("button", { className: "db-dialog-close", onClick: () => setShowSettings(false), "aria-label": "Close", children: "\u00D7" })] }),
|
|
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' : ''}`, children: '\u25BE' })] }), 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" }), 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 && (_jsx("div", { className: "db-dialog-overlay", onClick: () => setShowSettings(false), children: _jsxs("div", { className: "db-dialog", role: "dialog", "aria-label": "Settings", onClick: (e) => e.stopPropagation(), children: [_jsxs("div", { className: "db-dialog-header", children: [_jsx("h2", { className: "db-dialog-title", children: "Settings" }), _jsx("button", { className: "db-dialog-close", onClick: () => setShowSettings(false), "aria-label": "Close", children: "\u00D7" })] }), _jsxs("div", { className: "db-dialog-body", children: [_jsxs("fieldset", { className: "db-settings-fieldset", children: [_jsx("legend", { className: "db-settings-legend", children: "Theme" }), _jsxs("label", { className: "db-settings-radio", children: [_jsx("input", { type: "radio", name: "theme", value: "auto", checked: themePreference === 'auto', onChange: () => onThemeChange?.('auto') }), "System default"] }), _jsxs("label", { className: "db-settings-radio", children: [_jsx("input", { type: "radio", name: "theme", value: "light", checked: themePreference === 'light', onChange: () => onThemeChange?.('light') }), "Light"] }), _jsxs("label", { className: "db-settings-radio", children: [_jsx("input", { type: "radio", name: "theme", value: "dark", checked: themePreference === 'dark', onChange: () => onThemeChange?.('dark') }), "Dark"] })] }), 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 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)" })] })] })] }) }))] }));
|
|
27
27
|
}
|
|
28
28
|
//# 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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"}
|
|
@@ -6,11 +6,31 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { EditorTheme } from '@bendyline/squisq-editor-react';
|
|
8
8
|
import '@bendyline/squisq-editor-react/styles';
|
|
9
|
+
import { DocumentVersionManager, type PrunePolicy, type SaveVersionResult } from '@bendyline/squisq/versions';
|
|
9
10
|
export interface DocBlocksShellProps {
|
|
10
11
|
/** Optional theme override. Omit or pass 'auto' to follow OS preference. */
|
|
11
12
|
theme?: EditorTheme | 'auto';
|
|
12
13
|
/** Optional logo image URL for the app menu. */
|
|
13
14
|
logoUrl?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Enable document version history. Snapshots are written under
|
|
17
|
+
* `<basename>_files/.versions/` next to each markdown file (i.e., the
|
|
18
|
+
* per-document container). Defaults to `true`.
|
|
19
|
+
*/
|
|
20
|
+
allowVersioning?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Override the document basename used in version filenames. Defaults
|
|
23
|
+
* to the basename of the currently selected file.
|
|
24
|
+
*/
|
|
25
|
+
versionBasename?: string;
|
|
26
|
+
/** Prune policy applied after each successful save. Default: keep last 50. */
|
|
27
|
+
versioningPrunePolicy?: PrunePolicy;
|
|
28
|
+
/** Idle delay (ms) before the editor auto-saves a version. `0` disables. Default 5000. */
|
|
29
|
+
versioningAutoSaveIdleMs?: number;
|
|
30
|
+
/** Notified after each `saveVersion` attempt (saved=true and saved=false). */
|
|
31
|
+
onSaveVersion?: (result: SaveVersionResult) => void;
|
|
32
|
+
/** Optional escape hatch for hosts that want imperative access to the version manager. */
|
|
33
|
+
versioningRef?: React.Ref<DocumentVersionManager | null>;
|
|
14
34
|
}
|
|
15
|
-
export declare function DocBlocksShell({ theme: _themeProp, logoUrl }: DocBlocksShellProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export declare function DocBlocksShell({ theme: _themeProp, logoUrl, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, versioningRef, }: DocBlocksShellProps): import("react/jsx-runtime").JSX.Element;
|
|
16
36
|
//# sourceMappingURL=DocBlocksShell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocBlocksShell.d.ts","sourceRoot":"","sources":["../../src/DocBlocksShell/DocBlocksShell.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"DocBlocksShell.d.ts","sourceRoot":"","sources":["../../src/DocBlocksShell/DocBlocksShell.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,WAAW,EAKZ,MAAM,gCAAgC,CAAC;AACxC,OAAO,uCAAuC,CAAC;AAG/C,OAAO,EACL,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AAuCpC,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC7B,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;CAC1D;AAuSD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EAAE,UAAmB,EAC1B,OAAO,EACP,eAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACb,aAAa,GACd,EAAE,mBAAmB,2CA4zCrB"}
|