@useinsider/guido 2.0.0 → 2.1.0-beta.67fc452

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 (233) hide show
  1. package/README.md +2 -0
  2. package/dist/@types/config/schemas.js +57 -39
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +15 -17
  5. package/dist/components/organisms/email-preview/PreviewContainer.vue.js +3 -3
  6. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.js +6 -6
  7. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue2.js +17 -13
  8. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +6 -6
  9. package/dist/components/organisms/email-preview/amp/AmpToggle.vue2.js +14 -12
  10. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.js +18 -0
  11. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue2.js +15 -0
  12. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +16 -15
  13. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +14 -22
  14. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +3 -3
  15. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +12 -11
  16. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.js +12 -10
  17. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.js +11 -10
  18. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue2.js +15 -14
  19. package/dist/components/organisms/header/EditorActions.vue.js +21 -0
  20. package/dist/components/organisms/header/EditorActions.vue2.js +41 -0
  21. package/dist/components/organisms/header/EditorToolbar.vue.js +18 -0
  22. package/dist/components/organisms/header/EditorToolbar.vue2.js +17 -0
  23. package/dist/components/organisms/header/HeaderWrapper.vue.js +6 -5
  24. package/dist/components/organisms/header/LeftSlot.vue.js +11 -11
  25. package/dist/components/organisms/header/LeftSlot.vue2.js +27 -23
  26. package/dist/components/organisms/header/MiddleSlot.vue.js +7 -7
  27. package/dist/components/organisms/header/MiddleSlot.vue2.js +11 -15
  28. package/dist/components/organisms/header/RightSlot.vue.js +11 -14
  29. package/dist/components/organisms/header/RightSlot.vue2.js +13 -30
  30. package/dist/components/organisms/header/version-history/VersionHistory.vue.js +5 -5
  31. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +15 -15
  32. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +1 -1
  33. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +20 -19
  34. package/dist/composables/useActionsApi.js +33 -30
  35. package/dist/composables/useConfig.js +29 -27
  36. package/dist/composables/useSave.js +13 -11
  37. package/dist/composables/useStripo.js +57 -56
  38. package/dist/config/migrator/index.js +9 -8
  39. package/dist/config/migrator/itemsBlockMigrator.js +334 -0
  40. package/dist/enums/academy.js +8 -0
  41. package/dist/enums/onboarding.js +1 -2
  42. package/dist/enums/unsubscribe.js +20 -21
  43. package/dist/extensions/Blocks/CouponBlock/constants.js +4 -0
  44. package/dist/extensions/Blocks/CouponBlock/controls/index.js +29 -0
  45. package/dist/extensions/Blocks/CouponBlock/extension.js +5 -4
  46. package/dist/extensions/Blocks/CouponBlock/settingsPanel.js +20 -14
  47. package/dist/extensions/Blocks/CouponBlock/template.js +22 -11
  48. package/dist/extensions/Blocks/Items/block.js +36 -40
  49. package/dist/extensions/Blocks/Items/controls/button/link.js +22 -29
  50. package/dist/extensions/Blocks/Items/controls/cardComposition.js +79 -50
  51. package/dist/extensions/Blocks/Items/controls/image/link.js +23 -30
  52. package/dist/extensions/Blocks/Items/controls/name/trimming.js +25 -25
  53. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +19 -17
  54. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +31 -29
  55. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +44 -38
  56. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +21 -19
  57. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +29 -27
  58. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +93 -0
  59. package/dist/extensions/Blocks/Items/controls/settingsControl.js +158 -137
  60. package/dist/extensions/Blocks/Items/enums/controlEnums.js +2 -2
  61. package/dist/extensions/Blocks/Items/enums/productEnums.js +43 -45
  62. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +4 -5
  63. package/dist/extensions/Blocks/Items/extension.js +11 -9
  64. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +58 -49
  65. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +48 -59
  66. package/dist/extensions/Blocks/Items/settingsPanel.js +27 -26
  67. package/dist/extensions/Blocks/Items/store/items-block.js +11 -7
  68. package/dist/extensions/Blocks/Items/template.js +389 -141
  69. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +176 -0
  70. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +153 -69
  71. package/dist/extensions/Blocks/Recommendation/constants.js +9 -1
  72. package/dist/extensions/Blocks/Recommendation/control.js +91 -61
  73. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
  74. package/dist/extensions/Blocks/Recommendation/controls/index.js +245 -0
  75. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +74 -0
  76. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.js +71 -0
  77. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.js +71 -0
  78. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.js +71 -0
  79. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.js +71 -0
  80. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +188 -0
  81. package/dist/extensions/Blocks/Recommendation/extension.js +16 -42
  82. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -72
  83. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +85 -64
  84. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +54 -17
  85. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +74 -45
  86. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +25 -0
  87. package/dist/extensions/Blocks/Unsubscribe/extension.js +9 -9
  88. package/dist/extensions/Blocks/common-control.js +30 -32
  89. package/dist/extensions/Blocks/controlFactories.js +139 -118
  90. package/dist/guido.css +1 -1
  91. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +370 -291
  92. package/dist/package.json.js +1 -1
  93. package/dist/services/stripoApi.js +6 -10
  94. package/dist/src/@types/config/index.d.ts +2 -2
  95. package/dist/src/@types/config/schemas.d.ts +34 -0
  96. package/dist/src/@types/config/types.d.ts +7 -1
  97. package/dist/src/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.d.ts +2 -0
  98. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +4 -0
  99. package/dist/src/components/organisms/header/EditorToolbar.vue.d.ts +2 -0
  100. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  101. package/dist/src/composables/useActionsApi.d.ts +1 -0
  102. package/dist/src/composables/useConfig.d.ts +10 -0
  103. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +6 -0
  104. package/dist/src/enums/academy.d.ts +12 -0
  105. package/dist/src/enums/onboarding.d.ts +0 -1
  106. package/dist/src/enums/unsubscribe.d.ts +0 -1
  107. package/dist/src/extensions/Blocks/CouponBlock/constants.d.ts +14 -0
  108. package/dist/src/extensions/Blocks/CouponBlock/controls/index.d.ts +108 -0
  109. package/dist/src/extensions/Blocks/CouponBlock/template.d.ts +1 -1
  110. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -2
  111. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +9 -0
  112. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -2
  113. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -1
  114. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +18 -0
  115. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -4
  116. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +1 -0
  117. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +24 -26
  118. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +1 -2
  119. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +2 -0
  120. package/dist/src/extensions/Blocks/Items/template.d.ts +22 -1
  121. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +76 -0
  122. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +50 -3
  123. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +32 -0
  124. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +5 -2
  125. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  126. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +592 -0
  127. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +16 -0
  128. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  129. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  130. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  131. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  132. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  133. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +3 -3
  134. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +15 -7
  135. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  136. package/dist/src/extensions/Blocks/common-control.d.ts +10 -11
  137. package/dist/src/extensions/Blocks/controlFactories.d.ts +30 -7
  138. package/dist/src/stores/config.d.ts +181 -1
  139. package/dist/src/stores/editor.d.ts +21 -0
  140. package/dist/static/assets/desktop/desktop-mockup-center.svg.js +4 -0
  141. package/dist/static/assets/desktop/desktop-mockup-left.svg.js +4 -0
  142. package/dist/static/assets/desktop/desktop-mockup-right.svg.js +4 -0
  143. package/dist/static/assets/mobile/email-mockup.svg.js +4 -0
  144. package/dist/static/assets/mobile/inbox-mockup.svg.js +4 -0
  145. package/dist/static/styles/components/button.css.js +1 -1
  146. package/dist/static/styles/components/narrow-panel.css.js +0 -10
  147. package/dist/static/styles/components/wide-panel.css.js +1 -5
  148. package/dist/static/styles/customEditorStyle.css.js +13 -0
  149. package/dist/stores/config.js +7 -0
  150. package/dist/stores/editor.js +1 -0
  151. package/dist/utils/pairProductVariables.js +61 -58
  152. package/dist/utils/templatePreparation.js +17 -17
  153. package/package.json +3 -3
  154. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.js +0 -17
  155. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +0 -20
  156. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  157. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  158. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -76
  159. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -46
  160. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  161. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  162. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  163. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  164. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  165. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  166. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  167. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  168. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  169. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  170. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  171. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  172. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  173. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  174. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  175. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  176. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  177. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  178. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  179. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  180. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  181. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  182. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  183. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  184. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  185. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  186. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  187. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  188. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  189. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  190. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  191. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  192. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  193. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  194. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  195. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  196. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -50
  197. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  198. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  199. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  200. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  201. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  202. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  203. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  204. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  205. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  206. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  207. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  208. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  209. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  210. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  211. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  212. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  213. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  214. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  215. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  216. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  217. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  218. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  219. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  220. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  221. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  222. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  223. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  224. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  225. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  226. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  227. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  228. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  229. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  230. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  231. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  232. package/dist/static/assets/inbox-mockup.svg.js +0 -4
  233. package/dist/static/assets/phone-mockup.svg.js +0 -4
@@ -1,18 +1,19 @@
1
- const R = {
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 = {
2
3
  TITLE: "You May Also Like!"
3
- }, O = `
4
+ }, I = `
4
5
  <tr>
5
- <td class="spacer" style="height: 20px;"></td>
6
+ <td class="spacer" style="height: 10px;"></td>
6
7
  </tr>
7
- `, w = `
8
- <tr>
8
+ `, A = `
9
+ <tr class="recommendation-product-row">
9
10
  <td>
10
11
  <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
11
12
  {-{-PRODUCTS-}-}
12
13
  </table>
13
14
  </td>
14
15
  </tr>
15
- `, i = `
16
+ `, o = `
16
17
  <td width="{-{-COLUMN_WIDTH-}-}" style="padding: 0 5px;" valign="top" height="100%">
17
18
  <table
18
19
  width="100%"
@@ -34,14 +35,24 @@ const R = {
34
35
  </tr>
35
36
  </table>
36
37
  </td>
37
- `, b = [
38
- "productImage",
39
- "productName",
40
- "productOldPrice",
41
- "productPrice",
42
- "productButton"
43
- ];
44
- function C() {
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() {
45
56
  return [
46
57
  {
47
58
  name: "Product Name",
@@ -123,58 +134,76 @@ function C() {
123
134
  }
124
135
  ];
125
136
  }
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));
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));
130
141
  let c = "";
131
- return a.forEach((o, _) => {
132
- _ > 0 && (c += O);
133
- let s = "", u = "", d = "", m = "", g = "";
134
- o.forEach((t) => {
135
- s += i.replace(
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(
136
147
  "{-{-PRODUCT_CONTENT-}-}",
137
148
  e.productImage(t)
138
- ), u += i.replace(
149
+ ), u += o.replace(
139
150
  "{-{-PRODUCT_CONTENT-}-}",
140
151
  e.productName(t)
141
- ), d += i.replace(
152
+ ), d += o.replace(
142
153
  "{-{-PRODUCT_CONTENT-}-}",
143
154
  e.productPrice(t)
144
- ), m += i.replace(
155
+ ), T += o.replace(
145
156
  "{-{-PRODUCT_CONTENT-}-}",
146
157
  e.productOldPrice(t)
147
- ), g += i.replace(
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(
148
165
  "{-{-PRODUCT_CONTENT-}-}",
149
166
  e.productButton(t)
150
167
  );
151
168
  });
152
- const T = {
153
- productImage: s,
169
+ const R = {
170
+ productImage: n,
154
171
  productName: u,
155
172
  productPrice: d,
156
- productOldPrice: m,
173
+ productOldPrice: T,
174
+ productOmnibusPrice: m,
175
+ productOmnibusDiscount: _,
157
176
  productButton: g
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}%`);
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}%`);
161
189
  }
162
- function P(p, r, e, l, n = R.TITLE, a) {
163
- const c = N(
190
+ function j(a, r, e, l, s = E.TITLE, p) {
191
+ const c = f(
164
192
  r,
165
193
  e,
166
194
  l,
167
- a
195
+ p
168
196
  );
169
- return p.replace("{-{-TITLE-}-}", n).replace("{-{-PRODUCT_ROWS-}-}", c);
197
+ return a.replace("{-{-TITLE-}-}", s).replace("{-{-PRODUCT_ROWS-}-}", c);
170
198
  }
171
199
  export {
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
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
180
209
  };
@@ -0,0 +1,25 @@
1
+ function a(n) {
2
+ return "getInnerHTML" in n && typeof n.getInnerHTML == "function" ? n.getInnerHTML() : "innerHTML" in n ? n.innerHTML : "";
3
+ }
4
+ function H(n, t) {
5
+ if (!n)
6
+ return t;
7
+ const r = a(n);
8
+ if (!r || r.trim() === "" || !/<(strong|em|u|s|b|i)\b/i.test(r))
9
+ return t;
10
+ const i = [], s = [];
11
+ let o = r.trim();
12
+ for (; ; ) {
13
+ const u = o.match(/^<(strong|em|u|s|b|i)(\s[^>]*)?>(.*)$/is);
14
+ if (!u)
15
+ break;
16
+ const [, e, f = "", g] = u, c = new RegExp(`</${e}>$`, "i");
17
+ if (!c.test(g))
18
+ break;
19
+ i.push(`<${e}${f}>`), s.unshift(`</${e}>`), o = g.replace(c, "").trim();
20
+ }
21
+ return i.length > 0 ? i.join("") + t + s.join("") : t;
22
+ }
23
+ export {
24
+ H as preserveTextStyles
25
+ };
@@ -1,21 +1,21 @@
1
1
  import { ExtensionBuilder as e } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
2
  import { UnsubscribeBlock as i } from "./block.js";
3
3
  import { UnsubscribeControl as t } from "./control.js";
4
- import { PreviewUIElement as o } from "./elements/preview.js";
5
- import { UnsubscribeIconsRegistry as r } from "./iconsRegistry.js";
6
- import { SettingsPanel as s } from "./settingsPanel.js";
4
+ import { PreviewUIElement as s } from "./elements/preview.js";
5
+ import { UnsubscribeIconsRegistry as o } from "./iconsRegistry.js";
6
+ import { SettingsPanel as r } from "./settingsPanel.js";
7
7
  import n from "./styles.css.js";
8
- import { UnsubscribeTagRegistry as l } from "./tagRegistry.js";
9
- const f = new e().addBlock(i).withSettingsPanelRegistry(s).addControl(t).addUiElement(o).addStyles(n).withLocalization({
8
+ import { UnsubscribeTagRegistry as c } from "./tagRegistry.js";
9
+ const g = new e().addBlock(i).withSettingsPanelRegistry(r).addControl(t).addUiElement(s).addStyles(n).withLocalization({
10
10
  en: {
11
- "Unsubscribe Block": "Unsubscribe Block",
12
- "Unsubscribe Block Description": "Add an unsubscribe link to your email",
11
+ "Unsubscribe Block": "Unsubscribe",
12
+ "Unsubscribe Block Description": "Unsubscribe lets you add an Unsubscribe Link to direct users to opt out of receiving your messages.",
13
13
  "Select Template": "Select Template",
14
14
  "Unsubscribe Template": "Unsubscribe Template",
15
15
  Showing: "Showing",
16
16
  of: "of"
17
17
  }
18
- }).withUiElementTagRegistry(l).withIconsRegistry(r).build();
18
+ }).withUiElementTagRegistry(c).withIconsRegistry(o).build();
19
19
  export {
20
- f as default
20
+ g as default
21
21
  };
@@ -1,12 +1,12 @@
1
- var c = Object.defineProperty;
2
- var I = (a, r, e) => r in a ? c(a, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[r] = e;
3
- var l = (a, r, e) => I(a, typeof r != "symbol" ? r + "" : r, e);
1
+ var I = Object.defineProperty;
2
+ var c = (T, r, e) => r in T ? I(T, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : T[r] = e;
3
+ var u = (T, r, e) => c(T, typeof r != "symbol" ? r + "" : r, e);
4
4
  import { Control as O, UIElementType as t, UEAttr as $ } from "../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
5
  class _ extends O {
6
6
  constructor() {
7
7
  super(...arguments);
8
- l(this, "currentNode");
9
- l(this, "lastBlockInstanceId", null);
8
+ u(this, "currentNode");
9
+ u(this, "lastBlockInstanceId", null);
10
10
  }
11
11
  getContainer() {
12
12
  var e;
@@ -19,43 +19,41 @@ class _ extends O {
19
19
  this.lastBlockInstanceId = null;
20
20
  }
21
21
  /**
22
- * Gets the config block element from the current node.
23
- * @returns The config block element or null if not found
22
+ * Gets the Items block container element from the current node.
23
+ * @returns The container element or null if not found
24
24
  */
25
- getConfigBlock() {
26
- if (!this.currentNode)
27
- return null;
28
- const e = this.currentNode.closest(".items-block-v2");
29
- return e ? e.querySelector("esd-config-block") : null;
25
+ getItemsBlockContainer() {
26
+ return this.currentNode ? this.currentNode.closest(".items-block-v2") : null;
30
27
  }
31
28
  /**
32
- * Gets the current block instance ID from the config block.
33
- * @param blockInstanceIdAttribute - The attribute name for block instance ID (default: 'data-block-instance-id')
29
+ * Gets the current block instance ID from the node config (Stripo V2).
34
30
  * @returns The block instance ID or null if not found
35
31
  */
36
- getBlockInstanceId(e = "data-block-instance-id") {
37
- const n = this.getConfigBlock();
38
- return n ? n.getAttribute(e) : null;
32
+ getBlockInstanceId() {
33
+ const e = this.getItemsBlockContainer();
34
+ if (!e)
35
+ return null;
36
+ const n = e.getNodeConfig();
37
+ return n && typeof n.blockInstanceId == "string" ? n.blockInstanceId : null;
39
38
  }
40
39
  /**
41
40
  * Handles block instance change detection and syncing.
42
- * This is a helper method for controls that need to sync attributes when switching between block instances.
43
- * @param syncFunction - Function to call when block instance changes (to sync from attributes)
41
+ * This is a helper method for controls that need to sync config when switching between block instances.
42
+ * Uses Stripo V2 nodeConfig API for block instance tracking.
43
+ * @param syncFunction - Function to call when block instance changes (to sync from node config)
44
44
  * @param updateUI - Function to call to update the UI (called both on change and when same block)
45
- * @param blockInstanceIdAttribute - The attribute name for block instance ID (default: 'data-block-instance-id')
46
45
  * @returns true if block instance changed, false otherwise
47
46
  */
48
- handleBlockInstanceChange(e, n, E = "data-block-instance-id") {
49
- const o = this.getBlockInstanceId(E);
50
- if (!o)
47
+ handleBlockInstanceChange(e, n) {
48
+ const E = this.getBlockInstanceId();
49
+ if (!E)
51
50
  return !1;
52
- const T = o !== this.lastBlockInstanceId;
53
- return T ? (this.currentNode && e(this.currentNode), n(), this.lastBlockInstanceId = o) : n(), T;
51
+ const o = E !== this.lastBlockInstanceId;
52
+ return o ? (this.currentNode && e(this.currentNode), n(), this.lastBlockInstanceId = E) : n(), o;
54
53
  }
55
- _GuLabel({ text: e, name: n = "", position: E = "top" }) {
54
+ _GuLabel({ text: e, name: n = "" }) {
56
55
  return `
57
56
  <${t.LABEL}
58
- style="${E === "top" ? "margin-bottom: 8px;" : ""}"
59
57
  ${$.LABEL.text}="${e}"
60
58
  ${$.LABEL.name}="${n || `${e} Label`}">
61
59
  </${t.LABEL}>
@@ -81,7 +79,7 @@ class _ extends O {
81
79
  class="${o}"
82
80
  ${$.SELECTPICKER.name}="${e}"
83
81
  ${$.SELECTPICKER.placeholder}="${n}">
84
- ${E.map((T) => this._GuSelectItem(T)).join("")}
82
+ ${E.map((a) => this._GuSelectItem(a)).join("")}
85
83
  </${t.SELECTPICKER}>
86
84
  `;
87
85
  }
@@ -169,11 +167,11 @@ class _ extends O {
169
167
  */
170
168
  _GuOrderable(e, n) {
171
169
  let E = "";
172
- n.forEach((T) => {
173
- const u = $.ORDERABLE_ITEM && "name" in $.ORDERABLE_ITEM ? $.ORDERABLE_ITEM.name : "name";
170
+ n.forEach((a) => {
171
+ const l = $.ORDERABLE_ITEM && "name" in $.ORDERABLE_ITEM ? $.ORDERABLE_ITEM.name : "name";
174
172
  E += `
175
- <${t.ORDERABLE_ITEM} ${u}="${T.key}">
176
- ${T.content}
173
+ <${t.ORDERABLE_ITEM} ${l}="${a.key}">
174
+ ${a.content}
177
175
  </${t.ORDERABLE_ITEM}>
178
176
  `;
179
177
  });