@useinsider/guido 2.1.0-beta.efb0c6b → 2.1.0-beta.f42da92

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 (315) hide show
  1. package/dist/@types/config/schemas.js +17 -17
  2. package/dist/components/organisms/email-preview/PreviewContainer.vue.js +3 -3
  3. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.js +6 -6
  4. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue2.js +17 -13
  5. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +6 -6
  6. package/dist/components/organisms/email-preview/amp/AmpToggle.vue2.js +14 -12
  7. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.js +18 -0
  8. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue2.js +15 -0
  9. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +16 -15
  10. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +14 -22
  11. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +3 -3
  12. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +12 -11
  13. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.js +12 -10
  14. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.js +11 -10
  15. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue2.js +15 -14
  16. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +15 -14
  17. package/dist/components/organisms/header/EditorActions.vue.js +21 -0
  18. package/dist/components/organisms/header/EditorActions.vue2.js +41 -0
  19. package/dist/components/organisms/header/EditorToolbar.vue.js +18 -0
  20. package/dist/components/organisms/header/EditorToolbar.vue2.js +17 -0
  21. package/dist/components/organisms/header/HeaderWrapper.vue.js +10 -9
  22. package/dist/components/organisms/header/LeftSlot.vue.js +11 -11
  23. package/dist/components/organisms/header/LeftSlot.vue2.js +27 -23
  24. package/dist/components/organisms/header/MiddleSlot.vue.js +7 -7
  25. package/dist/components/organisms/header/MiddleSlot.vue2.js +11 -15
  26. package/dist/components/organisms/header/RightSlot.vue.js +11 -14
  27. package/dist/components/organisms/header/RightSlot.vue2.js +13 -30
  28. package/dist/components/organisms/header/version-history/VersionHistory.vue.js +5 -5
  29. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +15 -15
  30. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +1 -1
  31. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +20 -19
  32. package/dist/composables/useActionsApi.js +37 -32
  33. package/dist/composables/useHtmlValidator.js +114 -104
  34. package/dist/composables/useRecommendation.js +54 -21
  35. package/dist/config/compiler/recommendationCompilerRules.js +45 -39
  36. package/dist/config/compiler/utils/recommendationCompilerUtils.js +121 -0
  37. package/dist/config/migrator/index.js +9 -8
  38. package/dist/config/migrator/itemsBlockMigrator.js +351 -0
  39. package/dist/config/migrator/recommendationMigrator.js +2 -2
  40. package/dist/enums/academy.js +8 -0
  41. package/dist/enums/extensions/recommendationBlock.js +1 -1
  42. package/dist/enums/onboarding.js +1 -2
  43. package/dist/enums/recommendation.js +16 -15
  44. package/dist/enums/unsubscribe.js +20 -21
  45. package/dist/extensions/Blocks/Items/block.js +28 -41
  46. package/dist/extensions/Blocks/Items/controls/button/link.js +18 -37
  47. package/dist/extensions/Blocks/Items/controls/cardComposition.js +164 -96
  48. package/dist/extensions/Blocks/Items/controls/image/link.js +16 -35
  49. package/dist/extensions/Blocks/Items/controls/name/trimming.js +30 -42
  50. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +35 -45
  51. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +56 -59
  52. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +45 -48
  53. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +23 -34
  54. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +47 -57
  55. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +75 -0
  56. package/dist/extensions/Blocks/Items/controls/settingsControl.js +198 -184
  57. package/dist/extensions/Blocks/Items/enums/controlEnums.js +2 -2
  58. package/dist/extensions/Blocks/Items/enums/productEnums.js +43 -45
  59. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +3 -6
  60. package/dist/extensions/Blocks/Items/extension.js +7 -6
  61. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +58 -49
  62. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +48 -59
  63. package/dist/extensions/Blocks/Items/settingsPanel.js +28 -32
  64. package/dist/extensions/Blocks/Items/template.js +397 -143
  65. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +176 -0
  66. package/dist/extensions/Blocks/Recommendation/block.js +133 -9
  67. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  68. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  69. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +66 -0
  70. package/dist/extensions/Blocks/Recommendation/constants/layout.js +22 -0
  71. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +21 -0
  72. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  73. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  74. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
  75. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  76. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +92 -0
  77. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +102 -0
  78. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +209 -0
  79. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +52 -0
  80. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +250 -0
  81. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +70 -0
  82. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +160 -0
  83. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +67 -0
  84. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +307 -0
  85. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +21 -0
  86. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  87. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +108 -0
  88. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  89. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  90. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +73 -0
  91. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +73 -0
  92. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  93. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +73 -0
  94. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +73 -0
  95. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  96. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
  97. package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
  98. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +19 -3
  99. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
  100. package/dist/extensions/Blocks/Recommendation/services/configService.js +240 -0
  101. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
  102. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +254 -207
  103. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +228 -0
  104. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +251 -0
  105. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +66 -0
  106. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  107. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +169 -0
  108. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +73 -0
  109. package/dist/extensions/Blocks/Recommendation/templates/utils.js +134 -0
  110. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
  111. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  112. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +36 -0
  113. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
  114. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
  115. package/dist/extensions/Blocks/common-control.js +104 -106
  116. package/dist/extensions/Blocks/controlFactories.js +162 -120
  117. package/dist/guido.css +1 -1
  118. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +426 -296
  119. package/dist/package.json.js +1 -1
  120. package/dist/services/recommendationApi.js +11 -8
  121. package/dist/services/templateLibraryApi.js +16 -13
  122. package/dist/src/@types/config/schemas.d.ts +2 -2
  123. package/dist/src/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.d.ts +2 -0
  124. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +4 -0
  125. package/dist/src/components/organisms/header/EditorToolbar.vue.d.ts +2 -0
  126. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  127. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  128. package/dist/src/composables/useActionsApi.d.ts +1 -0
  129. package/dist/src/composables/useRecommendation.d.ts +1 -0
  130. package/dist/src/config/compiler/utils/recommendationCompilerUtils.d.ts +17 -0
  131. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +6 -0
  132. package/dist/src/enums/academy.d.ts +12 -0
  133. package/dist/src/enums/onboarding.d.ts +0 -1
  134. package/dist/src/enums/unsubscribe.d.ts +0 -1
  135. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -1
  136. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -3
  137. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +13 -4
  138. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -3
  139. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -1
  140. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -1
  141. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -1
  142. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -1
  143. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -1
  144. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -2
  145. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +13 -0
  146. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +10 -16
  147. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +1 -0
  148. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +24 -26
  149. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +1 -2
  150. package/dist/src/extensions/Blocks/Items/template.d.ts +22 -1
  151. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +77 -0
  152. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +67 -0
  153. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  154. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
  155. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
  156. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
  157. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +41 -0
  158. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +35 -0
  159. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  160. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  161. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  162. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +95 -0
  163. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  164. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +24 -0
  165. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +37 -0
  166. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
  167. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +52 -0
  168. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  169. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +79 -0
  170. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
  171. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +60 -0
  172. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
  173. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +221 -0
  174. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +29 -0
  175. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  176. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +34 -0
  177. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  178. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  179. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  180. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  181. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  182. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  183. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  184. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  185. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  186. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  187. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  188. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  189. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
  190. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  191. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  192. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
  193. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
  194. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +138 -468
  195. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +20 -0
  196. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → grid/migration.d.ts} +11 -4
  197. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +33 -0
  198. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +41 -0
  199. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +8 -0
  200. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +25 -0
  201. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +18 -0
  202. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +66 -0
  203. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
  204. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +166 -0
  205. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  206. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
  207. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
  208. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
  209. package/dist/src/extensions/Blocks/common-control.d.ts +10 -12
  210. package/dist/src/stores/editor.d.ts +21 -0
  211. package/dist/static/assets/desktop/desktop-mockup-center.svg.js +4 -0
  212. package/dist/static/assets/desktop/desktop-mockup-left.svg.js +4 -0
  213. package/dist/static/assets/desktop/desktop-mockup-right.svg.js +4 -0
  214. package/dist/static/assets/mobile/email-mockup.svg.js +4 -0
  215. package/dist/static/assets/mobile/inbox-mockup.svg.js +4 -0
  216. package/dist/static/styles/components/notification.css.js +1 -0
  217. package/dist/static/styles/components/version-history.css.js +10 -2
  218. package/dist/static/styles/components/wide-panel.css.js +18 -6
  219. package/dist/static/styles/customEditorStyle.css.js +39 -2
  220. package/dist/stores/editor.js +1 -0
  221. package/dist/utils/pairProductVariables.js +74 -70
  222. package/dist/utils/templatePreparation.js +19 -18
  223. package/package.json +3 -3
  224. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.js +0 -17
  225. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +0 -20
  226. package/dist/extensions/Blocks/Items/store/items-block.js +0 -75
  227. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  228. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  229. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -76
  230. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -46
  231. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  232. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  233. package/dist/extensions/Blocks/Recommendation/control.js +0 -306
  234. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  235. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  236. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  237. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  238. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  239. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  240. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  241. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  242. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  243. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  244. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  245. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  246. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  247. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  248. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  249. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  250. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  251. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  252. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  253. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  254. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  255. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  256. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  257. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  258. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  259. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  260. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  261. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  262. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  263. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  264. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  265. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  266. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  267. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  268. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  269. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  270. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  271. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -43
  272. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  273. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  274. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -50
  275. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  276. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  277. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
  278. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  279. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  280. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  281. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  282. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  283. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  284. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  285. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  286. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  287. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  288. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  289. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  290. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  291. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  292. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  293. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  294. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  295. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  296. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  297. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  298. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  299. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  300. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  301. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  302. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  303. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  304. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  305. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  306. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  307. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  308. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  309. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  310. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  311. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  312. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  313. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
  314. package/dist/static/assets/inbox-mockup.svg.js +0 -4
  315. package/dist/static/assets/phone-mockup.svg.js +0 -4
@@ -1,4 +1,4 @@
1
- const o = { stripo: { version: "2.47.0" } }, s = {
1
+ const o = { stripo: { version: "2.54.0" } }, s = {
2
2
  guido: o
3
3
  };
4
4
  export {
@@ -1,6 +1,6 @@
1
1
  import { useHttp as c } from "../composables/useHttp.js";
2
- import { URLS as a } from "../enums/extensions/recommendationBlock.js";
3
- const R = () => {
2
+ import { URLS as m } from "../enums/extensions/recommendationBlock.js";
3
+ const f = () => {
4
4
  const { get: o } = c();
5
5
  return {
6
6
  fetchRecommendationCreateData: async () => {
@@ -18,14 +18,17 @@ const R = () => {
18
18
  throw console.error("fetchRecommendationFilters error:", e), e;
19
19
  }
20
20
  },
21
- fetchRecommendationProducts: async (e, n) => {
21
+ fetchRecommendationProducts: async (e, a) => {
22
+ var n;
22
23
  try {
23
- const t = decodeURIComponent(new URLSearchParams(Object.entries(n)).toString());
24
+ const t = decodeURIComponent(new URLSearchParams(Object.entries(a)).toString());
24
25
  console.debug("🏁 Recommendation API Query:", t);
25
- const r = await o(
26
- `${a.RECOMMENDATION_API_URL}/v2/${e}?${t}`
26
+ const { get: s } = c({
27
+ headers: {}
28
+ }), r = await s(
29
+ `${m.RECOMMENDATION_API_URL}/v2/${e}?${t}`
27
30
  );
28
- return (r == null ? void 0 : r.data) ?? [];
31
+ return ((n = r == null ? void 0 : r.data) == null ? void 0 : n.data) ?? [];
29
32
  } catch (t) {
30
33
  throw console.error("fetchRecommendationProducts error:", t), t;
31
34
  }
@@ -33,5 +36,5 @@ const R = () => {
33
36
  };
34
37
  };
35
38
  export {
36
- R as useRecommendationApi
39
+ f as useRecommendationApi
37
40
  };
@@ -3,29 +3,30 @@ import { useHttp as f } from "../composables/useHttp.js";
3
3
  import { useToaster as w } from "../composables/useToaster.js";
4
4
  import { useTranslations as b } from "../composables/useTranslations.js";
5
5
  import { EditorType as h } from "../enums/defaults.js";
6
- import { useSaveAsTemplateStore as C } from "../stores/save-as-template.js";
6
+ import { useRecommendationExtensionStore as C } from "../extensions/Blocks/Recommendation/store/recommendation.js";
7
+ import { useSaveAsTemplateStore as v } from "../stores/save-as-template.js";
7
8
  import { base64EncodeWithSpecialChars as a } from "../utils/base64.js";
8
- import { useTemplatePreparation as v } from "../utils/templatePreparation.js";
9
- const L = () => {
10
- const { get: m, post: n } = f(), { handleError: o, showToaster: i } = w(), { config: l } = T(), p = b();
9
+ import { useTemplatePreparation as S } from "../utils/templatePreparation.js";
10
+ const R = () => {
11
+ const { get: n, post: c } = f(), { handleError: o, showToaster: i } = w(), { config: l } = T(), p = b();
11
12
  return {
12
13
  getCategories: async () => {
13
14
  try {
14
- const { data: e = [] } = await m("/newsletter/template-library/get-template-categories");
15
+ const { data: e = [] } = await n("/newsletter/template-library/get-template-categories");
15
16
  return e;
16
17
  } catch (e) {
17
18
  return o(e, "Failed to fetch template categories"), [];
18
19
  }
19
20
  },
20
21
  checkTemplateNameAvailability: async (e) => {
21
- const { data: { status: t = !1 } } = await m(
22
+ const { data: { status: t = !1 } } = await n(
22
23
  `/newsletter/template-library/template-name-exists?name=${e}`
23
24
  );
24
25
  return !t;
25
26
  },
26
27
  createCategory: async (e) => {
27
28
  try {
28
- const { data: { id: t } } = await n(
29
+ const { data: { id: t } } = await c(
29
30
  "/newsletter/template-library/create-category",
30
31
  { name: e }
31
32
  );
@@ -37,7 +38,7 @@ const L = () => {
37
38
  createTemplate: async () => {
38
39
  var e, t, g, y;
39
40
  try {
40
- const { prepareTemplateDetails: c } = v(), r = C(), s = await c(), u = {
41
+ const { prepareTemplateDetails: m } = S(), r = v(), s = await m(), u = {
41
42
  name: r.getTemplateName,
42
43
  categories: r.getSelectedCategoryIds,
43
44
  productId: ((t = (e = l.value) == null ? void 0 : e.partner) == null ? void 0 : t.productType) || 0,
@@ -47,7 +48,9 @@ const L = () => {
47
48
  css: a(s.css),
48
49
  unsubscriptionPreferencePageStatus: !1,
49
50
  unsubscriptionPreferencePages: [],
50
- recommendationCampaignUrls: a({}),
51
+ recommendationCampaignUrls: a(
52
+ C().recommendationCampaignUrls
53
+ ),
51
54
  recommendationConfigs: a({}),
52
55
  isGuido: !0,
53
56
  stripoConfig: a({
@@ -55,7 +58,7 @@ const L = () => {
55
58
  html: s.rawHtml,
56
59
  css: s.css
57
60
  })
58
- }, { data: { type: d } } = await n(
61
+ }, { data: { type: d } } = await c(
59
62
  "/newsletter/template-library/create-template",
60
63
  u
61
64
  );
@@ -76,12 +79,12 @@ const L = () => {
76
79
  ),
77
80
  type: "success"
78
81
  });
79
- } catch (c) {
80
- o(c, "Failed to create template");
82
+ } catch (m) {
83
+ o(m, "Failed to create template");
81
84
  }
82
85
  }
83
86
  };
84
87
  };
85
88
  export {
86
- L as useTemplateLibraryApi
89
+ R as useTemplateLibraryApi
87
90
  };
@@ -116,7 +116,7 @@ export declare const EditorSchema: v.ObjectSchema<{
116
116
  /** Locale for the editor UI */
117
117
  readonly locale: v.OptionalSchema<v.StringSchema<undefined>, "en">;
118
118
  /** Path to translations object */
119
- readonly translationsPath: v.OptionalSchema<v.StringSchema<undefined>, "window.trans.en">;
119
+ readonly translationsPath: v.OptionalSchema<v.StringSchema<undefined>, "window.trans[Object.keys(window.trans)[0]]">;
120
120
  /** Migration date for template compatibility */
121
121
  readonly migrationDate: v.OptionalSchema<v.NumberSchema<undefined>, 1759696858>;
122
122
  /** Email header settings */
@@ -428,7 +428,7 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
428
428
  /** Locale for the editor UI */
429
429
  readonly locale: v.OptionalSchema<v.StringSchema<undefined>, "en">;
430
430
  /** Path to translations object */
431
- readonly translationsPath: v.OptionalSchema<v.StringSchema<undefined>, "window.trans.en">;
431
+ readonly translationsPath: v.OptionalSchema<v.StringSchema<undefined>, "window.trans[Object.keys(window.trans)[0]]">;
432
432
  /** Migration date for template compatibility */
433
433
  readonly migrationDate: v.OptionalSchema<v.NumberSchema<undefined>, 1759696858>;
434
434
  /** Email header settings */
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;
@@ -0,0 +1,4 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {
2
+ handleSave: (isSilent: boolean) => Promise<import("../../../@types/stripo").SavedTemplateDetails | undefined>;
3
+ }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
4
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;
@@ -1,4 +1,4 @@
1
1
  declare const _default: import("vue").DefineComponent<{}, {
2
- handleSave: (isSilent: boolean) => Promise<import("../../../@types/stripo").SavedTemplateDetails | undefined>;
2
+ handleSave: (isSilent: boolean) => Promise<import("../../../@types/stripo.js").SavedTemplateDetails | undefined> | undefined;
3
3
  }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
4
4
  export default _default;
@@ -33,8 +33,8 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_WithDefaults<
33
33
  descriptionStatus: boolean;
34
34
  descriptionText: string;
35
35
  }>>>, {
36
- className: string;
37
36
  size: "small" | "medium" | "large";
37
+ className: string;
38
38
  closeOnOutsideClick: boolean;
39
39
  descriptionStatus: boolean;
40
40
  descriptionText: string;
@@ -7,4 +7,5 @@ export declare const useActionsApi: () => {
7
7
  getPreviewData: (options?: CompileEmailOptions) => Promise<CompiledEmailResult>;
8
8
  updateTimerInClonedTemplate: () => Promise<string | null>;
9
9
  updateHtmlAndCss: (html: string, css: string) => void;
10
+ editorSave: () => void;
10
11
  };
@@ -15,5 +15,6 @@ interface CampaignData extends CardWidthParams {
15
15
  export declare const useRecommendation: () => {
16
16
  calculateCardWidth: ({ mobileLeftPadding, mobileRightPadding, cardsInRow, unresponsive, }: CardWidthParams) => number;
17
17
  getRecommendationCampaignData: (id: string) => CampaignData;
18
+ buildCampaignUrl: (campaignId: string) => string;
18
19
  };
19
20
  export {};
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Formats a price template variable with the correct currency alignment.
3
+ * @param campaignId - The recommendation block campaign ID
4
+ * @param productIndex - Zero-based product index
5
+ * @param attribute - Price attribute name (e.g., 'price', 'original_price')
6
+ * @param alignment - Currency alignment from block config: 'before' or 'after'
7
+ * @returns Formatted price string with currency variable in correct position
8
+ */
9
+ export declare function formatPriceVariable(campaignId: string, productIndex: number, attribute: string, alignment: string): string;
10
+ /**
11
+ * Transforms recommendation block HTML by replacing product data with
12
+ * template variables.
13
+ * Preserves the full document structure (DOCTYPE, html, head, body).
14
+ * @param html - The raw template HTML
15
+ * @returns HTML with template variables replacing product data
16
+ */
17
+ export declare function prepareRecommendationBlocks(html: string): string;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Migrates legacy ItemsBlock templates to v2 format
3
+ * @param html - HTML string containing legacy items blocks
4
+ * @returns Migrated HTML with replaced variables and cleaned conditionals
5
+ */
6
+ export declare function migrateItemsBlock(html: string): string;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Centralized Academy Links
3
+ *
4
+ * All external academy documentation links should be defined here
5
+ * for easy maintenance and domain migration.
6
+ */
7
+ export declare const ACADEMY_LINKS: {
8
+ readonly EMAIL_EDITOR: "https://academy.insiderone.com//docs/email-drag-and-drop-editor";
9
+ readonly GLOBAL_UNSUBSCRIBE: "https://academy.insiderone.com//docs/global-unsubscribe-preference-center";
10
+ readonly AMP_FOR_EMAILS: "https://academy.insiderone.com//docs/amp-for-emails";
11
+ };
12
+ export type AcademyLinkKey = keyof typeof ACADEMY_LINKS;
@@ -3,4 +3,3 @@ export declare const UI_EDITOR_SELECTOR = "ui-editor";
3
3
  export declare const CARD_COMPOSITION_TAB_SELECTOR = "button[role=\"tab\"][aria-label=\"Card Composition\"]";
4
4
  export declare const SETTINGS_TAB_SELECTOR = "button[role=\"tab\"][aria-label=\"Settings\"]";
5
5
  export declare const RIBBON_SELECTOR = ".in-ribbons-wrapper";
6
- export declare const ACADEMY_LINK = "https://academy.useinsider.com/docs/email-drag-drop-editor";
@@ -17,7 +17,6 @@ export declare const DEFAULT_UNSUBSCRIBE_GROUP: {
17
17
  readonly name: "Global Unsubscribe";
18
18
  readonly sendGridId: "G";
19
19
  };
20
- export declare const ACADEMY_LINK = "https://academy.useinsider.com/docs/global-unsubscribe-preference-center";
21
20
  export declare const UNSUBSCRIBE_PAGES_LINK = "/email/unsubscribe-pages";
22
21
  export declare const PAGE_TYPES: {
23
22
  GLOBAL_UNSUBSCRIBE: number;
@@ -23,5 +23,4 @@ export declare class ItemsBlock extends Block {
23
23
  getTemplate(): string;
24
24
  allowInnerBlocksDND(): boolean;
25
25
  onCreated(node: ImmutableHtmlNode): void;
26
- onSelect(node: ImmutableHtmlNode): void;
27
26
  }
@@ -3,12 +3,9 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.BUTTON_LINK;
5
5
  export declare class ButtonLinkControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
10
9
  onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
11
- _listenToFormUpdates(): void;
12
- _onLinkChange(value: string): void;
13
10
  _getLink(): string;
14
11
  }
@@ -2,7 +2,6 @@ import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
2
2
  import { CommonControl } from '../../common-control';
3
3
  export declare const COMPOSITION_CONTROL_BLOCK_ID = "ui-elements-items-card-composition-block";
4
4
  export declare class ItemsBlockCardCompositionControl extends CommonControl {
5
- private store;
6
5
  private visibilityState;
7
6
  getId(): string;
8
7
  getTemplate(): string;
@@ -19,15 +18,25 @@ export declare class ItemsBlockCardCompositionControl extends CommonControl {
19
18
  * If itemsType is not BROWSED_ITEMS, show quantity
20
19
  * If itemsType is BROWSED_ITEMS, hide quantity
21
20
  * and mark it as '0'
21
+ * @param syncOnly - If true, only sync local state and UI without modifying the document
22
22
  */
23
- _handleBrowsedItemsQuantity(): void;
24
- _applyVisibilityStyles(): void;
25
- _updateVisibilityAttribute(elementName: string, isVisible: boolean): void;
23
+ _handleBrowsedItemsQuantity(syncOnly?: boolean): void;
24
+ _applyVisibilityStyles(modifier?: ReturnType<typeof this.api.getDocumentModifier>): void;
25
+ _updateVisibilityAttribute(elementName: string, isVisible: boolean, modifier?: ReturnType<typeof this.api.getDocumentModifier>): void;
26
26
  _listenToFormUpdates(): void;
27
27
  _onProductImageChange(value: boolean): void;
28
28
  _onProductNameChange(value: boolean): void;
29
29
  _onProductQuantityChange(value: boolean): void;
30
30
  _onProductPriceChange(value: boolean): void;
31
31
  _onProductOriginalPriceChange(value: boolean): void;
32
+ /**
33
+ * Updates both price cell widths in vertical layout based on priceOrientation and visibility.
34
+ * - When priceOrientation is 'vertical': both cells are 100% (stacked layout)
35
+ * - When priceOrientation is 'horizontal':
36
+ * - When original price is hidden, price cell expands to 100%
37
+ * - When price is hidden, original price cell expands to 100%
38
+ * - When both are visible, they share 50% each
39
+ */
40
+ _updatePriceCellWidthsForVerticalLayout(modifier?: ReturnType<typeof this.api.getDocumentModifier>): void;
32
41
  _onProductButtonChange(value: boolean): void;
33
42
  }
@@ -3,12 +3,9 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.IMAGE_LINK;
5
5
  export declare class ImageLinkControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
10
9
  onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
11
- _listenToFormUpdates(): void;
12
- _onLinkChange(value: string): void;
13
10
  _getLink(): string;
14
11
  }
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.NAME_TRIMMING;
5
5
  export declare class NameTrimmingControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_CURRENCY_LOCATION;
5
5
  export declare class PriceCurrencyLocationControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_CURRENCY_SYMBOL;
5
5
  export declare class PriceCurrencySymbolControl extends CommonControl {
6
- private store;
7
6
  private originalPriceContents;
8
7
  getId(): string;
9
8
  getTemplate(): string;
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_FORMATTED_PRICE;
5
5
  export declare class PriceFormattedPriceControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
@@ -3,7 +3,6 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_HIDE_DISCOUNT;
5
5
  export declare class PriceHideDiscountControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
@@ -3,13 +3,12 @@ import { CommonControl } from '../../../common-control';
3
3
  import { ItemsBlockControlId } from '../../enums/controlEnums';
4
4
  export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_ORIENTATION;
5
5
  export declare class PriceOrientationControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
10
9
  onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
11
10
  _onPriceOrientationChange(value: string): void;
12
- private _updateHorizontalLayout;
13
11
  private _updateVerticalLayout;
12
+ private _updateHorizontalLayout;
14
13
  _getPriceOrientation(): string;
15
14
  }
@@ -0,0 +1,13 @@
1
+ import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
2
+ import { CommonControl } from '../../../common-control';
3
+ import { ItemsBlockControlId } from '../../enums/controlEnums';
4
+ export declare const CONTROL_BLOCK_ID = ItemsBlockControlId.PRICE_SINGLE_PRICE;
5
+ export declare class PriceSinglePriceControl extends CommonControl {
6
+ getId(): string;
7
+ getTemplate(): string;
8
+ onRender(): void;
9
+ onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
10
+ _onSinglePriceChange(value: boolean): void;
11
+ private _updatePriceBlock;
12
+ _getSinglePrice(): string;
13
+ }
@@ -3,12 +3,10 @@ import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
3
3
  import { CommonControl } from '../../common-control';
4
4
  export declare const CONTROL_BLOCK_ID = "ui-elements-items-block";
5
5
  export declare class ItemsBlockControl extends CommonControl {
6
- private store;
7
6
  getId(): string;
8
7
  getTemplate(): string;
9
8
  onRender(): void;
10
9
  onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
11
- onDestroy(): void;
12
10
  _getItemsType(): string;
13
11
  _getOrientation(): string;
14
12
  _getItemInCart(): string;
@@ -18,7 +16,7 @@ export declare class ItemsBlockControl extends CommonControl {
18
16
  _initializeSelectItems(): void;
19
17
  _listenToFormUpdates(): void;
20
18
  _renderTemplate(): void;
21
- _getTemplateData(): {
19
+ _getTemplateData(itemsTypeOverride?: ProductType, itemIdOverride?: string): {
22
20
  imageSrc: string;
23
21
  name: string;
24
22
  price: string;
@@ -26,19 +24,15 @@ export declare class ItemsBlockControl extends CommonControl {
26
24
  quantity: string;
27
25
  button: string;
28
26
  };
29
- _updateImageSrc(imageSrc: string): void;
30
- _updateName(name: string): void;
31
- _updatePrice(price: string): void;
32
- _updateOriginalPrice(originalPrice: string): void;
33
- _updateQuantity(quantity: string): void;
34
- /**
35
- * @todo Optimize template reordering for performance.
36
- * @description Reorders the template structure based on current orientation and visibility settings.
37
- */
38
- _reOrderTemplate(): void;
39
- _updateDataTypeAttributes(itemsType: ProductType): void;
40
- _updateDataNumberAttributes(itemId: string): void;
41
- _reFillTemplate(): void;
27
+ _updateImageSrc(imageSrc: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
28
+ _updateName(name: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
29
+ _updatePrice(price: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
30
+ _updateOriginalPrice(originalPrice: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
31
+ _updateQuantity(quantity: string, itemsTypeOverride: ProductType | undefined, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
32
+ _reOrderTemplate(modifier?: ReturnType<typeof this.api.getDocumentModifier>): void;
33
+ _updateDataTypeAttributes(itemsType: ProductType, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
34
+ _updateDataNumberAttributes(itemId: string, modifier: ReturnType<typeof this.api.getDocumentModifier>): void;
35
+ _reFillTemplate(itemsType?: ProductType): void;
42
36
  _recalculateTrimming(): void;
43
37
  private _getParagraphFromBlock;
44
38
  private _escapeRegex;
@@ -42,6 +42,7 @@ export declare enum ItemsBlockControlId {
42
42
  PRICE_PADDINGS = "items-block-price-paddings-control",
43
43
  PRICE_HIDE_DISCOUNT = "items-block-price-hide-discount-control",
44
44
  PRICE_FORMATTED_PRICE = "items-block-price-formatted-price-control",
45
+ PRICE_SINGLE_PRICE = "items-block-price-single-price-control",
45
46
  PRICE_CURRENCY_SYMBOL = "items-block-price-currency-symbol-control",
46
47
  PRICE_CURRENCY_LOCATION = "items-block-price-currency-location-control",
47
48
  PRICE_ORIENTATION = "items-block-price-orientation-control",
@@ -1,30 +1,4 @@
1
1
  export declare const templateFirstLine = "<td align=\"center\" class=\"ins-product-td items-block items-block-v2\">";
2
- export declare const configAttributes: {
3
- TYPE: string;
4
- ITEMS_INDEX_SELECT_CONTROL_VALUE: string;
5
- ORIENTATION: string;
6
- PRODUCT_NAME_TRIMMING: string;
7
- PRODUCT_PRICE_HIDE_DISCOUNT: string;
8
- PRODUCT_PRICE_FORMATTED: string;
9
- PRODUCT_PRICE_CURRENCY_SYMBOL: string;
10
- PRODUCT_PRICE_CURRENCY_LOCATION: string;
11
- PRODUCT_ORIGINAL_PRICE_CONTROL_ORIENTATION: string;
12
- PRODUCT_BUTTON_LINK: string;
13
- PRODUCT_IMAGE_LINK: string;
14
- PRODUCT_NAME_CONTROL_VALUE: string;
15
- PRODUCT_QUANTITY_CONTROL_VALUE: string;
16
- PRODUCT_PRICE_CONTROL_VALUE: string;
17
- BLOCK_INSTANCE_ID: string;
18
- NAME_CONTROL_ENABLED: string;
19
- QUANTITY_CONTROL_ENABLED: string;
20
- PRICE_CONTROL_OPENED: string;
21
- PRODUCT_IMAGE_VISIBLE: string;
22
- PRODUCT_NAME_VISIBLE: string;
23
- PRODUCT_QUANTITY_VISIBLE: string;
24
- PRODUCT_PRICE_VISIBLE: string;
25
- PRODUCT_ORIGINAL_PRICE_VISIBLE: string;
26
- PRODUCT_BUTTON_VISIBLE: string;
27
- };
28
2
  export declare const productPairs: {
29
3
  PAIRS_FOR_EXTENSION: {
30
4
  imageSrc: {
@@ -79,25 +53,37 @@ export declare const productPairs: {
79
53
  CART_ITEMS: {
80
54
  PRICE: string;
81
55
  PRICE_FORMATTED: string;
56
+ SINGLE_PRICE: string;
57
+ SINGLE_PRICE_FORMATTED: string;
82
58
  CURRENCY: string;
83
59
  DEFAULT_PRICE: string;
84
60
  DEFAULT_PRICE_FORMATTED: string;
61
+ DEFAULT_SINGLE_PRICE: string;
62
+ DEFAULT_SINGLE_PRICE_FORMATTED: string;
85
63
  DEFAULT_CURRENCY: string;
86
64
  };
87
65
  BROWSED_ITEMS: {
88
66
  PRICE: string;
89
67
  PRICE_FORMATTED: string;
68
+ SINGLE_PRICE: string;
69
+ SINGLE_PRICE_FORMATTED: string;
90
70
  CURRENCY: string;
91
71
  DEFAULT_PRICE: string;
92
72
  DEFAULT_PRICE_FORMATTED: string;
73
+ DEFAULT_SINGLE_PRICE: string;
74
+ DEFAULT_SINGLE_PRICE_FORMATTED: string;
93
75
  DEFAULT_CURRENCY: string;
94
76
  };
95
77
  PURCHASED_ITEMS: {
96
78
  PRICE: string;
97
79
  PRICE_FORMATTED: string;
80
+ SINGLE_PRICE: string;
81
+ SINGLE_PRICE_FORMATTED: string;
98
82
  CURRENCY: string;
99
83
  DEFAULT_PRICE: string;
100
84
  DEFAULT_PRICE_FORMATTED: string;
85
+ DEFAULT_SINGLE_PRICE: string;
86
+ DEFAULT_SINGLE_PRICE_FORMATTED: string;
101
87
  DEFAULT_CURRENCY: string;
102
88
  };
103
89
  };
@@ -105,25 +91,37 @@ export declare const productPairs: {
105
91
  CART_ITEMS: {
106
92
  PRICE: string;
107
93
  PRICE_FORMATTED: string;
94
+ SINGLE_PRICE: string;
95
+ SINGLE_PRICE_FORMATTED: string;
108
96
  CURRENCY: string;
109
97
  DEFAULT_PRICE: string;
110
98
  DEFAULT_PRICE_FORMATTED: string;
99
+ DEFAULT_SINGLE_PRICE: string;
100
+ DEFAULT_SINGLE_PRICE_FORMATTED: string;
111
101
  DEFAULT_CURRENCY: string;
112
102
  };
113
103
  BROWSED_ITEMS: {
114
104
  PRICE: string;
115
105
  PRICE_FORMATTED: string;
106
+ SINGLE_PRICE: string;
107
+ SINGLE_PRICE_FORMATTED: string;
116
108
  CURRENCY: string;
117
109
  DEFAULT_PRICE: string;
118
110
  DEFAULT_PRICE_FORMATTED: string;
111
+ DEFAULT_SINGLE_PRICE: string;
112
+ DEFAULT_SINGLE_PRICE_FORMATTED: string;
119
113
  DEFAULT_CURRENCY: string;
120
114
  };
121
115
  PURCHASED_ITEMS: {
122
116
  PRICE: string;
123
117
  PRICE_FORMATTED: string;
118
+ SINGLE_PRICE: string;
119
+ SINGLE_PRICE_FORMATTED: string;
124
120
  CURRENCY: string;
125
121
  DEFAULT_PRICE: string;
126
122
  DEFAULT_PRICE_FORMATTED: string;
123
+ DEFAULT_SINGLE_PRICE: string;
124
+ DEFAULT_SINGLE_PRICE_FORMATTED: string;
127
125
  DEFAULT_CURRENCY: string;
128
126
  };
129
127
  };
@@ -29,11 +29,9 @@ export declare const DefaultConfigValues: {
29
29
  productPriceCurrencyLocationControlValue: string;
30
30
  productButtonLinkControlValue: string;
31
31
  productImageLinkControlValue: string;
32
- productNameControlEnabled: string;
33
32
  productQuantityControlOpened: string;
34
33
  productNameControlTrim: string;
35
34
  productQuantityControlEnabled: string;
36
- productPriceControlOpened: string;
37
35
  productImageVisible: string;
38
36
  productNameVisible: string;
39
37
  productQuantityVisible: string;
@@ -41,6 +39,7 @@ export declare const DefaultConfigValues: {
41
39
  productOriginalPriceVisible: string;
42
40
  productButtonVisible: string;
43
41
  productImageWidth: string;
42
+ productImageHeight: string;
44
43
  };
45
44
  export declare const ItemInCartOptions: {
46
45
  [x: string]: {
@@ -1,6 +1,8 @@
1
+ import { type ItemsBlockConfig } from './utils/nodeConfigUtils';
1
2
  declare const migrationTemplate = "ADD YOUR MIGRATION HERE";
2
3
  type ProductType = 'CART_ITEMS' | 'BROWSED_ITEMS' | 'PURCHASED_ITEMS';
3
4
  type OrientationType = 'vertical' | 'horizontal';
5
+ type PriceOrientationType = 'vertical' | 'horizontal';
4
6
  type TemplateParameters = {
5
7
  orientation: OrientationType;
6
8
  itemsType: ProductType;
@@ -8,6 +10,25 @@ type TemplateParameters = {
8
10
  currencySymbol?: string;
9
11
  currencyLocation?: string;
10
12
  formattedPrice?: boolean;
13
+ /** Whether to show single product price (price divided by quantity) */
14
+ singlePrice?: boolean;
15
+ migrate?: boolean;
16
+ /** Legacy config format (data-* attributes for migration) */
17
+ configBlockAttributes?: Record<string, string>;
18
+ /** New config format (Stripo V2 nodeConfig from esd-ext-config) */
19
+ nodeConfig?: Partial<ItemsBlockConfig>;
20
+ /** Extracted styles from a[product-attr="name"] for migration */
21
+ nameStyles?: string;
22
+ /** Extracted styles from a.es-button for migration */
23
+ buttonStyles?: string;
24
+ /** Extracted styles from p[product-attr="price"] for migration */
25
+ priceStyles?: string;
26
+ /** Extracted styles from p[product-attr="originalPrice"] for migration */
27
+ originalPriceStyles?: string;
28
+ /** Extracted styles from p[product-attr="quantity"] for migration */
29
+ quantityStyles?: string;
30
+ /** Price orientation within the card ('vertical' = stacked, 'horizontal' = side-by-side) */
31
+ priceOrientation?: PriceOrientationType;
11
32
  };
12
33
  /**
13
34
  * Generates the default template for the Items Block.
@@ -20,5 +41,5 @@ type TemplateParameters = {
20
41
  * @param params.formattedPrice - Whether to use formatted price display
21
42
  * @returns HTML template string for the Items Block
22
43
  */
23
- export declare function getDefaultTemplate({ orientation, itemsType, itemId, currencySymbol, currencyLocation, formattedPrice, }: TemplateParameters): string;
44
+ export declare function getDefaultTemplate({ orientation, itemsType, itemId, currencySymbol, currencyLocation, migrate, formattedPrice, configBlockAttributes, nodeConfig, nameStyles, buttonStyles, priceStyles, originalPriceStyles, quantityStyles, priceOrientation, }: TemplateParameters): string;
24
45
  export default migrationTemplate;