@drawnagency/primitives 0.1.76 → 0.1.78
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/{chunk-Q3T23HVW.js → chunk-2DDWWTRX.js} +5 -5
- package/dist/chunk-2G2S36SY.js +13 -0
- package/dist/{chunk-S55OZ7F2.js → chunk-3LNKOLZP.js} +4 -0
- package/dist/{chunk-SWIHUIFT.js → chunk-4SIWBWKZ.js} +12 -2
- package/dist/{chunk-SWEVWC5K.js → chunk-BAQYZSFF.js} +22 -22
- package/dist/{chunk-IFHRHV7S.js → chunk-EMGLZQCM.js} +1 -1
- package/dist/{chunk-NKVZGPR6.js → chunk-K4JD6FD3.js} +1 -1
- package/dist/{chunk-SFKYUKVN.js → chunk-MK4POMLZ.js} +1 -1
- package/dist/{chunk-7T2WQSWF.js → chunk-NS3UTJ3E.js} +11 -11
- package/dist/chunk-REM2NH7K.js +44 -0
- package/dist/{chunk-T7MP7ANP.js → chunk-UA6OCJJK.js} +2 -2
- package/dist/{chunk-ZRWGV5O6.js → chunk-Z5IYWUW3.js} +3 -3
- package/dist/collab/provider-registry.d.ts +4 -0
- package/dist/collab/provider-registry.d.ts.map +1 -0
- package/dist/collab/provider-registry.js +9 -0
- package/dist/collab/rebase.d.ts +37 -0
- package/dist/collab/rebase.d.ts.map +1 -0
- package/dist/collab/rebase.js +64 -0
- package/dist/collab/recovery.d.ts +89 -0
- package/dist/collab/recovery.d.ts.map +1 -0
- package/dist/collab/types.d.ts +93 -0
- package/dist/collab/types.d.ts.map +1 -0
- package/dist/collab/types.js +19 -0
- package/dist/components/editor/AudienceIndicator.d.ts +3 -1
- package/dist/components/editor/AudienceIndicator.d.ts.map +1 -1
- package/dist/components/editor/ConflictDialog.d.ts +14 -0
- package/dist/components/editor/ConflictDialog.d.ts.map +1 -0
- package/dist/components/editor/IndicatorPill.d.ts +4 -1
- package/dist/components/editor/IndicatorPill.d.ts.map +1 -1
- package/dist/components/editor/LockBadge.d.ts +7 -0
- package/dist/components/editor/LockBadge.d.ts.map +1 -0
- package/dist/components/editor/PresenceAvatars.d.ts +9 -0
- package/dist/components/editor/PresenceAvatars.d.ts.map +1 -0
- package/dist/components/editor/SectionWrapper.d.ts +1 -1
- package/dist/components/editor/SectionWrapper.d.ts.map +1 -1
- package/dist/components/editor/StatusIndicator.d.ts +3 -1
- package/dist/components/editor/StatusIndicator.d.ts.map +1 -1
- package/dist/components/editor/index.js +95 -47
- package/dist/components/primitives/index.js +5 -5
- package/dist/components/sections/brand-guide.js +5 -5
- package/dist/components/sections/register-schemas.js +11 -11
- package/dist/components/sections/register.js +11 -11
- package/dist/components/shell/EditorShell.d.ts +3 -1
- package/dist/components/shell/EditorShell.d.ts.map +1 -1
- package/dist/components/shell/MediaBreadcrumb.d.ts +10 -0
- package/dist/components/shell/MediaBreadcrumb.d.ts.map +1 -0
- package/dist/components/shell/MediaFolderTile.d.ts +15 -0
- package/dist/components/shell/MediaFolderTile.d.ts.map +1 -0
- package/dist/components/shell/MediaFolderTree.d.ts +20 -0
- package/dist/components/shell/MediaFolderTree.d.ts.map +1 -0
- package/dist/components/shell/MediaLibraryModal.d.ts +15 -3
- package/dist/components/shell/MediaLibraryModal.d.ts.map +1 -1
- package/dist/components/shell/MoveToFolderDialog.d.ts +16 -0
- package/dist/components/shell/MoveToFolderDialog.d.ts.map +1 -0
- package/dist/hooks/useCollabSession.d.ts +23 -0
- package/dist/hooks/useCollabSession.d.ts.map +1 -0
- package/dist/hooks/useEditorPersistence.d.ts +21 -1
- package/dist/hooks/useEditorPersistence.d.ts.map +1 -1
- package/dist/hooks/useEditorPublish.d.ts +39 -2
- package/dist/hooks/useEditorPublish.d.ts.map +1 -1
- package/dist/hooks/useMediaFolderDnd.d.ts +27 -0
- package/dist/hooks/useMediaFolderDnd.d.ts.map +1 -0
- package/dist/hooks/useMediaPipeline.d.ts +14 -2
- package/dist/hooks/useMediaPipeline.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -25
- package/dist/lib/dexie.d.ts +12 -0
- package/dist/lib/dexie.d.ts.map +1 -1
- package/dist/lib/dexie.js +27 -0
- package/dist/lib/index.js +12 -12
- package/dist/lib/media-dnd.d.ts +26 -0
- package/dist/lib/media-dnd.d.ts.map +1 -0
- package/dist/lib/media-folders.d.ts +59 -0
- package/dist/lib/media-folders.d.ts.map +1 -0
- package/dist/lib/registry.d.ts +10 -0
- package/dist/lib/registry.d.ts.map +1 -1
- package/dist/media/folder-drop.d.ts +22 -0
- package/dist/media/folder-drop.d.ts.map +1 -0
- package/dist/media/index.js +6 -2
- package/dist/media/types.d.ts +1 -1
- package/dist/media/types.d.ts.map +1 -1
- package/dist/media/utils.d.ts +7 -0
- package/dist/media/utils.d.ts.map +1 -1
- package/dist/schemas/index.js +5 -3
- package/dist/schemas/media.d.ts +11 -0
- package/dist/schemas/media.d.ts.map +1 -1
- package/dist/types/database.d.ts +70 -0
- package/dist/types/database.d.ts.map +1 -1
- package/package.json +13 -1
- package/src/collab/provider-registry.ts +14 -0
- package/src/collab/rebase.ts +140 -0
- package/src/collab/recovery.ts +149 -0
- package/src/collab/types.ts +96 -0
- package/src/components/editor/AudienceIndicator.tsx +4 -1
- package/src/components/editor/ConflictDialog.tsx +61 -0
- package/src/components/editor/IndicatorPill.tsx +12 -6
- package/src/components/editor/LockBadge.tsx +31 -0
- package/src/components/editor/PresenceAvatars.tsx +53 -0
- package/src/components/editor/SectionWrapper.tsx +60 -29
- package/src/components/editor/StatusIndicator.tsx +4 -0
- package/src/components/shell/EditorShell.tsx +581 -22
- package/src/components/shell/MediaBreadcrumb.tsx +77 -0
- package/src/components/shell/MediaFolderTile.tsx +141 -0
- package/src/components/shell/MediaFolderTree.tsx +127 -0
- package/src/components/shell/MediaLibraryModal.tsx +611 -229
- package/src/components/shell/MoveToFolderDialog.tsx +78 -0
- package/src/hooks/useCollabSession.ts +220 -0
- package/src/hooks/useEditorPersistence.ts +104 -1
- package/src/hooks/useEditorPublish.ts +216 -71
- package/src/hooks/useMediaFolderDnd.ts +129 -0
- package/src/hooks/useMediaPipeline.ts +162 -6
- package/src/index.ts +2 -0
- package/src/lib/dexie.ts +44 -0
- package/src/lib/media-dnd.ts +62 -0
- package/src/lib/media-folders.ts +232 -0
- package/src/lib/registry.ts +8 -0
- package/src/media/folder-drop.ts +62 -0
- package/src/media/types.ts +2 -0
- package/src/media/utils.ts +10 -0
- package/src/schemas/media.ts +13 -0
- package/src/types/database.ts +55 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Audience } from "../../auth/types";
|
|
2
|
+
import type { CollabBootstrap } from "../../collab/types";
|
|
2
3
|
export { useMediaLibrary } from "./MediaLibraryContext";
|
|
3
4
|
interface Props {
|
|
4
5
|
headSha: string;
|
|
@@ -18,6 +19,7 @@ interface Props {
|
|
|
18
19
|
role: "owner" | "editor";
|
|
19
20
|
} | null;
|
|
20
21
|
chatbotPlatformEnabled?: boolean;
|
|
22
|
+
collabBootstrap?: CollabBootstrap | null;
|
|
21
23
|
}
|
|
22
|
-
export default function EditorShell({ headSha, draftHeadSha, siteId, audiences: initialAudiences, capabilities, currentUser, chatbotPlatformEnabled, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export default function EditorShell({ headSha, draftHeadSha, siteId, audiences: initialAudiences, capabilities, currentUser, chatbotPlatformEnabled, collabBootstrap, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
23
25
|
//# sourceMappingURL=EditorShell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorShell.d.ts","sourceRoot":"","sources":["../../../src/components/shell/EditorShell.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"EditorShell.d.ts","sourceRoot":"","sources":["../../../src/components/shell/EditorShell.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAiDjD,OAAO,KAAK,EAAE,eAAe,EAA2D,MAAM,oBAAoB,CAAC;AAmCnH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAoBxD,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;IAIhB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,YAAY,EAAE;QACZ,KAAK,EAAE,OAAO,CAAC;QACf,aAAa,EAAE,OAAO,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;QACtB,cAAc,EAAE,OAAO,CAAC;QACxB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;IAIhE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAKjC,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,OAAO,EACP,YAAY,EACZ,MAAM,EACN,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EACZ,WAAW,EACX,sBAA8B,EAC9B,eAAe,GAChB,EAAE,KAAK,2CA28CP"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { MediaFolder } from "../../media/types";
|
|
2
|
+
import type { MediaFolderDndBindings } from "./MediaFolderTree";
|
|
3
|
+
export interface MediaBreadcrumbProps {
|
|
4
|
+
folders: Record<string, MediaFolder>;
|
|
5
|
+
currentFolderId: string | null;
|
|
6
|
+
onNavigate: (id: string | null) => void;
|
|
7
|
+
dnd?: MediaFolderDndBindings;
|
|
8
|
+
}
|
|
9
|
+
export declare function MediaBreadcrumb({ folders, currentFolderId, onNavigate, dnd }: MediaBreadcrumbProps): import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
//# sourceMappingURL=MediaBreadcrumb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaBreadcrumb.d.ts","sourceRoot":"","sources":["../../../src/components/shell/MediaBreadcrumb.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACxC,GAAG,CAAC,EAAE,sBAAsB,CAAC;CAC9B;AA0CD,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,oBAAoB,kDAqBlG"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { MediaFolderDndBindings } from "./MediaFolderTree";
|
|
2
|
+
export interface MediaFolderTileProps {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
count: number;
|
|
6
|
+
onOpen: (id: string) => void;
|
|
7
|
+
manage: boolean;
|
|
8
|
+
onRename?: (id: string, name: string) => void;
|
|
9
|
+
onDeleteRequest?: (id: string) => void;
|
|
10
|
+
dnd?: MediaFolderDndBindings;
|
|
11
|
+
/** Optional accessible label override for the root element (e.g. "Open folder Logos"). */
|
|
12
|
+
ariaLabel?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function MediaFolderTile({ id, name, count, onOpen, manage, onRename, onDeleteRequest, dnd, ariaLabel, }: MediaFolderTileProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=MediaFolderTile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaFolderTile.d.ts","sourceRoot":"","sources":["../../../src/components/shell/MediaFolderTile.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,GAAG,CAAC,EAAE,sBAAsB,CAAC;IAC7B,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,GAC3E,EAAE,oBAAoB,2CAoHtB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { MediaFolder, MediaItem } from "../../media/types";
|
|
2
|
+
export interface MediaFolderDndBindings {
|
|
3
|
+
foldersRef: React.RefObject<Record<string, MediaFolder>>;
|
|
4
|
+
itemsByIdRef: React.RefObject<Record<string, MediaItem>>;
|
|
5
|
+
onMoveMedia: (ids: string[], target: string | null) => void;
|
|
6
|
+
onMoveFolder: (id: string, target: string | null) => void;
|
|
7
|
+
}
|
|
8
|
+
export interface MediaFolderTreeProps {
|
|
9
|
+
folders: Record<string, MediaFolder>;
|
|
10
|
+
counts: Record<string, number>;
|
|
11
|
+
totalCount: number;
|
|
12
|
+
currentFolderId: string | null;
|
|
13
|
+
onNavigate: (id: string | null) => void;
|
|
14
|
+
expandedIds: Set<string>;
|
|
15
|
+
onExpand: (id: string) => void;
|
|
16
|
+
onToggleExpand: (id: string) => void;
|
|
17
|
+
dnd?: MediaFolderDndBindings;
|
|
18
|
+
}
|
|
19
|
+
export declare function MediaFolderTree(props: MediaFolderTreeProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
//# sourceMappingURL=MediaFolderTree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaFolderTree.d.ts","sourceRoot":"","sources":["../../../src/components/shell/MediaFolderTree.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAIhE,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACzD,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACzD,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5D,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACxC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,GAAG,CAAC,EAAE,sBAAsB,CAAC;CAC9B;AA4ED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CA0B1D"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { MediaItem } from "../../media/types";
|
|
1
|
+
import type { MediaFolder, MediaItem } from "../../media/types";
|
|
2
2
|
export interface MediaLibraryModalProps {
|
|
3
3
|
mode: "select" | "manage";
|
|
4
4
|
items: MediaItem[];
|
|
5
5
|
onSelect: (id: string) => void;
|
|
6
|
-
onUpload: (files: File[]) => void;
|
|
6
|
+
onUpload: (files: File[], targetFolderId?: string | null) => void;
|
|
7
7
|
onDelete: (ids: string[]) => void;
|
|
8
8
|
onAltChange?: (id: string, alt: string) => void;
|
|
9
9
|
referenceCountMap: Record<string, number>;
|
|
@@ -12,6 +12,18 @@ export interface MediaLibraryModalProps {
|
|
|
12
12
|
uploadProgress?: Record<string, number>;
|
|
13
13
|
uploadError?: string | null;
|
|
14
14
|
onDismissUploadError?: () => void;
|
|
15
|
+
folders?: Record<string, MediaFolder>;
|
|
16
|
+
onCreateFolder?: (name: string, parentId: string | null) => string;
|
|
17
|
+
onRenameFolder?: (id: string, name: string) => void;
|
|
18
|
+
onMoveFolder?: (id: string, parentId: string | null) => void;
|
|
19
|
+
onDeleteFolder?: (id: string, contents: "move" | "delete") => void;
|
|
20
|
+
onMoveMedia?: (ids: string[], folderId: string | null) => void;
|
|
21
|
+
onFolderUpload?: (entries: {
|
|
22
|
+
file: File;
|
|
23
|
+
relativePath: string;
|
|
24
|
+
}[], currentFolderId: string | null) => void;
|
|
25
|
+
uploadNotice?: string | null;
|
|
26
|
+
onDismissUploadNotice?: () => void;
|
|
15
27
|
}
|
|
16
|
-
export declare function MediaLibraryModal({ mode, items, onSelect, onUpload, onDelete, onAltChange, referenceCountMap, localUrlMap, maxFileSize, uploadProgress, uploadError, onDismissUploadError, }: MediaLibraryModalProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare function MediaLibraryModal({ mode, items, onSelect, onUpload, onDelete, onAltChange, referenceCountMap, localUrlMap, maxFileSize, uploadProgress, uploadError, onDismissUploadError, folders, onCreateFolder, onRenameFolder, onMoveFolder, onDeleteFolder, onMoveMedia, onFolderUpload, uploadNotice, onDismissUploadNotice, }: MediaLibraryModalProps): import("react/jsx-runtime").JSX.Element;
|
|
17
29
|
//# sourceMappingURL=MediaLibraryModal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaLibraryModal.d.ts","sourceRoot":"","sources":["../../../src/components/shell/MediaLibraryModal.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"MediaLibraryModal.d.ts","sourceRoot":"","sources":["../../../src/components/shell/MediaLibraryModal.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAa,MAAM,mBAAmB,CAAC;AAa3E,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAIxC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC;IACnE,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7D,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,KAAK,IAAI,CAAC;IACnE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/D,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3G,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;CACpC;AA2ID,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,WAAgB,EAChB,WAAW,EACX,cAAmB,EACnB,WAAkB,EAClB,oBAAoB,EACpB,OAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,EACX,cAAc,EACd,YAAmB,EACnB,qBAAqB,GACtB,EAAE,sBAAsB,2CAokBxB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { MediaFolder } from "../../media/types";
|
|
2
|
+
export interface MoveToFolderDialogProps {
|
|
3
|
+
folders: Record<string, MediaFolder>;
|
|
4
|
+
/** Targets to disable (moving a folder: its own descendant set). */
|
|
5
|
+
disabledIds?: Set<string>;
|
|
6
|
+
/**
|
|
7
|
+
* Target that is a no-op (the items' current folder), disabled too.
|
|
8
|
+
* Omit (undefined) when there is no single no-op target — e.g. a
|
|
9
|
+
* heterogeneous selection — and nothing is disabled on that account.
|
|
10
|
+
*/
|
|
11
|
+
currentTarget?: string | null;
|
|
12
|
+
onMove: (targetFolderId: string | null) => void;
|
|
13
|
+
onClose: () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function MoveToFolderDialog({ folders, disabledIds, currentTarget, onMove, onClose, }: MoveToFolderDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=MoveToFolderDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MoveToFolderDialog.d.ts","sourceRoot":"","sources":["../../../src/components/shell/MoveToFolderDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,oEAAoE;IACpE,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAKD,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,GACrD,EAAE,uBAAuB,2CAmDzB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { CollabBootstrap, CollabPeer, CollabProvider, CollabStatus, IndexUpdateMessage, SavedMessage, SectionUpdateMessage, TakeoverMessage } from "../collab/types";
|
|
2
|
+
export interface UseCollabSessionArgs {
|
|
3
|
+
provider: CollabProvider | null;
|
|
4
|
+
bootstrap: CollabBootstrap | null;
|
|
5
|
+
onRemoteSectionUpdate: (msg: SectionUpdateMessage) => void;
|
|
6
|
+
onRemoteIndexUpdate: (msg: IndexUpdateMessage) => void;
|
|
7
|
+
onRemoteSaved: (msg: SavedMessage) => void;
|
|
8
|
+
onTakenOver: (msg: TakeoverMessage) => void;
|
|
9
|
+
}
|
|
10
|
+
export interface UseCollabSessionResult {
|
|
11
|
+
status: CollabStatus;
|
|
12
|
+
peers: CollabPeer[];
|
|
13
|
+
locks: Map<string, CollabPeer>;
|
|
14
|
+
heldByMe: Set<string>;
|
|
15
|
+
requestEdit(sectionId: string): Promise<boolean>;
|
|
16
|
+
takeover(sectionId: string): Promise<boolean>;
|
|
17
|
+
setFocus(sectionId: string | null): void;
|
|
18
|
+
releaseAfterSave(sectionIds: string[]): void;
|
|
19
|
+
broadcastSectionUpdate(sectionId: string, content: unknown): void;
|
|
20
|
+
broadcastIndexUpdate(index: unknown): void;
|
|
21
|
+
}
|
|
22
|
+
export declare function useCollabSession(args: UseCollabSessionArgs): UseCollabSessionResult;
|
|
23
|
+
//# sourceMappingURL=useCollabSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCollabSession.d.ts","sourceRoot":"","sources":["../../src/hooks/useCollabSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAAE,UAAU,EAAE,cAAc,EAAiB,YAAY,EACxE,kBAAkB,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EACxE,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,qBAAqB,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC3D,mBAAmB,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvD,aAAa,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACzC,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7C,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClE,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5C;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,sBAAsB,CA6LnF"}
|
|
@@ -1,13 +1,33 @@
|
|
|
1
1
|
import type { SectionContent } from "../schemas/sections";
|
|
2
2
|
import type { SiteIndex, SiteConfig } from "../schemas/site-config";
|
|
3
|
-
|
|
3
|
+
interface PersistenceOptions {
|
|
4
|
+
/** Broadcast piggyback: called after a successful debounced flush with exactly
|
|
5
|
+
* what was persisted — the flushed section entries and whether the index was
|
|
6
|
+
* part of this flush. The collaboration layer forwards held-lock section
|
|
7
|
+
* updates + index updates to peers from here. Stored in a ref so its identity
|
|
8
|
+
* can churn without recreating the debounce machinery. */
|
|
9
|
+
onFlush?: (entries: {
|
|
10
|
+
sectionId: string;
|
|
11
|
+
content: SectionContent;
|
|
12
|
+
}[], indexFlushed: boolean) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function useEditorPersistence(siteIndexRef: React.RefObject<SiteIndex>, options?: PersistenceOptions): {
|
|
4
15
|
markSectionDirty: (sectionId: string, content: SectionContent) => void;
|
|
5
16
|
markIndexDirty: () => void;
|
|
6
17
|
removeSection: (sectionId: string) => void;
|
|
18
|
+
dropPendingSection: (sectionId: string) => void;
|
|
19
|
+
hasPendingSection: (sectionId: string) => boolean;
|
|
7
20
|
persistConfig: (config: SiteConfig) => Promise<void>;
|
|
8
21
|
flushNow: () => Promise<void>;
|
|
9
22
|
cancelPendingFlush: () => void;
|
|
10
23
|
isConfigDirty: () => boolean;
|
|
11
24
|
clearConfigDirty: () => void;
|
|
25
|
+
isIndexDirty: () => boolean;
|
|
26
|
+
hasUnsavedIndex: () => boolean;
|
|
27
|
+
clearUnsavedIndex: (upToGeneration?: number) => void;
|
|
28
|
+
noteUnsavedIndex: () => void;
|
|
29
|
+
currentGeneration: () => number;
|
|
30
|
+
sectionDirtiedAfter: (sectionId: string, generation: number) => boolean;
|
|
12
31
|
};
|
|
32
|
+
export {};
|
|
13
33
|
//# sourceMappingURL=useEditorPersistence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditorPersistence.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorPersistence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"useEditorPersistence.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorPersistence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AA2BpE,UAAU,kBAAkB;IAC1B;;;;+DAI2D;IAC3D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE,EAAE,EAAE,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;CACtG;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,EACxC,OAAO,CAAC,EAAE,kBAAkB;kCAwFd,MAAM,WAAW,cAAc;;+BAmBC,MAAM;oCAiBD,MAAM;mCAQ3C,MAAM;4BAI6B,UAAU;;;;;;;yCAgCH,MAAM;;;qCAWhD,MAAM,cAAc,MAAM;EAuBzC"}
|
|
@@ -10,7 +10,17 @@ interface PublishDeps {
|
|
|
10
10
|
siteConfig: SiteConfig | null;
|
|
11
11
|
sections: LoadedSection[];
|
|
12
12
|
deletedSectionIds?: string[];
|
|
13
|
-
|
|
13
|
+
/** Receives the ids that were actually committed this save (so the caller can
|
|
14
|
+
* release exactly those sections' locks), plus:
|
|
15
|
+
* - editToken: the edit-generation captured at save BEGIN. The caller's
|
|
16
|
+
* post-save clears must be guarded on it — any edit with a newer generation
|
|
17
|
+
* happened while this save was in flight and was NOT carried by it.
|
|
18
|
+
* - sentDeletedIds: the deletion ids this save actually sent, so the caller
|
|
19
|
+
* clears only those (a deletion scheduled mid-save must stay scheduled). */
|
|
20
|
+
onSuccess: (savedSectionIds: string[], meta: {
|
|
21
|
+
editToken: number;
|
|
22
|
+
sentDeletedIds: string[];
|
|
23
|
+
}) => void;
|
|
14
24
|
mediaManifest: MediaManifest;
|
|
15
25
|
manifestDirty: boolean;
|
|
16
26
|
clearManifestDirty: () => void;
|
|
@@ -20,11 +30,38 @@ interface PublishDeps {
|
|
|
20
30
|
onShasUpdated: (savedSha: string | null, mainSha: string | null) => void;
|
|
21
31
|
onPublishComplete?: () => void;
|
|
22
32
|
getBaseVersion: () => string | null;
|
|
33
|
+
/** Injected by EditorShell. On a 409 (concurrent edit) the save calls this to
|
|
34
|
+
* re-fetch the fresh draft, rebase local unsaved work on top, and refresh the
|
|
35
|
+
* optimistic-concurrency base (savedShaRef). Returns true when recovery
|
|
36
|
+
* succeeded and the save should be retried once; false (or undefined) means
|
|
37
|
+
* fall through to the honest conflict toast. */
|
|
38
|
+
recoverConflict?: () => Promise<boolean>;
|
|
39
|
+
/** Injected by EditorShell. After every successful plain save, receives the
|
|
40
|
+
* COMMITTED snapshot (sent content substituted into the previous clean
|
|
41
|
+
* baseline, plus the sent index) so the shell can re-prime the content-cache
|
|
42
|
+
* baseline that recoverConflict diffs against. Without this, the baseline
|
|
43
|
+
* dies at the first save (discardSavedChanges clears it) and later 409
|
|
44
|
+
* recoveries would silently merge local-wins. */
|
|
45
|
+
onBaselineCommitted?: (args: {
|
|
46
|
+
sha: string;
|
|
47
|
+
sections: LoadedSection[];
|
|
48
|
+
index: SiteIndex;
|
|
49
|
+
savedIds: string[];
|
|
50
|
+
}) => Promise<void>;
|
|
23
51
|
/** Test hook: overrides the per-request payload budget (default 4MB). */
|
|
24
52
|
saveChunkBudget?: number;
|
|
53
|
+
/** Injected by EditorShell. Mirrors this hook's in-flight-save state out to the
|
|
54
|
+
* shell so background collaboration handlers (e.g. the remote saved-event
|
|
55
|
+
* rebase) can defer while our own save's response path owns the state. */
|
|
56
|
+
savingRef?: React.MutableRefObject<boolean>;
|
|
57
|
+
/** Injected by EditorShell (persistence.currentGeneration). Read at save begin
|
|
58
|
+
* to mint the editToken passed back through onSuccess. Absent (tests without
|
|
59
|
+
* collab wiring): the token degrades to MAX_SAFE_INTEGER, i.e. "nothing was
|
|
60
|
+
* edited after capture" — the pre-generation wholesale-clear behavior. */
|
|
61
|
+
getEditGeneration?: () => number;
|
|
25
62
|
}
|
|
26
63
|
export type PublishAction = "idle" | "saving" | "publishing";
|
|
27
|
-
export declare function useEditorPublish({ flushNow, cancelPendingFlush, isConfigDirty, clearConfigDirty, siteIndexRef, siteConfig, sections, deletedSectionIds, onSuccess, mediaManifest, manifestDirty, clearManifestDirty, pendingMediaItems, pendingMediaDeletions, onMediaPublished, onShasUpdated, onPublishComplete, getBaseVersion, saveChunkBudget, }: PublishDeps): {
|
|
64
|
+
export declare function useEditorPublish({ flushNow, cancelPendingFlush, isConfigDirty, clearConfigDirty, siteIndexRef, siteConfig, sections, deletedSectionIds, onSuccess, mediaManifest, manifestDirty, clearManifestDirty, pendingMediaItems, pendingMediaDeletions, onMediaPublished, onShasUpdated, onPublishComplete, getBaseVersion, recoverConflict, onBaselineCommitted, saveChunkBudget, savingRef, getEditGeneration, }: PublishDeps): {
|
|
28
65
|
publishAction: PublishAction;
|
|
29
66
|
publishFeedback: string | null;
|
|
30
67
|
saveProgress: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditorPublish.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorPublish.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"useEditorPublish.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorPublish.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAkD/D,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;;mFAM+E;IAC/E,SAAS,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IACtG,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,iBAAiB,EAAE,SAAS,EAAE,CAAC;IAC/B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,gBAAgB,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtF,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzE,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAI/B,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACpC;;;;qDAIiD;IACjD,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC;;;;;sDAKkD;IAClD,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;QAAC,KAAK,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChI,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;+EAE2E;IAC3E,SAAS,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5C;;;+EAG2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC;CAClC;AAQD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE7D,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,iBAAiB,GAClB,EAAE,WAAW;;;;;;;EAieb"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { MediaFolder, MediaItem } from "../media/types";
|
|
2
|
+
import { type MediaDragData, type MediaFolderDragData } from "../lib/media-dnd";
|
|
3
|
+
interface UseFolderDropTargetArgs {
|
|
4
|
+
targetFolderId: string | null;
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
/** Refs (not values) so drops read fresh state without re-registering targets. */
|
|
7
|
+
foldersRef: React.RefObject<Record<string, MediaFolder>>;
|
|
8
|
+
itemsByIdRef: React.RefObject<Record<string, MediaItem>>;
|
|
9
|
+
onMoveMedia: (ids: string[], target: string | null) => void;
|
|
10
|
+
onMoveFolder: (id: string, target: string | null) => void;
|
|
11
|
+
/** Fired after a sustained drag hover (tree hover-to-expand). */
|
|
12
|
+
onDragHover?: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function useFolderDropTarget<E extends HTMLElement>({ targetFolderId, enabled, foldersRef, itemsByIdRef, onMoveMedia, onMoveFolder, onDragHover, }: UseFolderDropTargetArgs): {
|
|
15
|
+
ref: import("react").RefObject<E | null>;
|
|
16
|
+
isDropTarget: boolean;
|
|
17
|
+
};
|
|
18
|
+
interface UseMediaDraggableArgs {
|
|
19
|
+
enabled: boolean;
|
|
20
|
+
getDragData: () => MediaDragData | MediaFolderDragData;
|
|
21
|
+
}
|
|
22
|
+
export declare function useMediaDraggable<E extends HTMLElement>({ enabled, getDragData }: UseMediaDraggableArgs): {
|
|
23
|
+
ref: import("react").RefObject<E | null>;
|
|
24
|
+
isDragging: boolean;
|
|
25
|
+
};
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=useMediaFolderDnd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMediaFolderDnd.d.ts","sourceRoot":"","sources":["../../src/hooks/useMediaFolderDnd.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAGL,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAC7C,MAAM,kBAAkB,CAAC;AAK1B,UAAU,uBAAuB;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACzD,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACzD,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5D,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1D,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,WAAW,EAAE,EACzD,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,GAC1F,EAAE,uBAAuB;;;EAiEzB;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,aAAa,GAAG,mBAAmB,CAAC;CACxD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,qBAAqB;;;EA+BvG"}
|
|
@@ -14,8 +14,9 @@ interface UseMediaPipelineInput {
|
|
|
14
14
|
setDirtySectionIds: React.Dispatch<React.SetStateAction<Set<string>>>;
|
|
15
15
|
markSectionDirty: (sectionId: string, content: SectionContent) => void;
|
|
16
16
|
onUploadError?: (message: string) => void;
|
|
17
|
+
onUploadNotice?: (message: string) => void;
|
|
17
18
|
}
|
|
18
|
-
export declare function useMediaPipeline({ siteConfig, mediaManifest, setMediaManifest, sections, setSections, setLocalChangesExist, setDirtySectionIds, markSectionDirty, onUploadError, }: UseMediaPipelineInput): {
|
|
19
|
+
export declare function useMediaPipeline({ siteConfig, mediaManifest, setMediaManifest, sections, setSections, setLocalChangesExist, setDirtySectionIds, markSectionDirty, onUploadError, onUploadNotice, }: UseMediaPipelineInput): {
|
|
19
20
|
processingItems: QueueItem[];
|
|
20
21
|
pendingMediaItems: {
|
|
21
22
|
id: string;
|
|
@@ -36,6 +37,7 @@ export declare function useMediaPipeline({ siteConfig, mediaManifest, setMediaMa
|
|
|
36
37
|
storage: "github" | "assets";
|
|
37
38
|
url?: string | undefined;
|
|
38
39
|
duration?: number | undefined;
|
|
40
|
+
folderId?: string | undefined;
|
|
39
41
|
}[];
|
|
40
42
|
setPendingMediaItems: import("react").Dispatch<import("react").SetStateAction<{
|
|
41
43
|
id: string;
|
|
@@ -56,6 +58,7 @@ export declare function useMediaPipeline({ siteConfig, mediaManifest, setMediaMa
|
|
|
56
58
|
storage: "github" | "assets";
|
|
57
59
|
url?: string | undefined;
|
|
58
60
|
duration?: number | undefined;
|
|
61
|
+
folderId?: string | undefined;
|
|
59
62
|
}[]>>;
|
|
60
63
|
pendingLocalUrls: Record<string, string>;
|
|
61
64
|
setPendingLocalUrls: import("react").Dispatch<import("react").SetStateAction<Record<string, string>>>;
|
|
@@ -64,9 +67,18 @@ export declare function useMediaPipeline({ siteConfig, mediaManifest, setMediaMa
|
|
|
64
67
|
manifestDirty: boolean;
|
|
65
68
|
setManifestDirty: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
66
69
|
uploadProgress: Record<string, number>;
|
|
67
|
-
handleMediaUpload: (files: File[]) => Promise<void>;
|
|
70
|
+
handleMediaUpload: (files: File[], targetFolderId?: string | null) => Promise<void>;
|
|
68
71
|
handleMediaDelete: (ids: string[]) => Promise<void>;
|
|
69
72
|
handleMediaAltChange: (id: string, alt: string) => void;
|
|
73
|
+
handleFolderCreate: (name: string, parentId: string | null) => string;
|
|
74
|
+
handleFolderRename: (id: string, name: string) => void;
|
|
75
|
+
handleFolderMove: (id: string, parentId: string | null) => void;
|
|
76
|
+
handleFolderDelete: (id: string, contents: "move" | "delete") => Promise<void>;
|
|
77
|
+
handleMediaMove: (ids: string[], folderId: string | null) => void;
|
|
78
|
+
handleFolderUpload: (entries: {
|
|
79
|
+
file: File;
|
|
80
|
+
relativePath: string;
|
|
81
|
+
}[], currentFolderId: string | null) => Promise<void>;
|
|
70
82
|
referenceCountMap: Record<string, number>;
|
|
71
83
|
contextValue: MediaLibraryContextValue;
|
|
72
84
|
enqueueFile: (file: File, onComplete?: (imageId: string) => void) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMediaPipeline.d.ts","sourceRoot":"","sources":["../../src/hooks/useMediaPipeline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAiC,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"useMediaPipeline.d.ts","sourceRoot":"","sources":["../../src/hooks/useMediaPipeline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAiC,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAexF,UAAU,qBAAqB;IAC7B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACnE,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAIvE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAG1C,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,cAAc,GACf,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAkS8B,IAAI,EAAE,mBAAkB,MAAM,GAAG,IAAI;6BAyDvC,MAAM,EAAE;+BA+CZ,MAAM,OAAO,MAAM;+BAiBnB,MAAM,YAAY,MAAM,GAAG,IAAI,KAAG,MAAM;6BAW1C,MAAM,QAAQ,MAAM;2BAWtB,MAAM,YAAY,MAAM,GAAG,IAAI;6BA4BvB,MAAM,YAAY,MAAM,GAAG,QAAQ;2BAd3C,MAAM,EAAE,YAAY,MAAM,GAAG,IAAI;kCA4DhE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,mBAC9B,MAAM,GAAG,IAAI;;;wBAiCO,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;EAoFpF"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,19 @@ import {
|
|
|
12
12
|
verifyAudienceToken,
|
|
13
13
|
verifySessionToken
|
|
14
14
|
} from "./chunk-EM5DFHDZ.js";
|
|
15
|
+
import {
|
|
16
|
+
CollabPeerSchema,
|
|
17
|
+
HEARTBEAT_INTERVAL_MS,
|
|
18
|
+
IndexUpdateMessageSchema,
|
|
19
|
+
LOCK_STALE_MS,
|
|
20
|
+
SavedMessageSchema,
|
|
21
|
+
SectionUpdateMessageSchema,
|
|
22
|
+
TakeoverMessageSchema
|
|
23
|
+
} from "./chunk-REM2NH7K.js";
|
|
24
|
+
import {
|
|
25
|
+
getCollabProvider,
|
|
26
|
+
setCollabProvider
|
|
27
|
+
} from "./chunk-2G2S36SY.js";
|
|
15
28
|
import {
|
|
16
29
|
BAKED_MEDIA_KEYS,
|
|
17
30
|
EXT_TO_MIME,
|
|
@@ -19,6 +32,7 @@ import {
|
|
|
19
32
|
ProcessingQueue,
|
|
20
33
|
displayFilename,
|
|
21
34
|
displayFilenameExt,
|
|
35
|
+
displayName,
|
|
22
36
|
formatFileSize,
|
|
23
37
|
generateVideoPoster,
|
|
24
38
|
getMediaProvider,
|
|
@@ -29,13 +43,13 @@ import {
|
|
|
29
43
|
resolveMedia,
|
|
30
44
|
sanitizeMediaName,
|
|
31
45
|
setMediaProvider
|
|
32
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-3LNKOLZP.js";
|
|
33
47
|
import {
|
|
34
48
|
AudienceColorSchema,
|
|
35
49
|
AudienceNameSchema,
|
|
36
50
|
MediaGridOptionsSchema,
|
|
37
51
|
slugifyAudienceName
|
|
38
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-MK4POMLZ.js";
|
|
39
53
|
import {
|
|
40
54
|
AudienceSchema,
|
|
41
55
|
RoleSchema,
|
|
@@ -57,29 +71,29 @@ import {
|
|
|
57
71
|
loadStaticSiteContent,
|
|
58
72
|
mergeSiteContent,
|
|
59
73
|
safeRedirect
|
|
60
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-Z5IYWUW3.js";
|
|
75
|
+
import {
|
|
76
|
+
createEvent,
|
|
77
|
+
darkModeEvent,
|
|
78
|
+
editModeEvent,
|
|
79
|
+
navChangeEvent
|
|
80
|
+
} from "./chunk-677NTHAZ.js";
|
|
61
81
|
import {
|
|
62
82
|
isSameOriginRequest,
|
|
63
83
|
requireSessionSecret,
|
|
64
84
|
safeNextPath
|
|
65
85
|
} from "./chunk-S2L3BPLS.js";
|
|
66
86
|
import "./chunk-75P6HWPN.js";
|
|
87
|
+
import {
|
|
88
|
+
curatedIcons,
|
|
89
|
+
getIcon
|
|
90
|
+
} from "./chunk-WDSVHKAH.js";
|
|
67
91
|
import {
|
|
68
92
|
ensureSanitizer,
|
|
69
93
|
generateNavLinks,
|
|
70
94
|
sanitizeHtml,
|
|
71
95
|
toSectionId
|
|
72
96
|
} from "./chunk-53DKVAB6.js";
|
|
73
|
-
import {
|
|
74
|
-
curatedIcons,
|
|
75
|
-
getIcon
|
|
76
|
-
} from "./chunk-WDSVHKAH.js";
|
|
77
|
-
import {
|
|
78
|
-
createEvent,
|
|
79
|
-
darkModeEvent,
|
|
80
|
-
editModeEvent,
|
|
81
|
-
navChangeEvent
|
|
82
|
-
} from "./chunk-677NTHAZ.js";
|
|
83
97
|
import {
|
|
84
98
|
cn
|
|
85
99
|
} from "./chunk-7EOSDFS3.js";
|
|
@@ -90,17 +104,6 @@ import {
|
|
|
90
104
|
getSectionContentSchema,
|
|
91
105
|
getSectionSchema
|
|
92
106
|
} from "./chunk-TZQPOR5A.js";
|
|
93
|
-
import {
|
|
94
|
-
clearRegistry,
|
|
95
|
-
createRegistry,
|
|
96
|
-
defineSection,
|
|
97
|
-
getAllSchemas,
|
|
98
|
-
getAllSections,
|
|
99
|
-
getSchema,
|
|
100
|
-
getSection,
|
|
101
|
-
registerSchema,
|
|
102
|
-
registerSection
|
|
103
|
-
} from "./chunk-VKAGMEKE.js";
|
|
104
107
|
import {
|
|
105
108
|
ChatbotConfigSchema,
|
|
106
109
|
ChatbotTaskSchema,
|
|
@@ -109,6 +112,7 @@ import {
|
|
|
109
112
|
ImageManifestSchema,
|
|
110
113
|
IndexSchema,
|
|
111
114
|
MediaConfigSchema,
|
|
115
|
+
MediaFolderSchema,
|
|
112
116
|
MediaItemSchema,
|
|
113
117
|
MediaReferenceSchema,
|
|
114
118
|
PageSchema,
|
|
@@ -120,7 +124,18 @@ import {
|
|
|
120
124
|
TextLineSchema,
|
|
121
125
|
VariantSchema,
|
|
122
126
|
normalizeSiteIndex
|
|
123
|
-
} from "./chunk-
|
|
127
|
+
} from "./chunk-4SIWBWKZ.js";
|
|
128
|
+
import {
|
|
129
|
+
clearRegistry,
|
|
130
|
+
createRegistry,
|
|
131
|
+
defineSection,
|
|
132
|
+
getAllSchemas,
|
|
133
|
+
getAllSections,
|
|
134
|
+
getSchema,
|
|
135
|
+
getSection,
|
|
136
|
+
registerSchema,
|
|
137
|
+
registerSection
|
|
138
|
+
} from "./chunk-VKAGMEKE.js";
|
|
124
139
|
import "./chunk-NSCT3AMV.js";
|
|
125
140
|
import {
|
|
126
141
|
env
|
|
@@ -145,17 +160,22 @@ export {
|
|
|
145
160
|
BAKED_MEDIA_KEYS,
|
|
146
161
|
ChatbotConfigSchema,
|
|
147
162
|
ChatbotTaskSchema,
|
|
163
|
+
CollabPeerSchema,
|
|
148
164
|
DEFAULT_LINK,
|
|
149
165
|
EXT_TO_MIME,
|
|
150
166
|
FontNameSchema,
|
|
167
|
+
HEARTBEAT_INTERVAL_MS,
|
|
151
168
|
HexColorSchema,
|
|
152
169
|
ImageManifestSchema,
|
|
153
170
|
IndexSchema,
|
|
171
|
+
IndexUpdateMessageSchema,
|
|
172
|
+
LOCK_STALE_MS,
|
|
154
173
|
LastOwnerError,
|
|
155
174
|
LinkTargetSchema,
|
|
156
175
|
LinkValueSchema,
|
|
157
176
|
MIME_TO_EXT,
|
|
158
177
|
MediaConfigSchema,
|
|
178
|
+
MediaFolderSchema,
|
|
159
179
|
MediaGridOptionsSchema,
|
|
160
180
|
MediaItemSchema,
|
|
161
181
|
MediaReferenceSchema,
|
|
@@ -166,13 +186,16 @@ export {
|
|
|
166
186
|
RoleSchema,
|
|
167
187
|
SESSION_COOKIE,
|
|
168
188
|
SESSION_MAX_AGE_SECONDS,
|
|
189
|
+
SavedMessageSchema,
|
|
169
190
|
SectionMetaSchema,
|
|
191
|
+
SectionUpdateMessageSchema,
|
|
170
192
|
SessionExpiredError,
|
|
171
193
|
SessionSchema,
|
|
172
194
|
SingleMediaReferenceSchema,
|
|
173
195
|
SiteConfigSchema,
|
|
174
196
|
SiteUserSchema,
|
|
175
197
|
StorageConflictError,
|
|
198
|
+
TakeoverMessageSchema,
|
|
176
199
|
TextLineSchema,
|
|
177
200
|
VariantSchema,
|
|
178
201
|
audiencePasses,
|
|
@@ -188,6 +211,7 @@ export {
|
|
|
188
211
|
deriveUiCapabilities,
|
|
189
212
|
displayFilename,
|
|
190
213
|
displayFilenameExt,
|
|
214
|
+
displayName,
|
|
191
215
|
editModeEvent,
|
|
192
216
|
ensureSanitizer,
|
|
193
217
|
env,
|
|
@@ -197,6 +221,7 @@ export {
|
|
|
197
221
|
generateVideoPoster,
|
|
198
222
|
getAllSchemas,
|
|
199
223
|
getAllSections,
|
|
224
|
+
getCollabProvider,
|
|
200
225
|
getIcon,
|
|
201
226
|
getMediaProvider,
|
|
202
227
|
getSchema,
|
|
@@ -223,6 +248,7 @@ export {
|
|
|
223
248
|
safeRedirect,
|
|
224
249
|
sanitizeHtml,
|
|
225
250
|
sanitizeMediaName,
|
|
251
|
+
setCollabProvider,
|
|
226
252
|
setMediaProvider,
|
|
227
253
|
setSessionCookie,
|
|
228
254
|
signAudienceToken,
|
package/dist/lib/dexie.d.ts
CHANGED
|
@@ -2,6 +2,13 @@ import type { SectionContent } from "../schemas/sections";
|
|
|
2
2
|
import type { SiteIndex, SiteConfig } from "../schemas/site-config";
|
|
3
3
|
import type { LoadedSection } from "./loader";
|
|
4
4
|
import type { MediaManifest, MediaItem } from "../media/types";
|
|
5
|
+
export interface PreservedEditRow {
|
|
6
|
+
id: string;
|
|
7
|
+
sectionId: string;
|
|
8
|
+
content: SectionContent;
|
|
9
|
+
reason: "takeover" | "conflict";
|
|
10
|
+
preservedAt: string;
|
|
11
|
+
}
|
|
5
12
|
export declare function initEditorStore(siteId: string): void;
|
|
6
13
|
export declare function checkForLocalChanges(): Promise<{
|
|
7
14
|
latestTimestamp: string;
|
|
@@ -87,4 +94,9 @@ export declare function removePendingMediaDeletion(id: string): Promise<void>;
|
|
|
87
94
|
export declare function getPendingMediaDeletions(): Promise<string[]>;
|
|
88
95
|
export declare function clearPendingMedia(): Promise<void>;
|
|
89
96
|
export declare function clearPendingMediaByIds(itemIds: string[], deletionIds: string[]): Promise<void>;
|
|
97
|
+
/** Snapshot a local edit that is about to be superseded (takeover or conflict
|
|
98
|
+
* resolution) so it is recoverable rather than silently destroyed. */
|
|
99
|
+
export declare function preserveEdit(sectionId: string, content: SectionContent, reason: "takeover" | "conflict"): Promise<string>;
|
|
100
|
+
export declare function listPreservedEdits(): Promise<PreservedEditRow[]>;
|
|
101
|
+
export declare function removePreservedEdit(id: string): Promise<void>;
|
|
90
102
|
//# sourceMappingURL=dexie.d.ts.map
|
package/dist/lib/dexie.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dexie.d.ts","sourceRoot":"","sources":["../../src/lib/dexie.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAe,UAAU,EAAQ,MAAM,wBAAwB,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"dexie.d.ts","sourceRoot":"","sources":["../../src/lib/dexie.ts"],"names":[],"mappings":"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"}
|