@pixerate/editor-react 0.78.1 → 0.80.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 (38) hide show
  1. package/dist/animation-editor/index.cjs +679 -37
  2. package/dist/animation-editor/index.cjs.map +1 -1
  3. package/dist/animation-editor/index.d.cts +29 -3
  4. package/dist/animation-editor/index.d.ts +29 -3
  5. package/dist/animation-editor/index.js +128 -37
  6. package/dist/animation-editor/index.js.map +1 -1
  7. package/dist/{chunk-S5SSL3ZO.js → chunk-VKWTKESA.js} +5 -5
  8. package/dist/{chunk-7RMNM3KC.js → chunk-WOQ3H7KA.js} +4 -4
  9. package/dist/chunk-WOQ3H7KA.js.map +1 -0
  10. package/dist/effects/index.cjs +3 -3
  11. package/dist/effects/index.cjs.map +1 -1
  12. package/dist/effects/index.d.cts +4 -2
  13. package/dist/effects/index.d.ts +4 -2
  14. package/dist/effects/index.js +1 -1
  15. package/dist/image-editor/index.cjs +3 -3
  16. package/dist/image-editor/index.cjs.map +1 -1
  17. package/dist/image-editor/index.js +3 -3
  18. package/dist/index.cjs +3 -3
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.js +3 -3
  21. package/dist/paint-editor/index.cjs +734 -19
  22. package/dist/paint-editor/index.cjs.map +1 -1
  23. package/dist/paint-editor/index.d.cts +22 -3
  24. package/dist/paint-editor/index.d.ts +22 -3
  25. package/dist/paint-editor/index.js +173 -19
  26. package/dist/paint-editor/index.js.map +1 -1
  27. package/dist/vector/index.cjs +649 -9
  28. package/dist/vector/index.cjs.map +1 -1
  29. package/dist/vector/index.d.cts +27 -3
  30. package/dist/vector/index.d.ts +27 -3
  31. package/dist/vector/index.js +98 -9
  32. package/dist/vector/index.js.map +1 -1
  33. package/dist/video-editor/index.cjs +3 -3
  34. package/dist/video-editor/index.cjs.map +1 -1
  35. package/dist/video-editor/index.js +1 -1
  36. package/package.json +3 -3
  37. package/dist/chunk-7RMNM3KC.js.map +0 -1
  38. /package/dist/{chunk-S5SSL3ZO.js.map → chunk-VKWTKESA.js.map} +0 -0
@@ -1,5 +1,7 @@
1
- import { VectorEditorController, VectorEditorState, VectorTool, VectorCommandOptions, VectorEditorOptions, VectorRenderFilter, VectorRenderGradientAnnotator, VectorPaintDef, VectorRenderMask, VectorRenderNode, VectorRenderText, VectorWidthPointEdit } from '@pixerate/editor/vector';
1
+ import { VectorEditorController, VectorEditorState, VectorTool, VectorCommandOptions, VectorEditorOptions, VectorEffectsToolProviderOptions, VectorRenderFilter, VectorRenderGradientAnnotator, VectorPaintDef, VectorRenderMask, VectorRenderNode, VectorRenderText, VectorWidthPointEdit } from '@pixerate/editor/vector';
2
+ import { ToolRegistry } from '@pixerate/editor/tools';
2
3
  import React__default from 'react';
4
+ import { EffectProvider } from '@pixerate/editor/effects';
3
5
 
4
6
  /** A `VectorEditorController` created once for the component's lifetime (destroyed on unmount). */
5
7
  declare function useVectorEditorController(options?: VectorEditorOptions): VectorEditorController;
@@ -28,6 +30,11 @@ interface VectorCommandTarget {
28
30
  * in `registry` while mounted, so `createCommandToolProvider` exposes them to agents.
29
31
  */
30
32
  declare function useVectorCommands(registry: VectorCommandTarget | null | undefined, controller: VectorEditorController, options?: VectorCommandOptions): void;
33
+ /**
34
+ * Registers the vector editor's provider-effect tools (`search_effects`, `apply_effect`, …) in
35
+ * `registry` while mounted. They work once an effects provider is registered (see `useEffects`).
36
+ */
37
+ declare function useVectorEffectsTools(registry: ToolRegistry | null | undefined, controller: VectorEditorController, options?: VectorEffectsToolProviderOptions): void;
31
38
 
32
39
  interface VectorCanvasProps {
33
40
  controller: VectorEditorController;
@@ -186,10 +193,16 @@ interface VectorEditorProps {
186
193
  /** Canvas height (default 520px). */
187
194
  height?: number | string;
188
195
  canvasProps?: Omit<VectorCanvasProps, 'controller'>;
196
+ /**
197
+ * An effects provider (see `@pixerate/editor/effects`), registered with the controller while
198
+ * mounted: provider vector effects as groups, with an Effects section under the style panel.
199
+ * Optional: without one the editor is as before.
200
+ */
201
+ effects?: EffectProvider | null;
189
202
  className?: string;
190
203
  }
191
204
  /** Toolbar, canvas and style panel for a `VectorEditorController`. */
192
- declare function VectorEditor({ controller, tools, showStylePanel, height, canvasProps, className }: VectorEditorProps): React__default.JSX.Element;
205
+ declare function VectorEditor({ controller, tools, showStylePanel, height, canvasProps, effects, className }: VectorEditorProps): React__default.JSX.Element;
193
206
 
194
207
  interface VectorGradientEditorProps {
195
208
  controller: VectorEditorController;
@@ -304,4 +317,15 @@ interface VectorSymmetryPanelProps {
304
317
  */
305
318
  declare function VectorSymmetryPanel({ controller, className }: VectorSymmetryPanelProps): React__default.JSX.Element;
306
319
 
307
- export { type UseVectorEditorResult, VectorAppearancePanel, type VectorAppearancePanelProps, VectorCanvas, type VectorCanvasProps, type VectorCommandTarget, VectorConnectorPanel, type VectorConnectorPanelProps, VectorConstraintsPanel, type VectorConstraintsPanelProps, VectorEditor, type VectorEditorProps, VectorEffectsPanel, type VectorEffectsPanelProps, VectorEnvelopePanel, type VectorEnvelopePanelProps, VectorFilterDefs, VectorFramePanel, type VectorFramePanelProps, VectorGradientAnnotator, VectorGradientDefs, VectorGradientEditor, type VectorGradientEditorProps, VectorMaskPanel, type VectorMaskPanelProps, VectorMaskedNodes, VectorSceneNodes, VectorShadingPanel, type VectorShadingPanelProps, VectorStylePanel, type VectorStylePanelProps, VectorSymbolsPanel, type VectorSymbolsPanelProps, VectorSymmetryPanel, type VectorSymmetryPanelProps, VectorTextElement, VectorTextPanel, type VectorTextPanelProps, VectorToolbar, type VectorToolbarProps, VectorTracePanel, type VectorTracePanelProps, VectorWidthPointEditor, type VectorWidthPointEditorProps, useVectorCommands, useVectorEditor, useVectorEditorController, useVectorEditorState };
320
+ interface VectorProviderEffectsPanelProps {
321
+ controller: VectorEditorController;
322
+ className?: string;
323
+ }
324
+ /**
325
+ * Provider vector effects in a drawing: add one (its picture at rest becomes a selected group of
326
+ * editable shapes), draw it again with new values, or detach it to keep the shapes. Motion is
327
+ * applied in the animation editor.
328
+ */
329
+ declare function VectorProviderEffectsPanel({ controller, className }: VectorProviderEffectsPanelProps): React__default.JSX.Element;
330
+
331
+ export { type UseVectorEditorResult, VectorAppearancePanel, type VectorAppearancePanelProps, VectorCanvas, type VectorCanvasProps, type VectorCommandTarget, VectorConnectorPanel, type VectorConnectorPanelProps, VectorConstraintsPanel, type VectorConstraintsPanelProps, VectorEditor, type VectorEditorProps, VectorEffectsPanel, type VectorEffectsPanelProps, VectorEnvelopePanel, type VectorEnvelopePanelProps, VectorFilterDefs, VectorFramePanel, type VectorFramePanelProps, VectorGradientAnnotator, VectorGradientDefs, VectorGradientEditor, type VectorGradientEditorProps, VectorMaskPanel, type VectorMaskPanelProps, VectorMaskedNodes, VectorProviderEffectsPanel, type VectorProviderEffectsPanelProps, VectorSceneNodes, VectorShadingPanel, type VectorShadingPanelProps, VectorStylePanel, type VectorStylePanelProps, VectorSymbolsPanel, type VectorSymbolsPanelProps, VectorSymmetryPanel, type VectorSymmetryPanelProps, VectorTextElement, VectorTextPanel, type VectorTextPanelProps, VectorToolbar, type VectorToolbarProps, VectorTracePanel, type VectorTracePanelProps, VectorWidthPointEditor, type VectorWidthPointEditorProps, useVectorCommands, useVectorEditor, useVectorEditorController, useVectorEditorState, useVectorEffectsTools };
@@ -1,5 +1,7 @@
1
- import { VectorEditorController, VectorEditorState, VectorTool, VectorCommandOptions, VectorEditorOptions, VectorRenderFilter, VectorRenderGradientAnnotator, VectorPaintDef, VectorRenderMask, VectorRenderNode, VectorRenderText, VectorWidthPointEdit } from '@pixerate/editor/vector';
1
+ import { VectorEditorController, VectorEditorState, VectorTool, VectorCommandOptions, VectorEditorOptions, VectorEffectsToolProviderOptions, VectorRenderFilter, VectorRenderGradientAnnotator, VectorPaintDef, VectorRenderMask, VectorRenderNode, VectorRenderText, VectorWidthPointEdit } from '@pixerate/editor/vector';
2
+ import { ToolRegistry } from '@pixerate/editor/tools';
2
3
  import React__default from 'react';
4
+ import { EffectProvider } from '@pixerate/editor/effects';
3
5
 
4
6
  /** A `VectorEditorController` created once for the component's lifetime (destroyed on unmount). */
5
7
  declare function useVectorEditorController(options?: VectorEditorOptions): VectorEditorController;
@@ -28,6 +30,11 @@ interface VectorCommandTarget {
28
30
  * in `registry` while mounted, so `createCommandToolProvider` exposes them to agents.
29
31
  */
30
32
  declare function useVectorCommands(registry: VectorCommandTarget | null | undefined, controller: VectorEditorController, options?: VectorCommandOptions): void;
33
+ /**
34
+ * Registers the vector editor's provider-effect tools (`search_effects`, `apply_effect`, …) in
35
+ * `registry` while mounted. They work once an effects provider is registered (see `useEffects`).
36
+ */
37
+ declare function useVectorEffectsTools(registry: ToolRegistry | null | undefined, controller: VectorEditorController, options?: VectorEffectsToolProviderOptions): void;
31
38
 
32
39
  interface VectorCanvasProps {
33
40
  controller: VectorEditorController;
@@ -186,10 +193,16 @@ interface VectorEditorProps {
186
193
  /** Canvas height (default 520px). */
187
194
  height?: number | string;
188
195
  canvasProps?: Omit<VectorCanvasProps, 'controller'>;
196
+ /**
197
+ * An effects provider (see `@pixerate/editor/effects`), registered with the controller while
198
+ * mounted: provider vector effects as groups, with an Effects section under the style panel.
199
+ * Optional: without one the editor is as before.
200
+ */
201
+ effects?: EffectProvider | null;
189
202
  className?: string;
190
203
  }
191
204
  /** Toolbar, canvas and style panel for a `VectorEditorController`. */
192
- declare function VectorEditor({ controller, tools, showStylePanel, height, canvasProps, className }: VectorEditorProps): React__default.JSX.Element;
205
+ declare function VectorEditor({ controller, tools, showStylePanel, height, canvasProps, effects, className }: VectorEditorProps): React__default.JSX.Element;
193
206
 
194
207
  interface VectorGradientEditorProps {
195
208
  controller: VectorEditorController;
@@ -304,4 +317,15 @@ interface VectorSymmetryPanelProps {
304
317
  */
305
318
  declare function VectorSymmetryPanel({ controller, className }: VectorSymmetryPanelProps): React__default.JSX.Element;
306
319
 
307
- export { type UseVectorEditorResult, VectorAppearancePanel, type VectorAppearancePanelProps, VectorCanvas, type VectorCanvasProps, type VectorCommandTarget, VectorConnectorPanel, type VectorConnectorPanelProps, VectorConstraintsPanel, type VectorConstraintsPanelProps, VectorEditor, type VectorEditorProps, VectorEffectsPanel, type VectorEffectsPanelProps, VectorEnvelopePanel, type VectorEnvelopePanelProps, VectorFilterDefs, VectorFramePanel, type VectorFramePanelProps, VectorGradientAnnotator, VectorGradientDefs, VectorGradientEditor, type VectorGradientEditorProps, VectorMaskPanel, type VectorMaskPanelProps, VectorMaskedNodes, VectorSceneNodes, VectorShadingPanel, type VectorShadingPanelProps, VectorStylePanel, type VectorStylePanelProps, VectorSymbolsPanel, type VectorSymbolsPanelProps, VectorSymmetryPanel, type VectorSymmetryPanelProps, VectorTextElement, VectorTextPanel, type VectorTextPanelProps, VectorToolbar, type VectorToolbarProps, VectorTracePanel, type VectorTracePanelProps, VectorWidthPointEditor, type VectorWidthPointEditorProps, useVectorCommands, useVectorEditor, useVectorEditorController, useVectorEditorState };
320
+ interface VectorProviderEffectsPanelProps {
321
+ controller: VectorEditorController;
322
+ className?: string;
323
+ }
324
+ /**
325
+ * Provider vector effects in a drawing: add one (its picture at rest becomes a selected group of
326
+ * editable shapes), draw it again with new values, or detach it to keep the shapes. Motion is
327
+ * applied in the animation editor.
328
+ */
329
+ declare function VectorProviderEffectsPanel({ controller, className }: VectorProviderEffectsPanelProps): React__default.JSX.Element;
330
+
331
+ export { type UseVectorEditorResult, VectorAppearancePanel, type VectorAppearancePanelProps, VectorCanvas, type VectorCanvasProps, type VectorCommandTarget, VectorConnectorPanel, type VectorConnectorPanelProps, VectorConstraintsPanel, type VectorConstraintsPanelProps, VectorEditor, type VectorEditorProps, VectorEffectsPanel, type VectorEffectsPanelProps, VectorEnvelopePanel, type VectorEnvelopePanelProps, VectorFilterDefs, VectorFramePanel, type VectorFramePanelProps, VectorGradientAnnotator, VectorGradientDefs, VectorGradientEditor, type VectorGradientEditorProps, VectorMaskPanel, type VectorMaskPanelProps, VectorMaskedNodes, VectorProviderEffectsPanel, type VectorProviderEffectsPanelProps, VectorSceneNodes, VectorShadingPanel, type VectorShadingPanelProps, VectorStylePanel, type VectorStylePanelProps, VectorSymbolsPanel, type VectorSymbolsPanelProps, VectorSymmetryPanel, type VectorSymmetryPanelProps, VectorTextElement, VectorTextPanel, type VectorTextPanelProps, VectorToolbar, type VectorToolbarProps, VectorTracePanel, type VectorTracePanelProps, VectorWidthPointEditor, type VectorWidthPointEditorProps, useVectorCommands, useVectorEditor, useVectorEditorController, useVectorEditorState, useVectorEffectsTools };
@@ -1,8 +1,17 @@
1
+ import {
2
+ EffectParameters,
3
+ EffectsBrowser,
4
+ useEffectDescription,
5
+ useEffects
6
+ } from "../chunk-WOQ3H7KA.js";
7
+ import "../chunk-ZQZAKUUM.js";
8
+
1
9
  // src/vector/useVectorEditor.ts
2
10
  import { useEffect, useMemo, useRef, useSyncExternalStore } from "react";
3
11
  import {
4
12
  VectorEditorController,
5
- createVectorCommands
13
+ createVectorCommands,
14
+ createVectorEffectsToolProvider
6
15
  } from "@pixerate/editor/vector";
7
16
  function useVectorEditorController(options = {}) {
8
17
  const ref = useRef(null);
@@ -42,6 +51,13 @@ function useVectorCommands(registry, controller, options = {}) {
42
51
  return registry.register(createVectorCommands(controller, { prefix, group, scope }));
43
52
  }, [registry, controller, prefix, group, scope]);
44
53
  }
54
+ function useVectorEffectsTools(registry, controller, options = {}) {
55
+ const { id, namespace, readOnly } = options;
56
+ useEffect(() => {
57
+ if (!registry) return;
58
+ return registry.register(createVectorEffectsToolProvider(controller, { id, namespace, readOnly }));
59
+ }, [registry, controller, id, namespace, readOnly]);
60
+ }
45
61
 
46
62
  // src/vector/VectorCanvas.tsx
47
63
  import React2, { useEffect as useEffect2, useId, useRef as useRef3, useState as useState2 } from "react";
@@ -2764,14 +2780,85 @@ function VectorStylePanel({ controller, className }) {
2764
2780
  ] });
2765
2781
  }
2766
2782
 
2783
+ // src/vector/VectorProviderEffectsPanel.tsx
2784
+ import { useState as useState7, useSyncExternalStore as useSyncExternalStore2 } from "react";
2785
+ import { Fragment as Fragment7, jsx as jsx17, jsxs as jsxs17 } from "react/jsx-runtime";
2786
+ var btn = "rounded border border-border px-1.5 py-0.5 text-[11px] disabled:opacity-40";
2787
+ function Controls({ controller, group }) {
2788
+ const provider = controller.effectsProvider;
2789
+ const tag = group.providerEffect;
2790
+ const { description, error } = useEffectDescription(provider, tag.effect);
2791
+ const [message, setMessage] = useState7(null);
2792
+ const run = (work) => void work.then(() => setMessage(null), (e) => setMessage(e instanceof Error ? e.message : String(e)));
2793
+ if (!provider) return /* @__PURE__ */ jsx17("p", { className: "text-[11px] text-muted-foreground", children: "No effects provider: the shapes are kept as they are." });
2794
+ if (error) return /* @__PURE__ */ jsx17("p", { className: "text-[11px] text-amber-500", children: error });
2795
+ if (!description) return /* @__PURE__ */ jsx17("p", { className: "text-[11px] text-muted-foreground", children: "Loading\u2026" });
2796
+ return /* @__PURE__ */ jsxs17(Fragment7, { children: [
2797
+ /* @__PURE__ */ jsx17(
2798
+ EffectParameters,
2799
+ {
2800
+ description,
2801
+ values: tag.values,
2802
+ onChange: (k, v) => run(controller.updateVectorEffect(group.id, { [k]: v })),
2803
+ onReset: (k) => run(controller.updateVectorEffect(group.id, { [k]: null })),
2804
+ onPreset: (v) => run(controller.updateVectorEffect(group.id, v))
2805
+ }
2806
+ ),
2807
+ message && /* @__PURE__ */ jsx17("p", { role: "alert", className: "text-[11px] text-destructive", children: message })
2808
+ ] });
2809
+ }
2810
+ function VectorProviderEffectsPanel({ controller, className = "" }) {
2811
+ const state = useVectorEditorState(controller);
2812
+ const provider = useSyncExternalStore2(
2813
+ (cb) => controller.effects.subscribe(cb),
2814
+ () => controller.effects.provider,
2815
+ () => controller.effects.provider
2816
+ );
2817
+ const [browse, setBrowse] = useState7(false);
2818
+ const [message, setMessage] = useState7(null);
2819
+ void state;
2820
+ const groups = controller.vectorEffectGroups();
2821
+ const selected = groups.filter((g) => state.selection.includes(g.id));
2822
+ const run = (work) => {
2823
+ setMessage(null);
2824
+ Promise.resolve().then(work).catch((e) => setMessage(e instanceof Error ? e.message : String(e)));
2825
+ };
2826
+ return /* @__PURE__ */ jsxs17("section", { className: `flex flex-col gap-2 text-xs ${className}`, "aria-label": "Vector effects", "data-vector-provider-effects": "", children: [
2827
+ /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-1", children: [
2828
+ /* @__PURE__ */ jsx17("span", { className: "flex-1 font-semibold", children: "Effects" }),
2829
+ /* @__PURE__ */ jsx17("button", { type: "button", className: btn, disabled: !provider, "aria-pressed": browse, onClick: () => setBrowse(!browse), children: "Add effect\u2026" })
2830
+ ] }),
2831
+ !provider && /* @__PURE__ */ jsx17("p", { className: "text-[11px] text-muted-foreground", children: "No effects provider is registered. Effect groups are kept as shapes." }),
2832
+ browse && /* @__PURE__ */ jsx17(EffectsBrowser, { provider, kinds: ["vector"], title: "Vector effects", onPick: (e) => (setBrowse(false), run(() => controller.addVectorEffect(e.id))) }),
2833
+ selected.map((g) => /* @__PURE__ */ jsxs17("div", { className: "space-y-1 rounded border border-border p-1", "data-vector-effect-group": g.id, children: [
2834
+ /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-1", children: [
2835
+ /* @__PURE__ */ jsx17("span", { className: "min-w-0 flex-1 truncate font-medium", children: g.providerEffect.name ?? g.providerEffect.effect }),
2836
+ /* @__PURE__ */ jsx17("button", { type: "button", className: btn, title: "Keep the shapes as a plain group", onClick: () => run(() => controller.detachVectorEffect(g.id)), children: "Detach" })
2837
+ ] }),
2838
+ /* @__PURE__ */ jsx17(Controls, { controller, group: g })
2839
+ ] }, g.id)),
2840
+ groups.length > 0 && !selected.length && /* @__PURE__ */ jsxs17("p", { className: "text-[11px] text-muted-foreground", children: [
2841
+ "Select an effect group (",
2842
+ groups.length,
2843
+ " in the drawing) to change it."
2844
+ ] }),
2845
+ message && /* @__PURE__ */ jsx17("p", { role: "alert", className: "text-[11px] text-destructive", children: message })
2846
+ ] });
2847
+ }
2848
+
2767
2849
  // src/vector/VectorEditor.tsx
2768
- import { jsx as jsx17, jsxs as jsxs17 } from "react/jsx-runtime";
2769
- function VectorEditor({ controller, tools, showStylePanel = true, height = 520, canvasProps, className }) {
2770
- return /* @__PURE__ */ jsxs17("div", { className: `flex flex-col gap-2 ${className ?? ""}`, "data-vector-editor": "", children: [
2771
- /* @__PURE__ */ jsx17(VectorToolbar, { controller, tools }),
2772
- /* @__PURE__ */ jsxs17("div", { className: "flex min-h-0 flex-col gap-2 md:flex-row", children: [
2773
- /* @__PURE__ */ jsx17("div", { className: "relative min-h-[320px] flex-1 overflow-hidden rounded-md border border-border bg-muted/40", style: { height }, children: /* @__PURE__ */ jsx17(VectorCanvas, { controller, ...canvasProps }) }),
2774
- showStylePanel && /* @__PURE__ */ jsx17(VectorStylePanel, { controller, className: "w-full shrink-0 rounded-md border border-border p-3 md:w-56" })
2850
+ import { jsx as jsx18, jsxs as jsxs18 } from "react/jsx-runtime";
2851
+ function VectorEditor({ controller, tools, showStylePanel = true, height = 520, canvasProps, effects, className }) {
2852
+ useEffects(controller, effects);
2853
+ const effectsShown = !!effects || controller.vectorEffectGroups().length > 0;
2854
+ return /* @__PURE__ */ jsxs18("div", { className: `flex flex-col gap-2 ${className ?? ""}`, "data-vector-editor": "", children: [
2855
+ /* @__PURE__ */ jsx18(VectorToolbar, { controller, tools }),
2856
+ /* @__PURE__ */ jsxs18("div", { className: "flex min-h-0 flex-col gap-2 md:flex-row", children: [
2857
+ /* @__PURE__ */ jsx18("div", { className: "relative min-h-[320px] flex-1 overflow-hidden rounded-md border border-border bg-muted/40", style: { height }, children: /* @__PURE__ */ jsx18(VectorCanvas, { controller, ...canvasProps }) }),
2858
+ showStylePanel && /* @__PURE__ */ jsxs18("div", { className: "flex w-full shrink-0 flex-col gap-2 md:w-56", children: [
2859
+ /* @__PURE__ */ jsx18(VectorStylePanel, { controller, className: "rounded-md border border-border p-3" }),
2860
+ effectsShown && /* @__PURE__ */ jsx18(VectorProviderEffectsPanel, { controller, className: "rounded-md border border-border p-3" })
2861
+ ] })
2775
2862
  ] })
2776
2863
  ] });
2777
2864
  }
@@ -2790,6 +2877,7 @@ export {
2790
2877
  VectorGradientEditor,
2791
2878
  VectorMaskPanel,
2792
2879
  VectorMaskedNodes,
2880
+ VectorProviderEffectsPanel,
2793
2881
  VectorSceneNodes,
2794
2882
  VectorShadingPanel,
2795
2883
  VectorStylePanel,
@@ -2803,6 +2891,7 @@ export {
2803
2891
  useVectorCommands,
2804
2892
  useVectorEditor,
2805
2893
  useVectorEditorController,
2806
- useVectorEditorState
2894
+ useVectorEditorState,
2895
+ useVectorEffectsTools
2807
2896
  };
2808
2897
  //# sourceMappingURL=index.js.map