@pixerate/editor-react 0.15.0 → 0.17.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 (54) hide show
  1. package/README.md +6 -2
  2. package/dist/canvas/index.cjs +484 -119
  3. package/dist/canvas/index.cjs.map +1 -1
  4. package/dist/canvas/index.d.cts +122 -3
  5. package/dist/canvas/index.d.ts +122 -3
  6. package/dist/canvas/index.js +380 -0
  7. package/dist/canvas/index.js.map +1 -1
  8. package/dist/chunk-I3E4KSA2.js +515 -0
  9. package/dist/chunk-I3E4KSA2.js.map +1 -0
  10. package/dist/chunk-JR5ZBDR7.js +2012 -0
  11. package/dist/chunk-JR5ZBDR7.js.map +1 -0
  12. package/dist/chunk-XWFU2CSG.js +167 -0
  13. package/dist/chunk-XWFU2CSG.js.map +1 -0
  14. package/dist/chunk-ZU54BMDC.js +2128 -0
  15. package/dist/chunk-ZU54BMDC.js.map +1 -0
  16. package/dist/generation/index.cjs +525 -0
  17. package/dist/generation/index.cjs.map +1 -0
  18. package/dist/generation/index.d.cts +124 -0
  19. package/dist/generation/index.d.ts +124 -0
  20. package/dist/generation/index.js +19 -0
  21. package/dist/generation/index.js.map +1 -0
  22. package/dist/image-editor/index.cjs +988 -337
  23. package/dist/image-editor/index.cjs.map +1 -1
  24. package/dist/image-editor/index.d.cts +92 -2
  25. package/dist/image-editor/index.d.ts +92 -2
  26. package/dist/image-editor/index.js +17 -3
  27. package/dist/index.cjs +3628 -754
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.cts +226 -5
  30. package/dist/index.d.ts +226 -5
  31. package/dist/index.js +868 -77
  32. package/dist/index.js.map +1 -1
  33. package/dist/persistence/index.cjs +191 -0
  34. package/dist/persistence/index.cjs.map +1 -0
  35. package/dist/persistence/index.d.cts +77 -0
  36. package/dist/persistence/index.d.ts +77 -0
  37. package/dist/persistence/index.js +9 -0
  38. package/dist/persistence/index.js.map +1 -0
  39. package/dist/spreadsheet/index.cjs +949 -111
  40. package/dist/spreadsheet/index.cjs.map +1 -1
  41. package/dist/spreadsheet/index.d.cts +121 -7
  42. package/dist/spreadsheet/index.d.ts +121 -7
  43. package/dist/spreadsheet/index.js +11 -1
  44. package/dist/tokens/index.cjs +395 -0
  45. package/dist/tokens/index.cjs.map +1 -0
  46. package/dist/tokens/index.d.cts +54 -0
  47. package/dist/tokens/index.d.ts +54 -0
  48. package/dist/tokens/index.js +375 -0
  49. package/dist/tokens/index.js.map +1 -0
  50. package/package.json +26 -2
  51. package/dist/chunk-LPFZMZ3L.js +0 -1461
  52. package/dist/chunk-LPFZMZ3L.js.map +0 -1
  53. package/dist/chunk-QVQYYHJ5.js +0 -1161
  54. package/dist/chunk-QVQYYHJ5.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { ImageEditorController, ImageEditorState, ImageEditorTool, CropBox, AspectRatio, ImageAdjustments, DepthMaskOptions, CreateAnnotationPayload, Annotation, ImagePoint, ExportOptions, SerializedImageEditorState, ImageEditorOptions, InpaintHook, RemoveBackgroundHook, ImageEditorAIHooks } from '@pixerate/editor/image-editor';
1
+ import { ImageEditorController, ImageEditorState, ImageEditorTool, CropBox, AspectRatio, ImageAdjustments, AdjustmentKind, AdjustmentLayerInit, AdjustmentLayerUpdate, ImageHistogram, DepthMaskOptions, CreateAnnotationPayload, Annotation, ImagePoint, ExportOptions, SerializedImageEditorState, ImageEditorOptions, InpaintHook, RemoveBackgroundHook, ImageEditorAIHooks, ControlSpec, CurvePoint, AdjustmentLayer, SelectionToolOptions, SelectionMask } from '@pixerate/editor/image-editor';
2
2
  import React__default from 'react';
3
3
 
4
4
  interface UseImageEditorReturn {
@@ -18,6 +18,14 @@ interface UseImageEditorReturn {
18
18
  resetAdjustments: () => void;
19
19
  /** Update to Current Process: re-render the adjustments with the latest process (one undo step). */
20
20
  upgradeProcess: () => boolean;
21
+ /** Adds an adjustment layer (one undo step) and returns its id. */
22
+ addAdjustmentLayer: (init: AdjustmentKind | AdjustmentLayerInit, index?: number) => string;
23
+ updateAdjustmentLayer: (id: string, update: AdjustmentLayerUpdate, commitToHistory?: boolean) => boolean;
24
+ removeAdjustmentLayer: (id: string) => boolean;
25
+ moveAdjustmentLayer: (id: string, toIndex: number) => boolean;
26
+ toggleAdjustmentLayer: (id: string, enabled?: boolean) => boolean;
27
+ /** Histogram of the last rendered preview (after adjustments and layers); null before a render. */
28
+ histogram: ImageHistogram | null;
21
29
  setDepthMask: (partial: Partial<DepthMaskOptions>) => void;
22
30
  resetDepthMask: () => void;
23
31
  addAnnotation: (annotation: CreateAnnotationPayload) => string;
@@ -66,4 +74,86 @@ interface ImageEditorProps {
66
74
  }
67
75
  declare const ImageEditor: React__default.FC<ImageEditorProps>;
68
76
 
69
- export { ImageEditor, type ImageEditorProps, type UseImageEditorReturn, useImageEditor };
77
+ interface HistogramProps {
78
+ histogram: ImageHistogram | null;
79
+ /** `rgb` overlays the three channels on the luminance; a single channel draws just that one. */
80
+ channel?: 'rgb' | 'luminance' | 'red' | 'green' | 'blue';
81
+ height?: number;
82
+ className?: string;
83
+ style?: React__default.CSSProperties;
84
+ }
85
+ /** SVG histogram of an image (see `computeHistogram` / `controller.subscribeHistogram`). */
86
+ declare const Histogram: React__default.FC<HistogramProps>;
87
+ /** The preview histogram of an image editor, updated after every render. */
88
+ declare function useImageHistogram(controller: ImageEditorController): ImageHistogram | null;
89
+
90
+ interface ControlSliderProps {
91
+ spec: ControlSpec;
92
+ value: number;
93
+ onChange: (value: number) => void;
94
+ disabled?: boolean;
95
+ /** Overrides `spec.label` (also the accessible name). */
96
+ label?: string;
97
+ }
98
+ /** A labelled range input described by a control-table entry. */
99
+ declare const ControlSlider: React__default.FC<ControlSliderProps>;
100
+
101
+ interface CurvesEditorProps {
102
+ points: CurvePoint[];
103
+ /** `commit` is true for the first change of a gesture (one undo step), false for the drag moves. */
104
+ onChange: (points: CurvePoint[], commit: boolean) => void;
105
+ histogram?: ImageHistogram | null;
106
+ channel?: 'master' | 'red' | 'green' | 'blue';
107
+ size?: number;
108
+ }
109
+ /**
110
+ * Curves editor over the histogram: click to add a point, drag to move it, double-click to
111
+ * remove it.
112
+ */
113
+ declare const CurvesEditor: React__default.FC<CurvesEditorProps>;
114
+
115
+ interface AdjustmentLayersPanelProps {
116
+ controller: ImageEditorController;
117
+ /** The current layers (`state.adjustments.layers`), bottom to top. Omit to follow the controller. */
118
+ layers?: AdjustmentLayer[];
119
+ histogram?: ImageHistogram | null;
120
+ }
121
+ /**
122
+ * Adjustment-layer stack: add, reorder, show / hide and remove layers, and edit the selected
123
+ * one (curves over the histogram, levels, hue/saturation ranges, colour balance, …).
124
+ */
125
+ declare const AdjustmentLayersPanel: React__default.FC<AdjustmentLayersPanelProps>;
126
+
127
+ interface SelectionOptionsBarProps {
128
+ controller: ImageEditorController;
129
+ options: SelectionToolOptions;
130
+ onOptionsChange: (next: SelectionToolOptions) => void;
131
+ /** The current selection (pass `state.selection` so the bar re-renders with it). */
132
+ selection?: SelectionMask | null;
133
+ /** The current Quick Mask view flag (`state.quickMask`). */
134
+ quickMask?: boolean;
135
+ className?: string;
136
+ }
137
+ /**
138
+ * Options bar of the selection tools: tool, mode (new / add / subtract / intersect), magic wand
139
+ * tolerance and contiguous, anti-alias, sample merged, Select › All / Deselect / Inverse,
140
+ * Modify (grow, shrink, feather, border, smooth) and the Quick Mask toggle.
141
+ */
142
+ declare const SelectionOptionsBar: React__default.FC<SelectionOptionsBarProps>;
143
+
144
+ interface RefineEdgePanelProps {
145
+ controller: ImageEditorController;
146
+ /** The current selection (`state.selection`), so the panel re-renders with it. */
147
+ selection?: SelectionMask | null;
148
+ /** The adjustment layers (`state.adjustments.layers`), for the mask actions. */
149
+ layers?: AdjustmentLayer[];
150
+ className?: string;
151
+ }
152
+ /**
153
+ * Refine Edge (snap the selection, e.g. a coarse AI mask, to the image's edges) and layer masks:
154
+ * use the selection as an adjustment layer's mask, edit mask density and feather, load a mask
155
+ * back as a selection.
156
+ */
157
+ declare const RefineEdgePanel: React__default.FC<RefineEdgePanelProps>;
158
+
159
+ export { AdjustmentLayersPanel, type AdjustmentLayersPanelProps, ControlSlider, type ControlSliderProps, CurvesEditor, type CurvesEditorProps, Histogram, type HistogramProps, ImageEditor, type ImageEditorProps, RefineEdgePanel, type RefineEdgePanelProps, SelectionOptionsBar, type SelectionOptionsBarProps, type UseImageEditorReturn, useImageEditor, useImageHistogram };
@@ -1,4 +1,4 @@
1
- import { ImageEditorController, ImageEditorState, ImageEditorTool, CropBox, AspectRatio, ImageAdjustments, DepthMaskOptions, CreateAnnotationPayload, Annotation, ImagePoint, ExportOptions, SerializedImageEditorState, ImageEditorOptions, InpaintHook, RemoveBackgroundHook, ImageEditorAIHooks } from '@pixerate/editor/image-editor';
1
+ import { ImageEditorController, ImageEditorState, ImageEditorTool, CropBox, AspectRatio, ImageAdjustments, AdjustmentKind, AdjustmentLayerInit, AdjustmentLayerUpdate, ImageHistogram, DepthMaskOptions, CreateAnnotationPayload, Annotation, ImagePoint, ExportOptions, SerializedImageEditorState, ImageEditorOptions, InpaintHook, RemoveBackgroundHook, ImageEditorAIHooks, ControlSpec, CurvePoint, AdjustmentLayer, SelectionToolOptions, SelectionMask } from '@pixerate/editor/image-editor';
2
2
  import React__default from 'react';
3
3
 
4
4
  interface UseImageEditorReturn {
@@ -18,6 +18,14 @@ interface UseImageEditorReturn {
18
18
  resetAdjustments: () => void;
19
19
  /** Update to Current Process: re-render the adjustments with the latest process (one undo step). */
20
20
  upgradeProcess: () => boolean;
21
+ /** Adds an adjustment layer (one undo step) and returns its id. */
22
+ addAdjustmentLayer: (init: AdjustmentKind | AdjustmentLayerInit, index?: number) => string;
23
+ updateAdjustmentLayer: (id: string, update: AdjustmentLayerUpdate, commitToHistory?: boolean) => boolean;
24
+ removeAdjustmentLayer: (id: string) => boolean;
25
+ moveAdjustmentLayer: (id: string, toIndex: number) => boolean;
26
+ toggleAdjustmentLayer: (id: string, enabled?: boolean) => boolean;
27
+ /** Histogram of the last rendered preview (after adjustments and layers); null before a render. */
28
+ histogram: ImageHistogram | null;
21
29
  setDepthMask: (partial: Partial<DepthMaskOptions>) => void;
22
30
  resetDepthMask: () => void;
23
31
  addAnnotation: (annotation: CreateAnnotationPayload) => string;
@@ -66,4 +74,86 @@ interface ImageEditorProps {
66
74
  }
67
75
  declare const ImageEditor: React__default.FC<ImageEditorProps>;
68
76
 
69
- export { ImageEditor, type ImageEditorProps, type UseImageEditorReturn, useImageEditor };
77
+ interface HistogramProps {
78
+ histogram: ImageHistogram | null;
79
+ /** `rgb` overlays the three channels on the luminance; a single channel draws just that one. */
80
+ channel?: 'rgb' | 'luminance' | 'red' | 'green' | 'blue';
81
+ height?: number;
82
+ className?: string;
83
+ style?: React__default.CSSProperties;
84
+ }
85
+ /** SVG histogram of an image (see `computeHistogram` / `controller.subscribeHistogram`). */
86
+ declare const Histogram: React__default.FC<HistogramProps>;
87
+ /** The preview histogram of an image editor, updated after every render. */
88
+ declare function useImageHistogram(controller: ImageEditorController): ImageHistogram | null;
89
+
90
+ interface ControlSliderProps {
91
+ spec: ControlSpec;
92
+ value: number;
93
+ onChange: (value: number) => void;
94
+ disabled?: boolean;
95
+ /** Overrides `spec.label` (also the accessible name). */
96
+ label?: string;
97
+ }
98
+ /** A labelled range input described by a control-table entry. */
99
+ declare const ControlSlider: React__default.FC<ControlSliderProps>;
100
+
101
+ interface CurvesEditorProps {
102
+ points: CurvePoint[];
103
+ /** `commit` is true for the first change of a gesture (one undo step), false for the drag moves. */
104
+ onChange: (points: CurvePoint[], commit: boolean) => void;
105
+ histogram?: ImageHistogram | null;
106
+ channel?: 'master' | 'red' | 'green' | 'blue';
107
+ size?: number;
108
+ }
109
+ /**
110
+ * Curves editor over the histogram: click to add a point, drag to move it, double-click to
111
+ * remove it.
112
+ */
113
+ declare const CurvesEditor: React__default.FC<CurvesEditorProps>;
114
+
115
+ interface AdjustmentLayersPanelProps {
116
+ controller: ImageEditorController;
117
+ /** The current layers (`state.adjustments.layers`), bottom to top. Omit to follow the controller. */
118
+ layers?: AdjustmentLayer[];
119
+ histogram?: ImageHistogram | null;
120
+ }
121
+ /**
122
+ * Adjustment-layer stack: add, reorder, show / hide and remove layers, and edit the selected
123
+ * one (curves over the histogram, levels, hue/saturation ranges, colour balance, …).
124
+ */
125
+ declare const AdjustmentLayersPanel: React__default.FC<AdjustmentLayersPanelProps>;
126
+
127
+ interface SelectionOptionsBarProps {
128
+ controller: ImageEditorController;
129
+ options: SelectionToolOptions;
130
+ onOptionsChange: (next: SelectionToolOptions) => void;
131
+ /** The current selection (pass `state.selection` so the bar re-renders with it). */
132
+ selection?: SelectionMask | null;
133
+ /** The current Quick Mask view flag (`state.quickMask`). */
134
+ quickMask?: boolean;
135
+ className?: string;
136
+ }
137
+ /**
138
+ * Options bar of the selection tools: tool, mode (new / add / subtract / intersect), magic wand
139
+ * tolerance and contiguous, anti-alias, sample merged, Select › All / Deselect / Inverse,
140
+ * Modify (grow, shrink, feather, border, smooth) and the Quick Mask toggle.
141
+ */
142
+ declare const SelectionOptionsBar: React__default.FC<SelectionOptionsBarProps>;
143
+
144
+ interface RefineEdgePanelProps {
145
+ controller: ImageEditorController;
146
+ /** The current selection (`state.selection`), so the panel re-renders with it. */
147
+ selection?: SelectionMask | null;
148
+ /** The adjustment layers (`state.adjustments.layers`), for the mask actions. */
149
+ layers?: AdjustmentLayer[];
150
+ className?: string;
151
+ }
152
+ /**
153
+ * Refine Edge (snap the selection, e.g. a coarse AI mask, to the image's edges) and layer masks:
154
+ * use the selection as an adjustment layer's mask, edit mask density and feather, load a mask
155
+ * back as a selection.
156
+ */
157
+ declare const RefineEdgePanel: React__default.FC<RefineEdgePanelProps>;
158
+
159
+ export { AdjustmentLayersPanel, type AdjustmentLayersPanelProps, ControlSlider, type ControlSliderProps, CurvesEditor, type CurvesEditorProps, Histogram, type HistogramProps, ImageEditor, type ImageEditorProps, RefineEdgePanel, type RefineEdgePanelProps, SelectionOptionsBar, type SelectionOptionsBarProps, type UseImageEditorReturn, useImageEditor, useImageHistogram };
@@ -1,9 +1,23 @@
1
1
  import {
2
+ AdjustmentLayersPanel,
3
+ ControlSlider,
4
+ CurvesEditor,
5
+ Histogram,
2
6
  ImageEditor,
3
- useImageEditor
4
- } from "../chunk-LPFZMZ3L.js";
7
+ RefineEdgePanel,
8
+ SelectionOptionsBar,
9
+ useImageEditor,
10
+ useImageHistogram
11
+ } from "../chunk-ZU54BMDC.js";
5
12
  export {
13
+ AdjustmentLayersPanel,
14
+ ControlSlider,
15
+ CurvesEditor,
16
+ Histogram,
6
17
  ImageEditor,
7
- useImageEditor
18
+ RefineEdgePanel,
19
+ SelectionOptionsBar,
20
+ useImageEditor,
21
+ useImageHistogram
8
22
  };
9
23
  //# sourceMappingURL=index.js.map