labellife-design-tool 1.1.1 → 1.1.2

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,68 @@ 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
+ }
207
+ ```
208
+
147
209
  #### Default Behavior
148
210
 
149
211
  If `config.panels` is **not provided**, the editor shows the default set:
@@ -3611,13 +3611,39 @@ 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
+ }), [currentPage.id, design.width, design.height]);
3614
3640
  const panelConfigs = useMemo(() => {
3615
3641
  const builtInConfigs = {
3616
3642
  elements: {
3617
3643
  id: "elements",
3618
3644
  title: "Elements",
3619
3645
  component: ElementPanel_default,
3620
- props: { onAddShape: addShape }
3646
+ props: { onAddShape: addShape, store }
3621
3647
  },
3622
3648
  text: {
3623
3649
  id: "text",
@@ -3627,7 +3653,8 @@ var CanvasEditor = forwardRef(({
3627
3653
  selectedElement,
3628
3654
  updateElement,
3629
3655
  setTool,
3630
- onAddText: addText
3656
+ onAddText: addText,
3657
+ store
3631
3658
  }
3632
3659
  },
3633
3660
  image: {
@@ -3643,7 +3670,8 @@ var CanvasEditor = forwardRef(({
3643
3670
  setUnsplashMode("element");
3644
3671
  },
3645
3672
  canvasWidth: design.width,
3646
- canvasHeight: design.height
3673
+ canvasHeight: design.height,
3674
+ store
3647
3675
  }
3648
3676
  },
3649
3677
  design: {
@@ -3660,7 +3688,8 @@ var CanvasEditor = forwardRef(({
3660
3688
  setShowUnsplash(true);
3661
3689
  setUnsplashMode("background");
3662
3690
  },
3663
- config
3691
+ config,
3692
+ store
3664
3693
  }
3665
3694
  },
3666
3695
  background: {
@@ -3674,7 +3703,8 @@ var CanvasEditor = forwardRef(({
3674
3703
  onSetUnsplashBackground: () => {
3675
3704
  setShowUnsplash(true);
3676
3705
  setUnsplashMode("background");
3677
- }
3706
+ },
3707
+ store
3678
3708
  }
3679
3709
  },
3680
3710
  variables: config?.variables ? {
@@ -3684,7 +3714,8 @@ var CanvasEditor = forwardRef(({
3684
3714
  props: {
3685
3715
  config,
3686
3716
  design,
3687
- setDesign
3717
+ setDesign,
3718
+ store
3688
3719
  }
3689
3720
  } : null,
3690
3721
  export: {
@@ -3702,7 +3733,8 @@ var CanvasEditor = forwardRef(({
3702
3733
  } : undefined,
3703
3734
  onExportToJSON: config?.export?.json ? () => exportToJSON(design) : undefined,
3704
3735
  onImportJSON: () => jsonInputRef.current?.click(),
3705
- onLoadJSON: () => setShowJsonModal(true)
3736
+ onLoadJSON: () => setShowJsonModal(true),
3737
+ store
3706
3738
  }
3707
3739
  }
3708
3740
  };
@@ -3739,7 +3771,7 @@ var CanvasEditor = forwardRef(({
3739
3771
  id: custom.id,
3740
3772
  title: custom.title,
3741
3773
  component: custom.component,
3742
- props: custom.props || {}
3774
+ props: { ...custom.props, store }
3743
3775
  });
3744
3776
  });
3745
3777
  return ordered;
@@ -3751,7 +3783,8 @@ var CanvasEditor = forwardRef(({
3751
3783
  design,
3752
3784
  selectedElement,
3753
3785
  setTool,
3754
- updateElement
3786
+ updateElement,
3787
+ store
3755
3788
  ]);
3756
3789
  useEffect4(() => {
3757
3790
  if (!panelConfigs.length)
@@ -3611,13 +3611,39 @@ 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
+ }), [currentPage.id, design.width, design.height]);
3614
3640
  const panelConfigs = useMemo(() => {
3615
3641
  const builtInConfigs = {
3616
3642
  elements: {
3617
3643
  id: "elements",
3618
3644
  title: "Elements",
3619
3645
  component: ElementPanel_default,
3620
- props: { onAddShape: addShape }
3646
+ props: { onAddShape: addShape, store }
3621
3647
  },
3622
3648
  text: {
3623
3649
  id: "text",
@@ -3627,7 +3653,8 @@ var CanvasEditor = forwardRef(({
3627
3653
  selectedElement,
3628
3654
  updateElement,
3629
3655
  setTool,
3630
- onAddText: addText
3656
+ onAddText: addText,
3657
+ store
3631
3658
  }
3632
3659
  },
3633
3660
  image: {
@@ -3643,7 +3670,8 @@ var CanvasEditor = forwardRef(({
3643
3670
  setUnsplashMode("element");
3644
3671
  },
3645
3672
  canvasWidth: design.width,
3646
- canvasHeight: design.height
3673
+ canvasHeight: design.height,
3674
+ store
3647
3675
  }
3648
3676
  },
3649
3677
  design: {
@@ -3660,7 +3688,8 @@ var CanvasEditor = forwardRef(({
3660
3688
  setShowUnsplash(true);
3661
3689
  setUnsplashMode("background");
3662
3690
  },
3663
- config
3691
+ config,
3692
+ store
3664
3693
  }
3665
3694
  },
3666
3695
  background: {
@@ -3674,7 +3703,8 @@ var CanvasEditor = forwardRef(({
3674
3703
  onSetUnsplashBackground: () => {
3675
3704
  setShowUnsplash(true);
3676
3705
  setUnsplashMode("background");
3677
- }
3706
+ },
3707
+ store
3678
3708
  }
3679
3709
  },
3680
3710
  variables: config?.variables ? {
@@ -3684,7 +3714,8 @@ var CanvasEditor = forwardRef(({
3684
3714
  props: {
3685
3715
  config,
3686
3716
  design,
3687
- setDesign
3717
+ setDesign,
3718
+ store
3688
3719
  }
3689
3720
  } : null,
3690
3721
  export: {
@@ -3702,7 +3733,8 @@ var CanvasEditor = forwardRef(({
3702
3733
  } : undefined,
3703
3734
  onExportToJSON: config?.export?.json ? () => exportToJSON(design) : undefined,
3704
3735
  onImportJSON: () => jsonInputRef.current?.click(),
3705
- onLoadJSON: () => setShowJsonModal(true)
3736
+ onLoadJSON: () => setShowJsonModal(true),
3737
+ store
3706
3738
  }
3707
3739
  }
3708
3740
  };
@@ -3739,7 +3771,7 @@ var CanvasEditor = forwardRef(({
3739
3771
  id: custom.id,
3740
3772
  title: custom.title,
3741
3773
  component: custom.component,
3742
- props: custom.props || {}
3774
+ props: { ...custom.props, store }
3743
3775
  });
3744
3776
  });
3745
3777
  return ordered;
@@ -3751,7 +3783,8 @@ var CanvasEditor = forwardRef(({
3751
3783
  design,
3752
3784
  selectedElement,
3753
3785
  setTool,
3754
- updateElement
3786
+ updateElement,
3787
+ store
3755
3788
  ]);
3756
3789
  useEffect4(() => {
3757
3790
  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;yCA4wC9E,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,20 @@ 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
+ }
15
29
  export interface NavbarSection {
16
30
  id: string;
17
31
  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.2",
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",