labellife-design-tool 2.1.8 → 2.2.0

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/cjs/index.js CHANGED
@@ -1429,6 +1429,31 @@ var _excluded$5 = ["mimeType", "quality", "dpi", "dpiMetadata"],
1429
1429
  _excluded2$1 = ["mimeType", "quality"],
1430
1430
  _excluded3$1 = ["fileName"],
1431
1431
  _excluded4 = ["fileName"];
1432
+
1433
+ // Detect embedded base64 data URLs (data:...;base64,...).
1434
+ // These bloat exported JSON significantly (a single image can be 1MB+).
1435
+ // Regular http/https/blob URLs are preserved.
1436
+ var isBase64DataUrl = function isBase64DataUrl(v) {
1437
+ return typeof v === 'string' && v.startsWith('data:') && v.includes(';base64,');
1438
+ };
1439
+ var _stripBase64FromElement = function stripBase64FromElement(el) {
1440
+ var out = _objectSpread2({}, el);
1441
+ if (isBase64DataUrl(out.src)) out.src = '';
1442
+ if (isBase64DataUrl(out.clipSrc)) out.clipSrc = '';
1443
+ if (Array.isArray(out.children)) {
1444
+ out.children = out.children.map(_stripBase64FromElement);
1445
+ }
1446
+ return out;
1447
+ };
1448
+ var stripBase64FromExport = function stripBase64FromExport(data) {
1449
+ return _objectSpread2(_objectSpread2({}, data), {}, {
1450
+ pages: (data.pages || []).map(function (page) {
1451
+ return _objectSpread2(_objectSpread2({}, page), {}, {
1452
+ children: (page.children || []).map(_stripBase64FromElement)
1453
+ });
1454
+ })
1455
+ });
1456
+ };
1432
1457
  var Font = mobxStateTree.types.model('Font', {
1433
1458
  fontFamily: mobxStateTree.types.string,
1434
1459
  url: mobxStateTree.types.optional(mobxStateTree.types.string, ''),
@@ -2133,8 +2158,11 @@ var Store = mobxStateTree.types.model('Store', {
2133
2158
  saveAsJSON: function saveAsJSON() {
2134
2159
  var _ref0 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
2135
2160
  _ref0$fileName = _ref0.fileName,
2136
- fileName = _ref0$fileName === void 0 ? 'design.json' : _ref0$fileName;
2137
- var json = JSON.stringify(self.toJSON(), null, 2);
2161
+ fileName = _ref0$fileName === void 0 ? 'design.json' : _ref0$fileName,
2162
+ _ref0$stripBase = _ref0.stripBase64,
2163
+ stripBase64 = _ref0$stripBase === void 0 ? true : _ref0$stripBase;
2164
+ var data = stripBase64 ? stripBase64FromExport(self.toJSON()) : self.toJSON();
2165
+ var json = JSON.stringify(data, null, 2);
2138
2166
  var blob = new Blob([json], {
2139
2167
  type: 'application/json'
2140
2168
  });
@@ -8469,7 +8497,9 @@ var DefaultDownloadButton = mobxReactLite.observer(function (_ref9) {
8469
8497
  _useState6 = _slicedToArray(_useState5, 2),
8470
8498
  fileType = _useState6[0],
8471
8499
  setFileType = _useState6[1];
8472
- var _useState7 = React.useState(1),
8500
+ // Default quality so pixelRatio=1 (output = template's own pixel size).
8501
+ // qualityToPixelRatio(q) = q * 3, so q = 1/3 → pixelRatio = 1.
8502
+ var _useState7 = React.useState(1 / 3),
8473
8503
  _useState8 = _slicedToArray(_useState7, 2),
8474
8504
  quality = _useState8[0],
8475
8505
  setQuality = _useState8[1];
@@ -8840,7 +8870,7 @@ var Toolbar = mobxReactLite.observer(function (_ref11) {
8840
8870
  children: [/*#__PURE__*/jsxRuntime.jsxs(material.Box, {
8841
8871
  sx: _objectSpread2(_objectSpread2({}, rowSx), {}, {
8842
8872
  minHeight: 52,
8843
- borderBottom: element ? '1px solid #f0f0f0' : 'none'
8873
+ borderBottom: '1px solid #f0f0f0'
8844
8874
  }),
8845
8875
  children: [/*#__PURE__*/jsxRuntime.jsx(material.Tooltip, {
8846
8876
  title: t('toolbar.undo', 'Undo'),
@@ -8953,12 +8983,13 @@ var Toolbar = mobxReactLite.observer(function (_ref11) {
8953
8983
  }), DownloadButton && /*#__PURE__*/jsxRuntime.jsx(DownloadButton, {
8954
8984
  store: store
8955
8985
  })]
8956
- }), element && /*#__PURE__*/jsxRuntime.jsx(material.Box, {
8986
+ }), /*#__PURE__*/jsxRuntime.jsx(material.Box, {
8957
8987
  sx: _objectSpread2(_objectSpread2({}, rowSx), {}, {
8958
8988
  minHeight: 44,
8959
- backgroundColor: '#fafafa'
8989
+ backgroundColor: '#fafafa',
8990
+ visibility: element ? 'visible' : 'hidden'
8960
8991
  }),
8961
- children: /*#__PURE__*/jsxRuntime.jsx(CommonControls, {
8992
+ children: element && /*#__PURE__*/jsxRuntime.jsx(CommonControls, {
8962
8993
  element: element,
8963
8994
  store: store
8964
8995
  })