labellife-design-tool 2.2.8 → 2.2.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.
package/dist/esm/index.js CHANGED
@@ -9949,8 +9949,10 @@ var TextElementComponent = observer(function (_ref) {
9949
9949
  var scaleY = absScale.y;
9950
9950
  var cssFontStyle = element.fontStyle === 'italic' ? 'italic' : 'normal';
9951
9951
  var cssFontWeight = String(element.fontWeight || 'normal');
9952
+ var originalText = element.text;
9952
9953
  var textarea = document.createElement('textarea');
9953
- textarea.value = element.text;
9954
+ textarea.value = '';
9955
+ textarea.placeholder = originalText;
9954
9956
  textarea.style.position = 'absolute';
9955
9957
  textarea.style.top = "".concat(textPosition.y, "px");
9956
9958
  textarea.style.left = "".concat(textPosition.x, "px");
@@ -9983,15 +9985,21 @@ var TextElementComponent = observer(function (_ref) {
9983
9985
  textarea.style.wordBreak = 'break-word';
9984
9986
  textarea.style.minHeight = '0';
9985
9987
  textarea.style.minWidth = '0';
9988
+
9989
+ // Placeholder inherits the element's text color at 40% opacity
9990
+ var placeholderStyle = document.createElement('style');
9991
+ placeholderStyle.textContent = "\n textarea:placeholder-shown { opacity: 1; }\n textarea::placeholder { color: ".concat(element.fill, "; opacity: 0.4; }\n ");
9992
+ stageContainer.appendChild(placeholderStyle);
9986
9993
  stageContainer.appendChild(textarea);
9987
9994
  textarea.focus();
9988
- textarea.select();
9989
9995
  var removed = false;
9990
9996
  var removeTextarea = function removeTextarea() {
9997
+ var cancel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
9991
9998
  if (removed) return;
9992
9999
  removed = true;
10000
+ var newText = !cancel && textarea.value.length > 0 ? textarea.value : originalText;
9993
10001
  element.set({
9994
- text: textarea.value
10002
+ text: newText
9995
10003
  });
9996
10004
  element.toggleEditMode(false);
9997
10005
  if (grp) grp.show();
@@ -9999,12 +10007,15 @@ var TextElementComponent = observer(function (_ref) {
9999
10007
  if (textarea.parentNode) {
10000
10008
  textarea.parentNode.removeChild(textarea);
10001
10009
  }
10010
+ if (placeholderStyle.parentNode) {
10011
+ placeholderStyle.parentNode.removeChild(placeholderStyle);
10012
+ }
10002
10013
  };
10003
- textarea.addEventListener('blur', removeTextarea);
10014
+ textarea.addEventListener('blur', function () {
10015
+ return removeTextarea(false);
10016
+ });
10004
10017
  textarea.addEventListener('keydown', function (e) {
10005
- if (e.key === 'Escape') {
10006
- removeTextarea();
10007
- }
10018
+ if (e.key === 'Escape') removeTextarea(true);
10008
10019
  });
10009
10020
  };
10010
10021