@pixerate/editor-svelte 0.93.1 → 0.95.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.
@@ -490,6 +490,17 @@
490
490
  {/each}
491
491
  </g>
492
492
  {/each}
493
+ {#if overlay.perspective}
494
+ <g data-vector-perspective-grid="" fill="none" pointer-events="none">
495
+ {#each overlay.perspective.planes as pl (pl.plane)}
496
+ <path data-vector-perspective-plane={pl.plane} data-active={pl.active || undefined} d={pl.d} stroke={pl.active ? accentColor : guideColor} stroke-width={pl.active ? 1 : 0.75} opacity={pl.active ? 0.55 : 0.25} />
497
+ {/each}
498
+ {#each overlay.perspective.vanishingPoints as v, i (i)}
499
+ <circle data-vector-vanishing-point={i} cx={v.x} cy={v.y} r="4" stroke={accentColor} stroke-width="1.5" />
500
+ {/each}
501
+ <circle data-vector-perspective-origin="" cx={overlay.perspective.origin.x} cy={overlay.perspective.origin.y} r="3" fill={accentColor} />
502
+ </g>
503
+ {/if}
493
504
  {#each overlay.symmetry as sy (sy.nodeId)}
494
505
  <g data-vector-symmetry-axes={sy.nodeId} stroke={accentColor} stroke-dasharray={sy.drawing ? undefined : '6 4'} opacity={sy.drawing ? 0.9 : 0.6}>
495
506
  {#each sy.lines as l, i (i)}<line x1={l.x1} y1={l.y1} x2={l.x2} y2={l.y2} />{/each}
@@ -1 +1 @@
1
- {"version":3,"file":"VectorCanvas.svelte.d.ts","sourceRoot":"","sources":["../../src/vector/VectorCanvas.svelte.ts"],"names":[],"mappings":"AAQA,OAAO,EASH,KAAK,sBAAsB,EAC5B,MAAM,yBAAyB,CAAC;AASjC,UAAU,KAAK;IACb,UAAU,EAAE,sBAAsB,CAAC;IACnC,mFAAmF;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAgcH,QAAA,MAAM,YAAY,2CAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"VectorCanvas.svelte.d.ts","sourceRoot":"","sources":["../../src/vector/VectorCanvas.svelte.ts"],"names":[],"mappings":"AAQA,OAAO,EASH,KAAK,sBAAsB,EAC5B,MAAM,yBAAyB,CAAC;AASjC,UAAU,KAAK;IACb,UAAU,EAAE,sBAAsB,CAAC;IACnC,mFAAmF;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA2cH,QAAA,MAAM,YAAY,2CAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
@@ -0,0 +1,51 @@
1
+ <script lang="ts">
2
+ import { isVectorFrame, vectorMasterPages, vectorPages, type VectorEditorController, type VectorFrameGroup } from '@pixerate/editor/vector';
3
+ import { vectorStateOf } from './subscribe.svelte.js';
4
+
5
+ /**
6
+ * Pages: the document's pages (top-level frames) to go to, adding pages and master pages, and
7
+ * the master page the selected page uses. Adding and applying are one undo step each.
8
+ */
9
+ interface Props {
10
+ controller: VectorEditorController;
11
+ class?: string;
12
+ }
13
+
14
+ let { controller, class: className = '' }: Props = $props();
15
+
16
+ const store = vectorStateOf(() => controller);
17
+ const view = $derived(store.current);
18
+ const pages = $derived(vectorPages(view.document));
19
+ const masters = $derived(vectorMasterPages(view.document));
20
+ const page = $derived.by((): VectorFrameGroup | null => {
21
+ const n = view.selection.map((id) => view.document.nodes.find((x) => x.id === id)).find((x) => isVectorFrame(x));
22
+ return n && isVectorFrame(n) && !n.frame.master ? n : null;
23
+ });
24
+
25
+ const buttonClass =
26
+ 'inline-flex h-7 min-w-7 items-center justify-center rounded-md border border-border bg-background px-1.5 text-xs font-medium text-foreground hover:bg-muted disabled:cursor-not-allowed disabled:opacity-40 aria-[current=true]:bg-primary aria-[current=true]:text-primary-foreground';
27
+ const selectClass = 'h-7 min-w-0 flex-1 rounded border border-border bg-background px-1 text-xs';
28
+ </script>
29
+
30
+ <div class="space-y-2 {className}" data-vector-pages-panel="" aria-label="Pages">
31
+ <div class="flex flex-wrap items-center gap-1">
32
+ <span class="w-16 text-[11px] font-medium uppercase tracking-wide text-muted-foreground">Pages</span>
33
+ {#each pages as p, i (p.id)}
34
+ <button type="button" class={buttonClass} aria-current={view.selection.includes(p.id)} data-vector-page={p.id} title={`Go to ${p.name ?? `page ${i + 1}`}`} onclick={() => controller.goToPage(p.id)}>{i + 1}</button>
35
+ {/each}
36
+ {#each masters as m (m.id)}
37
+ <button type="button" class={buttonClass} aria-current={view.selection.includes(m.id)} data-vector-master-page={m.id} title={`Go to master page ${m.name ?? ''}`} onclick={() => controller.goToPage(m.id)}>{m.name ?? 'Master'}</button>
38
+ {/each}
39
+ <button type="button" class={buttonClass} data-vector-pages-action="add" title="Add a page after the last" onclick={() => controller.addPage()}>+ Page</button>
40
+ <button type="button" class={buttonClass} data-vector-pages-action="master" title={'Add a master page used by every page (headers, footers, {page} numbers)'} onclick={() => controller.addMasterPage({ assignTo: 'all' })}>+ Master</button>
41
+ </div>
42
+ {#if page && masters.length > 0}
43
+ <div class="flex flex-wrap items-center gap-1">
44
+ <span class="w-16"></span>
45
+ <select aria-label="Master page" class={selectClass} value={page.frame.masterId ?? ''} onchange={(e) => page && controller.setPageMaster(e.currentTarget.value || null, { ids: [page.id] })}>
46
+ <option value="">No master</option>
47
+ {#each masters as m (m.id)}<option value={m.id}>{m.name ?? 'Master'}</option>{/each}
48
+ </select>
49
+ </div>
50
+ {/if}
51
+ </div>
@@ -0,0 +1,13 @@
1
+ import { type VectorEditorController } from '@pixerate/editor/vector';
2
+ /**
3
+ * Pages: the document's pages (top-level frames) to go to, adding pages and master pages, and
4
+ * the master page the selected page uses. Adding and applying are one undo step each.
5
+ */
6
+ interface Props {
7
+ controller: VectorEditorController;
8
+ class?: string;
9
+ }
10
+ declare const VectorPagesPanel: import("svelte").Component<Props, {}, "">;
11
+ type VectorPagesPanel = ReturnType<typeof VectorPagesPanel>;
12
+ export default VectorPagesPanel;
13
+ //# sourceMappingURL=VectorPagesPanel.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VectorPagesPanel.svelte.d.ts","sourceRoot":"","sources":["../../src/vector/VectorPagesPanel.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiD,KAAK,sBAAsB,EAAyB,MAAM,yBAAyB,CAAC;AAI1I;;;GAGG;AACH,UAAU,KAAK;IACb,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA+CH,QAAA,MAAM,gBAAgB,2CAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,61 @@
1
+ <script lang="ts">
2
+ import { vectorPerspectivePlanes, vectorPerspectivePreset, type VectorEditorController, type VectorPerspectivePlane } from '@pixerate/editor/vector';
3
+ import { vectorStateOf } from './subscribe.svelte.js';
4
+
5
+ /**
6
+ * Perspective drawing: add a 1-, 2- or 3-point grid, pick the plane new shapes are drawn on, lay
7
+ * the selection onto it, show or hide the grid, or remove it. Grid changes and attaching are one
8
+ * undo step each.
9
+ */
10
+ interface Props {
11
+ controller: VectorEditorController;
12
+ class?: string;
13
+ }
14
+
15
+ let { controller, class: className = '' }: Props = $props();
16
+
17
+ const store = vectorStateOf(() => controller);
18
+ const view = $derived(store.current);
19
+ const grid = $derived(view.document.perspective ?? null);
20
+ const planes = $derived(grid ? vectorPerspectivePlanes(grid) : []);
21
+ let attachTo = $state<VectorPerspectivePlane | ''>('');
22
+ const target = $derived((view.perspectivePlane ?? attachTo) || planes[0]);
23
+ const PLANE_LABELS: Record<VectorPerspectivePlane, string> = { floor: 'Floor', left: 'Left wall', right: 'Right wall', side: 'Side wall', front: 'Front' };
24
+ const add = (n: 1 | 2 | 3) => controller.setPerspective(vectorPerspectivePreset(n, view.document.width, view.document.height));
25
+
26
+ const buttonClass =
27
+ 'inline-flex h-7 min-w-7 items-center justify-center rounded-md border border-border bg-background px-1.5 text-xs font-medium text-foreground hover:bg-muted disabled:cursor-not-allowed disabled:opacity-40 aria-pressed:bg-primary aria-pressed:text-primary-foreground';
28
+ const selectClass = 'h-7 min-w-0 flex-1 rounded border border-border bg-background px-1 text-xs';
29
+ </script>
30
+
31
+ <div class="space-y-2 {className}" data-vector-perspective-panel="" aria-label="Perspective">
32
+ <div class="flex flex-wrap items-center gap-1">
33
+ <span class="w-16 text-[11px] font-medium uppercase tracking-wide text-muted-foreground">Perspective</span>
34
+ {#each [1, 2, 3] as const as n (n)}
35
+ <button type="button" class={buttonClass} aria-pressed={grid?.vanishingPoints.length === n} data-vector-perspective-preset={n} title={`A ${n}-point perspective grid for the page`} onclick={() => add(n)}>{n}-pt</button>
36
+ {/each}
37
+ </div>
38
+ {#if grid}
39
+ <div class="flex flex-wrap items-center gap-1">
40
+ <span class="w-16"></span>
41
+ <select aria-label="Draw on plane" title="New rectangles, ellipses, polygons and stars are drawn on this plane" class={selectClass} value={view.perspectivePlane ?? ''} onchange={(e) => controller.setPerspectivePlane((e.currentTarget.value || null) as VectorPerspectivePlane | null)}>
42
+ <option value="">Draw flat</option>
43
+ {#each planes as p (p)}<option value={p}>Draw on {PLANE_LABELS[p].toLowerCase()}</option>{/each}
44
+ </select>
45
+ </div>
46
+ <div class="flex flex-wrap items-center gap-1">
47
+ <span class="w-16"></span>
48
+ {#if !view.perspectivePlane}
49
+ <select aria-label="Attach to plane" class="h-7 w-24 rounded border border-border bg-background px-1 text-xs" value={attachTo || planes[0]} onchange={(e) => (attachTo = e.currentTarget.value as VectorPerspectivePlane)}>
50
+ {#each planes as p (p)}<option value={p}>{PLANE_LABELS[p]}</option>{/each}
51
+ </select>
52
+ {/if}
53
+ <button type="button" class={buttonClass} disabled={!view.selection.length} title="Lay the selection onto the plane (read flat from the grid's origin)" onclick={() => controller.attachToPerspective(target)}>Attach</button>
54
+ <label class="flex items-center gap-1 text-xs text-foreground" title="Show the grid on the canvas">
55
+ <input type="checkbox" aria-label="Show perspective grid" checked={grid.visible !== false} onchange={(e) => grid && controller.setPerspective({ ...grid, visible: e.currentTarget.checked })} />
56
+ Show
57
+ </label>
58
+ <button type="button" class={buttonClass} title="Remove the grid (art on it stays)" onclick={() => controller.setPerspective(null)}>Remove</button>
59
+ </div>
60
+ {/if}
61
+ </div>
@@ -0,0 +1,14 @@
1
+ import { type VectorEditorController } from '@pixerate/editor/vector';
2
+ /**
3
+ * Perspective drawing: add a 1-, 2- or 3-point grid, pick the plane new shapes are drawn on, lay
4
+ * the selection onto it, show or hide the grid, or remove it. Grid changes and attaching are one
5
+ * undo step each.
6
+ */
7
+ interface Props {
8
+ controller: VectorEditorController;
9
+ class?: string;
10
+ }
11
+ declare const VectorPerspectivePanel: import("svelte").Component<Props, {}, "">;
12
+ type VectorPerspectivePanel = ReturnType<typeof VectorPerspectivePanel>;
13
+ export default VectorPerspectivePanel;
14
+ //# sourceMappingURL=VectorPerspectivePanel.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VectorPerspectivePanel.svelte.d.ts","sourceRoot":"","sources":["../../src/vector/VectorPerspectivePanel.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoD,KAAK,sBAAsB,EAA+B,MAAM,yBAAyB,CAAC;AAInJ;;;;GAIG;AACH,UAAU,KAAK;IACb,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAwDH,QAAA,MAAM,sBAAsB,2CAAwC,CAAC;AACrE,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACxE,eAAe,sBAAsB,CAAC"}
@@ -25,10 +25,12 @@
25
25
  import VectorSymbolsPanel from './VectorSymbolsPanel.svelte';
26
26
  import VectorConstraintsPanel from './VectorConstraintsPanel.svelte';
27
27
  import VectorFramePanel from './VectorFramePanel.svelte';
28
+ import VectorPagesPanel from './VectorPagesPanel.svelte';
28
29
  import VectorConnectorPanel from './VectorConnectorPanel.svelte';
29
30
  import VectorShadingPanel from './VectorShadingPanel.svelte';
30
31
  import VectorTracePanel from './VectorTracePanel.svelte';
31
32
  import VectorSymmetryPanel from './VectorSymmetryPanel.svelte';
33
+ import VectorPerspectivePanel from './VectorPerspectivePanel.svelte';
32
34
  import VectorLensPanel from './VectorLensPanel.svelte';
33
35
  import VectorGradientEditor from './VectorGradientEditor.svelte';
34
36
 
@@ -256,9 +258,11 @@
256
258
  <VectorMaskPanel {controller} />
257
259
  {/if}
258
260
  <VectorFramePanel {controller} />
261
+ <VectorPagesPanel {controller} />
259
262
  <VectorConnectorPanel {controller} />
260
263
  <VectorShadingPanel {controller} />
261
264
  <VectorSymmetryPanel {controller} />
265
+ <VectorPerspectivePanel {controller} />
262
266
  <VectorLensPanel {controller} />
263
267
  <VectorTracePanel {controller} />
264
268
  <VectorConstraintsPanel {controller} />
@@ -1 +1 @@
1
- {"version":3,"file":"VectorStylePanel.svelte.d.ts","sourceRoot":"","sources":["../../src/vector/VectorStylePanel.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAYH,KAAK,sBAAsB,EAG5B,MAAM,yBAAyB,CAAC;AAmBjC,UAAU,KAAK;IACb,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA4LH,QAAA,MAAM,gBAAgB,2CAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"VectorStylePanel.svelte.d.ts","sourceRoot":"","sources":["../../src/vector/VectorStylePanel.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAYH,KAAK,sBAAsB,EAG5B,MAAM,yBAAyB,CAAC;AAqBjC,UAAU,KAAK;IACb,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgMH,QAAA,MAAM,gBAAgB,2CAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -13,10 +13,12 @@ export { default as VectorTextPanel } from "./VectorTextPanel.svelte";
13
13
  export { default as VectorSymbolsPanel } from "./VectorSymbolsPanel.svelte";
14
14
  export { default as VectorConstraintsPanel } from "./VectorConstraintsPanel.svelte";
15
15
  export { default as VectorFramePanel } from "./VectorFramePanel.svelte";
16
+ export { default as VectorPagesPanel } from "./VectorPagesPanel.svelte";
16
17
  export { default as VectorConnectorPanel } from "./VectorConnectorPanel.svelte";
17
18
  export { default as VectorShadingPanel } from "./VectorShadingPanel.svelte";
18
19
  export { default as VectorTracePanel } from "./VectorTracePanel.svelte";
19
20
  export { default as VectorSymmetryPanel } from "./VectorSymmetryPanel.svelte";
21
+ export { default as VectorPerspectivePanel } from "./VectorPerspectivePanel.svelte";
20
22
  export { default as VectorLensPanel } from "./VectorLensPanel.svelte";
21
23
  export { default as VectorTextElement } from "./VectorTextElement.svelte";
22
24
  export { default as VectorMaskedNodes } from "./VectorMaskedNodes.svelte";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vector/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,qBAAqB,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,qBAAqB,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAC5F,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,cAAc,aAAa,CAAC;AAE5B,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC7E,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vector/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,qBAAqB,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,qBAAqB,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAC5F,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,cAAc,aAAa,CAAC;AAE5B,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC7E,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -10,10 +10,12 @@ export { default as VectorTextPanel } from "./VectorTextPanel.svelte";
10
10
  export { default as VectorSymbolsPanel } from "./VectorSymbolsPanel.svelte";
11
11
  export { default as VectorConstraintsPanel } from "./VectorConstraintsPanel.svelte";
12
12
  export { default as VectorFramePanel } from "./VectorFramePanel.svelte";
13
+ export { default as VectorPagesPanel } from "./VectorPagesPanel.svelte";
13
14
  export { default as VectorConnectorPanel } from "./VectorConnectorPanel.svelte";
14
15
  export { default as VectorShadingPanel } from "./VectorShadingPanel.svelte";
15
16
  export { default as VectorTracePanel } from "./VectorTracePanel.svelte";
16
17
  export { default as VectorSymmetryPanel } from "./VectorSymmetryPanel.svelte";
18
+ export { default as VectorPerspectivePanel } from "./VectorPerspectivePanel.svelte";
17
19
  export { default as VectorLensPanel } from "./VectorLensPanel.svelte";
18
20
  export { default as VectorTextElement } from "./VectorTextElement.svelte";
19
21
  export { default as VectorMaskedNodes } from "./VectorMaskedNodes.svelte";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pixerate/editor-svelte",
3
- "version": "0.93.1",
3
+ "version": "0.95.0",
4
4
  "description": "Svelte bindings and prompt/rich-text components for @pixerate/editor",
5
5
  "author": "Pixerate",
6
6
  "license": "MIT",
@@ -144,7 +144,7 @@
144
144
  "@tiptap/extension-bubble-menu": "^2.11.5",
145
145
  "@tiptap/extension-placeholder": "^2.11.5",
146
146
  "@tiptap/starter-kit": "^2.11.5",
147
- "@pixerate/editor": "0.132.0"
147
+ "@pixerate/editor": "0.134.0"
148
148
  },
149
149
  "peerDependencies": {
150
150
  "@dagrejs/dagre": "^1.1.4",