labellife-design-tool 1.0.9 → 1.1.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/README.md +25 -0
- package/dist/lib/lib/index.js +21 -0
- package/dist/lib/wordpress.js +21 -0
- package/dist/types/lib/index.d.ts +2 -2
- package/dist/types/lib/index.d.ts.map +1 -1
- package/dist/types/utils/exportImportUtils.d.ts +5 -0
- package/dist/types/utils/exportImportUtils.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -119,6 +119,31 @@ The `CanvasEditorRef` interface provides the following properties and methods:
|
|
|
119
119
|
- `setCanvasSize(width, height)`: Set the canvas dimensions programmatically
|
|
120
120
|
- `loadDesign(jsonData)`: Load a design from JSON data (Promise-based)
|
|
121
121
|
|
|
122
|
+
### Export Helpers (JSON object + Base64)
|
|
123
|
+
|
|
124
|
+
In addition to the UI download helpers, the library also provides functions that return data directly (no file download):
|
|
125
|
+
|
|
126
|
+
```ts
|
|
127
|
+
import { exportToJSONObject, canvasToDataURL } from 'labellife-design-tool';
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
#### Get a JSON-safe design object
|
|
131
|
+
|
|
132
|
+
```ts
|
|
133
|
+
const designObject = exportToJSONObject(editorRef.current.getDesign());
|
|
134
|
+
// designObject is a plain JSON-compatible object you can send to an API
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
#### Get a base64 data URL of the canvas
|
|
138
|
+
|
|
139
|
+
```ts
|
|
140
|
+
const stage = editorRef.current.stage;
|
|
141
|
+
if (stage) {
|
|
142
|
+
const dataUrl = canvasToDataURL(stage, 'png', { pixelRatio: 2 });
|
|
143
|
+
// dataUrl is like: "data:image/png;base64,iVBORw0..."
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
122
147
|
### Canvas Size Management
|
|
123
148
|
|
|
124
149
|
The `setCanvasSize` method allows you to programmatically change the canvas dimensions. This is useful for responsive designs, template switching, or custom size inputs.
|
package/dist/lib/lib/index.js
CHANGED
|
@@ -2552,6 +2552,9 @@ var exportToJPG = (stage, design) => {
|
|
|
2552
2552
|
document.body.removeChild(link);
|
|
2553
2553
|
}
|
|
2554
2554
|
};
|
|
2555
|
+
var exportToJSONObject = (design) => {
|
|
2556
|
+
return JSON.parse(JSON.stringify(design));
|
|
2557
|
+
};
|
|
2555
2558
|
var exportToJSON = (design) => {
|
|
2556
2559
|
const json = JSON.stringify(design, null, 2);
|
|
2557
2560
|
const blob = new Blob([json], { type: "application/json" });
|
|
@@ -2564,6 +2567,22 @@ var exportToJSON = (design) => {
|
|
|
2564
2567
|
document.body.removeChild(link);
|
|
2565
2568
|
URL.revokeObjectURL(url);
|
|
2566
2569
|
};
|
|
2570
|
+
var canvasToDataURL = (stage, format = "png", options) => {
|
|
2571
|
+
if (!stage) {
|
|
2572
|
+
throw new Error("Stage is required");
|
|
2573
|
+
}
|
|
2574
|
+
const oldScale = stage.scaleX();
|
|
2575
|
+
stage.scale({ x: 1, y: 1 });
|
|
2576
|
+
const pixelRatio = options?.pixelRatio ?? 2;
|
|
2577
|
+
const quality = options?.quality ?? 0.9;
|
|
2578
|
+
const dataUrl = stage.toDataURL({
|
|
2579
|
+
pixelRatio,
|
|
2580
|
+
mimeType: format === "jpg" ? "image/jpeg" : "image/png",
|
|
2581
|
+
quality: format === "jpg" ? quality : undefined
|
|
2582
|
+
});
|
|
2583
|
+
stage.scale({ x: oldScale, y: oldScale });
|
|
2584
|
+
return dataUrl;
|
|
2585
|
+
};
|
|
2567
2586
|
var canvasToBlob = (stage, format = "png", options) => {
|
|
2568
2587
|
if (!stage) {
|
|
2569
2588
|
return Promise.reject(new Error("Stage is required"));
|
|
@@ -3927,9 +3946,11 @@ export {
|
|
|
3927
3946
|
getUnsplashAccessKey,
|
|
3928
3947
|
findRequiredInputs,
|
|
3929
3948
|
exportToPNG,
|
|
3949
|
+
exportToJSONObject,
|
|
3930
3950
|
exportToJSON,
|
|
3931
3951
|
exportToJPG,
|
|
3932
3952
|
convertTemplateToCanvasDesign,
|
|
3953
|
+
canvasToDataURL,
|
|
3933
3954
|
canvasToBlob,
|
|
3934
3955
|
UrlImageElement,
|
|
3935
3956
|
ShapeElement,
|
package/dist/lib/wordpress.js
CHANGED
|
@@ -2552,6 +2552,9 @@ var exportToJPG = (stage, design) => {
|
|
|
2552
2552
|
document.body.removeChild(link);
|
|
2553
2553
|
}
|
|
2554
2554
|
};
|
|
2555
|
+
var exportToJSONObject = (design) => {
|
|
2556
|
+
return JSON.parse(JSON.stringify(design));
|
|
2557
|
+
};
|
|
2555
2558
|
var exportToJSON = (design) => {
|
|
2556
2559
|
const json = JSON.stringify(design, null, 2);
|
|
2557
2560
|
const blob = new Blob([json], { type: "application/json" });
|
|
@@ -2564,6 +2567,22 @@ var exportToJSON = (design) => {
|
|
|
2564
2567
|
document.body.removeChild(link);
|
|
2565
2568
|
URL.revokeObjectURL(url);
|
|
2566
2569
|
};
|
|
2570
|
+
var canvasToDataURL = (stage, format = "png", options) => {
|
|
2571
|
+
if (!stage) {
|
|
2572
|
+
throw new Error("Stage is required");
|
|
2573
|
+
}
|
|
2574
|
+
const oldScale = stage.scaleX();
|
|
2575
|
+
stage.scale({ x: 1, y: 1 });
|
|
2576
|
+
const pixelRatio = options?.pixelRatio ?? 2;
|
|
2577
|
+
const quality = options?.quality ?? 0.9;
|
|
2578
|
+
const dataUrl = stage.toDataURL({
|
|
2579
|
+
pixelRatio,
|
|
2580
|
+
mimeType: format === "jpg" ? "image/jpeg" : "image/png",
|
|
2581
|
+
quality: format === "jpg" ? quality : undefined
|
|
2582
|
+
});
|
|
2583
|
+
stage.scale({ x: oldScale, y: oldScale });
|
|
2584
|
+
return dataUrl;
|
|
2585
|
+
};
|
|
2567
2586
|
var canvasToBlob = (stage, format = "png", options) => {
|
|
2568
2587
|
if (!stage) {
|
|
2569
2588
|
return Promise.reject(new Error("Stage is required"));
|
|
@@ -3980,9 +3999,11 @@ export {
|
|
|
3980
3999
|
getUnsplashAccessKey,
|
|
3981
4000
|
findRequiredInputs,
|
|
3982
4001
|
exportToPNG,
|
|
4002
|
+
exportToJSONObject,
|
|
3983
4003
|
exportToJSON,
|
|
3984
4004
|
exportToJPG,
|
|
3985
4005
|
convertTemplateToCanvasDesign,
|
|
4006
|
+
canvasToDataURL,
|
|
3986
4007
|
canvasToBlob,
|
|
3987
4008
|
UrlImageElement,
|
|
3988
4009
|
ShapeElement,
|
|
@@ -15,9 +15,9 @@ export interface CanvasEditorRef {
|
|
|
15
15
|
}
|
|
16
16
|
export { default as CanvasEditor } from '../CanvasEditor';
|
|
17
17
|
export * from '../types';
|
|
18
|
-
export { exportToPNG, exportToJPG, exportToJSON, importFromJSON, importFromJSONData, // Import JSON data directly (no file needed)
|
|
18
|
+
export { exportToPNG, exportToJPG, exportToJSON, exportToJSONObject, importFromJSON, importFromJSONData, // Import JSON data directly (no file needed)
|
|
19
19
|
loadTemplateFromJSON, // Simplified template loading utility
|
|
20
|
-
findRequiredInputs, replaceUserInputs, convertTemplateToCanvasDesign, canvasToBlob, } from '../utils/exportImportUtils';
|
|
20
|
+
findRequiredInputs, replaceUserInputs, convertTemplateToCanvasDesign, canvasToDataURL, canvasToBlob, } from '../utils/exportImportUtils';
|
|
21
21
|
export * from '../elements';
|
|
22
22
|
export { FONT_FAMILIES, DEFAULT_COLORS, CANVAS_PRESETS } from '../constants';
|
|
23
23
|
export { setUnsplashAccessKey, getUnsplashAccessKey } from '../config';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AASxC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,YAAY,CAAC;IAC9B,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,UAAU,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAGD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG1D,cAAc,UAAU,CAAC;AAGzB,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,cAAc,EACd,kBAAkB,EAAE,6CAA6C;AACjE,oBAAoB,EAAE,sCAAsC;AAC5D,kBAAkB,EAClB,iBAAiB,EACjB,6BAA6B,EAC7B,YAAY,GACb,MAAM,4BAA4B,CAAC;AAGpC,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG7E,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AASxC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,YAAY,CAAC;IAC9B,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,UAAU,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAGD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG1D,cAAc,UAAU,CAAC;AAGzB,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAAE,6CAA6C;AACjE,oBAAoB,EAAE,sCAAsC;AAC5D,kBAAkB,EAClB,iBAAiB,EACjB,6BAA6B,EAC7B,eAAe,EACf,YAAY,GACb,MAAM,4BAA4B,CAAC;AAGpC,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG7E,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -20,6 +20,7 @@ export declare function findRequiredInputs(design: CanvasDesign): UserInputItem[
|
|
|
20
20
|
export declare function replaceUserInputs(design: CanvasDesign, collectedInputs: Record<string, any>): CanvasDesign;
|
|
21
21
|
export declare const exportToPNG: (stage: Konva.Stage, design: CanvasDesign) => void;
|
|
22
22
|
export declare const exportToJPG: (stage: Konva.Stage, design: CanvasDesign) => void;
|
|
23
|
+
export declare const exportToJSONObject: (design: CanvasDesign) => CanvasDesign;
|
|
23
24
|
export declare const exportToJSON: (design: CanvasDesign) => void;
|
|
24
25
|
/**
|
|
25
26
|
* Converts the canvas to a Blob that can be used for various purposes
|
|
@@ -28,6 +29,10 @@ export declare const exportToJSON: (design: CanvasDesign) => void;
|
|
|
28
29
|
* @param options - Additional options for conversion
|
|
29
30
|
* @returns Promise that resolves with a Blob
|
|
30
31
|
*/
|
|
32
|
+
export declare const canvasToDataURL: (stage: Konva.Stage, format?: "png" | "jpg", options?: {
|
|
33
|
+
quality?: number;
|
|
34
|
+
pixelRatio?: number;
|
|
35
|
+
}) => string;
|
|
31
36
|
export declare const canvasToBlob: (stage: Konva.Stage, format?: "png" | "jpg", options?: {
|
|
32
37
|
quality?: number;
|
|
33
38
|
pixelRatio?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exportImportUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/exportImportUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,GAAG,GAAG,YAAY,CAuHrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,EAAE,CAsHxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,YAAY,EACpB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACrC,YAAY,CA6Nd;AAGD,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,CAAC,KAAK,EAAE,QAAQ,YAAY,SAanE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,CAAC,KAAK,EAAE,QAAQ,YAAY,SAiBnE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,QAAQ,YAAY,SAWhD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GACrB,OAAO,KAAK,CAAC,KAAK,EAClB,SAAQ,KAAK,GAAG,KAAa,EAC7B,UAAU;IACN,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,KACF,OAAO,CAAC,IAAI,CAsCd,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8FG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,oBAAoB,GAC/B,iBAAiB,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,EACjD,UAAU,GAAG,KACZ,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC3B,UAAU,GAAG,EACb,QAAQ,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,EACtC,SAAS,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAClC,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,KAAK,IAAI,SAuB1G,CAAC;AAEF,eAAO,MAAM,cAAc,GACvB,OAAO,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAC1C,QAAQ,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,EACtC,SAAS,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAClC,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,KAAK,IAAI,SA0C1G,CAAC"}
|
|
1
|
+
{"version":3,"file":"exportImportUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/exportImportUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,GAAG,GAAG,YAAY,CAuHrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,EAAE,CAsHxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,YAAY,EACpB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACrC,YAAY,CA6Nd;AAGD,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,CAAC,KAAK,EAAE,QAAQ,YAAY,SAanE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,CAAC,KAAK,EAAE,QAAQ,YAAY,SAiBnE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,YAAY,KAAG,YAEzD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,QAAQ,YAAY,SAWhD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GACxB,OAAO,KAAK,CAAC,KAAK,EAClB,SAAQ,KAAK,GAAG,KAAa,EAC7B,UAAU;IACN,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,KACF,MAoBF,CAAC;AAEF,eAAO,MAAM,YAAY,GACrB,OAAO,KAAK,CAAC,KAAK,EAClB,SAAQ,KAAK,GAAG,KAAa,EAC7B,UAAU;IACN,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,KACF,OAAO,CAAC,IAAI,CAsCd,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8FG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,oBAAoB,GAC/B,iBAAiB,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,EACjD,UAAU,GAAG,KACZ,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC3B,UAAU,GAAG,EACb,QAAQ,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,EACtC,SAAS,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAClC,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,KAAK,IAAI,SAuB1G,CAAC;AAEF,eAAO,MAAM,cAAc,GACvB,OAAO,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAC1C,QAAQ,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,EACtC,SAAS,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAClC,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,KAAK,IAAI,SA0C1G,CAAC"}
|