@useinsider/guido 2.0.0-beta.e73ba15 → 2.0.0-beta.ecd6540

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 (232) hide show
  1. package/dist/@types/config/schemas.js +53 -39
  2. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +2 -2
  3. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +5 -5
  4. package/dist/components/organisms/header/LeftSlot.vue.js +12 -12
  5. package/dist/components/organisms/header/LeftSlot.vue2.js +6 -6
  6. package/dist/components/organisms/header/RightSlot.vue2.js +10 -10
  7. package/dist/composables/useConfig.js +29 -27
  8. package/dist/composables/useSave.js +13 -11
  9. package/dist/config/migrator/index.js +9 -8
  10. package/dist/config/migrator/itemsBlockMigrator.js +334 -0
  11. package/dist/config/migrator/recommendationMigrator.js +2 -2
  12. package/dist/extensions/Blocks/Items/block.js +36 -40
  13. package/dist/extensions/Blocks/Items/controls/button/link.js +22 -29
  14. package/dist/extensions/Blocks/Items/controls/cardComposition.js +70 -59
  15. package/dist/extensions/Blocks/Items/controls/image/link.js +23 -30
  16. package/dist/extensions/Blocks/Items/controls/name/trimming.js +25 -25
  17. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +19 -17
  18. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +31 -29
  19. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +36 -36
  20. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +21 -19
  21. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +29 -27
  22. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +93 -0
  23. package/dist/extensions/Blocks/Items/controls/settingsControl.js +152 -143
  24. package/dist/extensions/Blocks/Items/enums/controlEnums.js +2 -2
  25. package/dist/extensions/Blocks/Items/enums/productEnums.js +43 -45
  26. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +4 -5
  27. package/dist/extensions/Blocks/Items/extension.js +11 -9
  28. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +58 -49
  29. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +48 -59
  30. package/dist/extensions/Blocks/Items/settingsPanel.js +27 -26
  31. package/dist/extensions/Blocks/Items/store/items-block.js +11 -7
  32. package/dist/extensions/Blocks/Items/template.js +387 -140
  33. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +174 -0
  34. package/dist/extensions/Blocks/Recommendation/block.js +1 -1
  35. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +103 -0
  36. package/dist/extensions/Blocks/Recommendation/constants.js +5 -0
  37. package/dist/extensions/Blocks/Recommendation/control.js +306 -0
  38. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +13 -0
  39. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +13 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +13 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +13 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +13 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +13 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +13 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +13 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +13 -0
  47. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +13 -0
  48. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +13 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +13 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +13 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +13 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +13 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +13 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +13 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +13 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +13 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +13 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +13 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +13 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +13 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +13 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +13 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +13 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +13 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +13 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +13 -0
  67. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +13 -0
  68. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +13 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +13 -0
  70. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +13 -0
  71. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +13 -0
  72. package/dist/extensions/Blocks/Recommendation/extension.js +43 -40
  73. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +0 -5
  74. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +72 -128
  75. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +21 -22
  76. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +160 -0
  77. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +152 -0
  78. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +180 -0
  79. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  80. package/dist/extensions/Blocks/Unsubscribe/extension.js +9 -9
  81. package/dist/extensions/Blocks/common-control.js +29 -30
  82. package/dist/extensions/Blocks/controlFactories.js +106 -130
  83. package/dist/guido.css +1 -1
  84. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +125 -116
  85. package/dist/src/@types/config/index.d.ts +2 -2
  86. package/dist/src/@types/config/schemas.d.ts +26 -0
  87. package/dist/src/@types/config/types.d.ts +7 -1
  88. package/dist/src/composables/useConfig.d.ts +6 -0
  89. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +6 -0
  90. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -2
  91. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +9 -0
  92. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -2
  93. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -1
  94. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +18 -0
  95. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -4
  96. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +1 -0
  97. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +24 -26
  98. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +1 -2
  99. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +2 -0
  100. package/dist/src/extensions/Blocks/Items/template.d.ts +22 -1
  101. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +71 -0
  102. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +28 -0
  103. package/dist/src/extensions/Blocks/Recommendation/{constants/controlIds.d.ts → constants.d.ts} +11 -19
  104. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +35 -0
  105. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  106. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  107. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  108. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  109. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  110. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  111. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  112. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  113. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  114. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  115. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  116. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +5 -0
  117. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +5 -0
  118. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  119. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  120. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  121. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  122. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  123. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  124. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  125. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +5 -0
  126. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +5 -0
  127. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +5 -0
  128. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +5 -0
  129. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +5 -0
  130. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +5 -0
  131. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +5 -0
  132. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +5 -0
  133. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +5 -0
  134. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +5 -0
  135. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +5 -0
  136. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +5 -0
  137. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +5 -0
  138. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +5 -0
  139. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +0 -9
  140. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +16 -16
  141. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +16 -0
  142. package/dist/src/extensions/Blocks/Recommendation/templates/{vertical/migration.d.ts → migrationTemplate.d.ts} +4 -11
  143. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +44 -0
  144. package/dist/src/extensions/Blocks/common-control.d.ts +9 -10
  145. package/dist/src/stores/config.d.ts +147 -1
  146. package/dist/static/styles/components/button.css.js +1 -1
  147. package/dist/static/styles/components/wide-panel.css.js +4 -0
  148. package/dist/static/styles/customEditorStyle.css.js +2 -38
  149. package/dist/stores/config.js +7 -0
  150. package/dist/utils/pairProductVariables.js +61 -58
  151. package/package.json +1 -1
  152. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  153. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  154. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -76
  155. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -46
  156. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +0 -4
  157. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +0 -4
  158. package/dist/extensions/Blocks/Recommendation/constants/layout.js +0 -7
  159. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +0 -11
  160. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +0 -64
  161. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +0 -100
  162. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +0 -243
  163. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +0 -19
  164. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +0 -104
  165. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +0 -86
  166. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +0 -134
  167. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +0 -54
  168. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +0 -106
  169. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +0 -64
  170. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +0 -124
  171. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +0 -60
  172. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +0 -112
  173. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +0 -46
  174. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +0 -76
  175. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +0 -44
  176. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +0 -48
  177. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +0 -73
  178. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +0 -73
  179. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +0 -48
  180. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +0 -73
  181. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +0 -73
  182. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +0 -44
  183. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +0 -224
  184. package/dist/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.js +0 -157
  185. package/dist/extensions/Blocks/Recommendation/templates/horizontal/template.js +0 -72
  186. package/dist/extensions/Blocks/Recommendation/templates/index.js +0 -12
  187. package/dist/extensions/Blocks/Recommendation/templates/utils.js +0 -173
  188. package/dist/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.js +0 -186
  189. package/dist/extensions/Blocks/Recommendation/templates/vertical/migration.js +0 -251
  190. package/dist/extensions/Blocks/Recommendation/templates/vertical/template.js +0 -62
  191. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +0 -25
  192. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  193. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  194. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -50
  195. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  196. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +0 -13
  197. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +0 -12
  198. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +0 -17
  199. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +0 -19
  200. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +0 -143
  201. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +0 -41
  202. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +0 -95
  203. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +0 -35
  204. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +0 -24
  205. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +0 -34
  206. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +0 -17
  207. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +0 -16
  208. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +0 -22
  209. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +0 -54
  210. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +0 -15
  211. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +0 -40
  212. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +0 -15
  213. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +0 -81
  214. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +0 -97
  215. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +0 -16
  216. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +0 -95
  217. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +0 -100
  218. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +0 -15
  219. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +0 -15
  220. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +0 -100
  221. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +0 -15
  222. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +0 -15
  223. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +0 -95
  224. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +0 -77
  225. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.d.ts +0 -8
  226. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/migration.d.ts +0 -25
  227. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/template.d.ts +0 -18
  228. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +0 -39
  229. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +0 -45
  230. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.d.ts +0 -7
  231. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/template.d.ts +0 -33
  232. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +0 -19
@@ -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;
@@ -18,8 +18,8 @@ interface StoreState {
18
18
  orientation: Orientation;
19
19
  productIds: string[];
20
20
  recommendedProducts: [];
21
- sendProductRequestFlag: boolean;
22
- shuffleProducts: boolean;
21
+ sendProductRequestFlag: false;
22
+ shuffleProducts: false;
23
23
  strategy: string;
24
24
  textTrimming: boolean;
25
25
  unresponsive: boolean;
@@ -65,8 +65,8 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
65
65
  orientation: Orientation;
66
66
  productIds: string[];
67
67
  recommendedProducts: [];
68
- sendProductRequestFlag: boolean;
69
- shuffleProducts: boolean;
68
+ sendProductRequestFlag: false;
69
+ shuffleProducts: false;
70
70
  strategy: string;
71
71
  textTrimming: boolean;
72
72
  unresponsive: boolean;
@@ -134,8 +134,8 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
134
134
  orientation: Orientation;
135
135
  productIds: string[];
136
136
  recommendedProducts: [];
137
- sendProductRequestFlag: boolean;
138
- shuffleProducts: boolean;
137
+ sendProductRequestFlag: false;
138
+ shuffleProducts: false;
139
139
  strategy: string;
140
140
  textTrimming: boolean;
141
141
  unresponsive: boolean;
@@ -203,8 +203,8 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
203
203
  orientation: Orientation;
204
204
  productIds: string[];
205
205
  recommendedProducts: [];
206
- sendProductRequestFlag: boolean;
207
- shuffleProducts: boolean;
206
+ sendProductRequestFlag: false;
207
+ shuffleProducts: false;
208
208
  strategy: string;
209
209
  textTrimming: boolean;
210
210
  unresponsive: boolean;
@@ -275,8 +275,8 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
275
275
  orientation: Orientation;
276
276
  productIds: string[];
277
277
  recommendedProducts: [];
278
- sendProductRequestFlag: boolean;
279
- shuffleProducts: boolean;
278
+ sendProductRequestFlag: false;
279
+ shuffleProducts: false;
280
280
  strategy: string;
281
281
  textTrimming: boolean;
282
282
  unresponsive: boolean;
@@ -347,8 +347,8 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
347
347
  orientation: Orientation;
348
348
  productIds: string[];
349
349
  recommendedProducts: [];
350
- sendProductRequestFlag: boolean;
351
- shuffleProducts: boolean;
350
+ sendProductRequestFlag: false;
351
+ shuffleProducts: false;
352
352
  strategy: string;
353
353
  textTrimming: boolean;
354
354
  unresponsive: boolean;
@@ -419,8 +419,8 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
419
419
  orientation: Orientation;
420
420
  productIds: string[];
421
421
  recommendedProducts: [];
422
- sendProductRequestFlag: boolean;
423
- shuffleProducts: boolean;
422
+ sendProductRequestFlag: false;
423
+ shuffleProducts: false;
424
424
  strategy: string;
425
425
  textTrimming: boolean;
426
426
  unresponsive: boolean;
@@ -492,8 +492,8 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
492
492
  orientation: Orientation;
493
493
  productIds: string[];
494
494
  recommendedProducts: [];
495
- sendProductRequestFlag: boolean;
496
- shuffleProducts: boolean;
495
+ sendProductRequestFlag: false;
496
+ shuffleProducts: false;
497
497
  strategy: string;
498
498
  textTrimming: boolean;
499
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,25 +56,24 @@ 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;
76
+ protected handleBlockInstanceChange(syncFunction: (node: ImmutableHtmlNode) => void, updateUI: () => void): boolean;
78
77
  _GuLabel({ text, name, position }: LabelProps): string;
79
78
  _GuToggle(name: string): string;
80
79
  _GuSelectItem({ text, value }: {
@@ -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
  */