@useinsider/guido 2.1.0-beta.aa05b06 → 2.1.0-beta.acbfaec

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.
package/README.md CHANGED
@@ -122,8 +122,8 @@ const config: GuidoConfigInput = {
122
122
  senderName?: string,
123
123
  subject?: string,
124
124
  },
125
- savedModulesFolderName?: string, // Default: 'savedModules' - folder name for user-saved modules
126
- defaultModulesFolderName?: string, // Default: 'defaultModules' - folder name for default/prebuilt modules
125
+ savedModulesFolderName?: string, // Default: 'savedModules' sent as guido_{partnerName}_{value}
126
+ defaultModulesFolderName?: string, // Default: 'defaultModules' sent as guido_{value}
127
127
  },
128
128
 
129
129
  // Optional: UI settings
@@ -260,30 +260,39 @@ const config: GuidoConfigInput = {
260
260
 
261
261
  ## Module Folder Configuration
262
262
 
263
- Customize the Stripo module folder names for saved and default modules. These values are passed to Stripo metadata and the dynamic folder paths are constructed in the Stripo plugin panel configuration.
263
+ Customize the Stripo module folder names for saved and default modules:
264
264
 
265
265
  ```typescript
266
266
  const config: GuidoConfigInput = {
267
267
  identity: { templateId: 'tpl-123', userId: 'user-456' },
268
268
  partner: { name: 'acme' },
269
269
  editor: {
270
- // Folder name for user-saved modules
271
- savedModulesFolderName: 'savedModules',
270
+ // Custom folder for user-saved modules
271
+ // Sent to Stripo as: guido_acme_myCustomModules
272
+ savedModulesFolderName: 'myCustomModules',
272
273
 
273
- // Folder name for default/prebuilt modules
274
- defaultModulesFolderName: 'defaultModules',
274
+ // Custom folder for default/prebuilt modules
275
+ // Sent to Stripo as: guido_myPrebuilts
276
+ defaultModulesFolderName: 'myPrebuilts',
275
277
  },
276
278
  };
277
279
  ```
278
280
 
279
- ### Default Values
281
+ ### Folder Naming Convention
280
282
 
281
- | Config Option | Default Value |
282
- |--------------|---------------|
283
- | `savedModulesFolderName` | `'savedModules'` |
284
- | `defaultModulesFolderName` | `'defaultModules'` |
283
+ | Config Option | Default Value | Stripo Folder Name |
284
+ |--------------|---------------|-------------------|
285
+ | `savedModulesFolderName` | `'savedModules'` | `guido_{partnerName}_{value}` |
286
+ | `defaultModulesFolderName` | `'defaultModules'` | `guido_{value}` |
285
287
 
286
- > **Note:** The actual folder paths (e.g., `guido_acme_savedModules`) are configured in the Stripo plugin panel using variable substitution like `${savedModulesFolderName}`.
288
+ **Examples with partner name `acme`:**
289
+
290
+ | Config Value | Result |
291
+ |--------------|--------|
292
+ | `savedModulesFolderName: 'savedModules'` (default) | `guido_acme_savedModules` |
293
+ | `savedModulesFolderName: 'v2_modules'` | `guido_acme_v2_modules` |
294
+ | `defaultModulesFolderName: 'defaultModules'` (default) | `guido_defaultModules` |
295
+ | `defaultModulesFolderName: 'prebuilts'` | `guido_prebuilts` |
287
296
 
288
297
  ---
289
298
 
@@ -1,5 +1,4 @@
1
- import { ModuleFolderDefaults as b } from "../../enums/defaults.js";
2
- import { object as o, number as p, optional as e, string as t, pipe as u, picklist as n, custom as S, boolean as a, array as c, minLength as d, literal as r, variant as k } from "../../node_modules/valibot/dist/index.js";
1
+ import { object as o, number as p, optional as e, string as t, pipe as u, picklist as n, custom as b, boolean as a, array as c, minLength as d, literal as r, variant as k } from "../../node_modules/valibot/dist/index.js";
3
2
  const m = {
4
3
  /** Promotional/marketing emails */
5
4
  PROMOTIONAL: 1,
@@ -12,7 +11,7 @@ const m = {
12
11
  ARCHITECT: 49,
13
12
  /** Unsubscribe page builder */
14
13
  UNSUBSCRIBE_PAGES: 97
15
- }, h = o({
14
+ }, S = o({
16
15
  /** Unique identifier for the template being edited */
17
16
  templateId: u(
18
17
  t(),
@@ -25,7 +24,7 @@ const m = {
25
24
  ),
26
25
  /** Optional variation ID for A/B testing */
27
26
  variationId: e(t())
28
- }), y = o({
27
+ }), h = o({
29
28
  /** Partner/organization name (required) */
30
29
  name: u(
31
30
  t(),
@@ -47,7 +46,7 @@ const m = {
47
46
  ),
48
47
  /** Display name for the current user */
49
48
  username: e(t(), "Guido User")
50
- }), f = o({
49
+ }), y = o({
51
50
  /** Display text for the dynamic content */
52
51
  text: t(),
53
52
  /** Template variable value (e.g., {{username}}) */
@@ -61,21 +60,21 @@ const m = {
61
60
  value: t()
62
61
  })
63
62
  )
64
- }), R = o({
63
+ }), f = o({
65
64
  /** Initial HTML content */
66
65
  html: e(t(), ""),
67
66
  /** Initial CSS content */
68
67
  css: e(t(), ""),
69
68
  /** Preselected dynamic content items */
70
69
  preselectedDynamicContent: e(
71
- c(f),
70
+ c(y),
72
71
  []
73
72
  ),
74
73
  /** Selected unsubscribe page IDs */
75
74
  selectedUnsubscribePages: e(c(p()), []),
76
75
  /** Force recreate template in Stripo storage (use true when updating externally modified templates) */
77
76
  forceRecreate: e(a(), !1)
78
- }), A = o({
77
+ }), R = o({
79
78
  /** Sender display name */
80
79
  senderName: e(t(), ""),
81
80
  /** Email subject line */
@@ -88,17 +87,17 @@ const m = {
88
87
  /** Migration date for template compatibility */
89
88
  migrationDate: e(p(), 1759696858),
90
89
  /** Email header settings */
91
- emailHeader: e(A, { senderName: "", subject: "" }),
92
- /** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
93
- savedModulesFolderName: e(t(), b.SAVED_MODULES),
94
- /** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
95
- defaultModulesFolderName: e(t(), b.DEFAULT_MODULES)
96
- }), T = o({
90
+ emailHeader: e(R, { senderName: "", subject: "" }),
91
+ /** Custom folder name for user-saved modules (sent to Stripo as guido_{partnerName}_{savedModulesFolderName}) */
92
+ savedModulesFolderName: e(t(), "savedModules"),
93
+ /** Custom folder name for default/prebuilt modules (sent to Stripo as guido_{defaultModulesFolderName}) */
94
+ defaultModulesFolderName: e(t(), "defaultModules")
95
+ }), I = o({
97
96
  /** Whether to show the header bar */
98
97
  showHeader: e(a(), !0),
99
98
  /** Custom label for back button (if shown) */
100
99
  backButtonLabel: e(t())
101
- }), I = o({
100
+ }), T = o({
102
101
  /** Enable dynamic content insertion */
103
102
  dynamicContent: e(a(), !0),
104
103
  /** Enable save as template functionality */
@@ -113,7 +112,7 @@ const m = {
113
112
  unsubscribe: e(a(), !0),
114
113
  /** Disable modules panel in the editor */
115
114
  modulesDisabled: e(a(), !1)
116
- }), E = n([
115
+ }), A = n([
117
116
  "amp-accordion",
118
117
  "amp-carousel",
119
118
  "amp-form-controls",
@@ -135,10 +134,10 @@ const m = {
135
134
  "unsubscribe-block",
136
135
  "coupon-block",
137
136
  "items-block"
138
- ]), O = o({
137
+ ]), N = o({
139
138
  /** Default blocks to exclude from the editor */
140
139
  excludeDefaults: e(
141
- c(E),
140
+ c(A),
142
141
  []
143
142
  ),
144
143
  /** Custom blocks to include in the editor */
@@ -153,7 +152,7 @@ const m = {
153
152
  description: e(t()),
154
153
  /** Priority for rule ordering (lower = earlier) */
155
154
  priority: p()
156
- }), L = o({
155
+ }), M = o({
157
156
  ...l.entries,
158
157
  type: r("replace"),
159
158
  /** String to search for */
@@ -162,7 +161,7 @@ const m = {
162
161
  replacement: t(),
163
162
  /** Replace all occurrences (default: false) */
164
163
  replaceAll: e(a())
165
- }), M = o({
164
+ }), O = o({
166
165
  ...l.entries,
167
166
  type: r("regex"),
168
167
  /** Regex pattern string */
@@ -171,82 +170,82 @@ const m = {
171
170
  replacement: t(),
172
171
  /** Regex flags (e.g., 'gi') */
173
172
  flags: e(t())
174
- }), N = o({
173
+ }), v = o({
175
174
  ...l.entries,
176
175
  type: r("remove"),
177
176
  /** Strings or patterns to remove */
178
177
  targets: c(t())
179
- }), D = o({
178
+ }), E = o({
180
179
  ...l.entries,
181
180
  type: r("custom"),
182
181
  /** Custom processor function */
183
- processor: S(
182
+ processor: b(
184
183
  (i) => typeof i == "function",
185
184
  "processor must be a function"
186
185
  )
187
- }), v = k("type", [
188
- L,
186
+ }), L = k("type", [
189
187
  M,
190
- N,
191
- D
192
- ]), U = o({
188
+ O,
189
+ v,
190
+ E
191
+ ]), x = o({
193
192
  /** Custom compiler rules to apply */
194
- customRules: e(c(v), []),
193
+ customRules: e(c(L), []),
195
194
  /** Skip default compiler rules */
196
195
  ignoreDefaultRules: e(a(), !1)
197
- }), x = o({
196
+ }), B = o({
198
197
  /**
199
198
  * External validation handler called before save completes.
200
199
  * Return false to cancel the save operation.
201
200
  */
202
201
  externalValidation: e(
203
- S(
202
+ b(
204
203
  (i) => typeof i == "function",
205
204
  "externalValidation must be a function"
206
205
  )
207
206
  )
208
- }), H = o({
207
+ }), D = o({
209
208
  // Required sections
210
209
  /** Identity configuration (required) */
211
- identity: h,
210
+ identity: S,
212
211
  /** Partner configuration (required) */
213
- partner: y,
212
+ partner: h,
214
213
  // Optional sections (with defaults)
215
214
  /** Template content and presets */
216
- template: e(R, {}),
215
+ template: e(f, {}),
217
216
  /** Editor settings */
218
217
  editor: e(C, {}),
219
218
  /** UI configuration */
220
- ui: e(T, {}),
219
+ ui: e(I, {}),
221
220
  /** Feature toggles */
222
- features: e(I, {}),
221
+ features: e(T, {}),
223
222
  /** Block configuration */
224
- blocks: e(O, {}),
223
+ blocks: e(N, {}),
225
224
  /** Compiler configuration */
226
- compiler: e(U, {}),
225
+ compiler: e(x, {}),
227
226
  /** Callbacks and event handlers */
228
- callbacks: e(x, {})
227
+ callbacks: e(B, {})
229
228
  });
230
229
  export {
231
- O as BlocksSchema,
232
- x as CallbacksSchema,
233
- v as CompilerRuleSchema,
234
- U as CompilerSchema,
230
+ N as BlocksSchema,
231
+ B as CallbacksSchema,
232
+ L as CompilerRuleSchema,
233
+ x as CompilerSchema,
235
234
  g as CustomBlockTypeSchema,
236
- D as CustomRuleSchema,
237
- E as DefaultBlockTypeSchema,
238
- f as DynamicContentSchema,
235
+ E as CustomRuleSchema,
236
+ A as DefaultBlockTypeSchema,
237
+ y as DynamicContentSchema,
239
238
  C as EditorSchema,
240
- A as EmailHeaderSchema,
241
- I as FeaturesSchema,
242
- H as GuidoConfigSchema,
243
- h as IdentitySchema,
239
+ R as EmailHeaderSchema,
240
+ T as FeaturesSchema,
241
+ D as GuidoConfigSchema,
242
+ S as IdentitySchema,
244
243
  m as MessageType,
245
- y as PartnerSchema,
244
+ h as PartnerSchema,
246
245
  s as ProductType,
247
- M as RegexRuleSchema,
248
- N as RemoveRuleSchema,
249
- L as ReplaceRuleSchema,
250
- R as TemplateSchema,
251
- T as UISchema
246
+ O as RegexRuleSchema,
247
+ v as RemoveRuleSchema,
248
+ M as ReplaceRuleSchema,
249
+ f as TemplateSchema,
250
+ I as UISchema
252
251
  };
@@ -12,7 +12,7 @@ var t = function() {
12
12
  n,
13
13
  !1,
14
14
  null,
15
- "16abb398"
15
+ "a2167e62"
16
16
  );
17
17
  const v = s.exports;
18
18
  export {
@@ -1,12 +1,12 @@
1
- import { defineComponent as z, defineAsyncComponent as M, ref as K, computed as _, watch as V, onMounted as j, onUnmounted as q } from "vue";
2
- import { provideGuidoActions as J } from "../composables/useGuidoActions.js";
3
- import { usePartner as Q } from "../composables/usePartner.js";
4
- import { useStripo as X } from "../composables/useStripo.js";
5
- import { useTimerClone as Y } from "../composables/useTimerClone.js";
6
- import { migrate as P } from "../config/migrator/index.js";
7
- import { ModuleFolderDefaults as A } from "../enums/defaults.js";
8
- import Z from "./organisms/base/Toaster.vue.js";
9
- import $ from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
1
+ import { defineComponent as B, defineAsyncComponent as U, ref as X, computed as L, watch as z, onMounted as K, onUnmounted as V } from "vue";
2
+ import { provideGuidoActions as j } from "../composables/useGuidoActions.js";
3
+ import { usePartner as q } from "../composables/usePartner.js";
4
+ import { useStripo as J } from "../composables/useStripo.js";
5
+ import { useTimerClone as Q } from "../composables/useTimerClone.js";
6
+ import { migrate as N } from "../config/migrator/index.js";
7
+ import { ModuleFolderDefaults as a } from "../enums/defaults.js";
8
+ import Y from "./organisms/base/Toaster.vue.js";
9
+ import Z from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
10
10
  import ee from "./organisms/header/HeaderWrapper.vue.js";
11
11
  import oe from "./organisms/LoadingWrapper.vue.js";
12
12
  import te from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
@@ -17,49 +17,49 @@ import { useDynamicContentStore as ce } from "../stores/dynamic-content.js";
17
17
  import { useEditorStore as ae } from "../stores/editor.js";
18
18
  import { usePreviewStore as ie } from "../stores/preview.js";
19
19
  import { useUnsubscribeStore as de } from "../stores/unsubscribe.js";
20
- const Le = /* @__PURE__ */ z({
20
+ const ke = /* @__PURE__ */ B({
21
21
  __name: "Guido",
22
22
  props: {
23
23
  config: null
24
24
  },
25
25
  emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change", "ready", "onboarding:finished", "test-email:click"],
26
- setup(N, { expose: W, emit: t }) {
27
- const u = N, I = M(
26
+ setup(I, { expose: A, emit: t }) {
27
+ const v = I, W = U(
28
28
  () => import("./organisms/email-preview/PreviewContainer.vue.js")
29
- ), O = M(
29
+ ), O = U(
30
30
  () => import("./organisms/onboarding/OnboardingWrapper.vue.js")
31
- ), p = K(), a = ce(), v = de(), r = se();
32
- r.init(u.config);
33
- const i = ae(), G = ie(), s = _(() => i.hasChanges), { isTestPartner: H } = Q(), y = () => {
31
+ ), y = X(), i = ce(), f = de(), r = se();
32
+ r.init(v.config);
33
+ const d = ae(), $ = ie(), s = L(() => d.hasChanges), { isTestPartner: R } = q(), h = () => {
34
34
  var e;
35
- return (e = p.value) == null ? void 0 : e.handleSave(!0);
35
+ return (e = y.value) == null ? void 0 : e.handleSave(!0);
36
36
  }, {
37
- templateId: d,
38
- userId: h,
39
- partnerName: f,
40
- productType: b,
41
- username: S,
37
+ templateId: m,
38
+ userId: b,
39
+ partnerName: l,
40
+ productType: S,
41
+ username: g,
42
42
  template: o,
43
43
  editor: n
44
- } = r, c = (o == null ? void 0 : o.html) || "", g = (o == null ? void 0 : o.css) || "", m = (o == null ? void 0 : o.preselectedDynamicContent) || [], w = (n == null ? void 0 : n.savedModulesFolderName) || A.SAVED_MODULES, D = (n == null ? void 0 : n.defaultModulesFolderName) || A.DEFAULT_MODULES;
45
- i.templateId = d;
46
- const { initPlugin: E } = X({
47
- emailId: d,
48
- userId: h,
49
- username: S,
50
- partnerName: f,
51
- productType: b,
52
- preselectedDynamicContentList: m,
53
- savedModulesFolderName: w,
54
- defaultModulesFolderName: D,
44
+ } = r, c = (o == null ? void 0 : o.html) || "", w = (o == null ? void 0 : o.css) || "", u = (o == null ? void 0 : o.preselectedDynamicContent) || [], D = (n == null ? void 0 : n.savedModulesFolderName) || a.SAVED_MODULES, E = (n == null ? void 0 : n.defaultModulesFolderName) || a.DEFAULT_MODULES;
45
+ d.templateId = m;
46
+ const { initPlugin: F } = J({
47
+ emailId: m,
48
+ userId: b,
49
+ username: g,
50
+ partnerName: l,
51
+ productType: S,
52
+ preselectedDynamicContentList: u,
53
+ savedModulesFolderName: `${a.PREFIX}_${l}_${D}`,
54
+ defaultModulesFolderName: `${a.PREFIX}_${E}`,
55
55
  onReady: () => {
56
56
  console.debug("guido:ready"), t("ready");
57
57
  }
58
- }), { getDefaultTemplate: C } = re(), { cloneTimersOnSave: T, hasTimerBlocks: k } = Y(), x = _(() => {
58
+ }), { getDefaultTemplate: C } = re(), { cloneTimersOnSave: _, hasTimerBlocks: M } = Q(), G = L(() => {
59
59
  var e;
60
60
  return !((e = r.ui) != null && e.showHeader);
61
61
  });
62
- J({
62
+ j({
63
63
  onBack: () => {
64
64
  console.debug("guido:back"), t("back");
65
65
  },
@@ -73,49 +73,49 @@ const Le = /* @__PURE__ */ z({
73
73
  console.debug("guido:test-email:click"), t("test-email:click");
74
74
  }
75
75
  });
76
- const F = (e) => {
77
- console.debug("dynamic-content:close", e), a.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
78
- }, U = () => {
76
+ const T = (e) => {
77
+ console.debug("dynamic-content:close", e), i.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
78
+ }, k = () => {
79
79
  console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
80
80
  };
81
- V(() => s.value, () => {
81
+ z(() => s.value, () => {
82
82
  t("on-change", s.value);
83
83
  });
84
- const l = (e) => {
85
- const L = e, { attribute: B, position: R } = L.detail;
86
- console.debug("dynamic-content:open", L.detail), t("dynamic-content:open", B, R);
84
+ const p = (e) => {
85
+ const P = e, { attribute: H, position: x } = P.detail;
86
+ console.debug("dynamic-content:open", P.detail), t("dynamic-content:open", H, x);
87
87
  };
88
- return j(async () => {
88
+ return K(async () => {
89
89
  console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow");
90
90
  try {
91
- v.selectedUnsubscribePages = (o == null ? void 0 : o.selectedUnsubscribePages) || [];
91
+ f.selectedUnsubscribePages = (o == null ? void 0 : o.selectedUnsubscribePages) || [];
92
92
  let e = {
93
- html: c && await P(c),
94
- css: g
93
+ html: c && await N(c),
94
+ css: w
95
95
  };
96
- e.html || (e = await C(), e.html = await P(e.html)), k(e.html) && (e.html = await T(e.html)), await E(e), a.selectedDynamicContentList = m;
96
+ e.html || (e = await C(), e.html = await N(e.html)), M(e.html) && (e.html = await _(e.html)), await F(e), i.selectedDynamicContentList = u;
97
97
  } catch (e) {
98
98
  console.error("Failed to initialize Stripo editor:", e);
99
99
  }
100
- document.addEventListener("dynamic-content:open", l);
101
- }), q(() => {
102
- document.removeEventListener("dynamic-content:open", l);
100
+ document.addEventListener("dynamic-content:open", p);
101
+ }), V(() => {
102
+ document.removeEventListener("dynamic-content:open", p);
103
103
  try {
104
104
  window.UIEditor.removeEditor();
105
105
  } catch {
106
106
  console.debug("Failed to remove Stripo editor: No editor found");
107
107
  }
108
108
  r.reset();
109
- }), W({
109
+ }), A({
110
110
  dynamicContent: {
111
- insert: F,
112
- close: U
111
+ insert: T,
112
+ close: k
113
113
  },
114
114
  hasChanges: s,
115
- saveSilent: y
116
- }), { __sfc: !0, PreviewContainer: I, OnboardingWrapper: O, headerWrapperRef: p, dynamicContentStore: a, unsubscribeStore: v, props: u, configStore: r, editorStore: i, previewStore: G, hasChanges: s, isTestPartner: H, saveSilent: y, templateId: d, userId: h, partnerName: f, productType: b, username: S, templateConfig: o, editorConfig: n, html: c, css: g, preselectedDynamicContentList: m, savedModulesFolderName: w, defaultModulesFolderName: D, emit: t, initPlugin: E, getDefaultTemplate: C, cloneTimersOnSave: T, hasTimerBlocks: k, noHeader: x, insertDynamicContent: F, closeDynamicContent: U, handleDynamicContentOpen: l, Toaster: Z, FilterSelectionDrawer: $, HeaderWrapper: ee, LoadingWrapper: oe, SaveAsTemplateDrawer: te, UnsubscribeWrapper: ne };
115
+ saveSilent: h
116
+ }), { __sfc: !0, PreviewContainer: W, OnboardingWrapper: O, headerWrapperRef: y, dynamicContentStore: i, unsubscribeStore: f, props: v, configStore: r, editorStore: d, previewStore: $, hasChanges: s, isTestPartner: R, saveSilent: h, templateId: m, userId: b, partnerName: l, productType: S, username: g, templateConfig: o, editorConfig: n, html: c, css: w, preselectedDynamicContentList: u, savedModulesFolderName: D, defaultModulesFolderName: E, emit: t, initPlugin: F, getDefaultTemplate: C, cloneTimersOnSave: _, hasTimerBlocks: M, noHeader: G, insertDynamicContent: T, closeDynamicContent: k, handleDynamicContentOpen: p, Toaster: Y, FilterSelectionDrawer: Z, HeaderWrapper: ee, LoadingWrapper: oe, SaveAsTemplateDrawer: te, UnsubscribeWrapper: ne };
117
117
  }
118
118
  });
119
119
  export {
120
- Le as default
120
+ ke as default
121
121
  };
@@ -2,7 +2,8 @@ const e = {
2
2
  transactional: 2
3
3
  }, o = 2, t = 13, s = {
4
4
  SAVED_MODULES: "savedModules",
5
- DEFAULT_MODULES: "defaultModules"
5
+ DEFAULT_MODULES: "defaultModules",
6
+ PREFIX: "guido"
6
7
  };
7
8
  export {
8
9
  o as EditorType,
@@ -1,17 +1,16 @@
1
- import { ModuleFolderDefaults as s } 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: n } = s;
6
- if (e.includes(l))
7
- return "user-profile";
8
- if (e.includes(n))
1
+ import { ExtensionBuilder as t, BlocksPanel as n } from "../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ class l extends n {
3
+ getModulesTabIconName(s) {
4
+ const { key: e } = s;
5
+ if (e.endsWith("_modules") && !e.startsWith("amp"))
9
6
  return "modules";
7
+ if (e.endsWith("_generalPreBuilts"))
8
+ return "user-profile";
10
9
  if (e === "amp_modules")
11
10
  return "mail-template";
12
11
  }
13
12
  }
14
- const c = new t().withBlocksPanel(u).build();
13
+ const i = new t().withBlocksPanel(l).build();
15
14
  export {
16
- c as default
15
+ i as default
17
16
  };
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-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-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-a2167e62]{position:relative;width:100%;height:calc(100vh - 128px)}.guido-editor__container[data-v-a2167e62]{width:100%;height:calc(100vh - 128px)}.guido-editor__no-header[data-v-a2167e62]{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}
@@ -129,9 +129,9 @@ export declare const EditorSchema: v.ObjectSchema<{
129
129
  readonly senderName: "";
130
130
  readonly subject: "";
131
131
  }>;
132
- /** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
132
+ /** Custom folder name for user-saved modules (sent to Stripo as guido_{partnerName}_{savedModulesFolderName}) */
133
133
  readonly savedModulesFolderName: v.OptionalSchema<v.StringSchema<undefined>, "savedModules">;
134
- /** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
134
+ /** Custom folder name for default/prebuilt modules (sent to Stripo as guido_{defaultModulesFolderName}) */
135
135
  readonly defaultModulesFolderName: v.OptionalSchema<v.StringSchema<undefined>, "defaultModules">;
136
136
  }, undefined>;
137
137
  /**
@@ -445,9 +445,9 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
445
445
  readonly senderName: "";
446
446
  readonly subject: "";
447
447
  }>;
448
- /** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
448
+ /** Custom folder name for user-saved modules (sent to Stripo as guido_{partnerName}_{savedModulesFolderName}) */
449
449
  readonly savedModulesFolderName: v.OptionalSchema<v.StringSchema<undefined>, "savedModules">;
450
- /** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
450
+ /** Custom folder name for default/prebuilt modules (sent to Stripo as guido_{defaultModulesFolderName}) */
451
451
  readonly defaultModulesFolderName: v.OptionalSchema<v.StringSchema<undefined>, "defaultModules">;
452
452
  }, undefined>, {}>;
453
453
  /** UI configuration */
@@ -12,4 +12,5 @@ export declare const ProductIds: Record<string, number>;
12
12
  export declare const ModuleFolderDefaults: {
13
13
  readonly SAVED_MODULES: "savedModules";
14
14
  readonly DEFAULT_MODULES: "defaultModules";
15
+ readonly PREFIX: "guido";
15
16
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "2.1.0-beta.aa05b06",
3
+ "version": "2.1.0-beta.acbfaec",
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",