@mdzip/editor-react 1.2.0

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.
@@ -0,0 +1,41 @@
1
+ import type { MdzipControlPolicy, MdzipControlPreset, MdzipColorScheme, MdzipDocumentChangeEvent, MdzipEditorCommand, MdzipEditorSnapshot, MdzipNavigationMode, MdzipRemoveAssetOptions, MdzipSourceFormat, MdzipWorkspaceChange, MdzipWorkspaceLayout, MdzipWorkspaceMode, MdzipWorkspaceSave, MdzipWorkspaceSnapshot, MdzWorkspace, MdzWorkspaceAsset } from 'mdzip-editor';
2
+ export interface MdzipWorkspaceProps {
3
+ bytes?: Uint8Array | null;
4
+ workspace?: MdzWorkspace | null;
5
+ fileName?: string;
6
+ mode?: MdzipWorkspaceMode;
7
+ sourceFormat?: MdzipSourceFormat;
8
+ controls?: MdzipControlPreset | MdzipControlPolicy;
9
+ initialLayout?: MdzipWorkspaceLayout;
10
+ initialColorScheme?: MdzipColorScheme;
11
+ navigationMode?: MdzipNavigationMode;
12
+ navigationButtonActive?: boolean;
13
+ onChanged?: (event: MdzipWorkspaceChange) => void;
14
+ onSaved?: (event: MdzipWorkspaceSave) => void;
15
+ onWorkspaceChanged?: (event: MdzipDocumentChangeEvent) => void;
16
+ onDocumentChanged?: (event: MdzipDocumentChangeEvent) => void;
17
+ onAssetChanged?: (event: MdzipDocumentChangeEvent) => void;
18
+ onManifestChanged?: (event: MdzipDocumentChangeEvent) => void;
19
+ onSnapshotChanged?: (snapshot: MdzipWorkspaceSnapshot) => void;
20
+ onSelectionChanged?: (snapshot: MdzipWorkspaceSnapshot) => void;
21
+ onDirtyChanged?: (snapshot: MdzipWorkspaceSnapshot) => void;
22
+ onValidationChanged?: (snapshot: MdzipWorkspaceSnapshot) => void;
23
+ onColorSchemeChanged?: (colorScheme: MdzipColorScheme) => void;
24
+ onFailed?: (error: unknown) => void;
25
+ }
26
+ export interface MdzipWorkspaceHandle {
27
+ canExecuteCommand(command: MdzipEditorCommand): boolean;
28
+ executeCommand(command: MdzipEditorCommand, file?: File): Promise<boolean>;
29
+ convertToMdz(): Promise<boolean>;
30
+ flush(): Promise<MdzipEditorSnapshot | null>;
31
+ serialize(): Promise<Blob | null>;
32
+ getCurrentSnapshot(): Promise<MdzipEditorSnapshot | null>;
33
+ markPersisted(): void;
34
+ addAsset(archivePath: string, fileBytes: Uint8Array): Promise<void>;
35
+ replaceAsset(archivePath: string, fileBytes: Uint8Array): Promise<boolean>;
36
+ removeAsset(archivePath: string, options?: MdzipRemoveAssetOptions): Promise<boolean>;
37
+ listAssets(): MdzWorkspaceAsset[];
38
+ focus(): void;
39
+ }
40
+ export declare const MdzipWorkspace: import("react").ForwardRefExoticComponent<MdzipWorkspaceProps & import("react").RefAttributes<MdzipWorkspaceHandle>>;
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,74 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';
3
+ import { MdzipWorkspaceView } from 'mdzip-editor';
4
+ export const MdzipWorkspace = forwardRef(function MdzipWorkspace({ bytes, workspace, fileName = 'document.mdz', mode = 'read-only', sourceFormat, controls = 'viewer', initialLayout, initialColorScheme, navigationMode, navigationButtonActive, onChanged, onSaved, onWorkspaceChanged, onDocumentChanged, onAssetChanged, onManifestChanged, onSnapshotChanged, onSelectionChanged, onDirtyChanged, onValidationChanged, onColorSchemeChanged, onFailed, }, forwardedRef) {
5
+ const ref = useRef(null);
6
+ const viewRef = useRef(null);
7
+ useImperativeHandle(forwardedRef, () => ({
8
+ canExecuteCommand: (command) => viewRef.current?.canExecuteCommand(command) ?? false,
9
+ executeCommand: (command, file) => viewRef.current?.executeCommand(command, file) ?? Promise.resolve(false),
10
+ convertToMdz: () => viewRef.current?.convertToMdz() ?? Promise.resolve(false),
11
+ flush: () => viewRef.current?.flush() ?? Promise.resolve(null),
12
+ serialize: () => viewRef.current?.serialize() ?? Promise.resolve(null),
13
+ getCurrentSnapshot: () => viewRef.current?.getCurrentSnapshot() ?? Promise.resolve(null),
14
+ markPersisted: () => viewRef.current?.markPersisted(),
15
+ addAsset: (archivePath, fileBytes) => viewRef.current?.addAsset(archivePath, fileBytes) ?? Promise.resolve(),
16
+ replaceAsset: (archivePath, fileBytes) => viewRef.current?.replaceAsset(archivePath, fileBytes) ?? Promise.resolve(false),
17
+ removeAsset: (archivePath, options) => viewRef.current?.removeAsset(archivePath, options) ?? Promise.resolve(false),
18
+ listAssets: () => viewRef.current?.listAssets() ?? [],
19
+ focus: () => viewRef.current?.focus()
20
+ }), []);
21
+ useEffect(() => {
22
+ if (!ref.current)
23
+ return;
24
+ const view = new MdzipWorkspaceView(ref.current, {
25
+ controls,
26
+ initialLayout,
27
+ initialColorScheme,
28
+ navigationMode,
29
+ navigationButtonActive,
30
+ onChanged: (bytes, snapshot) => onChanged?.({ bytes, snapshot }),
31
+ onSaved: (bytes, snapshot) => onSaved?.({ bytes, snapshot }),
32
+ onWorkspaceChanged,
33
+ onDocumentChanged,
34
+ onAssetChanged,
35
+ onManifestChanged,
36
+ onSnapshotChanged,
37
+ onSelectionChanged,
38
+ onDirtyChanged,
39
+ onValidationChanged,
40
+ onColorSchemeChanged,
41
+ onFailed: (e) => onFailed?.(e),
42
+ });
43
+ viewRef.current = view;
44
+ return () => { view.destroy(); viewRef.current = null; };
45
+ }, [
46
+ controls,
47
+ initialLayout,
48
+ initialColorScheme,
49
+ navigationMode,
50
+ navigationButtonActive,
51
+ onChanged,
52
+ onSaved,
53
+ onWorkspaceChanged,
54
+ onDocumentChanged,
55
+ onAssetChanged,
56
+ onManifestChanged,
57
+ onSnapshotChanged,
58
+ onSelectionChanged,
59
+ onDirtyChanged,
60
+ onValidationChanged,
61
+ onColorSchemeChanged,
62
+ onFailed
63
+ ]);
64
+ useEffect(() => {
65
+ if (viewRef.current && workspace) {
66
+ void viewRef.current.openWorkspace(workspace, { mode, sourceFormat, fileName });
67
+ }
68
+ else if (viewRef.current && bytes) {
69
+ void viewRef.current.open(bytes, { mode, sourceFormat, fileName });
70
+ }
71
+ }, [bytes, workspace, mode, sourceFormat, fileName]);
72
+ return _jsx("div", { ref: ref, style: { height: '100%', overflow: 'hidden' } });
73
+ });
74
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@mdzip/editor-react",
3
+ "version": "1.2.0",
4
+ "description": "React wrapper for the MDZip workspace editor.",
5
+ "license": "Apache-2.0",
6
+ "type": "module",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc -p tsconfig.json"
20
+ },
21
+ "dependencies": {
22
+ "mdzip-editor": "1.2.0"
23
+ },
24
+ "peerDependencies": {
25
+ "react": ">=18.0.0",
26
+ "react-dom": ">=18.0.0"
27
+ },
28
+ "devDependencies": {
29
+ "@types/react": "^19.1.6",
30
+ "@types/react-dom": "^19.1.5"
31
+ },
32
+ "publishConfig": {
33
+ "access": "public"
34
+ }
35
+ }