@useinsider/guido 2.0.0-beta.1c331b8 → 2.0.0-beta.2369541

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 (231) hide show
  1. package/dist/@types/config/schemas.js +53 -39
  2. package/dist/components/organisms/email-preview/PreviewContainer.vue.js +3 -3
  3. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.js +8 -8
  4. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue2.js +17 -13
  5. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +7 -8
  6. package/dist/components/organisms/email-preview/amp/AmpToggle.vue2.js +14 -12
  7. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.js +18 -0
  8. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue2.js +15 -0
  9. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +10 -14
  10. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +14 -22
  11. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +3 -3
  12. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +11 -10
  13. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.js +12 -10
  14. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.js +11 -10
  15. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue2.js +15 -14
  16. package/dist/components/organisms/header/EditorActions.vue.js +20 -0
  17. package/dist/components/organisms/header/EditorActions.vue2.js +41 -0
  18. package/dist/components/organisms/header/EditorToolbar.vue.js +18 -0
  19. package/dist/components/organisms/header/EditorToolbar.vue2.js +17 -0
  20. package/dist/components/organisms/header/HeaderWrapper.vue.js +6 -5
  21. package/dist/components/organisms/header/LeftSlot.vue.js +11 -11
  22. package/dist/components/organisms/header/LeftSlot.vue2.js +11 -12
  23. package/dist/components/organisms/header/MiddleSlot.vue.js +10 -10
  24. package/dist/components/organisms/header/MiddleSlot.vue2.js +11 -15
  25. package/dist/components/organisms/header/RightSlot.vue.js +11 -14
  26. package/dist/components/organisms/header/RightSlot.vue2.js +13 -30
  27. package/dist/components/organisms/header/version-history/VersionHistory.vue.js +5 -5
  28. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +15 -15
  29. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +1 -1
  30. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +20 -19
  31. package/dist/composables/useConfig.js +29 -27
  32. package/dist/composables/useSave.js +13 -11
  33. package/dist/config/migrator/recommendationMigrator.js +2 -2
  34. package/dist/enums/academy.js +8 -0
  35. package/dist/enums/onboarding.js +1 -2
  36. package/dist/enums/unsubscribe.js +20 -21
  37. package/dist/extensions/Blocks/Items/controls/cardComposition.js +4 -13
  38. package/dist/extensions/Blocks/Recommendation/block.js +1 -1
  39. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +103 -0
  40. package/dist/extensions/Blocks/Recommendation/constants.js +5 -0
  41. package/dist/extensions/Blocks/Recommendation/control.js +306 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +13 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +13 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +13 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +13 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +13 -0
  47. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +13 -0
  48. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +13 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +13 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +13 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +13 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +13 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +13 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +13 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +13 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +13 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +13 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +13 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +13 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +13 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +13 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +13 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +13 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +13 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +13 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +13 -0
  67. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +13 -0
  68. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +13 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +13 -0
  70. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +13 -0
  71. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +13 -0
  72. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +13 -0
  73. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +13 -0
  74. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +13 -0
  75. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +13 -0
  76. package/dist/extensions/Blocks/Recommendation/extension.js +43 -40
  77. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +0 -5
  78. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +72 -128
  79. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +25 -28
  80. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +160 -0
  81. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +152 -0
  82. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +180 -0
  83. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  84. package/dist/extensions/Blocks/Unsubscribe/extension.js +9 -9
  85. package/dist/extensions/Blocks/common-control.js +6 -7
  86. package/dist/extensions/Blocks/controlFactories.js +121 -155
  87. package/dist/guido.css +1 -1
  88. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +291 -361
  89. package/dist/package.json.js +1 -1
  90. package/dist/src/@types/config/index.d.ts +2 -2
  91. package/dist/src/@types/config/schemas.d.ts +26 -0
  92. package/dist/src/@types/config/types.d.ts +7 -1
  93. package/dist/src/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.d.ts +2 -0
  94. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +4 -0
  95. package/dist/src/components/organisms/header/EditorToolbar.vue.d.ts +2 -0
  96. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  97. package/dist/src/composables/useConfig.d.ts +6 -0
  98. package/dist/src/enums/academy.d.ts +12 -0
  99. package/dist/src/enums/onboarding.d.ts +0 -1
  100. package/dist/src/enums/unsubscribe.d.ts +0 -1
  101. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +28 -0
  102. package/dist/src/extensions/Blocks/Recommendation/{constants/controlIds.d.ts → constants.d.ts} +11 -19
  103. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +35 -0
  104. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  105. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  106. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  107. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  108. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  109. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  110. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  111. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  112. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  113. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  114. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  115. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +5 -0
  116. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +5 -0
  117. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  118. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  119. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  120. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  121. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  122. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  123. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  124. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +5 -0
  125. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +5 -0
  126. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +5 -0
  127. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +5 -0
  128. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +5 -0
  129. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +5 -0
  130. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +5 -0
  131. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +5 -0
  132. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +5 -0
  133. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +5 -0
  134. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +5 -0
  135. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +5 -0
  136. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +5 -0
  137. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +5 -0
  138. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +0 -9
  139. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +16 -16
  140. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +16 -0
  141. package/dist/src/extensions/Blocks/Recommendation/templates/{vertical/migration.d.ts → migrationTemplate.d.ts} +4 -11
  142. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +44 -0
  143. package/dist/src/extensions/Blocks/common-control.d.ts +1 -1
  144. package/dist/src/stores/config.d.ts +147 -1
  145. package/dist/static/assets/desktop/desktop-mockup-center.svg.js +4 -0
  146. package/dist/static/assets/desktop/desktop-mockup-left.svg.js +4 -0
  147. package/dist/static/assets/desktop/desktop-mockup-right.svg.js +4 -0
  148. package/dist/static/assets/mobile/email-mockup.svg.js +4 -0
  149. package/dist/static/assets/mobile/inbox-mockup.svg.js +4 -0
  150. package/dist/static/styles/components/button.css.js +1 -1
  151. package/dist/static/styles/components/wide-panel.css.js +4 -0
  152. package/dist/static/styles/customEditorStyle.css.js +2 -38
  153. package/dist/stores/config.js +7 -0
  154. package/package.json +3 -3
  155. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.js +0 -17
  156. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +0 -20
  157. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +0 -4
  158. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +0 -4
  159. package/dist/extensions/Blocks/Recommendation/constants/layout.js +0 -7
  160. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +0 -11
  161. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +0 -64
  162. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +0 -80
  163. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +0 -238
  164. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +0 -19
  165. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +0 -104
  166. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +0 -86
  167. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +0 -134
  168. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +0 -54
  169. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +0 -134
  170. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +0 -64
  171. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +0 -124
  172. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +0 -60
  173. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +0 -112
  174. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +0 -46
  175. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +0 -76
  176. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +0 -44
  177. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +0 -48
  178. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +0 -73
  179. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +0 -73
  180. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +0 -48
  181. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +0 -73
  182. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +0 -73
  183. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +0 -44
  184. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +0 -216
  185. package/dist/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.js +0 -157
  186. package/dist/extensions/Blocks/Recommendation/templates/horizontal/template.js +0 -72
  187. package/dist/extensions/Blocks/Recommendation/templates/index.js +0 -12
  188. package/dist/extensions/Blocks/Recommendation/templates/utils.js +0 -173
  189. package/dist/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.js +0 -186
  190. package/dist/extensions/Blocks/Recommendation/templates/vertical/migration.js +0 -251
  191. package/dist/extensions/Blocks/Recommendation/templates/vertical/template.js +0 -62
  192. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +0 -36
  193. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +0 -13
  194. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +0 -12
  195. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +0 -17
  196. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +0 -19
  197. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +0 -143
  198. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +0 -31
  199. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +0 -95
  200. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +0 -35
  201. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +0 -24
  202. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +0 -34
  203. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +0 -17
  204. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +0 -16
  205. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +0 -22
  206. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +0 -43
  207. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +0 -15
  208. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +0 -40
  209. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +0 -15
  210. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +0 -81
  211. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +0 -97
  212. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +0 -16
  213. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +0 -95
  214. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +0 -100
  215. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +0 -15
  216. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +0 -15
  217. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +0 -100
  218. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +0 -15
  219. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +0 -15
  220. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +0 -95
  221. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +0 -72
  222. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.d.ts +0 -8
  223. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/migration.d.ts +0 -25
  224. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/template.d.ts +0 -18
  225. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +0 -39
  226. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +0 -45
  227. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.d.ts +0 -7
  228. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/template.d.ts +0 -33
  229. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +0 -19
  230. package/dist/static/assets/inbox-mockup.svg.js +0 -4
  231. package/dist/static/assets/phone-mockup.svg.js +0 -4
@@ -19,46 +19,10 @@ const n = `.esd-x,
19
19
  box-shadow: none;
20
20
  }
21
21
  .ins-product-cart ue-node-actions,
22
- /* Horizontal layout - hide for info, image, and button cells */
23
- .ins-recommendation-v3-block-v2 .product-info-cell ue-node-actions,
24
- .ins-recommendation-v3-block-v2 .product-info-cell ue-node-panel,
25
- .ins-recommendation-v3-block-v2 .product-image-cell ue-node-actions,
26
- .ins-recommendation-v3-block-v2 .product-image-cell ue-node-panel,
27
- .ins-recommendation-v3-block-v2 .button-cell ue-node-actions,
28
- .ins-recommendation-v3-block-v2 .button-cell ue-node-panel,
29
- /* Vertical layout - hide for product-card-segment inner cells */
30
- .ins-recommendation-v3-block-v2 .product-card-segment ue-node-actions,
31
- .ins-recommendation-v3-block-v2 .product-card-segment ue-node-panel,
32
- /* Hide for specific product attribute cells in both layouts */
33
- .ins-recommendation-v3-block-v2 .product-image ue-node-actions,
34
- .ins-recommendation-v3-block-v2 .product-image ue-node-panel,
35
- .ins-recommendation-v3-block-v2 .product-name ue-node-actions,
36
- .ins-recommendation-v3-block-v2 .product-name ue-node-panel,
37
- .ins-recommendation-v3-block-v2 .product-price ue-node-actions,
38
- .ins-recommendation-v3-block-v2 .product-price ue-node-panel,
39
- .ins-recommendation-v3-block-v2 .product-old-price ue-node-actions,
40
- .ins-recommendation-v3-block-v2 .product-old-price ue-node-panel,
41
- .ins-recommendation-v3-block-v2 .product-omnibus-price ue-node-actions,
42
- .ins-recommendation-v3-block-v2 .product-omnibus-price ue-node-panel,
43
- .ins-recommendation-v3-block-v2 .product-omnibus-discount ue-node-actions,
44
- .ins-recommendation-v3-block-v2 .product-omnibus-discount ue-node-panel,
45
- .ins-recommendation-v3-block-v2 .product-button ue-node-actions,
46
- .ins-recommendation-v3-block-v2 .product-button ue-node-panel {
22
+ .ins-recommendation-v3-block-v2 .product-attribute-cell ue-node-actions,
23
+ .ins-recommendation-v3-block-v2 .product-attribute-cell ue-node-panel {
47
24
  display: none !important;
48
25
  }
49
-
50
- /* Apply to the table cell (td) with text-trim-enabled class */
51
- .text-trim-enabled {
52
- max-width: 0 !important;
53
- }
54
-
55
- .text-trim-enabled p {
56
- overflow: hidden !important;
57
- text-overflow: ellipsis !important;
58
- white-space: nowrap !important;
59
- margin: 0 !important;
60
- display: block !important;
61
- }
62
26
  `;
63
27
  export {
64
28
  n as default
@@ -64,6 +64,13 @@ const s = o("guido-config", {
64
64
  var e;
65
65
  return ((e = i.config) == null ? void 0 : e.compiler) ?? null;
66
66
  },
67
+ /**
68
+ * Get the callbacks configuration
69
+ */
70
+ callbacks: (i) => {
71
+ var e;
72
+ return ((e = i.config) == null ? void 0 : e.callbacks) ?? null;
73
+ },
67
74
  /**
68
75
  * Get the template ID
69
76
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "2.0.0-beta.1c331b8",
3
+ "version": "2.0.0-beta.2369541",
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",
@@ -31,7 +31,7 @@
31
31
  "author": "",
32
32
  "license": "ISC",
33
33
  "dependencies": {
34
- "@stripoinc/ui-editor-extensions": "3.5.0",
34
+ "@stripoinc/ui-editor-extensions": "3.3.0",
35
35
  "@useinsider/design-system-vue": "0.14.20",
36
36
  "@vueuse/core": "11.3.0",
37
37
  "lodash-es": "4.17.21",
@@ -85,7 +85,7 @@
85
85
  },
86
86
  "guido": {
87
87
  "stripo": {
88
- "version": "2.52.0"
88
+ "version": "2.47.0"
89
89
  }
90
90
  }
91
91
  }
@@ -1,17 +0,0 @@
1
- import e from "./EmailHeaderInfo.vue2.js";
2
- import c from "../../../../_virtual/_plugin-vue2_normalizer.js";
3
- var r = function() {
4
- var t = this, s = t._self._c, a = t._self._setupProxy;
5
- return s("div", { staticClass: "d-f a-i-c j-c-s-b w-1" }, [s("div", { staticClass: "d-f a-i-c" }, [s("div", { staticClass: "b-c-49 bor-r-100 w-5-s h-5-s d-f a-i-c j-c-c" }, [s(a.InIcons, { attrs: { name: "line-menu-profile" } })], 1), s("div", { staticClass: "d-f f-d-c ml-2" }, [s("p", { staticClass: "t-c-53 f-w-600 f-s-1 l-h-1" }, [t._v(" " + t._s(a.senderName) + " ")]), s("p", { staticClass: "t-c-55 f-w-400 f-s-12 l-h-1" }, [t._v(" " + t._s(a.subject) + " ")])])])]);
6
- }, i = [], n = /* @__PURE__ */ c(
7
- e,
8
- r,
9
- i,
10
- !1,
11
- null,
12
- null
13
- );
14
- const o = n.exports;
15
- export {
16
- o as default
17
- };
@@ -1,20 +0,0 @@
1
- import { defineComponent as i, computed as s } from "vue";
2
- import { useConfig as c } from "../../../../composables/useConfig.js";
3
- import { useTranslations as d } from "../../../../composables/useTranslations.js";
4
- import { InIcons as u } from "@useinsider/design-system-vue";
5
- const g = /* @__PURE__ */ i({
6
- __name: "EmailHeaderInfo",
7
- setup(f) {
8
- const { config: n } = c(), r = d(), a = s(() => {
9
- var e, t, o;
10
- return ((o = (t = (e = n.value) == null ? void 0 : e.editor) == null ? void 0 : t.emailHeader) == null ? void 0 : o.senderName) || r("settings.sender-name");
11
- }), m = s(() => {
12
- var e, t, o;
13
- return ((o = (t = (e = n.value) == null ? void 0 : e.editor) == null ? void 0 : t.emailHeader) == null ? void 0 : o.subject) || r("email-editor.default-subject");
14
- });
15
- return { __sfc: !0, config: n, trans: r, senderName: a, subject: m, InIcons: u };
16
- }
17
- });
18
- export {
19
- g as default
20
- };
@@ -1,4 +0,0 @@
1
- var b = /* @__PURE__ */ ((r) => (r.BUTTON = "recommendation-block-button", r.NAME = "recommendation-block-name", r.PRICE = "recommendation-block-price", r.OLD_PRICE = "recommendation-block-old-price", r.OMNIBUS_PRICE = "recommendation-block-omnibus-price", r.OMNIBUS_DISCOUNT = "recommendation-block-omnibus-discount", r.IMAGE = "recommendation-block-image", r))(b || {});
2
- export {
3
- b as RecommendationBlockId
4
- };
@@ -1,4 +0,0 @@
1
- var o = /* @__PURE__ */ ((c) => (c.BUTTON_ALIGN = "recommendation-block-button-align-control", c.BUTTON_BORDER = "recommendation-block-button-border-control", c.BUTTON_BORDER_RADIUS = "recommendation-block-button-border-radius-control", c.BUTTON_COLOR = "recommendation-block-button-color-control", c.BUTTON_FIT_TO_CONTENT = "recommendation-block-button-fit-to-content-control", c.BUTTON_FONT_FAMILY = "recommendation-block-button-font-family-control", c.BUTTON_MARGINS = "recommendation-block-button-margins-control", c.BUTTON_PADDINGS = "recommendation-block-button-paddings-control", c.BUTTON_TEXT = "recommendation-block-button-text-control", c.BUTTON_TEXT_SIZE = "recommendation-block-button-text-size-control", c.BUTTON_TEXT_STYLE_AND_FONT_COLOR = "recommendation-block-button-text-style-and-font-color-control", c.NAME_ALIGN = "recommendation-block-name-align-control", c.NAME_BACKGROUND = "recommendation-block-name-background-control", c.NAME_COLOR = "recommendation-block-name-color-control", c.NAME_FONT_FAMILY = "recommendation-block-name-font-family-control", c.NAME_PADDINGS = "recommendation-block-name-paddings-control", c.NAME_SIZE = "recommendation-block-name-size-control", c.NAME_STYLE = "recommendation-block-name-style-control", c.NAME_TEXT_TRIM = "recommendation-block-name-text-trim-control", c.PRICE_ALIGN = "recommendation-block-price-align-control", c.PRICE_BACKGROUND = "recommendation-block-price-background-control", c.PRICE_COLOR = "recommendation-block-price-color-control", c.PRICE_FONT_FAMILY = "recommendation-block-price-font-family-control", c.PRICE_PADDINGS = "recommendation-block-price-paddings-control", c.PRICE_SIZE = "recommendation-block-price-size-control", c.PRICE_STYLE = "recommendation-block-price-style-control", c.OLD_PRICE_ALIGN = "recommendation-block-old-price-align-control", c.OLD_PRICE_BACKGROUND = "recommendation-block-old-price-background-control", c.OLD_PRICE_COLOR = "recommendation-block-old-price-color-control", c.OLD_PRICE_FONT_FAMILY = "recommendation-block-old-price-font-family-control", c.OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control", c.OLD_PRICE_SIZE = "recommendation-block-old-price-size-control", c.OLD_PRICE_STYLE = "recommendation-block-old-price-style-control", c.OMNIBUS_PRICE_ALIGN = "recommendation-block-omnibus-price-align-control", c.OMNIBUS_PRICE_BACKGROUND = "recommendation-block-omnibus-price-background-control", c.OMNIBUS_PRICE_COLOR = "recommendation-block-omnibus-price-color-control", c.OMNIBUS_PRICE_FONT_FAMILY = "recommendation-block-omnibus-price-font-family-control", c.OMNIBUS_PRICE_PADDINGS = "recommendation-block-omnibus-price-paddings-control", c.OMNIBUS_PRICE_SIZE = "recommendation-block-omnibus-price-size-control", c.OMNIBUS_PRICE_STYLE = "recommendation-block-omnibus-price-style-control", c.OMNIBUS_PRICE_TEXT_BEFORE = "recommendation-block-omnibus-price-text-before-control", c.OMNIBUS_PRICE_TEXT_AFTER = "recommendation-block-omnibus-price-text-after-control", c.OMNIBUS_DISCOUNT_ALIGN = "recommendation-block-omnibus-discount-align-control", c.OMNIBUS_DISCOUNT_BACKGROUND = "recommendation-block-omnibus-discount-background-control", c.OMNIBUS_DISCOUNT_COLOR = "recommendation-block-omnibus-discount-color-control", c.OMNIBUS_DISCOUNT_FONT_FAMILY = "recommendation-block-omnibus-discount-font-family-control", c.OMNIBUS_DISCOUNT_PADDINGS = "recommendation-block-omnibus-discount-paddings-control", c.OMNIBUS_DISCOUNT_SIZE = "recommendation-block-omnibus-discount-size-control", c.OMNIBUS_DISCOUNT_STYLE = "recommendation-block-omnibus-discount-style-control", c.OMNIBUS_DISCOUNT_TEXT_BEFORE = "recommendation-block-omnibus-discount-text-before-control", c.OMNIBUS_DISCOUNT_TEXT_AFTER = "recommendation-block-omnibus-discount-text-after-control", c.IMAGE_SIZE = "recommendation-block-image-size-control", c.IMAGE_MARGINS = "recommendation-block-image-margins-control", c))(o || {});
2
- export {
3
- o as RecommendationControlId
4
- };
@@ -1,7 +0,0 @@
1
- const _ = 3, R = 3, O = 9, D = 4;
2
- export {
3
- R as DEFAULT_CARDS_IN_ROW,
4
- _ as DEFAULT_PRODUCTS_PER_ROW,
5
- D as MAX_PRODUCTS_PER_ROW,
6
- O as MAX_PRODUCT_COUNT
7
- };
@@ -1,11 +0,0 @@
1
- const T = ".ins-recommendation-product-container", c = "productImage", o = "productName", t = "productPrice", R = "productOldPrice", _ = "productOmnibusPrice", n = "productOmnibusDiscount", O = "productButton";
2
- export {
3
- O as ATTR_PRODUCT_BUTTON,
4
- c as ATTR_PRODUCT_IMAGE,
5
- o as ATTR_PRODUCT_NAME,
6
- R as ATTR_PRODUCT_OLD_PRICE,
7
- n as ATTR_PRODUCT_OMNIBUS_DISCOUNT,
8
- _ as ATTR_PRODUCT_OMNIBUS_PRICE,
9
- t as ATTR_PRODUCT_PRICE,
10
- T as CONTAINER_SELECTOR
11
- };
@@ -1,64 +0,0 @@
1
- import { createButtonFitToContainerControl as T, createButtonTextStyleAndFontColorControl as r, createButtonTextSizeControl as e, createButtonTextControl as B, createButtonPaddingsControl as l, createButtonMarginsControl as C, createButtonFontFamilyControl as O, createButtonColorControl as N, createButtonBorderRadiusControl as i, createButtonBorderControl as a, createButtonAlignControl as c } from "../../../controlFactories.js";
2
- import { RecommendationBlockId as o } from "../../constants/blockIds.js";
3
- import { RecommendationControlId as t } from "../../constants/controlIds.js";
4
- import { CONTAINER_SELECTOR as n } from "../../constants/selectors.js";
5
- const U = c(
6
- t.BUTTON_ALIGN,
7
- o.BUTTON,
8
- n
9
- ), d = a(
10
- t.BUTTON_BORDER,
11
- o.BUTTON,
12
- n
13
- ), s = i(
14
- t.BUTTON_BORDER_RADIUS,
15
- o.BUTTON,
16
- n
17
- ), _ = N(
18
- t.BUTTON_COLOR,
19
- o.BUTTON,
20
- n
21
- ), m = O(
22
- t.BUTTON_FONT_FAMILY,
23
- o.BUTTON,
24
- n
25
- ), u = C(
26
- t.BUTTON_MARGINS,
27
- o.BUTTON,
28
- n
29
- ), R = l(
30
- t.BUTTON_PADDINGS,
31
- o.BUTTON,
32
- n
33
- ), F = B(
34
- t.BUTTON_TEXT,
35
- o.BUTTON,
36
- n
37
- ), A = e(
38
- t.BUTTON_TEXT_SIZE,
39
- o.BUTTON,
40
- n
41
- ), S = r(
42
- t.BUTTON_TEXT_STYLE_AND_FONT_COLOR,
43
- o.BUTTON,
44
- n
45
- ), E = T(
46
- t.BUTTON_FIT_TO_CONTENT,
47
- o.BUTTON,
48
- n
49
- ), p = {
50
- align: U,
51
- border: d,
52
- borderRadius: s,
53
- color: _,
54
- fontFamily: m,
55
- margins: u,
56
- paddings: R,
57
- text: F,
58
- textSize: A,
59
- textStyleAndFontColor: S,
60
- fitToContent: E
61
- };
62
- export {
63
- p as ButtonControls
64
- };
@@ -1,80 +0,0 @@
1
- import { ModificationDescription as d } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { CommonControl as s } from "../../../common-control.js";
3
- import { getCurrentLayout as l } from "../main/utils.js";
4
- const u = "recommendation-card-background-color-control", e = {
5
- CARD_BACKGROUND_COLOR: "cardBackgroundColor"
6
- }, a = {
7
- VERTICAL: ".product-card-segment",
8
- HORIZONTAL: ".product-card-wrapper"
9
- };
10
- class _ extends s {
11
- getId() {
12
- return u;
13
- }
14
- getTemplate() {
15
- return `
16
- <div class="card-bg-control-container">
17
- ${this._GuTwoColumns([
18
- this._GuLabel({ text: "Card Background Color" }),
19
- this._GuColorPicker(e.CARD_BACKGROUND_COLOR)
20
- ])}
21
- </div>
22
- `;
23
- }
24
- onRender() {
25
- this._setFormValues(), this._listenToFormUpdates();
26
- }
27
- onTemplateNodeUpdated(r) {
28
- super.onTemplateNodeUpdated(r), this._setFormValues();
29
- }
30
- _setFormValues() {
31
- const r = this._getCurrentCardBackgroundColor();
32
- this.api.updateValues({
33
- [e.CARD_BACKGROUND_COLOR]: r
34
- });
35
- }
36
- /**
37
- * Gets the appropriate selector based on layout
38
- * Vertical: .product-card-segment (inner table per product cell)
39
- * Horizontal: .product-card-wrapper (table per product row)
40
- */
41
- _getCardSelector() {
42
- return l(this.currentNode) === "vertical" ? a.VERTICAL : a.HORIZONTAL;
43
- }
44
- /**
45
- * Reads the current background color from the first product card element
46
- * @returns The background color value or 'transparent' if not found
47
- */
48
- _getCurrentCardBackgroundColor() {
49
- if (!this.currentNode || !("querySelectorAll" in this.currentNode))
50
- return "transparent";
51
- const r = this._getCardSelector(), t = this.currentNode.querySelector(r);
52
- return !t || !("getStyle" in t) ? "transparent" : t.getStyle("background-color") || "transparent";
53
- }
54
- /**
55
- * Handles card background color changes
56
- * Applies the color to all product card elements based on layout
57
- */
58
- _onCardBackgroundColorChange(r) {
59
- if (!this.currentNode || !("querySelectorAll" in this.currentNode))
60
- return;
61
- const t = this._getCardSelector(), o = Array.from(
62
- this.currentNode.querySelectorAll(t)
63
- );
64
- if (o.length === 0)
65
- return;
66
- const n = this.api.getDocumentModifier();
67
- o.forEach((c) => {
68
- n.modifyHtml(c).setStyle("background-color", r);
69
- }), n.apply(new d("Update card background color"));
70
- }
71
- _listenToFormUpdates() {
72
- this.api.onValueChanged(e.CARD_BACKGROUND_COLOR, (r) => {
73
- this._onCardBackgroundColorChange(r);
74
- });
75
- }
76
- }
77
- export {
78
- u as CARD_BACKGROUND_COLOR_CONTROL_ID,
79
- _ as CardBackgroundColorControl
80
- };
@@ -1,238 +0,0 @@
1
- var C = Object.defineProperty;
2
- var f = (a, s, t) => s in a ? C(a, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[s] = t;
3
- var c = (a, s, t) => f(a, typeof s != "symbol" ? s + "" : s, t);
4
- import { ModificationDescription as d } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as O } from "../../../common-control.js";
6
- import { ATTR_PRODUCT_IMAGE as g, ATTR_PRODUCT_NAME as R, ATTR_PRODUCT_PRICE as A, ATTR_PRODUCT_OLD_PRICE as N, ATTR_PRODUCT_OMNIBUS_PRICE as D, ATTR_PRODUCT_OMNIBUS_DISCOUNT as E, ATTR_PRODUCT_BUTTON as I } from "../../constants/selectors.js";
7
- import { useRecommendationExtensionStore as V } from "../../store/recommendation.js";
8
- import { getCurrentLayout as P } from "../main/utils.js";
9
- const S = "ui-elements-recommendation-card-composition", k = {
10
- ORDERABLE: "cardComposition"
11
- }, b = ".recommendation-attribute-row", v = ".product-card-wrapper > tbody", T = "data-card-composition", p = "data-attribute-type", y = "data-visibility", n = [
12
- { key: g, label: "Product Image", visible: !0 },
13
- { key: R, label: "Product Name", visible: !0 },
14
- { key: A, label: "Product Price", visible: !0 },
15
- { key: N, label: "Product Original Price", visible: !0 },
16
- { key: D, label: "Omnibus Price", visible: !1 },
17
- { key: E, label: "Omnibus Discount", visible: !1 },
18
- { key: I, label: "Product Button", visible: !0 }
19
- ];
20
- class q extends O {
21
- constructor() {
22
- super(...arguments);
23
- c(this, "store", V());
24
- c(this, "unsubscribeOrientation", null);
25
- }
26
- getId() {
27
- return S;
28
- }
29
- getTemplate() {
30
- const t = n.map((e) => ({
31
- key: e.key,
32
- label: e.label,
33
- content: this._createItemContent(e.label, e.key)
34
- }));
35
- return `
36
- <div class="container" data-card-composition-control>
37
- ${this._GuLabel({ text: "Card Element Order & Visibility" })}
38
- ${this._GuOrderable(k.ORDERABLE, t)}
39
- </div>
40
- `;
41
- }
42
- onRender() {
43
- this._initializeComposition(), this._registerValueChangeListeners(), this._updateOrderableState(), this._subscribeToOrientationChanges();
44
- }
45
- onTemplateNodeUpdated(t) {
46
- super.onTemplateNodeUpdated(t), this._initializeComposition(), this._updateOrderableState();
47
- }
48
- /**
49
- * Creates the HTML content for an orderable item with label and toggle
50
- */
51
- _createItemContent(t, e) {
52
- return `
53
- <div style="display: flex; align-items: center; justify-content: space-between;
54
- padding: 8px; gap: 8px;">
55
- <span style="flex: 1;">${t}</span>
56
- ${this._GuToggle(`visibility_${e}`)}
57
- </div>
58
- `;
59
- }
60
- /**
61
- * Registers event listeners for composition and visibility changes
62
- */
63
- _registerValueChangeListeners() {
64
- this.api.onValueChanged("cardComposition", (t) => {
65
- this._applyCompositionToBlock(t);
66
- }), n.forEach((t) => {
67
- this.api.onValueChanged(`visibility_${t.key}`, (e) => {
68
- this._applyVisibilityToBlock(t.key, e);
69
- });
70
- });
71
- }
72
- /**
73
- * Initializes composition order and visibility state from the current node
74
- */
75
- _initializeComposition() {
76
- const t = this._readCompositionFromNode(), e = this._readVisibilityFromRows(), i = {
77
- cardComposition: t,
78
- ...this._buildVisibilityValues(e)
79
- };
80
- this.api.updateValues(i);
81
- }
82
- /**
83
- * Reads composition order from node's data-card-composition attribute
84
- * Falls back to default order if attribute is not present
85
- */
86
- _readCompositionFromNode() {
87
- if (!this.currentNode || !("getAttribute" in this.currentNode))
88
- return n.map((e) => e.key);
89
- const t = this.currentNode.getAttribute(T);
90
- return t ? t.split(",").filter(Boolean) : n.map((e) => e.key);
91
- }
92
- /**
93
- * Builds visibility values object from the visibility map
94
- */
95
- _buildVisibilityValues(t) {
96
- return n.reduce((e, i) => (e[`visibility_${i.key}`] = t[i.key] ?? !0, e), {});
97
- }
98
- /**
99
- * Read visibility state from individual row elements' data-visibility attributes
100
- * This ensures toggles reflect the actual DOM state
101
- */
102
- _readVisibilityFromRows() {
103
- if (!this.currentNode)
104
- return this._getDefaultVisibilities();
105
- const t = Array.from(this.currentNode.querySelectorAll(b)), e = this._extractVisibilityFromRows(t);
106
- return this._mergeWithDefaults(e);
107
- }
108
- /**
109
- * Returns default visibility values for all items
110
- */
111
- _getDefaultVisibilities() {
112
- return n.reduce((t, e) => (t[e.key] = e.visible, t), {});
113
- }
114
- /**
115
- * Extracts visibility values from DOM nodes
116
- */
117
- _extractVisibilityFromRows(t) {
118
- const e = {};
119
- return t.forEach((i) => {
120
- if (!("getAttribute" in i))
121
- return;
122
- const r = i.getAttribute(p), o = i.getAttribute(y);
123
- r && o !== null && (e[r] = this._parseVisibilityValue(o));
124
- }), e;
125
- }
126
- /**
127
- * Parses visibility value from string to boolean
128
- * Accepts "1", "true" as true, everything else as false
129
- */
130
- _parseVisibilityValue(t) {
131
- return t === "1" || t === "true";
132
- }
133
- /**
134
- * Merges extracted visibilities with default values for missing keys
135
- */
136
- _mergeWithDefaults(t) {
137
- return n.forEach((e) => {
138
- e.key in t || (t[e.key] = e.visible);
139
- }), t;
140
- }
141
- /**
142
- * Apply the reordered composition to the block's HTML structure
143
- * Updates the data-card-composition attribute and reorders product attributes
144
- * Note: Reordering is only applied for vertical layout
145
- */
146
- _applyCompositionToBlock(t) {
147
- if (!this.currentNode)
148
- return;
149
- const e = this._getCurrentLayout();
150
- this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute(T, t.join(",")).apply(new d("Update card composition")), e === "vertical" && this._reorderProductAttributes(t);
151
- }
152
- /**
153
- * Reorders attribute rows within each product card based on composition order
154
- * Targets the tbody inside each product-attribute-cell to preserve card structure
155
- */
156
- _reorderProductAttributes(t) {
157
- if (!this.currentNode)
158
- return;
159
- const e = this.currentNode.querySelectorAll(v);
160
- if (!(e != null && e.length))
161
- return;
162
- const i = this.api.getDocumentModifier();
163
- e.forEach((r) => {
164
- const o = this._buildCompositionHtml(r, t);
165
- i.modifyHtml(r).setInnerHtml(o);
166
- }), i.apply(new d("Reorder product attributes"));
167
- }
168
- /**
169
- * Builds HTML string with attributes ordered according to composition
170
- */
171
- _buildCompositionHtml(t, e) {
172
- return e.reduce((i, r) => {
173
- const o = t.querySelector(`${b}[${p}="${r}"]`);
174
- return o && "getOuterHTML" in o ? i + o.getOuterHTML() : i;
175
- }, "");
176
- }
177
- /**
178
- * Apply visibility changes to the block's HTML structure
179
- * Updates display style and data-visibility attribute for all matching elements
180
- * - <tr> elements: use display: none / table-row
181
- * - <td> elements: use display: none / table-cell
182
- */
183
- _applyVisibilityToBlock(t, e) {
184
- if (!this.currentNode)
185
- return;
186
- const i = this.currentNode.querySelectorAll(`${b}[${p}="${t}"]`);
187
- if (!(i != null && i.length))
188
- return;
189
- const r = e ? "1" : "0", o = `Set ${t} visibility to ${e ? "visible" : "hidden"}`, m = this.api.getDocumentModifier();
190
- i.forEach((l) => {
191
- let u = "TR";
192
- if ("tagName" in l && l.tagName)
193
- u = l.tagName.toUpperCase();
194
- else if ("getTagName" in l) {
195
- const _ = l;
196
- typeof _.getTagName == "function" && (u = _.getTagName().toUpperCase());
197
- }
198
- const h = e ? u === "TD" || u === "BLOCK_IMAGE" || u === "BLOCK_BUTTON" ? "table-cell" : "table-row" : "none";
199
- m.modifyHtml(l).setStyle("display", h).setAttribute(y, r);
200
- }), m.apply(new d(o));
201
- }
202
- /**
203
- * Gets the current layout orientation from store or DOM
204
- */
205
- _getCurrentLayout() {
206
- return this.store.recommendationConfigs.orientation || P(this.currentNode);
207
- }
208
- /**
209
- * Updates orderable state based on layout orientation
210
- * Adds/removes disabled class to hide drag icons for horizontal layout
211
- */
212
- _updateOrderableState() {
213
- const e = this._getCurrentLayout() === "horizontal", i = this.getContainer();
214
- if (!i)
215
- return;
216
- const r = i.querySelector("[data-card-composition-control]");
217
- if (!r)
218
- return;
219
- const o = r.querySelector("ue-orderable");
220
- o && o.classList.toggle("orderable-disabled", e);
221
- }
222
- /**
223
- * Subscribe to store orientation changes
224
- * Updates orderable state when layout changes via the layout control
225
- */
226
- _subscribeToOrientationChanges() {
227
- this.unsubscribeOrientation && this.unsubscribeOrientation();
228
- let t = this.store.recommendationConfigs.orientation;
229
- this.unsubscribeOrientation = this.store.$subscribe(() => {
230
- const e = this.store.recommendationConfigs.orientation;
231
- e !== t && (t = e, this._updateOrderableState());
232
- });
233
- }
234
- }
235
- export {
236
- S as COMPOSITION_CONTROL_BLOCK_ID,
237
- q as RecommendationCardCompositionControl
238
- };
@@ -1,19 +0,0 @@
1
- import { createImageMarginsControl as m, createImageSizeControl as n } from "../../../controlFactories.js";
2
- import { RecommendationBlockId as o } from "../../constants/blockIds.js";
3
- import { RecommendationControlId as r } from "../../constants/controlIds.js";
4
- import { CONTAINER_SELECTOR as t } from "../../constants/selectors.js";
5
- const e = n(
6
- r.IMAGE_SIZE,
7
- o.IMAGE,
8
- t
9
- ), i = m(
10
- r.IMAGE_MARGINS,
11
- o.IMAGE,
12
- t
13
- ), C = {
14
- size: e,
15
- margins: i
16
- };
17
- export {
18
- C as ImageControls
19
- };
@@ -1,104 +0,0 @@
1
- var h = Object.defineProperty;
2
- var p = (e, o, t) => o in e ? h(e, o, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[o] = t;
3
- var i = (e, o, t) => p(e, typeof o != "symbol" ? o + "" : o, t);
4
- import { ModificationDescription as a } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as g } from "../../../common-control.js";
6
- import { CONTAINER_SELECTOR as C } from "../../constants/selectors.js";
7
- import { useRecommendationExtensionStore as f } from "../../store/recommendation.js";
8
- import { prepareProductRows as L } from "../../templates/index.js";
9
- import { getCurrentLayout as u, getBlockElement as T, getCurrentCardBackgroundColor as y, getCardComposition as N, applyCardBackgroundColor as _ } from "../main/utils.js";
10
- import { getDefaultProducts as O } from "../../templates/utils.js";
11
- const R = "recommendation-layout-control", s = {
12
- LAYOUT: "layout"
13
- }, A = {
14
- LAYOUT: "data-layout"
15
- }, U = [
16
- { text: "Vertical", value: "vertical" },
17
- { text: "Horizontal", value: "horizontal" }
18
- ];
19
- class I extends g {
20
- constructor() {
21
- super(...arguments);
22
- i(this, "store", f());
23
- i(this, "isChangingLayout", !1);
24
- }
25
- getId() {
26
- return R;
27
- }
28
- getTemplate() {
29
- return `
30
- <div class="layout-control-container">
31
- ${this._GuTwoColumns([
32
- this._GuLabel({ text: "Layout Orientation" }),
33
- this._GuRadioButton({
34
- name: s.LAYOUT,
35
- buttons: U
36
- })
37
- ])}
38
- </div>
39
- `;
40
- }
41
- onRender() {
42
- this._setFormValues(), this._listenToFormUpdates();
43
- }
44
- onTemplateNodeUpdated(t) {
45
- super.onTemplateNodeUpdated(t), this._setFormValues();
46
- }
47
- _setFormValues() {
48
- const t = u(this.currentNode);
49
- this.api.updateValues({
50
- [s.LAYOUT]: t
51
- });
52
- }
53
- /**
54
- * Handles layout change
55
- * Updates the block's data attribute and regenerates product rows
56
- */
57
- _onLayoutChange(t) {
58
- if (this.isChangingLayout || u(this.currentNode) === t)
59
- return;
60
- const r = T(this.currentNode);
61
- if (r) {
62
- this.isChangingLayout = !0;
63
- try {
64
- this.store.$patch({
65
- recommendationConfigs: {
66
- orientation: t
67
- }
68
- }), this.api.getDocumentModifier().modifyHtml(r).setAttribute(A.LAYOUT, t).apply(new a(`Update layout to ${t}`)), this._regenerateProductRows(t);
69
- } finally {
70
- this.isChangingLayout = !1;
71
- }
72
- }
73
- }
74
- /**
75
- * Regenerates product rows based on the selected layout
76
- * Special handling: captures and reapplies background color across layout changes
77
- */
78
- _regenerateProductRows(t) {
79
- if (!this.currentNode || !("querySelector" in this.currentNode))
80
- return;
81
- const n = this.currentNode.querySelector(C);
82
- if (!n)
83
- return;
84
- const r = y(this.currentNode), c = this.store.recommendationProducts.length > 0 ? this.store.recommendationProducts : O(), { cardsInRow: d } = this.store.recommendationConfigs, m = N(this.currentNode), l = L(c, t, {
85
- productsPerRow: d,
86
- composition: m
87
- });
88
- this.api.getDocumentModifier().modifyHtml(n).setInnerHtml(l).apply(new a(`Regenerated products for ${t} layout`)), _({
89
- currentNode: this.currentNode,
90
- documentModifier: this.api.getDocumentModifier(),
91
- bgColor: r,
92
- layout: t
93
- });
94
- }
95
- _listenToFormUpdates() {
96
- this.api.onValueChanged(s.LAYOUT, (t) => {
97
- this._onLayoutChange(t);
98
- });
99
- }
100
- }
101
- export {
102
- R as LAYOUT_CONTROL_ID,
103
- I as LayoutControl
104
- };