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

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 (327) hide show
  1. package/README.md +36 -0
  2. package/dist/@types/config/schemas.js +71 -66
  3. package/dist/components/Guido.vue.js +3 -3
  4. package/dist/components/Guido.vue2.js +74 -61
  5. package/dist/components/organisms/base/Toaster.vue.js +6 -6
  6. package/dist/components/organisms/email-preview/PreviewContainer.vue.js +3 -3
  7. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.js +6 -6
  8. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue2.js +17 -13
  9. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +6 -6
  10. package/dist/components/organisms/email-preview/amp/AmpToggle.vue2.js +14 -12
  11. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.js +18 -0
  12. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue2.js +15 -0
  13. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +16 -15
  14. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +14 -22
  15. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +5 -5
  16. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue2.js +2 -2
  17. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +12 -11
  18. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.js +12 -10
  19. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.js +11 -10
  20. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue2.js +15 -14
  21. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +15 -14
  22. package/dist/components/organisms/header/EditorActions.vue.js +21 -0
  23. package/dist/components/organisms/header/EditorActions.vue2.js +41 -0
  24. package/dist/components/organisms/header/EditorToolbar.vue.js +18 -0
  25. package/dist/components/organisms/header/EditorToolbar.vue2.js +17 -0
  26. package/dist/components/organisms/header/HeaderWrapper.vue.js +10 -9
  27. package/dist/components/organisms/header/LeftSlot.vue.js +11 -11
  28. package/dist/components/organisms/header/LeftSlot.vue2.js +27 -23
  29. package/dist/components/organisms/header/MiddleSlot.vue.js +7 -7
  30. package/dist/components/organisms/header/MiddleSlot.vue2.js +11 -15
  31. package/dist/components/organisms/header/RightSlot.vue.js +11 -14
  32. package/dist/components/organisms/header/RightSlot.vue2.js +13 -30
  33. package/dist/components/organisms/header/version-history/VersionHistory.vue.js +5 -5
  34. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +15 -15
  35. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +1 -1
  36. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +20 -19
  37. package/dist/composables/useActionsApi.js +37 -32
  38. package/dist/composables/useBlocksConfig.js +26 -16
  39. package/dist/composables/useHtmlValidator.js +114 -104
  40. package/dist/composables/useRecommendation.js +54 -21
  41. package/dist/config/compiler/recommendationCompilerRules.js +45 -39
  42. package/dist/config/compiler/utils/recommendationCompilerUtils.js +121 -0
  43. package/dist/config/migrator/index.js +9 -8
  44. package/dist/config/migrator/itemsBlockMigrator.js +355 -0
  45. package/dist/config/migrator/recommendationMigrator.js +2 -2
  46. package/dist/enums/academy.js +8 -0
  47. package/dist/enums/defaults.js +8 -4
  48. package/dist/enums/extensions/recommendationBlock.js +1 -1
  49. package/dist/enums/onboarding.js +1 -2
  50. package/dist/enums/recommendation.js +16 -15
  51. package/dist/enums/unsubscribe.js +20 -21
  52. package/dist/extensions/Blocks/Items/block.js +28 -41
  53. package/dist/extensions/Blocks/Items/controls/button/link.js +18 -37
  54. package/dist/extensions/Blocks/Items/controls/cardComposition.js +164 -96
  55. package/dist/extensions/Blocks/Items/controls/image/link.js +16 -35
  56. package/dist/extensions/Blocks/Items/controls/name/trimming.js +30 -42
  57. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +35 -45
  58. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +56 -59
  59. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +45 -48
  60. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +23 -34
  61. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +47 -57
  62. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +75 -0
  63. package/dist/extensions/Blocks/Items/controls/settingsControl.js +198 -184
  64. package/dist/extensions/Blocks/Items/enums/controlEnums.js +2 -2
  65. package/dist/extensions/Blocks/Items/enums/productEnums.js +43 -45
  66. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +3 -6
  67. package/dist/extensions/Blocks/Items/extension.js +7 -6
  68. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +58 -49
  69. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +48 -59
  70. package/dist/extensions/Blocks/Items/settingsPanel.js +28 -32
  71. package/dist/extensions/Blocks/Items/template.js +397 -143
  72. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +176 -0
  73. package/dist/extensions/Blocks/Recommendation/block.js +133 -9
  74. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  75. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  76. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +66 -0
  77. package/dist/extensions/Blocks/Recommendation/constants/layout.js +22 -0
  78. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +21 -0
  79. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  80. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  81. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
  82. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  83. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +92 -0
  84. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +102 -0
  85. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +209 -0
  86. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +52 -0
  87. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +250 -0
  88. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +70 -0
  89. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +160 -0
  90. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +67 -0
  91. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +307 -0
  92. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +21 -0
  93. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  94. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +108 -0
  95. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  96. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  97. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +73 -0
  98. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +73 -0
  99. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  100. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +73 -0
  101. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +73 -0
  102. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  103. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
  104. package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
  105. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +19 -3
  106. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
  107. package/dist/extensions/Blocks/Recommendation/services/configService.js +240 -0
  108. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
  109. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +254 -207
  110. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +228 -0
  111. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +251 -0
  112. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +66 -0
  113. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  114. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +169 -0
  115. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +73 -0
  116. package/dist/extensions/Blocks/Recommendation/templates/utils.js +134 -0
  117. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
  118. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  119. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +36 -0
  120. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
  121. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
  122. package/dist/extensions/Blocks/common-control.js +104 -106
  123. package/dist/extensions/Blocks/controlFactories.js +162 -120
  124. package/dist/extensions/ModulesTabIcons/extension.js +17 -0
  125. package/dist/guido.css +1 -1
  126. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +520 -322
  127. package/dist/package.json.js +1 -1
  128. package/dist/services/recommendationApi.js +11 -8
  129. package/dist/services/templateLibraryApi.js +16 -13
  130. package/dist/src/@types/config/schemas.d.ts +10 -2
  131. package/dist/src/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.d.ts +2 -0
  132. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +4 -0
  133. package/dist/src/components/organisms/header/EditorToolbar.vue.d.ts +2 -0
  134. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  135. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  136. package/dist/src/composables/useActionsApi.d.ts +1 -0
  137. package/dist/src/composables/useConfig.d.ts +4 -0
  138. package/dist/src/composables/useRecommendation.d.ts +1 -0
  139. package/dist/src/config/compiler/utils/recommendationCompilerUtils.d.ts +17 -0
  140. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +6 -0
  141. package/dist/src/enums/academy.d.ts +12 -0
  142. package/dist/src/enums/defaults.d.ts +4 -0
  143. package/dist/src/enums/onboarding.d.ts +0 -1
  144. package/dist/src/enums/unsubscribe.d.ts +0 -1
  145. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -1
  146. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -3
  147. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +13 -4
  148. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -3
  149. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -1
  150. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -1
  151. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -1
  152. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -1
  153. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -1
  154. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -2
  155. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +13 -0
  156. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +10 -16
  157. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +1 -0
  158. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +24 -26
  159. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +1 -2
  160. package/dist/src/extensions/Blocks/Items/template.d.ts +22 -1
  161. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +77 -0
  162. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +67 -0
  163. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  164. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
  165. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
  166. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
  167. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +41 -0
  168. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +35 -0
  169. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  170. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  171. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  172. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +95 -0
  173. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  174. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +24 -0
  175. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +37 -0
  176. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
  177. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +52 -0
  178. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  179. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +79 -0
  180. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
  181. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +60 -0
  182. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
  183. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +221 -0
  184. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +29 -0
  185. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  186. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +34 -0
  187. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  188. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  189. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  190. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  191. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  192. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  193. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  194. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  195. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  196. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  197. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  198. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  199. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
  200. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  201. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  202. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
  203. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
  204. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +138 -468
  205. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +20 -0
  206. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → grid/migration.d.ts} +11 -4
  207. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +33 -0
  208. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +41 -0
  209. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +8 -0
  210. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +25 -0
  211. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +18 -0
  212. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +66 -0
  213. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
  214. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +166 -0
  215. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  216. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
  217. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
  218. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
  219. package/dist/src/extensions/Blocks/common-control.d.ts +10 -12
  220. package/dist/src/extensions/ModulesTabIcons/extension.d.ts +2 -0
  221. package/dist/src/stores/config.d.ts +36 -0
  222. package/dist/src/stores/editor.d.ts +21 -0
  223. package/dist/static/assets/desktop/desktop-mockup-center.svg.js +4 -0
  224. package/dist/static/assets/desktop/desktop-mockup-left.svg.js +4 -0
  225. package/dist/static/assets/desktop/desktop-mockup-right.svg.js +4 -0
  226. package/dist/static/assets/mobile/email-mockup.svg.js +4 -0
  227. package/dist/static/assets/mobile/inbox-mockup.svg.js +4 -0
  228. package/dist/static/styles/components/notification.css.js +1 -0
  229. package/dist/static/styles/components/version-history.css.js +10 -2
  230. package/dist/static/styles/components/wide-panel.css.js +18 -6
  231. package/dist/static/styles/customEditorStyle.css.js +39 -2
  232. package/dist/stores/editor.js +1 -0
  233. package/dist/utils/pairProductVariables.js +74 -70
  234. package/dist/utils/templatePreparation.js +19 -18
  235. package/package.json +3 -3
  236. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.js +0 -17
  237. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +0 -20
  238. package/dist/extensions/Blocks/Items/store/items-block.js +0 -75
  239. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  240. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  241. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -76
  242. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -46
  243. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  244. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  245. package/dist/extensions/Blocks/Recommendation/control.js +0 -306
  246. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  247. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  248. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  249. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  250. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  251. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  252. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  253. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  254. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  255. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  256. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  257. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  258. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  259. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  260. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  261. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  262. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  263. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  264. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  265. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  266. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  267. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  268. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  269. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  270. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  271. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  272. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  273. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  274. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  275. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  276. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  277. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  278. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  279. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  280. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  281. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  282. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  283. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -43
  284. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  285. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  286. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -50
  287. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  288. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  289. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
  290. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  291. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  292. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  293. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  294. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  295. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  296. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  297. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  298. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  299. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  300. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  301. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  302. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  303. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  304. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  305. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  306. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  307. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  308. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  309. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  310. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  311. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  312. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  313. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  314. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  315. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  316. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  317. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  318. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  319. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  320. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  321. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  322. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  323. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  324. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  325. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
  326. package/dist/static/assets/inbox-mockup.svg.js +0 -4
  327. 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 */
@@ -129,6 +129,10 @@ export declare const EditorSchema: v.ObjectSchema<{
129
129
  readonly senderName: "";
130
130
  readonly subject: "";
131
131
  }>;
132
+ /** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
133
+ readonly savedModulesFolderName: v.OptionalSchema<v.StringSchema<undefined>, "savedModules">;
134
+ /** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
135
+ readonly defaultModulesFolderName: v.OptionalSchema<v.StringSchema<undefined>, "defaultModules">;
132
136
  }, undefined>;
133
137
  /**
134
138
  * UI configuration - visual elements and layout
@@ -428,7 +432,7 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
428
432
  /** Locale for the editor UI */
429
433
  readonly locale: v.OptionalSchema<v.StringSchema<undefined>, "en">;
430
434
  /** Path to translations object */
431
- readonly translationsPath: v.OptionalSchema<v.StringSchema<undefined>, "window.trans.en">;
435
+ readonly translationsPath: v.OptionalSchema<v.StringSchema<undefined>, "window.trans[Object.keys(window.trans)[0]]">;
432
436
  /** Migration date for template compatibility */
433
437
  readonly migrationDate: v.OptionalSchema<v.NumberSchema<undefined>, 1759696858>;
434
438
  /** Email header settings */
@@ -441,6 +445,10 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
441
445
  readonly senderName: "";
442
446
  readonly subject: "";
443
447
  }>;
448
+ /** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
449
+ readonly savedModulesFolderName: v.OptionalSchema<v.StringSchema<undefined>, "savedModules">;
450
+ /** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
451
+ readonly defaultModulesFolderName: v.OptionalSchema<v.StringSchema<undefined>, "defaultModules">;
444
452
  }, undefined>, {}>;
445
453
  /** UI configuration */
446
454
  readonly ui: v.OptionalSchema<v.ObjectSchema<{
@@ -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
  };
@@ -41,6 +41,8 @@ export declare const useConfig: () => {
41
41
  senderName: string;
42
42
  subject: string;
43
43
  };
44
+ savedModulesFolderName: string;
45
+ defaultModulesFolderName: string;
44
46
  };
45
47
  ui: {
46
48
  showHeader: boolean;
@@ -130,6 +132,8 @@ export declare const useConfig: () => {
130
132
  senderName: string;
131
133
  subject: string;
132
134
  };
135
+ savedModulesFolderName: string;
136
+ defaultModulesFolderName: string;
133
137
  } | null>;
134
138
  ui: import("vue").ComputedRef<{
135
139
  showHeader: boolean;
@@ -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;
@@ -9,3 +9,7 @@ export declare const TemplateTypes: {
9
9
  export declare const EditorType: number;
10
10
  export declare const MAX_DEFAULT_TEMPLATE_ID = 13;
11
11
  export declare const ProductIds: Record<string, number>;
12
+ export declare const ModuleFolderDefaults: {
13
+ readonly SAVED_MODULES: "savedModules";
14
+ readonly DEFAULT_MODULES: "defaultModules";
15
+ };
@@ -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]: {