labellife-design-tool 1.3.8 → 1.3.9

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.
@@ -2716,6 +2716,33 @@ var RightSidebar = ({
2716
2716
  var RightSidebar_default = RightSidebar;
2717
2717
 
2718
2718
  // src/CanvasEditor.tsx
2719
+ var renderComponentSafely = (Component, props, fallbackMessage = "Component render failed") => {
2720
+ if (typeof React17 === "undefined") {
2721
+ console.error("labellife-design-tool: React not available");
2722
+ return React17.createElement("div", {
2723
+ className: "text-red-400 text-center p-4",
2724
+ children: "React not available"
2725
+ });
2726
+ }
2727
+ const reactVersion = React17.version;
2728
+ if (reactVersion && !reactVersion.startsWith("18.")) {
2729
+ console.warn("labellife-design-tool: React 18.x recommended, found:", reactVersion);
2730
+ }
2731
+ try {
2732
+ return React17.createElement(Component, props);
2733
+ } catch (jsxError) {
2734
+ console.warn("labellife-design-tool: JSX rendering failed, trying React.createElement:", jsxError);
2735
+ try {
2736
+ return React17.createElement(Component, props);
2737
+ } catch (createElementError) {
2738
+ console.error("labellife-design-tool: Both JSX and React.createElement failed:", createElementError);
2739
+ return React17.createElement("div", {
2740
+ className: "text-red-400 text-center p-4",
2741
+ children: fallbackMessage
2742
+ });
2743
+ }
2744
+ }
2745
+ };
2719
2746
  var CanvasEditor = forwardRef(({ name, config, store }, ref) => {
2720
2747
  if (!store) {
2721
2748
  console.error("CanvasEditor: store prop is required but was not provided");
@@ -2949,10 +2976,10 @@ var CanvasEditor = forwardRef(({ name, config, store }, ref) => {
2949
2976
  isFunction: typeof PanelComponent === "function",
2950
2977
  componentName: PanelComponent.name || "anonymous"
2951
2978
  });
2952
- return /* @__PURE__ */ React17.createElement(PanelComponent, {
2979
+ return renderComponentSafely(PanelComponent, {
2953
2980
  key: activePanel.id,
2954
2981
  ...activePanel.props
2955
- });
2982
+ }, `Failed to render panel: ${activePanel.id}`);
2956
2983
  }, [panelConfigs, store.activePanelId]);
2957
2984
  const handleImageUpload = useCallback4((e) => {
2958
2985
  const file = e.target.files?.[0];
@@ -2716,6 +2716,33 @@ var RightSidebar = ({
2716
2716
  var RightSidebar_default = RightSidebar;
2717
2717
 
2718
2718
  // src/CanvasEditor.tsx
2719
+ var renderComponentSafely = (Component, props, fallbackMessage = "Component render failed") => {
2720
+ if (typeof React17 === "undefined") {
2721
+ console.error("labellife-design-tool: React not available");
2722
+ return React17.createElement("div", {
2723
+ className: "text-red-400 text-center p-4",
2724
+ children: "React not available"
2725
+ });
2726
+ }
2727
+ const reactVersion = React17.version;
2728
+ if (reactVersion && !reactVersion.startsWith("18.")) {
2729
+ console.warn("labellife-design-tool: React 18.x recommended, found:", reactVersion);
2730
+ }
2731
+ try {
2732
+ return React17.createElement(Component, props);
2733
+ } catch (jsxError) {
2734
+ console.warn("labellife-design-tool: JSX rendering failed, trying React.createElement:", jsxError);
2735
+ try {
2736
+ return React17.createElement(Component, props);
2737
+ } catch (createElementError) {
2738
+ console.error("labellife-design-tool: Both JSX and React.createElement failed:", createElementError);
2739
+ return React17.createElement("div", {
2740
+ className: "text-red-400 text-center p-4",
2741
+ children: fallbackMessage
2742
+ });
2743
+ }
2744
+ }
2745
+ };
2719
2746
  var CanvasEditor = forwardRef(({ name, config, store }, ref) => {
2720
2747
  if (!store) {
2721
2748
  console.error("CanvasEditor: store prop is required but was not provided");
@@ -2949,10 +2976,10 @@ var CanvasEditor = forwardRef(({ name, config, store }, ref) => {
2949
2976
  isFunction: typeof PanelComponent === "function",
2950
2977
  componentName: PanelComponent.name || "anonymous"
2951
2978
  });
2952
- return /* @__PURE__ */ React17.createElement(PanelComponent, {
2979
+ return renderComponentSafely(PanelComponent, {
2953
2980
  key: activePanel.id,
2954
2981
  ...activePanel.props
2955
- });
2982
+ }, `Failed to render panel: ${activePanel.id}`);
2956
2983
  }, [panelConfigs, store.activePanelId]);
2957
2984
  const handleImageUpload = useCallback4((e) => {
2958
2985
  const file = e.target.files?.[0];
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasEditor.d.ts","sourceRoot":"","sources":["../../src/CanvasEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmF,MAAM,OAAO,CAAC;AA4ExG,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAqB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,QAAA,MAAM,YAAY;UAAuC,MAAM;aAAW,MAAM;WAAS,iBAAiB;yCAujBxG,CAAC;AAIH,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"CanvasEditor.d.ts","sourceRoot":"","sources":["../../src/CanvasEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmF,MAAM,OAAO,CAAC;AAmHxG,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAqB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,QAAA,MAAM,YAAY;UAAuC,MAAM;aAAW,MAAM;WAAS,iBAAiB;yCA2jBxG,CAAC;AAIH,eAAe,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "labellife-design-tool",
3
- "version": "1.3.8",
3
+ "version": "1.3.9",
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",