@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
@@ -1,12 +1,12 @@
1
- var r = Object.defineProperty;
2
- var n = (i, t, e) => t in i ? r(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e;
3
- var s = (i, t, e) => n(i, typeof t != "symbol" ? t + "" : t, e);
4
- import { UIElement as m } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- const E = "unsubscribe-preview", l = "img", c = "Unsubscribe page preview";
6
- class o extends m {
1
+ var n = Object.defineProperty;
2
+ var m = (s, i, e) => i in s ? n(s, i, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[i] = e;
3
+ var r = (s, i, e) => m(s, typeof i != "symbol" ? i + "" : i, e);
4
+ import { UIElement as l } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ const E = "unsubscribe-preview", c = "img", a = "Unsubscribe page preview", g = "is-loaded";
6
+ class d extends l {
7
7
  constructor() {
8
8
  super(...arguments);
9
- s(this, "imgElement");
9
+ r(this, "imgElement");
10
10
  }
11
11
  getId() {
12
12
  return E;
@@ -14,19 +14,21 @@ class o extends m {
14
14
  getTemplate() {
15
15
  return `
16
16
  <div class="unsubscribe-preview-image-container">
17
+ <div class="unsubscribe-preview-loader"></div>
17
18
  <img
18
19
  src=""
19
- alt="${c}"
20
+ alt="${a}"
20
21
  class="unsubscribe-preview-image"
21
22
  />
22
23
  </div>
23
24
  `;
24
25
  }
25
26
  onRender(e) {
26
- this.imgElement = e.querySelector(l);
27
+ this.imgElement = e.querySelector(c);
27
28
  }
28
29
  setValue(e) {
29
- this.imgElement && (this.imgElement.src = e);
30
+ var t;
31
+ this.imgElement && (this.imgElement.src = e, (t = this.imgElement.parentElement) == null || t.classList.add(g));
30
32
  }
31
33
  getValue() {
32
34
  var e;
@@ -38,5 +40,5 @@ class o extends m {
38
40
  }
39
41
  export {
40
42
  E as PREVIEW_UI_ELEMENT_ID,
41
- o as PreviewUIElement
43
+ d as PreviewUIElement
42
44
  };
@@ -29,12 +29,42 @@ const n = `/* Unsubscribe Extension Styles */
29
29
  display: flex;
30
30
  align-items: center;
31
31
  justify-content: center;
32
+ position: relative;
32
33
  }
33
34
 
34
- .unsubscribe-preview-image {
35
+ .unsubscribe-preview-image-container .unsubscribe-preview-image {
35
36
  object-fit: cover;
36
37
  width: 100%;
37
38
  height: auto;
39
+ display: none;
40
+ }
41
+
42
+ .unsubscribe-preview-image-container.is-loaded .unsubscribe-preview-image {
43
+ display: block;
44
+ }
45
+
46
+ .unsubscribe-preview-image-container.is-loaded .unsubscribe-preview-loader {
47
+ display: none;
48
+ }
49
+
50
+ /* Loading shimmer */
51
+ .unsubscribe-preview-loader {
52
+ width: 100%;
53
+ height: 200px;
54
+ border-radius: 4px;
55
+ background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
56
+ background-size: 200% 100%;
57
+ animation: unsubscribe-shimmer 1.5s infinite;
58
+ }
59
+
60
+ @keyframes unsubscribe-shimmer {
61
+ 0% {
62
+ background-position: 200% 0;
63
+ }
64
+
65
+ 100% {
66
+ background-position: -200% 0;
67
+ }
38
68
  }
39
69
  `;
40
70
  export {
@@ -1,8 +1,8 @@
1
1
  var I = Object.defineProperty;
2
- var c = (T, r, e) => r in T ? I(T, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : T[r] = e;
3
- var u = (T, r, e) => c(T, typeof r != "symbol" ? r + "" : r, e);
4
- import { Control as O, UIElementType as t, UEAttr as $ } from "../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- class _ extends O {
2
+ var O = (T, r, e) => r in T ? I(T, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : T[r] = e;
3
+ var u = (T, r, e) => O(T, typeof r != "symbol" ? r + "" : r, e);
4
+ import { Control as c, UIElementType as n, UEAttr as $ } from "../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ class _ extends c {
6
6
  constructor() {
7
7
  super(...arguments);
8
8
  u(this, "currentNode");
@@ -33,101 +33,100 @@ class _ extends O {
33
33
  const e = this.getItemsBlockContainer();
34
34
  if (!e)
35
35
  return null;
36
- const n = e.getNodeConfig();
37
- return n && typeof n.blockInstanceId == "string" ? n.blockInstanceId : null;
36
+ const t = e.getNodeConfig();
37
+ return t && typeof t.blockInstanceId == "string" ? t.blockInstanceId : null;
38
38
  }
39
39
  /**
40
- * Handles block instance change detection and syncing.
41
- * This is a helper method for controls that need to sync config when switching between block instances.
40
+ * Handles block instance change detection and UI updates.
41
+ * This is a helper method for controls that need to update UI when switching between block instances.
42
42
  * Uses Stripo V2 nodeConfig API for block instance tracking.
43
- * @param syncFunction - Function to call when block instance changes (to sync from node config)
44
- * @param updateUI - Function to call to update the UI (called both on change and when same block)
43
+ * @param updateUI - Function to call to update the UI (called on every update)
45
44
  * @returns true if block instance changed, false otherwise
46
45
  */
47
- handleBlockInstanceChange(e, n) {
48
- const E = this.getBlockInstanceId();
49
- if (!E)
46
+ handleBlockInstanceChange(e) {
47
+ const t = this.getBlockInstanceId();
48
+ if (!t)
50
49
  return !1;
51
- const o = E !== this.lastBlockInstanceId;
52
- return o ? (this.currentNode && e(this.currentNode), n(), this.lastBlockInstanceId = E) : n(), o;
50
+ const E = t !== this.lastBlockInstanceId;
51
+ return e(), E && (this.lastBlockInstanceId = t), E;
53
52
  }
54
- _GuLabel({ text: e, name: n = "" }) {
53
+ _GuLabel({ text: e, name: t = "" }) {
55
54
  return `
56
- <${t.LABEL}
55
+ <${n.LABEL}
57
56
  ${$.LABEL.text}="${e}"
58
- ${$.LABEL.name}="${n || `${e} Label`}">
59
- </${t.LABEL}>
57
+ ${$.LABEL.name}="${t || `${e} Label`}">
58
+ </${n.LABEL}>
60
59
  `;
61
60
  }
62
61
  _GuToggle(e) {
63
62
  return `
64
- <${t.SWITCHER}
63
+ <${n.SWITCHER}
65
64
  ${$.SWITCHER.name}="${e}">
66
- </${t.SWITCHER}>
65
+ </${n.SWITCHER}>
67
66
  `;
68
67
  }
69
- _GuSelectItem({ text: e, value: n }) {
68
+ _GuSelectItem({ text: e, value: t }) {
70
69
  return `
71
- <${t.SELECT_ITEM}
70
+ <${n.SELECT_ITEM}
72
71
  ${$.SELECT_ITEM.text}="${e}"
73
- ${$.SELECT_ITEM.value}="${n}">
74
- </${t.SELECT_ITEM}>`;
72
+ ${$.SELECT_ITEM.value}="${t}">
73
+ </${n.SELECT_ITEM}>`;
75
74
  }
76
- _GuSelect({ name: e, placeholder: n, options: E, className: o = "es-180w" }) {
75
+ _GuSelect({ name: e, placeholder: t, options: E, className: o = "es-180w" }) {
77
76
  return `
78
- <${t.SELECTPICKER}
77
+ <${n.SELECTPICKER}
79
78
  class="${o}"
80
79
  ${$.SELECTPICKER.name}="${e}"
81
- ${$.SELECTPICKER.placeholder}="${n}">
80
+ ${$.SELECTPICKER.placeholder}="${t}">
82
81
  ${E.map((a) => this._GuSelectItem(a)).join("")}
83
- </${t.SELECTPICKER}>
82
+ </${n.SELECTPICKER}>
84
83
  `;
85
84
  }
86
- _GuTextInput({ name: e, placeholder: n, className: E = "", disabled: o = !1 }) {
85
+ _GuTextInput({ name: e, placeholder: t, className: E = "", disabled: o = !1 }) {
87
86
  return `
88
- <${t.TEXT}
87
+ <${n.TEXT}
89
88
  class=${E}
90
89
  ${$.TEXT.name}="${e}"
91
- placeholder="${n || e}"
90
+ placeholder="${t || e}"
92
91
  ${o ? `${$.TEXT.disabled}="true"` : ""}>
93
- </${t.TEXT}>
92
+ </${n.TEXT}>
94
93
  `;
95
94
  }
96
- _GuCounter({ name: e, maxValue: n, minValue: E = 1, step: o = 1 }) {
95
+ _GuCounter({ name: e, maxValue: t, minValue: E = 1, step: o = 1 }) {
97
96
  return `
98
- <${t.COUNTER}
97
+ <${n.COUNTER}
99
98
  ${$.COUNTER.name}="${e}"
100
99
  ${$.COUNTER.minValue}="${E}"
101
- ${$.COUNTER.maxValue}="${n}"
100
+ ${$.COUNTER.maxValue}="${t}"
102
101
  ${$.COUNTER.step}="${o}">
103
- </${t.COUNTER}>
102
+ </${n.COUNTER}>
104
103
  `;
105
104
  }
106
- _GuRadioButtonItem({ text: e, value: n, icon: E }) {
105
+ _GuRadioButtonItem({ text: e, value: t, icon: E }) {
107
106
  return `
108
- <${t.RADIO_ITEM}
109
- ${$.RADIO_ITEM.value}="${n}"
107
+ <${n.RADIO_ITEM}
108
+ ${$.RADIO_ITEM.value}="${t}"
110
109
  ${e ? `${$.RADIO_ITEM.text}="${e}"` : ""}
111
110
  ${E ? `${$.RADIO_ITEM.icon}="${E}"` : ""}>
112
- </${t.RADIO_ITEM}>
111
+ </${n.RADIO_ITEM}>
113
112
  `;
114
113
  }
115
- _GuRadioButton({ name: e, buttons: n, id: E = "" }) {
114
+ _GuRadioButton({ name: e, buttons: t, id: E = "" }) {
116
115
  return `
117
- <${t.RADIO_BUTTONS}
116
+ <${n.RADIO_BUTTONS}
118
117
  ${E ? `id="${E}"` : ""}
119
118
  ${$.RADIO_BUTTONS.name}="${e}">
120
- ${n.map((o) => this._GuRadioButtonItem(o)).join("")}
121
- </${t.RADIO_BUTTONS}>
119
+ ${t.map((o) => this._GuRadioButtonItem(o)).join("")}
120
+ </${n.RADIO_BUTTONS}>
122
121
  `;
123
122
  }
124
- _GuButton({ name: e, label: n, id: E = "" }) {
123
+ _GuButton({ name: e, label: t, id: E = "" }) {
125
124
  return `
126
- <${t.BUTTON}
125
+ <${n.BUTTON}
127
126
  ${$.BUTTON.name}="${e}"
128
127
  ${E ? `id="${E}"` : ""}
129
- ${$.BUTTON.caption}="${n}"}>
130
- </${t.BUTTON}>
128
+ ${$.BUTTON.caption}="${t}"}>
129
+ </${n.BUTTON}>
131
130
  `;
132
131
  }
133
132
  /**
@@ -135,25 +134,25 @@ class _ extends O {
135
134
  * @param param0
136
135
  * @returns It returns a button with an icon.
137
136
  */
138
- _GuIconButton({ name: e, icon: n, className: E = "" }) {
137
+ _GuIconButton({ name: e, icon: t, className: E = "" }) {
139
138
  return `
140
- <${t.BUTTON}
139
+ <${n.BUTTON}
141
140
  class="${E}"
142
141
  ${$.BUTTON.name}="${e}"
143
- ${$.BUTTON.icon}="${n}">
144
- </${t.BUTTON}>
142
+ ${$.BUTTON.icon}="${t}">
143
+ </${n.BUTTON}>
145
144
  `;
146
145
  }
147
- _GuOneColumn(e, n = "") {
146
+ _GuOneColumn(e, t = "") {
148
147
  return `
149
- <div class="container one-column ${n}">
148
+ <div class="container one-column ${t}">
150
149
  ${e.join("")}
151
150
  </div>
152
151
  `;
153
152
  }
154
- _GuTwoColumns(e, n = "") {
153
+ _GuTwoColumns(e, t = "") {
155
154
  return `
156
- <div class="container two-columns ${n}">
155
+ <div class="container two-columns ${t}">
157
156
  ${e.join("")}
158
157
  </div>
159
158
  `;
@@ -165,79 +164,79 @@ class _ extends O {
165
164
  * @param itemLabels - Optional array of objects with key and label properties for display
166
165
  * @returns HTML string for the orderable control
167
166
  */
168
- _GuOrderable(e, n) {
167
+ _GuOrderable(e, t) {
169
168
  let E = "";
170
- n.forEach((a) => {
169
+ t.forEach((a) => {
171
170
  const l = $.ORDERABLE_ITEM && "name" in $.ORDERABLE_ITEM ? $.ORDERABLE_ITEM.name : "name";
172
171
  E += `
173
- <${t.ORDERABLE_ITEM} ${l}="${a.key}">
172
+ <${n.ORDERABLE_ITEM} ${l}="${a.key}">
174
173
  ${a.content}
175
- </${t.ORDERABLE_ITEM}>
174
+ </${n.ORDERABLE_ITEM}>
176
175
  `;
177
176
  });
178
177
  const o = $.ORDERABLE && "name" in $.ORDERABLE ? $.ORDERABLE.name : "name";
179
178
  return `
180
- <${t.ORDERABLE} ${o}="${e}">
179
+ <${n.ORDERABLE} ${o}="${e}">
181
180
  ${E}
182
- </${t.ORDERABLE}>
181
+ </${n.ORDERABLE}>
183
182
  `;
184
183
  }
185
- _GuNestedControl(e, n) {
184
+ _GuNestedControl(e, t) {
186
185
  return `
187
- <${t.NESTED_CONTROL} ${$.NESTED_CONTROL.controlId}="${e}">
188
- ${n}
189
- </${t.NESTED_CONTROL}>
186
+ <${n.NESTED_CONTROL} ${$.NESTED_CONTROL.controlId}="${e}">
187
+ ${t}
188
+ </${n.NESTED_CONTROL}>
190
189
  `;
191
190
  }
192
- _GuExpandable(e, n) {
191
+ _GuExpandable(e, t) {
193
192
  return `
194
- <${t.EXPANDABLE}>
195
- <${t.EXPANDABLE_HEADER}>
196
- <${t.LABEL} ${$.LABEL.text}="${e}"></${t.LABEL}>
197
- </${t.EXPANDABLE_HEADER}>
198
- <${t.EXPANDABLE_CONTENT}>
193
+ <${n.EXPANDABLE}>
194
+ <${n.EXPANDABLE_HEADER}>
195
+ <${n.LABEL} ${$.LABEL.text}="${e}"></${n.LABEL}>
196
+ </${n.EXPANDABLE_HEADER}>
197
+ <${n.EXPANDABLE_CONTENT}>
199
198
 
200
- ${n}
199
+ ${t}
201
200
 
202
- </${t.EXPANDABLE_CONTENT}>
203
- </${t.EXPANDABLE}>
201
+ </${n.EXPANDABLE_CONTENT}>
202
+ </${n.EXPANDABLE}>
204
203
  `;
205
204
  }
206
205
  _GuColorPicker(e) {
207
206
  return `
208
- <${t.COLOR}
207
+ <${n.COLOR}
209
208
  ${$.COLOR.name}="${e}">
210
- </${t.COLOR}>
209
+ </${n.COLOR}>
211
210
  `;
212
211
  }
213
- _GuFontFamily(e, n = "Select Font") {
212
+ _GuFontFamily(e, t = "Select Font") {
214
213
  return `
215
- <${t.FONT_FAMILY_SELECT}
214
+ <${n.FONT_FAMILY_SELECT}
216
215
  ${$.FONT_FAMILY_SELECT.name}="${e}"
217
- ${$.FONT_FAMILY_SELECT.placeholder}="${n}">
218
- </${t.FONT_FAMILY_SELECT}>
216
+ ${$.FONT_FAMILY_SELECT.placeholder}="${t}">
217
+ </${n.FONT_FAMILY_SELECT}>
219
218
  `;
220
219
  }
221
- _GuRadioButtons(e, n) {
222
- const E = n.map((o) => `
223
- <${t.RADIO_ITEM}
220
+ _GuRadioButtons(e, t) {
221
+ const E = t.map((o) => `
222
+ <${n.RADIO_ITEM}
224
223
  ${$.RADIO_ITEM.text}="${o.text}"
225
224
  ${$.RADIO_ITEM.value}="${o.value}">
226
- </${t.RADIO_ITEM}>
225
+ </${n.RADIO_ITEM}>
227
226
  `).join("");
228
227
  return `
229
- <${t.RADIO_BUTTONS}
228
+ <${n.RADIO_BUTTONS}
230
229
  ${$.RADIO_BUTTONS.name}="${e}">
231
230
  ${E}
232
- </${t.RADIO_BUTTONS}>
231
+ </${n.RADIO_BUTTONS}>
233
232
  `;
234
233
  }
235
- _GuCheckbox(e, n) {
234
+ _GuCheckbox(e, t) {
236
235
  return `
237
- <${t.CHECKBOX}
236
+ <${n.CHECKBOX}
238
237
  ${$.CHECKBOX.name}="${e}"
239
- ${$.CHECKBOX.caption}="${n}">
240
- </${t.CHECKBOX}>
238
+ ${$.CHECKBOX.caption}="${t}">
239
+ </${n.CHECKBOX}>
241
240
  `;
242
241
  }
243
242
  }
@@ -0,0 +1,17 @@
1
+ import { ModuleFolderDefaults as n } from "../../enums/defaults.js";
2
+ import { ExtensionBuilder as t, BlocksPanel as r } from "../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
3
+ class u extends r {
4
+ getModulesTabIconName(o) {
5
+ const { key: e } = o, { SAVED_MODULES: l, DEFAULT_MODULES: s } = n;
6
+ if (e.includes(l))
7
+ return "user-profile";
8
+ if (e.includes(s))
9
+ return "modules";
10
+ if (e === "amp_modules")
11
+ return "mail-template";
12
+ }
13
+ }
14
+ const c = new t().withBlocksPanel(u).build();
15
+ export {
16
+ c as default
17
+ };
package/dist/guido.css CHANGED
@@ -1 +1 @@
1
- .gap-16[data-v-6562e38c],.gap-16[data-v-1ccb6d4a]{gap:16px}[data-v-cd76c125] .in-button-v2__wrapper{line-height:0}[data-v-22226124] .in-segments-wrapper__button_selected,[data-v-22226124] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb;color:#0010ac;border-color:#0010ac}[data-v-913a3417] .in-progress-wrapper__progress p span:last-child{display:none!important}.view-options-wrapper[data-v-195ab6d4]{position:relative;display:inline-block}.new-tag[data-v-195ab6d4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-195ab6d4] .guido__view-option-selection-desktop svg,[data-v-195ab6d4] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-195ab6d4] .in-segments-wrapper__button_selected,[data-v-195ab6d4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-195ab6d4] .in-tooltip-wrapper__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-64c52560]{gap:8px}.version-history__toolbar[data-v-64c52560]{gap:4px}.view-options-wrapper[data-v-d405ca59]{position:relative;display:inline-block}.new-tag[data-v-d405ca59]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-d405ca59] .guido__verion-history-view-option-selection-desktop svg,[data-v-d405ca59] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-d405ca59] .in-segments-wrapper__button_selected,[data-v-d405ca59] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-d405ca59] .in-tooltip-wrapper__icon{cursor:pointer}.editor-actions[data-v-17dd4d8b]{gap:4px}.header-wrapper[data-v-5df46e7a]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-890b5336]{position:relative;width:100%;height:calc(100vh - 128px)}.guido-editor__container[data-v-890b5336]{width:100%;height:calc(100vh - 128px)}.guido-editor__no-header[data-v-890b5336]{height:calc(100vh - 75px)}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-a86fc486]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-a86fc486]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-a86fc486]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-a86fc486]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-a86fc486]{object-fit:cover;transform:scale(1)}[data-v-43c617a7] .guido__verion-history-view-option-selection-desktop svg,[data-v-43c617a7] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-43c617a7] .in-segments-wrapper__button_selected,[data-v-43c617a7] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.error-list[data-v-c3fd5d4b]{gap:16px}.desktop-browser-header[data-v-d86c5af5]{height:79px;min-height:79px}.desktop-browser-header__left[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:378px}.desktop-browser-header__center[data-v-d86c5af5]{height:79px;background-repeat:repeat-x;background-size:auto 100%;background-position:left top}.desktop-browser-header__right[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:112px}.desktop-preview[data-v-988f8da6]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-988f8da6]{min-height:504px}.iframe-wrapper[data-v-e0424e99]{width:258px}.iframe-scaled[data-v-e0424e99]{width:320px;height:124.0310077519%;transform:scale(.80625);transform-origin:top left}.cropped-text[data-v-eb3d05d7]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-preview-wrapper__phone[data-v-3f472f96]{width:282px}.mobile-preview-wrapper__phone img[data-v-3f472f96]{object-fit:cover;border-radius:44px}.mobile-preview-wrapper__content[data-v-3f472f96]{width:258px;height:450px;left:12px}[data-v-d3c52b44] .vueperslides__bullets,[data-v-dd1a237a] .vueperslides__bullets{pointer-events:none!important}[data-v-dd1a237a] .vueperslides__parallax-wrapper{height:110px!important}[data-v-a408dcea] .vueperslides__bullets{pointer-events:none!important}[data-v-a408dcea] .vueperslides__parallax-wrapper{height:110px!important}
1
+ .gap-16[data-v-6562e38c],.gap-16[data-v-1ccb6d4a]{gap:16px}[data-v-cd76c125] .in-button-v2__wrapper{line-height:0}[data-v-22226124] .in-segments-wrapper__button_selected,[data-v-22226124] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb;color:#0010ac;border-color:#0010ac}[data-v-913a3417] .in-progress-wrapper__progress p span:last-child{display:none!important}.view-options-wrapper[data-v-195ab6d4]{position:relative;display:inline-block}.new-tag[data-v-195ab6d4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-195ab6d4] .guido__view-option-selection-desktop svg,[data-v-195ab6d4] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-195ab6d4] .in-segments-wrapper__button_selected,[data-v-195ab6d4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-195ab6d4] .in-tooltip-wrapper__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-64c52560]{gap:8px}.version-history__toolbar[data-v-64c52560]{gap:4px}.view-options-wrapper[data-v-d405ca59]{position:relative;display:inline-block}.new-tag[data-v-d405ca59]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-d405ca59] .guido__verion-history-view-option-selection-desktop svg,[data-v-d405ca59] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-d405ca59] .in-segments-wrapper__button_selected,[data-v-d405ca59] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-d405ca59] .in-tooltip-wrapper__icon{cursor:pointer}.editor-actions[data-v-17dd4d8b]{gap:4px}.header-wrapper[data-v-5c02dcc7]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-16abb398]{position:relative;width:100%;height:calc(100vh - 128px)}.guido-editor__container[data-v-16abb398]{width:100%;height:calc(100vh - 128px)}.guido-editor__no-header[data-v-16abb398]{height:calc(100vh - 75px)}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-df672485]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-df672485]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-df672485]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-df672485]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-df672485]{object-fit:cover;transform:scale(1)}[data-v-43c617a7] .guido__verion-history-view-option-selection-desktop svg,[data-v-43c617a7] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-43c617a7] .in-segments-wrapper__button_selected,[data-v-43c617a7] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.error-list[data-v-c3fd5d4b]{gap:16px}.desktop-browser-header[data-v-d86c5af5]{height:79px;min-height:79px}.desktop-browser-header__left[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:378px}.desktop-browser-header__center[data-v-d86c5af5]{height:79px;background-repeat:repeat-x;background-size:auto 100%;background-position:left top}.desktop-browser-header__right[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:112px}.desktop-preview[data-v-988f8da6]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-988f8da6]{min-height:504px}.iframe-wrapper[data-v-e0424e99]{width:258px}.iframe-scaled[data-v-e0424e99]{width:320px;height:124.0310077519%;transform:scale(.80625);transform-origin:top left}.cropped-text[data-v-eb3d05d7]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-preview-wrapper__phone[data-v-3f472f96]{width:282px}.mobile-preview-wrapper__phone img[data-v-3f472f96]{object-fit:cover;border-radius:44px}.mobile-preview-wrapper__content[data-v-3f472f96]{width:258px;height:450px;left:12px}[data-v-d3c52b44] .vueperslides__bullets,[data-v-dd1a237a] .vueperslides__bullets{pointer-events:none!important}[data-v-dd1a237a] .vueperslides__parallax-wrapper{height:110px!important}[data-v-a408dcea] .vueperslides__bullets{pointer-events:none!important}[data-v-a408dcea] .vueperslides__parallax-wrapper{height:110px!important}