@codingfactory/mediables-vue 2.11.0 → 2.13.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 (64) hide show
  1. package/dist/{PixiFrameExporter-apC6SqIv.cjs → PixiFrameExporter-BnAievFi.cjs} +2 -2
  2. package/dist/{PixiFrameExporter-apC6SqIv.cjs.map → PixiFrameExporter-BnAievFi.cjs.map} +1 -1
  3. package/dist/{PixiFrameExporter-D9swI3PO.js → PixiFrameExporter-DwbBy1Iu.js} +2 -2
  4. package/dist/{PixiFrameExporter-D9swI3PO.js.map → PixiFrameExporter-DwbBy1Iu.js.map} +1 -1
  5. package/dist/components/ImageEditorModal.vue.d.ts +9 -2
  6. package/dist/composables/useImageEditorModal.d.ts +1262 -86
  7. package/dist/composables/useRadialMenu.d.ts +1 -1
  8. package/dist/editor-BoDU3YXD.js +10862 -0
  9. package/dist/editor-BoDU3YXD.js.map +1 -0
  10. package/dist/editor-D-cJRASf.cjs +2 -0
  11. package/dist/editor-D-cJRASf.cjs.map +1 -0
  12. package/dist/{index-BFYtEc-Y.js → index-BGC4rPDc.js} +16370 -14565
  13. package/dist/index-BGC4rPDc.js.map +1 -0
  14. package/dist/index-CljyFIEv.cjs +357 -0
  15. package/dist/index-CljyFIEv.cjs.map +1 -0
  16. package/dist/mediables-vanilla.cjs +1 -1
  17. package/dist/mediables-vanilla.mjs +1 -1
  18. package/dist/mediables-vue.cjs +1 -1
  19. package/dist/mediables-vue.mjs +2 -2
  20. package/dist/style.css +1 -1
  21. package/dist/types/editor.d.ts +212 -27
  22. package/dist/vanilla-editor/VanillaImageEditor.d.ts +18 -0
  23. package/dist/vanilla-editor/VanillaImageEditorV2.d.ts +16 -0
  24. package/dist/vanilla-editor/core/EventEmitter.d.ts +12 -0
  25. package/dist/vanilla-editor/core/State.d.ts +98 -0
  26. package/dist/vanilla-editor/filters/categories.d.ts +69 -0
  27. package/dist/vanilla-editor/icons/icons.d.ts +42 -0
  28. package/dist/vanilla-editor/index.d.ts +342 -0
  29. package/dist/vanilla-editor/presets/index.d.ts +114 -0
  30. package/dist/vanilla-editor/renderer/CropManager.d.ts +140 -0
  31. package/dist/vanilla-editor/renderer/FilterManager.d.ts +132 -0
  32. package/dist/vanilla-editor/renderer/PixiRenderer.d.ts +274 -0
  33. package/dist/vanilla-editor/renderer/RemoveBgManager.d.ts +108 -0
  34. package/dist/vanilla-editor/styles/editor-v2.css +1366 -0
  35. package/dist/vanilla-editor/styles/editor.css +1403 -0
  36. package/dist/vanilla-editor/ui/ActiveFiltersPanel.d.ts +93 -0
  37. package/dist/vanilla-editor/ui/CategoryCarousel.d.ts +66 -0
  38. package/dist/vanilla-editor/ui/CropControls.d.ts +65 -0
  39. package/dist/vanilla-editor/ui/FilterAdjustments.d.ts +93 -0
  40. package/dist/vanilla-editor/ui/FilterCarousel.d.ts +74 -0
  41. package/dist/vanilla-editor/ui/MobileActiveFilters.d.ts +21 -0
  42. package/dist/vanilla-editor/ui/MobileFilterDrawer.d.ts +79 -0
  43. package/dist/vanilla-editor/ui/Toolbar.d.ts +35 -0
  44. package/dist/vanilla-editor/ui/UIBuilder.d.ts +87 -0
  45. package/dist/vanilla-editor/ui-v2/ActiveFiltersStack.d.ts +16 -0
  46. package/dist/vanilla-editor/ui-v2/BackgroundPanel.d.ts +16 -0
  47. package/dist/vanilla-editor/ui-v2/BottomDrawer.d.ts +55 -0
  48. package/dist/vanilla-editor/ui-v2/CategoryTabs.d.ts +21 -0
  49. package/dist/vanilla-editor/ui-v2/FilterControlsView.d.ts +16 -0
  50. package/dist/vanilla-editor/ui-v2/FilterListView.d.ts +32 -0
  51. package/dist/vanilla-editor/ui-v2/LayerStackPanel.d.ts +30 -0
  52. package/dist/vanilla-editor/ui-v2/MobileActiveChips.d.ts +23 -0
  53. package/dist/vanilla-editor/ui-v2/MobileNavigation.d.ts +51 -0
  54. package/dist/vanilla-editor/ui-v2/SplitPanelLayout.d.ts +70 -0
  55. package/dist/vanilla-editor/ui-v2/TextPanel.d.ts +58 -0
  56. package/dist/vanilla-exports.d.ts +9 -0
  57. package/package.json +3 -2
  58. package/dist/editor-BTwIhrcA.cjs +0 -2
  59. package/dist/editor-BTwIhrcA.cjs.map +0 -1
  60. package/dist/editor-CYj5y5bp.js +0 -8893
  61. package/dist/editor-CYj5y5bp.js.map +0 -1
  62. package/dist/index-BFYtEc-Y.js.map +0 -1
  63. package/dist/index-CAPdRZVb.cjs +0 -357
  64. package/dist/index-CAPdRZVb.cjs.map +0 -1
@@ -109,7 +109,31 @@ export declare function useImageEditorModal(options?: ImageEditorModalOptions):
109
109
  };
110
110
  } | null>;
111
111
  editedImage: import("vue").Ref<{
112
- imageData: string;
112
+ blob: {
113
+ readonly size: number;
114
+ readonly type: string;
115
+ arrayBuffer: {
116
+ (): Promise<ArrayBuffer>;
117
+ (): Promise<ArrayBuffer>;
118
+ };
119
+ bytes: {
120
+ (): Promise<Uint8Array<ArrayBuffer>>;
121
+ (): Promise<Uint8Array<ArrayBuffer>>;
122
+ };
123
+ slice: {
124
+ (start?: number, end?: number, contentType?: string): Blob;
125
+ (start?: number, end?: number, contentType?: string): Blob;
126
+ };
127
+ stream: {
128
+ (): ReadableStream<Uint8Array<ArrayBuffer>>;
129
+ (): ReadableStream<Uint8Array<ArrayBuffer>>;
130
+ };
131
+ text: {
132
+ (): Promise<string>;
133
+ (): Promise<string>;
134
+ };
135
+ };
136
+ mimeType: string;
113
137
  dimensions: {
114
138
  width: number;
115
139
  height: number;
@@ -126,30 +150,224 @@ export declare function useImageEditorModal(options?: ImageEditorModalOptions):
126
150
  aspectRatio: string;
127
151
  shape: "free" | "square" | "circle";
128
152
  };
153
+ transform?: {
154
+ rotation: number;
155
+ } | undefined;
129
156
  filters: {
130
157
  id: string;
131
158
  enabled: boolean;
132
159
  values: Record<string, import("@/types").ImageEditorPrimitive>;
133
160
  }[];
134
161
  };
135
- metadata?: {
136
- hasCrop: boolean;
137
- cropRect: {
138
- x: number;
139
- y: number;
140
- width: number;
141
- height: number;
142
- } | null;
143
- filters: string[];
144
- filterValues: Record<string, Record<string, any>>;
145
- aspectRatio: string;
146
- dimensions: {
162
+ document?: {
163
+ version: 2;
164
+ id: string;
165
+ sourceMediaUuid: string | null;
166
+ canvas: {
147
167
  width: number;
148
168
  height: number;
169
+ backgroundPreviewColor: string | null;
149
170
  };
150
- } | undefined;
171
+ revision: number;
172
+ layers: {
173
+ id: string;
174
+ type: import("@/types").ImageEditorLayerType;
175
+ role: import("@/types").ImageEditorLayerRole;
176
+ name: string;
177
+ visible: boolean;
178
+ locked: boolean;
179
+ opacity: number;
180
+ blendMode: import("@/types").ImageEditorBlendMode;
181
+ transform: {
182
+ x: number;
183
+ y: number;
184
+ scaleX: number;
185
+ scaleY: number;
186
+ rotation: number;
187
+ };
188
+ effects: unknown[];
189
+ metadata: Record<string, unknown>;
190
+ source?: {
191
+ kind: "media";
192
+ mediaUuid: string;
193
+ originalWidth: number;
194
+ originalHeight: number;
195
+ sourceHash: string;
196
+ url?: string | undefined;
197
+ previewUrl?: string | undefined;
198
+ sourceUrl?: string | undefined;
199
+ } | {
200
+ kind: "edit-asset";
201
+ assetId: string;
202
+ originalWidth: number;
203
+ originalHeight: number;
204
+ sourceHash: string;
205
+ url?: string | undefined;
206
+ previewUrl?: string | undefined;
207
+ sourceUrl?: string | undefined;
208
+ } | {
209
+ kind: "runtime";
210
+ runtimeRef: string;
211
+ originalWidth: number;
212
+ originalHeight: number;
213
+ sourceHash: string | null;
214
+ url?: string | undefined;
215
+ previewUrl?: string | undefined;
216
+ sourceUrl?: string | undefined;
217
+ } | {
218
+ kind: "color";
219
+ color: string;
220
+ } | undefined;
221
+ fill?: {
222
+ kind: "transparent";
223
+ } | {
224
+ kind: "color";
225
+ value: string;
226
+ fit?: "cover" | "contain" | "stretch" | "tile" | undefined;
227
+ } | {
228
+ kind: "gradient";
229
+ gradientType: "linear" | "radial";
230
+ angle: number;
231
+ stops: {
232
+ offset: number;
233
+ color: string;
234
+ }[];
235
+ fit: "cover" | "contain" | "stretch" | "tile";
236
+ } | {
237
+ kind: "media";
238
+ source: {
239
+ kind: "media";
240
+ mediaUuid: string;
241
+ originalWidth: number;
242
+ originalHeight: number;
243
+ sourceHash: string;
244
+ url?: string | undefined;
245
+ previewUrl?: string | undefined;
246
+ sourceUrl?: string | undefined;
247
+ } | {
248
+ kind: "edit-asset";
249
+ assetId: string;
250
+ originalWidth: number;
251
+ originalHeight: number;
252
+ sourceHash: string;
253
+ url?: string | undefined;
254
+ previewUrl?: string | undefined;
255
+ sourceUrl?: string | undefined;
256
+ } | {
257
+ kind: "runtime";
258
+ runtimeRef: string;
259
+ originalWidth: number;
260
+ originalHeight: number;
261
+ sourceHash: string | null;
262
+ url?: string | undefined;
263
+ previewUrl?: string | undefined;
264
+ sourceUrl?: string | undefined;
265
+ } | {
266
+ kind: "color";
267
+ color: string;
268
+ };
269
+ fit: "cover" | "contain" | "stretch" | "tile";
270
+ } | undefined;
271
+ text?: {
272
+ content: string;
273
+ box: {
274
+ x: number;
275
+ y: number;
276
+ width: number;
277
+ height: number;
278
+ };
279
+ style: {
280
+ fontFamily: string;
281
+ fontSize: number;
282
+ fontWeight: number;
283
+ fontStyle: "normal" | "italic";
284
+ fill: string;
285
+ align: "left" | "center" | "right";
286
+ lineHeight: number;
287
+ letterSpacing: number;
288
+ };
289
+ effects: {
290
+ stroke: {
291
+ enabled: boolean;
292
+ color: string;
293
+ width: number;
294
+ };
295
+ shadow: {
296
+ enabled: boolean;
297
+ color: string;
298
+ alpha: number;
299
+ blur: number;
300
+ distance: number;
301
+ angle: number;
302
+ };
303
+ glow: {
304
+ enabled: boolean;
305
+ color: string;
306
+ alpha: number;
307
+ blur: number;
308
+ };
309
+ backdrop: {
310
+ enabled: boolean;
311
+ color: string;
312
+ opacity: number;
313
+ padding: number;
314
+ radius: number;
315
+ blur: number;
316
+ };
317
+ };
318
+ } | undefined;
319
+ crop: {
320
+ x: number;
321
+ y: number;
322
+ width: number;
323
+ height: number;
324
+ } | null;
325
+ filters: {
326
+ id: string;
327
+ enabled: boolean;
328
+ values: Record<string, import("@/types").ImageEditorPrimitive>;
329
+ }[];
330
+ }[];
331
+ activeLayerId: string | null;
332
+ export: {
333
+ mimeType: "image/png" | "image/jpeg" | "image/webp";
334
+ quality: number | null;
335
+ preserveTransparency: boolean;
336
+ matteColor: string | null;
337
+ trimTransparentBounds: boolean;
338
+ };
339
+ createdAt?: string | undefined;
340
+ updatedAt?: string | undefined;
341
+ } | null | undefined;
342
+ documentId?: string | null | undefined;
343
+ documentRevisionId?: string | null | undefined;
344
+ documentRevisionNumber?: number | null | undefined;
151
345
  } | null, SaveEventPayload | {
152
- imageData: string;
346
+ blob: {
347
+ readonly size: number;
348
+ readonly type: string;
349
+ arrayBuffer: {
350
+ (): Promise<ArrayBuffer>;
351
+ (): Promise<ArrayBuffer>;
352
+ };
353
+ bytes: {
354
+ (): Promise<Uint8Array<ArrayBuffer>>;
355
+ (): Promise<Uint8Array<ArrayBuffer>>;
356
+ };
357
+ slice: {
358
+ (start?: number, end?: number, contentType?: string): Blob;
359
+ (start?: number, end?: number, contentType?: string): Blob;
360
+ };
361
+ stream: {
362
+ (): ReadableStream<Uint8Array<ArrayBuffer>>;
363
+ (): ReadableStream<Uint8Array<ArrayBuffer>>;
364
+ };
365
+ text: {
366
+ (): Promise<string>;
367
+ (): Promise<string>;
368
+ };
369
+ };
370
+ mimeType: string;
153
371
  dimensions: {
154
372
  width: number;
155
373
  height: number;
@@ -166,30 +384,200 @@ export declare function useImageEditorModal(options?: ImageEditorModalOptions):
166
384
  aspectRatio: string;
167
385
  shape: "free" | "square" | "circle";
168
386
  };
387
+ transform?: {
388
+ rotation: number;
389
+ } | undefined;
169
390
  filters: {
170
391
  id: string;
171
392
  enabled: boolean;
172
393
  values: Record<string, import("@/types").ImageEditorPrimitive>;
173
394
  }[];
174
395
  };
175
- metadata?: {
176
- hasCrop: boolean;
177
- cropRect: {
178
- x: number;
179
- y: number;
180
- width: number;
181
- height: number;
182
- } | null;
183
- filters: string[];
184
- filterValues: Record<string, Record<string, any>>;
185
- aspectRatio: string;
186
- dimensions: {
396
+ document?: {
397
+ version: 2;
398
+ id: string;
399
+ sourceMediaUuid: string | null;
400
+ canvas: {
187
401
  width: number;
188
402
  height: number;
403
+ backgroundPreviewColor: string | null;
189
404
  };
190
- } | undefined;
405
+ revision: number;
406
+ layers: {
407
+ id: string;
408
+ type: import("@/types").ImageEditorLayerType;
409
+ role: import("@/types").ImageEditorLayerRole;
410
+ name: string;
411
+ visible: boolean;
412
+ locked: boolean;
413
+ opacity: number;
414
+ blendMode: import("@/types").ImageEditorBlendMode;
415
+ transform: {
416
+ x: number;
417
+ y: number;
418
+ scaleX: number;
419
+ scaleY: number;
420
+ rotation: number;
421
+ };
422
+ effects: unknown[];
423
+ metadata: Record<string, unknown>;
424
+ source?: {
425
+ kind: "media";
426
+ mediaUuid: string;
427
+ originalWidth: number;
428
+ originalHeight: number;
429
+ sourceHash: string;
430
+ url?: string | undefined;
431
+ previewUrl?: string | undefined;
432
+ sourceUrl?: string | undefined;
433
+ } | {
434
+ kind: "edit-asset";
435
+ assetId: string;
436
+ originalWidth: number;
437
+ originalHeight: number;
438
+ sourceHash: string;
439
+ url?: string | undefined;
440
+ previewUrl?: string | undefined;
441
+ sourceUrl?: string | undefined;
442
+ } | {
443
+ kind: "runtime";
444
+ runtimeRef: string;
445
+ originalWidth: number;
446
+ originalHeight: number;
447
+ sourceHash: string | null;
448
+ url?: string | undefined;
449
+ previewUrl?: string | undefined;
450
+ sourceUrl?: string | undefined;
451
+ } | {
452
+ kind: "color";
453
+ color: string;
454
+ } | undefined;
455
+ fill?: {
456
+ kind: "transparent";
457
+ } | {
458
+ kind: "color";
459
+ value: string;
460
+ fit?: "cover" | "contain" | "stretch" | "tile" | undefined;
461
+ } | {
462
+ kind: "gradient";
463
+ gradientType: "linear" | "radial";
464
+ angle: number;
465
+ stops: {
466
+ offset: number;
467
+ color: string;
468
+ }[];
469
+ fit: "cover" | "contain" | "stretch" | "tile";
470
+ } | {
471
+ kind: "media";
472
+ source: {
473
+ kind: "media";
474
+ mediaUuid: string;
475
+ originalWidth: number;
476
+ originalHeight: number;
477
+ sourceHash: string;
478
+ url?: string | undefined;
479
+ previewUrl?: string | undefined;
480
+ sourceUrl?: string | undefined;
481
+ } | {
482
+ kind: "edit-asset";
483
+ assetId: string;
484
+ originalWidth: number;
485
+ originalHeight: number;
486
+ sourceHash: string;
487
+ url?: string | undefined;
488
+ previewUrl?: string | undefined;
489
+ sourceUrl?: string | undefined;
490
+ } | {
491
+ kind: "runtime";
492
+ runtimeRef: string;
493
+ originalWidth: number;
494
+ originalHeight: number;
495
+ sourceHash: string | null;
496
+ url?: string | undefined;
497
+ previewUrl?: string | undefined;
498
+ sourceUrl?: string | undefined;
499
+ } | {
500
+ kind: "color";
501
+ color: string;
502
+ };
503
+ fit: "cover" | "contain" | "stretch" | "tile";
504
+ } | undefined;
505
+ text?: {
506
+ content: string;
507
+ box: {
508
+ x: number;
509
+ y: number;
510
+ width: number;
511
+ height: number;
512
+ };
513
+ style: {
514
+ fontFamily: string;
515
+ fontSize: number;
516
+ fontWeight: number;
517
+ fontStyle: "normal" | "italic";
518
+ fill: string;
519
+ align: "left" | "center" | "right";
520
+ lineHeight: number;
521
+ letterSpacing: number;
522
+ };
523
+ effects: {
524
+ stroke: {
525
+ enabled: boolean;
526
+ color: string;
527
+ width: number;
528
+ };
529
+ shadow: {
530
+ enabled: boolean;
531
+ color: string;
532
+ alpha: number;
533
+ blur: number;
534
+ distance: number;
535
+ angle: number;
536
+ };
537
+ glow: {
538
+ enabled: boolean;
539
+ color: string;
540
+ alpha: number;
541
+ blur: number;
542
+ };
543
+ backdrop: {
544
+ enabled: boolean;
545
+ color: string;
546
+ opacity: number;
547
+ padding: number;
548
+ radius: number;
549
+ blur: number;
550
+ };
551
+ };
552
+ } | undefined;
553
+ crop: {
554
+ x: number;
555
+ y: number;
556
+ width: number;
557
+ height: number;
558
+ } | null;
559
+ filters: {
560
+ id: string;
561
+ enabled: boolean;
562
+ values: Record<string, import("@/types").ImageEditorPrimitive>;
563
+ }[];
564
+ }[];
565
+ activeLayerId: string | null;
566
+ export: {
567
+ mimeType: "image/png" | "image/jpeg" | "image/webp";
568
+ quality: number | null;
569
+ preserveTransparency: boolean;
570
+ matteColor: string | null;
571
+ trimTransparentBounds: boolean;
572
+ };
573
+ createdAt?: string | undefined;
574
+ updatedAt?: string | undefined;
575
+ } | null | undefined;
576
+ documentId?: string | null | undefined;
577
+ documentRevisionId?: string | null | undefined;
578
+ documentRevisionNumber?: number | null | undefined;
191
579
  } | null>;
192
- sessionKey: import("vue").Ref<number, number>;
580
+ sessionKey: import("vue").Ref<string | number, string | number>;
193
581
  initialState: import("vue").Ref<{
194
582
  version: 1;
195
583
  crop: {
@@ -202,6 +590,9 @@ export declare function useImageEditorModal(options?: ImageEditorModalOptions):
202
590
  aspectRatio: string;
203
591
  shape: "free" | "square" | "circle";
204
592
  };
593
+ transform?: {
594
+ rotation: number;
595
+ } | undefined;
205
596
  filters: {
206
597
  id: string;
207
598
  enabled: boolean;
@@ -219,6 +610,9 @@ export declare function useImageEditorModal(options?: ImageEditorModalOptions):
219
610
  aspectRatio: string;
220
611
  shape: "free" | "square" | "circle";
221
612
  };
613
+ transform?: {
614
+ rotation: number;
615
+ } | undefined;
222
616
  filters: {
223
617
  id: string;
224
618
  enabled: boolean;
@@ -235,7 +629,31 @@ export declare function useImageEditorModal(options?: ImageEditorModalOptions):
235
629
  handleError: (err: Error) => void;
236
630
  clearError: () => void;
237
631
  getEditedImage: () => {
238
- imageData: string;
632
+ blob: {
633
+ readonly size: number;
634
+ readonly type: string;
635
+ arrayBuffer: {
636
+ (): Promise<ArrayBuffer>;
637
+ (): Promise<ArrayBuffer>;
638
+ };
639
+ bytes: {
640
+ (): Promise<Uint8Array<ArrayBuffer>>;
641
+ (): Promise<Uint8Array<ArrayBuffer>>;
642
+ };
643
+ slice: {
644
+ (start?: number, end?: number, contentType?: string): Blob;
645
+ (start?: number, end?: number, contentType?: string): Blob;
646
+ };
647
+ stream: {
648
+ (): ReadableStream<Uint8Array<ArrayBuffer>>;
649
+ (): ReadableStream<Uint8Array<ArrayBuffer>>;
650
+ };
651
+ text: {
652
+ (): Promise<string>;
653
+ (): Promise<string>;
654
+ };
655
+ };
656
+ mimeType: string;
239
657
  dimensions: {
240
658
  width: number;
241
659
  height: number;
@@ -252,28 +670,198 @@ export declare function useImageEditorModal(options?: ImageEditorModalOptions):
252
670
  aspectRatio: string;
253
671
  shape: "free" | "square" | "circle";
254
672
  };
673
+ transform?: {
674
+ rotation: number;
675
+ } | undefined;
255
676
  filters: {
256
677
  id: string;
257
678
  enabled: boolean;
258
679
  values: Record<string, import("@/types").ImageEditorPrimitive>;
259
680
  }[];
260
681
  };
261
- metadata?: {
262
- hasCrop: boolean;
263
- cropRect: {
264
- x: number;
265
- y: number;
266
- width: number;
267
- height: number;
268
- } | null;
269
- filters: string[];
270
- filterValues: Record<string, Record<string, any>>;
271
- aspectRatio: string;
272
- dimensions: {
682
+ document?: {
683
+ version: 2;
684
+ id: string;
685
+ sourceMediaUuid: string | null;
686
+ canvas: {
273
687
  width: number;
274
688
  height: number;
689
+ backgroundPreviewColor: string | null;
275
690
  };
276
- } | undefined;
691
+ revision: number;
692
+ layers: {
693
+ id: string;
694
+ type: import("@/types").ImageEditorLayerType;
695
+ role: import("@/types").ImageEditorLayerRole;
696
+ name: string;
697
+ visible: boolean;
698
+ locked: boolean;
699
+ opacity: number;
700
+ blendMode: import("@/types").ImageEditorBlendMode;
701
+ transform: {
702
+ x: number;
703
+ y: number;
704
+ scaleX: number;
705
+ scaleY: number;
706
+ rotation: number;
707
+ };
708
+ effects: unknown[];
709
+ metadata: Record<string, unknown>;
710
+ source?: {
711
+ kind: "media";
712
+ mediaUuid: string;
713
+ originalWidth: number;
714
+ originalHeight: number;
715
+ sourceHash: string;
716
+ url?: string | undefined;
717
+ previewUrl?: string | undefined;
718
+ sourceUrl?: string | undefined;
719
+ } | {
720
+ kind: "edit-asset";
721
+ assetId: string;
722
+ originalWidth: number;
723
+ originalHeight: number;
724
+ sourceHash: string;
725
+ url?: string | undefined;
726
+ previewUrl?: string | undefined;
727
+ sourceUrl?: string | undefined;
728
+ } | {
729
+ kind: "runtime";
730
+ runtimeRef: string;
731
+ originalWidth: number;
732
+ originalHeight: number;
733
+ sourceHash: string | null;
734
+ url?: string | undefined;
735
+ previewUrl?: string | undefined;
736
+ sourceUrl?: string | undefined;
737
+ } | {
738
+ kind: "color";
739
+ color: string;
740
+ } | undefined;
741
+ fill?: {
742
+ kind: "transparent";
743
+ } | {
744
+ kind: "color";
745
+ value: string;
746
+ fit?: "cover" | "contain" | "stretch" | "tile" | undefined;
747
+ } | {
748
+ kind: "gradient";
749
+ gradientType: "linear" | "radial";
750
+ angle: number;
751
+ stops: {
752
+ offset: number;
753
+ color: string;
754
+ }[];
755
+ fit: "cover" | "contain" | "stretch" | "tile";
756
+ } | {
757
+ kind: "media";
758
+ source: {
759
+ kind: "media";
760
+ mediaUuid: string;
761
+ originalWidth: number;
762
+ originalHeight: number;
763
+ sourceHash: string;
764
+ url?: string | undefined;
765
+ previewUrl?: string | undefined;
766
+ sourceUrl?: string | undefined;
767
+ } | {
768
+ kind: "edit-asset";
769
+ assetId: string;
770
+ originalWidth: number;
771
+ originalHeight: number;
772
+ sourceHash: string;
773
+ url?: string | undefined;
774
+ previewUrl?: string | undefined;
775
+ sourceUrl?: string | undefined;
776
+ } | {
777
+ kind: "runtime";
778
+ runtimeRef: string;
779
+ originalWidth: number;
780
+ originalHeight: number;
781
+ sourceHash: string | null;
782
+ url?: string | undefined;
783
+ previewUrl?: string | undefined;
784
+ sourceUrl?: string | undefined;
785
+ } | {
786
+ kind: "color";
787
+ color: string;
788
+ };
789
+ fit: "cover" | "contain" | "stretch" | "tile";
790
+ } | undefined;
791
+ text?: {
792
+ content: string;
793
+ box: {
794
+ x: number;
795
+ y: number;
796
+ width: number;
797
+ height: number;
798
+ };
799
+ style: {
800
+ fontFamily: string;
801
+ fontSize: number;
802
+ fontWeight: number;
803
+ fontStyle: "normal" | "italic";
804
+ fill: string;
805
+ align: "left" | "center" | "right";
806
+ lineHeight: number;
807
+ letterSpacing: number;
808
+ };
809
+ effects: {
810
+ stroke: {
811
+ enabled: boolean;
812
+ color: string;
813
+ width: number;
814
+ };
815
+ shadow: {
816
+ enabled: boolean;
817
+ color: string;
818
+ alpha: number;
819
+ blur: number;
820
+ distance: number;
821
+ angle: number;
822
+ };
823
+ glow: {
824
+ enabled: boolean;
825
+ color: string;
826
+ alpha: number;
827
+ blur: number;
828
+ };
829
+ backdrop: {
830
+ enabled: boolean;
831
+ color: string;
832
+ opacity: number;
833
+ padding: number;
834
+ radius: number;
835
+ blur: number;
836
+ };
837
+ };
838
+ } | undefined;
839
+ crop: {
840
+ x: number;
841
+ y: number;
842
+ width: number;
843
+ height: number;
844
+ } | null;
845
+ filters: {
846
+ id: string;
847
+ enabled: boolean;
848
+ values: Record<string, import("@/types").ImageEditorPrimitive>;
849
+ }[];
850
+ }[];
851
+ activeLayerId: string | null;
852
+ export: {
853
+ mimeType: "image/png" | "image/jpeg" | "image/webp";
854
+ quality: number | null;
855
+ preserveTransparency: boolean;
856
+ matteColor: string | null;
857
+ trimTransparentBounds: boolean;
858
+ };
859
+ createdAt?: string | undefined;
860
+ updatedAt?: string | undefined;
861
+ } | null | undefined;
862
+ documentId?: string | null | undefined;
863
+ documentRevisionId?: string | null | undefined;
864
+ documentRevisionNumber?: number | null | undefined;
277
865
  } | null;
278
866
  };
279
867
  export declare function useGlobalImageEditor(options?: ImageEditorModalOptions): {
@@ -379,7 +967,31 @@ export declare function useGlobalImageEditor(options?: ImageEditorModalOptions):
379
967
  };
380
968
  } | null>;
381
969
  editedImage: import("vue").Ref<{
382
- imageData: string;
970
+ blob: {
971
+ readonly size: number;
972
+ readonly type: string;
973
+ arrayBuffer: {
974
+ (): Promise<ArrayBuffer>;
975
+ (): Promise<ArrayBuffer>;
976
+ };
977
+ bytes: {
978
+ (): Promise<Uint8Array<ArrayBuffer>>;
979
+ (): Promise<Uint8Array<ArrayBuffer>>;
980
+ };
981
+ slice: {
982
+ (start?: number, end?: number, contentType?: string): Blob;
983
+ (start?: number, end?: number, contentType?: string): Blob;
984
+ };
985
+ stream: {
986
+ (): ReadableStream<Uint8Array<ArrayBuffer>>;
987
+ (): ReadableStream<Uint8Array<ArrayBuffer>>;
988
+ };
989
+ text: {
990
+ (): Promise<string>;
991
+ (): Promise<string>;
992
+ };
993
+ };
994
+ mimeType: string;
383
995
  dimensions: {
384
996
  width: number;
385
997
  height: number;
@@ -396,30 +1008,224 @@ export declare function useGlobalImageEditor(options?: ImageEditorModalOptions):
396
1008
  aspectRatio: string;
397
1009
  shape: "free" | "square" | "circle";
398
1010
  };
1011
+ transform?: {
1012
+ rotation: number;
1013
+ } | undefined;
399
1014
  filters: {
400
1015
  id: string;
401
1016
  enabled: boolean;
402
1017
  values: Record<string, import("@/types").ImageEditorPrimitive>;
403
1018
  }[];
404
1019
  };
405
- metadata?: {
406
- hasCrop: boolean;
407
- cropRect: {
408
- x: number;
409
- y: number;
410
- width: number;
411
- height: number;
412
- } | null;
413
- filters: string[];
414
- filterValues: Record<string, Record<string, any>>;
415
- aspectRatio: string;
416
- dimensions: {
1020
+ document?: {
1021
+ version: 2;
1022
+ id: string;
1023
+ sourceMediaUuid: string | null;
1024
+ canvas: {
417
1025
  width: number;
418
1026
  height: number;
1027
+ backgroundPreviewColor: string | null;
419
1028
  };
420
- } | undefined;
1029
+ revision: number;
1030
+ layers: {
1031
+ id: string;
1032
+ type: import("@/types").ImageEditorLayerType;
1033
+ role: import("@/types").ImageEditorLayerRole;
1034
+ name: string;
1035
+ visible: boolean;
1036
+ locked: boolean;
1037
+ opacity: number;
1038
+ blendMode: import("@/types").ImageEditorBlendMode;
1039
+ transform: {
1040
+ x: number;
1041
+ y: number;
1042
+ scaleX: number;
1043
+ scaleY: number;
1044
+ rotation: number;
1045
+ };
1046
+ effects: unknown[];
1047
+ metadata: Record<string, unknown>;
1048
+ source?: {
1049
+ kind: "media";
1050
+ mediaUuid: string;
1051
+ originalWidth: number;
1052
+ originalHeight: number;
1053
+ sourceHash: string;
1054
+ url?: string | undefined;
1055
+ previewUrl?: string | undefined;
1056
+ sourceUrl?: string | undefined;
1057
+ } | {
1058
+ kind: "edit-asset";
1059
+ assetId: string;
1060
+ originalWidth: number;
1061
+ originalHeight: number;
1062
+ sourceHash: string;
1063
+ url?: string | undefined;
1064
+ previewUrl?: string | undefined;
1065
+ sourceUrl?: string | undefined;
1066
+ } | {
1067
+ kind: "runtime";
1068
+ runtimeRef: string;
1069
+ originalWidth: number;
1070
+ originalHeight: number;
1071
+ sourceHash: string | null;
1072
+ url?: string | undefined;
1073
+ previewUrl?: string | undefined;
1074
+ sourceUrl?: string | undefined;
1075
+ } | {
1076
+ kind: "color";
1077
+ color: string;
1078
+ } | undefined;
1079
+ fill?: {
1080
+ kind: "transparent";
1081
+ } | {
1082
+ kind: "color";
1083
+ value: string;
1084
+ fit?: "cover" | "contain" | "stretch" | "tile" | undefined;
1085
+ } | {
1086
+ kind: "gradient";
1087
+ gradientType: "linear" | "radial";
1088
+ angle: number;
1089
+ stops: {
1090
+ offset: number;
1091
+ color: string;
1092
+ }[];
1093
+ fit: "cover" | "contain" | "stretch" | "tile";
1094
+ } | {
1095
+ kind: "media";
1096
+ source: {
1097
+ kind: "media";
1098
+ mediaUuid: string;
1099
+ originalWidth: number;
1100
+ originalHeight: number;
1101
+ sourceHash: string;
1102
+ url?: string | undefined;
1103
+ previewUrl?: string | undefined;
1104
+ sourceUrl?: string | undefined;
1105
+ } | {
1106
+ kind: "edit-asset";
1107
+ assetId: string;
1108
+ originalWidth: number;
1109
+ originalHeight: number;
1110
+ sourceHash: string;
1111
+ url?: string | undefined;
1112
+ previewUrl?: string | undefined;
1113
+ sourceUrl?: string | undefined;
1114
+ } | {
1115
+ kind: "runtime";
1116
+ runtimeRef: string;
1117
+ originalWidth: number;
1118
+ originalHeight: number;
1119
+ sourceHash: string | null;
1120
+ url?: string | undefined;
1121
+ previewUrl?: string | undefined;
1122
+ sourceUrl?: string | undefined;
1123
+ } | {
1124
+ kind: "color";
1125
+ color: string;
1126
+ };
1127
+ fit: "cover" | "contain" | "stretch" | "tile";
1128
+ } | undefined;
1129
+ text?: {
1130
+ content: string;
1131
+ box: {
1132
+ x: number;
1133
+ y: number;
1134
+ width: number;
1135
+ height: number;
1136
+ };
1137
+ style: {
1138
+ fontFamily: string;
1139
+ fontSize: number;
1140
+ fontWeight: number;
1141
+ fontStyle: "normal" | "italic";
1142
+ fill: string;
1143
+ align: "left" | "center" | "right";
1144
+ lineHeight: number;
1145
+ letterSpacing: number;
1146
+ };
1147
+ effects: {
1148
+ stroke: {
1149
+ enabled: boolean;
1150
+ color: string;
1151
+ width: number;
1152
+ };
1153
+ shadow: {
1154
+ enabled: boolean;
1155
+ color: string;
1156
+ alpha: number;
1157
+ blur: number;
1158
+ distance: number;
1159
+ angle: number;
1160
+ };
1161
+ glow: {
1162
+ enabled: boolean;
1163
+ color: string;
1164
+ alpha: number;
1165
+ blur: number;
1166
+ };
1167
+ backdrop: {
1168
+ enabled: boolean;
1169
+ color: string;
1170
+ opacity: number;
1171
+ padding: number;
1172
+ radius: number;
1173
+ blur: number;
1174
+ };
1175
+ };
1176
+ } | undefined;
1177
+ crop: {
1178
+ x: number;
1179
+ y: number;
1180
+ width: number;
1181
+ height: number;
1182
+ } | null;
1183
+ filters: {
1184
+ id: string;
1185
+ enabled: boolean;
1186
+ values: Record<string, import("@/types").ImageEditorPrimitive>;
1187
+ }[];
1188
+ }[];
1189
+ activeLayerId: string | null;
1190
+ export: {
1191
+ mimeType: "image/png" | "image/jpeg" | "image/webp";
1192
+ quality: number | null;
1193
+ preserveTransparency: boolean;
1194
+ matteColor: string | null;
1195
+ trimTransparentBounds: boolean;
1196
+ };
1197
+ createdAt?: string | undefined;
1198
+ updatedAt?: string | undefined;
1199
+ } | null | undefined;
1200
+ documentId?: string | null | undefined;
1201
+ documentRevisionId?: string | null | undefined;
1202
+ documentRevisionNumber?: number | null | undefined;
421
1203
  } | null, SaveEventPayload | {
422
- imageData: string;
1204
+ blob: {
1205
+ readonly size: number;
1206
+ readonly type: string;
1207
+ arrayBuffer: {
1208
+ (): Promise<ArrayBuffer>;
1209
+ (): Promise<ArrayBuffer>;
1210
+ };
1211
+ bytes: {
1212
+ (): Promise<Uint8Array<ArrayBuffer>>;
1213
+ (): Promise<Uint8Array<ArrayBuffer>>;
1214
+ };
1215
+ slice: {
1216
+ (start?: number, end?: number, contentType?: string): Blob;
1217
+ (start?: number, end?: number, contentType?: string): Blob;
1218
+ };
1219
+ stream: {
1220
+ (): ReadableStream<Uint8Array<ArrayBuffer>>;
1221
+ (): ReadableStream<Uint8Array<ArrayBuffer>>;
1222
+ };
1223
+ text: {
1224
+ (): Promise<string>;
1225
+ (): Promise<string>;
1226
+ };
1227
+ };
1228
+ mimeType: string;
423
1229
  dimensions: {
424
1230
  width: number;
425
1231
  height: number;
@@ -436,30 +1242,200 @@ export declare function useGlobalImageEditor(options?: ImageEditorModalOptions):
436
1242
  aspectRatio: string;
437
1243
  shape: "free" | "square" | "circle";
438
1244
  };
1245
+ transform?: {
1246
+ rotation: number;
1247
+ } | undefined;
439
1248
  filters: {
440
1249
  id: string;
441
1250
  enabled: boolean;
442
1251
  values: Record<string, import("@/types").ImageEditorPrimitive>;
443
1252
  }[];
444
1253
  };
445
- metadata?: {
446
- hasCrop: boolean;
447
- cropRect: {
448
- x: number;
449
- y: number;
450
- width: number;
451
- height: number;
452
- } | null;
453
- filters: string[];
454
- filterValues: Record<string, Record<string, any>>;
455
- aspectRatio: string;
456
- dimensions: {
1254
+ document?: {
1255
+ version: 2;
1256
+ id: string;
1257
+ sourceMediaUuid: string | null;
1258
+ canvas: {
457
1259
  width: number;
458
1260
  height: number;
1261
+ backgroundPreviewColor: string | null;
459
1262
  };
460
- } | undefined;
1263
+ revision: number;
1264
+ layers: {
1265
+ id: string;
1266
+ type: import("@/types").ImageEditorLayerType;
1267
+ role: import("@/types").ImageEditorLayerRole;
1268
+ name: string;
1269
+ visible: boolean;
1270
+ locked: boolean;
1271
+ opacity: number;
1272
+ blendMode: import("@/types").ImageEditorBlendMode;
1273
+ transform: {
1274
+ x: number;
1275
+ y: number;
1276
+ scaleX: number;
1277
+ scaleY: number;
1278
+ rotation: number;
1279
+ };
1280
+ effects: unknown[];
1281
+ metadata: Record<string, unknown>;
1282
+ source?: {
1283
+ kind: "media";
1284
+ mediaUuid: string;
1285
+ originalWidth: number;
1286
+ originalHeight: number;
1287
+ sourceHash: string;
1288
+ url?: string | undefined;
1289
+ previewUrl?: string | undefined;
1290
+ sourceUrl?: string | undefined;
1291
+ } | {
1292
+ kind: "edit-asset";
1293
+ assetId: string;
1294
+ originalWidth: number;
1295
+ originalHeight: number;
1296
+ sourceHash: string;
1297
+ url?: string | undefined;
1298
+ previewUrl?: string | undefined;
1299
+ sourceUrl?: string | undefined;
1300
+ } | {
1301
+ kind: "runtime";
1302
+ runtimeRef: string;
1303
+ originalWidth: number;
1304
+ originalHeight: number;
1305
+ sourceHash: string | null;
1306
+ url?: string | undefined;
1307
+ previewUrl?: string | undefined;
1308
+ sourceUrl?: string | undefined;
1309
+ } | {
1310
+ kind: "color";
1311
+ color: string;
1312
+ } | undefined;
1313
+ fill?: {
1314
+ kind: "transparent";
1315
+ } | {
1316
+ kind: "color";
1317
+ value: string;
1318
+ fit?: "cover" | "contain" | "stretch" | "tile" | undefined;
1319
+ } | {
1320
+ kind: "gradient";
1321
+ gradientType: "linear" | "radial";
1322
+ angle: number;
1323
+ stops: {
1324
+ offset: number;
1325
+ color: string;
1326
+ }[];
1327
+ fit: "cover" | "contain" | "stretch" | "tile";
1328
+ } | {
1329
+ kind: "media";
1330
+ source: {
1331
+ kind: "media";
1332
+ mediaUuid: string;
1333
+ originalWidth: number;
1334
+ originalHeight: number;
1335
+ sourceHash: string;
1336
+ url?: string | undefined;
1337
+ previewUrl?: string | undefined;
1338
+ sourceUrl?: string | undefined;
1339
+ } | {
1340
+ kind: "edit-asset";
1341
+ assetId: string;
1342
+ originalWidth: number;
1343
+ originalHeight: number;
1344
+ sourceHash: string;
1345
+ url?: string | undefined;
1346
+ previewUrl?: string | undefined;
1347
+ sourceUrl?: string | undefined;
1348
+ } | {
1349
+ kind: "runtime";
1350
+ runtimeRef: string;
1351
+ originalWidth: number;
1352
+ originalHeight: number;
1353
+ sourceHash: string | null;
1354
+ url?: string | undefined;
1355
+ previewUrl?: string | undefined;
1356
+ sourceUrl?: string | undefined;
1357
+ } | {
1358
+ kind: "color";
1359
+ color: string;
1360
+ };
1361
+ fit: "cover" | "contain" | "stretch" | "tile";
1362
+ } | undefined;
1363
+ text?: {
1364
+ content: string;
1365
+ box: {
1366
+ x: number;
1367
+ y: number;
1368
+ width: number;
1369
+ height: number;
1370
+ };
1371
+ style: {
1372
+ fontFamily: string;
1373
+ fontSize: number;
1374
+ fontWeight: number;
1375
+ fontStyle: "normal" | "italic";
1376
+ fill: string;
1377
+ align: "left" | "center" | "right";
1378
+ lineHeight: number;
1379
+ letterSpacing: number;
1380
+ };
1381
+ effects: {
1382
+ stroke: {
1383
+ enabled: boolean;
1384
+ color: string;
1385
+ width: number;
1386
+ };
1387
+ shadow: {
1388
+ enabled: boolean;
1389
+ color: string;
1390
+ alpha: number;
1391
+ blur: number;
1392
+ distance: number;
1393
+ angle: number;
1394
+ };
1395
+ glow: {
1396
+ enabled: boolean;
1397
+ color: string;
1398
+ alpha: number;
1399
+ blur: number;
1400
+ };
1401
+ backdrop: {
1402
+ enabled: boolean;
1403
+ color: string;
1404
+ opacity: number;
1405
+ padding: number;
1406
+ radius: number;
1407
+ blur: number;
1408
+ };
1409
+ };
1410
+ } | undefined;
1411
+ crop: {
1412
+ x: number;
1413
+ y: number;
1414
+ width: number;
1415
+ height: number;
1416
+ } | null;
1417
+ filters: {
1418
+ id: string;
1419
+ enabled: boolean;
1420
+ values: Record<string, import("@/types").ImageEditorPrimitive>;
1421
+ }[];
1422
+ }[];
1423
+ activeLayerId: string | null;
1424
+ export: {
1425
+ mimeType: "image/png" | "image/jpeg" | "image/webp";
1426
+ quality: number | null;
1427
+ preserveTransparency: boolean;
1428
+ matteColor: string | null;
1429
+ trimTransparentBounds: boolean;
1430
+ };
1431
+ createdAt?: string | undefined;
1432
+ updatedAt?: string | undefined;
1433
+ } | null | undefined;
1434
+ documentId?: string | null | undefined;
1435
+ documentRevisionId?: string | null | undefined;
1436
+ documentRevisionNumber?: number | null | undefined;
461
1437
  } | null>;
462
- sessionKey: import("vue").Ref<number, number>;
1438
+ sessionKey: import("vue").Ref<string | number, string | number>;
463
1439
  initialState: import("vue").Ref<{
464
1440
  version: 1;
465
1441
  crop: {
@@ -472,6 +1448,9 @@ export declare function useGlobalImageEditor(options?: ImageEditorModalOptions):
472
1448
  aspectRatio: string;
473
1449
  shape: "free" | "square" | "circle";
474
1450
  };
1451
+ transform?: {
1452
+ rotation: number;
1453
+ } | undefined;
475
1454
  filters: {
476
1455
  id: string;
477
1456
  enabled: boolean;
@@ -489,6 +1468,9 @@ export declare function useGlobalImageEditor(options?: ImageEditorModalOptions):
489
1468
  aspectRatio: string;
490
1469
  shape: "free" | "square" | "circle";
491
1470
  };
1471
+ transform?: {
1472
+ rotation: number;
1473
+ } | undefined;
492
1474
  filters: {
493
1475
  id: string;
494
1476
  enabled: boolean;
@@ -505,7 +1487,31 @@ export declare function useGlobalImageEditor(options?: ImageEditorModalOptions):
505
1487
  handleError: (err: Error) => void;
506
1488
  clearError: () => void;
507
1489
  getEditedImage: () => {
508
- imageData: string;
1490
+ blob: {
1491
+ readonly size: number;
1492
+ readonly type: string;
1493
+ arrayBuffer: {
1494
+ (): Promise<ArrayBuffer>;
1495
+ (): Promise<ArrayBuffer>;
1496
+ };
1497
+ bytes: {
1498
+ (): Promise<Uint8Array<ArrayBuffer>>;
1499
+ (): Promise<Uint8Array<ArrayBuffer>>;
1500
+ };
1501
+ slice: {
1502
+ (start?: number, end?: number, contentType?: string): Blob;
1503
+ (start?: number, end?: number, contentType?: string): Blob;
1504
+ };
1505
+ stream: {
1506
+ (): ReadableStream<Uint8Array<ArrayBuffer>>;
1507
+ (): ReadableStream<Uint8Array<ArrayBuffer>>;
1508
+ };
1509
+ text: {
1510
+ (): Promise<string>;
1511
+ (): Promise<string>;
1512
+ };
1513
+ };
1514
+ mimeType: string;
509
1515
  dimensions: {
510
1516
  width: number;
511
1517
  height: number;
@@ -522,28 +1528,198 @@ export declare function useGlobalImageEditor(options?: ImageEditorModalOptions):
522
1528
  aspectRatio: string;
523
1529
  shape: "free" | "square" | "circle";
524
1530
  };
1531
+ transform?: {
1532
+ rotation: number;
1533
+ } | undefined;
525
1534
  filters: {
526
1535
  id: string;
527
1536
  enabled: boolean;
528
1537
  values: Record<string, import("@/types").ImageEditorPrimitive>;
529
1538
  }[];
530
1539
  };
531
- metadata?: {
532
- hasCrop: boolean;
533
- cropRect: {
534
- x: number;
535
- y: number;
536
- width: number;
537
- height: number;
538
- } | null;
539
- filters: string[];
540
- filterValues: Record<string, Record<string, any>>;
541
- aspectRatio: string;
542
- dimensions: {
1540
+ document?: {
1541
+ version: 2;
1542
+ id: string;
1543
+ sourceMediaUuid: string | null;
1544
+ canvas: {
543
1545
  width: number;
544
1546
  height: number;
1547
+ backgroundPreviewColor: string | null;
545
1548
  };
546
- } | undefined;
1549
+ revision: number;
1550
+ layers: {
1551
+ id: string;
1552
+ type: import("@/types").ImageEditorLayerType;
1553
+ role: import("@/types").ImageEditorLayerRole;
1554
+ name: string;
1555
+ visible: boolean;
1556
+ locked: boolean;
1557
+ opacity: number;
1558
+ blendMode: import("@/types").ImageEditorBlendMode;
1559
+ transform: {
1560
+ x: number;
1561
+ y: number;
1562
+ scaleX: number;
1563
+ scaleY: number;
1564
+ rotation: number;
1565
+ };
1566
+ effects: unknown[];
1567
+ metadata: Record<string, unknown>;
1568
+ source?: {
1569
+ kind: "media";
1570
+ mediaUuid: string;
1571
+ originalWidth: number;
1572
+ originalHeight: number;
1573
+ sourceHash: string;
1574
+ url?: string | undefined;
1575
+ previewUrl?: string | undefined;
1576
+ sourceUrl?: string | undefined;
1577
+ } | {
1578
+ kind: "edit-asset";
1579
+ assetId: string;
1580
+ originalWidth: number;
1581
+ originalHeight: number;
1582
+ sourceHash: string;
1583
+ url?: string | undefined;
1584
+ previewUrl?: string | undefined;
1585
+ sourceUrl?: string | undefined;
1586
+ } | {
1587
+ kind: "runtime";
1588
+ runtimeRef: string;
1589
+ originalWidth: number;
1590
+ originalHeight: number;
1591
+ sourceHash: string | null;
1592
+ url?: string | undefined;
1593
+ previewUrl?: string | undefined;
1594
+ sourceUrl?: string | undefined;
1595
+ } | {
1596
+ kind: "color";
1597
+ color: string;
1598
+ } | undefined;
1599
+ fill?: {
1600
+ kind: "transparent";
1601
+ } | {
1602
+ kind: "color";
1603
+ value: string;
1604
+ fit?: "cover" | "contain" | "stretch" | "tile" | undefined;
1605
+ } | {
1606
+ kind: "gradient";
1607
+ gradientType: "linear" | "radial";
1608
+ angle: number;
1609
+ stops: {
1610
+ offset: number;
1611
+ color: string;
1612
+ }[];
1613
+ fit: "cover" | "contain" | "stretch" | "tile";
1614
+ } | {
1615
+ kind: "media";
1616
+ source: {
1617
+ kind: "media";
1618
+ mediaUuid: string;
1619
+ originalWidth: number;
1620
+ originalHeight: number;
1621
+ sourceHash: string;
1622
+ url?: string | undefined;
1623
+ previewUrl?: string | undefined;
1624
+ sourceUrl?: string | undefined;
1625
+ } | {
1626
+ kind: "edit-asset";
1627
+ assetId: string;
1628
+ originalWidth: number;
1629
+ originalHeight: number;
1630
+ sourceHash: string;
1631
+ url?: string | undefined;
1632
+ previewUrl?: string | undefined;
1633
+ sourceUrl?: string | undefined;
1634
+ } | {
1635
+ kind: "runtime";
1636
+ runtimeRef: string;
1637
+ originalWidth: number;
1638
+ originalHeight: number;
1639
+ sourceHash: string | null;
1640
+ url?: string | undefined;
1641
+ previewUrl?: string | undefined;
1642
+ sourceUrl?: string | undefined;
1643
+ } | {
1644
+ kind: "color";
1645
+ color: string;
1646
+ };
1647
+ fit: "cover" | "contain" | "stretch" | "tile";
1648
+ } | undefined;
1649
+ text?: {
1650
+ content: string;
1651
+ box: {
1652
+ x: number;
1653
+ y: number;
1654
+ width: number;
1655
+ height: number;
1656
+ };
1657
+ style: {
1658
+ fontFamily: string;
1659
+ fontSize: number;
1660
+ fontWeight: number;
1661
+ fontStyle: "normal" | "italic";
1662
+ fill: string;
1663
+ align: "left" | "center" | "right";
1664
+ lineHeight: number;
1665
+ letterSpacing: number;
1666
+ };
1667
+ effects: {
1668
+ stroke: {
1669
+ enabled: boolean;
1670
+ color: string;
1671
+ width: number;
1672
+ };
1673
+ shadow: {
1674
+ enabled: boolean;
1675
+ color: string;
1676
+ alpha: number;
1677
+ blur: number;
1678
+ distance: number;
1679
+ angle: number;
1680
+ };
1681
+ glow: {
1682
+ enabled: boolean;
1683
+ color: string;
1684
+ alpha: number;
1685
+ blur: number;
1686
+ };
1687
+ backdrop: {
1688
+ enabled: boolean;
1689
+ color: string;
1690
+ opacity: number;
1691
+ padding: number;
1692
+ radius: number;
1693
+ blur: number;
1694
+ };
1695
+ };
1696
+ } | undefined;
1697
+ crop: {
1698
+ x: number;
1699
+ y: number;
1700
+ width: number;
1701
+ height: number;
1702
+ } | null;
1703
+ filters: {
1704
+ id: string;
1705
+ enabled: boolean;
1706
+ values: Record<string, import("@/types").ImageEditorPrimitive>;
1707
+ }[];
1708
+ }[];
1709
+ activeLayerId: string | null;
1710
+ export: {
1711
+ mimeType: "image/png" | "image/jpeg" | "image/webp";
1712
+ quality: number | null;
1713
+ preserveTransparency: boolean;
1714
+ matteColor: string | null;
1715
+ trimTransparentBounds: boolean;
1716
+ };
1717
+ createdAt?: string | undefined;
1718
+ updatedAt?: string | undefined;
1719
+ } | null | undefined;
1720
+ documentId?: string | null | undefined;
1721
+ documentRevisionId?: string | null | undefined;
1722
+ documentRevisionNumber?: number | null | undefined;
547
1723
  } | null;
548
1724
  };
549
1725
  export declare function createImageEditor(options?: ImageEditorModalOptions): (imageOrOptions?: string | Blob | File | ImageEditorOpenOptions) => Promise<SaveEventPayload>;