@useinsider/guido 3.14.0-beta.2bae355 → 3.14.0-beta.38ef0be

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 (337) hide show
  1. package/dist/components/organisms/header/EditorActions.vue.js +1 -1
  2. package/dist/components/organisms/header/EditorActions.vue2.js +39 -47
  3. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +28 -30
  4. package/dist/composables/useHtmlValidator.js +111 -106
  5. package/dist/composables/useHttp.js +59 -66
  6. package/dist/config/compiler/itemsCompilerRules.js +25 -4
  7. package/dist/config/compiler/utils/itemsCompilerUtils.js +28 -0
  8. package/dist/config/migrator/index.js +9 -8
  9. package/dist/config/migrator/itemsBlockMigrator.js +47 -45
  10. package/dist/config/migrator/productNameLinkMigrator.js +27 -0
  11. package/dist/extensions/Blocks/Items/block.js +30 -30
  12. package/dist/extensions/Blocks/Items/controls/name/trimming.js +16 -16
  13. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +26 -22
  14. package/dist/extensions/Blocks/Items/controls/settingsControl.js +36 -35
  15. package/dist/extensions/Blocks/Items/template.js +228 -263
  16. package/dist/extensions/Blocks/Items/utils/nameNode.js +4 -0
  17. package/dist/guido.css +1 -1
  18. package/dist/{composables → src/composables}/useHttp.d.ts +0 -6
  19. package/dist/src/config/compiler/utils/itemsCompilerUtils.d.ts +12 -0
  20. package/dist/src/config/migrator/productNameLinkMigrator.d.ts +1 -0
  21. package/dist/{extensions → src/extensions}/Blocks/Items/block.d.ts +1 -1
  22. package/dist/src/extensions/Blocks/Items/utils/nameNode.d.ts +9 -0
  23. package/dist/src/utils/unwrapProductNameLink.d.ts +15 -0
  24. package/dist/utils/pairProductVariables.js +75 -72
  25. package/dist/utils/unwrapProductNameLink.js +37 -0
  26. package/package.json +1 -1
  27. /package/dist/{@types → src/@types}/config/defaults.d.ts +0 -0
  28. /package/dist/{@types → src/@types}/config/index.d.ts +0 -0
  29. /package/dist/{@types → src/@types}/config/schemas.d.ts +0 -0
  30. /package/dist/{@types → src/@types}/config/types.d.ts +0 -0
  31. /package/dist/{@types → src/@types}/config/validator.d.ts +0 -0
  32. /package/dist/{@types → src/@types}/events.d.ts +0 -0
  33. /package/dist/{@types → src/@types}/extensions/block.d.ts +0 -0
  34. /package/dist/{@types → src/@types}/generic.d.ts +0 -0
  35. /package/dist/{@types → src/@types}/save-as-template.d.ts +0 -0
  36. /package/dist/{App.vue.d.ts → src/App.vue.d.ts} +0 -0
  37. /package/dist/{components → src/components}/Guido.vue.d.ts +0 -0
  38. /package/dist/{components → src/components}/organisms/AutoSaveController.vue.d.ts +0 -0
  39. /package/dist/{components → src/components}/organisms/LoadingWrapper.vue.d.ts +0 -0
  40. /package/dist/{components → src/components}/organisms/base/Toaster.vue.d.ts +0 -0
  41. /package/dist/{components → src/components}/organisms/email-preview/PreviewContainer.vue.d.ts +0 -0
  42. /package/dist/{components → src/components}/organisms/email-preview/amp/AmpErrorModal.vue.d.ts +0 -0
  43. /package/dist/{components → src/components}/organisms/email-preview/amp/AmpToggle.vue.d.ts +0 -0
  44. /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.d.ts +0 -0
  45. /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/DesktopPreview.vue.d.ts +0 -0
  46. /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.d.ts +0 -0
  47. /package/dist/{components → src/components}/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.d.ts +0 -0
  48. /package/dist/{components → src/components}/organisms/email-preview/mobile-preview/ContentView.vue.d.ts +0 -0
  49. /package/dist/{components → src/components}/organisms/email-preview/mobile-preview/InboxView.vue.d.ts +0 -0
  50. /package/dist/{components → src/components}/organisms/email-preview/mobile-preview/MobilePreview.vue.d.ts +0 -0
  51. /package/dist/{components → src/components}/organisms/extensions/recommendation/FilterItem.vue.d.ts +0 -0
  52. /package/dist/{components → src/components}/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts +0 -0
  53. /package/dist/{components → src/components}/organisms/extensions/recommendation/Filters.vue.d.ts +0 -0
  54. /package/dist/{components → src/components}/organisms/extensions/recommendation/LogicAdapter.vue.d.ts +0 -0
  55. /package/dist/{components → src/components}/organisms/header/AutoSaveToggle.vue.d.ts +0 -0
  56. /package/dist/{components → src/components}/organisms/header/EditorActions.vue.d.ts +0 -0
  57. /package/dist/{components → src/components}/organisms/header/EditorToolbar.vue.d.ts +0 -0
  58. /package/dist/{components → src/components}/organisms/header/HeaderWrapper.vue.d.ts +0 -0
  59. /package/dist/{components → src/components}/organisms/header/LeftSlot.vue.d.ts +0 -0
  60. /package/dist/{components → src/components}/organisms/header/MiddleSlot.vue.d.ts +0 -0
  61. /package/dist/{components → src/components}/organisms/header/MigrationConfirmModal.vue.d.ts +0 -0
  62. /package/dist/{components → src/components}/organisms/header/RightSlot.vue.d.ts +0 -0
  63. /package/dist/{components → src/components}/organisms/header/ViewOptions.vue.d.ts +0 -0
  64. /package/dist/{components → src/components}/organisms/header/version-history/RestoreButton.vue.d.ts +0 -0
  65. /package/dist/{components → src/components}/organisms/header/version-history/VersionHistory.vue.d.ts +0 -0
  66. /package/dist/{components → src/components}/organisms/header/version-history/VersionHistoryItem.vue.d.ts +0 -0
  67. /package/dist/{components → src/components}/organisms/header/version-history/ViewOptions.vue.d.ts +0 -0
  68. /package/dist/{components → src/components}/organisms/onboarding/AMPOnboarding.vue.d.ts +0 -0
  69. /package/dist/{components → src/components}/organisms/onboarding/GenericOnboarding.vue.d.ts +0 -0
  70. /package/dist/{components → src/components}/organisms/onboarding/ItemsOnboarding.vue.d.ts +0 -0
  71. /package/dist/{components → src/components}/organisms/onboarding/NewVersionPopup.vue.d.ts +0 -0
  72. /package/dist/{components → src/components}/organisms/onboarding/OnboardingWrapper.vue.d.ts +0 -0
  73. /package/dist/{components → src/components}/organisms/onboarding/TextBlockOnboarding.vue.d.ts +0 -0
  74. /package/dist/{components → src/components}/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts +0 -0
  75. /package/dist/{components → src/components}/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts +0 -0
  76. /package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.d.ts +0 -0
  77. /package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribePageSelection.vue.d.ts +0 -0
  78. /package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeTypeSelection.vue.d.ts +0 -0
  79. /package/dist/{components → src/components}/organisms/unsubscribe/UnsubscribeWrapper.vue.d.ts +0 -0
  80. /package/dist/{components → src/components}/wrappers/WpDrawer.vue.d.ts +0 -0
  81. /package/dist/{components → src/components}/wrappers/WpModal.vue.d.ts +0 -0
  82. /package/dist/{composables → src/composables}/useActionsApi.d.ts +0 -0
  83. /package/dist/{composables → src/composables}/useAllowlist.d.ts +0 -0
  84. /package/dist/{composables → src/composables}/useAutoSave.d.ts +0 -0
  85. /package/dist/{composables → src/composables}/useBlocksConfig.d.ts +0 -0
  86. /package/dist/{composables → src/composables}/useCodeEditorApi.d.ts +0 -0
  87. /package/dist/{composables → src/composables}/useConfig.d.ts +0 -0
  88. /package/dist/{composables → src/composables}/useCortexBlueprintBridge.d.ts +0 -0
  89. /package/dist/{composables → src/composables}/useCustomInterfaceAppearance.d.ts +0 -0
  90. /package/dist/{composables → src/composables}/useDebounce.d.ts +0 -0
  91. /package/dist/{composables → src/composables}/useEmailTemplateApplier.d.ts +0 -0
  92. /package/dist/{composables → src/composables}/useExport.d.ts +0 -0
  93. /package/dist/{composables → src/composables}/useFullStoryBridge.d.ts +0 -0
  94. /package/dist/{composables → src/composables}/useGuidoActions.d.ts +0 -0
  95. /package/dist/{composables → src/composables}/useGuidoStateBridge.d.ts +0 -0
  96. /package/dist/{composables → src/composables}/useHtmlCompiler.d.ts +0 -0
  97. /package/dist/{composables → src/composables}/useHtmlValidator.d.ts +0 -0
  98. /package/dist/{composables → src/composables}/useModuleDynamicContentRepair.d.ts +0 -0
  99. /package/dist/{composables → src/composables}/usePartner.d.ts +0 -0
  100. /package/dist/{composables → src/composables}/usePreviewInteractionGuard.d.ts +0 -0
  101. /package/dist/{composables → src/composables}/usePreviewMode.d.ts +0 -0
  102. /package/dist/{composables → src/composables}/useProvideInject.d.ts +0 -0
  103. /package/dist/{composables → src/composables}/useRecommendation.d.ts +0 -0
  104. /package/dist/{composables → src/composables}/useRecommendationPreview.d.ts +0 -0
  105. /package/dist/{composables → src/composables}/useResponsivePreview.d.ts +0 -0
  106. /package/dist/{composables → src/composables}/useRibbonOffset.d.ts +0 -0
  107. /package/dist/{composables → src/composables}/useSave.d.ts +0 -0
  108. /package/dist/{composables → src/composables}/useStripo.d.ts +0 -0
  109. /package/dist/{composables → src/composables}/useStripoEventHandler.d.ts +0 -0
  110. /package/dist/{composables → src/composables}/useStripoNotifications.d.ts +0 -0
  111. /package/dist/{composables → src/composables}/useSyncModuleExtractor.d.ts +0 -0
  112. /package/dist/{composables → src/composables}/useTimerClone.d.ts +0 -0
  113. /package/dist/{composables → src/composables}/useToaster.d.ts +0 -0
  114. /package/dist/{composables → src/composables}/useTranslations.d.ts +0 -0
  115. /package/dist/{composables → src/composables}/useUserRole.d.ts +0 -0
  116. /package/dist/{composables → src/composables}/useValidation.d.ts +0 -0
  117. /package/dist/{composables → src/composables}/useVersionHistoryApi.d.ts +0 -0
  118. /package/dist/{composables → src/composables}/validators/saveAsTemplate.d.ts +0 -0
  119. /package/dist/{composables → src/composables}/validators/useCouponBlockValidator.d.ts +0 -0
  120. /package/dist/{composables → src/composables}/validators/useLiquidValidator.d.ts +0 -0
  121. /package/dist/{composables → src/composables}/validators/useUnsubscribeBlockValidator.d.ts +0 -0
  122. /package/dist/{config → src/config}/compiler/htmlCompilerRules.d.ts +0 -0
  123. /package/dist/{config → src/config}/compiler/itemsCompilerRules.d.ts +0 -0
  124. /package/dist/{config → src/config}/compiler/liquidCompilerRules.d.ts +0 -0
  125. /package/dist/{config → src/config}/compiler/outlookCompilerRules.d.ts +0 -0
  126. /package/dist/{config → src/config}/compiler/recommendationCompilerRules.d.ts +0 -0
  127. /package/dist/{config → src/config}/compiler/socialCompilerRules.d.ts +0 -0
  128. /package/dist/{config → src/config}/compiler/unsubscribeCompilerRules.d.ts +0 -0
  129. /package/dist/{config → src/config}/compiler/utils/recommendationCompilerUtils.d.ts +0 -0
  130. /package/dist/{config → src/config}/compiler/utils/recommendationIgnoreUtils.d.ts +0 -0
  131. /package/dist/{config → src/config}/i18n/en/index.d.ts +0 -0
  132. /package/dist/{config → src/config}/i18n/index.d.ts +0 -0
  133. /package/dist/{config → src/config}/migrator/checkboxMigrator.d.ts +0 -0
  134. /package/dist/{config → src/config}/migrator/couponBlockMigrator.d.ts +0 -0
  135. /package/dist/{config → src/config}/migrator/index.d.ts +0 -0
  136. /package/dist/{config → src/config}/migrator/itemsBlockMigrator.d.ts +0 -0
  137. /package/dist/{config → src/config}/migrator/radioButtonMigrator.d.ts +0 -0
  138. /package/dist/{config → src/config}/migrator/recommendation/compositionMapper.d.ts +0 -0
  139. /package/dist/{config → src/config}/migrator/recommendation/extractors.d.ts +0 -0
  140. /package/dist/{config → src/config}/migrator/recommendation/htmlBuilder.d.ts +0 -0
  141. /package/dist/{config → src/config}/migrator/recommendation/parseLegacyConfig.d.ts +0 -0
  142. /package/dist/{config → src/config}/migrator/recommendation/settingsMapper.d.ts +0 -0
  143. /package/dist/{config → src/config}/migrator/recommendation/themeMapper.d.ts +0 -0
  144. /package/dist/{config → src/config}/migrator/recommendation/types.d.ts +0 -0
  145. /package/dist/{config → src/config}/migrator/recommendationMigrator.d.ts +0 -0
  146. /package/dist/{config → src/config}/migrator/socialIconMigrator.d.ts +0 -0
  147. /package/dist/{config → src/config}/migrator/textBlockMigration.d.ts +0 -0
  148. /package/dist/{config → src/config}/migrator/unsubscribeMigrator.d.ts +0 -0
  149. /package/dist/{enums → src/enums}/academy.d.ts +0 -0
  150. /package/dist/{enums → src/enums}/block.d.ts +0 -0
  151. /package/dist/{enums → src/enums}/date.d.ts +0 -0
  152. /package/dist/{enums → src/enums}/defaults.d.ts +0 -0
  153. /package/dist/{enums → src/enums}/extensions/recommendationBlock.d.ts +0 -0
  154. /package/dist/{enums → src/enums}/html-validator.d.ts +0 -0
  155. /package/dist/{enums → src/enums}/onboarding.d.ts +0 -0
  156. /package/dist/{enums → src/enums}/preview.d.ts +0 -0
  157. /package/dist/{enums → src/enums}/recommendation.d.ts +0 -0
  158. /package/dist/{enums → src/enums}/roles.d.ts +0 -0
  159. /package/dist/{enums → src/enums}/toaster.d.ts +0 -0
  160. /package/dist/{enums → src/enums}/unsubscribe.d.ts +0 -0
  161. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/block.d.ts +0 -0
  162. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/control.d.ts +0 -0
  163. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/extension.d.ts +0 -0
  164. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/iconsRegistry.d.ts +0 -0
  165. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/settingsPanel.d.ts +0 -0
  166. /package/dist/{extensions → src/extensions}/Blocks/Checkbox/template.d.ts +0 -0
  167. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/block.d.ts +0 -0
  168. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/constants.d.ts +0 -0
  169. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/controls/index.d.ts +0 -0
  170. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/extension.d.ts +0 -0
  171. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/iconsRegistry.d.ts +0 -0
  172. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/settingsPanel.d.ts +0 -0
  173. /package/dist/{extensions → src/extensions}/Blocks/CouponBlock/template.d.ts +0 -0
  174. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/button/link.d.ts +0 -0
  175. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/cardComposition.d.ts +0 -0
  176. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/image/link.d.ts +0 -0
  177. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/index.d.ts +0 -0
  178. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/name/trimming.d.ts +0 -0
  179. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/currencyLocation.d.ts +0 -0
  180. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/currencySymbol.d.ts +0 -0
  181. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/formattedPrice.d.ts +0 -0
  182. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/hideDiscount.d.ts +0 -0
  183. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/priceOrientation.d.ts +0 -0
  184. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/price/singlePrice.d.ts +0 -0
  185. /package/dist/{extensions → src/extensions}/Blocks/Items/controls/settingsControl.d.ts +0 -0
  186. /package/dist/{extensions → src/extensions}/Blocks/Items/enums/controlEnums.d.ts +0 -0
  187. /package/dist/{extensions → src/extensions}/Blocks/Items/enums/productEnums.d.ts +0 -0
  188. /package/dist/{extensions → src/extensions}/Blocks/Items/enums/settingsEnums.d.ts +0 -0
  189. /package/dist/{extensions → src/extensions}/Blocks/Items/extension.d.ts +0 -0
  190. /package/dist/{extensions → src/extensions}/Blocks/Items/iconsRegistry.d.ts +0 -0
  191. /package/dist/{extensions → src/extensions}/Blocks/Items/settingsPanel.d.ts +0 -0
  192. /package/dist/{extensions → src/extensions}/Blocks/Items/template.d.ts +0 -0
  193. /package/dist/{extensions → src/extensions}/Blocks/Items/utils/nodeConfigUtils.d.ts +0 -0
  194. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/block.d.ts +0 -0
  195. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/control.d.ts +0 -0
  196. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/extension.d.ts +0 -0
  197. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/iconsRegistry.d.ts +0 -0
  198. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/settingsPanel.d.ts +0 -0
  199. /package/dist/{extensions → src/extensions}/Blocks/RadioButton/template.d.ts +0 -0
  200. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/block.d.ts +0 -0
  201. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/blockIds.d.ts +0 -0
  202. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/controlIds.d.ts +0 -0
  203. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/defaultConfig.d.ts +0 -0
  204. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/index.d.ts +0 -0
  205. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/layout.d.ts +0 -0
  206. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/constants/selectors.d.ts +0 -0
  207. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/blockBackground/index.d.ts +0 -0
  208. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/button/index.d.ts +0 -0
  209. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/cardBackground/index.d.ts +0 -0
  210. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/cardComposition/index.d.ts +0 -0
  211. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/customAttribute/index.d.ts +0 -0
  212. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/customAttribute/textTrim.d.ts +0 -0
  213. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/image/index.d.ts +0 -0
  214. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/index.d.ts +0 -0
  215. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/algorithm.d.ts +0 -0
  216. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/currency.d.ts +0 -0
  217. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/filters.d.ts +0 -0
  218. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/index.d.ts +0 -0
  219. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/layoutOrientation.d.ts +0 -0
  220. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/locale.d.ts +0 -0
  221. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/pricePlacement.d.ts +0 -0
  222. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/productCount.d.ts +0 -0
  223. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/productLayout.d.ts +0 -0
  224. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/shuffle.d.ts +0 -0
  225. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/main/utils.d.ts +0 -0
  226. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +0 -0
  227. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/name/index.d.ts +0 -0
  228. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/name/textTrim.d.ts +0 -0
  229. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/oldPrice/index.d.ts +0 -0
  230. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +0 -0
  231. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +0 -0
  232. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +0 -0
  233. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +0 -0
  234. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +0 -0
  235. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +0 -0
  236. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/price/index.d.ts +0 -0
  237. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/shared/textTrimCssRules.d.ts +0 -0
  238. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/spacing/index.d.ts +0 -0
  239. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/controls/syncInfoMessage.d.ts +0 -0
  240. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/extension.d.ts +0 -0
  241. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/iconsRegistry.d.ts +0 -0
  242. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/services/configService.d.ts +0 -0
  243. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/services/index.d.ts +0 -0
  244. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/settingsPanel.d.ts +0 -0
  245. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/store/recommendation.d.ts +0 -0
  246. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +0 -0
  247. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/grid/migration.d.ts +0 -0
  248. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/grid/template.d.ts +0 -0
  249. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/index.d.ts +0 -0
  250. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/list/elementRenderer.d.ts +0 -0
  251. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/list/migration.d.ts +0 -0
  252. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/list/template.d.ts +0 -0
  253. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/templates/utils.d.ts +0 -0
  254. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/types/index.d.ts +0 -0
  255. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/types/nodeConfig.d.ts +0 -0
  256. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/useRecommendationBlockWarning.d.ts +0 -0
  257. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/captureStyleTemplates.d.ts +0 -0
  258. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/filterUtil.d.ts +0 -0
  259. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/legacyStrategyMap.d.ts +0 -0
  260. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/partnerCustomizations.d.ts +0 -0
  261. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/priceFormatter.d.ts +0 -0
  262. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/recommendationBlockCount.d.ts +0 -0
  263. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/utils/tagName.d.ts +0 -0
  264. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/validation/filterSchema.d.ts +0 -0
  265. /package/dist/{extensions → src/extensions}/Blocks/Recommendation/validation/requiredFields.d.ts +0 -0
  266. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/block.d.ts +0 -0
  267. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/control.d.ts +0 -0
  268. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/elements/preview.d.ts +0 -0
  269. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/extension.d.ts +0 -0
  270. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/iconsRegistry.d.ts +0 -0
  271. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/settingsPanel.d.ts +0 -0
  272. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/tagRegistry.d.ts +0 -0
  273. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/template.d.ts +0 -0
  274. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/utils/constants.d.ts +0 -0
  275. /package/dist/{extensions → src/extensions}/Blocks/Unsubscribe/utils/utils.d.ts +0 -0
  276. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/block.d.ts +0 -0
  277. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/control.d.ts +0 -0
  278. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/extension.d.ts +0 -0
  279. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/iconsRegistry.d.ts +0 -0
  280. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/settingsPanel.d.ts +0 -0
  281. /package/dist/{extensions → src/extensions}/Blocks/_Boilerplate/template.d.ts +0 -0
  282. /package/dist/{extensions → src/extensions}/Blocks/common-control.d.ts +0 -0
  283. /package/dist/{extensions → src/extensions}/Blocks/controlFactories.d.ts +0 -0
  284. /package/dist/{extensions → src/extensions}/DynamicContent/dynamic-content-modal.d.ts +0 -0
  285. /package/dist/{extensions → src/extensions}/DynamicContent/dynamic-content.d.ts +0 -0
  286. /package/dist/{extensions → src/extensions}/DynamicContent/extension.d.ts +0 -0
  287. /package/dist/{extensions → src/extensions}/ModulesTabIcons/extension.d.ts +0 -0
  288. /package/dist/{library.d.ts → src/library.d.ts} +0 -0
  289. /package/dist/{main.d.ts → src/main.d.ts} +0 -0
  290. /package/dist/{mock → src/mock}/api/auth.d.ts +0 -0
  291. /package/dist/{mock → src/mock}/api/custom-fonts.d.ts +0 -0
  292. /package/dist/{mock → src/mock}/api/default-template.d.ts +0 -0
  293. /package/dist/{mock → src/mock}/api/recommendation.d.ts +0 -0
  294. /package/dist/{mock → src/mock}/api/settings.d.ts +0 -0
  295. /package/dist/{mock → src/mock}/api/template-library.d.ts +0 -0
  296. /package/dist/{mock → src/mock}/api/unsubscribe.d.ts +0 -0
  297. /package/dist/{mock → src/mock}/api/user-modal-state.d.ts +0 -0
  298. /package/dist/{mock → src/mock}/api/validator.d.ts +0 -0
  299. /package/dist/{mock → src/mock}/browser.d.ts +0 -0
  300. /package/dist/{mock → src/mock}/handlers.d.ts +0 -0
  301. /package/dist/{services → src/services}/allowlistApi.d.ts +0 -0
  302. /package/dist/{services → src/services}/blankTemplate.d.ts +0 -0
  303. /package/dist/{services → src/services}/onboardingApi.d.ts +0 -0
  304. /package/dist/{services → src/services}/recommendationApi.d.ts +0 -0
  305. /package/dist/{services → src/services}/stripoApi.d.ts +0 -0
  306. /package/dist/{services → src/services}/templateLibraryApi.d.ts +0 -0
  307. /package/dist/{services → src/services}/unsubscribeApi.d.ts +0 -0
  308. /package/dist/{stores → src/stores}/autosave.d.ts +0 -0
  309. /package/dist/{stores → src/stores}/config.d.ts +0 -0
  310. /package/dist/{stores → src/stores}/dynamic-content.d.ts +0 -0
  311. /package/dist/{stores → src/stores}/editor.d.ts +0 -0
  312. /package/dist/{stores → src/stores}/guido-email-editor.d.ts +0 -0
  313. /package/dist/{stores → src/stores}/onboarding.d.ts +0 -0
  314. /package/dist/{stores → src/stores}/preview.d.ts +0 -0
  315. /package/dist/{stores → src/stores}/recommendation.d.ts +0 -0
  316. /package/dist/{stores → src/stores}/save-as-template.d.ts +0 -0
  317. /package/dist/{stores → src/stores}/template.d.ts +0 -0
  318. /package/dist/{stores → src/stores}/toaster.d.ts +0 -0
  319. /package/dist/{stores → src/stores}/unsubscribe.d.ts +0 -0
  320. /package/dist/{stores → src/stores}/version-history.d.ts +0 -0
  321. /package/dist/{utils → src/utils}/ampErrorFilter.d.ts +0 -0
  322. /package/dist/{utils → src/utils}/arrayUtil.d.ts +0 -0
  323. /package/dist/{utils → src/utils}/base64.d.ts +0 -0
  324. /package/dist/{utils → src/utils}/dateUtil.d.ts +0 -0
  325. /package/dist/{utils → src/utils}/dynamicContentConverter.d.ts +0 -0
  326. /package/dist/{utils → src/utils}/environmentUtil.d.ts +0 -0
  327. /package/dist/{utils → src/utils}/genericUtil.d.ts +0 -0
  328. /package/dist/{utils → src/utils}/htmlCompiler.d.ts +0 -0
  329. /package/dist/{utils → src/utils}/htmlEscape.d.ts +0 -0
  330. /package/dist/{utils → src/utils}/migrationBannerHtml.d.ts +0 -0
  331. /package/dist/{utils → src/utils}/pairProductVariables.d.ts +0 -0
  332. /package/dist/{utils → src/utils}/preserveTextStyles.d.ts +0 -0
  333. /package/dist/{utils → src/utils}/stripFontTags.d.ts +0 -0
  334. /package/dist/{utils → src/utils}/templatePreparation.d.ts +0 -0
  335. /package/dist/{utils → src/utils}/timeUtil.d.ts +0 -0
  336. /package/dist/{utils → src/utils}/tooltipUtils.d.ts +0 -0
  337. /package/dist/{utils → src/utils}/urlSchemes.d.ts +0 -0
@@ -0,0 +1,4 @@
1
+ const e = (t) => t ? t.querySelector('[product-attr="name"]') ?? t.querySelector("p > a") : void 0;
2
+ export {
3
+ e as findNameTextNode
4
+ };
package/dist/guido.css CHANGED
@@ -1 +1 @@
1
- .gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-73199fa4] .in-button-v2__wrapper{line-height:0}[data-v-22226124] .in-segments-wrapper__button_selected,[data-v-22226124] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb;color:#0010ac;border-color:#0010ac}[data-v-2cb418af] .in-progress-wrapper__progress p span:last-child{display:none!important}[data-v-2cb418af] .in-progress-description-status{display:none!important}.view-options-wrapper[data-v-87033101]{position:relative;display:inline-block}.new-tag[data-v-87033101]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-87033101] .guido__view-option-selection-desktop svg,[data-v-87033101] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-87033101] .in-segments-wrapper__button_selected,[data-v-87033101] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-87033101] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-fad98586]{gap:8px}.version-history__toolbar[data-v-fad98586]{gap:4px}.view-options-wrapper[data-v-6ebabfe4]{position:relative;display:inline-block}.new-tag[data-v-6ebabfe4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-6ebabfe4] .guido__verion-history-view-option-selection-desktop svg,[data-v-6ebabfe4] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-6ebabfe4] .in-segments-wrapper__button_selected,[data-v-6ebabfe4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-6ebabfe4] .in-tooltip-wrapper-v2__icon{cursor:pointer}.auto-save-toggle[data-v-2c964af4]{position:relative}.auto-save-toggle__info-box[data-v-2c964af4]{position:absolute;top:100%;left:0;z-index:10;width:280px}.editor-actions[data-v-4c9f1588]{gap:4px}.header-wrapper[data-v-d11dd577]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-5079a1c8]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-5079a1c8]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-5079a1c8]{height:calc(100vh - 75px - var(--ribbon-offset))}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-91a26acd]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-91a26acd]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-91a26acd]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-91a26acd]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-91a26acd]{object-fit:cover;transform:scale(1)}[data-v-b9a93c6e] .guido__verion-history-view-option-selection-desktop svg,[data-v-b9a93c6e] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-b9a93c6e] .in-segments-wrapper__button_selected,[data-v-b9a93c6e] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.error-list[data-v-c3fd5d4b]{gap:16px}.desktop-browser-header[data-v-d86c5af5]{height:79px;min-height:79px}.desktop-browser-header__left[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:378px}.desktop-browser-header__center[data-v-d86c5af5]{height:79px;background-repeat:repeat-x;background-size:auto 100%;background-position:left top}.desktop-browser-header__right[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:112px}.desktop-preview[data-v-cf946232]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-cf946232]{min-height:504px}.iframe-wrapper[data-v-f255b2bb]{width:258px}.iframe-scaled[data-v-f255b2bb]{width:320px;height:124.0310077519%;transform:scale(.80625);transform-origin:top left}.cropped-text[data-v-eb3d05d7]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-preview-wrapper__phone[data-v-3f472f96]{width:282px}.mobile-preview-wrapper__phone img[data-v-3f472f96]{object-fit:cover;border-radius:44px}.mobile-preview-wrapper__content[data-v-3f472f96]{width:258px;height:450px;left:12px}[data-v-6bcaca8a] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-f16f20f8] .vueperslides__bullets{pointer-events:none!important}[data-v-f16f20f8] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-bb3cca55] .vueperslides__bullets{pointer-events:none!important}[data-v-bb3cca55] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-b09e80c4] .vueperslides__bullets{pointer-events:none!important}[data-v-b09e80c4] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-9bdef600] .vueperslides__parallax-wrapper{padding-bottom:110px!important}
1
+ .gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-73199fa4] .in-button-v2__wrapper{line-height:0}[data-v-22226124] .in-segments-wrapper__button_selected,[data-v-22226124] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb;color:#0010ac;border-color:#0010ac}[data-v-2cb418af] .in-progress-wrapper__progress p span:last-child{display:none!important}[data-v-2cb418af] .in-progress-description-status{display:none!important}.view-options-wrapper[data-v-87033101]{position:relative;display:inline-block}.new-tag[data-v-87033101]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-87033101] .guido__view-option-selection-desktop svg,[data-v-87033101] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-87033101] .in-segments-wrapper__button_selected,[data-v-87033101] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-87033101] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-fad98586]{gap:8px}.version-history__toolbar[data-v-fad98586]{gap:4px}.view-options-wrapper[data-v-6ebabfe4]{position:relative;display:inline-block}.new-tag[data-v-6ebabfe4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-6ebabfe4] .guido__verion-history-view-option-selection-desktop svg,[data-v-6ebabfe4] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-6ebabfe4] .in-segments-wrapper__button_selected,[data-v-6ebabfe4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-6ebabfe4] .in-tooltip-wrapper-v2__icon{cursor:pointer}.auto-save-toggle[data-v-2c964af4]{position:relative}.auto-save-toggle__info-box[data-v-2c964af4]{position:absolute;top:100%;left:0;z-index:10;width:280px}.editor-actions[data-v-6e711fd7]{gap:4px}.header-wrapper[data-v-d11dd577]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-5079a1c8]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-5079a1c8]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-5079a1c8]{height:calc(100vh - 75px - var(--ribbon-offset))}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-91a26acd]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-91a26acd]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-91a26acd]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-91a26acd]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-91a26acd]{object-fit:cover;transform:scale(1)}[data-v-b9a93c6e] .guido__verion-history-view-option-selection-desktop svg,[data-v-b9a93c6e] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-b9a93c6e] .in-segments-wrapper__button_selected,[data-v-b9a93c6e] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.error-list[data-v-c3fd5d4b]{gap:16px}.desktop-browser-header[data-v-d86c5af5]{height:79px;min-height:79px}.desktop-browser-header__left[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:378px}.desktop-browser-header__center[data-v-d86c5af5]{height:79px;background-repeat:repeat-x;background-size:auto 100%;background-position:left top}.desktop-browser-header__right[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:112px}.desktop-preview[data-v-cf946232]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-cf946232]{min-height:504px}.iframe-wrapper[data-v-f255b2bb]{width:258px}.iframe-scaled[data-v-f255b2bb]{width:320px;height:124.0310077519%;transform:scale(.80625);transform-origin:top left}.cropped-text[data-v-eb3d05d7]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-preview-wrapper__phone[data-v-3f472f96]{width:282px}.mobile-preview-wrapper__phone img[data-v-3f472f96]{object-fit:cover;border-radius:44px}.mobile-preview-wrapper__content[data-v-3f472f96]{width:258px;height:450px;left:12px}[data-v-6bcaca8a] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-f16f20f8] .vueperslides__bullets{pointer-events:none!important}[data-v-f16f20f8] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-bb3cca55] .vueperslides__bullets{pointer-events:none!important}[data-v-bb3cca55] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-b09e80c4] .vueperslides__bullets{pointer-events:none!important}[data-v-b09e80c4] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-9bdef600] .vueperslides__parallax-wrapper{padding-bottom:110px!important}
@@ -17,12 +17,6 @@ export interface HttpError {
17
17
  statusText?: string;
18
18
  response?: Response;
19
19
  }
20
- export declare const TIMEOUT_ERROR_NAME = "TimeoutError";
21
- export interface TimeoutErrorContext {
22
- url: string;
23
- method: HttpMethod;
24
- timeout: number;
25
- }
26
20
  export declare const useHttp: (defaultOptions?: HttpOptions) => {
27
21
  loading: import("vue").ComputedRef<boolean>;
28
22
  error: import("vue").ComputedRef<{
@@ -0,0 +1,12 @@
1
+ export declare const MSO_ITEMS_HIDE_START = "MSO_ITEMS_HIDE_START";
2
+ export declare const MSO_ITEMS_HIDE_END = "MSO_ITEMS_HIDE_END";
3
+ /**
4
+ * SD-147597: the horizontal Items layout ships a second copy of price +
5
+ * original price in a `td.vertical-price` fallback hidden only by inline
6
+ * `display:none` (and vice versa for the vertical price orientation). Outlook's
7
+ * Word engine ignores `display:none` on `<td>`, so it paints BOTH copies —
8
+ * duplicate price. Wrap whichever price td(s) are hidden at export time in safe
9
+ * placeholder comments (swapped into `<!--[if !mso]>` by the priority-101 rule)
10
+ * and collapse them inline for web-engine Outlook.
11
+ */
12
+ export declare function wrapHiddenPriceTdsForOutlook(html: string): string;
@@ -0,0 +1 @@
1
+ export declare function migrateProductNameLink(html: string): string;
@@ -34,7 +34,7 @@ export declare class ItemsBlock extends Block {
34
34
  */
35
35
  onDocumentChanged(node: ImmutableHtmlNode): void;
36
36
  /**
37
- * Bakes the compiler-read DOM attributes (`data-type`, `data-number`) onto the
37
+ * Bakes the compiler-read DOM attributes (`data-type`, `data-number`, `data-nodup`) onto the
38
38
  * `.ins-product-td` container from the recovered config. Required for saved modules:
39
39
  * `migrate()` (which backfills these) only runs at template load — never when a module
40
40
  * is dropped into a live editor — so this is the one place the namespace + index get
@@ -0,0 +1,9 @@
1
+ import type { ImmutableHtmlElementNode, ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
2
+ /**
3
+ * Resolves the element carrying the product name text.
4
+ *
5
+ * New blocks put `product-attr="name"` on the `<p>`; blocks saved before SD-147616 still
6
+ * carry it on the inner `<a>`, and the oldest ones have no attribute at all — hence the
7
+ * `p > a` fallback. Without it, trimming silently no-ops on legacy blocks.
8
+ */
9
+ export declare const findNameTextNode: (container?: ImmutableHtmlNode) => ImmutableHtmlElementNode | undefined;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Unwraps the `<a>` around an Items-block product name so the name compiles as plain text.
3
+ *
4
+ * Outlook's Word engine ignores `color: inherit` on an `<a>` and paints its own blue link
5
+ * color (SD-147616). New blocks no longer emit the anchor, but templates saved before the
6
+ * fix still carry it in their stored HTML — this heals them at compile time.
7
+ */
8
+ /**
9
+ * Removes the product-name link from every `.ins-product-td` in the document, in place.
10
+ *
11
+ * Scoped like `pairProductVariables` so partner or legacy recommendation markup outside a
12
+ * product cell is never touched. Idempotent.
13
+ * @param doc - Parsed template document, mutated in place
14
+ */
15
+ export declare function unwrapProductNameLinks(doc: Document): void;
@@ -1,85 +1,88 @@
1
- import { productPairs as N } from "../extensions/Blocks/Items/enums/productEnums.js";
1
+ import { productPairs as q } from "../extensions/Blocks/Items/enums/productEnums.js";
2
2
  import { DefaultConfigValues as O } from "../extensions/Blocks/Items/enums/settingsEnums.js";
3
3
  import { preserveTextStyles as C } from "./preserveTextStyles.js";
4
- function V(L) {
5
- const H = L.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), g = new DOMParser().parseFromString(H, "text/html"), m = N.PAIRS_FOR_EXTENSION;
6
- Object.entries(m).forEach(([r, f]) => {
7
- g.querySelectorAll(".ins-product-td").forEach((c) => {
8
- const A = c.getAttribute("data-number") || "1", y = c.getAttribute("data-type") || "CART_ITEMS";
9
- c.querySelectorAll(`[product-attr="${r}"]`).forEach((t) => {
4
+ import { unwrapProductNameLinks as U } from "./unwrapProductNameLink.js";
5
+ function Y(L) {
6
+ const H = L.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), b = new DOMParser().parseFromString(H, "text/html");
7
+ U(b);
8
+ const R = q.PAIRS_FOR_EXTENSION;
9
+ Object.entries(R).forEach(([r, u]) => {
10
+ b.querySelectorAll(".ins-product-td").forEach((l) => {
11
+ const h = l.getAttribute("data-number") || "1", $ = l.getAttribute("data-type") || "CART_ITEMS";
12
+ l.querySelectorAll(`[product-attr="${r}"]`).forEach((t) => {
10
13
  var F, I, w;
11
- const T = t.getAttribute("data-type") || y, u = t.getAttribute("data-number") || A, d = f[T];
14
+ const T = t.getAttribute("data-type") || $, f = t.getAttribute("data-number") || h, d = u[T];
12
15
  if (d)
13
16
  switch (r) {
14
17
  case "imageSrc": {
15
- let e = null, i = null;
16
- if (t.tagName === "IMG" ? (e = t, i = e.closest("a")) : (e = t.querySelector("img"), i = t.querySelector("a") || t.closest("a")), !e)
18
+ let e = null, c = null;
19
+ if (t.tagName === "IMG" ? (e = t, c = e.closest("a")) : (e = t.querySelector("img"), c = t.querySelector("a") || t.closest("a")), !e)
17
20
  break;
18
- const a = d.DEFAULT, s = d.ATTR;
19
- if (a && e.src) {
21
+ const i = d.DEFAULT, a = d.ATTR;
22
+ if (i && e.src) {
20
23
  const o = e.src;
21
- a.some((h) => {
22
- const l = h.split("/").pop() || "", $ = o.split("/").pop() || "";
23
- return o.includes(h) || o.includes(l) || $ === l;
24
- }) && (e.src = `{{${s}_${u}}}`);
24
+ i.some((E) => {
25
+ const s = E.split("/").pop() || "", g = o.split("/").pop() || "";
26
+ return o.includes(E) || o.includes(s) || g === s;
27
+ }) && (e.src = `{{${a}_${f}}}`);
25
28
  }
26
- const n = (I = (F = m.name) == null ? void 0 : F[T]) == null ? void 0 : I.ATTR;
27
- if (n && e.setAttribute("alt", `{{${n}_${u}}}`), i) {
28
- const o = (w = m.itemLink) == null ? void 0 : w[T];
29
+ const n = (I = (F = R.name) == null ? void 0 : F[T]) == null ? void 0 : I.ATTR;
30
+ if (n && e.setAttribute("alt", `{{${n}_${f}}}`), c) {
31
+ const o = (w = R.itemLink) == null ? void 0 : w[T];
29
32
  if (o) {
30
- const E = o.HREF, h = o.DEFAULT_HREF || "#!", l = i.href;
31
- (l === "#" || l === "" || l.endsWith("#!") || l.endsWith(h) || l === `${window.location.href}${h}` || !l || l === window.location.href) && (i.href = `{{${E}_${u}}}`);
33
+ const A = o.HREF, E = o.DEFAULT_HREF || "#!", s = c.href;
34
+ (s === "#" || s === "" || s.endsWith("#!") || s.endsWith(E) || s === `${window.location.href}${E}` || !s || s === window.location.href) && (c.href = `{{${A}_${f}}}`);
32
35
  }
33
36
  }
34
37
  break;
35
38
  }
36
39
  case "name": {
37
- const e = d, i = e.ATTR, a = e.DEFAULT_HREF || "#!", s = e.HREF;
38
- t.textContent && (t.innerHTML = C(t, `{{${i}_${u}}}`));
40
+ const e = d, c = e.ATTR, i = e.DEFAULT_HREF || "#!", a = e.HREF;
41
+ t.textContent && (t.innerHTML = C(t, `{{${c}_${f}}}`));
39
42
  const n = t.closest("a") || (t.tagName === "A" ? t : null);
40
- if (n && s) {
41
- const o = n.href, E = `${window.location.href}${a}`;
42
- (o === E || o.endsWith(a)) && (n.href = `{{${s}_${u}}}`);
43
+ if (n && a) {
44
+ const o = n.href, A = `${window.location.href}${i}`;
45
+ (o === A || o.endsWith(i)) && (n.href = `{{${a}_${f}}}`);
43
46
  }
44
47
  break;
45
48
  }
46
49
  case "price":
47
50
  case "originalPrice": {
48
- const e = d, i = t.getAttribute("data-formated"), a = t.getAttribute("data-single_price"), s = i === "true", n = a === "true", o = t.getAttribute("data-curency") || "before";
49
- let E;
50
- n ? E = s ? e.SINGLE_PRICE_FORMATTED : e.SINGLE_PRICE : E = s ? e.PRICE_FORMATTED : e.PRICE;
51
- const h = e.CURRENCY;
52
- let l = `{{${E}_${u}}}`;
53
- const $ = (t.getAttribute("data-currency_symbol") || "").trim(), q = $ !== "" && $ !== O.productPriceCurrencySymbolControlValue;
54
- let b = "";
55
- q ? b = $ : h && (b = `{{${h}_${u}}}`), b && (l = o === "after" ? `${l} ${b}` : `${b} ${l}`), t.innerHTML = C(t, l);
51
+ const e = d, c = t.getAttribute("data-formated"), i = t.getAttribute("data-single_price"), a = c === "true", n = i === "true", o = t.getAttribute("data-curency") || "before";
52
+ let A;
53
+ n ? A = a ? e.SINGLE_PRICE_FORMATTED : e.SINGLE_PRICE : A = a ? e.PRICE_FORMATTED : e.PRICE;
54
+ const E = e.CURRENCY;
55
+ let s = `{{${A}_${f}}}`;
56
+ const g = (t.getAttribute("data-currency_symbol") || "").trim(), N = g !== "" && g !== O.productPriceCurrencySymbolControlValue;
57
+ let m = "";
58
+ N ? m = g : E && (m = `{{${E}_${f}}}`), m && (s = o === "after" ? `${s} ${m}` : `${m} ${s}`), t.innerHTML = C(t, s);
56
59
  break;
57
60
  }
58
61
  case "quantity": {
59
- const e = d, i = e.ATTR, a = e.DEFAULT;
60
- t.textContent && t.textContent.trim() === a && (t.innerHTML = C(t, `{{${i}_${u}}}`));
62
+ const e = d, c = e.ATTR, i = e.DEFAULT;
63
+ t.textContent && t.textContent.trim() === i && (t.innerHTML = C(t, `{{${c}_${f}}}`));
61
64
  break;
62
65
  }
63
66
  case "button": {
64
- const e = d, i = e.HREF, a = e.DEFAULT_HREF || "#!", s = t.tagName === "A" ? t : t.querySelector("a");
65
- if (s) {
66
- const n = s.href || "", o = `${window.location.href}${a}`;
67
- (n === "" || n === "#" || n === o || n.endsWith(a) || n.endsWith("#!") || n === window.location.href) && (s.href = `{{${i}_${u}}}`);
67
+ const e = d, c = e.HREF, i = e.DEFAULT_HREF || "#!", a = t.tagName === "A" ? t : t.querySelector("a");
68
+ if (a) {
69
+ const n = a.href || "", o = `${window.location.href}${i}`;
70
+ (n === "" || n === "#" || n === o || n.endsWith(i) || n.endsWith("#!") || n === window.location.href) && (a.href = `{{${c}_${f}}}`);
68
71
  }
69
72
  break;
70
73
  }
71
74
  case "itemLink": {
72
- const e = d, i = e.HREF, a = e.DEFAULT_HREF || "#!", s = t;
73
- if (s.href) {
74
- const n = s.href, o = `${window.location.href}${a}`;
75
- (n === o || n.endsWith(a)) && (s.href = `{{${i}_${u}}}`);
75
+ const e = d, c = e.HREF, i = e.DEFAULT_HREF || "#!", a = t;
76
+ if (a.href) {
77
+ const n = a.href, o = `${window.location.href}${i}`;
78
+ (n === o || n.endsWith(i)) && (a.href = `{{${c}_${f}}}`);
76
79
  }
77
80
  break;
78
81
  }
79
82
  default: {
80
83
  if ("ATTR" in d) {
81
84
  const e = d.ATTR;
82
- t.textContent && (t.innerHTML = C(t, `{{${e}_${u}}}`));
85
+ t.textContent && (t.innerHTML = C(t, `{{${e}_${f}}}`));
83
86
  }
84
87
  break;
85
88
  }
@@ -88,54 +91,54 @@ function V(L) {
88
91
  });
89
92
  });
90
93
  const k = H.match(/<!DOCTYPE[^>]*>/i), P = k ? `${k[0]}
91
- ` : "", D = g.querySelectorAll(".ins-product-td"), M = [];
94
+ ` : "", D = b.querySelectorAll(".ins-product-td"), M = [];
92
95
  D.forEach((r) => {
93
- const f = r.getAttribute("data-type") || "CART_ITEMS", p = r.getAttribute("data-number") || "1", c = r.getAttribute("data-nodup"), A = r.outerHTML;
96
+ const u = r.getAttribute("data-type") || "CART_ITEMS", p = r.getAttribute("data-number") || "1", l = r.outerHTML;
94
97
  M.push({
95
98
  element: r,
96
- outerHtml: A,
97
- type: f,
98
- number: p,
99
- nodup: c || void 0
99
+ outerHtml: l,
100
+ type: u,
101
+ number: p
100
102
  });
101
103
  });
102
- let _ = P + g.documentElement.outerHTML;
103
- M.reverse().forEach(({ outerHtml: r, type: f, number: p }) => {
104
- let c = "";
105
- switch (f) {
104
+ let _ = P + b.documentElement.outerHTML;
105
+ M.reverse().forEach(({ outerHtml: r, type: u, number: p }) => {
106
+ let l = "";
107
+ switch (u) {
106
108
  case "CART_ITEMS":
107
- c = "ins_apr_total_product_kind";
109
+ l = "ins_apr_total_product_kind";
108
110
  break;
109
111
  case "BROWSED_ITEMS":
110
- c = "browsed_item_total_product_kind";
112
+ l = "browsed_item_total_product_kind";
111
113
  break;
112
114
  case "PURCHASED_ITEMS":
113
- c = "purchased_item_total_product_kind";
115
+ l = "purchased_item_total_product_kind";
114
116
  break;
115
117
  }
116
- if (c) {
117
- const y = parseInt(p) - 1, T = `${`{% if ${c} > ${y} %}`}${r}{% endif %}`;
118
+ if (l) {
119
+ const $ = parseInt(p) - 1, T = `${`{% if ${l} > ${$} %}`}${r}{% endif %}`;
118
120
  _ = _.replace(r, T);
119
121
  }
120
122
  });
121
- const x = g.querySelectorAll('[product-attr="originalPrice"][data-type="CART_ITEMS"]'), R = [];
123
+ const x = b.querySelectorAll('[product-attr="originalPrice"][data-type="CART_ITEMS"]'), S = [];
122
124
  return x.forEach((r) => {
123
- const f = r.getAttribute("data-number"), p = r.getAttribute("data-type");
124
- if (!f || p !== "CART_ITEMS")
125
+ var $;
126
+ const u = r.getAttribute("data-number"), p = r.getAttribute("data-type");
127
+ if (!u || p !== "CART_ITEMS" || (($ = r.closest(".ins-product-td")) == null ? void 0 : $.getAttribute("data-nodup")) === "false")
125
128
  return;
126
- const c = r.closest(".product-original-price-class");
127
- if (c) {
128
- const A = c.outerHTML;
129
- R.some((S) => S.tdOuterHtml === A) || R.push({ tdOuterHtml: A, number: f });
129
+ const h = r.closest(".product-original-price-class");
130
+ if (h) {
131
+ const y = h.outerHTML;
132
+ S.some((T) => T.tdOuterHtml === y) || S.push({ tdOuterHtml: y, number: u });
130
133
  }
131
- }), R.reverse().forEach(({ tdOuterHtml: r, number: f }) => {
132
- const p = `{% if ins_apr_price_${f} != ins_apr_originalprice_${f} %}`;
134
+ }), S.reverse().forEach(({ tdOuterHtml: r, number: u }) => {
135
+ const p = `{% if ins_apr_price_${u} != ins_apr_originalprice_${u} %}`;
133
136
  if (!_.includes(p) && !r.includes("{% if")) {
134
- const A = `${p}${r}{% endif %}`;
135
- _ = _.replace(r, A);
137
+ const h = `${p}${r}{% endif %}`;
138
+ _ = _.replace(r, h);
136
139
  }
137
140
  }), _.replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("&lt;!--{%", "{%").replaceAll("%}--&gt;", "%}");
138
141
  }
139
142
  export {
140
- V as pairProductVariables
143
+ Y as pairProductVariables
141
144
  };
@@ -0,0 +1,37 @@
1
+ const f = "text-decoration", A = /(?:[^;"'()]|"[^"]*"|'[^']*'|\([^)]*\))+/g, c = (e) => (e.match(A) || []).map((r) => r.trim()).filter(Boolean), l = (e) => e.slice(0, e.indexOf(":")).trim().toLowerCase(), m = (e) => e.slice(e.indexOf(":") + 1).trim().toLowerCase(), u = (e, r) => {
2
+ const s = e.getAttribute("style");
3
+ if (!s)
4
+ return;
5
+ const t = c(r.getAttribute("style") || ""), i = new Set(t.map(l)), o = c(s).filter((n) => {
6
+ const a = l(n);
7
+ return !a || i.has(a) ? !1 : !a.startsWith(f) && m(n) !== "inherit";
8
+ });
9
+ o.length && r.setAttribute("style", [...t, ...o].join("; "));
10
+ }, y = ["product-attr", "data-type", "data-number", "data-slot-2"], p = (e, r) => {
11
+ y.forEach((s) => {
12
+ const t = e.getAttribute(s);
13
+ t !== null && !r.hasAttribute(s) && r.setAttribute(s, t);
14
+ });
15
+ };
16
+ function E(e) {
17
+ e.querySelectorAll(".ins-product-td").forEach((r) => {
18
+ const s = /* @__PURE__ */ new Set();
19
+ r.querySelectorAll('[product-attr="name"]').forEach((t) => {
20
+ const i = t.closest("a");
21
+ i && r.contains(i) && s.add(i);
22
+ }), s.forEach((t) => {
23
+ if (t.querySelector("img") || Array.from(t.querySelectorAll("[product-attr]")).some((a) => a.getAttribute("product-attr") !== "name"))
24
+ return;
25
+ const o = t.closest("p");
26
+ if (o && r.contains(o)) {
27
+ p(t, o), u(t, o), t.replaceWith(...Array.from(t.childNodes));
28
+ return;
29
+ }
30
+ const n = e.createElement("span");
31
+ p(t, n), u(t, n), n.append(...Array.from(t.childNodes)), t.replaceWith(n);
32
+ });
33
+ });
34
+ }
35
+ export {
36
+ E as unwrapProductNameLinks
37
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "3.14.0-beta.2bae355",
3
+ "version": "3.14.0-beta.38ef0be",
4
4
  "description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
5
5
  "main": "./dist/guido.umd.cjs",
6
6
  "module": "./dist/library.js",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes