@pixerate/editor-svelte 0.112.0 → 0.113.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,11 @@
|
|
|
1
|
+
import { type CanvasEdge, type CanvasEdgeLike, type CanvasEditorDocument, type CanvasEditorDocumentOptions, type CanvasNode } from '@pixerate/editor/canvas';
|
|
2
|
+
import type { EditorDocument } from '@pixerate/editor/persistence';
|
|
3
|
+
export type CreateCanvasDocumentOptions<TNode extends CanvasNode = CanvasNode, TEdge extends CanvasEdgeLike = CanvasEdge> = Omit<CanvasEditorDocumentOptions<TNode, TEdge>, 'subscribe'>;
|
|
4
|
+
/**
|
|
5
|
+
* Svelte 5 rune: the save / load / undo contract (kind `canvas`) for nodes and edges held in
|
|
6
|
+
* `$state`, for `createEditorAutosave` or `createDocumentToolProvider`. Reads `getNodes()` /
|
|
7
|
+
* `getEdges()` reactively, so changes the history does not see (a finished drag, an edge
|
|
8
|
+
* removed by Svelte Flow) count too; selection, measuring and drag frames do not. Parity with
|
|
9
|
+
* React's `useCanvasEditorDocument`. Call `destroy()` when done.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createCanvasDocument<TNode extends CanvasNode = CanvasNode, TEdge extends CanvasEdgeLike = CanvasEdge>(options: CreateCanvasDocumentOptions<TNode, TEdge>): EditorDocument<CanvasEditorDocument<TNode, TEdge>>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { createCanvasEditorDocument } from '@pixerate/editor/canvas';
|
|
2
|
+
const contentKey = (nodes, edges) => JSON.stringify([
|
|
3
|
+
nodes.map(({ selected: _s, dragging: _d, measured: _m, resizing: _r, ...rest }) => rest),
|
|
4
|
+
edges.map(({ selected: _s, ...rest }) => rest)
|
|
5
|
+
]);
|
|
6
|
+
/**
|
|
7
|
+
* Svelte 5 rune: the save / load / undo contract (kind `canvas`) for nodes and edges held in
|
|
8
|
+
* `$state`, for `createEditorAutosave` or `createDocumentToolProvider`. Reads `getNodes()` /
|
|
9
|
+
* `getEdges()` reactively, so changes the history does not see (a finished drag, an edge
|
|
10
|
+
* removed by Svelte Flow) count too; selection, measuring and drag frames do not. Parity with
|
|
11
|
+
* React's `useCanvasEditorDocument`. Call `destroy()` when done.
|
|
12
|
+
*/
|
|
13
|
+
export function createCanvasDocument(options) {
|
|
14
|
+
const listeners = new Set();
|
|
15
|
+
const doc = createCanvasEditorDocument({
|
|
16
|
+
...options,
|
|
17
|
+
subscribe: (listener) => {
|
|
18
|
+
listeners.add(listener);
|
|
19
|
+
return () => listeners.delete(listener);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
let lastKey = null;
|
|
23
|
+
const stop = $effect.root(() => {
|
|
24
|
+
$effect(() => {
|
|
25
|
+
const nodes = options.getNodes();
|
|
26
|
+
const edges = options.getEdges();
|
|
27
|
+
if (nodes.some((n) => n.dragging))
|
|
28
|
+
return;
|
|
29
|
+
const key = contentKey(nodes, edges);
|
|
30
|
+
if (lastKey !== null && key !== lastKey)
|
|
31
|
+
listeners.forEach((listener) => listener());
|
|
32
|
+
lastKey = key;
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
return {
|
|
36
|
+
...doc,
|
|
37
|
+
destroy() {
|
|
38
|
+
stop();
|
|
39
|
+
doc.destroy();
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
package/dist/canvas/index.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export { createStreamingCanvas, type CreateStreamingCanvasOptions } from './crea
|
|
|
18
18
|
export { createCanvasArrange, createCanvasArrangeShortcuts, type CanvasArrange, type CreateCanvasArrangeOptions, type CanvasArrangeShortcutsOptions } from './createCanvasArrange.svelte.js';
|
|
19
19
|
export { createCanvasScenes, type CanvasScenes, type CreateCanvasScenesOptions } from './createCanvasScenes.svelte.js';
|
|
20
20
|
export { createCanvasCapture, type CreateCanvasCaptureOptions } from './createCanvasCapture.js';
|
|
21
|
+
export { createCanvasDocument, type CreateCanvasDocumentOptions } from './createCanvasDocument.svelte.js';
|
|
21
22
|
export { createCanvasPlaybackSurface, type CreateCanvasPlaybackSurfaceOptions } from './createCanvasPlaybackSurface.svelte.js';
|
|
22
23
|
export { default as PresenceLayer } from '../playback/PresenceLayer.svelte';
|
|
23
24
|
export { default as CanvasGuidesLayer } from './CanvasGuidesLayer.svelte';
|
package/dist/canvas/index.js
CHANGED
|
@@ -36,6 +36,7 @@ export { createStreamingCanvas } from './createStreamingCanvas.svelte.js';
|
|
|
36
36
|
export { createCanvasArrange, createCanvasArrangeShortcuts } from './createCanvasArrange.svelte.js';
|
|
37
37
|
export { createCanvasScenes } from './createCanvasScenes.svelte.js';
|
|
38
38
|
export { createCanvasCapture } from './createCanvasCapture.js';
|
|
39
|
+
export { createCanvasDocument } from './createCanvasDocument.svelte.js';
|
|
39
40
|
export { createCanvasPlaybackSurface } from './createCanvasPlaybackSurface.svelte.js';
|
|
40
41
|
export { default as PresenceLayer } from '../playback/PresenceLayer.svelte';
|
|
41
42
|
export { default as CanvasGuidesLayer } from './CanvasGuidesLayer.svelte';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixerate/editor-svelte",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.113.0",
|
|
4
4
|
"description": "Svelte bindings and prompt/rich-text components for @pixerate/editor",
|
|
5
5
|
"author": "Pixerate",
|
|
6
6
|
"license": "MIT",
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"@tiptap/extension-bubble-menu": "^2.27.3",
|
|
161
161
|
"@tiptap/extension-placeholder": "^2.27.3",
|
|
162
162
|
"@tiptap/starter-kit": "^2.27.3",
|
|
163
|
-
"@pixerate/editor": "0.
|
|
163
|
+
"@pixerate/editor": "0.154.0"
|
|
164
164
|
},
|
|
165
165
|
"peerDependencies": {
|
|
166
166
|
"@dagrejs/dagre": "^1.1.4",
|