@pixerate/editor-svelte 0.92.2 → 0.93.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,67 @@
1
+ <script lang="ts">
2
+ import { VECTOR_LENS_LABELS, VECTOR_LENS_SPECS, VECTOR_LENS_TYPES, type VectorEditorController, type VectorLensType, type VectorPathNode } from '@pixerate/editor/vector';
3
+ import { vectorStateOf } from './subscribe.svelte.js';
4
+
5
+ /**
6
+ * Lens: for a selected closed path, what it does to what is below it (none, magnify, fish eye,
7
+ * brighten, invert, tinted grayscale, colour add, colour limit, heat map, wireframe,
8
+ * transparency), its amount and colour. Each change is one undo step.
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 path = $derived(
20
+ view.selection.map((id) => controller.getNode(id)).find((n): n is VectorPathNode => n?.type === 'path' && n.subpaths.some((sp) => sp.closed) && !n.connector) ?? null
21
+ );
22
+ const lens = $derived(path?.lens ?? null);
23
+ const spec = $derived(lens ? VECTOR_LENS_SPECS[lens.type] : null);
24
+ const ids = $derived(path ? [path.id] : []);
25
+
26
+ const selectClass = 'h-7 min-w-0 flex-1 rounded border border-border bg-background px-1 text-xs';
27
+ const numberClass = 'h-7 w-16 rounded border border-border bg-background px-1.5 text-xs';
28
+ </script>
29
+
30
+ {#if path}
31
+ <div class="space-y-2 {className}" data-vector-lens-panel="" aria-label="Lens">
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">Lens</span>
34
+ <select
35
+ aria-label="Lens type"
36
+ class={selectClass}
37
+ value={lens?.type ?? ''}
38
+ onchange={(e) => (e.currentTarget.value ? controller.setLens({ type: e.currentTarget.value as VectorLensType }, { ids }) : controller.setLens(null, { ids }))}
39
+ >
40
+ <option value="">None</option>
41
+ {#each VECTOR_LENS_TYPES as t (t)}<option value={t}>{VECTOR_LENS_LABELS[t]}</option>{/each}
42
+ </select>
43
+ </div>
44
+ {#if lens && spec}
45
+ <div class="flex flex-wrap items-center gap-1">
46
+ <span class="w-16"></span>
47
+ <input
48
+ type="number"
49
+ aria-label="Lens amount"
50
+ title={`Amount: ${spec.unit} (${spec.min} to ${spec.max})`}
51
+ class={numberClass}
52
+ min={spec.min}
53
+ max={spec.max}
54
+ step={lens.type === 'magnify' ? 0.1 : 1}
55
+ value={lens.amount}
56
+ oninput={(e) => {
57
+ const v = parseFloat(e.currentTarget.value);
58
+ if (Number.isFinite(v) && spec) controller.setLens({ amount: Math.min(spec.max, Math.max(spec.min, v)) }, { ids, merge: `lens-amount-${path!.id}` });
59
+ }}
60
+ />
61
+ {#if spec.color !== null}
62
+ <input type="color" aria-label="Lens colour" title="Lens colour" class="h-7 w-9 rounded border border-border bg-background" value={lens.color ?? spec.color} oninput={(e) => controller.setLens({ color: e.currentTarget.value }, { ids, merge: `lens-color-${path!.id}` })} />
63
+ {/if}
64
+ </div>
65
+ {/if}
66
+ </div>
67
+ {/if}
@@ -0,0 +1,14 @@
1
+ import { type VectorEditorController } from '@pixerate/editor/vector';
2
+ /**
3
+ * Lens: for a selected closed path, what it does to what is below it (none, magnify, fish eye,
4
+ * brighten, invert, tinted grayscale, colour add, colour limit, heat map, wireframe,
5
+ * transparency), its amount and colour. Each change is one undo step.
6
+ */
7
+ interface Props {
8
+ controller: VectorEditorController;
9
+ class?: string;
10
+ }
11
+ declare const VectorLensPanel: import("svelte").Component<Props, {}, "">;
12
+ type VectorLensPanel = ReturnType<typeof VectorLensPanel>;
13
+ export default VectorLensPanel;
14
+ //# sourceMappingURL=VectorLensPanel.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VectorLensPanel.svelte.d.ts","sourceRoot":"","sources":["../../src/vector/VectorLensPanel.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAA4D,KAAK,sBAAsB,EAA4C,MAAM,yBAAyB,CAAC;AAIxK;;;;GAIG;AACH,UAAU,KAAK;IACb,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA+CH,QAAA,MAAM,eAAe,2CAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
@@ -29,6 +29,7 @@
29
29
  import VectorShadingPanel from './VectorShadingPanel.svelte';
30
30
  import VectorTracePanel from './VectorTracePanel.svelte';
31
31
  import VectorSymmetryPanel from './VectorSymmetryPanel.svelte';
32
+ import VectorLensPanel from './VectorLensPanel.svelte';
32
33
  import VectorGradientEditor from './VectorGradientEditor.svelte';
33
34
 
34
35
  interface Props {
@@ -258,6 +259,7 @@
258
259
  <VectorConnectorPanel {controller} />
259
260
  <VectorShadingPanel {controller} />
260
261
  <VectorSymmetryPanel {controller} />
262
+ <VectorLensPanel {controller} />
261
263
  <VectorTracePanel {controller} />
262
264
  <VectorConstraintsPanel {controller} />
263
265
  <VectorSymbolsPanel {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;AAkBjC,UAAU,KAAK;IACb,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA0LH,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;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"}
@@ -17,6 +17,7 @@ export { default as VectorConnectorPanel } from "./VectorConnectorPanel.svelte";
17
17
  export { default as VectorShadingPanel } from "./VectorShadingPanel.svelte";
18
18
  export { default as VectorTracePanel } from "./VectorTracePanel.svelte";
19
19
  export { default as VectorSymmetryPanel } from "./VectorSymmetryPanel.svelte";
20
+ export { default as VectorLensPanel } from "./VectorLensPanel.svelte";
20
21
  export { default as VectorTextElement } from "./VectorTextElement.svelte";
21
22
  export { default as VectorMaskedNodes } from "./VectorMaskedNodes.svelte";
22
23
  export { default as VectorSceneNodes } from "./VectorSceneNodes.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,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,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"}
@@ -14,6 +14,7 @@ export { default as VectorConnectorPanel } from "./VectorConnectorPanel.svelte";
14
14
  export { default as VectorShadingPanel } from "./VectorShadingPanel.svelte";
15
15
  export { default as VectorTracePanel } from "./VectorTracePanel.svelte";
16
16
  export { default as VectorSymmetryPanel } from "./VectorSymmetryPanel.svelte";
17
+ export { default as VectorLensPanel } from "./VectorLensPanel.svelte";
17
18
  export { default as VectorTextElement } from "./VectorTextElement.svelte";
18
19
  export { default as VectorMaskedNodes } from "./VectorMaskedNodes.svelte";
19
20
  export { default as VectorSceneNodes } from "./VectorSceneNodes.svelte";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pixerate/editor-svelte",
3
- "version": "0.92.2",
3
+ "version": "0.93.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.130.0"
147
+ "@pixerate/editor": "0.131.0"
148
148
  },
149
149
  "peerDependencies": {
150
150
  "@dagrejs/dagre": "^1.1.4",