@vishu1301/script-writing 1.1.0 → 1.1.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.
- package/dist/index.cjs +76 -53
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -4
- package/dist/index.d.ts +6 -4
- package/dist/index.js +78 -54
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -51,18 +51,20 @@ declare function useScreenplayEditor(options?: UseScreenplayEditorOptions): {
|
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
type ScreenplayEditorViewProps = ReturnType<typeof useScreenplayEditor> & {
|
|
54
|
+
showPdfImport?: boolean;
|
|
55
|
+
showSaveButton?: boolean;
|
|
56
|
+
showSyncButton?: boolean;
|
|
54
57
|
onSave?: () => void;
|
|
55
58
|
onSaveAsPdf?: () => void;
|
|
56
59
|
onSaveAsSbx?: () => void;
|
|
57
60
|
onSyncWithCloud?: () => void;
|
|
58
61
|
handleSceneNumberChange: (blockId: string, value: string) => void;
|
|
59
62
|
};
|
|
60
|
-
declare function ScreenplayEditorView({ blocks, refs, focusedBlockId, showSuggestions, showExtensionSuggestions, characterExtensions, locations, characters, handleBlockTextChange, handleSceneTypeChange, handleTimeOfDayChange, handleBlockTypeChange, handleSelectCharacterExtension, handleKeyDown, handleFocus, handleBlur, handleScriptImport, onSave, onSaveAsPdf, onSaveAsSbx, onSyncWithCloud, handleSceneNumberChange, }: ScreenplayEditorViewProps): react_jsx_runtime.JSX.Element;
|
|
63
|
+
declare function ScreenplayEditorView({ blocks, refs, focusedBlockId, showSuggestions, showExtensionSuggestions, characterExtensions, locations, characters, showPdfImport, showSaveButton, showSyncButton, handleBlockTextChange, handleSceneTypeChange, handleTimeOfDayChange, handleBlockTypeChange, handleSelectCharacterExtension, handleKeyDown, handleFocus, handleBlur, handleScriptImport, onSave, onSaveAsPdf, onSaveAsSbx, onSyncWithCloud, handleSceneNumberChange, }: ScreenplayEditorViewProps): react_jsx_runtime.JSX.Element;
|
|
61
64
|
|
|
62
65
|
declare const handleSaveAsPdf: (blocks: Block[], sceneNumbers: Record<string, string>, project_name?: string) => void;
|
|
63
66
|
declare const convertBlocksToSbx: (blocks: Block[], sceneNumbers: Record<string, string>) => string;
|
|
64
|
-
declare const
|
|
65
|
-
declare const handleSyncWithCloud: (blocks: Block[], sceneNumbers: Record<string, string>, onSyncWithCloud?: (sbxData: string) => void) => void;
|
|
67
|
+
declare const handleSyncWithCloud: (blocks: Block[], sceneNumbers: Record<string, string>, onSaveAsSbx?: (file: File) => void, project_name?: string) => void;
|
|
66
68
|
|
|
67
69
|
interface ScriptBreakdown {
|
|
68
70
|
scene_number: string;
|
|
@@ -139,4 +141,4 @@ declare function useScriptBreakdownScene(sceneNumber: string): {
|
|
|
139
141
|
setSceneBrief: React$1.Dispatch<React$1.SetStateAction<string>>;
|
|
140
142
|
};
|
|
141
143
|
|
|
142
|
-
export { type Block, type BlockType, CATEGORIES, type ElementCategory, ScreenplayEditorView, type ScriptBreakdown, ScriptBreakdownSceneView, type Tag, type TimeOfDay, blockStyles, blockTypes, convertBlocksToSbx, handleSaveAsPdf,
|
|
144
|
+
export { type Block, type BlockType, CATEGORIES, type ElementCategory, ScreenplayEditorView, type ScriptBreakdown, ScriptBreakdownSceneView, type Tag, type TimeOfDay, blockStyles, blockTypes, convertBlocksToSbx, handleSaveAsPdf, handleSyncWithCloud, icons, timeOfDayOptions, useScreenplayEditor, useScriptBreakdownScene, uuid };
|
package/dist/index.d.ts
CHANGED
|
@@ -51,18 +51,20 @@ declare function useScreenplayEditor(options?: UseScreenplayEditorOptions): {
|
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
type ScreenplayEditorViewProps = ReturnType<typeof useScreenplayEditor> & {
|
|
54
|
+
showPdfImport?: boolean;
|
|
55
|
+
showSaveButton?: boolean;
|
|
56
|
+
showSyncButton?: boolean;
|
|
54
57
|
onSave?: () => void;
|
|
55
58
|
onSaveAsPdf?: () => void;
|
|
56
59
|
onSaveAsSbx?: () => void;
|
|
57
60
|
onSyncWithCloud?: () => void;
|
|
58
61
|
handleSceneNumberChange: (blockId: string, value: string) => void;
|
|
59
62
|
};
|
|
60
|
-
declare function ScreenplayEditorView({ blocks, refs, focusedBlockId, showSuggestions, showExtensionSuggestions, characterExtensions, locations, characters, handleBlockTextChange, handleSceneTypeChange, handleTimeOfDayChange, handleBlockTypeChange, handleSelectCharacterExtension, handleKeyDown, handleFocus, handleBlur, handleScriptImport, onSave, onSaveAsPdf, onSaveAsSbx, onSyncWithCloud, handleSceneNumberChange, }: ScreenplayEditorViewProps): react_jsx_runtime.JSX.Element;
|
|
63
|
+
declare function ScreenplayEditorView({ blocks, refs, focusedBlockId, showSuggestions, showExtensionSuggestions, characterExtensions, locations, characters, showPdfImport, showSaveButton, showSyncButton, handleBlockTextChange, handleSceneTypeChange, handleTimeOfDayChange, handleBlockTypeChange, handleSelectCharacterExtension, handleKeyDown, handleFocus, handleBlur, handleScriptImport, onSave, onSaveAsPdf, onSaveAsSbx, onSyncWithCloud, handleSceneNumberChange, }: ScreenplayEditorViewProps): react_jsx_runtime.JSX.Element;
|
|
61
64
|
|
|
62
65
|
declare const handleSaveAsPdf: (blocks: Block[], sceneNumbers: Record<string, string>, project_name?: string) => void;
|
|
63
66
|
declare const convertBlocksToSbx: (blocks: Block[], sceneNumbers: Record<string, string>) => string;
|
|
64
|
-
declare const
|
|
65
|
-
declare const handleSyncWithCloud: (blocks: Block[], sceneNumbers: Record<string, string>, onSyncWithCloud?: (sbxData: string) => void) => void;
|
|
67
|
+
declare const handleSyncWithCloud: (blocks: Block[], sceneNumbers: Record<string, string>, onSaveAsSbx?: (file: File) => void, project_name?: string) => void;
|
|
66
68
|
|
|
67
69
|
interface ScriptBreakdown {
|
|
68
70
|
scene_number: string;
|
|
@@ -139,4 +141,4 @@ declare function useScriptBreakdownScene(sceneNumber: string): {
|
|
|
139
141
|
setSceneBrief: React$1.Dispatch<React$1.SetStateAction<string>>;
|
|
140
142
|
};
|
|
141
143
|
|
|
142
|
-
export { type Block, type BlockType, CATEGORIES, type ElementCategory, ScreenplayEditorView, type ScriptBreakdown, ScriptBreakdownSceneView, type Tag, type TimeOfDay, blockStyles, blockTypes, convertBlocksToSbx, handleSaveAsPdf,
|
|
144
|
+
export { type Block, type BlockType, CATEGORIES, type ElementCategory, ScreenplayEditorView, type ScriptBreakdown, ScriptBreakdownSceneView, type Tag, type TimeOfDay, blockStyles, blockTypes, convertBlocksToSbx, handleSaveAsPdf, handleSyncWithCloud, icons, timeOfDayOptions, useScreenplayEditor, useScriptBreakdownScene, uuid };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useState,
|
|
1
|
+
import { useState, useRef, useEffect, useMemo, useCallback } from 'react';
|
|
2
2
|
import { ArrowRightLeft, MessageCircle, Brackets, UserRound, Sparkles, Clapperboard, Upload, Save, FileDown, RefreshCcw, Cog, ArrowRight, User, ChevronRight, Loader2, AlignLeft, Tags, Plus, X } from 'lucide-react';
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import * as pdfjs from 'pdfjs-dist';
|
|
@@ -290,6 +290,9 @@ function ScreenplayEditorView({
|
|
|
290
290
|
characterExtensions,
|
|
291
291
|
locations,
|
|
292
292
|
characters,
|
|
293
|
+
showPdfImport = false,
|
|
294
|
+
showSaveButton = false,
|
|
295
|
+
showSyncButton = false,
|
|
293
296
|
handleBlockTextChange,
|
|
294
297
|
handleSceneTypeChange,
|
|
295
298
|
handleTimeOfDayChange,
|
|
@@ -306,7 +309,21 @@ function ScreenplayEditorView({
|
|
|
306
309
|
handleSceneNumberChange
|
|
307
310
|
}) {
|
|
308
311
|
const [isRulesOpen, setIsRulesOpen] = useState(false);
|
|
312
|
+
const rulesRef = useRef(null);
|
|
309
313
|
const COURIER_STACK = "'Courier Prime', 'Courier', monospace";
|
|
314
|
+
useEffect(() => {
|
|
315
|
+
const handleClickOutside = (event) => {
|
|
316
|
+
if (rulesRef.current && !rulesRef.current.contains(event.target)) {
|
|
317
|
+
setIsRulesOpen(false);
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
if (isRulesOpen) {
|
|
321
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
322
|
+
}
|
|
323
|
+
return () => {
|
|
324
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
325
|
+
};
|
|
326
|
+
}, [isRulesOpen]);
|
|
310
327
|
useEffect(() => {
|
|
311
328
|
const fontId = "google-font-courier-prime";
|
|
312
329
|
const styleId = "screenplay-editor-force-v4";
|
|
@@ -388,8 +405,8 @@ function ScreenplayEditorView({
|
|
|
388
405
|
}) }),
|
|
389
406
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 shrink-0 relative px-1", children: [
|
|
390
407
|
/* @__PURE__ */ jsx("div", { className: "w-[1px] h-6 bg-zinc-200/80 mx-2 hidden sm:block rounded-full" }),
|
|
391
|
-
/* @__PURE__ */ jsx(PdfImporter, { onScriptImported: handleScriptImport, children: /* @__PURE__ */ jsx("div", { title: "Import Script", children: /* @__PURE__ */ jsx(Upload, { className: "w-[18px] h-[18px]" }) }) }),
|
|
392
|
-
onSave && /* @__PURE__ */ jsx(
|
|
408
|
+
showPdfImport && /* @__PURE__ */ jsx(PdfImporter, { onScriptImported: handleScriptImport, children: /* @__PURE__ */ jsx("div", { title: "Import Script", children: /* @__PURE__ */ jsx(Upload, { className: "w-[18px] h-[18px]" }) }) }),
|
|
409
|
+
onSave && showSaveButton && /* @__PURE__ */ jsx(
|
|
393
410
|
"button",
|
|
394
411
|
{
|
|
395
412
|
onClick: onSave,
|
|
@@ -399,7 +416,7 @@ function ScreenplayEditorView({
|
|
|
399
416
|
children: /* @__PURE__ */ jsx(Save, { className: "w-[18px] h-[18px]" })
|
|
400
417
|
}
|
|
401
418
|
),
|
|
402
|
-
onSaveAsPdf && /* @__PURE__ */ jsx(
|
|
419
|
+
onSaveAsPdf && showSaveButton && /* @__PURE__ */ jsx(
|
|
403
420
|
"button",
|
|
404
421
|
{
|
|
405
422
|
onClick: onSaveAsPdf,
|
|
@@ -409,49 +426,51 @@ function ScreenplayEditorView({
|
|
|
409
426
|
children: /* @__PURE__ */ jsx(FileDown, { className: "w-[18px] h-[18px]" })
|
|
410
427
|
}
|
|
411
428
|
),
|
|
412
|
-
|
|
429
|
+
onSyncWithCloud && showSyncButton && /* @__PURE__ */ jsx(
|
|
413
430
|
"button",
|
|
414
431
|
{
|
|
415
|
-
onClick:
|
|
432
|
+
onClick: onSyncWithCloud,
|
|
416
433
|
className: "flex items-center justify-center w-10 h-10 rounded-full text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 transition-all duration-200 active:scale-95",
|
|
417
|
-
title: "Sync with Cloud
|
|
418
|
-
"aria-label": "
|
|
434
|
+
title: "Sync with Cloud",
|
|
435
|
+
"aria-label": "Sync with Cloud",
|
|
419
436
|
children: /* @__PURE__ */ jsx(RefreshCcw, { className: "w-[18px] h-[18px]" })
|
|
420
437
|
}
|
|
421
438
|
),
|
|
422
|
-
/* @__PURE__ */
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
/* @__PURE__ */ jsxs("
|
|
434
|
-
/* @__PURE__ */
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
/* @__PURE__ */ jsx("div", { className: "space-y-4", children: /* @__PURE__ */ jsxs("ul", { className: "space-y-2.5", children: [
|
|
438
|
-
/* @__PURE__ */ jsxs("li", { className: "flex items-center justify-between gap-6", children: [
|
|
439
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium text-zinc-600", children: "New Block" }),
|
|
440
|
-
/* @__PURE__ */ jsx("kbd", { className: "px-2 py-1 text-[11px] font-bold text-zinc-700 bg-white border border-zinc-200/80 shadow-[0_2px_4px_rgb(0,0,0,0.02)] rounded-md", children: "Enter" })
|
|
439
|
+
/* @__PURE__ */ jsxs("div", { ref: rulesRef, className: "relative flex items-center", children: [
|
|
440
|
+
/* @__PURE__ */ jsx(
|
|
441
|
+
"button",
|
|
442
|
+
{
|
|
443
|
+
onClick: () => setIsRulesOpen(!isRulesOpen),
|
|
444
|
+
className: `flex items-center justify-center w-10 h-10 rounded-full transition-all duration-200 active:scale-95 ${isRulesOpen ? "bg-zinc-900 text-white shadow-md shadow-zinc-900/20" : "text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900"}`,
|
|
445
|
+
title: "Settings & Shortcuts",
|
|
446
|
+
"aria-label": "Toggle Settings",
|
|
447
|
+
children: /* @__PURE__ */ jsx(Cog, { className: "w-[18px] h-[18px]" })
|
|
448
|
+
}
|
|
449
|
+
),
|
|
450
|
+
isRulesOpen && /* @__PURE__ */ jsxs("div", { className: "absolute top-full mt-2 right-0 bg-white/95 backdrop-blur-3xl rounded-[1.5rem] shadow-[0_20px_60px_-15px_rgba(0,0,0,0.1)] ring-1 ring-zinc-900/5 p-5 text-sm text-zinc-700 select-none font-sans overflow-hidden transition-all duration-300 w-72 origin-top-right animate-in fade-in zoom-in-95 z-50", children: [
|
|
451
|
+
/* @__PURE__ */ jsxs("h4", { className: "font-bold text-zinc-900 mb-4 text-sm flex items-center gap-2", children: [
|
|
452
|
+
/* @__PURE__ */ jsx(Cog, { className: "w-4 h-4 text-zinc-400" }),
|
|
453
|
+
"Settings & Shortcuts"
|
|
441
454
|
] }),
|
|
442
|
-
/* @__PURE__ */
|
|
443
|
-
/* @__PURE__ */
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
/* @__PURE__ */
|
|
448
|
-
|
|
449
|
-
/* @__PURE__ */ jsx("kbd", { className: "px-2 py-1 text-[11px] font-bold text-zinc-700 bg-white border border-zinc-200/80 shadow-[0_2px_4px_rgb(0,0,0,0.02)] rounded-md", children: "
|
|
450
|
-
|
|
451
|
-
|
|
455
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-4", children: /* @__PURE__ */ jsxs("ul", { className: "space-y-2.5", children: [
|
|
456
|
+
/* @__PURE__ */ jsxs("li", { className: "flex items-center justify-between gap-6", children: [
|
|
457
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium text-zinc-600", children: "New Block" }),
|
|
458
|
+
/* @__PURE__ */ jsx("kbd", { className: "px-2 py-1 text-[11px] font-bold text-zinc-700 bg-white border border-zinc-200/80 shadow-[0_2px_4px_rgb(0,0,0,0.02)] rounded-md", children: "Enter" })
|
|
459
|
+
] }),
|
|
460
|
+
/* @__PURE__ */ jsxs("li", { className: "flex items-center justify-between gap-6", children: [
|
|
461
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium text-zinc-600", children: "Delete Block" }),
|
|
462
|
+
/* @__PURE__ */ jsx("kbd", { className: "px-2 py-1 text-[11px] font-bold text-zinc-700 bg-white border border-zinc-200/80 shadow-[0_2px_4px_rgb(0,0,0,0.02)] rounded-md", children: "Backspace" })
|
|
463
|
+
] }),
|
|
464
|
+
/* @__PURE__ */ jsxs("li", { className: "flex items-center justify-between gap-6", children: [
|
|
465
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium text-zinc-600", children: "Change Type" }),
|
|
466
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
467
|
+
/* @__PURE__ */ jsx("kbd", { className: "px-2 py-1 text-[11px] font-bold text-zinc-700 bg-white border border-zinc-200/80 shadow-[0_2px_4px_rgb(0,0,0,0.02)] rounded-md", children: "Ctrl" }),
|
|
468
|
+
/* @__PURE__ */ jsx("span", { className: "text-zinc-400 font-medium", children: "+" }),
|
|
469
|
+
/* @__PURE__ */ jsx("kbd", { className: "px-2 py-1 text-[11px] font-bold text-zinc-700 bg-white border border-zinc-200/80 shadow-[0_2px_4px_rgb(0,0,0,0.02)] rounded-md", children: "\u2191/\u2193" })
|
|
470
|
+
] })
|
|
452
471
|
] })
|
|
453
|
-
] })
|
|
454
|
-
] })
|
|
472
|
+
] }) })
|
|
473
|
+
] })
|
|
455
474
|
] })
|
|
456
475
|
] })
|
|
457
476
|
]
|
|
@@ -970,6 +989,11 @@ function useScreenplayEditor(options) {
|
|
|
970
989
|
const [showExtensionSuggestions, setShowExtensionSuggestions] = useState(false);
|
|
971
990
|
const blurTimeout = useRef(null);
|
|
972
991
|
const loadedUrlRef = useRef(null);
|
|
992
|
+
const lastSavedContent = useRef(null);
|
|
993
|
+
const onSaveRef = useRef(options == null ? void 0 : options.onSave);
|
|
994
|
+
useEffect(() => {
|
|
995
|
+
onSaveRef.current = options == null ? void 0 : options.onSave;
|
|
996
|
+
}, [options == null ? void 0 : options.onSave]);
|
|
973
997
|
const characterExtensions = useMemo(
|
|
974
998
|
() => ["(V.O.)", "(O.S.)", "(O.C.)", "(SUBTITLE)", "(CONT'D)"],
|
|
975
999
|
[]
|
|
@@ -1326,11 +1350,10 @@ function useScreenplayEditor(options) {
|
|
|
1326
1350
|
);
|
|
1327
1351
|
const handleScriptImport = useCallback(
|
|
1328
1352
|
(title, content, preParsedBlocks) => {
|
|
1329
|
-
var _a;
|
|
1330
1353
|
let parsedBlocks = [];
|
|
1331
1354
|
if (preParsedBlocks && preParsedBlocks.length > 0) {
|
|
1332
1355
|
parsedBlocks = preParsedBlocks.map((b) => ({
|
|
1333
|
-
id: uuid(),
|
|
1356
|
+
id: b.id || uuid(),
|
|
1334
1357
|
type: b.type || "ACTION",
|
|
1335
1358
|
text: b.text || "",
|
|
1336
1359
|
sceneNumber: b.sceneNumber,
|
|
@@ -1356,7 +1379,7 @@ function useScreenplayEditor(options) {
|
|
|
1356
1379
|
return block;
|
|
1357
1380
|
});
|
|
1358
1381
|
setBlocks(finalizedBlocks);
|
|
1359
|
-
if (
|
|
1382
|
+
if (onSaveRef.current) {
|
|
1360
1383
|
const typeToDivClass = {
|
|
1361
1384
|
SCENE_HEADING: "divtype0",
|
|
1362
1385
|
ACTION: "divtype2",
|
|
@@ -1380,15 +1403,18 @@ function useScreenplayEditor(options) {
|
|
|
1380
1403
|
}
|
|
1381
1404
|
return `<div class="${divClass}" id="par${block.id}"${extraAttributes}>${text}</div>`;
|
|
1382
1405
|
}).join("");
|
|
1383
|
-
|
|
1384
|
-
|
|
1406
|
+
if (sbxData !== lastSavedContent.current) {
|
|
1407
|
+
lastSavedContent.current = sbxData;
|
|
1408
|
+
const blob = new Blob([sbxData], { type: "text/plain" });
|
|
1409
|
+
onSaveRef.current(blob);
|
|
1410
|
+
}
|
|
1385
1411
|
}
|
|
1386
1412
|
setTimeout(() => {
|
|
1387
|
-
var
|
|
1413
|
+
var _a;
|
|
1388
1414
|
const firstId = parsedBlocks[0].id;
|
|
1389
1415
|
if (firstId && refs.current[firstId]) {
|
|
1390
1416
|
setFocusedBlockId(firstId);
|
|
1391
|
-
(
|
|
1417
|
+
(_a = refs.current[firstId]) == null ? void 0 : _a.focus();
|
|
1392
1418
|
}
|
|
1393
1419
|
}, 100);
|
|
1394
1420
|
}
|
|
@@ -1470,6 +1496,10 @@ function useScreenplayEditor(options) {
|
|
|
1470
1496
|
}
|
|
1471
1497
|
}
|
|
1472
1498
|
const block = { type, text: divText };
|
|
1499
|
+
const idAttr = div.getAttribute("id");
|
|
1500
|
+
if (idAttr && idAttr.startsWith("par")) {
|
|
1501
|
+
block.id = idAttr.substring(3);
|
|
1502
|
+
}
|
|
1473
1503
|
if (type === "SCENE_HEADING") {
|
|
1474
1504
|
const sceneNum = div.getAttribute("data-scene");
|
|
1475
1505
|
if (sceneNum) block.sceneNumber = sceneNum;
|
|
@@ -1653,7 +1683,7 @@ var convertBlocksToSbx = (blocks, sceneNumbers) => {
|
|
|
1653
1683
|
return `<div class="${divClass}" id="par${block.id}"${extraAttributes}>${text}</div>`;
|
|
1654
1684
|
}).join("");
|
|
1655
1685
|
};
|
|
1656
|
-
var
|
|
1686
|
+
var handleSyncWithCloud = (blocks, sceneNumbers, onSaveAsSbx, project_name) => {
|
|
1657
1687
|
const sbxData = convertBlocksToSbx(blocks, sceneNumbers);
|
|
1658
1688
|
const blob = new Blob([sbxData], { type: "text/plain" });
|
|
1659
1689
|
if (onSaveAsSbx) {
|
|
@@ -1670,12 +1700,6 @@ var handleSaveAsSbx = (blocks, sceneNumbers, onSaveAsSbx, project_name) => {
|
|
|
1670
1700
|
}
|
|
1671
1701
|
}
|
|
1672
1702
|
};
|
|
1673
|
-
var handleSyncWithCloud = (blocks, sceneNumbers, onSyncWithCloud) => {
|
|
1674
|
-
if (onSyncWithCloud) {
|
|
1675
|
-
const sbxData = convertBlocksToSbx(blocks, sceneNumbers);
|
|
1676
|
-
onSyncWithCloud(sbxData);
|
|
1677
|
-
}
|
|
1678
|
-
};
|
|
1679
1703
|
|
|
1680
1704
|
// app/types/script-breakdown.types.tsx
|
|
1681
1705
|
var CATEGORIES = [
|
|
@@ -2352,6 +2376,6 @@ function useScriptBreakdownScene(sceneNumber) {
|
|
|
2352
2376
|
};
|
|
2353
2377
|
}
|
|
2354
2378
|
|
|
2355
|
-
export { CATEGORIES, ScreenplayEditorView, ScriptBreakdownSceneView, blockStyles, blockTypes, convertBlocksToSbx, handleSaveAsPdf,
|
|
2379
|
+
export { CATEGORIES, ScreenplayEditorView, ScriptBreakdownSceneView, blockStyles, blockTypes, convertBlocksToSbx, handleSaveAsPdf, handleSyncWithCloud, icons, timeOfDayOptions, useScreenplayEditor, useScriptBreakdownScene, uuid };
|
|
2356
2380
|
//# sourceMappingURL=index.js.map
|
|
2357
2381
|
//# sourceMappingURL=index.js.map
|