@useinsider/guido 2.0.0-beta.edc1f0a → 2.0.0-beta.eee5ecc

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 (238) hide show
  1. package/dist/@types/config/schemas.js +53 -39
  2. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +2 -2
  3. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +2 -2
  4. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +5 -5
  5. package/dist/components/organisms/header/LeftSlot.vue.js +12 -12
  6. package/dist/components/organisms/header/LeftSlot.vue2.js +6 -6
  7. package/dist/components/organisms/header/RightSlot.vue2.js +10 -10
  8. package/dist/composables/useActionsApi.js +33 -30
  9. package/dist/composables/useConfig.js +29 -27
  10. package/dist/composables/useSave.js +13 -11
  11. package/dist/config/migrator/index.js +9 -8
  12. package/dist/config/migrator/itemsBlockMigrator.js +334 -0
  13. package/dist/config/migrator/recommendationMigrator.js +2 -2
  14. package/dist/extensions/Blocks/Items/block.js +36 -40
  15. package/dist/extensions/Blocks/Items/controls/button/link.js +22 -29
  16. package/dist/extensions/Blocks/Items/controls/cardComposition.js +70 -59
  17. package/dist/extensions/Blocks/Items/controls/image/link.js +23 -30
  18. package/dist/extensions/Blocks/Items/controls/name/trimming.js +25 -25
  19. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +19 -17
  20. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +31 -29
  21. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +36 -36
  22. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +21 -19
  23. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +29 -27
  24. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +93 -0
  25. package/dist/extensions/Blocks/Items/controls/settingsControl.js +146 -131
  26. package/dist/extensions/Blocks/Items/enums/controlEnums.js +2 -2
  27. package/dist/extensions/Blocks/Items/enums/productEnums.js +43 -45
  28. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +4 -5
  29. package/dist/extensions/Blocks/Items/extension.js +11 -9
  30. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +58 -49
  31. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +48 -59
  32. package/dist/extensions/Blocks/Items/settingsPanel.js +27 -26
  33. package/dist/extensions/Blocks/Items/store/items-block.js +11 -7
  34. package/dist/extensions/Blocks/Items/template.js +389 -141
  35. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +176 -0
  36. package/dist/extensions/Blocks/Recommendation/block.js +1 -1
  37. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +103 -0
  38. package/dist/extensions/Blocks/Recommendation/constants.js +5 -0
  39. package/dist/extensions/Blocks/Recommendation/control.js +306 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +13 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +13 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +13 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +13 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +13 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +13 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +13 -0
  47. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +13 -0
  48. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +13 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +13 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +13 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +13 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +13 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +13 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +13 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +13 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +13 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +13 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +13 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +13 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +13 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +13 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +13 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +13 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +13 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +13 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +13 -0
  67. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +13 -0
  68. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +13 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +13 -0
  70. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +13 -0
  71. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +13 -0
  72. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +13 -0
  73. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +13 -0
  74. package/dist/extensions/Blocks/Recommendation/extension.js +43 -40
  75. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +4 -13
  76. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +72 -128
  77. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +26 -29
  78. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +160 -0
  79. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +152 -0
  80. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +180 -0
  81. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  82. package/dist/extensions/Blocks/Unsubscribe/extension.js +9 -9
  83. package/dist/extensions/Blocks/common-control.js +30 -32
  84. package/dist/extensions/Blocks/controlFactories.js +106 -130
  85. package/dist/guido.css +1 -1
  86. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +125 -116
  87. package/dist/src/@types/config/index.d.ts +2 -2
  88. package/dist/src/@types/config/schemas.d.ts +26 -0
  89. package/dist/src/@types/config/types.d.ts +7 -1
  90. package/dist/src/composables/useActionsApi.d.ts +1 -0
  91. package/dist/src/composables/useConfig.d.ts +6 -0
  92. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +6 -0
  93. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -2
  94. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +9 -0
  95. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -2
  96. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -1
  97. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +18 -0
  98. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -4
  99. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +1 -0
  100. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +24 -26
  101. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +1 -2
  102. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +2 -0
  103. package/dist/src/extensions/Blocks/Items/template.d.ts +22 -1
  104. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +76 -0
  105. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +28 -0
  106. package/dist/src/extensions/Blocks/Recommendation/{constants/controlIds.d.ts → constants.d.ts} +11 -19
  107. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +35 -0
  108. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  109. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  110. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  111. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  112. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  113. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  114. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  115. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  116. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  117. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  118. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  119. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +5 -0
  120. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +5 -0
  121. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  122. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  123. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  124. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  125. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  126. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  127. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  128. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +5 -0
  129. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +5 -0
  130. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +5 -0
  131. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +5 -0
  132. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +5 -0
  133. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +5 -0
  134. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +5 -0
  135. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +5 -0
  136. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +5 -0
  137. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +5 -0
  138. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +5 -0
  139. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +5 -0
  140. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +5 -0
  141. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +5 -0
  142. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +0 -9
  143. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +16 -17
  144. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +16 -0
  145. package/dist/src/extensions/Blocks/Recommendation/templates/{vertical/migration.d.ts → migrationTemplate.d.ts} +4 -11
  146. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +44 -0
  147. package/dist/src/extensions/Blocks/common-control.d.ts +10 -11
  148. package/dist/src/stores/config.d.ts +147 -1
  149. package/dist/static/styles/components/button.css.js +1 -1
  150. package/dist/static/styles/components/wide-panel.css.js +4 -0
  151. package/dist/static/styles/customEditorStyle.css.js +2 -38
  152. package/dist/stores/config.js +7 -0
  153. package/dist/utils/pairProductVariables.js +61 -58
  154. package/dist/utils/templatePreparation.js +17 -17
  155. package/package.json +1 -1
  156. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  157. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  158. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -76
  159. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -46
  160. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +0 -4
  161. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +0 -4
  162. package/dist/extensions/Blocks/Recommendation/constants/layout.js +0 -12
  163. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +0 -11
  164. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +0 -64
  165. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +0 -80
  166. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +0 -232
  167. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +0 -19
  168. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +0 -104
  169. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +0 -86
  170. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +0 -134
  171. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +0 -54
  172. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +0 -147
  173. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +0 -64
  174. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +0 -111
  175. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +0 -60
  176. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +0 -114
  177. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +0 -46
  178. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +0 -76
  179. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +0 -44
  180. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +0 -48
  181. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +0 -73
  182. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +0 -73
  183. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +0 -48
  184. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +0 -73
  185. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +0 -73
  186. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +0 -44
  187. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +0 -211
  188. package/dist/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.js +0 -157
  189. package/dist/extensions/Blocks/Recommendation/templates/horizontal/template.js +0 -72
  190. package/dist/extensions/Blocks/Recommendation/templates/index.js +0 -12
  191. package/dist/extensions/Blocks/Recommendation/templates/utils.js +0 -173
  192. package/dist/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.js +0 -186
  193. package/dist/extensions/Blocks/Recommendation/templates/vertical/migration.js +0 -251
  194. package/dist/extensions/Blocks/Recommendation/templates/vertical/template.js +0 -62
  195. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +0 -36
  196. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +0 -46
  197. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  198. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  199. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -50
  200. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  201. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +0 -13
  202. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +0 -12
  203. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +0 -27
  204. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +0 -19
  205. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +0 -143
  206. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +0 -31
  207. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +0 -95
  208. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +0 -35
  209. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +0 -24
  210. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +0 -34
  211. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +0 -17
  212. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +0 -16
  213. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +0 -22
  214. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +0 -62
  215. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +0 -15
  216. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +0 -39
  217. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +0 -15
  218. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +0 -81
  219. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +0 -97
  220. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +0 -16
  221. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +0 -95
  222. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +0 -100
  223. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +0 -15
  224. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +0 -15
  225. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +0 -100
  226. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +0 -15
  227. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +0 -15
  228. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +0 -95
  229. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +0 -73
  230. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.d.ts +0 -8
  231. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/migration.d.ts +0 -25
  232. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/template.d.ts +0 -18
  233. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +0 -39
  234. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +0 -45
  235. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.d.ts +0 -7
  236. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/template.d.ts +0 -33
  237. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +0 -19
  238. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +0 -77
@@ -0,0 +1,5 @@
1
+ import { ImmutableHtmlNode, TextAlignBuiltInControl } from '@stripoinc/ui-editor-extensions';
2
+ export declare class PriceAlignControl extends TextAlignBuiltInControl {
3
+ getId(): string;
4
+ getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
5
+ }
@@ -0,0 +1,5 @@
1
+ import { ImmutableHtmlNode, TextBlockBackgroundBuiltInControl } from '@stripoinc/ui-editor-extensions';
2
+ export declare class PriceBackgroundControl extends TextBlockBackgroundBuiltInControl {
3
+ getId(): string;
4
+ getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
5
+ }
@@ -0,0 +1,5 @@
1
+ import { ImmutableHtmlNode, TextColorBuiltInControl } from '@stripoinc/ui-editor-extensions';
2
+ export declare class PriceColorControl extends TextColorBuiltInControl {
3
+ getId(): string;
4
+ getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
5
+ }
@@ -0,0 +1,5 @@
1
+ import { ImmutableHtmlNode, TextFontFamilyBuiltInControl } from '@stripoinc/ui-editor-extensions';
2
+ export declare class PriceFontFamilyControl extends TextFontFamilyBuiltInControl {
3
+ getId(): string;
4
+ getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
5
+ }
@@ -0,0 +1,5 @@
1
+ import { ImmutableHtmlNode, TextPaddingsBuiltInControl } from '@stripoinc/ui-editor-extensions';
2
+ export declare class PricePaddingsControl extends TextPaddingsBuiltInControl {
3
+ getId(): string;
4
+ getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
5
+ }
@@ -0,0 +1,5 @@
1
+ import { ImmutableHtmlNode, TextSizeBuiltInControl } from '@stripoinc/ui-editor-extensions';
2
+ export declare class PriceSizeControl extends TextSizeBuiltInControl {
3
+ getId(): string;
4
+ getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
5
+ }
@@ -0,0 +1,5 @@
1
+ import { ImmutableHtmlNode, TextStyleBuiltInControl } from '@stripoinc/ui-editor-extensions';
2
+ export declare class PriceStyleControl extends TextStyleBuiltInControl {
3
+ getId(): string;
4
+ getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
5
+ }
@@ -1,11 +1,2 @@
1
- /**
2
- * Recommendation Block Extension
3
- *
4
- * This extension provides a product recommendation block for email templates.
5
- * Controls are organized by element type in the ./controls directory.
6
- */
7
- /**
8
- * Build and export the Recommendation extension
9
- */
10
1
  declare const _default: import("@stripoinc/ui-editor-extensions").Extension;
11
2
  export default _default;
@@ -1,6 +1,5 @@
1
1
  import type { Orientation, Languages, Currency, NumericSeparator, FiltersResponse, Filter, RecommendationProduct } from '@@/Types/recommendation';
2
2
  interface StoreState {
3
- /** Maps campaign URLs for recommendation blocks. Used by templateLibraryApi when saving templates. */
4
3
  recommendationCampaignUrls: Record<string, string>;
5
4
  recommendationConfigs: {
6
5
  cardsInRow: number;
@@ -19,8 +18,8 @@ interface StoreState {
19
18
  orientation: Orientation;
20
19
  productIds: string[];
21
20
  recommendedProducts: [];
22
- sendProductRequestFlag: boolean;
23
- shuffleProducts: boolean;
21
+ sendProductRequestFlag: false;
22
+ shuffleProducts: false;
24
23
  strategy: string;
25
24
  textTrimming: boolean;
26
25
  unresponsive: boolean;
@@ -66,8 +65,8 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
66
65
  orientation: Orientation;
67
66
  productIds: string[];
68
67
  recommendedProducts: [];
69
- sendProductRequestFlag: boolean;
70
- shuffleProducts: boolean;
68
+ sendProductRequestFlag: false;
69
+ shuffleProducts: false;
71
70
  strategy: string;
72
71
  textTrimming: boolean;
73
72
  unresponsive: boolean;
@@ -135,8 +134,8 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
135
134
  orientation: Orientation;
136
135
  productIds: string[];
137
136
  recommendedProducts: [];
138
- sendProductRequestFlag: boolean;
139
- shuffleProducts: boolean;
137
+ sendProductRequestFlag: false;
138
+ shuffleProducts: false;
140
139
  strategy: string;
141
140
  textTrimming: boolean;
142
141
  unresponsive: boolean;
@@ -204,8 +203,8 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
204
203
  orientation: Orientation;
205
204
  productIds: string[];
206
205
  recommendedProducts: [];
207
- sendProductRequestFlag: boolean;
208
- shuffleProducts: boolean;
206
+ sendProductRequestFlag: false;
207
+ shuffleProducts: false;
209
208
  strategy: string;
210
209
  textTrimming: boolean;
211
210
  unresponsive: boolean;
@@ -276,8 +275,8 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
276
275
  orientation: Orientation;
277
276
  productIds: string[];
278
277
  recommendedProducts: [];
279
- sendProductRequestFlag: boolean;
280
- shuffleProducts: boolean;
278
+ sendProductRequestFlag: false;
279
+ shuffleProducts: false;
281
280
  strategy: string;
282
281
  textTrimming: boolean;
283
282
  unresponsive: boolean;
@@ -348,8 +347,8 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
348
347
  orientation: Orientation;
349
348
  productIds: string[];
350
349
  recommendedProducts: [];
351
- sendProductRequestFlag: boolean;
352
- shuffleProducts: boolean;
350
+ sendProductRequestFlag: false;
351
+ shuffleProducts: false;
353
352
  strategy: string;
354
353
  textTrimming: boolean;
355
354
  unresponsive: boolean;
@@ -420,8 +419,8 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
420
419
  orientation: Orientation;
421
420
  productIds: string[];
422
421
  recommendedProducts: [];
423
- sendProductRequestFlag: boolean;
424
- shuffleProducts: boolean;
422
+ sendProductRequestFlag: false;
423
+ shuffleProducts: false;
425
424
  strategy: string;
426
425
  textTrimming: boolean;
427
426
  unresponsive: boolean;
@@ -493,8 +492,8 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
493
492
  orientation: Orientation;
494
493
  productIds: string[];
495
494
  recommendedProducts: [];
496
- sendProductRequestFlag: boolean;
497
- shuffleProducts: boolean;
495
+ sendProductRequestFlag: false;
496
+ shuffleProducts: false;
498
497
  strategy: string;
499
498
  textTrimming: boolean;
500
499
  unresponsive: boolean;
@@ -0,0 +1,16 @@
1
+ import type { RecommendationProduct } from '@@/Types/recommendation';
2
+ import { DEFAULTS, getDefaultProducts, DEFAULT_CARD_COMPOSITION } from './templateUtils';
3
+ declare const blockTemplate = "\n <td align=\"left\" class=\"ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block es-p20\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td align=\"center\">\n <table\n class=\"container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n <td>\n <table\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <BLOCK_TEXT\n class=\"es-p10t es-p10b es-p20l es-p20r\"\n align=\"center\">\n <p path=\"1\" style=\"font-size: 28px; color: #333333;\">\n <strong path=\"1,0\">{-{-TITLE-}-}</strong>\n </p>\n </BLOCK_TEXT>\n </tbody>\n </table>\n </td>\n </tr>\n \n <tr>\n <td class=\"spacer\" style=\"height: 20px;\"></td>\n </tr>\n\n <tr>\n <td>\n <table\n class=\"ins-recommendation-product-container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n >\n {-{-PRODUCT_ROWS-}-}\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
4
+ export declare function getDefaultTemplate(): string;
5
+ /**
6
+ * Generates a custom template with specified products and layout
7
+ * @param products - Array of products to display
8
+ * @param productsPerRow - Number of products per row
9
+ * @param title - Optional title for the block
10
+ * @param composition - Optional array defining order of card elements
11
+ * @returns Complete HTML template
12
+ */
13
+ export declare function generateBlockTemplate(products: RecommendationProduct[], productsPerRow: number, title?: string, composition?: string[]): string;
14
+ export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, composition?: string[]): string;
15
+ export { DEFAULTS, DEFAULT_CARD_COMPOSITION, getDefaultProducts, };
16
+ export default blockTemplate;
@@ -1,17 +1,9 @@
1
1
  import type { RecommendationProduct } from '@@/Types/recommendation';
2
- import { DEFAULTS, getDefaultProducts, DEFAULT_CARD_COMPOSITION, DEFAULT_CARD_VISIBILITY } from '../utils';
2
+ import { DEFAULTS, getDefaultProducts } from './templateUtils';
3
3
  declare const migrationTemplate = "\n <td\n align=\"left\"\n esd-extension-block-id=\"recommendation-block\"\n esd-handler-name=\"esd-extension-RecommendationBlock\"\n class=\"ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block esd-extension-block es-p20\"\n >\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td align=\"center\">\n <table\n class=\"container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n <td>\n <table\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n {-{-TITLE-}-}\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n <tr>\n <td class=\"spacer\" style=\"height: 20px;\"></td>\n </tr>\n <tr>\n <td>\n <table\n class=\"ins-recommendation-product-container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n >\n {-{-PRODUCT_ROWS-}-}\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
4
- /**
5
- * Prepares migration product rows with attribute-aligned structure.
6
- * @param products - Array of products to display
7
- * @param productsPerRow - Number of products per row
8
- * @param composition - Array defining element order
9
- * @returns HTML string for product rows
10
- */
11
- export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, composition?: string[]): string;
12
4
  export declare function getMigrationTemplate(): string;
13
5
  /**
14
- * Generates a custom migration template with specified products and layout.
6
+ * Generates a custom migration template with specified products and layout
15
7
  * @param products - Array of products to display
16
8
  * @param productsPerRow - Number of products per row
17
9
  * @param title - Optional title for the block
@@ -19,5 +11,6 @@ export declare function getMigrationTemplate(): string;
19
11
  * @returns Complete HTML template
20
12
  */
21
13
  export declare function generateMigrationTemplate(products: RecommendationProduct[], productsPerRow: number, title?: string, composition?: string[]): string;
22
- export { DEFAULTS, DEFAULT_CARD_COMPOSITION, DEFAULT_CARD_VISIBILITY, getDefaultProducts, };
14
+ export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, composition?: string[]): string;
15
+ export { DEFAULTS, getDefaultProducts };
23
16
  export default migrationTemplate;
@@ -0,0 +1,44 @@
1
+ import type { RecommendationProduct } from '@@/Types/recommendation';
2
+ export interface ElementRenderer {
3
+ productImage: (product: RecommendationProduct) => string;
4
+ productName: (product: RecommendationProduct) => string;
5
+ productPrice: (product: RecommendationProduct) => string;
6
+ productOldPrice: (product: RecommendationProduct) => string;
7
+ productButton: (product: RecommendationProduct) => string;
8
+ }
9
+ export interface TemplateConfig {
10
+ spacer: string;
11
+ blockTemplate: string;
12
+ productRow: string;
13
+ productCardWrapper: string;
14
+ elementRenderer: ElementRenderer;
15
+ }
16
+ export declare const DEFAULTS: {
17
+ TITLE: string;
18
+ DESCRIPTION: string;
19
+ };
20
+ export declare const spacer = "\n <tr>\n <td class=\"spacer\" style=\"height: 20px;\"></td>\n </tr>\n";
21
+ export declare const productRow = "\n <tr>\n <td>\n <table width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n {-{-PRODUCTS-}-}\n </table>\n </td>\n </tr>\n";
22
+ export declare const productCardWrapper = "\n <td width=\"{-{-COLUMN_WIDTH-}-}\" style=\"padding: 0 5px;\" valign=\"top\" height=\"100%\">\n <table\n width=\"100%\"\n height=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n class=\"product-card-wrapper\">\n <tr>\n <td\n class=\"product-attribute-cell\"\n valign=\"top\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n {-{-PRODUCT_CONTENT-}-}\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
23
+ export declare const DEFAULT_CARD_COMPOSITION: string[];
24
+ export declare function getDefaultProducts(): RecommendationProduct[];
25
+ /**
26
+ * Core template generation logic that works with any element renderer
27
+ * @param products - Array of products to display
28
+ * @param productsPerRow - Number of products per row
29
+ * @param elementRenderer - Object with methods to render each product element
30
+ * @param composition - Optional array defining order of card elements
31
+ * @returns HTML string for product rows
32
+ */
33
+ export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, composition?: string[]): string;
34
+ /**
35
+ * Generates complete HTML template with dynamic products and layout
36
+ * @param blockTemplate - The base block template string
37
+ * @param products - Array of products to display
38
+ * @param productsPerRow - Number of products per row
39
+ * @param elementRenderer - Element renderer for generating product HTML
40
+ * @param title - Title for the block
41
+ * @param composition - Optional array defining order of card elements
42
+ * @returns Complete HTML template
43
+ */
44
+ export declare function generateTemplate(blockTemplate: string, products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, title?: string, composition?: string[]): string;
@@ -56,26 +56,25 @@ export declare abstract class CommonControl extends Control {
56
56
  onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
57
57
  onDestroy(): void;
58
58
  /**
59
- * Gets the config block element from the current node.
60
- * @returns The config block element or null if not found
59
+ * Gets the Items block container element from the current node.
60
+ * @returns The container element or null if not found
61
61
  */
62
- protected getConfigBlock(): ImmutableHtmlElementNode | null;
62
+ protected getItemsBlockContainer(): ImmutableHtmlElementNode | null;
63
63
  /**
64
- * Gets the current block instance ID from the config block.
65
- * @param blockInstanceIdAttribute - The attribute name for block instance ID (default: 'data-block-instance-id')
64
+ * Gets the current block instance ID from the node config (Stripo V2).
66
65
  * @returns The block instance ID or null if not found
67
66
  */
68
- protected getBlockInstanceId(blockInstanceIdAttribute?: string): string | null;
67
+ protected getBlockInstanceId(): string | null;
69
68
  /**
70
69
  * Handles block instance change detection and syncing.
71
- * This is a helper method for controls that need to sync attributes when switching between block instances.
72
- * @param syncFunction - Function to call when block instance changes (to sync from attributes)
70
+ * This is a helper method for controls that need to sync config when switching between block instances.
71
+ * Uses Stripo V2 nodeConfig API for block instance tracking.
72
+ * @param syncFunction - Function to call when block instance changes (to sync from node config)
73
73
  * @param updateUI - Function to call to update the UI (called both on change and when same block)
74
- * @param blockInstanceIdAttribute - The attribute name for block instance ID (default: 'data-block-instance-id')
75
74
  * @returns true if block instance changed, false otherwise
76
75
  */
77
- protected handleBlockInstanceChange(syncFunction: (node: ImmutableHtmlNode) => void, updateUI: () => void, blockInstanceIdAttribute?: string): boolean;
78
- _GuLabel({ text, name, position }: LabelProps): string;
76
+ protected handleBlockInstanceChange(syncFunction: (node: ImmutableHtmlNode) => void, updateUI: () => void): boolean;
77
+ _GuLabel({ text, name }: LabelProps): string;
79
78
  _GuToggle(name: string): string;
80
79
  _GuSelectItem({ text, value }: {
81
80
  text: string;
@@ -1,4 +1,4 @@
1
- import type { GuidoConfig, GuidoConfigInput, IdentityConfig, PartnerConfig, TemplateConfig, EditorConfig, UIConfig, FeaturesConfig, BlocksConfig, CompilerConfig } from '@@/Types/config';
1
+ import type { GuidoConfig, GuidoConfigInput, IdentityConfig, PartnerConfig, TemplateConfig, EditorConfig, UIConfig, FeaturesConfig, BlocksConfig, CompilerConfig, CallbacksConfig } from '@@/Types/config';
2
2
  interface ConfigStoreState {
3
3
  /** Whether the config has been initialized */
4
4
  initialized: boolean;
@@ -96,6 +96,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
96
96
  })[];
97
97
  ignoreDefaultRules: boolean;
98
98
  };
99
+ callbacks: {
100
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
101
+ };
99
102
  } | null;
100
103
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => IdentityConfig | null;
101
104
  /**
@@ -188,6 +191,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
188
191
  })[];
189
192
  ignoreDefaultRules: boolean;
190
193
  };
194
+ callbacks: {
195
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
196
+ };
191
197
  } | null;
192
198
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => PartnerConfig | null;
193
199
  /**
@@ -280,6 +286,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
280
286
  })[];
281
287
  ignoreDefaultRules: boolean;
282
288
  };
289
+ callbacks: {
290
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
291
+ };
283
292
  } | null;
284
293
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => TemplateConfig | null;
285
294
  /**
@@ -372,6 +381,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
372
381
  })[];
373
382
  ignoreDefaultRules: boolean;
374
383
  };
384
+ callbacks: {
385
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
386
+ };
375
387
  } | null;
376
388
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => EditorConfig | null;
377
389
  /**
@@ -464,6 +476,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
464
476
  })[];
465
477
  ignoreDefaultRules: boolean;
466
478
  };
479
+ callbacks: {
480
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
481
+ };
467
482
  } | null;
468
483
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => UIConfig | null;
469
484
  /**
@@ -556,6 +571,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
556
571
  })[];
557
572
  ignoreDefaultRules: boolean;
558
573
  };
574
+ callbacks: {
575
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
576
+ };
559
577
  } | null;
560
578
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => FeaturesConfig | null;
561
579
  /**
@@ -648,6 +666,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
648
666
  })[];
649
667
  ignoreDefaultRules: boolean;
650
668
  };
669
+ callbacks: {
670
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
671
+ };
651
672
  } | null;
652
673
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => BlocksConfig | null;
653
674
  /**
@@ -740,8 +761,106 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
740
761
  })[];
741
762
  ignoreDefaultRules: boolean;
742
763
  };
764
+ callbacks: {
765
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
766
+ };
743
767
  } | null;
744
768
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => CompilerConfig | null;
769
+ /**
770
+ * Get the callbacks configuration
771
+ */
772
+ callbacks: (state: {
773
+ initialized: boolean;
774
+ config: {
775
+ identity: {
776
+ templateId: string;
777
+ userId: string;
778
+ variationId?: string | undefined;
779
+ };
780
+ partner: {
781
+ name: string;
782
+ productType: 60 | 49 | 97;
783
+ messageType: 1 | 2;
784
+ username: string;
785
+ };
786
+ template: {
787
+ html: string;
788
+ css: string;
789
+ preselectedDynamicContent: {
790
+ text: string;
791
+ value: string;
792
+ fallback?: string | undefined;
793
+ format?: {
794
+ key: string;
795
+ value: string;
796
+ } | undefined;
797
+ }[];
798
+ selectedUnsubscribePages: number[];
799
+ forceRecreate: boolean;
800
+ };
801
+ editor: {
802
+ locale: string;
803
+ translationsPath: string;
804
+ migrationDate: number;
805
+ emailHeader: {
806
+ senderName: string;
807
+ subject: string;
808
+ };
809
+ };
810
+ ui: {
811
+ showHeader: boolean;
812
+ backButtonLabel?: string | undefined;
813
+ };
814
+ features: {
815
+ dynamicContent: boolean;
816
+ saveAsTemplate: boolean;
817
+ versionHistory: boolean;
818
+ testMessage: boolean;
819
+ displayConditions: boolean;
820
+ unsubscribe: boolean;
821
+ modulesDisabled: boolean;
822
+ };
823
+ blocks: {
824
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
825
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
826
+ };
827
+ compiler: {
828
+ customRules: ({
829
+ type: "replace";
830
+ search: string;
831
+ replacement: string;
832
+ replaceAll?: boolean | undefined;
833
+ id: string;
834
+ description?: string | undefined;
835
+ priority: number;
836
+ } | {
837
+ type: "regex";
838
+ pattern: string;
839
+ replacement: string;
840
+ flags?: string | undefined;
841
+ id: string;
842
+ description?: string | undefined;
843
+ priority: number;
844
+ } | {
845
+ type: "remove";
846
+ targets: string[];
847
+ id: string;
848
+ description?: string | undefined;
849
+ priority: number;
850
+ } | {
851
+ type: "custom";
852
+ processor: (html: string) => string;
853
+ id: string;
854
+ description?: string | undefined;
855
+ priority: number;
856
+ })[];
857
+ ignoreDefaultRules: boolean;
858
+ };
859
+ callbacks: {
860
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
861
+ };
862
+ } | null;
863
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => CallbacksConfig | null;
745
864
  /**
746
865
  * Get the template ID
747
866
  */
@@ -832,6 +951,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
832
951
  })[];
833
952
  ignoreDefaultRules: boolean;
834
953
  };
954
+ callbacks: {
955
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
956
+ };
835
957
  } | null;
836
958
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
837
959
  /**
@@ -924,6 +1046,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
924
1046
  })[];
925
1047
  ignoreDefaultRules: boolean;
926
1048
  };
1049
+ callbacks: {
1050
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1051
+ };
927
1052
  } | null;
928
1053
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
929
1054
  /**
@@ -1016,6 +1141,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1016
1141
  })[];
1017
1142
  ignoreDefaultRules: boolean;
1018
1143
  };
1144
+ callbacks: {
1145
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1146
+ };
1019
1147
  } | null;
1020
1148
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
1021
1149
  /**
@@ -1108,6 +1236,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1108
1236
  })[];
1109
1237
  ignoreDefaultRules: boolean;
1110
1238
  };
1239
+ callbacks: {
1240
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1241
+ };
1111
1242
  } | null;
1112
1243
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
1113
1244
  /**
@@ -1200,6 +1331,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1200
1331
  })[];
1201
1332
  ignoreDefaultRules: boolean;
1202
1333
  };
1334
+ callbacks: {
1335
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1336
+ };
1203
1337
  } | null;
1204
1338
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => number;
1205
1339
  /**
@@ -1292,6 +1426,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1292
1426
  })[];
1293
1427
  ignoreDefaultRules: boolean;
1294
1428
  };
1429
+ callbacks: {
1430
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1431
+ };
1295
1432
  } | null;
1296
1433
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => number;
1297
1434
  /**
@@ -1384,6 +1521,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1384
1521
  })[];
1385
1522
  ignoreDefaultRules: boolean;
1386
1523
  };
1524
+ callbacks: {
1525
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1526
+ };
1387
1527
  } | null;
1388
1528
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
1389
1529
  /**
@@ -1476,6 +1616,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1476
1616
  })[];
1477
1617
  ignoreDefaultRules: boolean;
1478
1618
  };
1619
+ callbacks: {
1620
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1621
+ };
1479
1622
  } | null;
1480
1623
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => boolean;
1481
1624
  /**
@@ -1568,6 +1711,9 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1568
1711
  })[];
1569
1712
  ignoreDefaultRules: boolean;
1570
1713
  };
1714
+ callbacks: {
1715
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1716
+ };
1571
1717
  } | null;
1572
1718
  } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => (feature: keyof FeaturesConfig) => boolean;
1573
1719
  }, {
@@ -48,7 +48,7 @@ const o = `.control-shadow-wrapper:has(.button) {
48
48
  }
49
49
 
50
50
  .e2e-text-insert-controls .control-shadow-wrapper:not(:last-of-type) {
51
- margin-right: 16px;
51
+ margin-right: 6px;
52
52
  }
53
53
 
54
54
  .flat-white > .button {
@@ -6,6 +6,10 @@ ue-main-editor-container[panel-position=SETTINGS_BLOCKS] ue-wide-panel {
6
6
  right: calc(100% - calc(var(--ue-spacing-step, 5px) * 3) - 425px);
7
7
  }
8
8
 
9
+ ue-main-tabs-panel-component .fixed-panel-header {
10
+ display: none;
11
+ }
12
+
9
13
  /* Remove with this writing task DT-28355 */
10
14
  ue-description a {
11
15
  display: none;
@@ -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
  */