@useinsider/guido 3.0.0 → 3.1.0-beta.65e69dd

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.
Files changed (106) hide show
  1. package/dist/components/Guido.vue.js +4 -4
  2. package/dist/components/Guido.vue2.js +91 -81
  3. package/dist/components/organisms/header/EditorActions.vue.js +10 -8
  4. package/dist/components/organisms/header/EditorActions.vue2.js +41 -31
  5. package/dist/components/organisms/header/MigrationConfirmModal.vue.js +17 -0
  6. package/dist/components/organisms/header/MigrationConfirmModal.vue2.js +39 -0
  7. package/dist/components/organisms/onboarding/GenericOnboarding.vue.js +1 -1
  8. package/dist/components/organisms/onboarding/GenericOnboarding.vue2.js +1 -1
  9. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue.js +1 -1
  10. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue2.js +2 -2
  11. package/dist/composables/useToaster.js +12 -10
  12. package/dist/config/compiler/unsubscribeCompilerRules.js +14 -14
  13. package/dist/config/compiler/utils/recommendationCompilerUtils.js +29 -18
  14. package/dist/config/i18n/en/labels.json.js +8 -3
  15. package/dist/config/migrator/itemsBlockMigrator.js +135 -131
  16. package/dist/config/migrator/recommendationMigrator.js +58 -54
  17. package/dist/enums/block.js +4 -0
  18. package/dist/extensions/Blocks/Items/block.js +30 -21
  19. package/dist/extensions/Blocks/Items/iconsRegistry.js +7 -6
  20. package/dist/extensions/Blocks/Items/items.css.js +48 -0
  21. package/dist/extensions/Blocks/Recommendation/block.js +64 -34
  22. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +1 -1
  23. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +1 -1
  24. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +36 -34
  25. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +15 -12
  26. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +4 -4
  27. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +693 -144
  28. package/dist/extensions/Blocks/Recommendation/controls/customAttribute/index.js +78 -0
  29. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +15 -15
  30. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +24 -24
  31. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +2 -2
  32. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +107 -78
  33. package/dist/extensions/Blocks/Recommendation/controls/{layout/index.js → main/layoutOrientation.js} +34 -23
  34. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +2 -2
  35. package/dist/extensions/Blocks/Recommendation/controls/main/productCount.js +58 -0
  36. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +150 -64
  37. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +2 -2
  38. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +202 -200
  39. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +25 -8
  40. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +6 -5
  41. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +8 -8
  42. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +21 -21
  43. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +13 -13
  44. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +17 -17
  45. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +94 -100
  46. package/dist/extensions/Blocks/Recommendation/controls/syncInfoMessage.js +65 -0
  47. package/dist/extensions/Blocks/Recommendation/extension.js +20 -18
  48. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +5 -4
  49. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +209 -2
  50. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +135 -111
  51. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +9 -7
  52. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +63 -34
  53. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +25 -28
  54. package/dist/extensions/Blocks/Recommendation/templates/index.js +8 -8
  55. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +28 -13
  56. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +25 -44
  57. package/dist/extensions/Blocks/Recommendation/templates/utils.js +62 -38
  58. package/dist/extensions/Blocks/common-control.js +96 -39
  59. package/dist/guido.css +1 -1
  60. package/dist/src/@types/extensions/block.d.ts +2 -0
  61. package/dist/src/App.vue.d.ts +3 -1
  62. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
  63. package/dist/src/components/organisms/header/MigrationConfirmModal.vue.d.ts +6 -0
  64. package/dist/src/components/wrappers/WpModal.vue.d.ts +2 -2
  65. package/dist/src/enums/block.d.ts +4 -0
  66. package/dist/src/extensions/Blocks/Items/block.d.ts +3 -1
  67. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +4 -1
  68. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +2 -1
  69. package/dist/src/extensions/Blocks/Recommendation/constants/controlIds.d.ts +9 -1
  70. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
  71. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +10 -0
  72. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +134 -44
  73. package/dist/src/extensions/Blocks/Recommendation/controls/customAttribute/index.d.ts +105 -0
  74. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +3 -2
  75. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +5 -1
  76. package/dist/src/extensions/Blocks/Recommendation/controls/{layout/index.d.ts → main/layoutOrientation.d.ts} +3 -3
  77. package/dist/src/extensions/Blocks/Recommendation/controls/main/productCount.d.ts +28 -0
  78. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +38 -20
  79. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +6 -2
  80. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +23 -1
  81. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +8 -18
  82. package/dist/src/extensions/Blocks/Recommendation/controls/syncInfoMessage.d.ts +34 -0
  83. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +2 -0
  84. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +1 -1
  85. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +1 -1
  86. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +10 -4
  87. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +37 -2
  88. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +13 -0
  89. package/dist/src/extensions/Blocks/common-control.d.ts +29 -2
  90. package/dist/src/stores/template.d.ts +29 -0
  91. package/dist/src/utils/migrationBannerHtml.d.ts +2 -0
  92. package/dist/static/assets/info.svg.js +5 -0
  93. package/dist/static/styles/base.css.js +7 -2
  94. package/dist/static/styles/components/wide-panel.css.js +1 -0
  95. package/dist/static/styles/customEditorStyle.css.js +9 -0
  96. package/dist/static/styles/variables.css.js +3 -0
  97. package/dist/stores/template.js +15 -0
  98. package/dist/stores/toaster.js +7 -7
  99. package/dist/utils/migrationBannerHtml.js +21 -0
  100. package/package.json +3 -2
  101. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +0 -25
  102. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +0 -15
  103. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +0 -15
  104. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +0 -15
  105. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +0 -15
  106. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +0 -60
@@ -1,11 +1,13 @@
1
1
  var h = Object.defineProperty;
2
- var T = (A, e, t) => e in A ? h(A, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : A[e] = t;
3
- var m = (A, e, t) => T(A, typeof e != "symbol" ? e + "" : e, t);
4
- import P, { prepareProductRows as S } from "../../extensions/Blocks/Recommendation/templates/grid/migration.js";
5
- import { getDefaultProducts as q } from "../../extensions/Blocks/Recommendation/templates/utils.js";
6
- class w {
2
+ var T = (d, e, t) => e in d ? h(d, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : d[e] = t;
3
+ var A = (d, e, t) => T(d, typeof e != "symbol" ? e + "" : e, t);
4
+ import { BLOCK_ID as S } from "../../extensions/Blocks/Recommendation/block.js";
5
+ import P, { prepareProductRows as q } from "../../extensions/Blocks/Recommendation/templates/grid/migration.js";
6
+ import { useTemplateStore as w } from "../../stores/template.js";
7
+ import { getDefaultProducts as $ } from "../../extensions/Blocks/Recommendation/templates/utils.js";
8
+ class B {
7
9
  constructor() {
8
- m(this, "parser");
10
+ A(this, "parser");
9
11
  this.parser = new DOMParser();
10
12
  }
11
13
  migrate(e) {
@@ -13,12 +15,14 @@ class w {
13
15
  const t = this.parser.parseFromString(e, "text/html"), s = t.querySelectorAll(
14
16
  'td.ins-recommendation-v3-block-1, td.product-block[esd-handler-name*="EmailRecommendationV3"]'
15
17
  );
16
- return s.length === 0 ? e : (s.forEach((o) => {
17
- const l = o.getAttribute("id"), r = this.extractBgColor(o), i = this.extractTitle(o), u = this.extractProductRows(o), c = P.replace("{-{-TITLE-}-}", i).replace("{-{-PRODUCT_ROWS-}-}", u), a = this.parser.parseFromString(
18
- `<table id="tempDoc"><tbody><tr>${c}</tr></tbody></table>`,
18
+ return w().$patch((i) => {
19
+ i.migrations = { ...i.migrations, [S]: s.length };
20
+ }), s.length === 0 ? e : (s.forEach((i) => {
21
+ const r = i.getAttribute("id"), n = this.extractBgColor(i), u = this.extractTitle(i), c = this.extractProductRows(i), l = P.replace("{-{-TITLE-}-}", u).replace("{-{-PRODUCT_ROWS-}-}", c), a = this.parser.parseFromString(
22
+ `<table id="tempDoc"><tbody><tr>${l}</tr></tbody></table>`,
19
23
  "text/html"
20
24
  ).querySelector(".recommendation-block-v2");
21
- a && o.parentNode && (l && a.setAttribute("id", l), r && a.setAttribute("bgcolor", r), o.parentNode.replaceChild(a, o));
25
+ a && i.parentNode && (r && a.setAttribute("id", r), n && a.setAttribute("bgcolor", n), i.parentNode.replaceChild(a, i));
22
26
  }), t.documentElement.outerHTML);
23
27
  } catch (t) {
24
28
  return console.error("RecommendationMigrator failed:", t), e;
@@ -64,7 +68,7 @@ class w {
64
68
  * @returns HTML string for the title block
65
69
  */
66
70
  extractTitle(e) {
67
- var a, g;
71
+ var g, a;
68
72
  const t = e.querySelector(".ext-recommendation-title");
69
73
  if (!t)
70
74
  return this.buildTitleBlock({
@@ -76,7 +80,7 @@ class w {
76
80
  });
77
81
  const s = t.querySelector("p");
78
82
  if (!s) {
79
- const p = ((a = t.textContent) == null ? void 0 : a.trim()) || "You May Also Like!", b = t.getAttribute("align") || "center";
83
+ const p = ((g = t.textContent) == null ? void 0 : g.trim()) || "You May Also Like!", b = t.getAttribute("align") || "center";
80
84
  return this.buildTitleBlock({
81
85
  text: p,
82
86
  isBold: !0,
@@ -85,13 +89,13 @@ class w {
85
89
  styles: "font-size: 28px; color: #333333;"
86
90
  });
87
91
  }
88
- const o = ((g = s.textContent) == null ? void 0 : g.trim()) || "You May Also Like!", l = t.getAttribute("align") || s.getAttribute("align") || "center", r = s.getAttribute("style") || "", i = /font-weight\s*:\s*bold/i.test(r) || !!s.querySelector("b, strong"), u = /font-style\s*:\s*italic/i.test(r) || !!s.querySelector("i, em"), c = this.removeStyleProperties(r, ["font-weight", "font-style"]), n = this.convertInlineToBlock(c);
92
+ const o = ((a = s.textContent) == null ? void 0 : a.trim()) || "You May Also Like!", i = t.getAttribute("align") || s.getAttribute("align") || "center", r = s.getAttribute("style") || "", n = /font-weight\s*:\s*bold/i.test(r) || !!s.querySelector("b, strong"), u = /font-style\s*:\s*italic/i.test(r) || !!s.querySelector("i, em"), c = this.removeStyleProperties(r, ["font-weight", "font-style"]), l = this.convertInlineToBlock(c);
89
93
  return this.buildTitleBlock({
90
94
  text: o,
91
- isBold: i,
95
+ isBold: n,
92
96
  isItalic: u,
93
- align: l,
94
- styles: n
97
+ align: i,
98
+ styles: l
95
99
  });
96
100
  }
97
101
  /**
@@ -103,8 +107,8 @@ class w {
103
107
  const t = this.extractProductConfig(e);
104
108
  if (!t)
105
109
  return console.warn("[RecommendationMigrator] No product config found, using defaults"), this.generateProductRows(6, 3, {});
106
- const { totalCount: s, productsPerRow: o } = t, l = this.extractProductStyles(e);
107
- return this.generateProductRows(s, o, l);
110
+ const { totalCount: s, productsPerRow: o } = t, i = this.extractProductStyles(e);
111
+ return this.generateProductRows(s, o, i);
108
112
  }
109
113
  /**
110
114
  * Extracts Stripo padding/margin utility classes from a class string
@@ -152,12 +156,12 @@ class w {
152
156
  * @returns HTML string for product rows with applied styles
153
157
  */
154
158
  generateProductRows(e, t, s) {
155
- const o = q(), l = [];
156
- for (let i = 0; i < e; i++) {
157
- const u = o[i % o.length];
158
- l.push({ ...u });
159
+ const o = $(), i = [];
160
+ for (let n = 0; n < e; n++) {
161
+ const u = o[n % o.length];
162
+ i.push({ ...u });
159
163
  }
160
- let r = S(l, t);
164
+ let r = q(i, t);
161
165
  return r = this.applyExtractedStyles(r, s), r;
162
166
  }
163
167
  /**
@@ -171,30 +175,30 @@ class w {
171
175
  return console.warn("[RecommendationMigrator] No product card found, using default styles"), t;
172
176
  const o = this.extractCardBgColor(s);
173
177
  o && (t.cardBgColor = o);
174
- const l = s.querySelector(".ext-product-image");
175
- if (l) {
176
- const n = l.querySelector("img"), a = n == null ? void 0 : n.getAttribute("width"), g = l.getAttribute("style") || "", p = l.getAttribute("align") || "center", b = l.getAttribute("class") || "", d = this.extractStripoClasses(b);
177
- t.imageWidth = a || "120", t.imageAlign = p, t.imageTdStyle = g, t.imageClasses = d;
178
+ const i = s.querySelector(".ext-product-image");
179
+ if (i) {
180
+ const l = i.querySelector("img"), g = l == null ? void 0 : l.getAttribute("width"), a = i.getAttribute("style") || "", p = i.getAttribute("align") || "center", b = i.getAttribute("class") || "", m = this.extractStripoClasses(b);
181
+ t.imageWidth = g || "120", t.imageAlign = p, t.imageTdStyle = a, t.imageClasses = m;
178
182
  }
179
183
  const r = s.querySelector(".ext-product-name");
180
184
  if (r) {
181
- const n = r.querySelector("p"), a = (n == null ? void 0 : n.getAttribute("style")) || "", g = r.getAttribute("align") || "center", p = r.getAttribute("style") || "", b = r.getAttribute("class") || "", d = this.extractStripoClasses(b);
182
- t.nameStyle = a, t.nameAlign = g, t.nameTdStyle = p, t.nameClasses = d;
185
+ const l = r.querySelector("p"), g = (l == null ? void 0 : l.getAttribute("style")) || "", a = r.getAttribute("align") || "center", p = r.getAttribute("style") || "", b = r.getAttribute("class") || "", m = this.extractStripoClasses(b);
186
+ t.nameStyle = g, t.nameAlign = a, t.nameTdStyle = p, t.nameClasses = m;
183
187
  }
184
- const i = s.querySelector(".ext-product-price");
185
- if (i) {
186
- const n = i.querySelector("p"), a = (n == null ? void 0 : n.getAttribute("style")) || "", g = i.getAttribute("align") || "center", p = i.getAttribute("style") || "", b = i.getAttribute("class") || "", d = this.extractStripoClasses(b);
187
- t.priceStyle = a, t.priceAlign = g, t.priceTdStyle = p, t.priceClasses = d;
188
+ const n = s.querySelector(".ext-product-price");
189
+ if (n) {
190
+ const l = n.querySelector("p"), g = (l == null ? void 0 : l.getAttribute("style")) || "", a = n.getAttribute("align") || "center", p = n.getAttribute("style") || "", b = n.getAttribute("class") || "", m = this.extractStripoClasses(b);
191
+ t.priceStyle = g, t.priceAlign = a, t.priceTdStyle = p, t.priceClasses = m;
188
192
  }
189
193
  const u = s.querySelector(".ext-product-original-price");
190
194
  if (u) {
191
- const n = u.querySelector("p"), a = (n == null ? void 0 : n.getAttribute("style")) || "", g = u.getAttribute("align") || "center", p = u.getAttribute("style") || "", b = u.getAttribute("class") || "", d = this.extractStripoClasses(b);
192
- t.oldPriceStyle = a, t.oldPriceAlign = g, t.oldPriceTdStyle = p, t.oldPriceClasses = d;
195
+ const l = u.querySelector("p"), g = (l == null ? void 0 : l.getAttribute("style")) || "", a = u.getAttribute("align") || "center", p = u.getAttribute("style") || "", b = u.getAttribute("class") || "", m = this.extractStripoClasses(b);
196
+ t.oldPriceStyle = g, t.oldPriceAlign = a, t.oldPriceTdStyle = p, t.oldPriceClasses = m;
193
197
  }
194
198
  const c = s.querySelector(".ext-product-button");
195
199
  if (c) {
196
- const n = c.querySelector(".es-button-border"), a = c.querySelector("a.es-button"), g = (n == null ? void 0 : n.getAttribute("style")) || "", p = (a == null ? void 0 : a.getAttribute("style")) || "", b = c.getAttribute("align") || "center", d = c.getAttribute("style") || "", f = c.getAttribute("class") || "", C = this.extractStripoClasses(f), y = ((c == null ? void 0 : c.textContent) || "").trim();
197
- t.buttonBorderStyle = g, t.buttonLinkStyle = p, t.buttonAlign = b, t.buttonTdStyle = d, t.buttonClasses = C, t.buttonText = y;
200
+ const l = c.querySelector(".es-button-border"), g = c.querySelector("a.es-button"), a = (l == null ? void 0 : l.getAttribute("style")) || "", p = (g == null ? void 0 : g.getAttribute("style")) || "", b = c.getAttribute("align") || "center", m = c.getAttribute("style") || "", f = c.getAttribute("class") || "", C = this.extractStripoClasses(f), y = ((c == null ? void 0 : c.textContent) || "").trim();
201
+ t.buttonBorderStyle = a, t.buttonLinkStyle = p, t.buttonAlign = b, t.buttonTdStyle = m, t.buttonClasses = C, t.buttonText = y;
198
202
  }
199
203
  return t;
200
204
  }
@@ -215,36 +219,36 @@ class w {
215
219
  const c = `${r.getAttribute("class") || ""} ${t.imageClasses}`.trim();
216
220
  r.setAttribute("class", c);
217
221
  }
218
- const i = r.querySelector("img");
219
- i && t.imageWidth && i.setAttribute("width", t.imageWidth);
222
+ const n = r.querySelector("img");
223
+ n && t.imageWidth && n.setAttribute("width", t.imageWidth);
220
224
  }), (t.nameStyle || t.nameAlign || t.nameTdStyle || t.nameClasses) && s.querySelectorAll(".product-name").forEach((r) => {
221
225
  if (t.nameAlign && r.setAttribute("align", t.nameAlign), t.nameTdStyle && r.setAttribute("style", t.nameTdStyle), t.nameClasses) {
222
226
  const c = `${r.getAttribute("class") || ""} ${t.nameClasses}`.trim();
223
227
  r.setAttribute("class", c);
224
228
  }
225
- const i = r.querySelector("p");
226
- i && t.nameStyle && i.setAttribute("style", t.nameStyle);
229
+ const n = r.querySelector("p");
230
+ n && t.nameStyle && n.setAttribute("style", t.nameStyle);
227
231
  }), (t.priceStyle || t.priceAlign || t.priceTdStyle || t.priceClasses) && s.querySelectorAll(".product-price").forEach((r) => {
228
232
  if (t.priceAlign && r.setAttribute("align", t.priceAlign), t.priceTdStyle && r.setAttribute("style", t.priceTdStyle), t.priceClasses) {
229
233
  const c = `${r.getAttribute("class") || ""} ${t.priceClasses}`.trim();
230
234
  r.setAttribute("class", c);
231
235
  }
232
- const i = r.querySelector("p");
233
- i && t.priceStyle && i.setAttribute("style", t.priceStyle);
236
+ const n = r.querySelector("p");
237
+ n && t.priceStyle && n.setAttribute("style", t.priceStyle);
234
238
  }), (t.oldPriceStyle || t.oldPriceAlign || t.oldPriceTdStyle || t.oldPriceClasses) && s.querySelectorAll(".product-old-price").forEach((r) => {
235
239
  if (t.oldPriceAlign && r.setAttribute("align", t.oldPriceAlign), t.oldPriceTdStyle && r.setAttribute("style", t.oldPriceTdStyle), t.oldPriceClasses) {
236
240
  const c = `${r.getAttribute("class") || ""} ${t.oldPriceClasses}`.trim();
237
241
  r.setAttribute("class", c);
238
242
  }
239
- const i = r.querySelector("p");
240
- i && t.oldPriceStyle && i.setAttribute("style", t.oldPriceStyle);
243
+ const n = r.querySelector("p");
244
+ n && t.oldPriceStyle && n.setAttribute("style", t.oldPriceStyle);
241
245
  }), (t.buttonBorderStyle || t.buttonLinkStyle || t.buttonAlign || t.buttonTdStyle || t.buttonClasses) && s.querySelectorAll(".product-button").forEach((r) => {
242
246
  if (t.buttonAlign && r.setAttribute("align", t.buttonAlign), t.buttonTdStyle && r.setAttribute("style", t.buttonTdStyle), t.buttonClasses) {
243
- const n = `${r.getAttribute("class") || ""} ${t.buttonClasses}`.trim();
244
- r.setAttribute("class", n);
247
+ const l = `${r.getAttribute("class") || ""} ${t.buttonClasses}`.trim();
248
+ r.setAttribute("class", l);
245
249
  }
246
- const i = r.querySelector(".es-button-border");
247
- i && t.buttonBorderStyle && i.setAttribute("style", t.buttonBorderStyle);
250
+ const n = r.querySelector(".es-button-border");
251
+ n && t.buttonBorderStyle && n.setAttribute("style", t.buttonBorderStyle);
248
252
  const u = r.querySelector("a.es-button");
249
253
  u && (t.buttonLinkStyle && u.setAttribute("style", t.buttonLinkStyle), t.buttonText && (u.textContent = t.buttonText));
250
254
  });
@@ -270,8 +274,8 @@ class w {
270
274
  * Removes specified style properties from a style string
271
275
  */
272
276
  removeStyleProperties(e, t) {
273
- return e ? t.reduce((o, l) => {
274
- const r = new RegExp(`${l}\\s*:\\s*[^;]*;?`, "gi");
277
+ return e ? t.reduce((o, i) => {
278
+ const r = new RegExp(`${i}\\s*:\\s*[^;]*;?`, "gi");
275
279
  return o.replace(r, "");
276
280
  }, e).replace(/;\s*;/g, ";").replace(/^;|;$/g, "").trim() : "";
277
281
  }
@@ -285,9 +289,9 @@ class w {
285
289
  return /display\s*:/i.test(t) || (t = t ? `${t}; display: block` : "display: block"), t.replace(/;\s*;/g, ";").replace(/^;|;$/g, "").replace(/"/g, "'").trim();
286
290
  }
287
291
  }
288
- function k(A) {
289
- return new w().migrate(A);
292
+ function v(d) {
293
+ return new B().migrate(d);
290
294
  }
291
295
  export {
292
- k as migrateRecommendation
296
+ v as migrateRecommendation
293
297
  };
@@ -0,0 +1,4 @@
1
+ var m = /* @__PURE__ */ ((e) => (e.Items = "items-block", e.Recommendation = "recommendation-block", e))(m || {});
2
+ export {
3
+ m as BlockId
4
+ };
@@ -1,18 +1,20 @@
1
- import { useOnboardingStore as d } from "../../../stores/onboarding.js";
2
- import { Block as g, BlockCompositionType as f, ModificationDescription as o } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
3
- import { SETTINGS_ENUMS as c, DefaultConfigValues as i } from "./enums/settingsEnums.js";
4
- import { getDefaultTemplate as p } from "./template.js";
5
- import { getItemsBlockContainer as u, getItemsBlockConfig as C, getDefaultItemsBlockConfig as I } from "./utils/nodeConfigUtils.js";
6
- const y = "items-block";
7
- class B extends g {
1
+ import { BlockId as g } from "../../../enums/block.js";
2
+ import { useOnboardingStore as p } from "../../../stores/onboarding.js";
3
+ import { getMigrationBannerHtml as f } from "../../../utils/migrationBannerHtml.js";
4
+ import { Block as u, BlockCompositionType as I, ModificationDescription as o } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ import { SETTINGS_ENUMS as a, DefaultConfigValues as i } from "./enums/settingsEnums.js";
6
+ import { getDefaultTemplate as C } from "./template.js";
7
+ import { getItemsBlockContainer as y, getItemsBlockConfig as b, getDefaultItemsBlockConfig as h } from "./utils/nodeConfigUtils.js";
8
+ const c = g.Items;
9
+ class E extends u {
8
10
  getId() {
9
- return y;
11
+ return c;
10
12
  }
11
13
  getIcon() {
12
14
  return "items-icon";
13
15
  }
14
16
  getBlockCompositionType() {
15
- return f.CONTAINER;
17
+ return I.CONTAINER;
16
18
  }
17
19
  getName() {
18
20
  return this.api.translate("Items");
@@ -20,10 +22,17 @@ class B extends g {
20
22
  getDescription() {
21
23
  return this.api.translate("Items lets you display personalized products based on user behavior.");
22
24
  }
25
+ getSettingsPanelTitleHtml() {
26
+ return f(
27
+ c,
28
+ this.api.translate("Items"),
29
+ this.api.translate("This block is switched from the Old Version to the New Version. We recommend you check the Items block and test your message to ensure it works properly.")
30
+ );
31
+ }
23
32
  getTemplate() {
24
- return p({
25
- orientation: c.ORIENTATION.VERTICAL,
26
- itemsType: c.ITEMS_TYPE.CART_ITEMS,
33
+ return C({
34
+ orientation: a.ORIENTATION.VERTICAL,
35
+ itemsType: a.ITEMS_TYPE.CART_ITEMS,
27
36
  itemId: "{{Abandoned Cart Item (1) Url}}",
28
37
  currencySymbol: i.productPriceCurrencySymbolControlValue,
29
38
  currencyLocation: i.productPriceCurrencyLocationControlValue,
@@ -34,21 +43,21 @@ class B extends g {
34
43
  return !1;
35
44
  }
36
45
  onCreated(n) {
37
- const s = this.api.getDocumentModifier(), r = this.api.getDocumentRootCssNode();
38
- r.querySelector('[product-attr="imageSrc"] img') || s.modifyCss(r).appendRule('[product-attr="imageSrc"] img {object-fit: contain;}');
39
- const e = u(n);
46
+ const l = this.api.getDocumentModifier(), r = this.api.getDocumentRootCssNode();
47
+ r.querySelector('[product-attr="imageSrc"] img') || l.modifyCss(r).appendRule('[product-attr="imageSrc"] img {object-fit: contain;}');
48
+ const e = y(n);
40
49
  if (!e)
41
50
  return;
42
- const a = e.getNodeConfig(), l = a && Object.keys(a).length > 0, t = C(n);
51
+ const s = e.getNodeConfig(), m = s && Object.keys(s).length > 0, t = b(n);
43
52
  if (t != null && t.initialized)
44
- l ? t.blockInstanceId || this.api.getDocumentModifier().modifyHtml(e).setNodeConfig({ ...t, blockInstanceId: String(Date.now()) }).apply(new o("Assign block instance ID to block")) : this.api.getDocumentModifier().modifyHtml(e).setNodeConfig(t).apply(new o("Migrate legacy config to nodeConfig"));
53
+ m ? t.blockInstanceId || this.api.getDocumentModifier().modifyHtml(e).setNodeConfig({ ...t, blockInstanceId: String(Date.now()) }).apply(new o("Assign block instance ID to block")) : this.api.getDocumentModifier().modifyHtml(e).setNodeConfig(t).apply(new o("Migrate legacy config to nodeConfig"));
45
54
  else {
46
- const m = I();
47
- this.api.getDocumentModifier().modifyHtml(e).setNodeConfig(m).apply(new o("Initialize Items block with default configuration")), d().startOnboarding("itemsOnboarding");
55
+ const d = h();
56
+ this.api.getDocumentModifier().modifyHtml(e).setNodeConfig(d).apply(new o("Initialize Items block with default configuration")), p().startOnboarding("itemsOnboarding");
48
57
  }
49
58
  }
50
59
  }
51
60
  export {
52
- y as BLOCK_ID,
53
- B as ItemsBlock
61
+ c as BLOCK_ID,
62
+ E as ItemsBlock
54
63
  };
@@ -1,5 +1,6 @@
1
- import { IconsRegistry as o } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- class i extends o {
1
+ import o from "../../../static/assets/info.svg.js";
2
+ import { IconsRegistry as r } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
3
+ class s extends r {
3
4
  registerIconsSvg(t) {
4
5
  t["items-icon"] = `
5
6
  <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -19,14 +20,14 @@ class i extends o {
19
20
  </svg>
20
21
  `, t["horizontal-orientation"] = `
21
22
  <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
22
- <path d="M10 19H4C3.44772 19 3 18.5523 3 18V2C3 1.44772 3.44772 1 4 1H10V19Z" stroke="currentColor"
23
+ <path d="M10 19H4C3.44772 19 3 18.5523 3 18V2C3 1.44772 3.44772 1 4 1H10V19Z" stroke="currentColor"
23
24
  stroke-width="2" fill="none"/>
24
- <path d="M17 2V18C17 18.5523 16.5523 19 16 19H10V1H16C16.5523 1 17 1.44772 17 2Z" stroke="currentColor"
25
+ <path d="M17 2V18C17 18.5523 16.5523 19 16 19H10V1H16C16.5523 1 17 1.44772 17 2Z" stroke="currentColor"
25
26
  stroke-width="2" fill="none"/>
26
27
  </svg>
27
- `;
28
+ `, t["migration-info-icon"] = o;
28
29
  }
29
30
  }
30
31
  export {
31
- i as ItemsIconsRegistry
32
+ s as ItemsIconsRegistry
32
33
  };
@@ -17,6 +17,54 @@ const n = `/* Utils */
17
17
  .container:has(.items-controls-container) {
18
18
  padding: 0
19
19
  }
20
+
21
+ /* ─── Migration Info Box ─────────────────────────────────────────────── */
22
+ /* Shown in the settings panel title when a block was migrated from legacy */
23
+
24
+ /* Layout variables for positioning the absolutely-placed info box */
25
+ :host {
26
+ --items-migration-padding: 16px;
27
+ --items-migration-title-height: 61px;
28
+ --items-migration-box-height: 98px;
29
+ }
30
+
31
+ /* Push tabs down when info box is present inside the control panel header */
32
+ .control-panel-header:has(.items-block-migration-info) {
33
+ position: relative;
34
+ margin-bottom: calc(2 * var(--items-migration-padding) + var(--items-migration-box-height));
35
+ }
36
+
37
+ /* Info box container */
38
+ .items-block-migration-info {
39
+ display: flex;
40
+ align-items: flex-start;
41
+ gap: 8px;
42
+ padding: 12px;
43
+ background: var(--guido-color-background-onpage-message-info);
44
+ border: 1px solid var(--guido-color-border-onpage-message-info);
45
+ border-radius: 4px;
46
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.07);
47
+ position: absolute;
48
+ left: var(--items-migration-padding);
49
+ right: var(--items-migration-padding);
50
+ top: calc(var(--items-migration-padding) + var(--items-migration-title-height));
51
+ }
52
+
53
+ /* Icon — 18x19 icon inside a 24x24 bounding box (matches Figma) */
54
+ .items-block-migration-info__icon {
55
+ flex-shrink: 0;
56
+ width: 24px;
57
+ height: 24px;
58
+ }
59
+
60
+ /* Text content */
61
+ .items-block-migration-info__text {
62
+ margin: 4px 0;
63
+ white-space: normal;
64
+ font-size: 13px;
65
+ font-weight: 400;
66
+ line-height: 16px;
67
+ }
20
68
  `;
21
69
  export {
22
70
  n as default
@@ -1,35 +1,51 @@
1
- var p = Object.defineProperty;
2
- var f = (r, o, t) => o in r ? p(r, o, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[o] = t;
3
- var g = (r, o, t) => f(r, typeof o != "symbol" ? o + "" : o, t);
4
- import { Block as h, BlockCompositionType as I, ModificationDescription as _ } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { ensureMobileCssRulesExist as d } from "./controls/mobileLayout/cssRules.js";
6
- import { RecommendationConfigService as s } from "./services/configService.js";
7
- import { useRecommendationExtensionStore as u } from "./store/recommendation.js";
8
- import { getDefaultTemplate as k } from "./templates/grid/template.js";
9
- const B = "recommendation-block", c = "recommendation-block-v2", a = "recommendation-id";
10
- class y extends h {
1
+ var k = Object.defineProperty;
2
+ var I = (r, n, t) => n in r ? k(r, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[n] = t;
3
+ var u = (r, n, t) => I(r, typeof n != "symbol" ? n + "" : n, t);
4
+ import { BlockId as B } from "../../../enums/block.js";
5
+ import { getMigrationBannerHtml as _ } from "../../../utils/migrationBannerHtml.js";
6
+ import { Block as b, BlockCompositionType as R, ModificationDescription as y } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
+ import { regenerateMobileProductRows as C } from "./controls/main/utils.js";
8
+ import { ensureMobileCssRulesExist as g, setMobileLayoutOptOut as d, hasMobileLayoutOptOut as A } from "./controls/mobileLayout/cssRules.js";
9
+ import { RecommendationConfigService as c } from "./services/configService.js";
10
+ import { useRecommendationExtensionStore as p } from "./store/recommendation.js";
11
+ import { getDefaultTemplate as E } from "./templates/grid/template.js";
12
+ const f = B.Recommendation, a = "recommendation-block-v2", l = "recommendation-id";
13
+ let h = !1;
14
+ class q extends b {
11
15
  constructor() {
12
16
  super();
13
17
  /**
14
18
  * Stores the ID generated in getTemplate() so onCreated() can reuse it.
15
19
  * This avoids generating a new (different) ID in onCreated().
16
20
  */
17
- g(this, "_pendingBlockId", null);
21
+ u(this, "_pendingBlockId", null);
18
22
  }
19
23
  getId() {
20
- return B;
24
+ return f;
21
25
  }
22
26
  getIcon() {
23
27
  return "recommendation-icon";
24
28
  }
25
29
  getBlockCompositionType() {
26
- return I.CONTAINER;
30
+ return R.CONTAINER;
27
31
  }
28
32
  getName() {
29
33
  return this.api.translate("Recommendation Block");
30
34
  }
31
35
  getDescription() {
32
- return this.api.translate("Recommendation Block Title Description");
36
+ return this.api.translate(
37
+ "Recommendation lets you display personalized product recommendations to users based on their algorithm."
38
+ );
39
+ }
40
+ getSettingsPanelTitleHtml() {
41
+ return _(
42
+ f,
43
+ this.api.translate("Recommendation Block"),
44
+ this.api.translate("This block is switched from the Old Version to the New Version. We recommend you check the Recommendation block and test your message to ensure it works properly.")
45
+ );
46
+ }
47
+ allowInnerBlocksDND() {
48
+ return !1;
33
49
  }
34
50
  /**
35
51
  * Returns the template HTML for a new recommendation block.
@@ -40,7 +56,7 @@ class y extends h {
40
56
  */
41
57
  getTemplate() {
42
58
  const t = this._generateNextId();
43
- return this._pendingBlockId = t, k(t);
59
+ return this._pendingBlockId = t, E(t);
44
60
  }
45
61
  /**
46
62
  * Called when a new block is dropped into the template
@@ -52,8 +68,13 @@ class y extends h {
52
68
  onCreated(t) {
53
69
  const e = this._pendingBlockId ?? this._generateNextId();
54
70
  this._pendingBlockId = null, this._assignRecommendationId(t, e);
55
- const n = s.initializeConfig(this.api, t, { recommendationId: e }), i = u();
56
- i.setCurrentBlock(e), d(this.api), i.patchCurrentBlockConfig({ language: n.language }, { triggerRefetch: !1 });
71
+ const o = c.initializeConfig(this.api, t, { recommendationId: e }), i = p();
72
+ i.setCurrentBlock(e), g(this.api);
73
+ const s = this._getBlockElement(t);
74
+ s && (d(this.api, s, !0), C({
75
+ currentNode: t,
76
+ documentModifier: this.api.getDocumentModifier()
77
+ })), i.patchCurrentBlockConfig({ language: o.language }, { triggerRefetch: !1 });
57
78
  }
58
79
  /**
59
80
  * Called when the document changes or template is loaded
@@ -66,14 +87,23 @@ class y extends h {
66
87
  if (!(!t || !("getNodeConfig" in t))) {
67
88
  if (!this._getRecommendationId(t)) {
68
89
  const e = this._generateNextId();
69
- this._assignRecommendationId(t, e), s.hasConfig(t) && s.updateConfig(
90
+ this._assignRecommendationId(t, e), c.hasConfig(t) && c.updateConfig(
70
91
  this.api,
71
92
  t,
72
93
  { recommendationId: e },
73
94
  "Assign recommendation ID to legacy block"
74
95
  );
75
96
  }
76
- s.needsMigration(t) && this._migrateFromLegacy(t), d(this.api);
97
+ c.needsMigration(t) && this._migrateFromLegacy(t);
98
+ try {
99
+ h || (g(this.api), h = !0);
100
+ const e = c.getConfig(t), o = this._getBlockElement(t);
101
+ if (o) {
102
+ const i = !e.mobileLayoutEnabled;
103
+ A(o) !== i && d(this.api, o, i);
104
+ }
105
+ } catch {
106
+ }
77
107
  }
78
108
  }
79
109
  /**
@@ -84,7 +114,7 @@ class y extends h {
84
114
  */
85
115
  onDelete(t) {
86
116
  const e = this._getRecommendationId(t);
87
- e && u().removeBlockState(e);
117
+ e && p().removeBlockState(e);
88
118
  }
89
119
  /**
90
120
  * Generates the next unique recommendation ID by scanning all existing blocks
@@ -94,10 +124,10 @@ class y extends h {
94
124
  let t = 0;
95
125
  try {
96
126
  const e = this.api.getDocumentRoot();
97
- e && "querySelectorAll" in e && e.querySelectorAll(`.${c}`).forEach((i) => {
127
+ e && "querySelectorAll" in e && e.querySelectorAll(`.${a}`).forEach((i) => {
98
128
  if ("getAttribute" in i) {
99
- const m = i.getAttribute(a), l = m ? parseInt(m) : 0;
100
- l > t && (t = l);
129
+ const s = i.getAttribute(l), m = s ? parseInt(s) : 0;
130
+ m > t && (t = m);
101
131
  }
102
132
  });
103
133
  } catch {
@@ -111,11 +141,11 @@ class y extends h {
111
141
  * added classes via setAttribute.
112
142
  */
113
143
  _assignRecommendationId(t, e) {
114
- const n = this._getBlockElement(t);
115
- if (!n)
144
+ const o = this._getBlockElement(t);
145
+ if (!o)
116
146
  return;
117
147
  const i = this.api.getDocumentModifier();
118
- i.modifyHtml(n).setAttribute(a, e.toString()), i.apply(new _(`Assign recommendation ID ${e}`));
148
+ i.modifyHtml(o).setAttribute(l, e.toString()), i.apply(new y(`Assign recommendation ID ${e}`));
119
149
  }
120
150
  /**
121
151
  * Gets the recommendation-id from a block node
@@ -124,10 +154,10 @@ class y extends h {
124
154
  const e = this._getBlockElement(t);
125
155
  if (!e || !("getAttribute" in e))
126
156
  return null;
127
- const n = e.getAttribute(a);
128
- if (!n)
157
+ const o = e.getAttribute(l);
158
+ if (!o)
129
159
  return null;
130
- const i = parseInt(n);
160
+ const i = parseInt(o);
131
161
  return Number.isNaN(i) ? null : i;
132
162
  }
133
163
  /**
@@ -136,19 +166,19 @@ class y extends h {
136
166
  _getBlockElement(t) {
137
167
  if ("getAttribute" in t) {
138
168
  const e = t.getAttribute("class");
139
- if (e && e.includes(c))
169
+ if (e && e.includes(a))
140
170
  return t;
141
171
  }
142
- return "querySelector" in t ? t.querySelector(`.${c}`) : null;
172
+ return "querySelector" in t ? t.querySelector(`.${a}`) : null;
143
173
  }
144
174
  /**
145
175
  * Migrate configuration from legacy format
146
176
  */
147
177
  _migrateFromLegacy(t) {
148
- s.migrateFromDataAttributes(this.api, t);
178
+ c.migrateFromDataAttributes(this.api, t);
149
179
  }
150
180
  }
151
181
  export {
152
- B as BLOCK_ID,
153
- y as RecommendationBlock
182
+ f as BLOCK_ID,
183
+ q as RecommendationBlock
154
184
  };
@@ -1,4 +1,4 @@
1
- var b = /* @__PURE__ */ ((r) => (r.BUTTON = "recommendation-block-button", r.NAME = "recommendation-block-name", r.PRICE = "recommendation-block-price", r.OLD_PRICE = "recommendation-block-old-price", r.OMNIBUS_PRICE = "recommendation-block-omnibus-price", r.OMNIBUS_DISCOUNT = "recommendation-block-omnibus-discount", r.IMAGE = "recommendation-block-image", r))(b || {});
1
+ var b = /* @__PURE__ */ ((r) => (r.BUTTON = "recommendation-block-button", r.NAME = "recommendation-block-name", r.PRICE = "recommendation-block-price", r.OLD_PRICE = "recommendation-block-old-price", r.OMNIBUS_PRICE = "recommendation-block-omnibus-price", r.OMNIBUS_DISCOUNT = "recommendation-block-omnibus-discount", r.IMAGE = "recommendation-block-image", r.CUSTOM_ATTRIBUTE = "recommendation-block-custom-attribute", r))(b || {});
2
2
  export {
3
3
  b as RecommendationBlockId
4
4
  };
@@ -1,4 +1,4 @@
1
- var o = /* @__PURE__ */ ((c) => (c.BUTTON_ALIGN = "recommendation-block-button-align-control", c.BUTTON_BORDER = "recommendation-block-button-border-control", c.BUTTON_BORDER_RADIUS = "recommendation-block-button-border-radius-control", c.BUTTON_COLOR = "recommendation-block-button-color-control", c.BUTTON_FIT_TO_CONTENT = "recommendation-block-button-fit-to-content-control", c.BUTTON_FONT_FAMILY = "recommendation-block-button-font-family-control", c.BUTTON_MARGINS = "recommendation-block-button-margins-control", c.BUTTON_PADDINGS = "recommendation-block-button-paddings-control", c.BUTTON_TEXT = "recommendation-block-button-text-control", c.BUTTON_TEXT_SIZE = "recommendation-block-button-text-size-control", c.BUTTON_TEXT_STYLE_AND_FONT_COLOR = "recommendation-block-button-text-style-and-font-color-control", c.NAME_ALIGN = "recommendation-block-name-align-control", c.NAME_BACKGROUND = "recommendation-block-name-background-control", c.NAME_COLOR = "recommendation-block-name-color-control", c.NAME_FONT_FAMILY = "recommendation-block-name-font-family-control", c.NAME_PADDINGS = "recommendation-block-name-paddings-control", c.NAME_SIZE = "recommendation-block-name-size-control", c.NAME_STYLE = "recommendation-block-name-style-control", c.NAME_TEXT_TRIM = "recommendation-block-name-text-trim-control", c.PRICE_ALIGN = "recommendation-block-price-align-control", c.PRICE_BACKGROUND = "recommendation-block-price-background-control", c.PRICE_COLOR = "recommendation-block-price-color-control", c.PRICE_FONT_FAMILY = "recommendation-block-price-font-family-control", c.PRICE_PADDINGS = "recommendation-block-price-paddings-control", c.PRICE_SIZE = "recommendation-block-price-size-control", c.PRICE_STYLE = "recommendation-block-price-style-control", c.OLD_PRICE_ALIGN = "recommendation-block-old-price-align-control", c.OLD_PRICE_BACKGROUND = "recommendation-block-old-price-background-control", c.OLD_PRICE_COLOR = "recommendation-block-old-price-color-control", c.OLD_PRICE_FONT_FAMILY = "recommendation-block-old-price-font-family-control", c.OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control", c.OLD_PRICE_SIZE = "recommendation-block-old-price-size-control", c.OLD_PRICE_STYLE = "recommendation-block-old-price-style-control", c.OMNIBUS_PRICE_ALIGN = "recommendation-block-omnibus-price-align-control", c.OMNIBUS_PRICE_BACKGROUND = "recommendation-block-omnibus-price-background-control", c.OMNIBUS_PRICE_COLOR = "recommendation-block-omnibus-price-color-control", c.OMNIBUS_PRICE_FONT_FAMILY = "recommendation-block-omnibus-price-font-family-control", c.OMNIBUS_PRICE_PADDINGS = "recommendation-block-omnibus-price-paddings-control", c.OMNIBUS_PRICE_SIZE = "recommendation-block-omnibus-price-size-control", c.OMNIBUS_PRICE_STYLE = "recommendation-block-omnibus-price-style-control", c.OMNIBUS_PRICE_TEXT_BEFORE = "recommendation-block-omnibus-price-text-before-control", c.OMNIBUS_PRICE_TEXT_AFTER = "recommendation-block-omnibus-price-text-after-control", c.OMNIBUS_DISCOUNT_ALIGN = "recommendation-block-omnibus-discount-align-control", c.OMNIBUS_DISCOUNT_BACKGROUND = "recommendation-block-omnibus-discount-background-control", c.OMNIBUS_DISCOUNT_COLOR = "recommendation-block-omnibus-discount-color-control", c.OMNIBUS_DISCOUNT_FONT_FAMILY = "recommendation-block-omnibus-discount-font-family-control", c.OMNIBUS_DISCOUNT_PADDINGS = "recommendation-block-omnibus-discount-paddings-control", c.OMNIBUS_DISCOUNT_SIZE = "recommendation-block-omnibus-discount-size-control", c.OMNIBUS_DISCOUNT_STYLE = "recommendation-block-omnibus-discount-style-control", c.OMNIBUS_DISCOUNT_TEXT_BEFORE = "recommendation-block-omnibus-discount-text-before-control", c.OMNIBUS_DISCOUNT_TEXT_AFTER = "recommendation-block-omnibus-discount-text-after-control", c.IMAGE_SIZE = "recommendation-block-image-size-control", c.IMAGE_MARGINS = "recommendation-block-image-margins-control", c))(o || {});
1
+ var o = /* @__PURE__ */ ((c) => (c.BUTTON_ALIGN = "recommendation-block-button-align-control", c.BUTTON_BORDER = "recommendation-block-button-border-control", c.BUTTON_BORDER_RADIUS = "recommendation-block-button-border-radius-control", c.BUTTON_COLOR = "recommendation-block-button-color-control", c.BUTTON_FIT_TO_CONTENT = "recommendation-block-button-fit-to-content-control", c.BUTTON_FONT_FAMILY = "recommendation-block-button-font-family-control", c.BUTTON_MARGINS = "recommendation-block-button-margins-control", c.BUTTON_PADDINGS = "recommendation-block-button-paddings-control", c.BUTTON_TEXT = "recommendation-block-button-text-control", c.BUTTON_TEXT_SIZE = "recommendation-block-button-text-size-control", c.BUTTON_TEXT_STYLE_AND_FONT_COLOR = "recommendation-block-button-text-style-and-font-color-control", c.NAME_ALIGN = "recommendation-block-name-align-control", c.NAME_BACKGROUND = "recommendation-block-name-background-control", c.NAME_COLOR = "recommendation-block-name-color-control", c.NAME_FONT_FAMILY = "recommendation-block-name-font-family-control", c.NAME_PADDINGS = "recommendation-block-name-paddings-control", c.NAME_SIZE = "recommendation-block-name-size-control", c.NAME_STYLE = "recommendation-block-name-style-control", c.NAME_TEXT_TRIM = "recommendation-block-name-text-trim-control", c.PRICE_ALIGN = "recommendation-block-price-align-control", c.PRICE_BACKGROUND = "recommendation-block-price-background-control", c.PRICE_COLOR = "recommendation-block-price-color-control", c.PRICE_FONT_FAMILY = "recommendation-block-price-font-family-control", c.PRICE_PADDINGS = "recommendation-block-price-paddings-control", c.PRICE_SIZE = "recommendation-block-price-size-control", c.PRICE_STYLE = "recommendation-block-price-style-control", c.OLD_PRICE_ALIGN = "recommendation-block-old-price-align-control", c.OLD_PRICE_BACKGROUND = "recommendation-block-old-price-background-control", c.OLD_PRICE_COLOR = "recommendation-block-old-price-color-control", c.OLD_PRICE_FONT_FAMILY = "recommendation-block-old-price-font-family-control", c.OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control", c.OLD_PRICE_SIZE = "recommendation-block-old-price-size-control", c.OLD_PRICE_STYLE = "recommendation-block-old-price-style-control", c.OMNIBUS_PRICE_ALIGN = "recommendation-block-omnibus-price-align-control", c.OMNIBUS_PRICE_BACKGROUND = "recommendation-block-omnibus-price-background-control", c.OMNIBUS_PRICE_COLOR = "recommendation-block-omnibus-price-color-control", c.OMNIBUS_PRICE_FONT_FAMILY = "recommendation-block-omnibus-price-font-family-control", c.OMNIBUS_PRICE_PADDINGS = "recommendation-block-omnibus-price-paddings-control", c.OMNIBUS_PRICE_SIZE = "recommendation-block-omnibus-price-size-control", c.OMNIBUS_PRICE_STYLE = "recommendation-block-omnibus-price-style-control", c.OMNIBUS_PRICE_TEXT_BEFORE = "recommendation-block-omnibus-price-text-before-control", c.OMNIBUS_PRICE_TEXT_AFTER = "recommendation-block-omnibus-price-text-after-control", c.OMNIBUS_DISCOUNT_ALIGN = "recommendation-block-omnibus-discount-align-control", c.OMNIBUS_DISCOUNT_BACKGROUND = "recommendation-block-omnibus-discount-background-control", c.OMNIBUS_DISCOUNT_COLOR = "recommendation-block-omnibus-discount-color-control", c.OMNIBUS_DISCOUNT_FONT_FAMILY = "recommendation-block-omnibus-discount-font-family-control", c.OMNIBUS_DISCOUNT_PADDINGS = "recommendation-block-omnibus-discount-paddings-control", c.OMNIBUS_DISCOUNT_SIZE = "recommendation-block-omnibus-discount-size-control", c.OMNIBUS_DISCOUNT_STYLE = "recommendation-block-omnibus-discount-style-control", c.OMNIBUS_DISCOUNT_TEXT_BEFORE = "recommendation-block-omnibus-discount-text-before-control", c.OMNIBUS_DISCOUNT_TEXT_AFTER = "recommendation-block-omnibus-discount-text-after-control", c.IMAGE_SIZE = "recommendation-block-image-size-control", c.IMAGE_MARGINS = "recommendation-block-image-margins-control", c.CUSTOM_ATTR_ALIGN = "recommendation-block-custom-attr-align-control", c.CUSTOM_ATTR_BACKGROUND = "recommendation-block-custom-attr-background-control", c.CUSTOM_ATTR_COLOR = "recommendation-block-custom-attr-color-control", c.CUSTOM_ATTR_FONT_FAMILY = "recommendation-block-custom-attr-font-family-control", c.CUSTOM_ATTR_PADDINGS = "recommendation-block-custom-attr-paddings-control", c.CUSTOM_ATTR_SIZE = "recommendation-block-custom-attr-size-control", c.CUSTOM_ATTR_STYLE = "recommendation-block-custom-attr-style-control", c.SYNC_INFO_MESSAGE = "recommendation-block-sync-info-message", c))(o || {});
2
2
  export {
3
3
  o as RecommendationControlId
4
4
  };