@codingfactory/mediables-vue 2.12.0 → 2.15.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.
- package/dist/{PixiFrameExporter-Cqb0nLT4.cjs → PixiFrameExporter-F0BnA8PJ.cjs} +2 -2
- package/dist/{PixiFrameExporter-Cqb0nLT4.cjs.map → PixiFrameExporter-F0BnA8PJ.cjs.map} +1 -1
- package/dist/{PixiFrameExporter-BUVwcHDX.js → PixiFrameExporter-QBVjL5I-.js} +2 -2
- package/dist/{PixiFrameExporter-BUVwcHDX.js.map → PixiFrameExporter-QBVjL5I-.js.map} +1 -1
- package/dist/components/ImageEditorModal.vue.d.ts +9 -2
- package/dist/composables/useImageEditorModal.d.ts +1232 -86
- package/dist/composables/useRadialMenu.d.ts +1 -1
- package/dist/editor-DLvndiXG.cjs +2 -0
- package/dist/editor-DLvndiXG.cjs.map +1 -0
- package/dist/editor-OIsQEaJg.js +10878 -0
- package/dist/editor-OIsQEaJg.js.map +1 -0
- package/dist/index-CdE6UIlk.cjs +357 -0
- package/dist/index-CdE6UIlk.cjs.map +1 -0
- package/dist/{index-BXf0oOKg.js → index-CxgL9IC3.js} +16585 -14794
- package/dist/index-CxgL9IC3.js.map +1 -0
- package/dist/mediables-vanilla.cjs +1 -1
- package/dist/mediables-vanilla.mjs +1 -1
- package/dist/mediables-vue.cjs +1 -1
- package/dist/mediables-vue.mjs +2 -2
- package/dist/style.css +1 -1
- package/dist/types/editor.d.ts +204 -27
- package/dist/vanilla-editor/VanillaImageEditor.d.ts +18 -0
- package/dist/vanilla-editor/VanillaImageEditorV2.d.ts +16 -0
- package/dist/vanilla-editor/core/EventEmitter.d.ts +12 -0
- package/dist/vanilla-editor/core/State.d.ts +98 -0
- package/dist/vanilla-editor/filters/categories.d.ts +69 -0
- package/dist/vanilla-editor/icons/icons.d.ts +42 -0
- package/dist/vanilla-editor/index.d.ts +342 -0
- package/dist/vanilla-editor/presets/index.d.ts +114 -0
- package/dist/vanilla-editor/renderer/CropManager.d.ts +140 -0
- package/dist/vanilla-editor/renderer/FilterManager.d.ts +132 -0
- package/dist/vanilla-editor/renderer/PixiRenderer.d.ts +274 -0
- package/dist/vanilla-editor/renderer/RemoveBgManager.d.ts +108 -0
- package/dist/vanilla-editor/styles/editor-v2.css +1366 -0
- package/dist/vanilla-editor/styles/editor.css +1403 -0
- package/dist/vanilla-editor/ui/ActiveFiltersPanel.d.ts +93 -0
- package/dist/vanilla-editor/ui/CategoryCarousel.d.ts +66 -0
- package/dist/vanilla-editor/ui/CropControls.d.ts +65 -0
- package/dist/vanilla-editor/ui/FilterAdjustments.d.ts +93 -0
- package/dist/vanilla-editor/ui/FilterCarousel.d.ts +74 -0
- package/dist/vanilla-editor/ui/MobileActiveFilters.d.ts +21 -0
- package/dist/vanilla-editor/ui/MobileFilterDrawer.d.ts +79 -0
- package/dist/vanilla-editor/ui/Toolbar.d.ts +35 -0
- package/dist/vanilla-editor/ui/UIBuilder.d.ts +87 -0
- package/dist/vanilla-editor/ui-v2/ActiveFiltersStack.d.ts +16 -0
- package/dist/vanilla-editor/ui-v2/BackgroundPanel.d.ts +16 -0
- package/dist/vanilla-editor/ui-v2/BottomDrawer.d.ts +55 -0
- package/dist/vanilla-editor/ui-v2/CategoryTabs.d.ts +21 -0
- package/dist/vanilla-editor/ui-v2/FilterControlsView.d.ts +16 -0
- package/dist/vanilla-editor/ui-v2/FilterListView.d.ts +32 -0
- package/dist/vanilla-editor/ui-v2/LayerStackPanel.d.ts +30 -0
- package/dist/vanilla-editor/ui-v2/MobileActiveChips.d.ts +23 -0
- package/dist/vanilla-editor/ui-v2/MobileNavigation.d.ts +51 -0
- package/dist/vanilla-editor/ui-v2/SplitPanelLayout.d.ts +70 -0
- package/dist/vanilla-editor/ui-v2/TextPanel.d.ts +58 -0
- package/dist/vanilla-exports.d.ts +9 -0
- package/package.json +3 -2
- package/dist/editor-Bj9-m03S.js +0 -9132
- package/dist/editor-Bj9-m03S.js.map +0 -1
- package/dist/editor-DaM6IN3r.cjs +0 -2
- package/dist/editor-DaM6IN3r.cjs.map +0 -1
- package/dist/index-BXf0oOKg.js.map +0 -1
- package/dist/index-DyZIdWLm.cjs +0 -357
- package/dist/index-DyZIdWLm.cjs.map +0 -1
package/dist/types/editor.d.ts
CHANGED
|
@@ -43,36 +43,45 @@ export interface VariantSavePayload {
|
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* Event payload when saving an edited image.
|
|
46
|
-
* `state` is the canonical serializable state (v3.0.0+).
|
|
47
|
-
* `metadata` is kept for backward compatibility with existing consumers.
|
|
48
46
|
*/
|
|
49
47
|
export interface SaveEventPayload {
|
|
50
|
-
|
|
48
|
+
blob: Blob;
|
|
49
|
+
mimeType: string;
|
|
51
50
|
dimensions: {
|
|
52
51
|
width: number;
|
|
53
52
|
height: number;
|
|
54
53
|
};
|
|
55
54
|
state: ImageEditorSessionState;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
55
|
+
document?: ImageEditorDocument | null;
|
|
56
|
+
documentId?: string | null;
|
|
57
|
+
documentRevisionId?: string | null;
|
|
58
|
+
documentRevisionNumber?: number | null;
|
|
59
|
+
}
|
|
60
|
+
export interface BackgroundRemovalConfig {
|
|
61
|
+
enabled?: boolean;
|
|
62
|
+
endpoint?: string;
|
|
63
|
+
optionsEndpoint?: string;
|
|
64
|
+
savedEndpoint?: string;
|
|
65
|
+
fallbackEndpoint?: string | null;
|
|
66
|
+
defaultTier?: 'fast' | 'balanced' | 'best';
|
|
67
|
+
}
|
|
68
|
+
export interface BackgroundReplacementConfig {
|
|
69
|
+
assetEndpoint?: string | null;
|
|
70
|
+
materializeEndpoint?: string | null;
|
|
71
|
+
targetMediaUuid?: string | null;
|
|
72
|
+
mediaChoices?: Array<{
|
|
73
|
+
id?: string;
|
|
74
|
+
label?: string;
|
|
75
|
+
source: ImageEditorLayerSource;
|
|
76
|
+
fit?: 'cover' | 'contain' | 'stretch' | 'tile';
|
|
77
|
+
}>;
|
|
68
78
|
}
|
|
69
79
|
/**
|
|
70
80
|
* Request body for editor save endpoint
|
|
71
81
|
*/
|
|
72
82
|
export interface EditorSaveRequest {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
crop_data?: CropRect | null;
|
|
83
|
+
image_file: Blob | File;
|
|
84
|
+
editor_state: ImageEditorSessionState;
|
|
76
85
|
name?: string;
|
|
77
86
|
save_as_new?: boolean;
|
|
78
87
|
as_variant?: boolean;
|
|
@@ -207,25 +216,169 @@ export interface ImageEditorSessionState {
|
|
|
207
216
|
transform?: ImageEditorTransformState;
|
|
208
217
|
filters: ImageEditorFilterState[];
|
|
209
218
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
219
|
+
export type ImageEditorLayerRole = 'background' | 'subject' | 'overlay' | 'text';
|
|
220
|
+
export type ImageEditorLayerType = 'background' | 'image' | 'text';
|
|
221
|
+
export type ImageEditorBlendMode = 'normal' | 'multiply' | 'screen' | 'overlay';
|
|
222
|
+
export interface ImageEditorLayerTransform {
|
|
223
|
+
x: number;
|
|
224
|
+
y: number;
|
|
225
|
+
scaleX: number;
|
|
226
|
+
scaleY: number;
|
|
227
|
+
rotation: number;
|
|
228
|
+
}
|
|
229
|
+
export type ImageEditorLayerSource = {
|
|
230
|
+
kind: 'media';
|
|
231
|
+
mediaUuid: string;
|
|
232
|
+
originalWidth: number;
|
|
233
|
+
originalHeight: number;
|
|
234
|
+
sourceHash: string;
|
|
235
|
+
url?: string;
|
|
236
|
+
previewUrl?: string;
|
|
237
|
+
sourceUrl?: string;
|
|
238
|
+
} | {
|
|
239
|
+
kind: 'edit-asset';
|
|
240
|
+
assetId: string;
|
|
241
|
+
originalWidth: number;
|
|
242
|
+
originalHeight: number;
|
|
243
|
+
sourceHash: string;
|
|
244
|
+
url?: string;
|
|
245
|
+
previewUrl?: string;
|
|
246
|
+
sourceUrl?: string;
|
|
247
|
+
} | {
|
|
248
|
+
kind: 'runtime';
|
|
249
|
+
runtimeRef: string;
|
|
250
|
+
originalWidth: number;
|
|
251
|
+
originalHeight: number;
|
|
252
|
+
sourceHash: string | null;
|
|
253
|
+
url?: string;
|
|
254
|
+
previewUrl?: string;
|
|
255
|
+
sourceUrl?: string;
|
|
256
|
+
} | {
|
|
257
|
+
kind: 'color';
|
|
258
|
+
color: string;
|
|
259
|
+
};
|
|
260
|
+
export type ImageEditorBackgroundFill = {
|
|
261
|
+
kind: 'transparent';
|
|
262
|
+
} | {
|
|
263
|
+
kind: 'color';
|
|
264
|
+
value: string;
|
|
265
|
+
fit?: 'cover' | 'contain' | 'stretch' | 'tile';
|
|
266
|
+
} | {
|
|
267
|
+
kind: 'gradient';
|
|
268
|
+
gradientType: 'linear' | 'radial';
|
|
269
|
+
angle: number;
|
|
270
|
+
stops: Array<{
|
|
271
|
+
offset: number;
|
|
272
|
+
color: string;
|
|
273
|
+
}>;
|
|
274
|
+
fit: 'cover' | 'contain' | 'stretch' | 'tile';
|
|
275
|
+
} | {
|
|
276
|
+
kind: 'media';
|
|
277
|
+
source: ImageEditorLayerSource;
|
|
278
|
+
fit: 'cover' | 'contain' | 'stretch' | 'tile';
|
|
279
|
+
};
|
|
280
|
+
export interface ImageEditorTextStyle {
|
|
281
|
+
fontFamily: string;
|
|
282
|
+
fontSize: number;
|
|
283
|
+
fontWeight: number;
|
|
284
|
+
fontStyle: 'normal' | 'italic';
|
|
285
|
+
fill: string;
|
|
286
|
+
align: 'left' | 'center' | 'right';
|
|
287
|
+
lineHeight: number;
|
|
288
|
+
letterSpacing: number;
|
|
289
|
+
}
|
|
290
|
+
export interface ImageEditorTextEffects {
|
|
291
|
+
stroke: {
|
|
292
|
+
enabled: boolean;
|
|
293
|
+
color: string;
|
|
294
|
+
width: number;
|
|
295
|
+
};
|
|
296
|
+
shadow: {
|
|
297
|
+
enabled: boolean;
|
|
298
|
+
color: string;
|
|
299
|
+
alpha: number;
|
|
300
|
+
blur: number;
|
|
301
|
+
distance: number;
|
|
302
|
+
angle: number;
|
|
303
|
+
};
|
|
304
|
+
glow: {
|
|
305
|
+
enabled: boolean;
|
|
306
|
+
color: string;
|
|
307
|
+
alpha: number;
|
|
308
|
+
blur: number;
|
|
309
|
+
};
|
|
310
|
+
backdrop: {
|
|
311
|
+
enabled: boolean;
|
|
312
|
+
color: string;
|
|
313
|
+
opacity: number;
|
|
314
|
+
padding: number;
|
|
315
|
+
radius: number;
|
|
316
|
+
blur: number;
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
export interface ImageEditorTextBox {
|
|
320
|
+
x: number;
|
|
321
|
+
y: number;
|
|
322
|
+
width: number;
|
|
323
|
+
height: number;
|
|
324
|
+
}
|
|
325
|
+
export interface ImageEditorTextPayload {
|
|
326
|
+
content: string;
|
|
327
|
+
box: ImageEditorTextBox;
|
|
328
|
+
style: ImageEditorTextStyle;
|
|
329
|
+
effects: ImageEditorTextEffects;
|
|
330
|
+
}
|
|
331
|
+
export interface ImageEditorLayer {
|
|
332
|
+
id: string;
|
|
333
|
+
type: ImageEditorLayerType;
|
|
334
|
+
role: ImageEditorLayerRole;
|
|
335
|
+
name: string;
|
|
336
|
+
visible: boolean;
|
|
337
|
+
locked: boolean;
|
|
338
|
+
opacity: number;
|
|
339
|
+
blendMode: ImageEditorBlendMode;
|
|
340
|
+
transform: ImageEditorLayerTransform;
|
|
341
|
+
effects: unknown[];
|
|
342
|
+
metadata: Record<string, unknown>;
|
|
343
|
+
source?: ImageEditorLayerSource;
|
|
344
|
+
fill?: ImageEditorBackgroundFill;
|
|
345
|
+
text?: ImageEditorTextPayload;
|
|
346
|
+
crop: CropRect | null;
|
|
347
|
+
filters: ImageEditorFilterState[];
|
|
348
|
+
}
|
|
349
|
+
export interface ImageEditorDocument {
|
|
350
|
+
version: 2;
|
|
351
|
+
id: string;
|
|
352
|
+
sourceMediaUuid: string | null;
|
|
353
|
+
canvas: {
|
|
218
354
|
width: number;
|
|
219
355
|
height: number;
|
|
356
|
+
backgroundPreviewColor: string | null;
|
|
220
357
|
};
|
|
221
|
-
|
|
358
|
+
revision: number;
|
|
359
|
+
layers: ImageEditorLayer[];
|
|
360
|
+
activeLayerId: string | null;
|
|
361
|
+
export: {
|
|
362
|
+
mimeType: 'image/png' | 'image/jpeg' | 'image/webp';
|
|
363
|
+
quality: number | null;
|
|
364
|
+
preserveTransparency: boolean;
|
|
365
|
+
matteColor: string | null;
|
|
366
|
+
trimTransparentBounds: boolean;
|
|
367
|
+
};
|
|
368
|
+
createdAt?: string;
|
|
369
|
+
updatedAt?: string;
|
|
222
370
|
}
|
|
371
|
+
export type ImageEditorSavePayload = SaveEventPayload;
|
|
223
372
|
/**
|
|
224
373
|
* Options for opening the image editor.
|
|
225
374
|
*/
|
|
226
375
|
export interface ImageEditorOpenOptions {
|
|
227
376
|
image?: string | Blob | File | null;
|
|
228
377
|
state?: ImageEditorSessionState | null;
|
|
378
|
+
document?: ImageEditorDocument | null;
|
|
379
|
+
documentId?: string | null;
|
|
380
|
+
documentRevisionId?: string | null;
|
|
381
|
+
documentRevisionNumber?: number | null;
|
|
229
382
|
sessionKey?: string | number;
|
|
230
383
|
}
|
|
231
384
|
/**
|
|
@@ -237,6 +390,10 @@ export interface ImageEditorEditSessionResponse {
|
|
|
237
390
|
editable_source_url: string;
|
|
238
391
|
editor_source_media_uuid: string | null;
|
|
239
392
|
editor_state: ImageEditorSessionState | null;
|
|
393
|
+
editor_document_id: string | null;
|
|
394
|
+
editor_document_revision_id: string | null;
|
|
395
|
+
editor_document_revision_number: number | null;
|
|
396
|
+
editor_document: ImageEditorDocument | null;
|
|
240
397
|
urls: {
|
|
241
398
|
original: string;
|
|
242
399
|
large?: string;
|
|
@@ -252,6 +409,26 @@ export interface ImageEditorSaveAcceptedResponse {
|
|
|
252
409
|
job_id: string;
|
|
253
410
|
status_url: string;
|
|
254
411
|
}
|
|
412
|
+
/**
|
|
413
|
+
* Response from POST /media/{media}/editor-documents/save.
|
|
414
|
+
*/
|
|
415
|
+
export interface ImageEditorDocumentSaveResponse {
|
|
416
|
+
success: true;
|
|
417
|
+
media: Media;
|
|
418
|
+
document_id: string;
|
|
419
|
+
document_revision_id: string;
|
|
420
|
+
document_revision_number: number;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Response from POST /media/{media}/editor-documents/materialize.
|
|
424
|
+
*/
|
|
425
|
+
export interface ImageEditorDocumentMaterializeResponse {
|
|
426
|
+
success: true;
|
|
427
|
+
document_id: string;
|
|
428
|
+
document_revision_id: string;
|
|
429
|
+
document_revision_number: number;
|
|
430
|
+
document: ImageEditorDocument;
|
|
431
|
+
}
|
|
255
432
|
/**
|
|
256
433
|
* Response from GET /editor/jobs/{jobId} (polling endpoint).
|
|
257
434
|
*/
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type declaration shim for VanillaImageEditor.js
|
|
3
|
+
* Re-exports everything from the index.d.ts so that direct imports of
|
|
4
|
+
* VanillaImageEditor.js resolve correctly under verbatimModuleSyntax.
|
|
5
|
+
*/
|
|
6
|
+
export { VanillaImageEditor } from './index';
|
|
7
|
+
export type {
|
|
8
|
+
VanillaImageEditorOptions,
|
|
9
|
+
FilterRegistry,
|
|
10
|
+
FilterDefinition,
|
|
11
|
+
ControlDefinition,
|
|
12
|
+
SaveEventPayload,
|
|
13
|
+
ErrorEventPayload,
|
|
14
|
+
ImageEditorDocument,
|
|
15
|
+
ImageEditorLayer,
|
|
16
|
+
ImageEditorLayerSource,
|
|
17
|
+
ImageEditorSessionState,
|
|
18
|
+
} from './index';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type declaration shim for VanillaImageEditorV2.js
|
|
3
|
+
*/
|
|
4
|
+
export { VanillaImageEditorV2 } from './index';
|
|
5
|
+
export type {
|
|
6
|
+
VanillaImageEditorOptions,
|
|
7
|
+
FilterRegistry,
|
|
8
|
+
FilterDefinition,
|
|
9
|
+
ControlDefinition,
|
|
10
|
+
SaveEventPayload,
|
|
11
|
+
ErrorEventPayload,
|
|
12
|
+
ImageEditorDocument,
|
|
13
|
+
ImageEditorLayer,
|
|
14
|
+
ImageEditorLayerSource,
|
|
15
|
+
ImageEditorSessionState,
|
|
16
|
+
} from './index';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EventEmitter Type Declarations
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export class EventEmitter {
|
|
6
|
+
constructor();
|
|
7
|
+
on(event: string, callback: (...args: unknown[]) => void): void;
|
|
8
|
+
off(event: string, callback: (...args: unknown[]) => void): void;
|
|
9
|
+
emit(event: string, ...args: unknown[]): void;
|
|
10
|
+
once(event: string, callback: (...args: unknown[]) => void): void;
|
|
11
|
+
removeAllListeners(event?: string): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State Type Declarations
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { EventEmitter } from './EventEmitter';
|
|
6
|
+
|
|
7
|
+
export const TEXT_LAYER_FONT_FAMILIES: readonly string[];
|
|
8
|
+
|
|
9
|
+
export interface EditorState {
|
|
10
|
+
hasImage: boolean;
|
|
11
|
+
imageUrl: string | null;
|
|
12
|
+
mode: 'filters' | 'crop';
|
|
13
|
+
zoom: number;
|
|
14
|
+
fitScale: number;
|
|
15
|
+
activeFilters: Set<string>;
|
|
16
|
+
filterValues: Record<string, Record<string, unknown>>;
|
|
17
|
+
selectedFilter: string | null;
|
|
18
|
+
selectedCategory: string;
|
|
19
|
+
crop: {
|
|
20
|
+
shape: 'free' | 'square' | 'circle';
|
|
21
|
+
aspect: string;
|
|
22
|
+
rect: { x: number; y: number; width: number; height: number } | null;
|
|
23
|
+
dirty: boolean;
|
|
24
|
+
};
|
|
25
|
+
transform?: {
|
|
26
|
+
rotation: number;
|
|
27
|
+
};
|
|
28
|
+
editorDocument: Record<string, unknown> | null;
|
|
29
|
+
editorDocumentId: string | null;
|
|
30
|
+
editorDocumentRevisionId: string | null;
|
|
31
|
+
editorDocumentRevisionNumber: number | null;
|
|
32
|
+
layers: Array<Record<string, unknown>>;
|
|
33
|
+
activeLayerId: string | null;
|
|
34
|
+
theme: 'light' | 'dark' | 'auto';
|
|
35
|
+
isDarkMode: boolean;
|
|
36
|
+
backgroundRemovalAvailable: boolean;
|
|
37
|
+
isProcessing: boolean;
|
|
38
|
+
isSaving: boolean;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** Canonical serializable editor session state (v3.0.0+) */
|
|
42
|
+
export interface SerializableEditorState {
|
|
43
|
+
version: 1;
|
|
44
|
+
crop: {
|
|
45
|
+
rect: { x: number; y: number; width: number; height: number } | null;
|
|
46
|
+
aspectRatio: string;
|
|
47
|
+
shape: 'free' | 'square' | 'circle';
|
|
48
|
+
};
|
|
49
|
+
transform: {
|
|
50
|
+
rotation: number;
|
|
51
|
+
};
|
|
52
|
+
filters: Array<{
|
|
53
|
+
id: string;
|
|
54
|
+
enabled: boolean;
|
|
55
|
+
values: Record<string, string | number | boolean>;
|
|
56
|
+
}>;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export class State extends EventEmitter {
|
|
60
|
+
constructor();
|
|
61
|
+
get<K extends keyof EditorState>(key: K): EditorState[K];
|
|
62
|
+
get(key: string): unknown;
|
|
63
|
+
set<K extends keyof EditorState>(key: K, value: EditorState[K]): void;
|
|
64
|
+
set(key: string, value: unknown): void;
|
|
65
|
+
getAll(): Record<string, unknown>;
|
|
66
|
+
getSerializableState(): SerializableEditorState;
|
|
67
|
+
setEditorDocument(document: Record<string, unknown> | null, binding?: { documentId?: string | null; documentRevisionId?: string | null; documentRevisionNumber?: number | null }): void;
|
|
68
|
+
clearEditorDocument(): void;
|
|
69
|
+
getSerializableDocument(): Record<string, unknown> | null;
|
|
70
|
+
getEditorDocumentBinding(): { documentId: string | null; documentRevisionId: string | null; documentRevisionNumber: number | null } | null;
|
|
71
|
+
getLayer(layerId: string): Record<string, unknown> | null;
|
|
72
|
+
setActiveLayer(layerId: string | null): boolean;
|
|
73
|
+
getActiveFilterLayerId(): string | null;
|
|
74
|
+
isActiveLayerLocked(): boolean;
|
|
75
|
+
setLayerVisibility(layerId: string, visible: boolean): boolean;
|
|
76
|
+
isBackgroundLayerLocked(): boolean;
|
|
77
|
+
renameLayer(layerId: string, name: string): boolean;
|
|
78
|
+
duplicateLayer(layerId: string): string | null;
|
|
79
|
+
deleteLayer(layerId: string): boolean;
|
|
80
|
+
moveLayer(layerId: string, direction: 'up' | 'down' | 'front' | 'back' | 'bring-forward' | 'send-backward' | 'bring-to-front' | 'send-to-back'): boolean;
|
|
81
|
+
setLayerLocked(layerId: string, locked: boolean): boolean;
|
|
82
|
+
replaceLayerSource(layerId: string, source: Record<string, unknown>): boolean;
|
|
83
|
+
addTextLayer(payload?: Record<string, unknown>): string | null;
|
|
84
|
+
updateTextLayer(layerId: string, patch?: Record<string, unknown>): boolean;
|
|
85
|
+
ensureBackgroundLayer(fill?: Record<string, unknown>): string | null;
|
|
86
|
+
setBackgroundFill(fill: Record<string, unknown>): string | null;
|
|
87
|
+
setBackgroundFit(fit: 'cover' | 'contain' | 'stretch' | 'tile'): boolean;
|
|
88
|
+
setBackgroundBlur(amount: number): boolean;
|
|
89
|
+
removeBackgroundLayer(): boolean;
|
|
90
|
+
toggleFilter(filterId: string, enabled: boolean, expectedLayerId?: string | null): boolean;
|
|
91
|
+
setFilterValue(filterId: string, controlId: string, value: unknown, expectedLayerId?: string | null): boolean;
|
|
92
|
+
getFilterValues(filterId: string): Record<string, unknown>;
|
|
93
|
+
initFilterValues(filterId: string, controls: Array<{ id: string; default?: unknown }>, expectedLayerId?: string | null): boolean;
|
|
94
|
+
resetFilters(expectedLayerId?: string | null): boolean;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export function createState(): State;
|
|
98
|
+
export function getState(): State;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve a UI category id to its list of registry categories.
|
|
3
|
+
* Falls back to treating the id as a registry category if not found.
|
|
4
|
+
*
|
|
5
|
+
* @param {string} uiCategoryId
|
|
6
|
+
* @returns {string[]}
|
|
7
|
+
*/
|
|
8
|
+
export function getRegistryCategoriesForUi(uiCategoryId: string): string[];
|
|
9
|
+
/**
|
|
10
|
+
* Resolve a filter's registry category to its UI category id.
|
|
11
|
+
* Falls back to the registry category itself if no mapping exists.
|
|
12
|
+
*
|
|
13
|
+
* @param {string} registryCategoryId
|
|
14
|
+
* @returns {string}
|
|
15
|
+
*/
|
|
16
|
+
export function getUiCategoryForRegistry(registryCategoryId: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Ordered list of UI categories shown in the editor.
|
|
19
|
+
* Each entry may include a list of registry categories that feed it.
|
|
20
|
+
* Categories without a `registryCategories` field (e.g. 'crop') don't
|
|
21
|
+
* consume filters from the registry.
|
|
22
|
+
*
|
|
23
|
+
* @typedef {Object} EditorCategory
|
|
24
|
+
* @property {string} id - UI category id
|
|
25
|
+
* @property {string} name - Display name
|
|
26
|
+
* @property {string} [icon] - SVG icon markup
|
|
27
|
+
* @property {string[]} [registryCategories] - Registry categories aggregated under this UI category
|
|
28
|
+
*/
|
|
29
|
+
/** @type {EditorCategory[]} */
|
|
30
|
+
export const EDITOR_CATEGORIES: EditorCategory[];
|
|
31
|
+
/**
|
|
32
|
+
* UI category id -> list of registry categories it aggregates.
|
|
33
|
+
* Used by FilterManager.getFiltersByCategory.
|
|
34
|
+
*/
|
|
35
|
+
export const UI_TO_REGISTRY: {
|
|
36
|
+
[k: string]: string[] | undefined;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Registry category id -> UI category id.
|
|
40
|
+
* Used when we have a filter's registry category and need to highlight the
|
|
41
|
+
* right UI chip (e.g. colorMatrix.category === 'advanced' -> UI 'adjust').
|
|
42
|
+
*/
|
|
43
|
+
export const REGISTRY_TO_UI: {
|
|
44
|
+
[k: string]: string;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Ordered list of UI categories shown in the editor.
|
|
48
|
+
* Each entry may include a list of registry categories that feed it.
|
|
49
|
+
* Categories without a `registryCategories` field (e.g. 'crop') don't
|
|
50
|
+
* consume filters from the registry.
|
|
51
|
+
*/
|
|
52
|
+
export type EditorCategory = {
|
|
53
|
+
/**
|
|
54
|
+
* - UI category id
|
|
55
|
+
*/
|
|
56
|
+
id: string;
|
|
57
|
+
/**
|
|
58
|
+
* - Display name
|
|
59
|
+
*/
|
|
60
|
+
name: string;
|
|
61
|
+
/**
|
|
62
|
+
* - SVG icon markup
|
|
63
|
+
*/
|
|
64
|
+
icon?: string | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* - Registry categories aggregated under this UI category
|
|
67
|
+
*/
|
|
68
|
+
registryCategories?: string[] | undefined;
|
|
69
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SVG Icons for the vanilla image editor
|
|
3
|
+
* Uses inline SVG for zero dependencies
|
|
4
|
+
*/
|
|
5
|
+
export const chevronLeft: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"48\" d=\"M328 112L184 256l144 144\"/></svg>";
|
|
6
|
+
export const chevronRight: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"48\" d=\"M184 112l144 144-144 144\"/></svg>";
|
|
7
|
+
export const zoomIn: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M338.29 338.29L448 448M256 184v74m-37-37h74\"/></svg>";
|
|
8
|
+
export const zoomOut: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M338.29 338.29L448 448M184 221h74\"/></svg>";
|
|
9
|
+
export const expand: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M432 320v112H320M80 192V80h112M320 80h112v112M192 432H80V320\"/></svg>";
|
|
10
|
+
export const settings: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M262.29 192.31a64 64 0 1057.4 57.4 64.13 64.13 0 00-57.4-57.4z\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M416.39 256a154.34 154.34 0 01-1.53 20.79l45.21 35.46a10.81 10.81 0 012.45 13.75l-42.77 74a10.81 10.81 0 01-13.14 4.59l-44.9-18.08a16.11 16.11 0 00-15.17 1.75A164.48 164.48 0 01325 400.8a15.94 15.94 0 00-8.82 12.14l-6.73 47.89a11.08 11.08 0 01-10.68 9.17h-85.54a11.11 11.11 0 01-10.69-8.87l-6.72-47.82a16.07 16.07 0 00-9-12.22 155.3 155.3 0 01-21.46-12.57 16 16 0 00-15.11-1.71l-44.89 18.07a10.81 10.81 0 01-13.14-4.58l-42.77-74a10.8 10.8 0 012.45-13.75l38.21-30a16.05 16.05 0 006-14.08c-.36-4.17-.58-8.33-.58-12.5s.21-8.27.58-12.35a16 16 0 00-6.07-13.94l-38.19-30A10.81 10.81 0 0149.48 186l42.77-74a10.81 10.81 0 0113.14-4.59l44.9 18.08a16.11 16.11 0 0015.17-1.75A164.48 164.48 0 01187 111.2a15.94 15.94 0 008.82-12.14l6.73-47.89A11.08 11.08 0 01213.23 42h85.54a11.11 11.11 0 0110.69 8.87l6.72 47.82a16.07 16.07 0 009 12.22 155.3 155.3 0 0121.46 12.57 16 16 0 0015.11 1.71l44.89-18.07a10.81 10.81 0 0113.14 4.58l42.77 74a10.8 10.8 0 01-2.45 13.75l-38.21 30a16.05 16.05 0 00-6.05 14.08c.33 4.14.55 8.3.55 12.47z\"/></svg>";
|
|
11
|
+
export const water: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M400 320c0 88.37-55.63 144-144 144s-144-55.63-144-144c0-94.83 103.23-222.85 134.89-259.88a12 12 0 0118.23 0C296.77 97.15 400 225.17 400 320z\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M344 328a72 72 0 01-72 72\"/></svg>";
|
|
12
|
+
export const colorPalette: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-miterlimit=\"10\" stroke-width=\"32\" d=\"M430.11 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 11.99-36.6.1-47.7z\"/><circle cx=\"144\" cy=\"208\" r=\"32\"/><circle cx=\"152\" cy=\"311\" r=\"32\"/><circle cx=\"224\" cy=\"144\" r=\"32\"/><circle cx=\"256\" cy=\"367\" r=\"32\"/><circle cx=\"328\" cy=\"144\" r=\"32\"/></svg>";
|
|
13
|
+
export const sparkles: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M259.92 262.91L216.4 149.77a9 9 0 00-16.8 0l-43.52 113.14a9 9 0 01-5.17 5.17L37.77 311.6a9 9 0 000 16.8l113.14 43.52a9 9 0 015.17 5.17l43.52 113.14a9 9 0 0016.8 0l43.52-113.14a9 9 0 015.17-5.17l113.14-43.52a9 9 0 000-16.8l-113.14-43.52a9 9 0 01-5.17-5.17zM108 68L88 16 68 68 16 88l52 20 20 52 20-52 52-20-52-20zM426.67 117.33L400 48l-26.67 69.33L304 144l69.33 26.67L400 240l26.67-69.33L496 144l-69.33-26.67z\"/></svg>";
|
|
14
|
+
export const move: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M176 112l80-80 80 80M255.98 32l.02 448M176 400l80 80 80-80M400 176l80 80-80 80M112 176l-80 80 80 80M32 256h448\"/></svg>";
|
|
15
|
+
export const brush: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M452.37 59.63h0a40.49 40.49 0 00-57.26 0L184 294.74c23.08 4.7 46.12 27.29 49.26 49.26l219.11-227.11a40.49 40.49 0 000-57.26z\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M138 336c-29.88 0-54 24.5-54 54.86 0 23.95-20.67 36.57-34 44.78 15.08 8.08 32.23 12.36 50 12.36 48.49 0 88-38.89 88-88 0-30.36-24.12-54-50-54z\"/></svg>";
|
|
16
|
+
export const flash: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M315.27 33L96 304h128l-31.51 173.23a2.36 2.36 0 002.33 2.77h0a2.36 2.36 0 001.89-.95L416 208H288l31.66-173.25a2.45 2.45 0 00-2.44-2.75h0a2.42 2.42 0 00-1.95 1z\"/></svg>";
|
|
17
|
+
export const crop: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M144 48v272a48 48 0 0048 48h272\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M368 464V192a48 48 0 00-48-48H48\"/></svg>";
|
|
18
|
+
export const save: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M380.93 57.37A32 32 0 00358.3 48H94.22A46.21 46.21 0 0048 94.22v323.56A46.21 46.21 0 0094.22 464h323.56A46.36 46.36 0 00464 417.78V153.7a32 32 0 00-9.37-22.63zM256 416a64 64 0 1164-64 63.92 63.92 0 01-64 64zm48-224H112a16 16 0 01-16-16v-64a16 16 0 0116-16h192a16 16 0 0116 16v64a16 16 0 01-16 16z\"/></svg>";
|
|
19
|
+
export const close: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M368 368L144 144M368 144L144 368\"/></svg>";
|
|
20
|
+
export const refresh: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M320 146s24.36-12-64-12a160 160 0 10160 160\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M256 58l80 80-80 80\"/></svg>";
|
|
21
|
+
export const rotateCcw: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M176 112l-64 64 64 64\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M112 176h176a112 112 0 110 224H160\"/></svg>";
|
|
22
|
+
export const rotateCw: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M336 112l64 64-64 64\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M400 176H224a112 112 0 100 224h128\"/></svg>";
|
|
23
|
+
export const trash: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M112 112l20 320c.95 18.49 14.4 32 32 32h184c17.67 0 30.87-13.51 32-32l20-320\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" stroke-width=\"32\" d=\"M80 112h352\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M192 112V72h0a23.93 23.93 0 0124-24h80a23.93 23.93 0 0124 24h0v40M256 176v224M184 176l8 224M328 176l-8 224\"/></svg>";
|
|
24
|
+
export const openFolder: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M64 192v-72a40 40 0 0140-40h75.89a40 40 0 0122.19 6.72l27.84 18.56a40 40 0 0022.19 6.72H408a40 40 0 0140 40v40\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M479.9 226.55L463.68 392a40 40 0 01-39.93 40H88.25a40 40 0 01-39.93-40L32.1 226.55A32 32 0 0164 192h384.1a32 32 0 0131.8 34.55z\"/></svg>";
|
|
25
|
+
export const checkmark: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M416 128L192 384l-96-96\"/></svg>";
|
|
26
|
+
export const layers: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M48 256l208 112 208-112-208-112L48 256z\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M48 336l208 112 208-112M48 176L256 64l208 112\"/></svg>";
|
|
27
|
+
export const eye: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M48 256s80-144 208-144 208 144 208 144-80 144-208 144S48 256 48 256z\"/><circle cx=\"256\" cy=\"256\" r=\"64\" fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-width=\"32\"/></svg>";
|
|
28
|
+
export const eyeOff: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M432 448L80 64M160 160c-67.2 36.8-112 96-112 96s80 144 208 144c35.8 0 68.4-11.3 96-28.1M224.4 113.8A199.6 199.6 0 01256 112c128 0 208 144 208 144a334.2 334.2 0 01-65.1 78.6\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M213.3 213.3A64 64 0 10298.7 298.7\"/></svg>";
|
|
29
|
+
export const lockClosed: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><rect x=\"96\" y=\"208\" width=\"320\" height=\"240\" rx=\"32\" fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-width=\"32\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M160 208v-64a96 96 0 01192 0v64\"/></svg>";
|
|
30
|
+
export const lockOpen: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><rect x=\"96\" y=\"208\" width=\"320\" height=\"240\" rx=\"32\" fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-width=\"32\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M160 208v-64a96 96 0 01168-63.7\"/></svg>";
|
|
31
|
+
export const pencil: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M96 352l-32 96 96-32L421.5 154.5a45.3 45.3 0 000-64h0a45.3 45.3 0 00-64 0L96 352z\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M320 128l64 64\"/></svg>";
|
|
32
|
+
export const duplicate: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><rect x=\"144\" y=\"144\" width=\"288\" height=\"288\" rx=\"32\" fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-width=\"32\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M80 368V112a32 32 0 0132-32h256\"/></svg>";
|
|
33
|
+
export const text: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M96 112V80h320v32M256 80v352M184 432h144\"/></svg>";
|
|
34
|
+
export const square: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><rect x=\"64\" y=\"64\" width=\"384\" height=\"384\" rx=\"48\" fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-width=\"32\"/></svg>";
|
|
35
|
+
export const circle: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><circle cx=\"256\" cy=\"256\" r=\"208\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\"/></svg>";
|
|
36
|
+
export const freeform: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M80 96h64l64 320h64l64-160h96\"/></svg>";
|
|
37
|
+
export const sunny: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" stroke-width=\"32\" d=\"M256 48v48M256 416v48M403.08 108.92l-33.94 33.94M142.86 369.14l-33.94 33.94M464 256h-48M96 256H48M403.08 403.08l-33.94-33.94M142.86 142.86l-33.94-33.94\"/><circle cx=\"256\" cy=\"256\" r=\"80\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" stroke-width=\"32\"/></svg>";
|
|
38
|
+
export const moon: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M160 136c0-30.62 4.51-61.61 16-88C99.57 81.27 48 159.32 48 248c0 119.29 96.71 216 216 216 88.68 0 166.73-51.57 200-128-26.39 11.49-57.38 16-88 16-119.29 0-216-96.71-216-216z\"/></svg>";
|
|
39
|
+
export const film: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M436 80H76a44.05 44.05 0 00-44 44v264a44.05 44.05 0 0044 44h360a44.05 44.05 0 0044-44V124a44.05 44.05 0 00-44-44z\"/><circle cx=\"256\" cy=\"256\" r=\"80\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\"/><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M220 80v56M292 80v56M220 376v56M292 376v56M80 144h56M80 224h56M80 304h56M376 144h56M376 224h56M376 304h56\"/></svg>";
|
|
40
|
+
export const contrast: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><circle cx=\"256\" cy=\"256\" r=\"208\" fill=\"none\" stroke=\"currentColor\" stroke-linejoin=\"round\" stroke-width=\"32\"/><path fill=\"currentColor\" d=\"M256 464c-114.88 0-208-93.12-208-208S141.12 48 256 48z\"/></svg>";
|
|
41
|
+
export const filter: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M32 144h448M112 256h288M208 368h96\"/></svg>";
|
|
42
|
+
export const personOutline: "<svg viewBox=\"0 0 512 512\" width=\"20\" height=\"20\"><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"32\" d=\"M344 144c-3.92 52.87-44 96-88 96s-84.15-43.12-88-96c-4-55 35-96 88-96s92 42 88 96z\"/><path fill=\"none\" stroke=\"currentColor\" stroke-miterlimit=\"10\" stroke-width=\"32\" d=\"M256 304c-87 0-175.3 48-191.64 138.6C62.39 453.52 68.57 464 80 464h352c11.44 0 17.62-10.48 15.65-21.4C431.3 352 343 304 256 304z\"/></svg>";
|