@bendyline/docblocks-react 2.6.2 → 2.7.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 +3 -10
- package/THIRD_PARTY_NOTICES.txt +4284 -3651
- package/dist/AiDiagrams-LFV4YU6W.js +13 -0
- package/dist/AiEditorAssistant-GN2KXKZD.js +786 -0
- package/dist/AudioExportDialog-F23QXNPB.js +253 -0
- package/dist/DocumentConflictDialog-5LRVIGXS.js +111 -0
- package/dist/ExportDialog-IMBVGRYG.js +9 -0
- package/dist/{ExportToolbarControls-QYLBRWM7.js → ExportToolbarControls-MUM6HM3K.js} +117 -49
- package/dist/{GitToolbarControl-O5AXBC6T.js → GitToolbarControl-B7KG4MFP.js} +6 -6
- package/dist/{GitUI-L5T3XHZG.js → GitUI-RCWUZVS6.js} +6 -6
- package/dist/PresentationMaker-W2JIBHRN.js +9 -0
- package/dist/QuickOpenDialog-2KK4SEBU.js +356 -0
- package/dist/Settings-DuXk6baH.d.ts +144 -0
- package/dist/ShareDialog-XUA2OVGI.js +292 -0
- package/dist/SpeechToolbarControl-OSQS7NVY.js +434 -0
- package/dist/TextFromNarration-XYRAB6O2.js +598 -0
- package/dist/WorkspaceSearchPanel-BKZJRPMY.js +334 -0
- package/dist/chunk-2IYBBFQX.js +201 -0
- package/dist/{chunk-LG6HAWCK.js → chunk-56KO2LYN.js} +35 -4
- package/dist/chunk-6B7G33D5.js +88 -0
- package/dist/chunk-ARATARVJ.js +40 -0
- package/dist/{chunk-ODYNOPC3.js → chunk-BCQZTWE5.js} +57 -17
- package/dist/{chunk-FMDLZ4ZG.js → chunk-BD54Z5XP.js} +12 -3
- package/dist/chunk-EA4BO6E4.js +73 -0
- package/dist/chunk-EPOLZNFD.js +518 -0
- package/dist/chunk-G4MFB3IO.js +208 -0
- package/dist/{chunk-MRUK56JS.js → chunk-GMA4KGGO.js} +7 -3
- package/dist/chunk-I44HKDQX.js +314 -0
- package/dist/chunk-K4I3NJFL.js +49 -0
- package/dist/chunk-KBDZDFPU.js +61 -0
- package/dist/{chunk-FNSRCCBC.js → chunk-KWG6UP5O.js} +0 -10
- package/dist/chunk-NAH52736.js +1884 -0
- package/dist/chunk-RP3DVNTI.js +62 -0
- package/dist/chunk-SPUPWCSI.js +111 -0
- package/dist/chunk-TBLZBNQF.js +25 -0
- package/dist/{chunk-M5Y5WO7Z.js → chunk-UG4G7PJ4.js} +1 -1
- package/dist/chunk-UONFWKJ7.js +22 -0
- package/dist/chunk-VO2JYYQZ.js +40 -0
- package/dist/chunk-W55E6TE2.js +1714 -0
- package/dist/chunk-X3DDTJKR.js +574 -0
- package/dist/{chunk-EBWYGTN7.js → chunk-X437UAF7.js} +6 -0
- package/dist/editor.d.ts +36 -1
- package/dist/editor.js +16 -1
- package/dist/export/index.d.ts +27 -11
- package/dist/export/index.js +11 -7
- package/dist/index.d.ts +100 -13
- package/dist/index.js +3927 -1638
- package/dist/proofing/index.js +11 -1
- package/dist/{run-export-I2XOVGG4.js → run-export-47X5FTYZ.js} +3 -3
- package/dist/settings/index.d.ts +32 -101
- package/dist/settings/index.js +14 -2
- package/package.json +9 -9
- package/src/styles/docblocks.css +2344 -657
- package/dist/ExportDialog-Q4VWI43H.js +0 -9
- package/dist/ShareDialog-4OX3UPJ4.js +0 -359
- package/dist/chunk-JDJVRDOP.js +0 -92
- package/dist/chunk-Q6XNIKDG.js +0 -669
|
@@ -1,25 +1,32 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildVideoExportDoc
|
|
3
|
+
} from "./chunk-RP3DVNTI.js";
|
|
1
4
|
import {
|
|
2
5
|
browserSaveMode,
|
|
3
6
|
saveActionLabel
|
|
4
7
|
} from "./chunk-UMEDHMT7.js";
|
|
5
8
|
import {
|
|
6
9
|
useMenuKeyboard
|
|
7
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-GMA4KGGO.js";
|
|
11
|
+
import {
|
|
12
|
+
createImageSaveOutput,
|
|
13
|
+
hostErrorDetail
|
|
14
|
+
} from "./chunk-UONFWKJ7.js";
|
|
8
15
|
import {
|
|
9
16
|
buildExportFilename
|
|
10
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-UG4G7PJ4.js";
|
|
11
18
|
import {
|
|
12
19
|
loadTransformStyleSummaries
|
|
13
20
|
} from "./chunk-YBEYTVU2.js";
|
|
14
21
|
import {
|
|
15
|
-
DEFAULT_OPTIONS,
|
|
16
22
|
FORMAT_EXTENSIONS,
|
|
17
23
|
loadLastExportOptions,
|
|
24
|
+
resolveExportDialogInitial,
|
|
18
25
|
saveExportOptions
|
|
19
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-X437UAF7.js";
|
|
20
27
|
import {
|
|
21
28
|
Dialog
|
|
22
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-56KO2LYN.js";
|
|
23
30
|
|
|
24
31
|
// src/Export/ExportToolbarControls.tsx
|
|
25
32
|
import {
|
|
@@ -32,22 +39,27 @@ import {
|
|
|
32
39
|
useMemo
|
|
33
40
|
} from "react";
|
|
34
41
|
import { useEditorContext, usePreviewSettings } from "@bendyline/squisq-editor-react";
|
|
42
|
+
import { readFrontmatterThemeId } from "@bendyline/squisq/markdown";
|
|
35
43
|
import { getThemeSummaries } from "@bendyline/squisq/schemas";
|
|
36
|
-
import { parseMarkdown } from "@bendyline/squisq/markdown";
|
|
37
44
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
38
45
|
var ExportDialog = lazy(
|
|
39
|
-
() => import("./ExportDialog-
|
|
46
|
+
() => import("./ExportDialog-IMBVGRYG.js").then((module) => ({ default: module.ExportDialog }))
|
|
40
47
|
);
|
|
41
48
|
var ShareDialog = lazy(
|
|
42
|
-
() => import("./ShareDialog-
|
|
49
|
+
() => import("./ShareDialog-XUA2OVGI.js").then((module) => ({ default: module.ShareDialog }))
|
|
43
50
|
);
|
|
44
51
|
var runExportModulePromise = null;
|
|
45
52
|
function loadRunExportModule() {
|
|
46
|
-
runExportModulePromise ?? (runExportModulePromise = import("./run-export-
|
|
53
|
+
runExportModulePromise ?? (runExportModulePromise = import("./run-export-47X5FTYZ.js"));
|
|
47
54
|
return runExportModulePromise;
|
|
48
55
|
}
|
|
49
56
|
var ExportCancelledError = class extends Error {
|
|
50
57
|
};
|
|
58
|
+
var AudioExportDialog = lazy(
|
|
59
|
+
() => import("./AudioExportDialog-F23QXNPB.js").then((module) => ({
|
|
60
|
+
default: module.AudioExportDialog
|
|
61
|
+
}))
|
|
62
|
+
);
|
|
51
63
|
var SHARED_USE_MODES = Object.freeze({
|
|
52
64
|
slideshow: "slideshow",
|
|
53
65
|
video: "video",
|
|
@@ -70,19 +82,16 @@ function SharedModeInitializer({ mode }) {
|
|
|
70
82
|
var videoExportModulesPromise = null;
|
|
71
83
|
function loadVideoExportModules() {
|
|
72
84
|
videoExportModulesPromise ?? (videoExportModulesPromise = Promise.all([
|
|
73
|
-
import("@bendyline/squisq/doc"),
|
|
74
85
|
import("@bendyline/squisq-video-react"),
|
|
75
86
|
import("@bendyline/squisq-react/standalone-source")
|
|
76
|
-
]).then(([
|
|
87
|
+
]).then(([videoModule, playerModule]) => ({
|
|
77
88
|
Modal: videoModule.VideoExportModal,
|
|
78
|
-
markdownToDoc: docModule.markdownToDoc,
|
|
79
|
-
resolveAudioMapping: docModule.resolveAudioMapping,
|
|
80
89
|
playerScript: playerModule.PLAYER_BUNDLE
|
|
81
90
|
})));
|
|
82
91
|
return videoExportModulesPromise;
|
|
83
92
|
}
|
|
84
93
|
function exportErrorMessage(caught) {
|
|
85
|
-
const detail = caught
|
|
94
|
+
const detail = hostErrorDetail(caught);
|
|
86
95
|
return detail ? `Export failed: ${detail}` : "Export failed. The document could not be exported.";
|
|
87
96
|
}
|
|
88
97
|
function quickLabel(opts, transformSummaries, saveMode, destinationPath) {
|
|
@@ -118,6 +127,7 @@ function ExportToolbarControls({
|
|
|
118
127
|
mediaContainer,
|
|
119
128
|
workspaceContainer,
|
|
120
129
|
mediaProvider,
|
|
130
|
+
mediaEditRenders = null,
|
|
121
131
|
saveBlob,
|
|
122
132
|
destinationAdapter,
|
|
123
133
|
trigger = "menu",
|
|
@@ -126,13 +136,17 @@ function ExportToolbarControls({
|
|
|
126
136
|
colorScheme = "light",
|
|
127
137
|
videoExportPalette,
|
|
128
138
|
shareBaseUrl,
|
|
129
|
-
initialSharedMode = null
|
|
139
|
+
initialSharedMode = null,
|
|
140
|
+
speech,
|
|
141
|
+
defaultThemeId
|
|
130
142
|
}) {
|
|
131
143
|
const { markdownSource, markdownDoc } = useEditorContext();
|
|
132
144
|
const [menuOpen, setMenuOpen] = useState(false);
|
|
133
145
|
const [dialogOpen, setDialogOpen] = useState(false);
|
|
146
|
+
const [fileShare, setFileShare] = useState(false);
|
|
134
147
|
const [shareDialogOpen, setShareDialogOpen] = useState(false);
|
|
135
148
|
const [videoModalOpen, setVideoModalOpen] = useState(false);
|
|
149
|
+
const [audioDialogOpen, setAudioDialogOpen] = useState(false);
|
|
136
150
|
const [videoOutputFormat, setVideoOutputFormat] = useState("mp4");
|
|
137
151
|
const [videoLoading, setVideoLoading] = useState(false);
|
|
138
152
|
const [videoLoadError, setVideoLoadError] = useState(null);
|
|
@@ -150,19 +164,14 @@ function ExportToolbarControls({
|
|
|
150
164
|
const lastOptions = loadLastExportOptions();
|
|
151
165
|
const quickDestinationKey = lastOptions ? JSON.stringify([selectedFile, lastOptions]) : null;
|
|
152
166
|
const quickDestinationTarget = quickDestination?.key === quickDestinationKey ? quickDestination.target : null;
|
|
153
|
-
const docThemeId = useMemo(
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}, [markdownDoc]);
|
|
162
|
-
const dialogInitial = useMemo(() => {
|
|
163
|
-
const base = lastOptions ?? DEFAULT_OPTIONS;
|
|
164
|
-
return docThemeId ? { ...base, themeId: docThemeId } : base;
|
|
165
|
-
}, [lastOptions, docThemeId]);
|
|
167
|
+
const docThemeId = useMemo(
|
|
168
|
+
() => readFrontmatterThemeId(markdownDoc?.frontmatter),
|
|
169
|
+
[markdownDoc]
|
|
170
|
+
);
|
|
171
|
+
const dialogInitial = useMemo(
|
|
172
|
+
() => resolveExportDialogInitial(lastOptions, docThemeId, defaultThemeId),
|
|
173
|
+
[lastOptions, docThemeId, defaultThemeId]
|
|
174
|
+
);
|
|
166
175
|
useEffect(() => {
|
|
167
176
|
if (!menuOpen) return;
|
|
168
177
|
const onPointerDown = (e) => {
|
|
@@ -233,25 +242,26 @@ function ExportToolbarControls({
|
|
|
233
242
|
[destinationAdapter, selectedFile]
|
|
234
243
|
);
|
|
235
244
|
const handleOpenDialog = useCallback(() => {
|
|
236
|
-
|
|
245
|
+
setFileShare(false);
|
|
246
|
+
closeMenu(true);
|
|
237
247
|
setExportError(null);
|
|
238
248
|
setDialogOpen(true);
|
|
239
249
|
void refreshDestination(dialogInitial);
|
|
240
|
-
}, [dialogInitial, refreshDestination]);
|
|
250
|
+
}, [closeMenu, dialogInitial, refreshDestination]);
|
|
241
251
|
const handleCloseDialog = useCallback(() => {
|
|
242
252
|
setDialogOpen(false);
|
|
243
253
|
setExportError(null);
|
|
244
254
|
}, []);
|
|
245
255
|
const handleOpenShareDialog = useCallback(() => {
|
|
246
|
-
|
|
256
|
+
closeMenu(true);
|
|
247
257
|
setShareDialogOpen(true);
|
|
248
|
-
}, []);
|
|
258
|
+
}, [closeMenu]);
|
|
249
259
|
const handleCloseShareDialog = useCallback(() => {
|
|
250
260
|
setShareDialogOpen(false);
|
|
251
261
|
}, []);
|
|
252
262
|
const handleOpenVideoModal = useCallback(
|
|
253
263
|
async (outputFormat) => {
|
|
254
|
-
|
|
264
|
+
closeMenu(true);
|
|
255
265
|
setVideoOutputFormat(outputFormat);
|
|
256
266
|
setVideoModalOpen(true);
|
|
257
267
|
setVideoLoadError(null);
|
|
@@ -264,10 +274,12 @@ function ExportToolbarControls({
|
|
|
264
274
|
}
|
|
265
275
|
setVideoLoading(true);
|
|
266
276
|
try {
|
|
267
|
-
const modules =
|
|
277
|
+
const [modules, exportDoc] = await Promise.all([
|
|
278
|
+
videoModules ?? loadVideoExportModules(),
|
|
279
|
+
// The same projection the Video preview plays, so the MP4 matches it.
|
|
280
|
+
buildVideoExportDoc(markdownSource, { fileName: selectedFile, workspaceContainer })
|
|
281
|
+
]);
|
|
268
282
|
setVideoModules(modules);
|
|
269
|
-
const parsedDoc = modules.markdownToDoc(parseMarkdown(markdownSource));
|
|
270
|
-
const exportDoc = workspaceContainer ? await modules.resolveAudioMapping(parsedDoc, workspaceContainer) : parsedDoc;
|
|
271
283
|
setVideoDoc(exportDoc);
|
|
272
284
|
} catch {
|
|
273
285
|
setVideoLoadError("Video export could not be loaded.");
|
|
@@ -275,7 +287,7 @@ function ExportToolbarControls({
|
|
|
275
287
|
setVideoLoading(false);
|
|
276
288
|
}
|
|
277
289
|
},
|
|
278
|
-
[markdownSource, videoModules, workspaceContainer]
|
|
290
|
+
[closeMenu, markdownSource, selectedFile, videoModules, workspaceContainer]
|
|
279
291
|
);
|
|
280
292
|
const handleCloseVideoModal = useCallback(() => {
|
|
281
293
|
setVideoModalOpen(false);
|
|
@@ -317,7 +329,7 @@ function ExportToolbarControls({
|
|
|
317
329
|
setExportError(null);
|
|
318
330
|
try {
|
|
319
331
|
let exportTarget = destinationTarget;
|
|
320
|
-
if (destinationAdapter?.pickBeforeSave) {
|
|
332
|
+
if (!fileShare && destinationAdapter?.pickBeforeSave) {
|
|
321
333
|
const filename = buildExportFilename(selectedFile, opts);
|
|
322
334
|
exportTarget = await destinationAdapter.pickTarget(filename, destinationTarget);
|
|
323
335
|
if (!exportTarget) return;
|
|
@@ -329,7 +341,10 @@ function ExportToolbarControls({
|
|
|
329
341
|
selectedFile,
|
|
330
342
|
opts,
|
|
331
343
|
mediaContainer,
|
|
332
|
-
destinationAdapter ? (blob, filename) =>
|
|
344
|
+
fileShare && destinationAdapter?.shareBlob ? async (blob, filename) => {
|
|
345
|
+
const outcome = await destinationAdapter.shareBlob(blob, filename);
|
|
346
|
+
if (outcome === "cancelled") throw new ExportCancelledError();
|
|
347
|
+
} : destinationAdapter ? (blob, filename) => saveToDestination(blob, filename, exportTarget) : saveBlob
|
|
333
348
|
);
|
|
334
349
|
setDialogOpen(false);
|
|
335
350
|
} catch (caught) {
|
|
@@ -339,6 +354,7 @@ function ExportToolbarControls({
|
|
|
339
354
|
}
|
|
340
355
|
},
|
|
341
356
|
[
|
|
357
|
+
fileShare,
|
|
342
358
|
markdownSource,
|
|
343
359
|
selectedFile,
|
|
344
360
|
mediaContainer,
|
|
@@ -350,7 +366,7 @@ function ExportToolbarControls({
|
|
|
350
366
|
);
|
|
351
367
|
const handleQuickExport = useCallback(async () => {
|
|
352
368
|
if (!lastOptions) return;
|
|
353
|
-
|
|
369
|
+
closeMenu(true);
|
|
354
370
|
setExporting(true);
|
|
355
371
|
setExportError(null);
|
|
356
372
|
try {
|
|
@@ -380,6 +396,7 @@ function ExportToolbarControls({
|
|
|
380
396
|
setExporting(false);
|
|
381
397
|
}
|
|
382
398
|
}, [
|
|
399
|
+
closeMenu,
|
|
383
400
|
destinationAdapter,
|
|
384
401
|
lastOptions,
|
|
385
402
|
markdownSource,
|
|
@@ -392,13 +409,8 @@ function ExportToolbarControls({
|
|
|
392
409
|
const handleDismissExportError = useCallback(() => {
|
|
393
410
|
setExportError(null);
|
|
394
411
|
}, []);
|
|
395
|
-
const
|
|
396
|
-
|
|
397
|
-
if (!destinationAdapter) return false;
|
|
398
|
-
const target = await destinationAdapter.pickTarget(filename, null);
|
|
399
|
-
if (!target) return false;
|
|
400
|
-
return await destinationAdapter.saveBlob(blob, filename, target) !== null;
|
|
401
|
-
},
|
|
412
|
+
const videoSaveOutput = useMemo(
|
|
413
|
+
() => destinationAdapter ? createImageSaveOutput(destinationAdapter) : void 0,
|
|
402
414
|
[destinationAdapter]
|
|
403
415
|
);
|
|
404
416
|
const LoadedVideoExportModal = videoModules?.Modal;
|
|
@@ -409,6 +421,7 @@ function ExportToolbarControls({
|
|
|
409
421
|
trigger === "button" ? /* @__PURE__ */ jsx(
|
|
410
422
|
"button",
|
|
411
423
|
{
|
|
424
|
+
ref: triggerRef,
|
|
412
425
|
type: "button",
|
|
413
426
|
className: "squisq-toolbar-button db-toolbar-export-trigger",
|
|
414
427
|
onClick: handleOpenDialog,
|
|
@@ -478,6 +491,22 @@ function ExportToolbarControls({
|
|
|
478
491
|
children: "Export document..."
|
|
479
492
|
}
|
|
480
493
|
),
|
|
494
|
+
destinationAdapter?.shareBlob && /* @__PURE__ */ jsx(
|
|
495
|
+
"button",
|
|
496
|
+
{
|
|
497
|
+
type: "button",
|
|
498
|
+
role: "menuitem",
|
|
499
|
+
tabIndex: -1,
|
|
500
|
+
className: "db-toolbar-menu-item",
|
|
501
|
+
onClick: () => {
|
|
502
|
+
setFileShare(true);
|
|
503
|
+
closeMenu(true);
|
|
504
|
+
setExportError(null);
|
|
505
|
+
setDialogOpen(true);
|
|
506
|
+
},
|
|
507
|
+
children: "Share file..."
|
|
508
|
+
}
|
|
509
|
+
),
|
|
481
510
|
/* @__PURE__ */ jsx(
|
|
482
511
|
"button",
|
|
483
512
|
{
|
|
@@ -502,6 +531,20 @@ function ExportToolbarControls({
|
|
|
502
531
|
children: "Export video..."
|
|
503
532
|
}
|
|
504
533
|
),
|
|
534
|
+
speech && /* @__PURE__ */ jsx(
|
|
535
|
+
"button",
|
|
536
|
+
{
|
|
537
|
+
type: "button",
|
|
538
|
+
role: "menuitem",
|
|
539
|
+
tabIndex: -1,
|
|
540
|
+
className: "db-toolbar-menu-item",
|
|
541
|
+
onClick: () => {
|
|
542
|
+
closeMenu(true);
|
|
543
|
+
setAudioDialogOpen(true);
|
|
544
|
+
},
|
|
545
|
+
children: "Export audio..."
|
|
546
|
+
}
|
|
547
|
+
),
|
|
505
548
|
showAnimatedGifExport && /* @__PURE__ */ jsx(
|
|
506
549
|
"button",
|
|
507
550
|
{
|
|
@@ -518,6 +561,29 @@ function ExportToolbarControls({
|
|
|
518
561
|
}
|
|
519
562
|
)
|
|
520
563
|
] }),
|
|
564
|
+
audioDialogOpen && /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(
|
|
565
|
+
AudioExportDialog,
|
|
566
|
+
{
|
|
567
|
+
speech,
|
|
568
|
+
selectedFile,
|
|
569
|
+
workspaceContainer: workspaceContainer ?? null,
|
|
570
|
+
onSave: async (blob, filename) => {
|
|
571
|
+
try {
|
|
572
|
+
if (destinationAdapter) {
|
|
573
|
+
const target = await destinationAdapter.resolveTarget(filename).catch(() => null);
|
|
574
|
+
await saveToDestination(blob, filename, target);
|
|
575
|
+
} else if (saveBlob) {
|
|
576
|
+
await saveBlob(blob, filename);
|
|
577
|
+
}
|
|
578
|
+
return true;
|
|
579
|
+
} catch (caught) {
|
|
580
|
+
if (caught instanceof ExportCancelledError) return false;
|
|
581
|
+
throw caught;
|
|
582
|
+
}
|
|
583
|
+
},
|
|
584
|
+
onClose: () => setAudioDialogOpen(false)
|
|
585
|
+
}
|
|
586
|
+
) }),
|
|
521
587
|
dialogOpen && /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(
|
|
522
588
|
ExportDialog,
|
|
523
589
|
{
|
|
@@ -533,6 +599,7 @@ function ExportToolbarControls({
|
|
|
533
599
|
onOptionsChange: destinationAdapter ? handleOptionsChange : void 0,
|
|
534
600
|
actionLabel: (options) => {
|
|
535
601
|
const extension = options.format === "html" && (options.includeLinkedDocs || options.htmlBundle === "zip") ? "ZIP" : FORMAT_EXTENSIONS[options.format].slice(1);
|
|
602
|
+
if (fileShare) return `Share ${extension.toUpperCase()}`;
|
|
536
603
|
if (destinationAdapter && !destinationAdapter.pickBeforeSave) {
|
|
537
604
|
return `Save ${extension.toUpperCase()}`;
|
|
538
605
|
}
|
|
@@ -584,6 +651,7 @@ function ExportToolbarControls({
|
|
|
584
651
|
doc: videoDoc,
|
|
585
652
|
playerScript: videoModules.playerScript,
|
|
586
653
|
...mediaProvider ? { mediaProvider } : {},
|
|
654
|
+
mediaEditRenders,
|
|
587
655
|
colorScheme,
|
|
588
656
|
uiPalette: videoExportPalette,
|
|
589
657
|
defaultConfig: {
|
|
@@ -591,8 +659,8 @@ function ExportToolbarControls({
|
|
|
591
659
|
...ffmpegWasm ? { ffmpegWasm } : {},
|
|
592
660
|
outputFormat: videoOutputFormat
|
|
593
661
|
},
|
|
594
|
-
...
|
|
595
|
-
saveOutput:
|
|
662
|
+
...videoSaveOutput ? {
|
|
663
|
+
saveOutput: videoSaveOutput,
|
|
596
664
|
saveActionLabel: (format) => saveActionLabel(format, "save-as")
|
|
597
665
|
} : {},
|
|
598
666
|
onClose: handleCloseVideoModal
|
|
@@ -2,12 +2,12 @@ import "./chunk-APC4KI4B.js";
|
|
|
2
2
|
import {
|
|
3
3
|
isFileDirty
|
|
4
4
|
} from "./chunk-V2ENBGUA.js";
|
|
5
|
-
import {
|
|
6
|
-
useMenuKeyboard
|
|
7
|
-
} from "./chunk-MRUK56JS.js";
|
|
8
5
|
import {
|
|
9
6
|
useGitContext
|
|
10
7
|
} from "./chunk-6E635KCJ.js";
|
|
8
|
+
import {
|
|
9
|
+
useMenuKeyboard
|
|
10
|
+
} from "./chunk-GMA4KGGO.js";
|
|
11
11
|
|
|
12
12
|
// src/Git/GitToolbarControl.tsx
|
|
13
13
|
import { useEffect, useRef, useState } from "react";
|
|
@@ -31,15 +31,15 @@ function GitToolbarControl({ selectedFile }) {
|
|
|
31
31
|
const dirty = isFileDirty(git.status, selectedFile);
|
|
32
32
|
const label = dirty ? "Git actions (file modified)" : "Git actions";
|
|
33
33
|
const openDiff = () => {
|
|
34
|
-
closeMenu(
|
|
34
|
+
closeMenu(true);
|
|
35
35
|
git.openDialog({ kind: "diff", path: selectedFile });
|
|
36
36
|
};
|
|
37
37
|
const openHistory = () => {
|
|
38
|
-
closeMenu(
|
|
38
|
+
closeMenu(true);
|
|
39
39
|
git.openDialog({ kind: "history", path: selectedFile });
|
|
40
40
|
};
|
|
41
41
|
const openOnRemote = () => {
|
|
42
|
-
closeMenu(
|
|
42
|
+
closeMenu(true);
|
|
43
43
|
git.openOnRemote(selectedFile);
|
|
44
44
|
};
|
|
45
45
|
return /* @__PURE__ */ jsxs("div", { className: "db-toolbar-menu", ref: rootRef, children: [
|
|
@@ -6,15 +6,15 @@ import {
|
|
|
6
6
|
formatAheadBehind,
|
|
7
7
|
summarizeDirty
|
|
8
8
|
} from "./chunk-V2ENBGUA.js";
|
|
9
|
-
import {
|
|
10
|
-
useMenuKeyboard
|
|
11
|
-
} from "./chunk-MRUK56JS.js";
|
|
12
9
|
import {
|
|
13
10
|
useGitContext
|
|
14
11
|
} from "./chunk-6E635KCJ.js";
|
|
12
|
+
import {
|
|
13
|
+
useMenuKeyboard
|
|
14
|
+
} from "./chunk-GMA4KGGO.js";
|
|
15
15
|
import {
|
|
16
16
|
Dialog
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-56KO2LYN.js";
|
|
18
18
|
|
|
19
19
|
// src/Git/GitStatusBar.tsx
|
|
20
20
|
import { useCallback, useEffect, useRef, useState } from "react";
|
|
@@ -36,7 +36,7 @@ function GitStatusBar() {
|
|
|
36
36
|
}, [menuOpen]);
|
|
37
37
|
const runItem = useCallback(
|
|
38
38
|
(action) => {
|
|
39
|
-
closeMenu(
|
|
39
|
+
closeMenu(true);
|
|
40
40
|
action();
|
|
41
41
|
},
|
|
42
42
|
[closeMenu]
|
|
@@ -867,7 +867,7 @@ function GitAuthGuidanceDialog({
|
|
|
867
867
|
{
|
|
868
868
|
type: "button",
|
|
869
869
|
className: "db-git-secondary-btn",
|
|
870
|
-
onClick: () => void maybeGetDocBlocksHost()?.shell
|
|
870
|
+
onClick: () => void maybeGetDocBlocksHost()?.shell?.openExternal(LEARN_MORE_URL),
|
|
871
871
|
children: "Learn more"
|
|
872
872
|
}
|
|
873
873
|
),
|