@bendyline/docblocks-react 2.7.0 → 2.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +1 -1
  2. package/THIRD_PARTY_NOTICES.txt +98 -48
  3. package/dist/{AiDiagrams-XWOM3YZX.js → AiDiagrams-LFV4YU6W.js} +2 -2
  4. package/dist/{AiEditorAssistant-M4LI2CRY.js → AiEditorAssistant-GN2KXKZD.js} +21 -6
  5. package/dist/{ExportDialog-L6FG6W3H.js → ExportDialog-JRVZCG3J.js} +2 -2
  6. package/dist/{ExportToolbarControls-BRCPZ7H3.js → ExportToolbarControls-2FEIHNMW.js} +28 -18
  7. package/dist/{GitToolbarControl-J4UYZDV6.js → GitToolbarControl-B7KG4MFP.js} +4 -4
  8. package/dist/{GitUI-LZW3IUXO.js → GitUI-RCWUZVS6.js} +2 -2
  9. package/dist/KeyboardShortcutsDialog-NOD4P25G.js +145 -0
  10. package/dist/{PresentationMaker-622NHMIN.js → PresentationMaker-ITNP5SDO.js} +2 -2
  11. package/dist/{Settings-DuXk6baH.d.ts → Settings-RDYvDDI0.d.ts} +13 -11
  12. package/dist/ShareDialog-XUA2OVGI.js +292 -0
  13. package/dist/{SpeechToolbarControl-UZQKGQWD.js → SpeechToolbarControl-CLU7RB2G.js} +2 -2
  14. package/dist/{TextFromNarration-XYRAB6O2.js → TextFromNarration-NITJQ4IB.js} +1 -1
  15. package/dist/{WorkspaceSearchPanel-OUQQ5DOM.js → WorkspaceSearchPanel-J6BKEZQJ.js} +8 -2
  16. package/dist/{chunk-UG4G7PJ4.js → chunk-5O5YTOXG.js} +1 -1
  17. package/dist/{chunk-VO2JYYQZ.js → chunk-6JJOGV6M.js} +5 -13
  18. package/dist/{chunk-X437UAF7.js → chunk-6MSHXQNB.js} +7 -2
  19. package/dist/{chunk-Q5ZVP5LV.js → chunk-BLUEZG7T.js} +40 -32
  20. package/dist/chunk-DICE7VBJ.js +77 -0
  21. package/dist/{chunk-MRUK56JS.js → chunk-GMA4KGGO.js} +7 -3
  22. package/dist/{chunk-BCQZTWE5.js → chunk-HRWEGPTY.js} +18 -4
  23. package/dist/chunk-K7XJDJUJ.js +126 -0
  24. package/dist/{chunk-5OZBGIIT.js → chunk-NAH52736.js} +86 -28
  25. package/dist/{chunk-YS4HVWIO.js → chunk-SPUPWCSI.js} +49 -1
  26. package/dist/{chunk-MMOTEQK6.js → chunk-SSB43524.js} +165 -70
  27. package/dist/{chunk-G4MFB3IO.js → chunk-VG434562.js} +2 -70
  28. package/dist/{chunk-OINKNX26.js → chunk-X3DDTJKR.js} +1 -1
  29. package/dist/{chunk-SGQKTKDX.js → chunk-Y5OE3HJC.js} +14 -4
  30. package/dist/editor.js +7 -5
  31. package/dist/export/index.d.ts +17 -6
  32. package/dist/export/index.js +4 -4
  33. package/dist/index.d.ts +24 -6
  34. package/dist/index.js +452 -247
  35. package/dist/proofing/index.js +11 -1
  36. package/dist/run-export-CS3HRNAZ.js +13 -0
  37. package/dist/settings/index.d.ts +1 -1
  38. package/dist/settings/index.js +1 -1
  39. package/package.json +9 -8
  40. package/src/styles/docblocks.css +481 -271
  41. package/dist/ShareDialog-N7GPM4SB.js +0 -310
  42. package/dist/chunk-EA4BO6E4.js +0 -73
  43. package/dist/run-export-47X5FTYZ.js +0 -11
@@ -54,13 +54,19 @@ declare const FORMAT_LABELS: Record<ExportFormat, string>;
54
54
  declare const FORMAT_EXTENSIONS: Record<ExportFormat, string>;
55
55
  declare const DEFAULT_OPTIONS: ExportOptions;
56
56
  /**
57
- * Options that populate the export dialog. Layered: built-in defaults → the
58
- * user's last-chosen options → the workspace default theme → the document's
59
- * own theme (wins). "Set a theme, then export" therefore pre-selects that
60
- * theme instead of whatever was picked for an unrelated previous document,
61
- * and documents without a theme export in their folder's default.
57
+ * Options that populate the export dialog: the user's last-chosen options
58
+ * (else the built-in defaults) for format, page size and the rest, but always
59
+ * the theme the editor previews this document in -- its own theme, else the
60
+ * workspace default, else Standard. The last export's theme belonged to some
61
+ * other document; carrying it over made the export differ from the preview.
62
62
  */
63
63
  declare function resolveExportDialogInitial(lastOptions: ExportOptions | null, docThemeId: string | null | undefined, workspaceThemeId?: string | null): ExportOptions;
64
+ /** A theme as the export dialog's Theme select lists it. */
65
+ interface ExportThemeSummary {
66
+ id: string;
67
+ name: string;
68
+ description?: string;
69
+ }
64
70
  declare function loadLastExportOptions(): ExportOptions | null;
65
71
  declare function saveExportOptions(options: ExportOptions): void;
66
72
 
@@ -82,6 +88,11 @@ declare function runExport(markdown: string, selectedFile: string | null, option
82
88
  interface ExportDialogProps {
83
89
  /** Initial options (pre-populated from last export). */
84
90
  initial: ExportOptions;
91
+ /**
92
+ * Themes the document defines in its own frontmatter. Listed ahead of the
93
+ * built-ins so a document using one exports in the theme it previews in.
94
+ */
95
+ documentThemes?: readonly ExportThemeSummary[];
85
96
  /** Whether the export is currently running. */
86
97
  exporting: boolean;
87
98
  /**
@@ -110,7 +121,7 @@ interface ExportDestinationControl {
110
121
  /** A host-supplied validation error for the current destination value. */
111
122
  error?: string | null;
112
123
  }
113
- declare function ExportDialog({ initial, exporting, error, destination, onExport, onOptionsChange, actionLabel, onClose, }: ExportDialogProps): react_jsx_runtime.JSX.Element;
124
+ declare function ExportDialog({ initial, documentThemes, exporting, error, destination, onExport, onOptionsChange, actionLabel, onClose, }: ExportDialogProps): react_jsx_runtime.JSX.Element;
114
125
 
115
126
  /** Keep a user-edited target name while switching the selected export format. */
116
127
  declare function updateExportTargetExtension(targetPath: string, suggestedFilename: string): string;
@@ -3,16 +3,16 @@ import {
3
3
  } from "../chunk-KWG6UP5O.js";
4
4
  import {
5
5
  runExport
6
- } from "../chunk-BCQZTWE5.js";
6
+ } from "../chunk-HRWEGPTY.js";
7
7
  import {
8
8
  createImageSaveOutput
9
9
  } from "../chunk-UONFWKJ7.js";
10
10
  import {
11
11
  buildExportFilename
12
- } from "../chunk-UG4G7PJ4.js";
12
+ } from "../chunk-5O5YTOXG.js";
13
13
  import {
14
14
  ExportDialog
15
- } from "../chunk-SGQKTKDX.js";
15
+ } from "../chunk-Y5OE3HJC.js";
16
16
  import "../chunk-YBEYTVU2.js";
17
17
  import {
18
18
  DEFAULT_OPTIONS,
@@ -21,7 +21,7 @@ import {
21
21
  loadLastExportOptions,
22
22
  resolveExportDialogInitial,
23
23
  saveExportOptions
24
- } from "../chunk-X437UAF7.js";
24
+ } from "../chunk-6MSHXQNB.js";
25
25
  import "../chunk-56KO2LYN.js";
26
26
  export {
27
27
  DEFAULT_OPTIONS,
package/dist/index.d.ts CHANGED
@@ -6,8 +6,8 @@ import { CodeBlockCopyHandler } from '@bendyline/squisq-react';
6
6
  import { FfmpegWasmLoadConfig } from '@bendyline/squisq-video';
7
7
  import { PrunePolicy, SaveVersionResult, DocumentVersionManager } from '@bendyline/squisq/versions';
8
8
  import { DocBlocksHostAiAPI, DocBlocksHostSpeechAPI } from '@bendyline/docblocks/host';
9
- import { T as ThemePreference, A as AccentColor, I as InterfaceFontPreference, q as WriteCanvasPreferences, P as ProofingPreferences } from './Settings-DuXk6baH.js';
10
- export { a as AccentColorSettings, b as AccentColorSettingsProps, c as AiSettingsControls, d as AiSettingsControlsProps, D as DEFAULT_INTERFACE_FONT, e as DEFAULT_PROOFING_PREFERENCES, f as DEFAULT_WRITE_CANVAS_FONT_SCHEME, g as InterfaceFontSettings, h as InterfaceFontSettingsProps, i as ProofingSettingsControls, j as ProofingSettingsControlsProps, S as SettingsDialog, k as SettingsDialogProps, l as ThemeSettings, m as ThemeSettingsProps, W as WRITE_CANVAS_FONT_SCHEMES, n as WriteCanvasFontScheme, o as WriteCanvasFontSchemeGroup, p as WriteCanvasFontSchemeOption, r as WriteCanvasSettingsControls, s as WriteCanvasSettingsControlsProps, t as loadInterfaceFont, u as loadProofingPreferences, v as resolveWriteCanvasFonts, w as saveInterfaceFont, x as saveProofingPreferences } from './Settings-DuXk6baH.js';
9
+ import { T as ThemePreference, A as AccentColor, I as InterfaceFontPreference, q as WriteCanvasPreferences, P as ProofingPreferences } from './Settings-RDYvDDI0.js';
10
+ export { a as AccentColorSettings, b as AccentColorSettingsProps, c as AiSettingsControls, d as AiSettingsControlsProps, D as DEFAULT_INTERFACE_FONT, e as DEFAULT_PROOFING_PREFERENCES, f as DEFAULT_WRITE_CANVAS_FONT_SCHEME, g as InterfaceFontSettings, h as InterfaceFontSettingsProps, i as ProofingSettingsControls, j as ProofingSettingsControlsProps, S as SettingsDialog, k as SettingsDialogProps, l as ThemeSettings, m as ThemeSettingsProps, W as WRITE_CANVAS_FONT_SCHEMES, n as WriteCanvasFontScheme, o as WriteCanvasFontSchemeGroup, p as WriteCanvasFontSchemeOption, r as WriteCanvasSettingsControls, s as WriteCanvasSettingsControlsProps, t as loadInterfaceFont, u as loadProofingPreferences, v as resolveWriteCanvasFonts, w as saveInterfaceFont, x as saveProofingPreferences } from './Settings-RDYvDDI0.js';
11
11
  import { SharedDocumentMode } from '@bendyline/docblocks/share';
12
12
  import { MediaProvider } from '@bendyline/squisq/schemas';
13
13
  import { ContentContainer } from '@bendyline/squisq/storage';
@@ -311,12 +311,20 @@ interface DocBlocksShellProps {
311
311
  theme?: EditorColorScheme | 'auto';
312
312
  /** Optional logo image URL for the app menu. */
313
313
  logoUrl?: string;
314
+ /** The app-menu logo drawn for dark appearances (see AppMenu). */
315
+ logoDarkUrl?: string;
314
316
  /** Version and surface label included in prefilled issue reports, e.g. `1.1.2 web`. */
315
317
  issueReportVersion?: string;
316
318
  /** ISO build date shown in About, e.g. `2026-07-15`. */
317
319
  appBuildDate?: string;
318
320
  /** Self-hosted ffmpeg.wasm core. Supplying it enables Animated GIF export. */
319
321
  ffmpegWasm?: FfmpegWasmLoadConfig;
322
+ /**
323
+ * URL of the self-hosted pdf.js worker (`pdfjs-dist/legacy/build/
324
+ * pdf.worker.min.mjs`, the version Squisq's formats package pins).
325
+ * Importing a PDF fails without it.
326
+ */
327
+ pdfWorkerSrc?: string;
320
328
  /**
321
329
  * Optional spreadsheet calculation backend. DocBlocks surfaces normally
322
330
  * pass the lazy IronCalc factory from the `calculation` package subpath;
@@ -405,7 +413,7 @@ interface DocBlocksShellProps {
405
413
  */
406
414
  offlineReady?: boolean;
407
415
  }
408
- declare function DocBlocksShell({ theme: hostTheme, logoUrl, issueReportVersion, appBuildDate, ffmpegWasm, calcEngineFactory, proofing, proofingDefaultEnabled, proofingIgnoreStore, homeDocumentTitle, homeDocumentPath, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, versioningRef, updateAvailable, onApplyUpdate, statusBarSlotRight, workspaceIndex: workspaceIndexMode, showCodeCopyButton, onCopyCode, allowRecording, allowPresentationWindow, allowPresentationFullscreen, offlineReady, }: DocBlocksShellProps): react_jsx_runtime.JSX.Element;
416
+ declare function DocBlocksShell({ theme: hostTheme, logoUrl, logoDarkUrl, issueReportVersion, appBuildDate, ffmpegWasm, pdfWorkerSrc, calcEngineFactory, proofing, proofingDefaultEnabled, proofingIgnoreStore, homeDocumentTitle, homeDocumentPath, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, versioningRef, updateAvailable, onApplyUpdate, statusBarSlotRight, workspaceIndex: workspaceIndexMode, showCodeCopyButton, onCopyCode, allowRecording, allowPresentationWindow, allowPresentationFullscreen, offlineReady, }: DocBlocksShellProps): react_jsx_runtime.JSX.Element;
409
417
 
410
418
  /**
411
419
  * Versioning preferences — global default + per-workspace resolution.
@@ -428,6 +436,11 @@ type VersioningPreference = 'on' | 'browser-only' | 'off';
428
436
  interface AppMenuProps {
429
437
  /** Optional logo image URL to display instead of the text label. */
430
438
  logoUrl?: string;
439
+ /**
440
+ * The logo drawn for dark appearances. Without it, the light logo is
441
+ * inverted in dark mode, which suits only a flat black-on-transparent mark.
442
+ */
443
+ logoDarkUrl?: string;
431
444
  /** Current theme preference. */
432
445
  themePreference?: ThemePreference;
433
446
  /** Called when the user changes the theme preference. */
@@ -454,10 +467,12 @@ interface AppMenuProps {
454
467
  /** Opens the active workspace's own settings (`.docblocks/workspace.json`). */
455
468
  onOpenWorkspaceSettings?: () => void;
456
469
  /**
457
- * Called when the user clicks "Download all workspaces". When omitted,
470
+ * Called when the user clicks "Back up all workspaces". When omitted,
458
471
  * the menu item is hidden.
459
472
  */
460
473
  onDownloadAllWorkspaces?: () => void | Promise<void>;
474
+ /** Opens the keyboard-shortcut sheet. When omitted, the menu item is hidden. */
475
+ onShowKeyboardShortcuts?: () => void;
461
476
  /**
462
477
  * Called when the user asks the browser to keep origin storage persistent.
463
478
  * When omitted, the menu item is hidden.
@@ -482,7 +497,10 @@ interface AppMenuProps {
482
497
  storagePersistent?: boolean;
483
498
  /** Human-readable version/build and delivery surface shown in About. */
484
499
  appVersion?: string;
485
- /** ISO build date shown in About. */
500
+ /**
501
+ * Build date shown in About: an ISO timestamp, shown as the viewer's local
502
+ * day, or a bare `YYYY-MM-DD`, shown as given.
503
+ */
486
504
  appBuildDate?: string;
487
505
  /**
488
506
  * The host's AI API. When present, Settings offers an AI section; when
@@ -497,7 +515,7 @@ interface AppMenuProps {
497
515
  /** Opens Settings whenever it changes to a new non-zero value. */
498
516
  settingsRequest?: number;
499
517
  }
500
- declare function AppMenu({ logoUrl, themePreference, onThemeChange, accentColor, onAccentColorChange, interfaceFont, onInterfaceFontChange, writeCanvasSettings, onWriteCanvasSettingsChange, proofingPreferences, onProofingPreferencesChange, versioningPreference, onVersioningPreferenceChange, onOpenWorkspaceSettings, onDownloadAllWorkspaces, onKeepBrowserData, onInstallApp, getStorageEstimate, storagePersistent, appVersion, appBuildDate, ai, speech, settingsRequest, }: AppMenuProps): react_jsx_runtime.JSX.Element;
518
+ declare function AppMenu({ logoUrl, logoDarkUrl, themePreference, onThemeChange, accentColor, onAccentColorChange, interfaceFont, onInterfaceFontChange, writeCanvasSettings, onWriteCanvasSettingsChange, proofingPreferences, onProofingPreferencesChange, versioningPreference, onVersioningPreferenceChange, onOpenWorkspaceSettings, onDownloadAllWorkspaces, onShowKeyboardShortcuts, onKeepBrowserData, onInstallApp, getStorageEstimate, storagePersistent, appVersion, appBuildDate, ai, speech, settingsRequest, }: AppMenuProps): react_jsx_runtime.JSX.Element;
501
519
 
502
520
  interface ExportToolbarControlsProps {
503
521
  /** Currently selected file path — used to derive the download filename. */