@useinsider/guido 2.0.0-beta.536ec84 → 2.0.0-beta.54d276a

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 (181) 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/components/organisms/email-preview/amp/AmpErrorModal.vue.js +7 -7
  6. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +8 -7
  7. package/dist/components/organisms/email-preview/amp/AmpToggle.vue2.js +3 -4
  8. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +14 -10
  9. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +22 -18
  10. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.js +17 -0
  11. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +20 -0
  12. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +3 -3
  13. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.js +10 -10
  14. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue2.js +14 -15
  15. package/dist/components/organisms/header/LeftSlot.vue.js +2 -2
  16. package/dist/components/organisms/header/MiddleSlot.vue.js +1 -1
  17. package/dist/components/organisms/header/MiddleSlot.vue2.js +13 -14
  18. package/dist/components/organisms/header/RightSlot.vue.js +7 -7
  19. package/dist/composables/useStripo.js +40 -40
  20. package/dist/config/migrator/recommendationMigrator.js +2 -2
  21. package/dist/extensions/Blocks/Items/controls/cardComposition.js +13 -4
  22. package/dist/extensions/Blocks/Recommendation/block.js +1 -1
  23. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  24. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  25. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +11 -0
  26. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  27. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +100 -0
  28. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +243 -0
  29. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  30. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +154 -0
  31. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +372 -0
  32. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  33. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +76 -0
  34. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  35. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  36. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +73 -0
  37. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +73 -0
  38. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  39. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +73 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +73 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +224 -0
  43. package/dist/extensions/Blocks/Recommendation/extension.js +39 -43
  44. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +5 -0
  45. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +127 -72
  46. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +20 -20
  47. package/dist/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.js +157 -0
  48. package/dist/extensions/Blocks/Recommendation/templates/horizontal/template.js +72 -0
  49. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  50. package/dist/extensions/Blocks/Recommendation/templates/utils.js +173 -0
  51. package/dist/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.js +186 -0
  52. package/dist/extensions/Blocks/Recommendation/templates/vertical/migration.js +251 -0
  53. package/dist/extensions/Blocks/Recommendation/templates/vertical/template.js +61 -0
  54. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +25 -0
  55. package/dist/extensions/Blocks/controlFactories.js +155 -121
  56. package/dist/guido.css +1 -1
  57. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +361 -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/Recommendation/constants/blockIds.d.ts +13 -0
  63. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
  64. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +11 -0
  65. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +19 -0
  66. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  67. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +41 -0
  68. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +95 -0
  69. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  70. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +23 -0
  71. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +50 -0
  72. package/dist/src/extensions/Blocks/Recommendation/{control.d.ts → controls/main/index.d.ts} +19 -3
  73. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  74. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +16 -0
  75. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  76. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  77. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  78. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  79. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  80. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  81. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  82. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  83. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +77 -0
  84. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  85. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.d.ts +8 -0
  86. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/migration.d.ts +25 -0
  87. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/template.d.ts +18 -0
  88. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +39 -0
  89. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +45 -0
  90. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.d.ts +7 -0
  91. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → vertical/migration.d.ts} +11 -4
  92. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/template.d.ts +33 -0
  93. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  94. package/dist/src/stores/config.d.ts +17 -0
  95. package/dist/static/assets/inbox-mockup.svg.js +4 -0
  96. package/dist/static/assets/phone-mockup.svg.js +4 -0
  97. package/dist/static/styles/components/wide-panel.css.js +0 -4
  98. package/dist/static/styles/customEditorStyle.css.js +38 -2
  99. package/package.json +3 -3
  100. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  101. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  102. package/dist/extensions/Blocks/Recommendation/control.js +0 -306
  103. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  104. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  105. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  106. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  107. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  108. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  109. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  110. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  111. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  112. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  113. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  114. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  115. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  116. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  117. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  118. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  119. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  120. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  121. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  122. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  123. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  124. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  125. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  126. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  127. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  128. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  129. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  130. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  131. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  132. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  133. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  134. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  135. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  136. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  137. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  138. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  139. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  140. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  141. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  142. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  143. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  144. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  145. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  146. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  147. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  148. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  149. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  150. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  151. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  152. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  153. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  154. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  155. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  156. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  157. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  158. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  159. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  160. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  161. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  162. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  163. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  164. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  165. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  166. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  167. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  168. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  169. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  170. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  171. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  172. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  173. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  174. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  175. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  176. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
  177. package/dist/static/assets/desktop/desktop-mockup-center.svg.js +0 -4
  178. package/dist/static/assets/desktop/desktop-mockup-left.svg.js +0 -4
  179. package/dist/static/assets/desktop/desktop-mockup-right.svg.js +0 -4
  180. package/dist/static/assets/mobile/email-mockup.svg.js +0 -4
  181. package/dist/static/assets/mobile/inbox-mockup.svg.js +0 -4
@@ -0,0 +1,77 @@
1
+ import type { Orientation } from '@@/Types/recommendation';
2
+ import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
3
+ import { CommonControl } from '../../../common-control';
4
+ export declare const SPACING_CONTROL_ID = "recommendation-spacing-control";
5
+ /**
6
+ * Control for managing spacing between product cards
7
+ * - Column spacing: horizontal gap between cards in the same row
8
+ * - Row spacing: vertical gap between different rows
9
+ */
10
+ export declare class SpacingControl extends CommonControl {
11
+ private store;
12
+ private unsubscribeOrientation;
13
+ getId(): string;
14
+ getTemplate(): string;
15
+ onRender(): void;
16
+ onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
17
+ /**
18
+ * Gets the current layout orientation from the block's data attribute
19
+ */
20
+ _getCurrentLayout(): Orientation;
21
+ /**
22
+ * Updates column spacing visibility based on layout orientation
23
+ * Column spacing is hidden for horizontal layout (products are stacked vertically)
24
+ * Reads from store first for reliability, falls back to DOM
25
+ */
26
+ _updateColumnSpacingVisibility(): void;
27
+ /**
28
+ * Reads spacing values from data attributes or returns defaults
29
+ */
30
+ _setFormValues(): void;
31
+ /**
32
+ * Gets stored column spacing from the first attribute row cell's padding.
33
+ * For vertical layout: cells inside .recommendation-attribute-row have padding applied.
34
+ * For horizontal layout: the parent of .product-card-wrapper has the padding.
35
+ * The padding is applied as "0 {halfSpacing}px", so we extract and multiply by 2.
36
+ */
37
+ _getStoredColumnSpacing(): number;
38
+ /**
39
+ * Gets stored row spacing from the first spacer element's height style
40
+ */
41
+ _getStoredRowSpacing(): number;
42
+ /**
43
+ * Handles column spacing changes.
44
+ * For vertical layout: applies horizontal padding to all cells inside attribute rows.
45
+ * For horizontal layout: applies padding to parent of product card wrappers.
46
+ */
47
+ _onColumnSpacingChange(spacing: number): void;
48
+ /**
49
+ * Handles row spacing changes
50
+ * Applies height to all spacer elements between product rows
51
+ */
52
+ _onRowSpacingChange(spacing: number): void;
53
+ /**
54
+ * Stores column spacing value in block data attribute
55
+ */
56
+ _storeColumnSpacing(spacing: number): void;
57
+ /**
58
+ * Stores row spacing value in block data attribute
59
+ */
60
+ _storeRowSpacing(spacing: number): void;
61
+ _listenToFormUpdates(): void;
62
+ /**
63
+ * Debounced version of _onColumnSpacingChange
64
+ * Prevents excessive DOM updates when user rapidly adjusts the counter
65
+ */
66
+ _debouncedOnColumnSpacingChange: import("@vueuse/shared").PromisifyFn<(spacing: number) => void>;
67
+ /**
68
+ * Debounced version of _onRowSpacingChange
69
+ * Prevents excessive DOM updates when user rapidly adjusts the counter
70
+ */
71
+ _debouncedOnRowSpacingChange: import("@vueuse/shared").PromisifyFn<(spacing: number) => void>;
72
+ /**
73
+ * Subscribe to store orientation changes
74
+ * Updates column spacing visibility when layout changes via the layout control
75
+ */
76
+ _subscribeToOrientationChanges(): void;
77
+ }
@@ -1,2 +1,11 @@
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
+ */
1
10
  declare const _default: import("@stripoinc/ui-editor-extensions").Extension;
2
11
  export default _default;
@@ -0,0 +1,8 @@
1
+ import type { ElementRenderer } from '../utils';
2
+ /**
3
+ * Horizontal element renderer
4
+ * - Image and Button return `<td>` cells for the 3-column layout
5
+ * - Name and Prices return `<tr><td>` rows for the info cell table
6
+ * All elements have esd-block-* classes for Stripo selection
7
+ */
8
+ export declare const horizontalElementRenderer: ElementRenderer;
@@ -0,0 +1,25 @@
1
+ import type { RecommendationProduct } from '@@/Types/recommendation';
2
+ import { DEFAULTS, getDefaultProducts } from '../utils';
3
+ /**
4
+ * Migration template for horizontal layout
5
+ * Used when migrating old recommendation blocks to horizontal format
6
+ */
7
+ 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 data-layout=\"horizontal\"\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";
8
+ export declare function getMigrationTemplate(): string;
9
+ /**
10
+ * Generates a custom horizontal migration template with specified products
11
+ * @param products - Array of products to display
12
+ * @param title - Optional title for the block
13
+ * @param composition - Optional array defining order of card elements
14
+ * @returns Complete HTML template
15
+ */
16
+ export declare function generateMigrationTemplate(products: RecommendationProduct[], title?: string, composition?: string[]): string;
17
+ /**
18
+ * Prepares horizontal product rows for migration
19
+ * @param products - Array of products to display
20
+ * @param composition - Optional array defining order of card elements
21
+ * @returns HTML string for product rows
22
+ */
23
+ export declare function prepareProductRows(products: RecommendationProduct[], composition?: string[]): string;
24
+ export { DEFAULTS, getDefaultProducts };
25
+ export default migrationTemplate;
@@ -0,0 +1,18 @@
1
+ import type { RecommendationProduct } from '@@/Types/recommendation';
2
+ /**
3
+ * Generates a horizontal product card with 3-column layout
4
+ * Uses horizontalElementRenderer to render Image, Info content, and Button
5
+ * Layout: [Image (120px)] [Info table (flexible)] [Button (100px)]
6
+ * @param product - The product data
7
+ * @returns HTML string for a single product card row
8
+ */
9
+ export declare function getHorizontalProductCard(product: RecommendationProduct): string;
10
+ /**
11
+ * Prepares horizontal product rows
12
+ * Each product is a full-width row with 3-column layout
13
+ * @param products - Array of products to display
14
+ * @returns HTML string for product rows
15
+ */
16
+ export declare function prepareProductRows(products: RecommendationProduct[]): string;
17
+ export declare function getDefaultTemplate(): string;
18
+ export declare function generateBlockTemplate(products: RecommendationProduct[], title?: string): string;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Unified Template API for Recommendation Block
3
+ *
4
+ * This module provides a single entry point for working with recommendation
5
+ * block templates, abstracting away the layout-specific implementations.
6
+ */
7
+ import type { RecommendationProduct } from '@@/Types/recommendation';
8
+ import { type Orientation, type PrepareProductRowsOptions } from './utils';
9
+ export { DEFAULTS, DEFAULT_CARD_COMPOSITION, DEFAULT_CARD_VISIBILITY, getDefaultProducts, spacer, createBlockTemplate, type Orientation, type PrepareProductRowsOptions, type ElementRenderer, type ProductCardGetter, } from './utils';
10
+ /**
11
+ * Unified function to prepare product rows for any layout.
12
+ * Delegates to the appropriate layout-specific implementation.
13
+ * @example
14
+ * // Horizontal layout (full-width rows)
15
+ * prepareProductRows(products, 'horizontal');
16
+ * @example
17
+ * // Vertical layout (grid)
18
+ * prepareProductRows(products, 'vertical', { productsPerRow: 3 });
19
+ * @param products - Array of products to display
20
+ * @param layout - The layout orientation ('horizontal' or 'vertical')
21
+ * @param options - Layout-specific options
22
+ * @returns HTML string for product rows
23
+ */
24
+ export declare function prepareProductRows(products: RecommendationProduct[], layout: Orientation, options?: PrepareProductRowsOptions): string;
25
+ /**
26
+ * Generates the default template for a given layout.
27
+ * @param layout - The layout orientation ('horizontal' or 'vertical')
28
+ * @returns Complete HTML template with default products
29
+ */
30
+ export declare function getDefaultTemplate(layout?: Orientation): string;
31
+ /**
32
+ * Generates a complete block template with custom products.
33
+ * @param products - Array of products to display
34
+ * @param layout - The layout orientation ('horizontal' or 'vertical')
35
+ * @param title - Title for the block
36
+ * @param options - Layout-specific options
37
+ * @returns Complete HTML template
38
+ */
39
+ export declare function generateBlockTemplate(products: RecommendationProduct[], layout: Orientation, title?: string, options?: PrepareProductRowsOptions): string;
@@ -0,0 +1,45 @@
1
+ import type { RecommendationProduct } from '@@/Types/recommendation';
2
+ import { ATTR_PRODUCT_IMAGE, ATTR_PRODUCT_NAME, ATTR_PRODUCT_PRICE, ATTR_PRODUCT_OLD_PRICE, ATTR_PRODUCT_OMNIBUS_PRICE, ATTR_PRODUCT_OMNIBUS_DISCOUNT, ATTR_PRODUCT_BUTTON } from '../constants';
3
+ export type Orientation = 'horizontal' | 'vertical';
4
+ /**
5
+ * Options for prepareProductRows unified function
6
+ */
7
+ export interface PrepareProductRowsOptions {
8
+ /** Number of products per row (only for vertical layout, defaults to 3) */
9
+ productsPerRow?: number;
10
+ /** Array defining order of card elements */
11
+ composition?: string[];
12
+ }
13
+ /**
14
+ * Element renderer interface for product card elements
15
+ * Keys are ATTR_PRODUCT_* constants for consistent naming
16
+ */
17
+ export interface ElementRenderer {
18
+ [ATTR_PRODUCT_IMAGE]: (product: RecommendationProduct) => string;
19
+ [ATTR_PRODUCT_NAME]: (product: RecommendationProduct) => string;
20
+ [ATTR_PRODUCT_PRICE]: (product: RecommendationProduct) => string;
21
+ [ATTR_PRODUCT_OLD_PRICE]: (product: RecommendationProduct) => string;
22
+ [ATTR_PRODUCT_OMNIBUS_PRICE]: (product: RecommendationProduct) => string;
23
+ [ATTR_PRODUCT_OMNIBUS_DISCOUNT]: (product: RecommendationProduct) => string;
24
+ [ATTR_PRODUCT_BUTTON]: (product: RecommendationProduct) => string;
25
+ }
26
+ /**
27
+ * Product card getter function type
28
+ * Used by prepareProductRows to generate individual product cards
29
+ */
30
+ export type ProductCardGetter = (product: RecommendationProduct, composition?: string[]) => string;
31
+ export declare const DEFAULTS: {
32
+ TITLE: string;
33
+ DESCRIPTION: string;
34
+ };
35
+ export declare const DEFAULT_CARD_COMPOSITION: string[];
36
+ export declare const DEFAULT_CARD_VISIBILITY: Record<string, boolean>;
37
+ export declare const spacer = "\n <tr>\n <td class=\"spacer\" style=\"height: 10px;\"></td>\n </tr>\n";
38
+ export declare function getDefaultProducts(): RecommendationProduct[];
39
+ /**
40
+ * Creates the block template wrapper HTML for recommendation blocks.
41
+ * The template includes title placeholder and product container.
42
+ * @param layout - The layout orientation ('horizontal' or 'vertical')
43
+ * @returns HTML template string with {-{-TITLE-}-} and {-{-PRODUCT_ROWS-}-} placeholders
44
+ */
45
+ export declare function createBlockTemplate(layout?: Orientation): string;
@@ -0,0 +1,7 @@
1
+ import type { ElementRenderer } from '../utils';
2
+ /**
3
+ * Class name for outer cells in attribute rows
4
+ * Used by controls to reliably select direct children for spacing adjustments
5
+ */
6
+ export declare const ATTRIBUTE_CELL_CLASS = "attribute-cell";
7
+ export declare const verticalElementRenderer: ElementRenderer;
@@ -1,9 +1,17 @@
1
1
  import type { RecommendationProduct } from '@@/Types/recommendation';
2
- import { DEFAULTS, getDefaultProducts } from './templateUtils';
2
+ import { DEFAULTS, getDefaultProducts, DEFAULT_CARD_COMPOSITION, DEFAULT_CARD_VISIBILITY } from '../utils';
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;
4
12
  export declare function getMigrationTemplate(): string;
5
13
  /**
6
- * Generates a custom migration template with specified products and layout
14
+ * Generates a custom migration template with specified products and layout.
7
15
  * @param products - Array of products to display
8
16
  * @param productsPerRow - Number of products per row
9
17
  * @param title - Optional title for the block
@@ -11,6 +19,5 @@ export declare function getMigrationTemplate(): string;
11
19
  * @returns Complete HTML template
12
20
  */
13
21
  export declare function generateMigrationTemplate(products: RecommendationProduct[], productsPerRow: number, title?: string, composition?: string[]): string;
14
- export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, composition?: string[]): string;
15
- export { DEFAULTS, getDefaultProducts };
22
+ export { DEFAULTS, DEFAULT_CARD_COMPOSITION, DEFAULT_CARD_VISIBILITY, getDefaultProducts, };
16
23
  export default migrationTemplate;
@@ -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;
@@ -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;
@@ -0,0 +1,4 @@
1
+ const e = "data:image/svg+xml,%3csvg%20width='344'%20height='713'%20viewBox='0%200%20344%20713'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='344'%20height='712.056'%20rx='44'%20fill='white'/%3e%3cpath%20d='M152.709%2071V61.9H153.814V71H152.709ZM155.939%2071V64.5H156.914L156.979%2065.696V71H155.939ZM160.502%2071V67.672H161.542V71H160.502ZM160.502%2067.672C160.502%2067.0307%20160.429%2066.541%20160.281%2066.203C160.134%2065.865%20159.93%2065.6353%20159.67%2065.514C159.41%2065.384%20159.116%2065.319%20158.786%2065.319C158.214%2065.319%20157.768%2065.5227%20157.447%2065.93C157.135%2066.3287%20156.979%2066.8963%20156.979%2067.633H156.472C156.472%2066.9483%20156.572%2066.359%20156.771%2065.865C156.971%2065.371%20157.261%2064.994%20157.642%2064.734C158.024%2064.474%20158.483%2064.344%20159.02%2064.344C159.532%2064.344%20159.974%2064.448%20160.346%2064.656C160.728%2064.8553%20161.022%2065.176%20161.23%2065.618C161.447%2066.06%20161.551%2066.6407%20161.542%2067.36V67.672H160.502ZM163.188%2071V61.9H164.228V69.791L164.176%2071H163.188ZM166.425%2071.156C165.879%2071.156%20165.398%2071.013%20164.982%2070.727C164.575%2070.441%20164.259%2070.0423%20164.033%2069.531C163.808%2069.011%20163.695%2068.4173%20163.695%2067.75C163.695%2067.074%20163.808%2066.4803%20164.033%2065.969C164.259%2065.4577%20164.575%2065.059%20164.982%2064.773C165.398%2064.487%20165.879%2064.344%20166.425%2064.344C167.006%2064.344%20167.517%2064.487%20167.959%2064.773C168.401%2065.059%20168.744%2065.4577%20168.986%2065.969C169.238%2066.4803%20169.363%2067.074%20169.363%2067.75C169.363%2068.4173%20169.238%2069.011%20168.986%2069.531C168.744%2070.0423%20168.401%2070.441%20167.959%2070.727C167.517%2071.013%20167.006%2071.156%20166.425%2071.156ZM166.191%2070.207C166.599%2070.207%20166.958%2070.103%20167.27%2069.895C167.591%2069.687%20167.842%2069.3967%20168.024%2069.024C168.215%2068.6513%20168.31%2068.2267%20168.31%2067.75C168.31%2067.2733%20168.219%2066.8487%20168.037%2066.476C167.864%2066.1033%20167.617%2065.813%20167.296%2065.605C166.976%2065.397%20166.612%2065.293%20166.204%2065.293C165.823%2065.293%20165.481%2065.397%20165.177%2065.605C164.883%2065.813%20164.649%2066.1033%20164.475%2066.476C164.311%2066.8487%20164.228%2067.2733%20164.228%2067.75C164.228%2068.2267%20164.311%2068.6513%20164.475%2069.024C164.649%2069.3967%20164.883%2069.687%20165.177%2069.895C165.472%2070.103%20165.81%2070.207%20166.191%2070.207ZM173.679%2071.156C173.046%2071.156%20172.483%2071.013%20171.989%2070.727C171.503%2070.4323%20171.122%2070.0293%20170.845%2069.518C170.567%2069.0067%20170.429%2068.4173%20170.429%2067.75C170.429%2067.0827%20170.563%2066.4933%20170.832%2065.982C171.109%2065.4707%20171.49%2065.072%20171.976%2064.786C172.47%2064.4913%20173.029%2064.344%20173.653%2064.344C174.294%2064.344%20174.857%2064.4913%20175.343%2064.786C175.837%2065.072%20176.218%2065.4707%20176.487%2065.982C176.764%2066.4933%20176.903%2067.0827%20176.903%2067.75C176.903%2068.4173%20176.764%2069.0067%20176.487%2069.518C176.218%2070.0293%20175.841%2070.4323%20175.356%2070.727C174.87%2071.013%20174.311%2071.156%20173.679%2071.156ZM173.679%2070.194C174.112%2070.194%20174.489%2070.09%20174.81%2069.882C175.13%2069.674%20175.382%2069.388%20175.564%2069.024C175.754%2068.66%20175.85%2068.2353%20175.85%2067.75C175.85%2067.2647%20175.754%2066.84%20175.564%2066.476C175.382%2066.112%20175.126%2065.826%20174.797%2065.618C174.467%2065.41%20174.086%2065.306%20173.653%2065.306C173.228%2065.306%20172.851%2065.41%20172.522%2065.618C172.201%2065.826%20171.945%2066.112%20171.755%2066.476C171.573%2066.84%20171.482%2067.2647%20171.482%2067.75C171.482%2068.2267%20171.573%2068.6513%20171.755%2069.024C171.945%2069.388%20172.205%2069.674%20172.535%2069.882C172.873%2070.09%20173.254%2070.194%20173.679%2070.194ZM177.503%2071L180.155%2067.269L182.027%2064.5H183.262L180.792%2068.01L178.764%2071H177.503ZM182.17%2071L180.168%2068.01L177.672%2064.5H178.907L180.792%2067.269L183.418%2071H182.17Z'%20fill='%23989898'/%3e%3cline%20x1='12'%20y1='86.5'%20x2='332'%20y2='86.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='150.5'%20x2='316'%20y2='150.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='214.5'%20x2='316'%20y2='214.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='278.5'%20x2='316'%20y2='278.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='342.5'%20x2='316'%20y2='342.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='406.5'%20x2='316'%20y2='406.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='470.5'%20x2='316'%20y2='470.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='534.5'%20x2='316'%20y2='534.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='598.5'%20x2='316'%20y2='598.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3crect%20width='320'%20height='64'%20transform='translate(12%20626)'%20fill='white'/%3e%3crect%20x='28'%20y='644'%20width='20'%20height='20'%20fill='url(%23pattern0_24_102)'/%3e%3crect%20x='292'%20y='642'%20width='24'%20height='24'%20fill='url(%23pattern1_24_102)'/%3e%3cpath%20d='M54.6454%2035V29.1943H54.5624L52.8095%2030.4346V29.248L54.6503%2027.9541H55.9052V35H54.6454ZM60.7072%2035V33.6475H57.2599V32.6172C58.173%2031.0303%2059.174%2029.4092%2060.131%2027.9541H61.9132V32.6074H62.8605V33.6475H61.9132V35H60.7072ZM58.4318%2032.6367H60.7267V28.96H60.6535C59.9308%2030.0635%2059.1154%2031.3672%2058.4318%2032.5635V32.6367ZM64.6742%2030.4346C64.2298%2030.4346%2063.8978%2030.0928%2063.8978%2029.6631C63.8978%2029.2285%2064.2298%2028.8916%2064.6742%2028.8916C65.1234%2028.8916%2065.4505%2029.2285%2065.4505%2029.6631C65.4505%2030.0928%2065.1234%2030.4346%2064.6742%2030.4346ZM64.6742%2034.0576C64.2298%2034.0576%2063.8978%2033.7207%2063.8978%2033.2861C63.8978%2032.8516%2064.2298%2032.5146%2064.6742%2032.5146C65.1234%2032.5146%2065.4505%2032.8516%2065.4505%2033.2861C65.4505%2033.7207%2065.1234%2034.0576%2064.6742%2034.0576ZM66.688%2035V34.1504L69.0025%2031.7871C69.9595%2030.8203%2070.2281%2030.4639%2070.2281%2029.9219V29.9072C70.2281%2029.2578%2069.7837%2028.7891%2069.0513%2028.7891C68.3042%2028.7891%2067.8013%2029.2822%2067.8013%2030.0098L67.7964%2030.0293L66.6246%2030.0244L66.6197%2030.0098C66.6197%2028.6963%2067.6451%2027.7783%2069.1148%2027.7783C70.4869%2027.7783%2071.4732%2028.6133%2071.4732%2029.7998V29.8145C71.4732%2030.6152%2071.0875%2031.25%2069.8033%2032.4854L68.3921%2033.8525V33.9551H71.5806V35H66.688ZM75.1521%2035.1758C73.4773%2035.1758%2072.4714%2033.7549%2072.4714%2031.4795V31.4697C72.4714%2029.1943%2073.4773%2027.7783%2075.1521%2027.7783C76.8269%2027.7783%2077.8425%2029.1943%2077.8425%2031.4697V31.4795C77.8425%2033.7549%2076.8269%2035.1758%2075.1521%2035.1758ZM75.1521%2034.1553C76.0505%2034.1553%2076.573%2033.1494%2076.573%2031.4795V31.4697C76.573%2029.7998%2076.0505%2028.8037%2075.1521%2028.8037C74.2537%2028.8037%2073.741%2029.7998%2073.741%2031.4697V31.4795C73.741%2033.1494%2074.2537%2034.1553%2075.1521%2034.1553Z'%20fill='black'/%3e%3cpath%20d='M257.835%2028C257.835%2027.5398%20258.208%2027.1667%20258.668%2027.1667H259.501C259.961%2027.1667%20260.335%2027.5398%20260.335%2028V34.6667C260.335%2035.1269%20259.961%2035.5%20259.501%2035.5H258.668C258.208%2035.5%20257.835%2035.1269%20257.835%2034.6667V28Z'%20fill='black'/%3e%3cpath%20d='M262.001%2026.3333C262.001%2025.8731%20262.374%2025.5%20262.835%2025.5H263.668C264.128%2025.5%20264.501%2025.8731%20264.501%2026.3333V34.6667C264.501%2035.1269%20264.128%2035.5%20263.668%2035.5H262.835C262.374%2035.5%20262.001%2035.1269%20262.001%2034.6667V26.3333Z'%20fill='black'/%3e%3cpath%20d='M253.668%2030.9167C253.668%2030.4564%20254.041%2030.0833%20254.501%2030.0833H255.335C255.795%2030.0833%20256.168%2030.4564%20256.168%2030.9167V34.6667C256.168%2035.1269%20255.795%2035.5%20255.335%2035.5H254.501C254.041%2035.5%20253.668%2035.1269%20253.668%2034.6667V30.9167Z'%20fill='black'/%3e%3cpath%20d='M249.501%2033C249.501%2032.5398%20249.874%2032.1667%20250.335%2032.1667H251.168C251.628%2032.1667%20252.001%2032.5398%20252.001%2033V34.6667C252.001%2035.1269%20251.628%2035.5%20251.168%2035.5H250.335C249.874%2035.5%20249.501%2035.1269%20249.501%2034.6667V33Z'%20fill='black'/%3e%3cpath%20d='M277.668%2033.0361C278.868%2032.0006%20280.625%2032.0004%20281.824%2033.0361C281.885%2033.0918%20281.919%2033.1709%20281.921%2033.2539C281.923%2033.3368%20281.891%2033.4165%20281.833%2033.4746L279.954%2035.4102C279.899%2035.4669%20279.825%2035.499%20279.746%2035.499C279.668%2035.499%20279.592%2035.467%20279.537%2035.4102L277.658%2033.4746C277.601%2033.4165%20277.569%2033.3367%20277.571%2033.2539C277.572%2033.1709%20277.608%2033.0918%20277.668%2033.0361ZM275.128%2030.7197C277.713%2028.2656%20281.716%2028.2656%20284.301%2030.7197C284.359%2030.7773%20284.392%2030.8567%20284.393%2030.9395C284.394%2031.0223%20284.362%2031.1024%20284.305%2031.1611L283.219%2032.2812C283.107%2032.3954%20282.926%2032.3974%20282.812%2032.2861C281.963%2031.5016%20280.858%2031.0673%20279.713%2031.0674C278.569%2031.068%20277.466%2031.5022%20276.617%2032.2861C276.503%2032.3974%20276.322%2032.3953%20276.21%2032.2812L275.124%2031.1611C275.067%2031.1025%20275.036%2031.0223%20275.036%2030.9395C275.037%2030.8567%20275.07%2030.7772%20275.128%2030.7197ZM272.591%2028.4082C276.556%2024.5301%20282.81%2024.5301%20286.775%2028.4082C286.832%2028.4658%20286.864%2028.5448%20286.865%2028.627C286.865%2028.7088%20286.834%2028.7875%20286.778%2028.8457L285.69%2029.9658C285.578%2030.0808%20285.396%2030.0819%20285.282%2029.9688C283.772%2028.503%20281.767%2027.6856%20279.683%2027.6855C277.599%2027.6857%20275.594%2028.503%20274.083%2029.9688C273.97%2030.0821%20273.788%2030.0809%20273.676%2029.9658L272.588%2028.8457C272.532%2028.7874%20272.501%2028.708%20272.501%2028.626C272.502%2028.5441%20272.534%2028.4656%20272.591%2028.4082Z'%20fill='black'/%3e%3cpath%20opacity='0.35'%20d='M298.865%2026H309.865C311.245%2026%20312.365%2027.1193%20312.365%2028.5V31.5C312.365%2032.8807%20311.245%2034%20309.865%2034H298.865C297.484%2034%20296.365%2032.8807%20296.365%2031.5V28.5C296.365%2027.1193%20297.484%2026%20298.865%2026Z'%20stroke='black'/%3e%3cpath%20opacity='0.4'%20d='M313.865%2028.5V31.5C314.47%2031.2459%20314.865%2030.6549%20314.865%2030C314.865%2029.3451%20314.47%2028.7541%20313.865%2028.5Z'%20fill='black'/%3e%3cpath%20d='M297.865%2028.5C297.865%2027.9477%20298.312%2027.5%20298.865%2027.5H309.865C310.417%2027.5%20310.865%2027.9477%20310.865%2028.5V31.5C310.865%2032.0523%20310.417%2032.5%20309.865%2032.5H298.865C298.312%2032.5%20297.865%2032.0523%20297.865%2031.5V28.5Z'%20fill='black'/%3e%3cg%20opacity='0.8'%3e%3crect%20x='127'%20y='690'%20width='90'%20height='4'%20rx='2'%20fill='%230F1218'%20style='mix-blend-mode:darken'/%3e%3c/g%3e%3crect%20x='131'%20y='20'%20width='83'%20height='22'%20rx='11'%20fill='%2324262D'/%3e%3cdefs%3e%3cpattern%20id='pattern0_24_102'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_24_102'%20transform='scale(0.02)'/%3e%3c/pattern%3e%3cpattern%20id='pattern1_24_102'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image1_24_102'%20transform='scale(0.0208333)'/%3e%3c/pattern%3e%3cimage%20id='image0_24_102'%20width='50'%20height='50'%20preserveAspectRatio='none'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEL0lEQVR4nO1aS48UVRS+xAcajIqKutSl0Sh/wifia+drB9ENMEG3OK7FWRTTfb/vVKfTSS97qSFGEzGIGhBE2MigsFJZKLoTJWjafD3nJpVM10x3Tz9qCF9SSc/cW6fuqXPuOed+p0K4gesUjUbjHjN7ieRBkodJLpH8E8BVXf77nI8dBPBijHFrqAJardZtMcY3SX5G8j+S3WEuAP8C+JTkG1mWbZ66AgsLC7eb2TsALhUW9g+AI2Z2QJap1+uP6I2b2S269Fv/0xiA90h+oXsKSv1Kcr9ezlSUMLMdJC8WFnDSzHaZ2V3Dymq1WncD2E3yVEHeBTN7dqJuxGWkB35nZk+NSz7JZwB8X7BwfezWqdVqD2rhrsBfJPd0Op2bxvqQEIJkAthH8kqydqPReGAswvM8f1jmdsHnYoyPhQmjXq8/DuC8W+YnrWFdApvN5rYkEMC3ZnZfmBJijFtJfuXKXJRXjCRI/llwp2/a7faWMGW02+0tAI4nNxtpz6SNLXdSsgszwuLi4r0FN6uPEmJ7G3sae2KQPUMPAIpuAye7Qp7YEyoCknNp8w/kYgDeTXliEiF2VMzPz99M8owrM7fqZNU7XipIkSdDxQDgOV/bpVWtouItRYhQQXS73U0pkprZa6UTvYrVpF39xgEcG7bCHfUCcKxkDW/5+Cd9lVCIVVmtirSsAJymIiS/LEuUfr651nedAF52AZ+HigPAUV/rzn6DH7pbHQgVB4D33b0+WDHoR9BujPGFUHHAvQfARysGSf6oQZ3iQsWR5/mj7lpLKwYB/KHBWdZVg0JVuFvktxWDHgm6nU7n1lBxZFm2OfEE61ZkEqEYJbljKEVIXtagyuZZKcKS3LGKa/1+/W52evgVAxgqDpKvlIbflBBFnoWNnBBtmbfV4JGwQUqUGOPzZcVYr2gUAxgqisZycdsrGrMsu7PvJCeUZZXdoaIg+bZv9MOlkwC87pNODSp4HGF40PzR7XY3kTzt97y6FpfVO+rGGJ+eliJD5I8drsTPa7YhRO278NMVJB/O+lFj75o3uFUS17svVAT0FyyybuCmkPoTbpUrIsfCjJHn+XYAf7s1hmtliJ5Mb2DQ+msSaDab20TK+VoODS3AXeykCzg+CxK7VqvdQfKEe8eJkfuM/jaWUltBf4fpJr6v/dkX1t3wUZOlYNrzAJ4Y22rLn7k9PVNVOYCHxiJYbyO5mbPicwqHYTIhdn/a2HKnGOP9k2iG9gKAX2fG1X1VxvZkd7aQ7Q9NtPeu/kTB7D3WXjTmKF8xaB947dQrO+iuNM5u8SDWUb/il4JCV728nhfvpFOcwrY4AF36raaRH4o052jiCVLZYWZ7Z/IFhB4qVlyEsh8Bhq2xrqmKVQE4EwX6QYSyuFid2kh+7B/QXC58VCNy4wcdT33OztLzxA2EjY//AVnMqJspfcIsAAAAAElFTkSuQmCC'/%3e%3cimage%20id='image1_24_102'%20width='48'%20height='48'%20preserveAspectRatio='none'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB9UlEQVR4nO2Zv2oVQRTGBxHsLG1FEdTCXoh/wVpUtFGMD+EDbGW0Ehb2zvd9V7FO6qSztfAJBPMIQhqTaCGinGQXxuXmund3NswN84NTXe7M9zuc2V12nctkTj5lWZ713l92y4j3/iaAHZJ/SL51y4SkawD26vAHNZlMrrploSiK0wDWm/AA9r3351zqALgD4IMJWJHcIPkLwOPei3rvLwJ4A2ALwMeYJelpK3wzNhuNhJ2F3uFJPgLwM5zFWAXgXVEUp2aEb35f7x086Pwo4Um+nxee5G8Aq4MEbGyCbny1OZR0L0LdbcJLuj1K+FpgKxDof4iOQGOGN+yQNQtb51xEJN0gudsOL+lFtE3GEujSeT/kyjOmgHUewPd5nZf00vZOTqBreB6eubQESN6aNfP4d2yuBxeNdAQArPyv84btkZxA1/BJCiwSPjmBo67z825SSkXAHhNIfln0JqVUBAA87HOHVSoCJD8FQb4BeNblf0pBQNKVOsBn7/3zsizPdN1PKQjY/FdVdanPfkpBYAjKAi2ywIIoC7TIAguiLHDMr1XaSHoSPD9tuqEAeB0suG0bRHqxNass/HbQsFeDBabT6QWSP1pPlqMXgP2qqs67GEh6cJwSOPwOcN/FxLpRj9Nm7NfrqMvWJrkWrfOZTCaTOfH8BUJmVJAShmWwAAAAAElFTkSuQmCC'/%3e%3c/defs%3e%3c/svg%3e";
2
+ export {
3
+ e as default
4
+ };
@@ -0,0 +1,4 @@
1
+ const C = "data:image/svg+xml,%3csvg%20width='344'%20height='713'%20viewBox='0%200%20344%20713'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='344'%20height='712.056'%20rx='44'%20fill='white'/%3e%3cpath%20d='M54.6454%2034V28.1943H54.5624L52.8095%2029.4346V28.248L54.6503%2026.9541H55.9052V34H54.6454ZM60.7072%2034V32.6475H57.2599V31.6172C58.173%2030.0303%2059.174%2028.4092%2060.131%2026.9541H61.9132V31.6074H62.8605V32.6475H61.9132V34H60.7072ZM58.4318%2031.6367H60.7267V27.96H60.6534C59.9308%2029.0635%2059.1154%2030.3672%2058.4318%2031.5635V31.6367ZM64.6742%2029.4346C64.2298%2029.4346%2063.8978%2029.0928%2063.8978%2028.6631C63.8978%2028.2285%2064.2298%2027.8916%2064.6742%2027.8916C65.1234%2027.8916%2065.4505%2028.2285%2065.4505%2028.6631C65.4505%2029.0928%2065.1234%2029.4346%2064.6742%2029.4346ZM64.6742%2033.0576C64.2298%2033.0576%2063.8978%2032.7207%2063.8978%2032.2861C63.8978%2031.8516%2064.2298%2031.5146%2064.6742%2031.5146C65.1234%2031.5146%2065.4505%2031.8516%2065.4505%2032.2861C65.4505%2032.7207%2065.1234%2033.0576%2064.6742%2033.0576ZM66.688%2034V33.1504L69.0025%2030.7871C69.9595%2029.8203%2070.2281%2029.4639%2070.2281%2028.9219V28.9072C70.2281%2028.2578%2069.7837%2027.7891%2069.0513%2027.7891C68.3042%2027.7891%2067.8013%2028.2822%2067.8013%2029.0098L67.7964%2029.0293L66.6245%2029.0244L66.6197%2029.0098C66.6197%2027.6963%2067.6451%2026.7783%2069.1148%2026.7783C70.4869%2026.7783%2071.4732%2027.6133%2071.4732%2028.7998V28.8145C71.4732%2029.6152%2071.0874%2030.25%2069.8033%2031.4854L68.3921%2032.8525V32.9551H71.5806V34H66.688ZM75.1521%2034.1758C73.4773%2034.1758%2072.4714%2032.7549%2072.4714%2030.4795V30.4697C72.4714%2028.1943%2073.4773%2026.7783%2075.1521%2026.7783C76.8269%2026.7783%2077.8425%2028.1943%2077.8425%2030.4697V30.4795C77.8425%2032.7549%2076.8269%2034.1758%2075.1521%2034.1758ZM75.1521%2033.1553C76.0505%2033.1553%2076.573%2032.1494%2076.573%2030.4795V30.4697C76.573%2028.7998%2076.0505%2027.8037%2075.1521%2027.8037C74.2537%2027.8037%2073.741%2028.7998%2073.741%2030.4697V30.4795C73.741%2032.1494%2074.2537%2033.1553%2075.1521%2033.1553Z'%20fill='black'/%3e%3cpath%20d='M257.835%2027C257.835%2026.5398%20258.208%2026.1667%20258.668%2026.1667H259.501C259.961%2026.1667%20260.335%2026.5398%20260.335%2027V33.6667C260.335%2034.1269%20259.961%2034.5%20259.501%2034.5H258.668C258.208%2034.5%20257.835%2034.1269%20257.835%2033.6667V27Z'%20fill='black'/%3e%3cpath%20d='M262.001%2025.3333C262.001%2024.8731%20262.374%2024.5%20262.835%2024.5H263.668C264.128%2024.5%20264.501%2024.8731%20264.501%2025.3333V33.6667C264.501%2034.1269%20264.128%2034.5%20263.668%2034.5H262.835C262.374%2034.5%20262.001%2034.1269%20262.001%2033.6667V25.3333Z'%20fill='black'/%3e%3cpath%20d='M253.668%2029.9167C253.668%2029.4564%20254.041%2029.0833%20254.501%2029.0833H255.335C255.795%2029.0833%20256.168%2029.4564%20256.168%2029.9167V33.6667C256.168%2034.1269%20255.795%2034.5%20255.335%2034.5H254.501C254.041%2034.5%20253.668%2034.1269%20253.668%2033.6667V29.9167Z'%20fill='black'/%3e%3cpath%20d='M249.501%2032C249.501%2031.5398%20249.874%2031.1667%20250.335%2031.1667H251.168C251.628%2031.1667%20252.001%2031.5398%20252.001%2032V33.6667C252.001%2034.1269%20251.628%2034.5%20251.168%2034.5H250.335C249.874%2034.5%20249.501%2034.1269%20249.501%2033.6667V32Z'%20fill='black'/%3e%3cpath%20d='M277.668%2032.0361C278.868%2031.0007%20280.625%2031.0005%20281.824%2032.0361C281.885%2032.0918%20281.919%2032.1709%20281.921%2032.2539C281.923%2032.3369%20281.891%2032.4174%20281.833%2032.4756L279.954%2034.4102C279.899%2034.4669%20279.825%2034.4989%20279.746%2034.499C279.668%2034.499%20279.592%2034.467%20279.537%2034.4102L277.658%2032.4756C277.6%2032.4174%20277.569%2032.3369%20277.57%2032.2539C277.572%2032.1709%20277.608%2032.0918%20277.668%2032.0361ZM275.128%2029.7207C277.713%2027.2665%20281.716%2027.2665%20284.301%2029.7207C284.359%2029.7782%20284.392%2029.8569%20284.393%2029.9395C284.394%2030.0223%20284.362%2030.1024%20284.305%2030.1611L283.219%2031.2812C283.107%2031.3954%20282.926%2031.3974%20282.812%2031.2861C281.963%2030.5016%20280.858%2030.0673%20279.713%2030.0674C278.569%2030.068%20277.466%2030.5022%20276.617%2031.2861C276.503%2031.3974%20276.322%2031.3954%20276.21%2031.2812L275.124%2030.1611C275.067%2030.1025%20275.036%2030.0223%20275.036%2029.9395C275.037%2029.8569%20275.07%2029.7781%20275.128%2029.7207ZM272.591%2027.4082C276.555%2023.5301%20282.81%2023.5301%20286.775%2027.4082C286.832%2027.4658%20286.864%2027.5448%20286.864%2027.627C286.865%2027.7088%20286.834%2027.7875%20286.778%2027.8457L285.69%2028.9658C285.578%2029.0807%20285.396%2029.0826%20285.282%2028.9697C283.772%2027.5039%20281.767%2026.6866%20279.683%2026.6865C277.599%2026.6866%20275.594%2027.5039%20274.083%2028.9697C273.969%2029.0827%20273.788%2029.0808%20273.676%2028.9658L272.588%2027.8457C272.532%2027.7875%20272.501%2027.7088%20272.501%2027.627C272.502%2027.5448%20272.534%2027.4658%20272.591%2027.4082Z'%20fill='black'/%3e%3cpath%20opacity='0.35'%20d='M298.864%2025H309.864C311.245%2025%20312.364%2026.1193%20312.364%2027.5V30.5C312.364%2031.8807%20311.245%2033%20309.864%2033H298.864C297.484%2033%20296.364%2031.8807%20296.364%2030.5V27.5C296.364%2026.1193%20297.484%2025%20298.864%2025Z'%20stroke='black'/%3e%3cpath%20opacity='0.4'%20d='M313.864%2027.5V30.5C314.47%2030.2459%20314.864%2029.6549%20314.864%2029C314.864%2028.3451%20314.47%2027.7541%20313.864%2027.5Z'%20fill='black'/%3e%3cpath%20d='M297.864%2027.5C297.864%2026.9477%20298.312%2026.5%20298.864%2026.5H309.864C310.417%2026.5%20310.864%2026.9477%20310.864%2027.5V30.5C310.864%2031.0523%20310.417%2031.5%20309.864%2031.5H298.864C298.312%2031.5%20297.864%2031.0523%20297.864%2030.5V27.5Z'%20fill='black'/%3e%3crect%20width='320'%20height='66'%20transform='translate(12%20623)'%20fill='white'/%3e%3cpath%20d='M38.5%20642.625C37.4661%20642.625%2036.625%20643.466%2036.625%20644.5V645.625H32.875C32.461%20645.625%2032.125%20645.961%2032.125%20646.375C32.125%20646.789%2032.461%20647.125%2032.875%20647.125H33.666L34.2974%20658.5C34.3641%20659.691%2035.3501%20660.625%2036.5437%20660.625H43.4563C44.6495%20660.625%2045.6359%20659.691%2045.7026%20658.5L46.334%20647.125H47.125C47.539%20647.125%2047.875%20646.789%2047.875%20646.375C47.875%20645.961%2047.539%20645.625%2047.125%20645.625H43.375V644.5C43.375%20643.466%2042.5339%20642.625%2041.5%20642.625H38.5ZM38.5%20644.125H41.5C41.707%20644.125%2041.875%20644.293%2041.875%20644.5V645.625H38.125V644.5C38.125%20644.293%2038.293%20644.125%2038.5%20644.125ZM35.1675%20647.125H44.8325L44.2048%20658.416C44.1827%20658.814%2043.8542%20659.125%2043.4563%20659.125H36.5437C36.1462%20659.125%2035.8173%20658.814%2035.7952%20658.417L35.1675%20647.125ZM40%20648.719C39.6374%20648.719%2039.3438%20649.013%2039.3438%20649.375V656.875C39.3438%20657.237%2039.6374%20657.531%2040%20657.531C40.3626%20657.531%2040.6562%20657.237%2040.6562%20656.875V649.375C40.6562%20649.013%2040.3626%20648.719%2040%20648.719ZM37.241%20648.719C36.8791%20648.732%2036.5958%20649.035%2036.6082%20649.398L36.8696%20656.93C36.882%20657.284%2037.1734%20657.563%2037.5252%20657.563C37.533%20657.563%2037.5407%20657.563%2037.5486%20657.563C37.9105%20657.551%2038.1938%20657.247%2038.1814%20656.885L37.9199%20649.352C37.9072%20648.99%2037.6025%20648.711%2037.241%20648.719ZM42.7583%20648.719C42.3957%20648.709%2042.0928%20648.99%2042.0801%20649.352L41.8186%20656.885C41.8059%20657.247%2042.0892%20657.551%2042.4514%20657.563C42.4593%20657.564%2042.467%20657.563%2042.4749%20657.563C42.8266%20657.563%2043.118%20657.284%2043.1304%20656.93L43.3918%20649.398C43.4046%20649.035%2043.1206%20648.732%2042.7583%20648.719Z'%20fill='%23989898'/%3e%3cpath%20d='M122%20644.875C120.759%20644.875%20119.75%20645.884%20119.75%20647.125V656.875C119.75%20658.116%20120.759%20659.125%20122%20659.125H134C135.241%20659.125%20136.25%20658.116%20136.25%20656.875V648.625C136.25%20647.384%20135.241%20646.375%20134%20646.375H126.914C126.574%20646.375%20126.242%20646.258%20125.978%20646.046L125.335%20645.533C124.806%20645.109%20124.14%20644.875%20123.461%20644.875H122ZM122%20646.375H123.461C123.801%20646.375%20124.133%20646.492%20124.398%20646.704L125.04%20647.217C125.569%20647.641%20126.235%20647.875%20126.914%20647.875H134C134.414%20647.875%20134.75%20648.211%20134.75%20648.625V649H121.25V647.125C121.25%20646.711%20121.586%20646.375%20122%20646.375ZM121.25%20650.5H134.75V656.875C134.75%20657.289%20134.414%20657.625%20134%20657.625H122C121.586%20657.625%20121.25%20657.289%20121.25%20656.875V650.5Z'%20fill='%23989898'/%3e%3crect%20x='204'%20y='640'%20width='24'%20height='24'%20fill='url(%23pattern0_2_77)'/%3e%3crect%20x='292'%20y='640'%20width='24'%20height='24'%20fill='url(%23pattern1_2_77)'/%3e%3cg%20opacity='0.8'%3e%3crect%20x='127'%20y='690'%20width='90'%20height='4'%20rx='2'%20fill='%230F1218'%20style='mix-blend-mode:darken'/%3e%3c/g%3e%3crect%20x='131'%20y='20'%20width='83'%20height='22'%20rx='11'%20fill='%2324262D'/%3e%3cdefs%3e%3cpattern%20id='pattern0_2_77'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_2_77'%20transform='scale(0.0208333)'/%3e%3c/pattern%3e%3cpattern%20id='pattern1_2_77'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image1_2_77'%20transform='scale(0.0208333)'/%3e%3c/pattern%3e%3cimage%20id='image0_2_77'%20width='48'%20height='48'%20preserveAspectRatio='none'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAADPElEQVR4nO1YSWgUQRTtKHEJKnpwAUURBMXlIi6HQBS9iCKeREHwIIJeBBFBBHGOLhBktKn3fichHiRgK+Yi0YuIiAdxF7xo9BBwQUVUMMFoMvLJb2gGx2SmM5O09IO+dFf9eu9Xdf3F8zJkyJAhw3iB7/uLSD4j2eGlDSKyjGQPyQLJV16aICKrAXw08ukSQLKJ5DclDuBiqgSIyDaSvUb+fBiGk1IjwDm3G0C/kT+t70SkPhUCSB4kOQBgkOTh6H0qBAA4bl7vB7An/i0SAOCNc25WqUfH1Zx4oVCoA3DWCPaR3F48JrYDwz4APgB4pDYBNOZyuQlVIx+G4USSgS38HcDGUmNJ3iL55V+PHb1iUS9FZKc6arTJ681y2ch/IrkmqU3dKQDz1RG2A92xnbkXBMGCUSEvIg0Abpjx9yKyyqsCCoVCnXo/EmKOakpktL29fSaAu9FP6fv+klFjXHrNKSQvmcN6RWRtRYZaWlrmAnhi5J/7vj/Pq+1l0WwiespeWw2QfGEG7uu159UYuVxuAslr5sDOSjzw3Ca/DYJghTcG8H1/mq5vPBrLmtzW1jab5EPbhc8A1nljABHZbxxulT05n8/PAHAnuvudc5tGuGh9qQhcbrAKw3Ci7gKA3865OWWLaG5ungrgehR9AewYwdl9PYII3AXgqIgsHI4DAOg859w+rxJYetBhBH4B2PuPsQ1GcvAv0bfvL4IGNEgCWF7KpqYsNrbVqxTq2cgTRu7QMAI+ldpR59xKPdsaIAH8tvE/SZ7QI1M8Ry8RG9PlJYHdTqdiR+FkuQKK4ZxbSvJKzGan2igaM8u+P/VGAySPRckYgHPx5KtcARFI7gLww4jejKfbVakxAByw86uG26Otr1SAQkTW621nNi9UvUiKl5QaNfP5/OQkAhQkt8Qqvc1Vr/IAbI2KepK3NYdKIkABIG82us0p1S1TNe0F8NUWeZxUQGtr63QA78zekZrU2cWNrSQCFBq0zNY3LW5q0iiItxaTCsgNxZ1HUQCrWadDm7sAHmiHLqktEdkQi9bju1VTCiSvprLfGiEIgsWxHCp9AhQkz6RaQH6oLrmredhYc8mQIUOG/xB/ACszo0e1cHoDAAAAAElFTkSuQmCC'/%3e%3cimage%20id='image1_2_77'%20width='48'%20height='48'%20preserveAspectRatio='none'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB9UlEQVR4nO2Zv2oVQRTGBxHsLG1FEdTCXoh/wVpUtFGMD+EDbGW0Ehb2zvd9V7FO6qSztfAJBPMIQhqTaCGinGQXxuXmund3NswN84NTXe7M9zuc2V12nctkTj5lWZ713l92y4j3/iaAHZJ/SL51y4SkawD26vAHNZlMrrploSiK0wDWm/AA9r3351zqALgD4IMJWJHcIPkLwOPei3rvLwJ4A2ALwMeYJelpK3wzNhuNhJ2F3uFJPgLwM5zFWAXgXVEUp2aEb35f7x086Pwo4Um+nxee5G8Aq4MEbGyCbny1OZR0L0LdbcJLuj1K+FpgKxDof4iOQGOGN+yQNQtb51xEJN0gudsOL+lFtE3GEujSeT/kyjOmgHUewPd5nZf00vZOTqBreB6eubQESN6aNfP4d2yuBxeNdAQArPyv84btkZxA1/BJCiwSPjmBo67z825SSkXAHhNIfln0JqVUBAA87HOHVSoCJD8FQb4BeNblf0pBQNKVOsBn7/3zsizPdN1PKQjY/FdVdanPfkpBYAjKAi2ywIIoC7TIAguiLHDMr1XaSHoSPD9tuqEAeB0suG0bRHqxNass/HbQsFeDBabT6QWSP1pPlqMXgP2qqs67GEh6cJwSOPwOcN/FxLpRj9Nm7NfrqMvWJrkWrfOZTCaTOfH8BUJmVJAShmWwAAAAAElFTkSuQmCC'/%3e%3c/defs%3e%3c/svg%3e";
2
+ export {
3
+ C as default
4
+ };
@@ -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.536ec84",
3
+ "version": "2.0.0-beta.54d276a",
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
  }