@useinsider/guido 2.2.0-beta.fa4cec8 → 3.0.0-beta.0579d27

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 (125) hide show
  1. package/README.md +41 -2
  2. package/dist/@types/config/schemas.js +1 -1
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +66 -66
  5. package/dist/components/organisms/base/Toaster.vue.js +4 -4
  6. package/dist/components/organisms/base/Toaster.vue2.js +12 -9
  7. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +5 -5
  8. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue2.js +2 -2
  9. package/dist/components/organisms/extensions/recommendation/FilterItem.vue.js +11 -13
  10. package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +54 -23
  11. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.js +7 -5
  12. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +34 -21
  13. package/dist/components/organisms/extensions/recommendation/Filters.vue.js +11 -11
  14. package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +48 -36
  15. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue2.js +11 -9
  16. package/dist/components/organisms/header/EditorActions.vue.js +10 -8
  17. package/dist/components/organisms/header/EditorActions.vue2.js +40 -30
  18. package/dist/components/organisms/header/MigrationConfirmModal.vue.js +17 -0
  19. package/dist/components/organisms/header/MigrationConfirmModal.vue2.js +39 -0
  20. package/dist/composables/useRecommendation.js +9 -9
  21. package/dist/composables/useSave.js +16 -12
  22. package/dist/composables/useStripo.js +66 -62
  23. package/dist/composables/useStripoEventHandler.js +27 -12
  24. package/dist/composables/useSyncModuleExtractor.js +45 -0
  25. package/dist/config/compiler/utils/recommendationCompilerUtils.js +1 -1
  26. package/dist/config/i18n/en/labels.json.js +8 -3
  27. package/dist/config/i18n/en/tooltips.json.js +2 -1
  28. package/dist/config/migrator/itemsBlockMigrator.js +135 -131
  29. package/dist/config/migrator/recommendationMigrator.js +59 -55
  30. package/dist/enums/block.js +4 -0
  31. package/dist/enums/unsubscribe.js +25 -21
  32. package/dist/extensions/Blocks/Items/block.js +30 -21
  33. package/dist/extensions/Blocks/Items/iconsRegistry.js +7 -6
  34. package/dist/extensions/Blocks/Items/items.css.js +48 -0
  35. package/dist/extensions/Blocks/Recommendation/block.js +23 -14
  36. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +36 -33
  37. package/dist/extensions/Blocks/Recommendation/constants/layout.js +16 -14
  38. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +15 -13
  39. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +9 -9
  40. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +1 -1
  41. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +41 -29
  42. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +16 -16
  43. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +30 -32
  44. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +194 -104
  45. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +9 -9
  46. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +46 -38
  47. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +16 -16
  48. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +291 -217
  49. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +14 -14
  50. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +10 -10
  51. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +5 -5
  52. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +14 -14
  53. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +9 -9
  54. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +3 -3
  55. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +1 -1
  56. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +9 -9
  57. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +3 -3
  58. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +13 -13
  59. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +3 -3
  60. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +224 -98
  61. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +5 -4
  62. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +48 -0
  63. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +172 -85
  64. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +2 -2
  65. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +1 -1
  66. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +2 -2
  67. package/dist/extensions/Blocks/Recommendation/templates/utils.js +32 -32
  68. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +8 -8
  69. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +6 -6
  70. package/dist/extensions/Blocks/Recommendation/validation/filterSchema.js +29 -0
  71. package/dist/extensions/Blocks/Unsubscribe/settingsPanel.js +16 -17
  72. package/dist/extensions/Blocks/common-control.js +12 -4
  73. package/dist/guido.css +1 -1
  74. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +324 -218
  75. package/dist/package.json.js +1 -1
  76. package/dist/services/stripoApi.js +55 -19
  77. package/dist/src/@types/config/schemas.d.ts +1 -1
  78. package/dist/src/@types/events.d.ts +38 -2
  79. package/dist/src/@types/extensions/block.d.ts +2 -0
  80. package/dist/src/App.vue.d.ts +3 -1
  81. package/dist/src/components/Guido.vue.d.ts +2 -2
  82. package/dist/src/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +1 -0
  83. package/dist/src/components/organisms/extensions/recommendation/Filters.vue.d.ts +17 -1
  84. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
  85. package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -1
  86. package/dist/src/components/organisms/header/MigrationConfirmModal.vue.d.ts +6 -0
  87. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  88. package/dist/src/components/wrappers/WpModal.vue.d.ts +2 -2
  89. package/dist/src/composables/useGuidoActions.d.ts +1 -1
  90. package/dist/src/composables/useSave.d.ts +2 -2
  91. package/dist/src/composables/useStripo.d.ts +2 -2
  92. package/dist/src/composables/useSyncModuleExtractor.d.ts +4 -0
  93. package/dist/src/enums/block.d.ts +4 -0
  94. package/dist/src/enums/unsubscribe.d.ts +3 -0
  95. package/dist/src/extensions/Blocks/Items/block.d.ts +3 -1
  96. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +3 -1
  97. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +6 -0
  98. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +3 -3
  99. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +6 -2
  100. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +8 -1
  101. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +38 -10
  102. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +27 -14
  103. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +50 -17
  104. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +19 -2
  105. package/dist/src/extensions/Blocks/Recommendation/templates/grid/migration.d.ts +1 -1
  106. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +4 -2
  107. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +1 -1
  108. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +1 -1
  109. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +8 -0
  110. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +3 -3
  111. package/dist/src/extensions/Blocks/Recommendation/validation/filterSchema.d.ts +15 -0
  112. package/dist/src/extensions/Blocks/common-control.d.ts +5 -0
  113. package/dist/src/mock/api/settings.d.ts +2 -0
  114. package/dist/src/services/stripoApi.d.ts +5 -0
  115. package/dist/src/stores/editor.d.ts +23 -0
  116. package/dist/src/stores/template.d.ts +29 -0
  117. package/dist/src/utils/migrationBannerHtml.d.ts +2 -0
  118. package/dist/src/utils/templatePreparation.d.ts +1 -1
  119. package/dist/static/assets/info.svg.js +5 -0
  120. package/dist/static/styles/customEditorStyle.css.js +50 -23
  121. package/dist/stores/editor.js +2 -1
  122. package/dist/stores/template.js +15 -0
  123. package/dist/utils/migrationBannerHtml.js +21 -0
  124. package/dist/utils/templatePreparation.js +1 -1
  125. package/package.json +6 -5
@@ -20,30 +20,30 @@ const n = `.esd-x,
20
20
  }
21
21
  .ins-product-cart ue-node-actions,
22
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,
23
+ .recommendation-block-v2 .product-info-cell ue-node-actions,
24
+ .recommendation-block-v2 .product-info-cell ue-node-panel,
25
+ .recommendation-block-v2 .product-image-cell ue-node-actions,
26
+ .recommendation-block-v2 .product-image-cell ue-node-panel,
27
+ .recommendation-block-v2 .button-cell ue-node-actions,
28
+ .recommendation-block-v2 .button-cell ue-node-panel,
29
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,
30
+ .recommendation-block-v2 .product-card-segment ue-node-actions,
31
+ .recommendation-block-v2 .product-card-segment ue-node-panel,
32
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 {
33
+ .recommendation-block-v2 .product-image ue-node-actions,
34
+ .recommendation-block-v2 .product-image ue-node-panel,
35
+ .recommendation-block-v2 .product-name ue-node-actions,
36
+ .recommendation-block-v2 .product-name ue-node-panel,
37
+ .recommendation-block-v2 .product-price ue-node-actions,
38
+ .recommendation-block-v2 .product-price ue-node-panel,
39
+ .recommendation-block-v2 .product-old-price ue-node-actions,
40
+ .recommendation-block-v2 .product-old-price ue-node-panel,
41
+ .recommendation-block-v2 .product-omnibus-price ue-node-actions,
42
+ .recommendation-block-v2 .product-omnibus-price ue-node-panel,
43
+ .recommendation-block-v2 .product-omnibus-discount ue-node-actions,
44
+ .recommendation-block-v2 .product-omnibus-discount ue-node-panel,
45
+ .recommendation-block-v2 .product-button ue-node-actions,
46
+ .recommendation-block-v2 .product-button ue-node-panel {
47
47
  display: none !important;
48
48
  }
49
49
 
@@ -52,7 +52,7 @@ const n = `.esd-x,
52
52
  display: none;
53
53
  }
54
54
 
55
- /* Mobile layout: when Stripo mobile mode is active, swap containers */
55
+ /* Mobile layout: when Stripo mobile mode is active, swap containers (grid layout only) */
56
56
  .ue-mobile-mode .ins-recommendation-desktop-container {
57
57
  display: none !important;
58
58
  }
@@ -60,6 +60,33 @@ const n = `.esd-x,
60
60
  .ue-mobile-mode .ins-recommendation-mobile-container {
61
61
  display: table !important;
62
62
  }
63
+
64
+ /* List layout: keep desktop container visible in mobile mode (list rows are inherently responsive)
65
+ Uses class selector instead of [data-layout="list"] for Gmail compatibility */
66
+ .ue-mobile-mode .ins-recommendation-list-layout .ins-recommendation-desktop-container {
67
+ display: table !important;
68
+ }
69
+
70
+ .ue-mobile-mode .ins-recommendation-list-layout .ins-recommendation-mobile-container {
71
+ display: none !important;
72
+ }
73
+
74
+ /* List layout mobile: reduce image and button width for better text readability */
75
+ .ue-mobile-mode .ins-recommendation-list-layout .product-image-cell {
76
+ width: 80px !important;
77
+ }
78
+
79
+ .ue-mobile-mode .ins-recommendation-list-layout .product-image-cell img {
80
+ max-width: 80px !important;
81
+ }
82
+
83
+ .ue-mobile-mode .ins-recommendation-list-layout .button-cell {
84
+ width: 80px !important;
85
+ }
86
+
87
+ .ue-mobile-mode .ins-recommendation-list-layout .product-info-cell {
88
+ padding: 5px 8px !important;
89
+ }
63
90
  `;
64
91
  export {
65
92
  n as default
@@ -9,7 +9,8 @@ const o = e("guidoEditor", {
9
9
  editorVisualMode: "desktop",
10
10
  hasChanges: !1,
11
11
  isStripoInitialized: !1,
12
- templateId: ""
12
+ templateId: "",
13
+ syncModulesEnabled: !1
13
14
  }),
14
15
  getters: {
15
16
  // Middle Slot
@@ -0,0 +1,15 @@
1
+ import { BlockId as e } from "../enums/block.js";
2
+ import { defineStore as i } from "pinia";
3
+ const a = i("guidoTemplate", {
4
+ state: () => ({
5
+ migrations: {}
6
+ }),
7
+ getters: {
8
+ hasMigrations: (t) => Object.values(t.migrations).some((o) => (o ?? 0) > 0),
9
+ hasRecommendationMigrations: (t) => (t.migrations[e.Recommendation] ?? 0) > 0,
10
+ hasItemsMigrations: (t) => (t.migrations[e.Items] ?? 0) > 0
11
+ }
12
+ });
13
+ export {
14
+ a as useTemplateStore
15
+ };
@@ -0,0 +1,21 @@
1
+ import { useTemplateStore as o } from "../stores/template.js";
2
+ import { UIElementType as i, UEAttr as r } from "../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
3
+ function g(t, n, e) {
4
+ return (o().migrations[t] ?? 0) <= 0 ? "" : `<div>
5
+ <div style="display: flex; align-items: center;">
6
+ <span>${n}</span>
7
+ </div>
8
+ <div class="${t}-migration-info">
9
+ <${i.ICON}
10
+ ${r.ICON.src}="migration-info-icon"
11
+ class="${t}-migration-info__icon">
12
+ </${i.ICON}>
13
+ <p class="${t}-migration-info__text">
14
+ ${e}
15
+ </p>
16
+ </div>
17
+ </div>`;
18
+ }
19
+ export {
20
+ g as getMigrationBannerHtml
21
+ };
@@ -24,7 +24,7 @@ const E = () => {
24
24
  css: p,
25
25
  ampHtml: r,
26
26
  ampErrors: c,
27
- modules: u,
27
+ modules: u.map(Number),
28
28
  recommendation: {
29
29
  campaignUrls: b.recommendationCampaignUrls,
30
30
  configs: {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "2.2.0-beta.fa4cec8",
3
+ "version": "3.0.0-beta.0579d27",
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",
@@ -25,14 +25,15 @@
25
25
  "lint:fix": "NODE_OPTIONS=--max-old-space-size=2048 eslint --fix ./",
26
26
  "type-check": "vue-tsc --noEmit --project tsconfig.config.json && vue-tsc --noEmit --project tsconfig.app.json",
27
27
  "test:visual-update": "npx playwright test --update-snapshots --reporter html",
28
- "prepare": "husky"
28
+ "prepare": "husky",
29
+ "preinstall": "rm -rf ./node_modules/.vite"
29
30
  },
30
31
  "keywords": [],
31
32
  "author": "",
32
33
  "license": "ISC",
33
34
  "dependencies": {
34
- "@stripoinc/ui-editor-extensions": "3.5.0",
35
- "@useinsider/design-system-vue": "0.14.20",
35
+ "@stripoinc/ui-editor-extensions": "3.7.0",
36
+ "@useinsider/design-system-vue": "0.14.28",
36
37
  "@vueuse/core": "11.3.0",
37
38
  "lodash-es": "4.17.21",
38
39
  "pinia": "2.3.1",
@@ -85,7 +86,7 @@
85
86
  },
86
87
  "guido": {
87
88
  "stripo": {
88
- "version": "2.54.0"
89
+ "version": "2.59.0"
89
90
  }
90
91
  }
91
92
  }