@pixerate/editor-svelte 0.49.0 → 0.51.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.
Files changed (32) hide show
  1. package/dist/animation-editor/AnimationEditor.svelte +30 -0
  2. package/dist/animation-editor/AnimationEditor.svelte.d.ts +12 -0
  3. package/dist/animation-editor/AnimationEditor.svelte.d.ts.map +1 -0
  4. package/dist/animation-editor/AnimationStage.svelte +30 -0
  5. package/dist/animation-editor/AnimationStage.svelte.d.ts +11 -0
  6. package/dist/animation-editor/AnimationStage.svelte.d.ts.map +1 -0
  7. package/dist/animation-editor/ShotTimeline.svelte +68 -0
  8. package/dist/animation-editor/ShotTimeline.svelte.d.ts +9 -0
  9. package/dist/animation-editor/ShotTimeline.svelte.d.ts.map +1 -0
  10. package/dist/animation-editor/createAnimationEditor.svelte.d.ts +33 -0
  11. package/dist/animation-editor/createAnimationEditor.svelte.d.ts.map +1 -0
  12. package/dist/animation-editor/createAnimationEditor.svelte.js +61 -0
  13. package/dist/animation-editor/index.d.ts +12 -0
  14. package/dist/animation-editor/index.d.ts.map +1 -0
  15. package/dist/animation-editor/index.js +4 -0
  16. package/dist/canvas/MermaidFamilyScene.svelte +171 -0
  17. package/dist/canvas/MermaidFamilyScene.svelte.d.ts +25 -0
  18. package/dist/canvas/MermaidFamilyScene.svelte.d.ts.map +1 -0
  19. package/dist/canvas/MermaidThumbnail.svelte +28 -0
  20. package/dist/canvas/MermaidThumbnail.svelte.d.ts +14 -0
  21. package/dist/canvas/MermaidThumbnail.svelte.d.ts.map +1 -0
  22. package/dist/canvas/createCanvasAnimation.svelte.d.ts.map +1 -1
  23. package/dist/canvas/createCanvasArrange.svelte.d.ts.map +1 -1
  24. package/dist/canvas/createCanvasAutoLayout.svelte.d.ts.map +1 -1
  25. package/dist/canvas/createCanvasComponents.svelte.d.ts.map +1 -1
  26. package/dist/canvas/createMermaidDiagram.svelte.d.ts +14 -2
  27. package/dist/canvas/createMermaidDiagram.svelte.d.ts.map +1 -1
  28. package/dist/canvas/createMermaidDiagram.svelte.js +16 -3
  29. package/dist/canvas/index.d.ts +2 -0
  30. package/dist/canvas/index.d.ts.map +1 -1
  31. package/dist/canvas/index.js +5 -1
  32. package/package.json +10 -2
@@ -0,0 +1,30 @@
1
+ <script lang="ts">
2
+ import { motionIssueLine, type AnimationEditorController, type MotionFrameOptions } from '@pixerate/editor/animation-editor';
3
+ import AnimationStage from './AnimationStage.svelte';
4
+ import ShotTimeline from './ShotTimeline.svelte';
5
+ import { animationEditorStateOf } from './createAnimationEditor.svelte.js';
6
+
7
+ interface Props {
8
+ controller: AnimationEditorController;
9
+ values?: MotionFrameOptions['values'];
10
+ /** List the scene's issues under the timeline (default true). */
11
+ showIssues?: boolean;
12
+ class?: string;
13
+ }
14
+
15
+ let { controller, values, showIssues = true, class: className = '' }: Props = $props();
16
+ const view = animationEditorStateOf(() => controller);
17
+ </script>
18
+
19
+ <!-- Stage, shot timeline and issue list for an AnimationEditorController. -->
20
+ <div class="flex flex-col gap-2 {className}" data-animation-editor="">
21
+ <AnimationStage {controller} {values} class="rounded-md border border-border bg-muted/40" />
22
+ <ShotTimeline {controller} />
23
+ {#if showIssues && view.current.issues.length > 0}
24
+ <ul class="space-y-0.5 text-xs" aria-label="Animation issues">
25
+ {#each view.current.issues as issue, i (i)}
26
+ <li class={issue.severity === 'error' ? 'text-red-500' : issue.severity === 'warning' ? 'text-amber-500' : 'text-muted-foreground'}>{motionIssueLine(issue)}</li>
27
+ {/each}
28
+ </ul>
29
+ {/if}
30
+ </div>
@@ -0,0 +1,12 @@
1
+ import { type AnimationEditorController, type MotionFrameOptions } from '@pixerate/editor/animation-editor';
2
+ interface Props {
3
+ controller: AnimationEditorController;
4
+ values?: MotionFrameOptions['values'];
5
+ /** List the scene's issues under the timeline (default true). */
6
+ showIssues?: boolean;
7
+ class?: string;
8
+ }
9
+ declare const AnimationEditor: import("svelte").Component<Props, {}, "">;
10
+ type AnimationEditor = ReturnType<typeof AnimationEditor>;
11
+ export default AnimationEditor;
12
+ //# sourceMappingURL=AnimationEditor.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationEditor.svelte.d.ts","sourceRoot":"","sources":["../../src/animation-editor/AnimationEditor.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,yBAAyB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAM3H,UAAU,KAAK;IACb,UAAU,EAAE,yBAAyB,CAAC;IACtC,MAAM,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,iEAAiE;IACjE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA2BH,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
@@ -0,0 +1,30 @@
1
+ <script lang="ts">
2
+ import type { AnimationEditorController, MotionFrameOptions } from '@pixerate/editor/animation-editor';
3
+ import { animationEditorStateOf } from './createAnimationEditor.svelte.js';
4
+
5
+ interface Props {
6
+ controller: AnimationEditorController;
7
+ /** Control values to preview (`{ accent: "#0ea5e9" }`). */
8
+ values?: MotionFrameOptions['values'];
9
+ class?: string;
10
+ }
11
+
12
+ let { controller, values, class: className = '' }: Props = $props();
13
+ const view = animationEditorStateOf(() => controller);
14
+ const svg = $derived(
15
+ controller
16
+ .toSvg(view.current.time, { pretty: false, idPrefix: 'ae-', values })
17
+ .replace(/<svg ([^>]*?)width="[^"]*" height="[^"]*"/, '<svg $1width="100%" height="100%"')
18
+ );
19
+ </script>
20
+
21
+ <!-- The frame at the playhead, drawn as inline SVG scaled to the stage's width. -->
22
+ <div
23
+ class="relative overflow-hidden {className}"
24
+ style="aspect-ratio:{view.current.scene.artwork.width} / {view.current.scene.artwork.height}"
25
+ data-animation-stage=""
26
+ role="img"
27
+ aria-label="{view.current.scene.name} at {(view.current.time / 1000).toFixed(2)} s"
28
+ >
29
+ {@html svg}
30
+ </div>
@@ -0,0 +1,11 @@
1
+ import type { AnimationEditorController, MotionFrameOptions } from '@pixerate/editor/animation-editor';
2
+ interface Props {
3
+ controller: AnimationEditorController;
4
+ /** Control values to preview (`{ accent: "#0ea5e9" }`). */
5
+ values?: MotionFrameOptions['values'];
6
+ class?: string;
7
+ }
8
+ declare const AnimationStage: import("svelte").Component<Props, {}, "">;
9
+ type AnimationStage = ReturnType<typeof AnimationStage>;
10
+ export default AnimationStage;
11
+ //# sourceMappingURL=AnimationStage.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationStage.svelte.d.ts","sourceRoot":"","sources":["../../src/animation-editor/AnimationStage.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAIrG,UAAU,KAAK;IACb,UAAU,EAAE,yBAAyB,CAAC;IACtC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsBH,QAAA,MAAM,cAAc,2CAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
@@ -0,0 +1,68 @@
1
+ <script lang="ts">
2
+ import type { AnimationEditorController, MotionIssue } from '@pixerate/editor/animation-editor';
3
+ import { animationEditorStateOf } from './createAnimationEditor.svelte.js';
4
+
5
+ interface Props {
6
+ controller: AnimationEditorController;
7
+ class?: string;
8
+ }
9
+
10
+ let { controller, class: className = '' }: Props = $props();
11
+ const view = animationEditorStateOf(() => controller);
12
+ const state = $derived(view.current);
13
+ const span = $derived(Math.max(1, state.duration));
14
+ const seconds = (ms: number) => `${(ms / 1000).toFixed(1)} s`;
15
+ const worst = (issues: readonly MotionIssue[]): 'error' | 'warning' | null =>
16
+ issues.some((i) => i.severity === 'error') ? 'error' : issues.some((i) => i.severity === 'warning') ? 'warning' : null;
17
+
18
+ function onRuler(event: PointerEvent) {
19
+ const box = (event.currentTarget as HTMLElement).getBoundingClientRect();
20
+ controller.seek(((event.clientX - box.left) / Math.max(1, box.width)) * span);
21
+ }
22
+ function onKey(event: KeyboardEvent) {
23
+ if (event.key === 'ArrowRight') controller.seek(state.time + 100);
24
+ if (event.key === 'ArrowLeft') controller.seek(state.time - 100);
25
+ }
26
+ </script>
27
+
28
+ <!-- Play / pause, the playhead and one block per shot (as wide as it is long). -->
29
+ <div class="flex flex-col gap-1 {className}" data-shot-timeline="">
30
+ <div class="flex items-center gap-2 text-xs">
31
+ <button type="button" class="rounded border border-border px-2 py-0.5" onclick={() => controller.toggle()} aria-label={state.playing ? 'Pause' : 'Play'} disabled={!state.shots.length}>
32
+ {state.playing ? 'Pause' : 'Play'}
33
+ </button>
34
+ <span class="tabular-nums text-muted-foreground">{seconds(state.time)} / {seconds(state.duration)}</span>
35
+ </div>
36
+ <div
37
+ class="relative h-3 cursor-pointer rounded bg-muted"
38
+ onpointerdown={onRuler}
39
+ onkeydown={onKey}
40
+ role="slider"
41
+ aria-label="Playhead"
42
+ aria-valuemin={0}
43
+ aria-valuemax={state.duration}
44
+ aria-valuenow={Math.round(state.time)}
45
+ tabindex="0"
46
+ >
47
+ <div class="absolute inset-y-0 w-0.5 bg-rose-500" style="left:{(state.time / span) * 100}%"></div>
48
+ </div>
49
+ <div class="flex w-full gap-px" role="group" aria-label="Shots">
50
+ {#each state.shots as shot (shot.id)}
51
+ {@const mark = worst(state.issues.filter((i) => i.shot === shot.id))}
52
+ <button
53
+ type="button"
54
+ class="min-w-0 truncate rounded border px-1 py-1 text-left text-[11px] {state.selection?.shot === shot.id ? 'border-rose-500 bg-rose-500/10' : 'border-border'} {state.currentShot === shot.id ? 'font-semibold' : ''}"
55
+ style="flex-grow:{Math.max(1, shot.end - shot.start)};flex-basis:0"
56
+ title="{shot.label ?? shot.id} · {seconds(shot.end - shot.start)}"
57
+ data-shot={shot.id}
58
+ data-issue={mark ?? undefined}
59
+ onclick={() => {
60
+ controller.select({ shot: shot.id });
61
+ controller.seekShot(shot.id);
62
+ }}
63
+ >
64
+ {#if mark}<span class={mark === 'error' ? 'text-red-500' : 'text-amber-500'}>● </span>{/if}{shot.label ?? shot.id}
65
+ </button>
66
+ {/each}
67
+ </div>
68
+ </div>
@@ -0,0 +1,9 @@
1
+ import type { AnimationEditorController } from '@pixerate/editor/animation-editor';
2
+ interface Props {
3
+ controller: AnimationEditorController;
4
+ class?: string;
5
+ }
6
+ declare const ShotTimeline: import("svelte").Component<Props, {}, "">;
7
+ type ShotTimeline = ReturnType<typeof ShotTimeline>;
8
+ export default ShotTimeline;
9
+ //# sourceMappingURL=ShotTimeline.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShotTimeline.svelte.d.ts","sourceRoot":"","sources":["../../src/animation-editor/ShotTimeline.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAe,MAAM,mCAAmC,CAAC;AAI9F,UAAU,KAAK;IACb,UAAU,EAAE,yBAAyB,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkDH,QAAA,MAAM,YAAY,2CAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { AnimationEditorController, type AnimationEditorOptions, type AnimationEditorState, type AnimationEditorToolProviderOptions } from "@pixerate/editor/animation-editor";
2
+ import type { ToolRegistry } from "@pixerate/editor/tools";
3
+ export interface SvelteAnimationEditor {
4
+ readonly controller: AnimationEditorController;
5
+ /** The controller's state (reactive, including each played frame). */
6
+ readonly state: AnimationEditorState;
7
+ play(): void;
8
+ pause(): void;
9
+ toggle(): void;
10
+ seek(time: number): void;
11
+ undo(): void;
12
+ redo(): void;
13
+ /** The frame at the playhead as SVG. */
14
+ toSvg(): string;
15
+ /** Stops listening to the controller (and destroys it when this rune created it). */
16
+ destroy(): void;
17
+ }
18
+ /**
19
+ * Svelte 5 rune: subscribes to an `AnimationEditorController` (or creates one from options)
20
+ * and exposes its state reactively with bound actions.
21
+ */
22
+ export declare function createAnimationEditor(controllerOrOptions?: AnimationEditorController | AnimationEditorOptions): SvelteAnimationEditor;
23
+ /** Reactive state of a (possibly replaced) controller prop, for use inside components. */
24
+ export declare function animationEditorStateOf(getController: () => AnimationEditorController): {
25
+ readonly current: AnimationEditorState;
26
+ };
27
+ /**
28
+ * Registers the animation editor's agent tools (`get_animation`, `add_commands`,
29
+ * `export_flair_effect`, …) for the lifetime of the calling component (call it during
30
+ * initialisation). Pass a getter to follow a changing registry.
31
+ */
32
+ export declare function useAnimationEditorTools(registry: ToolRegistry | null | undefined | (() => ToolRegistry | null | undefined), controller: AnimationEditorController, options?: AnimationEditorToolProviderOptions): void;
33
+ //# sourceMappingURL=createAnimationEditor.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createAnimationEditor.svelte.d.ts","sourceRoot":"","sources":["../../src/animation-editor/createAnimationEditor.svelte.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EAEzB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,kCAAkC,EACxC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAC/C,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,IAAI,IAAI,CAAC;IACf,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;IACb,wCAAwC;IACxC,KAAK,IAAI,MAAM,CAAC;IAChB,qFAAqF;IACrF,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,mBAAmB,GAAE,yBAAyB,GAAG,sBAA2B,GAAG,qBAAqB,CAwBzI;AAED,0FAA0F;AAC1F,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,yBAAyB,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,CAgBjI;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC,EACnF,UAAU,EAAE,yBAAyB,EACrC,OAAO,GAAE,kCAAuC,GAC/C,IAAI,CAMN"}
@@ -0,0 +1,61 @@
1
+ import { untrack } from "svelte";
2
+ import { AnimationEditorController, createAnimationEditorToolProvider, } from "@pixerate/editor/animation-editor";
3
+ /**
4
+ * Svelte 5 rune: subscribes to an `AnimationEditorController` (or creates one from options)
5
+ * and exposes its state reactively with bound actions.
6
+ */
7
+ export function createAnimationEditor(controllerOrOptions = {}) {
8
+ const owned = !(controllerOrOptions instanceof AnimationEditorController);
9
+ const controller = controllerOrOptions instanceof AnimationEditorController ? controllerOrOptions : new AnimationEditorController(controllerOrOptions);
10
+ let state = $state.raw(controller.getState());
11
+ const unsubscribe = controller.subscribe((next) => {
12
+ state = next;
13
+ });
14
+ return {
15
+ controller,
16
+ get state() {
17
+ return state;
18
+ },
19
+ play: () => controller.play(),
20
+ pause: () => controller.pause(),
21
+ toggle: () => controller.toggle(),
22
+ seek: (time) => controller.seek(time),
23
+ undo: () => void controller.undo(),
24
+ redo: () => void controller.redo(),
25
+ toSvg: () => controller.toSvg(),
26
+ destroy: () => {
27
+ unsubscribe();
28
+ if (owned)
29
+ controller.destroy();
30
+ },
31
+ };
32
+ }
33
+ /** Reactive state of a (possibly replaced) controller prop, for use inside components. */
34
+ export function animationEditorStateOf(getController) {
35
+ let view = $state.raw(untrack(() => getController().getState()));
36
+ $effect(() => {
37
+ const controller = getController();
38
+ view = controller.getState();
39
+ return untrack(() => controller.subscribe((next) => {
40
+ view = next;
41
+ }));
42
+ });
43
+ return {
44
+ get current() {
45
+ return view;
46
+ },
47
+ };
48
+ }
49
+ /**
50
+ * Registers the animation editor's agent tools (`get_animation`, `add_commands`,
51
+ * `export_flair_effect`, …) for the lifetime of the calling component (call it during
52
+ * initialisation). Pass a getter to follow a changing registry.
53
+ */
54
+ export function useAnimationEditorTools(registry, controller, options = {}) {
55
+ $effect(() => {
56
+ const target = typeof registry === "function" ? registry() : registry;
57
+ if (!target)
58
+ return;
59
+ return target.register(createAnimationEditorToolProvider(controller, options));
60
+ });
61
+ }
@@ -0,0 +1,12 @@
1
+ import type { ComponentProps } from "svelte";
2
+ import type AnimationEditorComponent from "./AnimationEditor.svelte";
3
+ import type AnimationStageComponent from "./AnimationStage.svelte";
4
+ import type ShotTimelineComponent from "./ShotTimeline.svelte";
5
+ export { default as AnimationEditor } from "./AnimationEditor.svelte";
6
+ export { default as AnimationStage } from "./AnimationStage.svelte";
7
+ export { default as ShotTimeline } from "./ShotTimeline.svelte";
8
+ export * from "./createAnimationEditor.svelte.js";
9
+ export type AnimationEditorProps = ComponentProps<typeof AnimationEditorComponent>;
10
+ export type AnimationStageProps = ComponentProps<typeof AnimationStageComponent>;
11
+ export type ShotTimelineProps = ComponentProps<typeof ShotTimelineComponent>;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/animation-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,wBAAwB,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,uBAAuB,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,qBAAqB,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,cAAc,mCAAmC,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACnF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACjF,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { default as AnimationEditor } from "./AnimationEditor.svelte";
2
+ export { default as AnimationStage } from "./AnimationStage.svelte";
3
+ export { default as ShotTimeline } from "./ShotTimeline.svelte";
4
+ export * from "./createAnimationEditor.svelte.js";
@@ -0,0 +1,171 @@
1
+ <script lang="ts">
2
+ import { diagramTextBaseline, type DiagramMark, type DiagramScene } from '@pixerate/editor/canvas';
3
+
4
+ interface Props {
5
+ /** The family's picture (`createMermaidDiagram().scene`, or `mermaidToScene`). */
6
+ scene: DiagramScene;
7
+ /** Room around the drawing in px (default 16). */
8
+ padding?: number;
9
+ /** Marks with a target get a pointer and report clicks (default true). */
10
+ interactive?: boolean;
11
+ /** A mark was clicked: its node, edge, group or `::title` target (null: the background). */
12
+ onselect?: (target: string | null, event: MouseEvent) => void;
13
+ /** A mark was double-clicked (rename it with `diagramRenameOp`). */
14
+ onopen?: (target: string, event: MouseEvent) => void;
15
+ /** Colour of selected marks' outline (default `var(--primary, #2563eb)`). */
16
+ selectionColor?: string;
17
+ /** Arrow head colour (default `var(--muted-foreground, #64748b)`). */
18
+ markerColor?: string;
19
+ class?: string;
20
+ style?: string;
21
+ /** Accessible name (default: the family). */
22
+ title?: string;
23
+ }
24
+
25
+ /**
26
+ * Headless renderer for a Mermaid family drawn as its own picture (pie, Gantt, sequence,
27
+ * quadrant, timeline, journey, gitGraph, mindmap, C4, architecture, XY and radar charts).
28
+ * Parity with React's `MermaidFamilyScene`.
29
+ */
30
+ let {
31
+ scene,
32
+ padding = 16,
33
+ interactive = true,
34
+ onselect,
35
+ onopen,
36
+ selectionColor = 'var(--primary, #2563eb)',
37
+ markerColor = 'var(--muted-foreground, #64748b)',
38
+ class: className = '',
39
+ style = '',
40
+ title
41
+ }: Props = $props();
42
+
43
+ const uid = `pd-scene-${Math.random().toString(36).slice(2, 9)}`;
44
+ const marker = (kind?: 'arrow' | 'arrowclosed') => (kind ? `url(#${uid}-${kind})` : undefined);
45
+ const box = $derived({ x: scene.x - padding, y: scene.y - padding, width: Math.max(1, scene.width + padding * 2), height: Math.max(1, scene.height + padding * 2) });
46
+ const active = (mark: DiagramMark) => interactive && !!mark.target;
47
+ const strokeOf = (mark: { stroke?: string; selected?: boolean }) => (mark.selected ? selectionColor : mark.stroke);
48
+ const widthOf = (mark: { strokeWidth?: number; selected?: boolean }) => (mark.selected ? Math.max(2, mark.strokeWidth ?? 0) : mark.strokeWidth);
49
+ /** The target of the mark under the event (events are delegated to the `<svg>`). */
50
+ const targetAt = (event: MouseEvent) => (event.target as Element).closest?.('[data-target]')?.getAttribute('data-target') ?? null;
51
+ const click = (event: MouseEvent) => {
52
+ if (interactive) onselect?.(targetAt(event), event);
53
+ };
54
+ const dblclick = (event: MouseEvent) => {
55
+ const target = targetAt(event);
56
+ if (interactive && target) onopen?.(target, event);
57
+ };
58
+ </script>
59
+
60
+ <!-- svelte-ignore a11y_click_events_have_key_events, a11y_no_noninteractive_element_interactions -->
61
+ <svg
62
+ class="pixerate-diagram-scene {className}"
63
+ data-family={scene.family}
64
+ role="img"
65
+ aria-label={title ?? `${scene.family} diagram`}
66
+ viewBox="{box.x} {box.y} {box.width} {box.height}"
67
+ width={box.width}
68
+ height={box.height}
69
+ style="display:block;max-width:100%;height:auto;overflow:visible;{style}"
70
+ onclick={click}
71
+ ondblclick={dblclick}
72
+ >
73
+ <defs>
74
+ <marker id="{uid}-arrowclosed" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse">
75
+ <path d="M0,0 L10,5 L0,10 Z" style:fill={markerColor} />
76
+ </marker>
77
+ <marker id="{uid}-arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse">
78
+ <path d="M0,0 L10,5 L0,10" style:fill="none" style:stroke={markerColor} style:stroke-width="1.5" />
79
+ </marker>
80
+ </defs>
81
+ {#each scene.marks as mark (mark.key)}
82
+ {#if mark.kind === 'rect'}
83
+ <rect
84
+ data-role={mark.role}
85
+ data-target={active(mark) ? mark.target : undefined}
86
+ data-selected={mark.selected ? '' : undefined}
87
+ x={mark.x}
88
+ y={mark.y}
89
+ width={Math.max(0, mark.width)}
90
+ height={Math.max(0, mark.height)}
91
+ rx={mark.radius}
92
+ stroke-dasharray={mark.dash}
93
+ opacity={mark.opacity}
94
+ pointer-events={active(mark) ? undefined : 'none'}
95
+ cursor={active(mark) ? 'pointer' : undefined}
96
+ style:fill={mark.fill}
97
+ style:stroke={strokeOf(mark)}
98
+ style:stroke-width={widthOf(mark)}
99
+ />
100
+ {:else if mark.kind === 'circle'}
101
+ <circle
102
+ data-role={mark.role}
103
+ data-target={active(mark) ? mark.target : undefined}
104
+ data-selected={mark.selected ? '' : undefined}
105
+ cx={mark.cx}
106
+ cy={mark.cy}
107
+ r={mark.r}
108
+ opacity={mark.opacity}
109
+ pointer-events={active(mark) ? undefined : 'none'}
110
+ cursor={active(mark) ? 'pointer' : undefined}
111
+ style:fill={mark.fill}
112
+ style:stroke={strokeOf(mark)}
113
+ style:stroke-width={widthOf(mark)}
114
+ />
115
+ {:else if mark.kind === 'line'}
116
+ <line
117
+ data-role={mark.role}
118
+ data-target={active(mark) ? mark.target : undefined}
119
+ data-selected={mark.selected ? '' : undefined}
120
+ x1={mark.x1}
121
+ y1={mark.y1}
122
+ x2={mark.x2}
123
+ y2={mark.y2}
124
+ stroke-dasharray={mark.dash}
125
+ marker-end={marker(mark.markerEnd)}
126
+ marker-start={marker(mark.markerStart)}
127
+ opacity={mark.opacity}
128
+ pointer-events={active(mark) ? undefined : 'none'}
129
+ cursor={active(mark) ? 'pointer' : undefined}
130
+ style:stroke={mark.selected ? selectionColor : mark.stroke}
131
+ style:stroke-width={mark.strokeWidth ?? 1}
132
+ />
133
+ {:else if mark.kind === 'path'}
134
+ <path
135
+ data-role={mark.role}
136
+ data-target={active(mark) ? mark.target : undefined}
137
+ data-selected={mark.selected ? '' : undefined}
138
+ d={mark.d}
139
+ stroke-dasharray={mark.dash}
140
+ stroke-linejoin="round"
141
+ marker-end={marker(mark.markerEnd)}
142
+ marker-start={marker(mark.markerStart)}
143
+ opacity={mark.opacity}
144
+ pointer-events={active(mark) ? undefined : 'none'}
145
+ cursor={active(mark) ? 'pointer' : undefined}
146
+ style:fill={mark.fill ?? 'none'}
147
+ style:stroke={strokeOf(mark)}
148
+ style:stroke-width={widthOf(mark)}
149
+ />
150
+ {:else}
151
+ <text
152
+ data-role={mark.role}
153
+ data-target={active(mark) ? mark.target : undefined}
154
+ data-selected={mark.selected ? '' : undefined}
155
+ x={mark.x}
156
+ y={mark.y}
157
+ text-anchor={mark.anchor}
158
+ dominant-baseline={diagramTextBaseline(mark.baseline)}
159
+ transform={mark.rotate ? `rotate(${mark.rotate} ${mark.x} ${mark.y})` : undefined}
160
+ opacity={mark.opacity}
161
+ pointer-events={active(mark) ? undefined : 'none'}
162
+ cursor={active(mark) ? 'pointer' : undefined}
163
+ style:fill={mark.selected ? selectionColor : mark.fill}
164
+ style:font-size="{mark.size}px"
165
+ style:font-weight={mark.weight}
166
+ style:font-style={mark.italic ? 'italic' : undefined}
167
+ style:user-select="none">{mark.text}</text
168
+ >
169
+ {/if}
170
+ {/each}
171
+ </svg>
@@ -0,0 +1,25 @@
1
+ import { type DiagramScene } from '@pixerate/editor/canvas';
2
+ interface Props {
3
+ /** The family's picture (`createMermaidDiagram().scene`, or `mermaidToScene`). */
4
+ scene: DiagramScene;
5
+ /** Room around the drawing in px (default 16). */
6
+ padding?: number;
7
+ /** Marks with a target get a pointer and report clicks (default true). */
8
+ interactive?: boolean;
9
+ /** A mark was clicked: its node, edge, group or `::title` target (null: the background). */
10
+ onselect?: (target: string | null, event: MouseEvent) => void;
11
+ /** A mark was double-clicked (rename it with `diagramRenameOp`). */
12
+ onopen?: (target: string, event: MouseEvent) => void;
13
+ /** Colour of selected marks' outline (default `var(--primary, #2563eb)`). */
14
+ selectionColor?: string;
15
+ /** Arrow head colour (default `var(--muted-foreground, #64748b)`). */
16
+ markerColor?: string;
17
+ class?: string;
18
+ style?: string;
19
+ /** Accessible name (default: the family). */
20
+ title?: string;
21
+ }
22
+ declare const MermaidFamilyScene: import("svelte").Component<Props, {}, "">;
23
+ type MermaidFamilyScene = ReturnType<typeof MermaidFamilyScene>;
24
+ export default MermaidFamilyScene;
25
+ //# sourceMappingURL=MermaidFamilyScene.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MermaidFamilyScene.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/MermaidFamilyScene.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyC,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGjG,UAAU,KAAK;IACb,kFAAkF;IAClF,KAAK,EAAE,YAAY,CAAC;IACpB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9D,oEAAoE;IACpE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACrD,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAmEH,QAAA,MAAM,kBAAkB,2CAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,28 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import { parseMermaid, type MermaidDocument } from '@pixerate/editor/diagram';
4
+ import { mermaidThumbnailSvg, type DiagramSvgOptions } from '@pixerate/editor/canvas';
5
+
6
+ interface Props extends DiagramSvgOptions {
7
+ /** Mermaid text, or an already parsed document. */
8
+ source: string | MermaidDocument;
9
+ class?: string;
10
+ /** Shown for families that cannot be drawn here (sequence, Gantt, …) and empty diagrams. */
11
+ fallback?: Snippet;
12
+ }
13
+
14
+ let { source, class: className = '', fallback, ...options }: Props = $props();
15
+ const doc = $derived(typeof source === 'string' ? parseMermaid(source) : source);
16
+ const drawn = $derived(doc.tier === 'editable' && doc.graph.nodes.length ? mermaidThumbnailSvg(doc, options) : null);
17
+ </script>
18
+
19
+ <!--
20
+ A static preview of a flowchart, state, class or ER diagram (no canvas, no Mermaid runtime):
21
+ `mermaidThumbnailSvg` fitted inside `maxWidth` × `maxHeight` (default 240 × 160).
22
+ The SVG is built by mermaidToSvg with every label escaped.
23
+ -->
24
+ {#if drawn}
25
+ <span class="pixerate-diagram-thumbnail {className}" style="display: inline-block; line-height: 0;">{@html drawn.svg}</span>
26
+ {:else}
27
+ {@render fallback?.()}
28
+ {/if}
@@ -0,0 +1,14 @@
1
+ import type { Snippet } from 'svelte';
2
+ import { type MermaidDocument } from '@pixerate/editor/diagram';
3
+ import { type DiagramSvgOptions } from '@pixerate/editor/canvas';
4
+ interface Props extends DiagramSvgOptions {
5
+ /** Mermaid text, or an already parsed document. */
6
+ source: string | MermaidDocument;
7
+ class?: string;
8
+ /** Shown for families that cannot be drawn here (sequence, Gantt, …) and empty diagrams. */
9
+ fallback?: Snippet;
10
+ }
11
+ declare const MermaidThumbnail: import("svelte").Component<Props, {}, "">;
12
+ type MermaidThumbnail = ReturnType<typeof MermaidThumbnail>;
13
+ export default MermaidThumbnail;
14
+ //# sourceMappingURL=MermaidThumbnail.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MermaidThumbnail.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/MermaidThumbnail.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGrF,UAAU,KAAM,SAAQ,iBAAiB;IACxC,mDAAmD;IACnD,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAqBF,QAAA,MAAM,gBAAgB,2CAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createCanvasAnimation.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createCanvasAnimation.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,KAAK,EACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,4BAA4B,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU;IAClF,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACnC,mDAAmD;IACnD,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;IAChC,+FAA+F;IAC/F,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC3C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,4BAA4B,CAAC,KAAK,CAAC;;;;;;;;;;kBA2DnG,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAas00G,CAAC;;;;;;;;;;;YAAg/C,CAAC;mBAA8B,CAAC;;;;;;;YAAmjB,CAAC;gBAA0B,CAAC;;;EAHl84G;AAED,MAAM,MAAM,qBAAqB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"createCanvasAnimation.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createCanvasAnimation.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,KAAK,EACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,4BAA4B,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU;IAClF,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACnC,mDAAmD;IACnD,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;IAChC,+FAA+F;IAC/F,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC3C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,4BAA4B,CAAC,KAAK,CAAC;;;;;;;;;;kBA2DnG,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAay90G,CAAC;;;;;;;;;;;YAAg/C,CAAC;mBAA8B,CAAC;;;;;;;YAAmjB,CAAC;gBAA0B,CAAC;;;EAHrl5G;AAED,MAAM,MAAM,qBAAqB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createCanvasArrange.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createCanvasArrange.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EACnC,KAAK,SAAS,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,KAAK,WAAW,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC;AAEvD,MAAM,WAAW,0BAA0B,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,CAChF,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,gBAAgB,CAAC;IACrE,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EACxE,OAAO,EAAE,0BAA0B,CAAC,KAAK,CAAC;;IAkBzC;;;;;OAKG;wBACiB,MAAM;;;;;;;;;;sBAoD8yvD,CAAC;sBAAiE,CAAC;sBAAiE,CAAC;oBAA+D,CAAC;cAAyD,CAAC;gBAAiD,CAAC;;;;;;;;;0BAA8tC,CAAC;;yBAA6kB,CAAC;;0BAAgf,CAAC;;;;;;;;;;EAxCx50D;AAED,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAEjH,MAAM,WAAW,6BAA6B;IAC7C,OAAO,EAAE;QAAE,SAAS,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAA;KAAE,CAAC;IACjE,uEAAuE;IACvE,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,OAAO,CAAA;KAAE,CAAC;IAC1D,aAAa,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC7C;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,6BAA6B,GAAG,MAAM,IAAI,CAqB/F"}
1
+ {"version":3,"file":"createCanvasArrange.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createCanvasArrange.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EACnC,KAAK,SAAS,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,KAAK,WAAW,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC;AAEvD,MAAM,WAAW,0BAA0B,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,CAChF,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,gBAAgB,CAAC;IACrE,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EACxE,OAAO,EAAE,0BAA0B,CAAC,KAAK,CAAC;;IAkBzC;;;;;OAKG;wBACiB,MAAM;;;;;;;;;;sBAoDi8vD,CAAC;sBAAiE,CAAC;sBAAiE,CAAC;oBAA+D,CAAC;cAAyD,CAAC;gBAAiD,CAAC;;;;;;;;;0BAA8tC,CAAC;;yBAA6kB,CAAC;;0BAAgf,CAAC;;;;;;;;;;EAxC3i1D;AAED,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAEjH,MAAM,WAAW,6BAA6B;IAC7C,OAAO,EAAE;QAAE,SAAS,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAA;KAAE,CAAC;IACjE,uEAAuE;IACvE,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,OAAO,CAAA;KAAE,CAAC;IAC1D,aAAa,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC7C;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,6BAA6B,GAAG,MAAM,IAAI,CAqB/F"}
@@ -1 +1 @@
1
- {"version":3,"file":"createCanvasAutoLayout.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createCanvasAutoLayout.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,iCAAiC,EACtC,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,KAAK,WAAW,GAAG,iCAAiC,CAAC,GAAG,CAAC,CAAC;AAE1D,MAAM,WAAW,6BAA6B,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,CACnF,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,gBAAgB,CAAC;IACrE,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,6BAA6B,CAAC,KAAK,CAAC;;;IA+BzH,2FAA2F;kBAC7E,OAAO,SAAS,kBAAkB,WAAW,OAAO,EAAE,GAAG,OAAO,EAAE;IAKhF,gFAAgF;0BAC1D,QAAQ,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAIjE,4EAA4E;iBAC/D,MAAM;IAInB;;;OAGG;wBACiB,MAAM;;;;;;;;aAiBg4tE,CAAC;;;;aAAiX,CAAC;cAAwB,CAAC;;;;;;;;;;gBAAqrD,CAAC;;;;EAH79xE;AAED,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"createCanvasAutoLayout.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createCanvasAutoLayout.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,iCAAiC,EACtC,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,KAAK,WAAW,GAAG,iCAAiC,CAAC,GAAG,CAAC,CAAC;AAE1D,MAAM,WAAW,6BAA6B,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,CACnF,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,gBAAgB,CAAC;IACrE,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,6BAA6B,CAAC,KAAK,CAAC;;;IA+BzH,2FAA2F;kBAC7E,OAAO,SAAS,kBAAkB,WAAW,OAAO,EAAE,GAAG,OAAO,EAAE;IAKhF,gFAAgF;0BAC1D,QAAQ,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAIjE,4EAA4E;iBAC/D,MAAM;IAInB;;;OAGG;wBACiB,MAAM;;;;;;;;aAiBmhuE,CAAC;;;;aAAiX,CAAC;cAAwB,CAAC;;;;;;;;;;gBAAqrD,CAAC;;;;EAHhnyE;AAED,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createCanvasComponents.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createCanvasComponents.svelte.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,iCAAiC,EACtC,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,KAAK,WAAW,GAAG,iCAAiC,CAAC,GAAG,CAAC,CAAC;AAE1D,MAAM,WAAW,6BAA6B,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,CACnF,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IAC/D,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACnC,oFAAoF;IACpF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,6BAA6B,CAAC,KAAK,CAAC;IAazH,gCAAgC;;;;;4BAS47qI,CAAC;;UAAmM,CAAC;YAAsB,CAAC;eAAyB,CAAC;;8BAA8E,CAAC;;;;;;;;;;6BAA4nC,CAAC;;;;;;;;eAA6yB,CAAC;;;;;;;oBAAi7B,CAAC;;;;;;;;;;;;;;gBAA07C,CAAC;;EAH1j0I;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"createCanvasComponents.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createCanvasComponents.svelte.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,iCAAiC,EACtC,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,KAAK,WAAW,GAAG,iCAAiC,CAAC,GAAG,CAAC,CAAC;AAE1D,MAAM,WAAW,6BAA6B,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,CACnF,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IAC/D,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACnC,oFAAoF;IACpF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,6BAA6B,CAAC,KAAK,CAAC;IAazH,gCAAgC;;;;;4BAS+krI,CAAC;;UAAmM,CAAC;YAAsB,CAAC;eAAyB,CAAC;;8BAA8E,CAAC;;;;;;;;;;6BAA4nC,CAAC;;;;;;;;eAA6yB,CAAC;;;;;;;oBAAi7B,CAAC;;;;;;;;;;;;;;gBAA07C,CAAC;;EAH7s0I;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import { DiagramController, type DiagramActionResult, type DiagramControllerOptions, type DiagramState, type EditOp, type MermaidDocument } from '@pixerate/editor/diagram';
2
- import { type DiagramLayout, type DiagramLayoutOptions, type MermaidFlowEdge, type MermaidFlowNode } from '@pixerate/editor/canvas';
2
+ import { type DiagramLayout, type DiagramLayoutOptions, type DiagramScene, type DiagramSceneTheme, type MermaidFlowEdge, type MermaidFlowNode } from '@pixerate/editor/canvas';
3
3
  export interface CreateMermaidDiagramOptions extends DiagramControllerOptions {
4
4
  /** Layout spacing and node measuring for new nodes (stored positions always win). */
5
5
  layoutOptions?: DiagramLayoutOptions;
6
+ /** Colours for families drawn as scenes (default: the page's CSS colour variables). */
7
+ sceneTheme?: Partial<DiagramSceneTheme>;
6
8
  }
7
9
  type Placed = {
8
10
  id: string;
@@ -23,6 +25,12 @@ export interface SvelteMermaidDiagram {
23
25
  readonly nodes: MermaidFlowNode[];
24
26
  readonly edges: MermaidFlowEdge[];
25
27
  readonly layout: DiagramLayout;
28
+ /**
29
+ * The family's own picture (pie, Gantt, sequence, XY, radar…) with the selection marked;
30
+ * null for families drawn as nodes and edges (flowchart, state, class, ER) and text-only
31
+ * ones. Render it with `MermaidFamilyScene` (reactive).
32
+ */
33
+ readonly scene: DiagramScene | null;
26
34
  apply(ops: EditOp | EditOp[], label?: string): DiagramActionResult;
27
35
  /** Replaces the source; `clearHistory` when opening a different diagram. */
28
36
  load(source: string, options?: {
@@ -34,6 +42,8 @@ export interface SvelteMermaidDiagram {
34
42
  /** Removes nodes / groups (with their edges) and edges by id, as one undo step. */
35
43
  remove(ids: readonly string[]): DiagramActionResult;
36
44
  rename(id: string, label: string): DiagramActionResult;
45
+ /** Renames what a scene mark targets: the title (`::title`), a group, an edge or a node. */
46
+ renameTarget(target: string, label: string): DiagramActionResult | null;
37
47
  select(ids: readonly string[]): void;
38
48
  undo(): void;
39
49
  redo(): void;
@@ -45,7 +55,9 @@ export interface SvelteMermaidDiagram {
45
55
  * `DiagramController` (or creates one from options), lays it out and exposes canvas
46
56
  * nodes and edges reactively with bound edits. Parity with React's `useMermaidDiagram`.
47
57
  */
48
- export declare function createMermaidDiagram(controllerOrOptions?: DiagramController | CreateMermaidDiagramOptions): SvelteMermaidDiagram;
58
+ export declare function createMermaidDiagram(controllerOrOptions?: DiagramController | CreateMermaidDiagramOptions,
59
+ /** Layout and scene colours when passing a controller (options carry them otherwise). */
60
+ view?: Pick<CreateMermaidDiagramOptions, 'layoutOptions' | 'sceneTheme'>): SvelteMermaidDiagram;
49
61
  export interface CreateMermaidStreamOptions extends DiagramLayoutOptions {
50
62
  /** Glide duration between layouts in ms (default 300; 0 jumps). */
51
63
  duration?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"createMermaidDiagram.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createMermaidDiagram.svelte.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createMermaidDiagram.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createMermaidDiagram.svelte.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,21 @@
1
1
  import { DiagramController } from '@pixerate/editor/diagram';
2
- import { DiagramStream, blendDiagramLayout, easeDiagramTween, mermaidMovesFromCanvas, mermaidToCanvas } from '@pixerate/editor/canvas';
2
+ import { CSS_VARIABLE_DIAGRAM_SCENE_THEME, DiagramStream, blendDiagramLayout, diagramRenameOp, familySceneFromLayout, easeDiagramTween, mermaidMovesFromCanvas, mermaidToCanvas } from '@pixerate/editor/canvas';
3
3
  /**
4
4
  * Svelte 5 rune: a Mermaid diagram on a Svelte Flow canvas. Subscribes to a
5
5
  * `DiagramController` (or creates one from options), lays it out and exposes canvas
6
6
  * nodes and edges reactively with bound edits. Parity with React's `useMermaidDiagram`.
7
7
  */
8
- export function createMermaidDiagram(controllerOrOptions = {}) {
8
+ export function createMermaidDiagram(controllerOrOptions = {},
9
+ /** Layout and scene colours when passing a controller (options carry them otherwise). */
10
+ view = {}) {
9
11
  const controller = controllerOrOptions instanceof DiagramController ? controllerOrOptions : new DiagramController(controllerOrOptions);
10
- const layoutOptions = controllerOrOptions instanceof DiagramController ? undefined : controllerOrOptions.layoutOptions;
12
+ const layoutOptions = (controllerOrOptions instanceof DiagramController ? undefined : controllerOrOptions.layoutOptions) ?? view.layoutOptions;
13
+ const sceneTheme = (controllerOrOptions instanceof DiagramController ? undefined : controllerOrOptions.sceneTheme) ?? view.sceneTheme;
11
14
  let state = $state.raw(controller.getState());
12
15
  const canvas = $derived(mermaidToCanvas(state.document, { ...layoutOptions, editable: state.editable }));
16
+ const scene = $derived(state.document.tier === 'editable'
17
+ ? familySceneFromLayout(state.document.family, state.document.graph, canvas.layout, { theme: { ...CSS_VARIABLE_DIAGRAM_SCENE_THEME, ...sceneTheme }, selection: state.selection })
18
+ : null);
13
19
  const unsubscribe = controller.subscribe((next) => {
14
20
  state = next;
15
21
  });
@@ -33,6 +39,9 @@ export function createMermaidDiagram(controllerOrOptions = {}) {
33
39
  get layout() {
34
40
  return canvas.layout;
35
41
  },
42
+ get scene() {
43
+ return scene;
44
+ },
36
45
  apply: (ops, label) => controller.apply(ops, label),
37
46
  load: (source, options) => controller.load(source, options),
38
47
  moveNodes: (moved, all = moved) => {
@@ -52,6 +61,10 @@ export function createMermaidDiagram(controllerOrOptions = {}) {
52
61
  return controller.apply(ops, 'Delete');
53
62
  },
54
63
  rename: (id, label) => controller.apply(controller.getDocument().graph.groups.some((g) => g.id === id) ? { type: 'renameGroup', id, label } : { type: 'renameNode', id, label }, 'Rename'),
64
+ renameTarget: (target, label) => {
65
+ const op = diagramRenameOp(controller.getDocument(), target, label);
66
+ return op ? controller.apply(op, 'Rename') : null;
67
+ },
55
68
  select: (ids) => controller.select(ids),
56
69
  undo: () => void controller.undo(),
57
70
  redo: () => void controller.redo(),
@@ -40,9 +40,11 @@ export { createCanvasComponents, type CanvasComponents, type CreateCanvasCompone
40
40
  export { default as CanvasComponentsPanel } from './CanvasComponentsPanel.svelte';
41
41
  export { default as CanvasInstanceInspector } from './CanvasInstanceInspector.svelte';
42
42
  export { createCanvasComponentsController, createCanvasComponent, combineCanvasComponentsAsVariants, createCanvasInstance, detachCanvasInstance, resetCanvasInstanceOverrides, pushCanvasInstanceOverrides, swapCanvasInstance, setCanvasInstanceProperties, setCanvasComponentProperty, bindCanvasComponentProperty, restoreCanvasMainComponent, addCanvasVariant, removeCanvasVariant, setCanvasVariantProperties, renameCanvasVariantProperty, renameCanvasVariantValue, getNextVariantValues, syncCanvasComponents, syncCanvasInstance, syncAllCanvasInstances, listCanvasComponents, inspectCanvasInstance, getInstanceStatus, getNodeOverrides, getComponentSourceId, getInstanceData, getCanvasComponentDragId, isCanvasComponent, isCanvasComponentSet, isCanvasInstance, wouldCreateComponentCycle, CANVAS_COMPONENT_DRAG_TYPE, type CanvasComponentsController, type CanvasComponentsControllerOptions, type CanvasComponentPropertyDef, type CanvasComponentPropertyField, type CanvasComponentResult, type CanvasComponentSyncOptions, type CanvasInstanceInfo, type CanvasComponentInfo, type CanvasComponentSetInfo, type AddCanvasVariantOptions, type SetCanvasVariantPropertiesOptions, createCanvasDrawController, createDefaultStrokeStyle, findStrokesAtPoint, streamlinePoints, strokePointsToPathData, strokeToShapeNode, type CanvasDrawControllerOptions, type FreehandDrawOptions, type FreehandStroke, type FreehandStrokeStyle, type FreehandTool, type StrokeToShapeNodeOptions, PIXERATE_BRAND_GRADIENT, CANVAS_GRADIENT_PRESETS, isCanvasGradient, parseCssGradient, resolveCanvasGradient, angleToSvgLinearCoords, gradientToSvgDef, type GradientStop, type CanvasLinearGradient, type CanvasRadialGradient, type CanvasGradientDef, type SvgGradientStop, type SvgGradientDef, DEFAULT_CURSOR_INACTIVITY_MS, CARD_INSPECTION_ZONES, hashString, getAgentCardAnchor, calculateCurvedPath, getNaturalMovementTiming, getCursorTransitionDuration, calculateCursorArrowRotation, formatAgentCursorName, isAgentCursor, type CanvasAgentCursor, type CardInspectionZone, type CurvedPathOptions } from '@pixerate/editor/canvas';
43
+ export { default as MermaidFamilyScene } from './MermaidFamilyScene.svelte';
43
44
  export { default as MermaidDiagramNode } from './MermaidDiagramNode.svelte';
44
45
  export { default as MermaidDiagramGroup } from './MermaidDiagramGroup.svelte';
45
46
  export { createMermaidDiagram, createMermaidStream, type CreateMermaidDiagramOptions, type CreateMermaidStreamOptions, type SvelteMermaidDiagram, type SvelteMermaidStream } from './createMermaidDiagram.svelte.js';
47
+ export { default as MermaidThumbnail } from './MermaidThumbnail.svelte';
46
48
  export { default as DiagramPresenceLayer } from './DiagramPresenceLayer.svelte';
47
49
  export { createDiagramDirector, type CreateDiagramDirectorOptions, type SvelteDiagramDirector } from './createDiagramDirector.svelte.js';
48
50
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/canvas/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/canvas/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAG3B,OAAO,EACN,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACN,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACN,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,KAAK,4BAA4B,EACjC,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACN,mBAAmB,EACnB,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EACjB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACN,qBAAqB,EACrB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACN,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,KAAK,+BAA+B,EACpC,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EACN,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACN,uBAAuB,EACvB,gCAAgC,EAChC,2BAA2B,EAC3B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACN,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,4BAA4B,EACjC,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACN,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,2BAA2B,EAChC,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EACN,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACN,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAG9F,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAG9E,OAAO,EACN,qBAAqB,EACrB,KAAK,4BAA4B,EACjC,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACN,mBAAmB,EACnB,4BAA4B,EAC5B,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EAClC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACN,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,yBAAyB,EAC9B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG1E,OAAO,EACN,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,uBAAuB,EAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGtE,OAAO,EACN,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACN,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,WAAW,EACX,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,UAAU,EACV,eAAe,EACf,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,eAAe,EACf,QAAQ,EACR,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EACN,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACN,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACN,SAAS,EACT,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,KAAK,KAAK,EACV,KAAK,mBAAmB,EACxB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EACN,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,eAAe,EACf,gCAAgC,EAChC,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,iCAAiC,EACtC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACN,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACN,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACN,qBAAqB,EACrB,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC1B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EACN,+BAA+B,EAC/B,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,OAAO,EACP,OAAO,EACP,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,gCAAgC,EACrC,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACN,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEtF,OAAO,EACN,gCAAgC,EAChC,qBAAqB,EACrB,iCAAiC,EACjC,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,kBAAkB,EAClB,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,gBAAgB,EAChB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,iCAAiC,EACtC,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,iCAAiC,EAEtC,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAE7B,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,EAEnB,4BAA4B,EAC5B,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EACN,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGxE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,KAAK,4BAA4B,EAAE,KAAK,qBAAqB,EAAE,MAAM,mCAAmC,CAAC"}
@@ -72,10 +72,14 @@ createCanvasDrawController, createDefaultStrokeStyle, findStrokesAtPoint, stream
72
72
  PIXERATE_BRAND_GRADIENT, CANVAS_GRADIENT_PRESETS, isCanvasGradient, parseCssGradient, resolveCanvasGradient, angleToSvgLinearCoords, gradientToSvgDef,
73
73
  // Agent presence math & types
74
74
  DEFAULT_CURSOR_INACTIVITY_MS, CARD_INSPECTION_ZONES, hashString, getAgentCardAnchor, calculateCurvedPath, getNaturalMovementTiming, getCursorTransitionDuration, calculateCursorArrowRotation, formatAgentCursorName, isAgentCursor } from '@pixerate/editor/canvas';
75
- // Mermaid diagrams (flowchart, state, class, ER) on the canvas, with streaming
75
+ // Mermaid diagrams on the canvas (flowchart, state, class, ER as nodes and edges; the other
76
+ // families as their own picture with MermaidFamilyScene), with streaming
77
+ export { default as MermaidFamilyScene } from './MermaidFamilyScene.svelte';
76
78
  export { default as MermaidDiagramNode } from './MermaidDiagramNode.svelte';
77
79
  export { default as MermaidDiagramGroup } from './MermaidDiagramGroup.svelte';
78
80
  export { createMermaidDiagram, createMermaidStream } from './createMermaidDiagram.svelte.js';
81
+ // Static previews of Mermaid diagrams
82
+ export { default as MermaidThumbnail } from './MermaidThumbnail.svelte';
79
83
  // Agent cursors acting out diagram edits
80
84
  export { default as DiagramPresenceLayer } from './DiagramPresenceLayer.svelte';
81
85
  export { createDiagramDirector } from './createDiagramDirector.svelte.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pixerate/editor-svelte",
3
- "version": "0.49.0",
3
+ "version": "0.51.0",
4
4
  "description": "Svelte bindings and prompt/rich-text components for @pixerate/editor",
5
5
  "author": "Pixerate",
6
6
  "license": "MIT",
@@ -63,6 +63,11 @@
63
63
  "svelte": "./dist/vector/index.js",
64
64
  "default": "./dist/vector/index.js"
65
65
  },
66
+ "./animation-editor": {
67
+ "types": "./dist/animation-editor/index.d.ts",
68
+ "svelte": "./dist/animation-editor/index.js",
69
+ "default": "./dist/animation-editor/index.js"
70
+ },
66
71
  "./chart": {
67
72
  "types": "./dist/chart/index.d.ts",
68
73
  "svelte": "./dist/chart/index.js",
@@ -99,6 +104,9 @@
99
104
  "vector": [
100
105
  "./dist/vector/index.d.ts"
101
106
  ],
107
+ "animation-editor": [
108
+ "./dist/animation-editor/index.d.ts"
109
+ ],
102
110
  "chart": [
103
111
  "./dist/chart/index.d.ts"
104
112
  ]
@@ -115,7 +123,7 @@
115
123
  "@tiptap/extension-bubble-menu": "^2.11.5",
116
124
  "@tiptap/extension-placeholder": "^2.11.5",
117
125
  "@tiptap/starter-kit": "^2.11.5",
118
- "@pixerate/editor": "0.54.0"
126
+ "@pixerate/editor": "0.56.0"
119
127
  },
120
128
  "peerDependencies": {
121
129
  "@dagrejs/dagre": "^1.1.4",