@useinsider/guido 2.1.0-beta.e13d291 → 2.1.0-beta.e2153c2

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 (138) hide show
  1. package/README.md +36 -0
  2. package/dist/@types/config/schemas.js +70 -65
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +69 -58
  5. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +15 -14
  6. package/dist/components/organisms/header/HeaderWrapper.vue.js +9 -9
  7. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue.js +1 -1
  8. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue2.js +19 -19
  9. package/dist/composables/useActionsApi.js +15 -13
  10. package/dist/composables/useBlocksConfig.js +26 -16
  11. package/dist/composables/useHtmlValidator.js +114 -104
  12. package/dist/composables/useRecommendation.js +54 -21
  13. package/dist/composables/useStripo.js +25 -23
  14. package/dist/composables/useVersionHistoryApi.js +1 -1
  15. package/dist/config/compiler/recommendationCompilerRules.js +45 -39
  16. package/dist/config/compiler/utils/recommendationCompilerUtils.js +121 -0
  17. package/dist/config/i18n/en/index.js +11 -0
  18. package/dist/config/i18n/en/labels.json.js +7 -0
  19. package/dist/config/i18n/en/toasters.json.js +56 -0
  20. package/dist/config/i18n/en/tooltips.json.js +82 -0
  21. package/dist/config/i18n/index.js +7 -0
  22. package/dist/config/migrator/itemsBlockMigrator.js +142 -120
  23. package/dist/enums/defaults.js +8 -4
  24. package/dist/enums/extensions/recommendationBlock.js +1 -1
  25. package/dist/enums/recommendation.js +16 -15
  26. package/dist/extensions/Blocks/Items/block.js +19 -28
  27. package/dist/extensions/Blocks/Items/controls/button/link.js +19 -31
  28. package/dist/extensions/Blocks/Items/controls/cardComposition.js +124 -85
  29. package/dist/extensions/Blocks/Items/controls/image/link.js +19 -31
  30. package/dist/extensions/Blocks/Items/controls/name/trimming.js +28 -40
  31. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +35 -47
  32. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +49 -54
  33. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +42 -51
  34. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +23 -36
  35. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +45 -57
  36. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +42 -60
  37. package/dist/extensions/Blocks/Items/controls/settingsControl.js +189 -196
  38. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -2
  39. package/dist/extensions/Blocks/Items/extension.js +8 -9
  40. package/dist/extensions/Blocks/Items/settingsPanel.js +10 -15
  41. package/dist/extensions/Blocks/Items/template.js +181 -175
  42. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +65 -65
  43. package/dist/extensions/Blocks/Recommendation/block.js +117 -27
  44. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +33 -31
  45. package/dist/extensions/Blocks/Recommendation/constants/layout.js +6 -4
  46. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +12 -10
  47. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +10 -14
  48. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +19 -27
  49. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +49 -44
  50. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +1 -3
  51. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +147 -102
  52. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +1 -5
  53. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +85 -43
  54. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +9 -13
  55. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +138 -117
  56. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +21 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +66 -34
  58. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +2 -2
  59. package/dist/extensions/Blocks/Recommendation/services/configService.js +2 -1
  60. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +248 -206
  61. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +26 -31
  62. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +1 -1
  63. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +31 -34
  64. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +20 -25
  65. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +22 -22
  66. package/dist/extensions/Blocks/Recommendation/templates/utils.js +52 -39
  67. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +10 -10
  68. package/dist/extensions/Blocks/Unsubscribe/block.js +29 -29
  69. package/dist/extensions/Blocks/Unsubscribe/control.js +12 -9
  70. package/dist/extensions/Blocks/Unsubscribe/elements/preview.js +13 -11
  71. package/dist/extensions/Blocks/Unsubscribe/styles.css.js +31 -1
  72. package/dist/extensions/Blocks/common-control.js +91 -92
  73. package/dist/extensions/ModulesTabIcons/extension.js +17 -0
  74. package/dist/guido.css +1 -1
  75. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +257 -187
  76. package/dist/package.json.js +1 -1
  77. package/dist/services/recommendationApi.js +11 -9
  78. package/dist/services/stripoApi.js +20 -17
  79. package/dist/services/templateLibraryApi.js +16 -13
  80. package/dist/src/@types/config/schemas.d.ts +8 -0
  81. package/dist/src/composables/useConfig.d.ts +4 -0
  82. package/dist/src/composables/useRecommendation.d.ts +1 -0
  83. package/dist/src/config/compiler/utils/recommendationCompilerUtils.d.ts +17 -0
  84. package/dist/src/config/i18n/en/index.d.ts +1 -0
  85. package/dist/src/config/i18n/index.d.ts +16 -0
  86. package/dist/src/enums/defaults.d.ts +4 -0
  87. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -1
  88. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -1
  89. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +5 -5
  90. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -1
  91. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -1
  92. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -1
  93. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -1
  94. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -1
  95. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -1
  96. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +0 -1
  97. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +0 -5
  98. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +10 -12
  99. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +2 -1
  100. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +44 -11
  101. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +2 -2
  102. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +6 -0
  103. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +4 -0
  104. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +8 -1
  105. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +27 -5
  106. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +22 -4
  107. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +9 -2
  108. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +29 -0
  109. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +19 -1
  110. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +2 -2
  111. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +138 -469
  112. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +2 -2
  113. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +4 -4
  114. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +2 -0
  115. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +2 -2
  116. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +2 -2
  117. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +16 -4
  118. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +14 -2
  119. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +1 -1
  120. package/dist/src/extensions/Blocks/Unsubscribe/control.d.ts +1 -0
  121. package/dist/src/extensions/Blocks/common-control.d.ts +4 -5
  122. package/dist/src/extensions/ModulesTabIcons/extension.d.ts +2 -0
  123. package/dist/src/stores/config.d.ts +36 -0
  124. package/dist/static/styles/components/notification.css.js +19 -0
  125. package/dist/static/styles/components/tools.css.js +6 -2
  126. package/dist/static/styles/components/version-history.css.js +10 -2
  127. package/dist/static/styles/components/wide-panel.css.js +18 -2
  128. package/dist/static/styles/customEditorStyle.css.js +10 -9
  129. package/dist/static/styles/variables.css.js +2 -0
  130. package/dist/static/templates/empty/index.html.js +74 -0
  131. package/dist/static/templates/empty/style.css.js +779 -0
  132. package/dist/stores/unsubscribe.js +37 -34
  133. package/dist/utils/pairProductVariables.js +57 -56
  134. package/dist/utils/templatePreparation.js +15 -14
  135. package/package.json +2 -2
  136. package/dist/extensions/Blocks/Items/store/items-block.js +0 -79
  137. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -45
  138. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +0 -16
@@ -9,7 +9,7 @@ import { type ElementRenderer } from '../utils';
9
9
  * @param composition - Array defining order of card elements
10
10
  * @returns HTML string for attribute-aligned rows
11
11
  */
12
- export declare function prepareVerticalAttributeRows(products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, composition?: string[]): string;
12
+ export declare function prepareGridAttributeRows(products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, composition?: string[]): string;
13
13
  /**
14
14
  * Prepares grid product rows with attribute-aligned structure
15
15
  * Groups products into rows, then generates attribute-aligned HTML for each group
@@ -19,7 +19,7 @@ export declare function prepareVerticalAttributeRows(products: RecommendationPro
19
19
  * @param composition - Array defining order of card elements
20
20
  * @returns HTML string for all product rows
21
21
  */
22
- export declare function prepareVerticalProductRows(products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, composition?: string[]): string;
22
+ export declare function prepareGridProductRows(products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, composition?: string[]): string;
23
23
  /**
24
24
  * Prepares grid product rows with attribute-aligned structure.
25
25
  * Uses row-based rendering where each attribute type forms a single row across all products.
@@ -29,5 +29,5 @@ export declare function prepareVerticalProductRows(products: RecommendationProdu
29
29
  * @returns HTML string for product rows
30
30
  */
31
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;
32
+ export declare function getDefaultTemplate(recommendationId?: number): string;
33
+ export declare function generateBlockTemplate(products: RecommendationProduct[], productsPerRow: number, title?: string, composition?: string[], mobileProductsPerRow?: number): string;
@@ -24,12 +24,14 @@ export { DEFAULTS, DEFAULT_CARD_COMPOSITION, DEFAULT_CARD_VISIBILITY, getDefault
24
24
  export declare function prepareProductRows(products: RecommendationProduct[], layout: Orientation, options?: PrepareProductRowsOptions): string;
25
25
  /**
26
26
  * Generates the default template for a given layout.
27
+ * Includes both desktop and mobile product containers for grid layouts.
27
28
  * @param layout - The layout orientation ('list' or 'grid')
28
29
  * @returns Complete HTML template with default products
29
30
  */
30
31
  export declare function getDefaultTemplate(layout?: Orientation): string;
31
32
  /**
32
33
  * Generates a complete block template with custom products.
34
+ * Includes both desktop and mobile product containers for grid layouts.
33
35
  * @param products - Array of products to display
34
36
  * @param layout - The layout orientation ('list' or 'grid')
35
37
  * @param title - Title for the block
@@ -1,8 +1,8 @@
1
1
  import type { ElementRenderer } from '../utils';
2
2
  /**
3
- * Horizontal element renderer
3
+ * List element renderer
4
4
  * - Image and Button return `<td>` cells for the 3-column layout
5
5
  * - Name and Prices return `<tr><td>` rows for the info cell table
6
6
  * All elements have esd-block-* classes for Stripo selection
7
7
  */
8
- export declare const horizontalElementRenderer: ElementRenderer;
8
+ export declare const listElementRenderer: ElementRenderer;
@@ -1,12 +1,12 @@
1
1
  import type { RecommendationProduct } from '@@/Types/recommendation';
2
2
  /**
3
3
  * Generates a list product card with 3-column layout
4
- * Uses horizontalElementRenderer to render Image, Info content, and Button
4
+ * Uses listElementRenderer to render Image, Info content, and Button
5
5
  * Layout: [Image (120px)] [Info table (flexible)] [Button (100px)]
6
6
  * @param product - The product data
7
7
  * @returns HTML string for a single product card row
8
8
  */
9
- export declare function getHorizontalProductCard(product: RecommendationProduct): string;
9
+ export declare function getListProductCard(product: RecommendationProduct): string;
10
10
  /**
11
11
  * Prepares list product rows
12
12
  * Each product is a full-width row with 3-column layout
@@ -7,6 +7,8 @@ export type Orientation = 'list' | 'grid';
7
7
  export interface PrepareProductRowsOptions {
8
8
  /** Number of products per row (only for grid layout, defaults to 3) */
9
9
  productsPerRow?: number;
10
+ /** Number of products per row on mobile (only for grid layout, defaults to 1) */
11
+ mobileProductsPerRow?: number;
10
12
  /** Array defining order of card elements */
11
13
  composition?: string[];
12
14
  }
@@ -44,11 +46,21 @@ export declare const PLACEHOLDER_IMAGE = "https://email-static.useinsider.com/st
44
46
  * @returns Sanitized HTTPS URL or placeholder
45
47
  */
46
48
  export declare function sanitizeImageUrl(url: string | undefined | null): string;
47
- export declare function getDefaultProducts(): RecommendationProduct[];
49
+ export declare function getDefaultProducts(count?: number): RecommendationProduct[];
48
50
  /**
49
51
  * Creates the block template wrapper HTML for recommendation blocks.
50
- * The template includes title placeholder and product container.
52
+ * The template includes title placeholder and both desktop/mobile product containers.
53
+ *
54
+ * The dual-container approach generates two `ins-recommendation-product-container` tables:
55
+ * - Desktop container: visible by default, hidden on mobile via CSS media query
56
+ * - Mobile container: hidden by default (`display: none`), shown on mobile
57
+ *
58
+ * Both share the `.ins-recommendation-product-container` class so existing selectors
59
+ * (spacing, background color, compiler rules) apply automatically to both.
51
60
  * @param layout - The layout orientation ('list' or 'grid')
52
- * @returns HTML template string with {-{-TITLE-}-} and {-{-PRODUCT_ROWS-}-} placeholders
61
+ * @param instanceClass - Optional instance-specific class (e.g., 'ins-recommendation-v3-block-1')
62
+ * for CSS scoping per block instance. Must be included in the initial template HTML because
63
+ * Stripo's Angular rendering manages the class attribute and overwrites dynamic setAttribute changes.
64
+ * @returns HTML template string with {-{-TITLE-}-}, {-{-PRODUCT_ROWS-}-}, and {-{-MOBILE_PRODUCT_ROWS-}-} placeholders
53
65
  */
54
- export declare function createBlockTemplate(layout?: Orientation): string;
66
+ export declare function createBlockTemplate(layout?: Orientation, instanceClass?: string): string;
@@ -89,11 +89,17 @@ export interface RecommendationNodeConfig {
89
89
  */
90
90
  layout: 'grid' | 'list';
91
91
  /**
92
- * Number of products per row (vertical layout only)
92
+ * Number of products per row (grid layout only)
93
93
  */
94
94
  cardsInRow: number;
95
95
  /**
96
- * Horizontal spacing between product cards in pixels (vertical layout only)
96
+ * Number of products per row on mobile (grid layout only)
97
+ * Only applicable when layout is 'grid'
98
+ * @default 1
99
+ */
100
+ mobileCardsInRow: number;
101
+ /**
102
+ * Horizontal spacing between product cards in pixels (grid layout only)
97
103
  */
98
104
  columnSpacing: number;
99
105
  /**
@@ -130,6 +136,12 @@ export interface RecommendationNodeConfig {
130
136
  * Increment when making breaking changes to schema
131
137
  */
132
138
  configVersion: number;
139
+ /**
140
+ * Unique identifier for this recommendation block instance
141
+ * Used to isolate per-block state in the Pinia store
142
+ * 0 = not yet assigned (default for new/migrating blocks)
143
+ */
144
+ recommendationId: number;
133
145
  }
134
146
  /**
135
147
  * Partial configuration for updates
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Captures and restores element styles during block regeneration.
5
5
  * This ensures user styling is preserved when:
6
- * - Layout changes (vertical <-> horizontal)
6
+ * - Layout changes (grid <-> list)
7
7
  * - Cards per row changes
8
8
  * - Composition order changes
9
9
  *
@@ -17,6 +17,7 @@ export declare class UnsubscribeControl extends Control {
17
17
  private _onButtonClick;
18
18
  private _onPrevClick;
19
19
  private _onNextClick;
20
+ private _loadAndUpdatePreview;
20
21
  private _updatePreview;
21
22
  private _updateCounter;
22
23
  private _getPreview;
@@ -66,14 +66,13 @@ export declare abstract class CommonControl extends Control {
66
66
  */
67
67
  protected getBlockInstanceId(): string | null;
68
68
  /**
69
- * Handles block instance change detection and syncing.
70
- * This is a helper method for controls that need to sync config when switching between block instances.
69
+ * Handles block instance change detection and UI updates.
70
+ * This is a helper method for controls that need to update UI when switching between block instances.
71
71
  * Uses Stripo V2 nodeConfig API for block instance tracking.
72
- * @param syncFunction - Function to call when block instance changes (to sync from node config)
73
- * @param updateUI - Function to call to update the UI (called both on change and when same block)
72
+ * @param updateUI - Function to call to update the UI (called on every update)
74
73
  * @returns true if block instance changed, false otherwise
75
74
  */
76
- protected handleBlockInstanceChange(syncFunction: (node: ImmutableHtmlNode) => void, updateUI: () => void): boolean;
75
+ protected handleBlockInstanceChange(updateUI: () => void): boolean;
77
76
  _GuLabel({ text, name }: LabelProps): string;
78
77
  _GuToggle(name: string): string;
79
78
  _GuSelectItem({ text, value }: {
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@stripoinc/ui-editor-extensions").Extension;
2
+ export default _default;
@@ -46,6 +46,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
46
46
  senderName: string;
47
47
  subject: string;
48
48
  };
49
+ savedModulesFolderName: string;
50
+ defaultModulesFolderName: string;
49
51
  };
50
52
  ui: {
51
53
  showHeader: boolean;
@@ -141,6 +143,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
141
143
  senderName: string;
142
144
  subject: string;
143
145
  };
146
+ savedModulesFolderName: string;
147
+ defaultModulesFolderName: string;
144
148
  };
145
149
  ui: {
146
150
  showHeader: boolean;
@@ -236,6 +240,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
236
240
  senderName: string;
237
241
  subject: string;
238
242
  };
243
+ savedModulesFolderName: string;
244
+ defaultModulesFolderName: string;
239
245
  };
240
246
  ui: {
241
247
  showHeader: boolean;
@@ -331,6 +337,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
331
337
  senderName: string;
332
338
  subject: string;
333
339
  };
340
+ savedModulesFolderName: string;
341
+ defaultModulesFolderName: string;
334
342
  };
335
343
  ui: {
336
344
  showHeader: boolean;
@@ -426,6 +434,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
426
434
  senderName: string;
427
435
  subject: string;
428
436
  };
437
+ savedModulesFolderName: string;
438
+ defaultModulesFolderName: string;
429
439
  };
430
440
  ui: {
431
441
  showHeader: boolean;
@@ -521,6 +531,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
521
531
  senderName: string;
522
532
  subject: string;
523
533
  };
534
+ savedModulesFolderName: string;
535
+ defaultModulesFolderName: string;
524
536
  };
525
537
  ui: {
526
538
  showHeader: boolean;
@@ -616,6 +628,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
616
628
  senderName: string;
617
629
  subject: string;
618
630
  };
631
+ savedModulesFolderName: string;
632
+ defaultModulesFolderName: string;
619
633
  };
620
634
  ui: {
621
635
  showHeader: boolean;
@@ -711,6 +725,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
711
725
  senderName: string;
712
726
  subject: string;
713
727
  };
728
+ savedModulesFolderName: string;
729
+ defaultModulesFolderName: string;
714
730
  };
715
731
  ui: {
716
732
  showHeader: boolean;
@@ -806,6 +822,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
806
822
  senderName: string;
807
823
  subject: string;
808
824
  };
825
+ savedModulesFolderName: string;
826
+ defaultModulesFolderName: string;
809
827
  };
810
828
  ui: {
811
829
  showHeader: boolean;
@@ -901,6 +919,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
901
919
  senderName: string;
902
920
  subject: string;
903
921
  };
922
+ savedModulesFolderName: string;
923
+ defaultModulesFolderName: string;
904
924
  };
905
925
  ui: {
906
926
  showHeader: boolean;
@@ -996,6 +1016,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
996
1016
  senderName: string;
997
1017
  subject: string;
998
1018
  };
1019
+ savedModulesFolderName: string;
1020
+ defaultModulesFolderName: string;
999
1021
  };
1000
1022
  ui: {
1001
1023
  showHeader: boolean;
@@ -1091,6 +1113,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1091
1113
  senderName: string;
1092
1114
  subject: string;
1093
1115
  };
1116
+ savedModulesFolderName: string;
1117
+ defaultModulesFolderName: string;
1094
1118
  };
1095
1119
  ui: {
1096
1120
  showHeader: boolean;
@@ -1186,6 +1210,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1186
1210
  senderName: string;
1187
1211
  subject: string;
1188
1212
  };
1213
+ savedModulesFolderName: string;
1214
+ defaultModulesFolderName: string;
1189
1215
  };
1190
1216
  ui: {
1191
1217
  showHeader: boolean;
@@ -1281,6 +1307,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1281
1307
  senderName: string;
1282
1308
  subject: string;
1283
1309
  };
1310
+ savedModulesFolderName: string;
1311
+ defaultModulesFolderName: string;
1284
1312
  };
1285
1313
  ui: {
1286
1314
  showHeader: boolean;
@@ -1376,6 +1404,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1376
1404
  senderName: string;
1377
1405
  subject: string;
1378
1406
  };
1407
+ savedModulesFolderName: string;
1408
+ defaultModulesFolderName: string;
1379
1409
  };
1380
1410
  ui: {
1381
1411
  showHeader: boolean;
@@ -1471,6 +1501,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1471
1501
  senderName: string;
1472
1502
  subject: string;
1473
1503
  };
1504
+ savedModulesFolderName: string;
1505
+ defaultModulesFolderName: string;
1474
1506
  };
1475
1507
  ui: {
1476
1508
  showHeader: boolean;
@@ -1566,6 +1598,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1566
1598
  senderName: string;
1567
1599
  subject: string;
1568
1600
  };
1601
+ savedModulesFolderName: string;
1602
+ defaultModulesFolderName: string;
1569
1603
  };
1570
1604
  ui: {
1571
1605
  showHeader: boolean;
@@ -1661,6 +1695,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1661
1695
  senderName: string;
1662
1696
  subject: string;
1663
1697
  };
1698
+ savedModulesFolderName: string;
1699
+ defaultModulesFolderName: string;
1664
1700
  };
1665
1701
  ui: {
1666
1702
  showHeader: boolean;
@@ -4,6 +4,7 @@ const n = `ue-notifications-container {
4
4
  bottom: 32px;
5
5
  top: unset;
6
6
  width: unset;
7
+ position: fixed;
7
8
  }
8
9
 
9
10
  ue-notifications-container ue-message + ue-message {
@@ -16,6 +17,24 @@ ue-notifications-container .alert-message-wrapper {
16
17
  padding: 16px 24px;
17
18
  }
18
19
 
20
+ ue-notifications-container .alert-message-wrapper.info,
21
+ ue-notifications-container .alert-message-wrapper.loader {
22
+ background-color: var(--guido-color-background-toaster-info) !important;
23
+ color: inherit;
24
+ }
25
+
26
+ .alert-message-wrapper .alert-message-main {
27
+ align-items: center;
28
+ }
29
+
30
+ ue-notifications-container ue-caption .caption {
31
+ color: var(--guido-color-white) !important;
32
+ }
33
+
34
+ ue-block-thumb-hint {
35
+ text-align: left;
36
+ }
37
+
19
38
  ue-notifications-container .alert-message-wrapper .alert-message-main .alert-message-content {
20
39
  width: calc(100% - 64px);
21
40
  }
@@ -1,4 +1,4 @@
1
- const o = `ue-emoji .emoji-tabs .active-smile-tab {
1
+ const e = `ue-emoji .emoji-tabs .active-smile-tab {
2
2
  border-color: var(--guido-color-primary-500);
3
3
  }
4
4
 
@@ -17,7 +17,11 @@ ue-insert-table .template-cell {
17
17
  border: 1px solid var(--guido-color-gray-300);
18
18
  box-shadow: var(--guido-box-shadow);
19
19
  }
20
+
21
+ .ue-popover.dark-tiny {
22
+ text-align: left !important;
23
+ }
20
24
  `;
21
25
  export {
22
- o as default
26
+ e as default
23
27
  };
@@ -1,4 +1,4 @@
1
- const o = `.patch-session-container {
1
+ const n = `.patch-session-container {
2
2
  row-gap: 16px;
3
3
  }
4
4
 
@@ -24,7 +24,15 @@ ue-vh-patch.selected .patch-wrapper {
24
24
  background-color: var(--guido-color-primary-100);
25
25
  box-shadow: 0 0 0 1px var(--guido-color-primary-500);
26
26
  }
27
+
28
+ .change-history-panel-wrapper .control-panel-header {
29
+ padding: 16px 0 16px 16px;
30
+ }
31
+
32
+ .change-history-panel-wrapper .header-control-panel-label {
33
+ grid-area: 1 / 1 / 2 / 12;
34
+ }
27
35
  `;
28
36
  export {
29
- o as default
37
+ n as default
30
38
  };
@@ -60,7 +60,6 @@ ue-control-panel,
60
60
 
61
61
  .control-panel-header {
62
62
  grid-template-columns: repeat(12, 1fr);
63
- padding: 16px 0px 16px 16px;
64
63
  }
65
64
 
66
65
  .control-panel-header > * {
@@ -94,7 +93,9 @@ ue-control-panel,
94
93
  .container.droppable-header-container ue-button:last-child {
95
94
  margin-right: 0;
96
95
  }
97
-
96
+ .container.droppable-header-container {
97
+ margin-top: 13px;
98
+ }
98
99
  .secondary-control-group {
99
100
  gap: 16px;
100
101
  }
@@ -133,6 +134,21 @@ ue-label.accent-dot:after {
133
134
  font-size: 13px;
134
135
  }
135
136
 
137
+ .e2e-container-video-size {
138
+ grid-template-columns: 1fr !important;
139
+ }
140
+
141
+ .e2e-container-video-size .control-shadow-wrapper:not(ue-button) {
142
+ display: flex;
143
+ width: 100%;
144
+ justify-content: flex-end;
145
+ background-color: transparent !important;
146
+ }
147
+
148
+ .e2e-container-video-size .control-shadow-wrapper input {
149
+ background-color: var(--guido-color-gray-0);
150
+ }
151
+
136
152
  .e2e-size,
137
153
  .e2e-timer-size {
138
154
  grid-auto-flow: row;
@@ -47,17 +47,18 @@ const n = `.esd-x,
47
47
  display: none !important;
48
48
  }
49
49
 
50
- /* Apply to the table cell (td) with text-trim-enabled class */
51
- .text-trim-enabled {
52
- max-width: 0 !important;
50
+ /* Mobile layout: hide mobile container by default in editor */
51
+ .ins-recommendation-mobile-container {
52
+ display: none;
53
53
  }
54
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;
55
+ /* Mobile layout: when Stripo mobile mode is active, swap containers */
56
+ .ue-mobile-mode .ins-recommendation-desktop-container {
57
+ display: none !important;
58
+ }
59
+
60
+ .ue-mobile-mode .ins-recommendation-mobile-container {
61
+ display: table !important;
61
62
  }
62
63
  `;
63
64
  export {
@@ -10,6 +10,7 @@ const o = `:host {
10
10
  --guido-color-gray-1: #F0F0F0;
11
11
  --guido-color-gray-0: #F9F9F9;
12
12
  --guido-color-neutral-800: #222938;
13
+ --guido-color-neutral-700: #2C3546;
13
14
  --guido-color-neutral-200: #DCDFE6;
14
15
  --guido-color-neutral-100: #EFF2F4;
15
16
  --guido-color-danger-300: #e84342;
@@ -25,6 +26,7 @@ const o = `:host {
25
26
  --guido-color-border-onpage-message-error: var(--guido-color-danger-500);
26
27
  --guido-color-background-toaster-success: #128745;
27
28
  --guido-color-background-toaster-error: var(--guido-color-danger-500);
29
+ --guido-color-background-toaster-info: var(--guido-color-neutral-700);
28
30
  --guido-color-background-toaster-warn: #D37400;
29
31
  }
30
32
  `;
@@ -0,0 +1,74 @@
1
+ const t = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html>
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta content="width=device-width, initial-scale=1" name="viewport">
7
+ <meta name="x-apple-disable-message-reformatting">
8
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
9
+ <meta content="telephone=no" name="format-detection">
10
+ <title></title>
11
+ <!--[if (mso 16)]><style type="text/css">a{text-decoration:none}</style><![endif]-->
12
+ <!--[if gte mso 9]><style>sup{font-size:100% !important}</style><![endif]-->
13
+ <!--[if gte mso 9]><style>sup{font-size:100% !important}</style><![endif]-->
14
+ <!--[if gte mso 9]><style>sup{font-size:100% !important}</style><![endif]-->
15
+ <!--[if gte mso 9]><style>sup{font-size:100% !important}</style><![endif]-->
16
+ <!--[if gte mso 9]><style>sup { font-size: 100% !important; }</style><![endif]-->
17
+ </head>
18
+
19
+ <body>
20
+ <div class="es-wrapper-color">
21
+ <!--[if gte mso 9]>
22
+ <v:background xmlns:v="urn:schemas-microsoft-com:vml" fill="t">
23
+ <v:fill type="tile" color="#f6f6f6"></v:fill>
24
+ </v:background>
25
+ <![endif]-->
26
+ <table class="es-wrapper" width="100%" cellspacing="0" cellpadding="0">
27
+ <tbody>
28
+ <tr>
29
+ <td class="esd-email-paddings" valign="top">
30
+ <table class="es-content esd-footer-popover" cellspacing="0" cellpadding="0" align="center">
31
+ <tbody>
32
+ <tr>
33
+ <td class="esd-stripe" align="center">
34
+ <table class="es-content-body" width="600" cellspacing="0" cellpadding="0" bgcolor="#ffffff" align="center">
35
+ <tbody>
36
+ <tr>
37
+ <td class="esd-structure es-p20" align="left">
38
+ <table cellpadding="0" cellspacing="0" width="100%">
39
+ <tbody>
40
+ <tr>
41
+ <td width="560" class="esd-container-frame" align="center" valign="top">
42
+ <table cellpadding="0" cellspacing="0" width="100%">
43
+ <tbody>
44
+ <tr>
45
+ <td align="center" class="esd-empty-container" style="display: none;"></td>
46
+ </tr>
47
+ </tbody>
48
+ </table>
49
+ </td>
50
+ </tr>
51
+ </tbody>
52
+ </table>
53
+ </td>
54
+ </tr>
55
+ </tbody>
56
+ </table>
57
+ </td>
58
+ </tr>
59
+ </tbody>
60
+ </table>
61
+ </td>
62
+ </tr>
63
+ </tbody>
64
+ </table>
65
+ </div>
66
+ <div style="position: absolute; left: -9999px; top: -9999px; margin: 0px;"></div>
67
+ <div style="position: absolute; left: -9999px; top: -9999px; margin: 0px; padding: 0px; border: 0px none; width: 1px;"></div>
68
+ </body>
69
+
70
+ </html>
71
+ `;
72
+ export {
73
+ t as default
74
+ };