labellife-design-tool 1.1.1 → 1.1.3

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 CHANGED
@@ -144,6 +144,89 @@ interface CustomPanelDefinition {
144
144
  }
145
145
  ```
146
146
 
147
+ #### Add Elements from a Custom Panel
148
+
149
+ Every panel (built-in or custom) receives a `store` prop with a Polotno-like API:
150
+
151
+ ```tsx
152
+ // Your custom panel component
153
+ const MyImagesPanel = ({ store }) => {
154
+ const handleAddImage = (url: string) => {
155
+ store.activePage?.addElement({
156
+ type: "image",
157
+ src: url,
158
+ x: 100,
159
+ y: 100,
160
+ width: 200,
161
+ height: 200,
162
+ });
163
+ };
164
+
165
+ return (
166
+ <div style={{ color: "white", padding: 16 }}>
167
+ <h3>My Images</h3>
168
+ <button onClick={() => handleAddImage("https://example.com/img.jpg")}>
169
+ Add Image
170
+ </button>
171
+ <p>Canvas size: {store.width} × {store.height}</p>
172
+ </div>
173
+ );
174
+ };
175
+
176
+ // Register the panel
177
+ <CanvasEditor
178
+ config={{
179
+ panels: [
180
+ "text",
181
+ "elements",
182
+ { id: "my-images", title: "My Images", icon: <MyIcon />, component: MyImagesPanel },
183
+ "image",
184
+ "background",
185
+ ],
186
+ }}
187
+ />
188
+ ```
189
+
190
+ **CanvasStore interface**
191
+
192
+ ```typescript
193
+ interface CanvasStore {
194
+ activePage: {
195
+ addElement: (element: {
196
+ type: string;
197
+ src?: string;
198
+ x: number;
199
+ y: number;
200
+ width: number;
201
+ height: number;
202
+ }) => void;
203
+ };
204
+ width: number;
205
+ height: number;
206
+ openSidePanel: (panelId: string | null) => void;
207
+ }
208
+ ```
209
+
210
+ **Open panels programmatically**
211
+
212
+ ```tsx
213
+ const MyPanel = ({ store }) => {
214
+ const openTextPanel = () => store.openSidePanel("text");
215
+ const openCustomPanel = () => store.openSidePanel("my-custom-panel");
216
+ const closeAllPanels = () => store.openSidePanel(null);
217
+ const tryOpenUnknown = () => store.openSidePanel("nonexistent"); // closes all panels
218
+
219
+ return (
220
+ <div style={{ color: "white", padding: 16 }}>
221
+ <button onClick={openTextPanel}>Open Text Panel</button>
222
+ <button onClick={openCustomPanel}>Open Custom Panel</button>
223
+ <button onClick={closeAllPanels}>Close All Panels</button>
224
+ <button onClick={tryOpenUnknown}>Try Unknown Panel (closes all)</button>
225
+ </div>
226
+ );
227
+ };
228
+ ```
229
+
147
230
  #### Default Behavior
148
231
 
149
232
  If `config.panels` is **not provided**, the editor shows the default set:
@@ -3611,13 +3611,60 @@ var CanvasEditor = forwardRef(({
3611
3611
  delete window.__pendingImportReject;
3612
3612
  }
3613
3613
  };
3614
+ const store = useMemo(() => ({
3615
+ activePage: {
3616
+ addElement: (element) => {
3617
+ const newElement = {
3618
+ id: `element-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
3619
+ type: element.type,
3620
+ name: `${element.type} element`,
3621
+ x: element.x,
3622
+ y: element.y,
3623
+ width: element.width,
3624
+ height: element.height,
3625
+ rotation: 0,
3626
+ visible: true,
3627
+ locked: false,
3628
+ opacity: 1,
3629
+ ...element.src && { src: element.src }
3630
+ };
3631
+ setDesign((prev) => ({
3632
+ ...prev,
3633
+ pages: prev.pages.map((page) => page.id === currentPage.id ? { ...page, elements: [...page.elements, newElement] } : page)
3634
+ }));
3635
+ }
3636
+ },
3637
+ width: design.width,
3638
+ height: design.height,
3639
+ openSidePanel: (panelId) => {
3640
+ if (!panelId) {
3641
+ setActivePanelId(null);
3642
+ return;
3643
+ }
3644
+ const requestedPanels = config?.panels && config.panels.length > 0 ? config.panels : [
3645
+ "text",
3646
+ "elements",
3647
+ "image",
3648
+ "design",
3649
+ "background",
3650
+ ...config?.variables ? ["variables"] : [],
3651
+ ...config?.export ? ["export"] : []
3652
+ ];
3653
+ const panelExists = requestedPanels.some((p) => typeof p === "string" ? p === panelId : p.id === panelId);
3654
+ if (panelExists) {
3655
+ setActivePanelId(panelId);
3656
+ } else {
3657
+ setActivePanelId(null);
3658
+ }
3659
+ }
3660
+ }), [currentPage.id, design.width, design.height, config, setActivePanelId]);
3614
3661
  const panelConfigs = useMemo(() => {
3615
3662
  const builtInConfigs = {
3616
3663
  elements: {
3617
3664
  id: "elements",
3618
3665
  title: "Elements",
3619
3666
  component: ElementPanel_default,
3620
- props: { onAddShape: addShape }
3667
+ props: { onAddShape: addShape, store }
3621
3668
  },
3622
3669
  text: {
3623
3670
  id: "text",
@@ -3627,7 +3674,8 @@ var CanvasEditor = forwardRef(({
3627
3674
  selectedElement,
3628
3675
  updateElement,
3629
3676
  setTool,
3630
- onAddText: addText
3677
+ onAddText: addText,
3678
+ store
3631
3679
  }
3632
3680
  },
3633
3681
  image: {
@@ -3643,7 +3691,8 @@ var CanvasEditor = forwardRef(({
3643
3691
  setUnsplashMode("element");
3644
3692
  },
3645
3693
  canvasWidth: design.width,
3646
- canvasHeight: design.height
3694
+ canvasHeight: design.height,
3695
+ store
3647
3696
  }
3648
3697
  },
3649
3698
  design: {
@@ -3660,7 +3709,8 @@ var CanvasEditor = forwardRef(({
3660
3709
  setShowUnsplash(true);
3661
3710
  setUnsplashMode("background");
3662
3711
  },
3663
- config
3712
+ config,
3713
+ store
3664
3714
  }
3665
3715
  },
3666
3716
  background: {
@@ -3674,7 +3724,8 @@ var CanvasEditor = forwardRef(({
3674
3724
  onSetUnsplashBackground: () => {
3675
3725
  setShowUnsplash(true);
3676
3726
  setUnsplashMode("background");
3677
- }
3727
+ },
3728
+ store
3678
3729
  }
3679
3730
  },
3680
3731
  variables: config?.variables ? {
@@ -3684,7 +3735,8 @@ var CanvasEditor = forwardRef(({
3684
3735
  props: {
3685
3736
  config,
3686
3737
  design,
3687
- setDesign
3738
+ setDesign,
3739
+ store
3688
3740
  }
3689
3741
  } : null,
3690
3742
  export: {
@@ -3702,7 +3754,8 @@ var CanvasEditor = forwardRef(({
3702
3754
  } : undefined,
3703
3755
  onExportToJSON: config?.export?.json ? () => exportToJSON(design) : undefined,
3704
3756
  onImportJSON: () => jsonInputRef.current?.click(),
3705
- onLoadJSON: () => setShowJsonModal(true)
3757
+ onLoadJSON: () => setShowJsonModal(true),
3758
+ store
3706
3759
  }
3707
3760
  }
3708
3761
  };
@@ -3739,7 +3792,7 @@ var CanvasEditor = forwardRef(({
3739
3792
  id: custom.id,
3740
3793
  title: custom.title,
3741
3794
  component: custom.component,
3742
- props: custom.props || {}
3795
+ props: { ...custom.props, store }
3743
3796
  });
3744
3797
  });
3745
3798
  return ordered;
@@ -3751,7 +3804,8 @@ var CanvasEditor = forwardRef(({
3751
3804
  design,
3752
3805
  selectedElement,
3753
3806
  setTool,
3754
- updateElement
3807
+ updateElement,
3808
+ store
3755
3809
  ]);
3756
3810
  useEffect4(() => {
3757
3811
  if (!panelConfigs.length)
@@ -3611,13 +3611,60 @@ var CanvasEditor = forwardRef(({
3611
3611
  delete window.__pendingImportReject;
3612
3612
  }
3613
3613
  };
3614
+ const store = useMemo(() => ({
3615
+ activePage: {
3616
+ addElement: (element) => {
3617
+ const newElement = {
3618
+ id: `element-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
3619
+ type: element.type,
3620
+ name: `${element.type} element`,
3621
+ x: element.x,
3622
+ y: element.y,
3623
+ width: element.width,
3624
+ height: element.height,
3625
+ rotation: 0,
3626
+ visible: true,
3627
+ locked: false,
3628
+ opacity: 1,
3629
+ ...element.src && { src: element.src }
3630
+ };
3631
+ setDesign((prev) => ({
3632
+ ...prev,
3633
+ pages: prev.pages.map((page) => page.id === currentPage.id ? { ...page, elements: [...page.elements, newElement] } : page)
3634
+ }));
3635
+ }
3636
+ },
3637
+ width: design.width,
3638
+ height: design.height,
3639
+ openSidePanel: (panelId) => {
3640
+ if (!panelId) {
3641
+ setActivePanelId(null);
3642
+ return;
3643
+ }
3644
+ const requestedPanels = config?.panels && config.panels.length > 0 ? config.panels : [
3645
+ "text",
3646
+ "elements",
3647
+ "image",
3648
+ "design",
3649
+ "background",
3650
+ ...config?.variables ? ["variables"] : [],
3651
+ ...config?.export ? ["export"] : []
3652
+ ];
3653
+ const panelExists = requestedPanels.some((p) => typeof p === "string" ? p === panelId : p.id === panelId);
3654
+ if (panelExists) {
3655
+ setActivePanelId(panelId);
3656
+ } else {
3657
+ setActivePanelId(null);
3658
+ }
3659
+ }
3660
+ }), [currentPage.id, design.width, design.height, config, setActivePanelId]);
3614
3661
  const panelConfigs = useMemo(() => {
3615
3662
  const builtInConfigs = {
3616
3663
  elements: {
3617
3664
  id: "elements",
3618
3665
  title: "Elements",
3619
3666
  component: ElementPanel_default,
3620
- props: { onAddShape: addShape }
3667
+ props: { onAddShape: addShape, store }
3621
3668
  },
3622
3669
  text: {
3623
3670
  id: "text",
@@ -3627,7 +3674,8 @@ var CanvasEditor = forwardRef(({
3627
3674
  selectedElement,
3628
3675
  updateElement,
3629
3676
  setTool,
3630
- onAddText: addText
3677
+ onAddText: addText,
3678
+ store
3631
3679
  }
3632
3680
  },
3633
3681
  image: {
@@ -3643,7 +3691,8 @@ var CanvasEditor = forwardRef(({
3643
3691
  setUnsplashMode("element");
3644
3692
  },
3645
3693
  canvasWidth: design.width,
3646
- canvasHeight: design.height
3694
+ canvasHeight: design.height,
3695
+ store
3647
3696
  }
3648
3697
  },
3649
3698
  design: {
@@ -3660,7 +3709,8 @@ var CanvasEditor = forwardRef(({
3660
3709
  setShowUnsplash(true);
3661
3710
  setUnsplashMode("background");
3662
3711
  },
3663
- config
3712
+ config,
3713
+ store
3664
3714
  }
3665
3715
  },
3666
3716
  background: {
@@ -3674,7 +3724,8 @@ var CanvasEditor = forwardRef(({
3674
3724
  onSetUnsplashBackground: () => {
3675
3725
  setShowUnsplash(true);
3676
3726
  setUnsplashMode("background");
3677
- }
3727
+ },
3728
+ store
3678
3729
  }
3679
3730
  },
3680
3731
  variables: config?.variables ? {
@@ -3684,7 +3735,8 @@ var CanvasEditor = forwardRef(({
3684
3735
  props: {
3685
3736
  config,
3686
3737
  design,
3687
- setDesign
3738
+ setDesign,
3739
+ store
3688
3740
  }
3689
3741
  } : null,
3690
3742
  export: {
@@ -3702,7 +3754,8 @@ var CanvasEditor = forwardRef(({
3702
3754
  } : undefined,
3703
3755
  onExportToJSON: config?.export?.json ? () => exportToJSON(design) : undefined,
3704
3756
  onImportJSON: () => jsonInputRef.current?.click(),
3705
- onLoadJSON: () => setShowJsonModal(true)
3757
+ onLoadJSON: () => setShowJsonModal(true),
3758
+ store
3706
3759
  }
3707
3760
  }
3708
3761
  };
@@ -3739,7 +3792,7 @@ var CanvasEditor = forwardRef(({
3739
3792
  id: custom.id,
3740
3793
  title: custom.title,
3741
3794
  component: custom.component,
3742
- props: custom.props || {}
3795
+ props: { ...custom.props, store }
3743
3796
  });
3744
3797
  });
3745
3798
  return ordered;
@@ -3751,7 +3804,8 @@ var CanvasEditor = forwardRef(({
3751
3804
  design,
3752
3805
  selectedElement,
3753
3806
  setTool,
3754
- updateElement
3807
+ updateElement,
3808
+ store
3755
3809
  ]);
3756
3810
  useEffect4(() => {
3757
3811
  if (!panelConfigs.length)
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasEditor.d.ts","sourceRoot":"","sources":["../../src/CanvasEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6F,MAAM,OAAO,CAAC;AAGlH,OAAO,KAAK,MAAM,OAAO,CAAC;AA0C1B,OAAO,EAEL,YAAY,EAKb,MAAM,SAAS,CAAC;AAiCjB,OAAO,EAAkB,MAAM,EAA0C,MAAM,gBAAgB,CAAC;AAGhG,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;CACxD;AAED,QAAA,MAAM,YAAY;UAAuC,MAAM;aAAW,MAAM;yCAguC9E,CAAC;AAEH,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"CanvasEditor.d.ts","sourceRoot":"","sources":["../../src/CanvasEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6F,MAAM,OAAO,CAAC;AAGlH,OAAO,KAAK,MAAM,OAAO,CAAC;AA0C1B,OAAO,EAEL,YAAY,EAKb,MAAM,SAAS,CAAC;AAiCjB,OAAO,EAA+B,MAAM,EAA0C,MAAM,gBAAgB,CAAC;AAG7G,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;CACxD;AAED,QAAA,MAAM,YAAY;UAAuC,MAAM;aAAW,MAAM;yCA4yC9E,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -15,7 +15,7 @@ export interface CanvasEditorRef {
15
15
  }
16
16
  export { default as CanvasEditor } from '../CanvasEditor';
17
17
  export * from '../types';
18
- export type { BuiltInPanelId, CustomPanelDefinition, PanelDefinition, } from '../types/Config';
18
+ export type { BuiltInPanelId, CanvasStore, CustomPanelDefinition, PanelDefinition, } from '../types/Config';
19
19
  export { exportToPNG, exportToJPG, exportToJSON, exportToJSONObject, importFromJSON, importFromJSONData, // Import JSON data directly (no file needed)
20
20
  loadTemplateFromJSON, // Simplified template loading utility
21
21
  findRequiredInputs, replaceUserInputs, convertTemplateToCanvasDesign, canvasToDataURL, canvasToBlob, } from '../utils/exportImportUtils';
@@ -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,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,eAAe,GAChB,MAAM,iBAAiB,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"}
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,YAAY,EACV,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,eAAe,GAChB,MAAM,iBAAiB,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"}
@@ -12,6 +12,21 @@ export interface CustomPanelDefinition {
12
12
  toolValue?: ToolType;
13
13
  }
14
14
  export type PanelDefinition = BuiltInPanelId | CustomPanelDefinition;
15
+ export interface CanvasStore {
16
+ activePage: {
17
+ addElement: (element: {
18
+ type: string;
19
+ src?: string;
20
+ x: number;
21
+ y: number;
22
+ width: number;
23
+ height: number;
24
+ }) => void;
25
+ };
26
+ width: number;
27
+ height: number;
28
+ openSidePanel: (panelId: string | null) => void;
29
+ }
15
30
  export interface NavbarSection {
16
31
  id: string;
17
32
  type: 'default' | 'custom';
@@ -1 +1 @@
1
- {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/types/Config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,QAAQ,GACR,MAAM,GACN,OAAO,GACP,YAAY,GACZ,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,GAAG,iBAAiB,CAAC;IAC5C,SAAS,CAAC,EAAE,QAAQ,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,qBAAqB,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IAEjC,eAAe,CAAC,EAAE;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;KACvC,CAAC;CACH;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,EAAE;QACP,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IACJ,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;CAC5B"}
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/types/Config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "labellife-design-tool",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "description": "Professional canvas editor built with React, TypeScript, and Konva",
5
5
  "main": "./dist/lib/lib/index.js",
6
6
  "module": "./dist/lib/lib/index.js",