@useinsider/guido 2.0.0-beta.143201d → 2.0.0-beta.1c331b8

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 (188) hide show
  1. package/README.md +2 -0
  2. package/dist/@types/config/schemas.js +3 -1
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +15 -17
  5. package/dist/composables/useStripo.js +40 -40
  6. package/dist/config/migrator/recommendationMigrator.js +2 -2
  7. package/dist/extensions/Blocks/CouponBlock/constants.js +4 -0
  8. package/dist/extensions/Blocks/CouponBlock/controls/index.js +29 -0
  9. package/dist/extensions/Blocks/CouponBlock/extension.js +5 -4
  10. package/dist/extensions/Blocks/CouponBlock/settingsPanel.js +20 -14
  11. package/dist/extensions/Blocks/CouponBlock/template.js +22 -11
  12. package/dist/extensions/Blocks/Items/controls/cardComposition.js +13 -4
  13. package/dist/extensions/Blocks/Recommendation/block.js +1 -1
  14. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  15. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  16. package/dist/extensions/Blocks/Recommendation/constants/layout.js +7 -0
  17. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +11 -0
  18. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  19. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  20. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +238 -0
  21. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  22. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +104 -0
  23. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +86 -0
  24. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +134 -0
  25. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +54 -0
  26. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +134 -0
  27. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +64 -0
  28. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +124 -0
  29. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +60 -0
  30. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +112 -0
  31. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  32. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +76 -0
  33. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  34. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  35. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +73 -0
  36. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +73 -0
  37. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  38. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +73 -0
  39. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +73 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +216 -0
  42. package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
  43. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +5 -0
  44. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
  45. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +28 -25
  46. package/dist/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.js +157 -0
  47. package/dist/extensions/Blocks/Recommendation/templates/horizontal/template.js +72 -0
  48. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  49. package/dist/extensions/Blocks/Recommendation/templates/utils.js +173 -0
  50. package/dist/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.js +186 -0
  51. package/dist/extensions/Blocks/Recommendation/templates/vertical/migration.js +251 -0
  52. package/dist/extensions/Blocks/Recommendation/templates/vertical/template.js +62 -0
  53. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  54. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +36 -0
  55. package/dist/extensions/Blocks/controlFactories.js +162 -117
  56. package/dist/guido.css +1 -1
  57. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +366 -291
  58. package/dist/package.json.js +1 -1
  59. package/dist/services/stripoApi.js +6 -10
  60. package/dist/src/@types/config/schemas.d.ts +4 -0
  61. package/dist/src/composables/useConfig.d.ts +2 -0
  62. package/dist/src/extensions/Blocks/CouponBlock/constants.d.ts +14 -0
  63. package/dist/src/extensions/Blocks/CouponBlock/controls/index.d.ts +108 -0
  64. package/dist/src/extensions/Blocks/CouponBlock/template.d.ts +1 -1
  65. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  66. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
  67. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +12 -0
  68. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +17 -0
  69. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +19 -0
  70. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  71. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  72. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +95 -0
  73. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  74. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +24 -0
  75. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +34 -0
  76. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +17 -0
  77. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +16 -0
  78. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  79. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +43 -0
  80. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +15 -0
  81. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +40 -0
  82. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +15 -0
  83. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +81 -0
  84. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  85. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +16 -0
  86. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  87. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  88. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  89. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  90. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  91. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  92. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  93. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  94. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +72 -0
  95. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  96. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +16 -16
  97. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.d.ts +8 -0
  98. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/migration.d.ts +25 -0
  99. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/template.d.ts +18 -0
  100. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +39 -0
  101. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +45 -0
  102. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.d.ts +7 -0
  103. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → vertical/migration.d.ts} +11 -4
  104. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/template.d.ts +33 -0
  105. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  106. package/dist/src/extensions/Blocks/controlFactories.d.ts +30 -7
  107. package/dist/src/stores/config.d.ts +17 -0
  108. package/dist/static/styles/components/wide-panel.css.js +0 -4
  109. package/dist/static/styles/customEditorStyle.css.js +38 -2
  110. package/package.json +3 -3
  111. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  112. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  113. package/dist/extensions/Blocks/Recommendation/control.js +0 -306
  114. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  115. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  116. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  117. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  118. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  119. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  120. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  121. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  122. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  123. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  124. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  125. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  126. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  127. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  128. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  129. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  130. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  131. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  132. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  133. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  134. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  135. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  136. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  137. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  138. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  139. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  140. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  141. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  142. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  143. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  144. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  145. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  146. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  147. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  148. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  149. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  150. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  151. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  152. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
  153. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  154. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  155. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  156. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  157. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  158. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  159. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  160. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  161. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  162. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  163. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  164. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  165. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  166. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  167. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  168. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  169. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  170. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  171. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  172. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  173. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  174. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  175. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  176. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  177. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  178. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  179. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  180. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  181. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  182. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  183. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  184. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  185. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  186. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  187. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  188. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
@@ -0,0 +1,33 @@
1
+ import type { RecommendationProduct } from '@@/Types/recommendation';
2
+ import { type ElementRenderer } from '../utils';
3
+ /**
4
+ * Generates attribute-aligned product rows for vertical layout.
5
+ * Creates rows where each row contains one attribute type from all products.
6
+ * @param products - Array of products in this row group
7
+ * @param productsPerRow - Number of products per row (for column width calculation)
8
+ * @param elementRenderer - Object mapping attribute types to render functions
9
+ * @param composition - Array defining order of card elements
10
+ * @returns HTML string for attribute-aligned rows
11
+ */
12
+ export declare function prepareVerticalAttributeRows(products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, composition?: string[]): string;
13
+ /**
14
+ * Prepares vertical product rows with attribute-aligned structure
15
+ * Groups products into rows, then generates attribute-aligned HTML for each group
16
+ * @param products - Array of products to display
17
+ * @param productsPerRow - Number of products per row
18
+ * @param elementRenderer - Object mapping attribute types to render functions
19
+ * @param composition - Array defining order of card elements
20
+ * @returns HTML string for all product rows
21
+ */
22
+ export declare function prepareVerticalProductRows(products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, composition?: string[]): string;
23
+ /**
24
+ * Prepares vertical product rows with attribute-aligned structure.
25
+ * Uses row-based rendering where each attribute type forms a single row across all products.
26
+ * @param products - Array of products to display
27
+ * @param productsPerRow - Number of products per row
28
+ * @param composition - Array defining element order
29
+ * @returns HTML string for product rows
30
+ */
31
+ export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, composition?: string[]): string;
32
+ export declare function getDefaultTemplate(): string;
33
+ export declare function generateBlockTemplate(products: RecommendationProduct[], productsPerRow: number, title?: string, composition?: string[]): string;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Utility for preserving text styling when updating innerHTML
3
+ */
4
+ import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
5
+ /**
6
+ * Preserves existing style tags when updating text content
7
+ *
8
+ * When users apply text styles (bold, italic, etc.) in Stripo, the editor wraps
9
+ * content in tags like <strong>, <em>, <u>, <s>. This function extracts those
10
+ * style tags from the original HTML and re-applies them to the new text content.
11
+ * @example
12
+ * // Original: <span class="omnibus-text-before"><strong>Lowest price: </strong></span>
13
+ * // After calling preserveTextStyles(element, 'Best price: ')
14
+ * // Result: <strong>Best price: </strong>
15
+ * @param element - The DOM element or ImmutableHtmlNode containing the styled text
16
+ * @param newText - The new text content to insert
17
+ * @returns The new text wrapped in the original style tags
18
+ */
19
+ export declare function preserveTextStyles(element: ImmutableHtmlNode | Element, newText: string): string;
@@ -12,8 +12,9 @@
12
12
  import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
13
13
  /**
14
14
  * Factory function to create text align controls for different block elements
15
+ * When targetBlockId and containerSelector are not provided, applies directly to root
15
16
  */
16
- export declare function createTextAlignControl(controlId: string, targetBlockId: string, containerSelector: string): {
17
+ export declare function createTextAlignControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
17
18
  new (): {
18
19
  getId(): string;
19
20
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
@@ -27,8 +28,9 @@ export declare function createTextAlignControl(controlId: string, targetBlockId:
27
28
  };
28
29
  /**
29
30
  * Factory function to create text color controls for different block elements
31
+ * When targetBlockId and containerSelector are not provided, applies directly to root
30
32
  */
31
- export declare function createTextColorControl(controlId: string, targetBlockId: string, containerSelector?: string): {
33
+ export declare function createTextColorControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
32
34
  new (): {
33
35
  getId(): string;
34
36
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
@@ -42,8 +44,9 @@ export declare function createTextColorControl(controlId: string, targetBlockId:
42
44
  };
43
45
  /**
44
46
  * Factory function to create text size controls for different block elements
47
+ * When targetBlockId and containerSelector are not provided, applies directly to root
45
48
  */
46
- export declare function createTextSizeControl(controlId: string, targetBlockId: string, containerSelector?: string): {
49
+ export declare function createTextSizeControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
47
50
  new (): {
48
51
  getId(): string;
49
52
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
@@ -57,8 +60,9 @@ export declare function createTextSizeControl(controlId: string, targetBlockId:
57
60
  };
58
61
  /**
59
62
  * Factory function to create text style controls for different block elements
63
+ * When targetBlockId and containerSelector are not provided, applies directly to root
60
64
  */
61
- export declare function createTextStyleControl(controlId: string, targetBlockId: string, containerSelector?: string): {
65
+ export declare function createTextStyleControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
62
66
  new (): {
63
67
  getId(): string;
64
68
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
@@ -72,8 +76,9 @@ export declare function createTextStyleControl(controlId: string, targetBlockId:
72
76
  };
73
77
  /**
74
78
  * Factory function to create text font family controls for different block elements
79
+ * When targetBlockId and containerSelector are not provided, applies directly to root
75
80
  */
76
- export declare function createTextFontFamilyControl(controlId: string, targetBlockId: string, containerSelector?: string): {
81
+ export declare function createTextFontFamilyControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
77
82
  new (): {
78
83
  getId(): string;
79
84
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
@@ -87,8 +92,9 @@ export declare function createTextFontFamilyControl(controlId: string, targetBlo
87
92
  };
88
93
  /**
89
94
  * Factory function to create text background color controls for different block elements
95
+ * When targetBlockId and containerSelector are not provided, applies directly to root
90
96
  */
91
- export declare function createTextBackgroundColorControl(controlId: string, targetBlockId: string, containerSelector?: string): {
97
+ export declare function createTextBackgroundColorControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
92
98
  new (): {
93
99
  getId(): string;
94
100
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
@@ -102,8 +108,25 @@ export declare function createTextBackgroundColorControl(controlId: string, targ
102
108
  };
103
109
  /**
104
110
  * Factory function to create paddings controls for different block elements
111
+ * When targetBlockId and containerSelector are not provided, applies directly to root
105
112
  */
106
- export declare function createPaddingsControl(controlId: string, targetBlockId: string, containerSelector?: string): {
113
+ export declare function createPaddingsControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
114
+ new (): {
115
+ getId(): string;
116
+ getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
117
+ getParentControlId(): string;
118
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
119
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
120
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
121
+ getAdditionalModifications(_root: ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
122
+ isVisible(_node: ImmutableHtmlNode): boolean;
123
+ };
124
+ };
125
+ /**
126
+ * Factory function to create text line spacing controls for different block elements
127
+ * When targetBlockId and containerSelector are not provided, applies directly to root
128
+ */
129
+ export declare function createTextLineSpacingControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
107
130
  new (): {
108
131
  getId(): string;
109
132
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
@@ -36,6 +36,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
36
36
  } | undefined;
37
37
  }[];
38
38
  selectedUnsubscribePages: number[];
39
+ forceRecreate: boolean;
39
40
  };
40
41
  editor: {
41
42
  locale: string;
@@ -127,6 +128,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
127
128
  } | undefined;
128
129
  }[];
129
130
  selectedUnsubscribePages: number[];
131
+ forceRecreate: boolean;
130
132
  };
131
133
  editor: {
132
134
  locale: string;
@@ -218,6 +220,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
218
220
  } | undefined;
219
221
  }[];
220
222
  selectedUnsubscribePages: number[];
223
+ forceRecreate: boolean;
221
224
  };
222
225
  editor: {
223
226
  locale: string;
@@ -309,6 +312,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
309
312
  } | undefined;
310
313
  }[];
311
314
  selectedUnsubscribePages: number[];
315
+ forceRecreate: boolean;
312
316
  };
313
317
  editor: {
314
318
  locale: string;
@@ -400,6 +404,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
400
404
  } | undefined;
401
405
  }[];
402
406
  selectedUnsubscribePages: number[];
407
+ forceRecreate: boolean;
403
408
  };
404
409
  editor: {
405
410
  locale: string;
@@ -491,6 +496,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
491
496
  } | undefined;
492
497
  }[];
493
498
  selectedUnsubscribePages: number[];
499
+ forceRecreate: boolean;
494
500
  };
495
501
  editor: {
496
502
  locale: string;
@@ -582,6 +588,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
582
588
  } | undefined;
583
589
  }[];
584
590
  selectedUnsubscribePages: number[];
591
+ forceRecreate: boolean;
585
592
  };
586
593
  editor: {
587
594
  locale: string;
@@ -673,6 +680,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
673
680
  } | undefined;
674
681
  }[];
675
682
  selectedUnsubscribePages: number[];
683
+ forceRecreate: boolean;
676
684
  };
677
685
  editor: {
678
686
  locale: string;
@@ -764,6 +772,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
764
772
  } | undefined;
765
773
  }[];
766
774
  selectedUnsubscribePages: number[];
775
+ forceRecreate: boolean;
767
776
  };
768
777
  editor: {
769
778
  locale: string;
@@ -855,6 +864,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
855
864
  } | undefined;
856
865
  }[];
857
866
  selectedUnsubscribePages: number[];
867
+ forceRecreate: boolean;
858
868
  };
859
869
  editor: {
860
870
  locale: string;
@@ -946,6 +956,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
946
956
  } | undefined;
947
957
  }[];
948
958
  selectedUnsubscribePages: number[];
959
+ forceRecreate: boolean;
949
960
  };
950
961
  editor: {
951
962
  locale: string;
@@ -1037,6 +1048,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1037
1048
  } | undefined;
1038
1049
  }[];
1039
1050
  selectedUnsubscribePages: number[];
1051
+ forceRecreate: boolean;
1040
1052
  };
1041
1053
  editor: {
1042
1054
  locale: string;
@@ -1128,6 +1140,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1128
1140
  } | undefined;
1129
1141
  }[];
1130
1142
  selectedUnsubscribePages: number[];
1143
+ forceRecreate: boolean;
1131
1144
  };
1132
1145
  editor: {
1133
1146
  locale: string;
@@ -1219,6 +1232,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1219
1232
  } | undefined;
1220
1233
  }[];
1221
1234
  selectedUnsubscribePages: number[];
1235
+ forceRecreate: boolean;
1222
1236
  };
1223
1237
  editor: {
1224
1238
  locale: string;
@@ -1310,6 +1324,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1310
1324
  } | undefined;
1311
1325
  }[];
1312
1326
  selectedUnsubscribePages: number[];
1327
+ forceRecreate: boolean;
1313
1328
  };
1314
1329
  editor: {
1315
1330
  locale: string;
@@ -1401,6 +1416,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1401
1416
  } | undefined;
1402
1417
  }[];
1403
1418
  selectedUnsubscribePages: number[];
1419
+ forceRecreate: boolean;
1404
1420
  };
1405
1421
  editor: {
1406
1422
  locale: string;
@@ -1492,6 +1508,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1492
1508
  } | undefined;
1493
1509
  }[];
1494
1510
  selectedUnsubscribePages: number[];
1511
+ forceRecreate: boolean;
1495
1512
  };
1496
1513
  editor: {
1497
1514
  locale: string;
@@ -6,10 +6,6 @@ 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
-
13
9
  /* Remove with this writing task DT-28355 */
14
10
  ue-description a {
15
11
  display: none;
@@ -19,10 +19,46 @@ const n = `.esd-x,
19
19
  box-shadow: none;
20
20
  }
21
21
  .ins-product-cart ue-node-actions,
22
- .ins-recommendation-v3-block-v2 .product-attribute-cell ue-node-actions,
23
- .ins-recommendation-v3-block-v2 .product-attribute-cell ue-node-panel {
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 {
24
47
  display: none !important;
25
48
  }
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
+ }
26
62
  `;
27
63
  export {
28
64
  n as default
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "2.0.0-beta.143201d",
3
+ "version": "2.0.0-beta.1c331b8",
4
4
  "description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
5
5
  "main": "./dist/guido.umd.cjs",
6
6
  "module": "./dist/library.js",
@@ -31,7 +31,7 @@
31
31
  "author": "",
32
32
  "license": "ISC",
33
33
  "dependencies": {
34
- "@stripoinc/ui-editor-extensions": "3.3.0",
34
+ "@stripoinc/ui-editor-extensions": "3.5.0",
35
35
  "@useinsider/design-system-vue": "0.14.20",
36
36
  "@vueuse/core": "11.3.0",
37
37
  "lodash-es": "4.17.21",
@@ -85,7 +85,7 @@
85
85
  },
86
86
  "guido": {
87
87
  "stripo": {
88
- "version": "2.47.0"
88
+ "version": "2.52.0"
89
89
  }
90
90
  }
91
91
  }
@@ -1,103 +0,0 @@
1
- var m = Object.defineProperty;
2
- var y = (n, o, i) => o in n ? m(n, o, { enumerable: !0, configurable: !0, writable: !0, value: i }) : n[o] = i;
3
- var a = (n, o, i) => y(n, typeof o != "symbol" ? o + "" : o, i);
4
- import { ModificationDescription as u } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as b } from "../common-control.js";
6
- const h = "ui-elements-recommendation-card-composition", s = [
7
- { key: "productImage", label: "Product Image", visible: !0 },
8
- { key: "productName", label: "Product Name", visible: !0 },
9
- { key: "productPrice", label: "Product Price", visible: !0 },
10
- { key: "productOriginalPrice", label: "Product Original Price", visible: !0 },
11
- { key: "productButton", label: "Product Button", visible: !0 }
12
- ];
13
- class g extends b {
14
- constructor() {
15
- super(...arguments);
16
- a(this, "currentComposition", []);
17
- a(this, "currentVisibility", {});
18
- }
19
- getId() {
20
- return h;
21
- }
22
- getTemplate() {
23
- const i = s.map((e) => ({
24
- key: e.key,
25
- label: e.label,
26
- content: `
27
- <div style="display: flex; align-items: center; justify-content: space-between;
28
- padding: 8px; gap: 8px;">
29
- <span style="flex: 1;">${e.label}</span>
30
- ${this._GuToggle(`visibility_${e.key}`)}
31
- </div>
32
- `
33
- }));
34
- return `
35
- <div class="container">
36
- ${this._GuLabel({ text: "Card Element Order & Visibility" })}
37
- ${this._GuOrderable("cardComposition", i)}
38
- </div>
39
- `;
40
- }
41
- onRender() {
42
- this._initializeComposition(), this.api.onValueChanged("cardComposition", (i) => {
43
- this.currentComposition = i, this._applyCompositionToBlock(i);
44
- }), s.forEach((i) => {
45
- this.api.onValueChanged(`visibility_${i.key}`, (e) => {
46
- this.currentVisibility[i.key] = e, this._applyVisibilityToBlock();
47
- });
48
- });
49
- }
50
- onTemplateNodeUpdated(i) {
51
- super.onTemplateNodeUpdated(i), this._initializeComposition();
52
- }
53
- /**
54
- * Initialize the composition order and visibility from the block or use defaults
55
- */
56
- _initializeComposition() {
57
- var p;
58
- const i = (p = this.currentNode) == null ? void 0 : p.querySelector(".ins-recommendation-v3-block-v2");
59
- let e = null, l = null;
60
- if (i && "getAttribute" in i && (e = i.getAttribute("data-card-composition"), l = i.getAttribute("data-card-visibility")), e) {
61
- const t = e.split(",").filter(Boolean), r = s.map((c) => c.key);
62
- t.every((c) => r.includes(c)) && t.length > 0 ? this.currentComposition = t : this.currentComposition = r;
63
- } else
64
- this.currentComposition = s.map((t) => t.key);
65
- if (l)
66
- try {
67
- const t = JSON.parse(l);
68
- this.currentVisibility = t;
69
- } catch {
70
- this.currentVisibility = s.reduce((t, r) => (t[r.key] = r.visible, t), {});
71
- }
72
- else
73
- this.currentVisibility = s.reduce((t, r) => (t[r.key] = r.visible, t), {});
74
- const d = {
75
- cardComposition: this.currentComposition
76
- };
77
- s.forEach((t) => {
78
- d[`visibility_${t.key}`] = this.currentVisibility[t.key] ?? !0;
79
- }), this.api.updateValues(d);
80
- }
81
- /**
82
- * Apply the reordered composition to the block's HTML structure
83
- */
84
- _applyCompositionToBlock(i) {
85
- if (!this.currentNode)
86
- return;
87
- const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
88
- e && this.api.getDocumentModifier().modifyHtml(e).setAttribute("data-card-composition", i.join(",")).apply(new u("Stored card composition order"));
89
- }
90
- /**
91
- * Apply visibility changes to the block's HTML structure
92
- */
93
- _applyVisibilityToBlock() {
94
- if (!this.currentNode)
95
- return;
96
- const i = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
97
- i && this.api.getDocumentModifier().modifyHtml(i).setAttribute("data-card-visibility", JSON.stringify(this.currentVisibility)).apply(new u("Stored card visibility settings"));
98
- }
99
- }
100
- export {
101
- h as COMPOSITION_CONTROL_BLOCK_ID,
102
- g as RecommendationCardCompositionControl
103
- };
@@ -1,5 +0,0 @@
1
- var o = /* @__PURE__ */ ((c) => (c.BUTTON = "recommendation-block-button", c.NAME = "recommendation-block-name", c.PRICE = "recommendation-block-price", c.OLD_PRICE = "recommendation-block-old-price", c.IMAGE = "recommendation-block-image", c))(o || {}), r = /* @__PURE__ */ ((c) => (c.BUTTON_ALIGN = "recommendation-block-button-align-control", c.BUTTON_BORDER = "recommendation-block-button-border-control", c.BUTTON_BORDER_RADIUS = "recommendation-block-button-border-radius-control", c.BUTTON_COLOR = "recommendation-block-button-color-control", c.BUTTON_FIT_TO_CONTENT = "recommendation-block-button-fit-to-content-control", c.BUTTON_FONT_FAMILY = "recommendation-block-button-font-family-control", c.BUTTON_MARGINS = "recommendation-block-button-margins-control", c.BUTTON_PADDINGS = "recommendation-block-button-paddings-control", c.BUTTON_TEXT = "recommendation-block-button-text-control", c.BUTTON_TEXT_SIZE = "recommendation-block-button-text-size-control", c.BUTTON_TEXT_STYLE_AND_FONT_COLOR = "recommendation-block-button-text-style-and-font-color-control", c.NAME_ALIGN = "recommendation-block-name-align-control", c.NAME_BACKGROUND = "recommendation-block-name-background-control", c.NAME_COLOR = "recommendation-block-name-color-control", c.NAME_FONT_FAMILY = "recommendation-block-name-font-family-control", c.NAME_PADDINGS = "recommendation-block-name-paddings-control", c.NAME_SIZE = "recommendation-block-name-size-control", c.NAME_STYLE = "recommendation-block-name-style-control", c.PRICE_ALIGN = "recommendation-block-price-align-control", c.PRICE_BACKGROUND = "recommendation-block-price-background-control", c.PRICE_COLOR = "recommendation-block-price-color-control", c.PRICE_FONT_FAMILY = "recommendation-block-price-font-family-control", c.PRICE_PADDINGS = "recommendation-block-price-paddings-control", c.PRICE_SIZE = "recommendation-block-price-size-control", c.PRICE_STYLE = "recommendation-block-price-style-control", c.OLD_PRICE_ALIGN = "recommendation-block-old-price-align-control", c.OLD_PRICE_BACKGROUND = "recommendation-block-old-price-background-control", c.OLD_PRICE_COLOR = "recommendation-block-old-price-color-control", c.OLD_PRICE_FONT_FAMILY = "recommendation-block-old-price-font-family-control", c.OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control", c.OLD_PRICE_SIZE = "recommendation-block-old-price-size-control", c.OLD_PRICE_STYLE = "recommendation-block-old-price-style-control", c.IMAGE_SIZE = "recommendation-block-image-size-control", c.IMAGE_MARGINS = "recommendation-block-image-margins-control", c))(r || {});
2
- export {
3
- o as RecommendationBlockId,
4
- r as RecommendationControlId
5
- };