@arbisoft/react-design-tool 1.0.2 → 1.0.4

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/esm/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import React, { useCallback, useMemo, useState, useRef, useEffect, forwardRef, useImperativeHandle } from 'react';
2
2
  import PropTypes, { element } from 'prop-types';
3
- import styled, { css, keyframes } from 'styled-components';
3
+ import styled, { css, keyframes, StyleSheetManager } from 'styled-components';
4
4
  import { Image as Image$1, Group, Rect, Text, Line, Star, Path, RegularPolygon, Arrow, Circle, Stage, Layer, Transformer } from 'react-konva';
5
5
  import QRCode from 'qrcode';
6
6
  import { Html } from 'react-konva-utils';
@@ -614,7 +614,7 @@ var propTypes$y = {
614
614
  pillActiveColor: PropTypes.string
615
615
  };
616
616
 
617
- var _templateObject$s, _templateObject2$m, _templateObject3$b;
617
+ var _templateObject$s, _templateObject2$m, _templateObject3$c;
618
618
  var SideBarItem = styled.div(_templateObject$s || (_templateObject$s = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100px;\n min-height: 100px;\n background-color: ", ";\n margin-bottom: 2px;\n cursor: pointer;\n transition: background-color 0.2s ease-in-out;\n\n &:hover {\n background-color: ", ";\n }\n"])), function (_ref) {
619
619
  var isSelected = _ref.isSelected,
620
620
  pillActiveColor = _ref.pillActiveColor;
@@ -628,23 +628,23 @@ var SideBarIcon = styled.img(_templateObject2$m || (_templateObject2$m = _tagged
628
628
  isSelected = _ref3$isSelected === void 0 ? false : _ref3$isSelected;
629
629
  return isSelected ? 'brightness(0) invert(1)' : 'none';
630
630
  }, SideBarItem);
631
- var SideBarText = styled.p(_templateObject3$b || (_templateObject3$b = _taggedTemplateLiteral(["\n color: ", ";\n font-size: 12px;\n font-family: ", ";\n font-weight: ", ";\n line-height: 109.023%;\n text-align: center;\n\n ", ":hover & {\n color: ", ";\n }\n"])), function (_ref4) {
631
+ var SideBarText = styled.p(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteral(["\n color: ", ";\n font-size: 12px;\n font-family: ", ";\n font-weight: ", ";\n line-height: 109.023%;\n text-align: center;\n\n ", ":hover & {\n color: ", ";\n }\n"])), function (_ref4) {
632
632
  var _ref4$isSelected = _ref4.isSelected,
633
633
  isSelected = _ref4$isSelected === void 0 ? false : _ref4$isSelected;
634
634
  return isSelected ? theme.color.white : theme.color.gray_535354;
635
635
  }, theme.fonts.primary, theme.fontWeights[400], SideBarItem, theme.color.white);
636
636
 
637
637
  var SideBarPill = function SideBarPill(_ref) {
638
- var key = _ref.key,
639
- _ref$isSelected = _ref.isSelected,
638
+ var _ref$isSelected = _ref.isSelected,
640
639
  isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
641
640
  _ref$onClick = _ref.onClick,
642
641
  _onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,
643
642
  icon = _ref.icon,
644
643
  text = _ref.text,
645
- pillActiveColor = _ref.pillActiveColor;
644
+ pillActiveColor = _ref.pillActiveColor,
645
+ id = _ref.id;
646
646
  return /*#__PURE__*/React.createElement(SideBarItem, {
647
- key: key,
647
+ key: id,
648
648
  isSelected: isSelected,
649
649
  onClick: function onClick() {
650
650
  return _onClick();
@@ -757,6 +757,8 @@ var IconHeart = "data:image/svg+xml,%3Csvg%20width%3D%2247%22%20height%3D%2247%2
757
757
 
758
758
  var IconUnlock = "data:image/svg+xml,%3Csvg%20width%3D%2217%22%20height%3D%2216%22%20viewBox%3D%220%200%2017%2016%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M8.66368%202.01017C9.32164%201.94371%209.98083%202.1241%2010.5133%202.51632C11.0457%202.90854%2011.4134%203.4846%2011.545%204.13269C11.6183%204.49351%2011.9702%204.72662%2012.331%204.65336C12.6918%204.58009%2012.925%204.22819%2012.8517%203.86736C12.6543%202.89524%2012.1027%202.03114%2011.3041%201.44281C10.5054%200.854482%209.51663%200.583899%208.52969%200.68359C7.54691%200.782861%206.63577%201.24224%205.97161%201.97299L5.96306%201.98228C5.29856%202.71803%204.93098%203.67431%204.93156%204.66567L4.93156%206.66675H4.26489C3.16032%206.66675%202.26489%207.56218%202.26489%208.66675V13.3334C2.26489%2014.438%203.16032%2015.3334%204.26489%2015.3334H13.5982C14.7028%2015.3334%2015.5982%2014.438%2015.5982%2013.3334V8.66675C15.5982%207.56218%2014.7028%206.66675%2013.5982%206.66675H6.26489L6.26489%204.66601C6.26423%204.00811%206.50679%203.37331%206.94572%202.88356L6.95268%202.87597C7.39593%202.3852%208.00572%202.07663%208.66368%202.01017ZM4.26489%208.00008C3.8967%208.00008%203.59823%208.29856%203.59823%208.66675V13.3334C3.59823%2013.7016%203.8967%2014.0001%204.26489%2014.0001H13.5982C13.9664%2014.0001%2014.2649%2013.7016%2014.2649%2013.3334V8.66675C14.2649%208.29856%2013.9664%208.00008%2013.5982%208.00008H4.26489Z%22%20fill%3D%22%234D6277%22%2F%3E%3C%2Fsvg%3E";
759
759
 
760
+ var IconCross = "data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xml%3Aspace%3D%22preserve%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20enable-background%3D%22new%200%200%2024%2024%22%3E%3Cpath%20d%3D%22M5.3%2018.7c.2.2.4.3.7.3s.5-.1.7-.3l5.3-5.3%205.3%205.3c.2.2.5.3.7.3s.5-.1.7-.3c.4-.4.4-1%200-1.4L13.4%2012l5.3-5.3c.4-.4.4-1%200-1.4s-1-.4-1.4%200L12%2010.6%206.7%205.3c-.4-.4-1-.4-1.4%200s-.4%201%200%201.4l5.3%205.3-5.3%205.3c-.4.4-.4%201%200%201.4z%22%20id%3D%22_icons%22%20fill%3D%22%23ffffff%22%20class%3D%22fill-000000%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E";
761
+
760
762
  var EditorBg = "/images/small-dots.png";
761
763
 
762
764
  var topTabBarpadding = '11.51px 14.16px';
@@ -1878,6 +1880,7 @@ var SideBar = function SideBar(_ref) {
1878
1880
  }
1879
1881
  return /*#__PURE__*/React.createElement(SideBarPill, {
1880
1882
  key: item === null || item === void 0 ? void 0 : item.id,
1883
+ id: item === null || item === void 0 ? void 0 : item.id,
1881
1884
  isSelected: selectedSideBarItem === (item === null || item === void 0 ? void 0 : item.id),
1882
1885
  onClick: function onClick() {
1883
1886
  return onClickSinglePill(item === null || item === void 0 ? void 0 : item.id);
@@ -1952,13 +1955,13 @@ var propTypes$x = {
1952
1955
  onChangeCuttingGuideProp: PropTypes.func
1953
1956
  };
1954
1957
 
1955
- var _templateObject$r, _templateObject2$l, _templateObject3$a, _templateObject4$5, _templateObject5$3;
1958
+ var _templateObject$r, _templateObject2$l, _templateObject3$b, _templateObject4$5, _templateObject5$3;
1956
1959
  var Container$4 = styled.div(_templateObject$r || (_templateObject$r = _taggedTemplateLiteral(["\n flex: 1;\n display: flex;\n background-color: ", ";\n background-image: ", ";\n position: relative;\n flex-direction: column;\n overflow: hidden;\n"])), theme.color.white_F7F7F7, function (_ref) {
1957
1960
  var selectedTab = _ref.selectedTab;
1958
1961
  return selectedTab ? 'none' : "url(".concat(EditorBg, ")");
1959
1962
  });
1960
- var InnerContainer = styled.div(_templateObject2$l || (_templateObject2$l = _taggedTemplateLiteral(["\n // display: flex;\n // flex-direction: column;\n // overflow: auto;\n // flex: 1;\n // align-items: center;\n // justify-content: center;\n // flex-grow: 1;\n // background: green;\n // // min-height: 100px;\n\n display: grid;\n place-items: center;\n overflow: auto;\n flex: 1;\n"])));
1961
- var InnerContainerWrapper = styled.div(_templateObject3$a || (_templateObject3$a = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n overflow: auto;\n flex: 1;\n justify-content: center;\n min-height: ", "px;\n height: ", "px;\n min-width: ", "px;\n width: ", "px;\n"])), function (_ref2) {
1963
+ var InnerContainer = styled.div(_templateObject2$l || (_templateObject2$l = _taggedTemplateLiteral(["\n // display: flex;\n // flex-direction: column;\n // overflow: auto;\n // flex: 1;\n // align-items: center;\n // justify-content: center;\n // flex-grow: 1;\n // background: green;\n // // min-height: 100px;\n\n display: grid;\n place-items: center;\n overflow: auto;\n flex: 1;\n position: relative;\n"])));
1964
+ var InnerContainerWrapper = styled.div(_templateObject3$b || (_templateObject3$b = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n overflow: auto;\n flex: 1;\n justify-content: center;\n min-height: ", "px;\n height: ", "px;\n min-width: ", "px;\n width: ", "px;\n"])), function (_ref2) {
1962
1965
  var editorHeight = _ref2.editorHeight;
1963
1966
  return editorHeight || 500;
1964
1967
  }, function (_ref3) {
@@ -2071,7 +2074,7 @@ var propTypes$u = {
2071
2074
  };
2072
2075
 
2073
2076
  var _templateObject$p;
2074
- var StyledContainer$6 = styled.div(_templateObject$p || (_templateObject$p = _taggedTemplateLiteral(["\n border: 1px solid ", ";\n border-radius: 8px;\n background-color: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n display: flex;\n align-items: center;\n justify-content: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n cursor: ", ";\n gap: ", ";\n opacity: ", ";\n pointer-events: ", ";\n"])), theme.color.gray_200, theme.color.white, function (_ref) {
2077
+ var StyledContainer$6 = styled.div(_templateObject$p || (_templateObject$p = _taggedTemplateLiteral(["\n border: 1px solid ", ";\n border-radius: 8px;\n background-color: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n display: flex;\n align-items: center;\n justify-content: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n cursor: ", ";\n gap: ", ";\n opacity: ", ";\n pointer-events: ", ";\n position: relative;\n"])), theme.color.gray_200, theme.color.white, function (_ref) {
2075
2078
  var _ref$height = _ref.height,
2076
2079
  height = _ref$height === void 0 ? 40 : _ref$height;
2077
2080
  return "".concat(height, "px");
@@ -2125,14 +2128,14 @@ var propTypes$t = {
2125
2128
  disabled: PropTypes.bool
2126
2129
  };
2127
2130
 
2128
- var _templateObject$o, _templateObject2$j, _templateObject3$9, _templateObject4$4, _templateObject5$2, _templateObject6;
2131
+ var _templateObject$o, _templateObject2$j, _templateObject3$a, _templateObject4$4, _templateObject5$2, _templateObject6;
2129
2132
  var Wrapper = styled.div(_templateObject$o || (_templateObject$o = _taggedTemplateLiteral(["\n position: relative;\n display: inline-block;\n cursor: ", ";\n"])), function (_ref) {
2130
2133
  var disabled = _ref.disabled;
2131
2134
  return disabled ? 'not-allowed' : 'pointer';
2132
2135
  });
2133
2136
  var TooltipText = styled.div(_templateObject2$j || (_templateObject2$j = _taggedTemplateLiteral(["\n visibility: hidden;\n background-color: rgba(0, 0, 0, 0.7);\n color: white;\n text-align: center;\n padding: 4px 10px;\n border-radius: 4px;\n position: absolute;\n z-index: 9999;\n white-space: nowrap;\n opacity: 0;\n transition: all 0.1s;\n font-size: 13px;\n font-family: ", ";\n font-weight: ", ";\n\n ", "\n ", "\n ", "\n ", "\n\n ", ":hover & {\n visibility: visible;\n opacity: 1;\n }\n"])), theme.fonts.primary, theme.fontWeights[400], function (_ref2) {
2134
2137
  var position = _ref2.position;
2135
- return position === 'top' && css(_templateObject3$9 || (_templateObject3$9 = _taggedTemplateLiteral(["\n bottom: 110%;\n left: 50%;\n transform: translateX(-50%);\n "])));
2138
+ return position === 'top' && css(_templateObject3$a || (_templateObject3$a = _taggedTemplateLiteral(["\n bottom: 110%;\n left: 50%;\n transform: translateX(-50%);\n "])));
2136
2139
  }, function (_ref3) {
2137
2140
  var position = _ref3.position;
2138
2141
  return position === 'right' && css(_templateObject4$4 || (_templateObject4$4 = _taggedTemplateLiteral(["\n top: 50%;\n left: 105%;\n transform: translateY(-50%);\n "])));
@@ -2213,10 +2216,10 @@ var propTypes$s = {
2213
2216
  tooltip: PropTypes.string
2214
2217
  };
2215
2218
 
2216
- var _templateObject$n, _templateObject2$i, _templateObject3$8, _templateObject4$3;
2219
+ var _templateObject$n, _templateObject2$i, _templateObject3$9, _templateObject4$3;
2217
2220
  var DropDownItem = styled.div(_templateObject$n || (_templateObject$n = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n"])));
2218
2221
  var IconWrapper$3 = styled.img(_templateObject2$i || (_templateObject2$i = _taggedTemplateLiteral(["\n object-fit: contain;\n"])));
2219
- var DropDownList = styled.div(_templateObject3$8 || (_templateObject3$8 = _taggedTemplateLiteral(["\n position: absolute;\n left: 0;\n top: 50;\n background-color: white;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 10;\n width: 100%;\n max-height: 200px;\n overflow-y: auto;\n z-index: 9999;\n"])));
2222
+ var DropDownList = styled.div(_templateObject3$9 || (_templateObject3$9 = _taggedTemplateLiteral(["\n position: absolute;\n left: 0;\n top: 50;\n background-color: white;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 10;\n width: 100%;\n max-height: 200px;\n overflow-y: auto;\n z-index: 9999;\n"])));
2220
2223
 
2221
2224
  // Individual option in the dropdown
2222
2225
  var DropDownOption = styled.div(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteral(["\n padding: 8px 16px;\n cursor: pointer;\n font-size: 14px;\n color: #333;\n &:hover {\n background-color: #f0f0f0;\n }\n &:active {\n background-color: #e0e0e0;\n }\n"])));
@@ -2287,9 +2290,10 @@ var DropDown = function DropDown(_ref) {
2287
2290
  };
2288
2291
  DropDown.propTypes = propTypes$s;
2289
2292
 
2290
- var _templateObject$m, _templateObject2$h;
2293
+ var _templateObject$m, _templateObject2$h, _templateObject3$8;
2291
2294
  var Label$1 = styled.p(_templateObject$m || (_templateObject$m = _taggedTemplateLiteral(["\n color: ", ";\n font-size: 14px;\n font-weight: ", ";\n font-family: ", ";\n"])), theme.color.gray_700, theme.fontWeights[400], theme.fonts.primary);
2292
2295
  var RowContainer$4 = styled.div(_templateObject2$h || (_templateObject2$h = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: row;\n align-items: center;\n flex-wrap: wrap;\n gap: 2px;\n"])));
2296
+ var RemoveButton = styled.div(_templateObject3$8 || (_templateObject3$8 = _taggedTemplateLiteral(["\n height: 20px;\n width: 20px;\n border-radius: 20px;\n position: absolute;\n right: -7px;\n top: -7px;\n background: #ff4d4d;\n display: flex;\n align-items: center;\n justify-content: center;\n"])));
2293
2297
 
2294
2298
  var propTypes$r = {
2295
2299
  backgroundColor: PropTypes.string,
@@ -2931,7 +2935,9 @@ var TemplateToolBar = function TemplateToolBar(_ref) {
2931
2935
  setLoadingUploadImage = _ref.setLoadingUploadImage,
2932
2936
  cuttingGuideStroke = _ref.cuttingGuideStroke,
2933
2937
  cuttingGuideStrokeColor = _ref.cuttingGuideStrokeColor,
2934
- onChangeCuttingGuideProp = _ref.onChangeCuttingGuideProp;
2938
+ onChangeCuttingGuideProp = _ref.onChangeCuttingGuideProp,
2939
+ canvasBackgroundImage = _ref.canvasBackgroundImage,
2940
+ onRemoveBackgroundImage = _ref.onRemoveBackgroundImage;
2935
2941
  var selectBackgroundColor = function selectBackgroundColor(e) {
2936
2942
  onSetBackgroundColor(e);
2937
2943
  };
@@ -3003,8 +3009,19 @@ var TemplateToolBar = function TemplateToolBar(_ref) {
3003
3009
  onClick: handleBackgroundUpload,
3004
3010
  tooltip: TEXT_DICTIONARY === null || TEXT_DICTIONARY === void 0 || (_TEXT_DICTIONARY$lang3 = TEXT_DICTIONARY[languageLocale]) === null || _TEXT_DICTIONARY$lang3 === void 0 ? void 0 : _TEXT_DICTIONARY$lang3.BACKGROUND_IMAGE,
3005
3011
  tooltipPosition: 'bottom'
3012
+ }, canvasBackgroundImage && /*#__PURE__*/React.createElement(RemoveButton, {
3013
+ onClick: function onClick(e) {
3014
+ onRemoveBackgroundImage && onRemoveBackgroundImage();
3015
+ e.stopPropagation();
3016
+ }
3006
3017
  }, /*#__PURE__*/React.createElement(StyledImage, {
3007
- src: IconBackgroundImage
3018
+ src: IconCross,
3019
+ height: 15,
3020
+ width: 15
3021
+ })), /*#__PURE__*/React.createElement(StyledImage, {
3022
+ src: (canvasBackgroundImage === null || canvasBackgroundImage === void 0 ? void 0 : canvasBackgroundImage.src) || IconBackgroundImage,
3023
+ height: 24,
3024
+ width: 24
3008
3025
  })), /*#__PURE__*/React.createElement(OpacityPicker, {
3009
3026
  tooltip: TEXT_DICTIONARY === null || TEXT_DICTIONARY === void 0 || (_TEXT_DICTIONARY$lang4 = TEXT_DICTIONARY[languageLocale]) === null || _TEXT_DICTIONARY$lang4 === void 0 ? void 0 : _TEXT_DICTIONARY$lang4.BACKGROUND_IMAGE_OPACITY,
3010
3027
  gap: 10,
@@ -3484,7 +3501,8 @@ var TopToolBar = function TopToolBar(_ref) {
3484
3501
  setLoadingUploadImage = _ref.setLoadingUploadImage,
3485
3502
  cuttingGuideStroke = _ref.cuttingGuideStroke,
3486
3503
  cuttingGuideStrokeColor = _ref.cuttingGuideStrokeColor,
3487
- onChangeCuttingGuideProp = _ref.onChangeCuttingGuideProp;
3504
+ onChangeCuttingGuideProp = _ref.onChangeCuttingGuideProp,
3505
+ onRemoveBackgroundImage = _ref.onRemoveBackgroundImage;
3488
3506
  return /*#__PURE__*/React.createElement(ToolBarWrapper, {
3489
3507
  disabled: selectedElement && !(selectedElement !== null && selectedElement !== void 0 && selectedElement.draggable)
3490
3508
  }, selectedElement && !(selectedElement !== null && selectedElement !== void 0 && selectedElement.draggable) && /*#__PURE__*/React.createElement(OverlayBlocker, {
@@ -3505,7 +3523,8 @@ var TopToolBar = function TopToolBar(_ref) {
3505
3523
  setLoadingUploadImage: setLoadingUploadImage,
3506
3524
  cuttingGuideStroke: cuttingGuideStroke,
3507
3525
  cuttingGuideStrokeColor: cuttingGuideStrokeColor,
3508
- onChangeCuttingGuideProp: onChangeCuttingGuideProp
3526
+ onChangeCuttingGuideProp: onChangeCuttingGuideProp,
3527
+ onRemoveBackgroundImage: onRemoveBackgroundImage
3509
3528
  }) : selectedTab === (sideBarpillsList === null || sideBarpillsList === void 0 ? void 0 : sideBarpillsList.text) ? /*#__PURE__*/React.createElement(TextToolBar, {
3510
3529
  fontFamily: isElementOfSameType(selectedElement, elementTypes.text) ? selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.fontFamily : defaultTextProps === null || defaultTextProps === void 0 ? void 0 : defaultTextProps.fontFamily,
3511
3530
  fontSize: isElementOfSameType(selectedElement, elementTypes.text) ? selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.fontSize : defaultTextProps === null || defaultTextProps === void 0 ? void 0 : defaultTextProps.fontSize,
@@ -4641,7 +4660,8 @@ var Editor = function Editor(_ref) {
4641
4660
  cuttingGuideStrokeColor = _ref.cuttingGuideStrokeColor,
4642
4661
  onChangeCuttingGuideProp = _ref.onChangeCuttingGuideProp,
4643
4662
  onSave = _ref.onSave,
4644
- saveButtonText = _ref.saveButtonText;
4663
+ saveButtonText = _ref.saveButtonText,
4664
+ onRemoveBackgroundImage = _ref.onRemoveBackgroundImage;
4645
4665
  var transformerRef = useRef(null);
4646
4666
  useEffect(function () {
4647
4667
  if (transformerRef !== null && transformerRef !== void 0 && transformerRef.current) {
@@ -4964,7 +4984,8 @@ var Editor = function Editor(_ref) {
4964
4984
  setLoadingUploadImage: setLoadingUploadImage,
4965
4985
  cuttingGuideStroke: cuttingGuideStroke,
4966
4986
  cuttingGuideStrokeColor: cuttingGuideStrokeColor,
4967
- onChangeCuttingGuideProp: onChangeCuttingGuideProp
4987
+ onChangeCuttingGuideProp: onChangeCuttingGuideProp,
4988
+ onRemoveBackgroundImage: onRemoveBackgroundImage
4968
4989
  }), /*#__PURE__*/React.createElement(InnerContainer, null, /*#__PURE__*/React.createElement(InnerContainerWrapper, {
4969
4990
  editorHeight: editorHeight + 50,
4970
4991
  editorWidth: editorWidth
@@ -5712,7 +5733,8 @@ var Overlay = function Overlay(_ref) {
5712
5733
  background: backgroundColor,
5713
5734
  display: 'flex',
5714
5735
  alignItems: 'center',
5715
- justifyContent: 'center'
5736
+ justifyContent: 'center',
5737
+ zIndex: 99999
5716
5738
  }
5717
5739
  }, children);
5718
5740
  };
@@ -5754,6 +5776,27 @@ var LoadingSpinner = function LoadingSpinner(_ref) {
5754
5776
  };
5755
5777
  LoadingSpinner.propTypes = propTypes;
5756
5778
 
5779
+ function memoize(fn) {
5780
+ var cache = Object.create(null);
5781
+ return function (arg) {
5782
+ if (cache[arg] === undefined) cache[arg] = fn(arg);
5783
+ return cache[arg];
5784
+ };
5785
+ }
5786
+
5787
+ // eslint-disable-next-line no-undef
5788
+ var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23
5789
+
5790
+ var isPropValid = /* #__PURE__ */memoize(function (prop) {
5791
+ return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111
5792
+ /* o */
5793
+ && prop.charCodeAt(1) === 110
5794
+ /* n */
5795
+ && prop.charCodeAt(2) < 91;
5796
+ }
5797
+ /* Z+1 */
5798
+ );
5799
+
5757
5800
  /**
5758
5801
  * @typedef {Object} StudioProps
5759
5802
  * @property {string} [title]
@@ -5782,8 +5825,7 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
5782
5825
  _ref$elementsList = _ref.elementsList,
5783
5826
  elementsList = _ref$elementsList === void 0 ? defaultElements : _ref$elementsList,
5784
5827
  uploadImageCallBack = _ref.uploadImageCallBack,
5785
- _ref$customImages = _ref.customImages,
5786
- customImages = _ref$customImages === void 0 ? [] : _ref$customImages,
5828
+ customImages = _ref.customImages,
5787
5829
  _ref$defaultImages = _ref.defaultImages,
5788
5830
  defaultImages = _ref$defaultImages === void 0 ? defaultSideBarImagesList : _ref$defaultImages,
5789
5831
  disableWhiteLabel = _ref.disableWhiteLabel,
@@ -5893,7 +5935,7 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
5893
5935
  _useState46 = _slicedToArray(_useState45, 2),
5894
5936
  selectedElement = _useState46[0],
5895
5937
  setSelectedElement = _useState46[1];
5896
- var _useState47 = useState(customImages),
5938
+ var _useState47 = useState(customImages || []),
5897
5939
  _useState48 = _slicedToArray(_useState47, 2),
5898
5940
  customImagesList = _useState48[0],
5899
5941
  setCustomImagesList = _useState48[1];
@@ -5944,17 +5986,18 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
5944
5986
  }()
5945
5987
  };
5946
5988
  });
5989
+ // console.log(isPropValid('onClick'));
5947
5990
  useEffect(function () {
5948
5991
  setLanguageLocale(validateLocale(locale));
5949
5992
  }, [locale]);
5950
5993
  useEffect(function () {
5951
- setCustomImagesList(_toConsumableArray(customImages));
5994
+ setCustomImagesList(customImages);
5952
5995
  }, [customImages]);
5953
5996
  useEffect(function () {
5954
5997
  setLoadingFonts(true);
5955
- loadAllGoogleFonts().then(function (msg) {
5998
+ loadAllGoogleFonts().then(function () {
5956
5999
  // eslint-disable-next-line no-console
5957
- console.log(msg);
6000
+ // console.log(msg);
5958
6001
  })["catch"](function (err) {
5959
6002
  // eslint-disable-next-line no-console
5960
6003
  console.error('❌ Error loading fonts:', err);
@@ -5973,12 +6016,13 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
5973
6016
  var LoadImages = function LoadImages(elems) {
5974
6017
  setLoadingImages(true);
5975
6018
  preloadRelevantImages(elems).then(function (_ref2) {
5976
- var successes = _ref2.successes,
5977
- errors = _ref2.errors;
5978
- // eslint-disable-next-line no-console
5979
- console.log('✅ Loaded images:', successes);
6019
+ var errors = _ref2.errors;
5980
6020
  // eslint-disable-next-line no-console
5981
- console.log(' Failed images:', errors);
6021
+ // console.log(' Loaded images:', successes);
6022
+ if ((errors === null || errors === void 0 ? void 0 : errors.length) > 0) {
6023
+ // eslint-disable-next-line no-console
6024
+ console.log('❌ Failed images:', errors);
6025
+ }
5982
6026
  })["catch"](function (err) {
5983
6027
  // eslint-disable-next-line no-console
5984
6028
  console.error('Something went really wrong:', err);
@@ -6164,6 +6208,16 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
6164
6208
  };
6165
6209
  saveHistory([].concat(_toConsumableArray(elemClone), [newElement]));
6166
6210
  };
6211
+ var onRemoveBackgroundImage = function onRemoveBackgroundImage() {
6212
+ var elemClone = JSON.parse(JSON.stringify(elements));
6213
+ var backgroundImageIndex = elemClone.findIndex(function (e) {
6214
+ return (e === null || e === void 0 ? void 0 : e.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.backgroundImage);
6215
+ });
6216
+ if (backgroundImageIndex > -1) {
6217
+ elemClone.splice(backgroundImageIndex, 1);
6218
+ saveHistory(elemClone);
6219
+ }
6220
+ };
6167
6221
  var onChangeBackgroundImageOpacity = function onChangeBackgroundImageOpacity(val) {
6168
6222
  var backgroundImageIndex = elements === null || elements === void 0 ? void 0 : elements.findIndex(function (e) {
6169
6223
  return (e === null || e === void 0 ? void 0 : e.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.backgroundImage);
@@ -6580,7 +6634,9 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
6580
6634
  return _ref4.apply(this, arguments);
6581
6635
  };
6582
6636
  }();
6583
- return /*#__PURE__*/React.createElement(StudioWrapper, null, /*#__PURE__*/React.createElement(SideBar, {
6637
+ return /*#__PURE__*/React.createElement(StyleSheetManager, {
6638
+ shouldForwardProp: isPropValid
6639
+ }, /*#__PURE__*/React.createElement(StudioWrapper, null, /*#__PURE__*/React.createElement(SideBar, {
6584
6640
  selectedSideBarItem: selectedTab,
6585
6641
  onClickPill: onSelectedTab,
6586
6642
  languageLocale: languageLocale,
@@ -6682,11 +6738,12 @@ var Studio = /*#__PURE__*/forwardRef(function (_ref, ref) {
6682
6738
  setLoadingUploadImage: setLoadingUploadImage,
6683
6739
  onSave: onSave && onSaveProgress,
6684
6740
  saveButtonText: saveButtonText,
6685
- languageLocale: languageLocale
6741
+ languageLocale: languageLocale,
6742
+ onRemoveBackgroundImage: onRemoveBackgroundImage
6686
6743
  }), (loadingFonts || loadingImages || loadingUploadImage || loading) && /*#__PURE__*/React.createElement(Overlay, null, /*#__PURE__*/React.createElement(LoadingSpinner, {
6687
6744
  size: "60px",
6688
6745
  color: theme.color.secondary
6689
- })));
6746
+ }))));
6690
6747
  });
6691
6748
  Studio.propTypes = propTypes$A;
6692
6749
  Studio.displayName = 'Studio';