@useinsider/guido 2.0.0-beta.d170da6 → 2.0.0-beta.da696d5

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 (113) hide show
  1. package/README.md +2 -0
  2. package/dist/@types/config/schemas.js +3 -1
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +15 -17
  5. package/dist/composables/useStripo.js +40 -40
  6. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +69 -153
  7. package/dist/extensions/Blocks/Recommendation/constants.js +1 -9
  8. package/dist/extensions/Blocks/Recommendation/control.js +59 -74
  9. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +13 -0
  10. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +13 -0
  11. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +13 -0
  12. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +13 -0
  13. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +13 -0
  14. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +13 -0
  15. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +13 -0
  16. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +13 -0
  17. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +13 -0
  18. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +13 -0
  19. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +13 -0
  20. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +13 -0
  21. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +13 -0
  22. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +13 -0
  23. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +13 -0
  24. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +13 -0
  25. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +13 -0
  26. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +13 -0
  27. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +13 -0
  28. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +13 -0
  29. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +13 -0
  30. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +13 -0
  31. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +13 -0
  32. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +13 -0
  33. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +13 -0
  34. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +13 -0
  35. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +13 -0
  36. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +13 -0
  37. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +13 -0
  38. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +13 -0
  39. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +13 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +13 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +13 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +13 -0
  43. package/dist/extensions/Blocks/Recommendation/extension.js +42 -16
  44. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +72 -117
  45. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +64 -85
  46. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +17 -54
  47. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +45 -74
  48. package/dist/guido.css +1 -1
  49. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +52 -47
  50. package/dist/services/stripoApi.js +6 -10
  51. package/dist/src/@types/config/schemas.d.ts +4 -0
  52. package/dist/src/composables/useConfig.d.ts +2 -0
  53. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +3 -50
  54. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +0 -32
  55. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +2 -5
  56. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  57. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  58. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  59. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  60. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  61. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  62. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  63. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  64. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  65. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  66. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  67. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +5 -0
  68. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +5 -0
  69. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  70. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  71. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  72. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  73. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  74. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  75. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  76. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +5 -0
  77. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +5 -0
  78. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +5 -0
  79. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +5 -0
  80. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +5 -0
  81. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +5 -0
  82. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +5 -0
  83. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +5 -0
  84. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +5 -0
  85. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +5 -0
  86. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +5 -0
  87. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +5 -0
  88. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +5 -0
  89. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +5 -0
  90. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +3 -3
  91. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +7 -15
  92. package/dist/src/stores/config.d.ts +17 -0
  93. package/dist/static/styles/components/wide-panel.css.js +4 -0
  94. package/dist/static/styles/customEditorStyle.css.js +0 -13
  95. package/package.json +1 -1
  96. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +0 -68
  97. package/dist/extensions/Blocks/Recommendation/controls/index.js +0 -245
  98. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +0 -74
  99. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.js +0 -71
  100. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.js +0 -71
  101. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.js +0 -71
  102. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.js +0 -71
  103. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +0 -188
  104. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +0 -25
  105. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +0 -25
  106. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +0 -592
  107. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +0 -16
  108. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +0 -15
  109. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +0 -15
  110. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +0 -15
  111. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +0 -15
  112. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +0 -60
  113. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +0 -19
@@ -1,7 +1,6 @@
1
- import { ATTR_PRODUCT_BUTTON as o, ATTR_PRODUCT_OMNIBUS_DISCOUNT as a, ATTR_PRODUCT_OMNIBUS_PRICE as s, ATTR_PRODUCT_OLD_PRICE as l, ATTR_PRODUCT_PRICE as c, ATTR_PRODUCT_NAME as r, ATTR_PRODUCT_IMAGE as d } from "../constants.js";
2
- import { prepareProductRows as i } from "./templateUtils.js";
3
- import { DEFAULTS as k, getDefaultProducts as f } from "./templateUtils.js";
4
- const g = `
1
+ import { prepareProductRows as n } from "./templateUtils.js";
2
+ import { DEFAULTS as i, getDefaultProducts as p } from "./templateUtils.js";
3
+ const a = `
5
4
  <td
6
5
  align="left"
7
6
  esd-extension-block-id="recommendation-block"
@@ -55,8 +54,8 @@ const g = `
55
54
  </tr>
56
55
  </table>
57
56
  </td>
58
- `, p = {
59
- [d]: (t) => `
57
+ `, l = {
58
+ productImage: (t) => `
60
59
  <tr>
61
60
  <td
62
61
  class="esd-block-image product-image"
@@ -74,7 +73,7 @@ const g = `
74
73
  </td>
75
74
  </tr>
76
75
  `,
77
- [r]: (t) => `
76
+ productName: (t) => `
78
77
  <tr>
79
78
  <td
80
79
  class="esd-block-text product-name"
@@ -89,7 +88,7 @@ const g = `
89
88
  </td>
90
89
  </tr>
91
90
  `,
92
- [c]: () => `
91
+ productPrice: () => `
93
92
  <tr>
94
93
  <td
95
94
  class="esd-block-text product-price"
@@ -104,7 +103,7 @@ const g = `
104
103
  </td>
105
104
  </tr>
106
105
  `,
107
- [l]: () => `
106
+ productOldPrice: () => `
108
107
  <tr>
109
108
  <td
110
109
  class="esd-block-text product-old-price"
@@ -119,43 +118,7 @@ const g = `
119
118
  </td>
120
119
  </tr>
121
120
  `,
122
- [s]: () => `
123
- <tr>
124
- <td
125
- class="esd-block-text product-omnibus-price"
126
- esd-extension-block-id="recommendation-block-omnibus-price"
127
- data-text-before="Lowest 30-day price: "
128
- data-text-after=""
129
- align="center">
130
- <p
131
- path="1"
132
- contenteditable="false"
133
- style="font-size: 14px; color: #666666; text-align: center;"><span
134
- class="omnibus-text-before">Lowest 30-day price: </span><span
135
- class="omnibus-price-value">17,00 TRY</span><span
136
- class="omnibus-text-after"></span></p>
137
- </td>
138
- </tr>
139
- `,
140
- [a]: () => `
141
- <tr>
142
- <td
143
- class="esd-block-text product-omnibus-discount"
144
- esd-extension-block-id="recommendation-block-omnibus-discount"
145
- data-text-before=""
146
- data-text-after=""
147
- align="center">
148
- <p
149
- path="1"
150
- contenteditable="false"
151
- style="font-size: 14px; color: #666666; text-align: center;"><span
152
- class="omnibus-text-before"></span><span
153
- class="omnibus-discount-value">-6%</span><span
154
- class="omnibus-text-after"></span></p>
155
- </td>
156
- </tr>
157
- `,
158
- [o]: (t) => `
121
+ productButton: (t) => `
159
122
  <tr>
160
123
  <td
161
124
  class="esd-block-button product-button"
@@ -173,17 +136,17 @@ const g = `
173
136
  </tr>
174
137
  `
175
138
  };
176
- function u(t, e, n) {
177
- return i(
139
+ function d(t, e, o) {
140
+ return n(
178
141
  t,
179
142
  e,
180
- p,
181
- n
143
+ l,
144
+ o
182
145
  );
183
146
  }
184
147
  export {
185
- k as DEFAULTS,
186
- g as default,
187
- f as getDefaultProducts,
188
- u as prepareProductRows
148
+ i as DEFAULTS,
149
+ a as default,
150
+ p as getDefaultProducts,
151
+ d as prepareProductRows
189
152
  };
@@ -1,19 +1,18 @@
1
- import { ATTR_PRODUCT_IMAGE as h, ATTR_PRODUCT_NAME as C, ATTR_PRODUCT_OLD_PRICE as D, ATTR_PRODUCT_PRICE as b, ATTR_PRODUCT_OMNIBUS_PRICE as P, ATTR_PRODUCT_OMNIBUS_DISCOUNT as U, ATTR_PRODUCT_BUTTON as N } from "../constants.js";
2
- const E = {
1
+ const R = {
3
2
  TITLE: "You May Also Like!"
4
- }, I = `
3
+ }, O = `
5
4
  <tr>
6
- <td class="spacer" style="height: 10px;"></td>
5
+ <td class="spacer" style="height: 20px;"></td>
7
6
  </tr>
8
- `, A = `
9
- <tr class="recommendation-product-row">
7
+ `, w = `
8
+ <tr>
10
9
  <td>
11
10
  <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
12
11
  {-{-PRODUCTS-}-}
13
12
  </table>
14
13
  </td>
15
14
  </tr>
16
- `, o = `
15
+ `, i = `
17
16
  <td width="{-{-COLUMN_WIDTH-}-}" style="padding: 0 5px;" valign="top" height="100%">
18
17
  <table
19
18
  width="100%"
@@ -35,24 +34,14 @@ const E = {
35
34
  </tr>
36
35
  </table>
37
36
  </td>
38
- `, Y = [
39
- h,
40
- C,
41
- D,
42
- b,
43
- P,
44
- U,
45
- N
46
- ], S = {
47
- [h]: !0,
48
- [C]: !0,
49
- [b]: !0,
50
- [D]: !0,
51
- [P]: !1,
52
- [U]: !1,
53
- [N]: !0
54
- };
55
- function M() {
37
+ `, b = [
38
+ "productImage",
39
+ "productName",
40
+ "productOldPrice",
41
+ "productPrice",
42
+ "productButton"
43
+ ];
44
+ function C() {
56
45
  return [
57
46
  {
58
47
  name: "Product Name",
@@ -134,76 +123,58 @@ function M() {
134
123
  }
135
124
  ];
136
125
  }
137
- function f(a, r, e, l = Y) {
138
- const s = (100 / r).toFixed(2), p = [];
139
- for (let i = 0; i < a.length; i += r)
140
- p.push(a.slice(i, i + r));
126
+ function N(p, r, e, l = b) {
127
+ const n = (100 / r).toFixed(2), a = [];
128
+ for (let o = 0; o < p.length; o += r)
129
+ a.push(p.slice(o, o + r));
141
130
  let c = "";
142
- return p.forEach((i, w) => {
143
- w > 0 && (c += I);
144
- let n = "", u = "", d = "", T = "", m = "", _ = "", g = "";
145
- i.forEach((t) => {
146
- n += o.replace(
131
+ return a.forEach((o, _) => {
132
+ _ > 0 && (c += O);
133
+ let s = "", u = "", d = "", m = "", g = "";
134
+ o.forEach((t) => {
135
+ s += i.replace(
147
136
  "{-{-PRODUCT_CONTENT-}-}",
148
137
  e.productImage(t)
149
- ), u += o.replace(
138
+ ), u += i.replace(
150
139
  "{-{-PRODUCT_CONTENT-}-}",
151
140
  e.productName(t)
152
- ), d += o.replace(
141
+ ), d += i.replace(
153
142
  "{-{-PRODUCT_CONTENT-}-}",
154
143
  e.productPrice(t)
155
- ), T += o.replace(
144
+ ), m += i.replace(
156
145
  "{-{-PRODUCT_CONTENT-}-}",
157
146
  e.productOldPrice(t)
158
- ), m += o.replace(
159
- "{-{-PRODUCT_CONTENT-}-}",
160
- e.productOmnibusPrice(t)
161
- ), _ += o.replace(
162
- "{-{-PRODUCT_CONTENT-}-}",
163
- e.productOmnibusDiscount(t)
164
- ), g += o.replace(
147
+ ), g += i.replace(
165
148
  "{-{-PRODUCT_CONTENT-}-}",
166
149
  e.productButton(t)
167
150
  );
168
151
  });
169
- const R = {
170
- productImage: n,
152
+ const T = {
153
+ productImage: s,
171
154
  productName: u,
172
155
  productPrice: d,
173
- productOldPrice: T,
174
- productOmnibusPrice: m,
175
- productOmnibusDiscount: _,
156
+ productOldPrice: m,
176
157
  productButton: g
177
- }, y = l.filter((t) => !!R[t]).map((t) => {
178
- const O = S[t] ?? !0;
179
- return `
180
- <tr class="recommendation-attribute-row"
181
- data-attribute-type="${t}"
182
- data-visibility="${O ? "1" : "0"}"${O ? "" : ' style="display: none;"'}>
183
- ${R[t]}
184
- </tr>
185
- `;
186
- }).join("");
187
- c += A.replace("{-{-PRODUCTS-}-}", y);
188
- }), c.replaceAll("{-{-COLUMN_WIDTH-}-}", `${s}%`);
158
+ }, h = l.filter((t) => !!T[t]).map((t) => `<tr>${T[t]}</tr>`).join("");
159
+ c += w.replace("{-{-PRODUCTS-}-}", h);
160
+ }), c.replaceAll("{-{-COLUMN_WIDTH-}-}", `${n}%`);
189
161
  }
190
- function j(a, r, e, l, s = E.TITLE, p) {
191
- const c = f(
162
+ function P(p, r, e, l, n = R.TITLE, a) {
163
+ const c = N(
192
164
  r,
193
165
  e,
194
166
  l,
195
- p
167
+ a
196
168
  );
197
- return a.replace("{-{-TITLE-}-}", s).replace("{-{-PRODUCT_ROWS-}-}", c);
169
+ return p.replace("{-{-TITLE-}-}", n).replace("{-{-PRODUCT_ROWS-}-}", c);
198
170
  }
199
171
  export {
200
- E as DEFAULTS,
201
- Y as DEFAULT_CARD_COMPOSITION,
202
- S as DEFAULT_CARD_VISIBILITY,
203
- j as generateTemplate,
204
- M as getDefaultProducts,
205
- f as prepareProductRows,
206
- o as productCardWrapper,
207
- A as productRow,
208
- I as spacer
172
+ R as DEFAULTS,
173
+ b as DEFAULT_CARD_COMPOSITION,
174
+ P as generateTemplate,
175
+ C as getDefaultProducts,
176
+ N as prepareProductRows,
177
+ i as productCardWrapper,
178
+ w as productRow,
179
+ O as spacer
209
180
  };
package/dist/guido.css CHANGED
@@ -1 +1 @@
1
- .gap-16[data-v-6562e38c],.gap-16[data-v-1ccb6d4a]{gap:16px}[data-v-06e6f7a7] .in-button-v2__wrapper{line-height:0}[data-v-b5997368] .in-segments-wrapper .in-tooltip-wrapper__box{text-align:left}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history-wrapper[data-v-52a77eec]{gap:8px}.view-options-wrapper[data-v-d405ca59]{position:relative;display:inline-block}.new-tag[data-v-d405ca59]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-d405ca59] .guido__verion-history-view-option-selection-desktop svg,[data-v-d405ca59] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-d405ca59] .in-segments-wrapper__button_selected,[data-v-d405ca59] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-d405ca59] .in-tooltip-wrapper__icon{cursor:pointer}.view-options-wrapper[data-v-195ab6d4]{position:relative;display:inline-block}.new-tag[data-v-195ab6d4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-195ab6d4] .guido__view-option-selection-desktop svg,[data-v-195ab6d4] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-195ab6d4] .in-segments-wrapper__button_selected,[data-v-195ab6d4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-195ab6d4] .in-tooltip-wrapper__icon{cursor:pointer}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-282ca4d1]{position:relative;width:100%;height:calc(100vh - 128px)}.guido-editor__container[data-v-282ca4d1]{width:100%;height:calc(100vh - 128px)}.guido-editor__no-header[data-v-282ca4d1]{height:calc(100vh - 75px)}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-a86fc486]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-a86fc486]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-a86fc486]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-a86fc486]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-a86fc486]{object-fit:cover;transform:scale(1)}[data-v-bb3bb07c] .guido__verion-history-view-option-selection-desktop svg,[data-v-bb3bb07c] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-bb3bb07c] .in-segments-wrapper__button_selected,[data-v-bb3bb07c] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.error-list[data-v-7a09985c]{gap:16px}[data-v-c2adc57d] .in-progress-wrapper__progress p span:last-child{display:none!important}.desktop-preview-container[data-v-2dd60b0c],[data-v-2dd60b0c] .desktop-preview-container .in-container{min-height:720px!important;height:100%}.cropped-text[data-v-4b876c1b]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-v-d3c52b44] .vueperslides__bullets,[data-v-dd1a237a] .vueperslides__bullets{pointer-events:none!important}[data-v-dd1a237a] .vueperslides__parallax-wrapper{height:110px!important}[data-v-a408dcea] .vueperslides__bullets{pointer-events:none!important}[data-v-a408dcea] .vueperslides__parallax-wrapper{height:110px!important}
1
+ .gap-16[data-v-6562e38c],.gap-16[data-v-1ccb6d4a]{gap:16px}[data-v-06e6f7a7] .in-button-v2__wrapper{line-height:0}[data-v-b5997368] .in-segments-wrapper .in-tooltip-wrapper__box{text-align:left}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history-wrapper[data-v-52a77eec]{gap:8px}.view-options-wrapper[data-v-d405ca59]{position:relative;display:inline-block}.new-tag[data-v-d405ca59]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-d405ca59] .guido__verion-history-view-option-selection-desktop svg,[data-v-d405ca59] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-d405ca59] .in-segments-wrapper__button_selected,[data-v-d405ca59] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-d405ca59] .in-tooltip-wrapper__icon{cursor:pointer}.view-options-wrapper[data-v-195ab6d4]{position:relative;display:inline-block}.new-tag[data-v-195ab6d4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-195ab6d4] .guido__view-option-selection-desktop svg,[data-v-195ab6d4] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-195ab6d4] .in-segments-wrapper__button_selected,[data-v-195ab6d4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-195ab6d4] .in-tooltip-wrapper__icon{cursor:pointer}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-890b5336]{position:relative;width:100%;height:calc(100vh - 128px)}.guido-editor__container[data-v-890b5336]{width:100%;height:calc(100vh - 128px)}.guido-editor__no-header[data-v-890b5336]{height:calc(100vh - 75px)}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-a86fc486]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-a86fc486]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-a86fc486]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-a86fc486]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-a86fc486]{object-fit:cover;transform:scale(1)}[data-v-bb3bb07c] .guido__verion-history-view-option-selection-desktop svg,[data-v-bb3bb07c] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-bb3bb07c] .in-segments-wrapper__button_selected,[data-v-bb3bb07c] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.error-list[data-v-7a09985c]{gap:16px}[data-v-c2adc57d] .in-progress-wrapper__progress p span:last-child{display:none!important}.desktop-preview-container[data-v-2dd60b0c],[data-v-2dd60b0c] .desktop-preview-container .in-container{min-height:720px!important;height:100%}.cropped-text[data-v-4b876c1b]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-v-d3c52b44] .vueperslides__bullets,[data-v-dd1a237a] .vueperslides__bullets{pointer-events:none!important}[data-v-dd1a237a] .vueperslides__parallax-wrapper{height:110px!important}[data-v-a408dcea] .vueperslides__bullets{pointer-events:none!important}[data-v-a408dcea] .vueperslides__parallax-wrapper{height:110px!important}
@@ -23,12 +23,12 @@ ${s.map((E) => ` - ${E}`).join(`
23
23
  validateImplementation(e, r) {
24
24
  var I;
25
25
  const s = [], E = r.name, T = Object.getPrototypeOf(this);
26
- e.forEach((l) => {
27
- if (typeof this[l] != "function") {
28
- s.push(`Method ${l}() is not defined`);
26
+ e.forEach((d) => {
27
+ if (typeof this[d] != "function") {
28
+ s.push(`Method ${d}() is not defined`);
29
29
  return;
30
30
  }
31
- T[l] === r.prototype[l] && s.push(`Method ${l}() must be implemented (currently using base class error-throwing implementation)`);
31
+ T[d] === r.prototype[d] && s.push(`Method ${d}() must be implemented (currently using base class error-throwing implementation)`);
32
32
  }), u.validatedClasses.add(r), s.length > 0 ? (u.validationErrors.set(r, s), console.error(`[${E} Validation] ${E} validation failed:`, s)) : typeof process < "u" && ((I = process.env) == null ? void 0 : I.NODE_ENV) === "development" && console.log(`[${E} Validation] ✅ ${E} validated successfully`);
33
33
  }
34
34
  };
@@ -254,10 +254,10 @@ var st = {
254
254
  ...o,
255
255
  caption: "caption",
256
256
  icon: "icon"
257
- }, mt = {
257
+ }, gt = {
258
258
  ...o,
259
259
  caption: "caption"
260
- }, gt = {
260
+ }, mt = {
261
261
  ...o,
262
262
  minValue: "min-value",
263
263
  maxValue: "max-value",
@@ -292,11 +292,11 @@ var st = {
292
292
  position: "position"
293
293
  }, vt = {
294
294
  ...o
295
- }, Vt = {
295
+ }, Gt = {
296
296
  BUTTON: Ct,
297
- CHECKBOX: mt,
297
+ CHECKBOX: gt,
298
298
  COLOR: o,
299
- COUNTER: gt,
299
+ COUNTER: mt,
300
300
  LABEL: bt,
301
301
  RADIO_BUTTONS: Nt,
302
302
  SELECTPICKER: X,
@@ -344,7 +344,7 @@ var st = {
344
344
  const e = t.querySelectorAll(O.BUTTON), r = t.asElement().hasClass(U) ? [t] : [];
345
345
  return e.length ? e : r;
346
346
  }
347
- }, Gt = class extends i {
347
+ }, Vt = class extends i {
348
348
  getParentControlId() {
349
349
  return n.BLOCK_BUTTON.BORDER_RADIUS;
350
350
  }
@@ -454,20 +454,20 @@ var st = {
454
454
  }
455
455
  };
456
456
  k.REQUIRED_METHODS = ["getId", "getTemplate"];
457
- var ee = k, V = class extends x {
457
+ var ee = k, G = class extends x {
458
458
  getTargetNodes(t) {
459
459
  const e = t.querySelectorAll(O.IMAGE), r = t.asElement().hasClass(K) ? [t] : [];
460
460
  return e.length ? e : r;
461
461
  }
462
- }, re = class extends V {
462
+ }, re = class extends G {
463
463
  getParentControlId() {
464
464
  return n.BLOCK_IMAGE.EXTERNAL_INDENTS;
465
465
  }
466
- }, ne = class extends V {
466
+ }, ne = class extends G {
467
467
  getParentControlId() {
468
468
  return n.BLOCK_IMAGE.SIZE;
469
469
  }
470
- }, G = class L extends a {
470
+ }, V = class L extends a {
471
471
  constructor() {
472
472
  super(L.REQUIRED_METHODS, L);
473
473
  }
@@ -475,8 +475,8 @@ var ee = k, V = class extends x {
475
475
  throw new Error("Method registerBlockControls() must be implemented by the subclass");
476
476
  }
477
477
  };
478
- G.REQUIRED_METHODS = ["registerBlockControls"];
479
- var se = G, ae = class {
478
+ V.REQUIRED_METHODS = ["registerBlockControls"];
479
+ var se = V, ae = class {
480
480
  constructor(t, e) {
481
481
  this.tabId = t, this.controlsIds = e;
482
482
  }
@@ -499,42 +499,46 @@ var se = G, ae = class {
499
499
  const e = this.controlsIds.indexOf(t);
500
500
  e !== -1 && this.controlsIds.splice(e, 1);
501
501
  }
502
- }, d = class extends x {
502
+ }, l = class extends x {
503
503
  getTargetNodes(t) {
504
504
  const e = t.querySelectorAll(O.TEXT), r = t.asElement().hasClass(p) ? [t] : [];
505
505
  return e.length ? e : r;
506
506
  }
507
- }, ie = class extends d {
507
+ }, ie = class extends l {
508
508
  getParentControlId() {
509
509
  return n.GENERAL.TEXT_ALIGN;
510
510
  }
511
- }, oe = class extends d {
511
+ }, oe = class extends l {
512
+ getParentControlId() {
513
+ return n.BLOCK_TEXT.TEXT_BLOCK_BACKGROUND_COLOR;
514
+ }
515
+ }, Ee = class extends l {
512
516
  getParentControlId() {
513
517
  return n.GENERAL.TEXT_COLOR;
514
518
  }
515
- }, Ee = class extends d {
519
+ }, le = class extends l {
516
520
  getParentControlId() {
517
521
  return n.BLOCK_TEXT.FONT_FAMILY;
518
522
  }
519
- }, le = class extends d {
523
+ }, de = class extends l {
520
524
  getParentControlId() {
521
525
  return n.GENERAL.TEXT_LINE_SPACING;
522
526
  }
523
- }, de = class extends d {
527
+ }, ue = class extends l {
524
528
  getParentControlId() {
525
529
  return n.BLOCK_TEXT.INTERNAL_INDENTS;
526
530
  }
527
- }, ue = class extends d {
531
+ }, Ie = class extends l {
528
532
  getParentControlId() {
529
533
  return n.GENERAL.TEXT_SIZE;
530
534
  }
531
- }, Ie = class extends d {
535
+ }, Oe = class extends l {
532
536
  getParentControlId() {
533
537
  return n.GENERAL.TEXT_STYLE;
534
538
  }
535
539
  }, Ut = class {
536
- constructor(t, e, r = [], s, E = [], T, I = [], l = [], v, $, W, z, Z, j, q, J, tt) {
537
- this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.i18n = t, this.styles = e, this.previewStyles = W, this.uiElements = r, this.uiElementTagRegistry = s, this.controls = E, this.settingsPanelRegistry = T, this.contextActions = I, this.blocks = l, this.externalSmartElementsLibrary = v, this.externalImageLibrary = $, this.externalImageLibraryTab = tt, this.externalAiAssistant = z, this.externalDisplayConditionsLibrary = Z, this.externalVideoLibrary = j, this.blocksPanel = q, this.iconsRegistry = J, this.id = Math.random().toString(36).substring(2);
540
+ constructor(t, e, r = [], s, E = [], T, I = [], d = [], v, $, W, z, Z, j, q, J, tt) {
541
+ this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.i18n = t, this.styles = e, this.previewStyles = W, this.uiElements = r, this.uiElementTagRegistry = s, this.controls = E, this.settingsPanelRegistry = T, this.contextActions = I, this.blocks = d, this.externalSmartElementsLibrary = v, this.externalImageLibrary = $, this.externalImageLibraryTab = tt, this.externalAiAssistant = z, this.externalDisplayConditionsLibrary = Z, this.externalVideoLibrary = j, this.blocksPanel = q, this.iconsRegistry = J, this.id = Math.random().toString(36).substring(2);
538
542
  }
539
543
  getI18n() {
540
544
  return this.i18n;
@@ -590,7 +594,7 @@ var se = G, ae = class {
590
594
  getIconsRegistry() {
591
595
  return this.iconsRegistry;
592
596
  }
593
- }, Oe = class {
597
+ }, Te = class {
594
598
  constructor() {
595
599
  this.styles = [], this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [];
596
600
  }
@@ -685,9 +689,9 @@ var se = G, ae = class {
685
689
  }
686
690
  };
687
691
  pt.REQUIRED_METHODS = ["openAiAssistant"];
688
- var Kt = class m extends a {
692
+ var Kt = class g extends a {
689
693
  constructor() {
690
- super(m.REQUIRED_METHODS, m);
694
+ super(g.REQUIRED_METHODS, g);
691
695
  }
692
696
  /**
693
697
  * Retrieves the name of the category.
@@ -726,9 +730,9 @@ var Kt = class m extends a {
726
730
  }
727
731
  };
728
732
  Kt.REQUIRED_METHODS = ["getCategoryName", "openExternalDisplayConditionsDialog"];
729
- var Ft = class g extends a {
733
+ var Ft = class m extends a {
730
734
  constructor() {
731
- super(g.REQUIRED_METHODS, g);
735
+ super(m.REQUIRED_METHODS, m);
732
736
  }
733
737
  openImageLibrary(e, r, s) {
734
738
  throw new Error("Method openImageLibrary() must be implemented by the subclass");
@@ -783,7 +787,7 @@ var Q = class D extends a {
783
787
  }
784
788
  };
785
789
  Q.REQUIRED_METHODS = ["registerIconsSvg"];
786
- var Te = Q, ce = class {
790
+ var ce = Q, _e = class {
787
791
  constructor(t) {
788
792
  this.key = t;
789
793
  }
@@ -852,7 +856,7 @@ var Te = Q, ce = class {
852
856
  }
853
857
  };
854
858
  f.REQUIRED_METHODS = ["onRender", "getId", "getTemplate"];
855
- var _e = f, Y = class B extends a {
859
+ var he = f, Y = class B extends a {
856
860
  constructor() {
857
861
  super(B.REQUIRED_METHODS, B);
858
862
  }
@@ -861,7 +865,7 @@ var _e = f, Y = class B extends a {
861
865
  }
862
866
  };
863
867
  Y.REQUIRED_METHODS = ["registerUiElements"];
864
- var he = Y;
868
+ var Re = Y;
865
869
  export {
866
870
  Xt as Block,
867
871
  kt as BlockAttr,
@@ -873,7 +877,7 @@ export {
873
877
  Qt as ButtonAlignBuiltInControl,
874
878
  ft as ButtonBackgroundColorBuiltInControl,
875
879
  Yt as ButtonBorderBuiltInControl,
876
- Gt as ButtonBorderRadiusBuiltInControl,
880
+ Vt as ButtonBorderRadiusBuiltInControl,
877
881
  $t as ButtonColorBuiltInControl,
878
882
  w as ButtonControls,
879
883
  Wt as ButtonFitToContainerBuiltInControl,
@@ -886,26 +890,27 @@ export {
886
890
  Rt as ContainerControls,
887
891
  ee as Control,
888
892
  Ut as Extension,
889
- Oe as ExtensionBuilder,
893
+ Te as ExtensionBuilder,
890
894
  F as GeneralControls,
891
- Te as IconsRegistry,
895
+ ce as IconsRegistry,
892
896
  H as ImageControls,
893
897
  re as ImageMarginsBuiltInControl,
894
898
  ne as ImageSizeBuiltInControl,
895
- ce as ModificationDescription,
899
+ _e as ModificationDescription,
896
900
  se as SettingsPanelRegistry,
897
901
  ae as SettingsPanelTab,
898
902
  Lt as SettingsTab,
899
903
  ie as TextAlignBuiltInControl,
900
- oe as TextColorBuiltInControl,
904
+ oe as TextBlockBackgroundBuiltInControl,
905
+ Ee as TextColorBuiltInControl,
901
906
  P as TextControls,
902
- Ee as TextFontFamilyBuiltInControl,
903
- le as TextLineSpacingBuiltInControl,
904
- de as TextPaddingsBuiltInControl,
905
- ue as TextSizeBuiltInControl,
906
- Ie as TextStyleBuiltInControl,
907
- Vt as UEAttr,
908
- _e as UIElement,
909
- he as UIElementTagRegistry,
907
+ le as TextFontFamilyBuiltInControl,
908
+ de as TextLineSpacingBuiltInControl,
909
+ ue as TextPaddingsBuiltInControl,
910
+ Ie as TextSizeBuiltInControl,
911
+ Oe as TextStyleBuiltInControl,
912
+ Gt as UEAttr,
913
+ he as UIElement,
914
+ Re as UIElementTagRegistry,
910
915
  yt as UIElementType
911
916
  };
@@ -1,8 +1,8 @@
1
1
  import { useHttp as m } from "../composables/useHttp.js";
2
- import { useToaster as u } from "../composables/useToaster.js";
3
- import { MAX_DEFAULT_TEMPLATE_ID as i } from "../enums/defaults.js";
2
+ import { useToaster as i } from "../composables/useToaster.js";
3
+ import { MAX_DEFAULT_TEMPLATE_ID as p } from "../enums/defaults.js";
4
4
  const y = () => {
5
- const { get: r } = m(), { handleError: o } = u();
5
+ const { get: r } = m(), { handleError: o } = i();
6
6
  return {
7
7
  getToken: async () => {
8
8
  try {
@@ -26,17 +26,13 @@ const y = () => {
26
26
  getDefaultTemplate: async () => {
27
27
  const t = {
28
28
  html: "",
29
- css: "",
30
- forceRecreate: !0
29
+ css: ""
31
30
  };
32
31
  try {
33
- const c = new URLSearchParams(window.location.search).get("default-template"), s = c ? parseInt(c) : 0, l = s >= 1 && s <= i ? s : 0, { data: n } = await r(
32
+ const c = new URLSearchParams(window.location.search).get("default-template"), s = c ? parseInt(c) : 0, l = s >= 1 && s <= p ? s : 0, { data: n } = await r(
34
33
  `/stripo/default-template/${l}`
35
34
  ), a = typeof n == "string" ? JSON.parse(n) : n;
36
- return !a || typeof a != "object" || !("html" in a) || !("css" in a) ? t : {
37
- ...a,
38
- forceRecreate: !0
39
- };
35
+ return !a || typeof a != "object" || !("html" in a) || !("css" in a) ? t : a;
40
36
  } catch (e) {
41
37
  return o(e, "Failed to fetch default template"), t;
42
38
  }
@@ -90,6 +90,8 @@ export declare const TemplateSchema: v.ObjectSchema<{
90
90
  }, undefined>, undefined>, readonly []>;
91
91
  /** Selected unsubscribe page IDs */
92
92
  readonly selectedUnsubscribePages: v.OptionalSchema<v.ArraySchema<v.NumberSchema<undefined>, undefined>, readonly []>;
93
+ /** Force recreate template in Stripo storage (use true when updating externally modified templates) */
94
+ readonly forceRecreate: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
93
95
  }, undefined>;
94
96
  /**
95
97
  * Email header configuration (sender name and subject)
@@ -400,6 +402,8 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
400
402
  }, undefined>, undefined>, readonly []>;
401
403
  /** Selected unsubscribe page IDs */
402
404
  readonly selectedUnsubscribePages: v.OptionalSchema<v.ArraySchema<v.NumberSchema<undefined>, undefined>, readonly []>;
405
+ /** Force recreate template in Stripo storage (use true when updating externally modified templates) */
406
+ readonly forceRecreate: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
403
407
  }, undefined>, {}>;
404
408
  /** Editor settings */
405
409
  readonly editor: v.OptionalSchema<v.ObjectSchema<{
@@ -31,6 +31,7 @@ export declare const useConfig: () => {
31
31
  } | undefined;
32
32
  }[];
33
33
  selectedUnsubscribePages: number[];
34
+ forceRecreate: boolean;
34
35
  };
35
36
  editor: {
36
37
  locale: string;
@@ -116,6 +117,7 @@ export declare const useConfig: () => {
116
117
  } | undefined;
117
118
  }[];
118
119
  selectedUnsubscribePages: number[];
120
+ forceRecreate: boolean;
119
121
  } | null>;
120
122
  editor: import("vue").ComputedRef<{
121
123
  locale: string;