@useinsider/guido 3.11.0-beta.735d590 → 3.11.0-beta.7ad3437

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 (37) hide show
  1. package/dist/@types/config/schemas.js +84 -105
  2. package/dist/components/Guido.vue.js +3 -3
  3. package/dist/components/Guido.vue2.js +41 -41
  4. package/dist/components/organisms/header/EditorActions.vue.js +1 -1
  5. package/dist/components/organisms/header/HeaderWrapper.vue.js +3 -3
  6. package/dist/components/organisms/header/HeaderWrapper.vue2.js +0 -2
  7. package/dist/components/organisms/header/version-history/VersionHistory.vue.js +1 -1
  8. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +20 -23
  9. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +12 -11
  10. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue.js +5 -5
  11. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue2.js +2 -2
  12. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +3 -3
  13. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +9 -9
  14. package/dist/composables/useStripo.js +67 -70
  15. package/dist/enums/academy.js +1 -1
  16. package/dist/enums/date.js +3 -4
  17. package/dist/enums/onboarding.js +13 -11
  18. package/dist/guido.css +1 -1
  19. package/dist/node_modules/valibot/dist/index.js +112 -148
  20. package/dist/src/@types/config/schemas.d.ts +0 -32
  21. package/dist/src/@types/generic.d.ts +0 -18
  22. package/dist/src/composables/useConfig.d.ts +0 -6
  23. package/dist/src/composables/useHtmlValidator.test.d.ts +1 -0
  24. package/dist/src/config/compiler/utils/recommendationIgnoreUtils.test.d.ts +1 -0
  25. package/dist/src/enums/academy.d.ts +3 -3
  26. package/dist/src/enums/onboarding.d.ts +3 -0
  27. package/dist/src/library.d.ts +1 -1
  28. package/dist/src/stores/config.d.ts +0 -54
  29. package/dist/src/utils/genericUtil.d.ts +1 -16
  30. package/dist/stores/onboarding.js +14 -11
  31. package/dist/utils/dateUtil.js +10 -23
  32. package/dist/utils/genericUtil.js +19 -40
  33. package/package.json +1 -10
  34. package/dist/composables/useModuleDynamicContentRepair.js +0 -37
  35. package/dist/src/composables/useModuleDynamicContentRepair.d.ts +0 -18
  36. package/dist/src/utils/dynamicContentConverter.d.ts +0 -27
  37. package/dist/utils/dynamicContentConverter.js +0 -31
@@ -1,5 +1,5 @@
1
- import { ModuleFolderDefaults as y } from "../../enums/defaults.js";
2
- import { object as a, number as n, optional as e, string as t, picklist as l, pipe as p, minLength as b, custom as f, boolean as o, array as c, record as k, fallback as C, literal as i, looseObject as g, variant as R, union as h, unknown as s, lazy as T } from "../../node_modules/valibot/dist/index.js";
1
+ import { ModuleFolderDefaults as S } from "../../enums/defaults.js";
2
+ import { object as a, number as s, optional as e, string as t, picklist as l, pipe as p, minLength as b, custom as h, boolean as o, array as c, record as k, literal as i, looseObject as y, variant as g, union as f, unknown as n } from "../../node_modules/valibot/dist/index.js";
3
3
  const d = {
4
4
  /** Promotional/marketing emails */
5
5
  PROMOTIONAL: 1,
@@ -12,7 +12,7 @@ const d = {
12
12
  ARCHITECT: 49,
13
13
  /** Unsubscribe page builder */
14
14
  UNSUBSCRIBE_PAGES: 97
15
- }, A = a({
15
+ }, R = a({
16
16
  /** Unique identifier for the template being edited */
17
17
  templateId: p(
18
18
  t(),
@@ -25,12 +25,12 @@ const d = {
25
25
  ),
26
26
  /** Optional variation ID for A/B testing */
27
27
  variationId: e(t())
28
- }), I = a({
28
+ }), T = a({
29
29
  /** Fallback font name (e.g., "Georgia") */
30
30
  name: t(),
31
31
  /** Fallback font family (e.g., "serif" or "sans-serif") */
32
32
  family: t()
33
- }), L = a({
33
+ }), C = a({
34
34
  /** Partner/organization name (required) */
35
35
  name: p(
36
36
  t(),
@@ -53,8 +53,8 @@ const d = {
53
53
  /** Display name for the current user */
54
54
  username: e(t(), "Guido User"),
55
55
  /** Fallback font settings from partner settings — used to match backend size calculation */
56
- fallbackFont: e(I)
57
- }), v = a({
56
+ fallbackFont: e(T)
57
+ }), A = a({
58
58
  /** Display text for the dynamic content */
59
59
  text: t(),
60
60
  /** Template variable value (e.g., {{username}}) */
@@ -68,46 +68,35 @@ const d = {
68
68
  value: t()
69
69
  })
70
70
  )
71
- }), S = T(() => g({
72
- text: e(t()),
73
- // eslint-disable-next-line camelcase -- backend field name
74
- tag_text: e(t()),
75
- value: e(t()),
76
- children: e(c(S)),
77
- // eslint-disable-next-line camelcase -- backend field name
78
- select_items: e(c(S))
79
- })), P = k(
80
- t(),
81
- C(c(S), [])
82
- ), D = g({
71
+ }), I = y({
83
72
  /** Block ID (matches the dictionary key and the legacy HTML element id) */
84
- id: e(n()),
73
+ id: e(s()),
85
74
  /** Decimal places for price display (legacy data may use string or number) */
86
- decimalCount: e(h([t(), n()])),
75
+ decimalCount: e(f([t(), s()])),
87
76
  /** Pinned product IDs (empty array when filter-driven) */
88
- productIds: e(c(s())),
77
+ productIds: e(c(n())),
89
78
  /** Whether the block requested live products at send time */
90
79
  sendProductRequestFlag: e(o()),
91
80
  /** Whether to randomize product order */
92
81
  shuffleProducts: e(o()),
93
82
  /** Filter rules driving product selection */
94
- filters: e(c(s())),
83
+ filters: e(c(n())),
95
84
  /** Currency code (e.g. 'EUR') — sometimes absent in legacy data */
96
85
  currency: e(t()),
97
86
  /** Currency display settings (separators, alignment, decimals) */
98
- currencySettings: e(s()),
87
+ currencySettings: e(n()),
99
88
  /** Locale (e.g. 'nl_NL') */
100
89
  language: e(t()),
101
90
  /** Recommendation strategy key (e.g. 'newArrivals') */
102
91
  strategy: e(t()),
103
92
  /** Snapshot of products as rendered by the legacy block */
104
- recommendedProducts: e(c(s())),
93
+ recommendedProducts: e(c(n())),
105
94
  /** Number of product cards per row */
106
- cardsInRow: e(n()),
95
+ cardsInRow: e(s()),
107
96
  /** Mobile-only padding (right) */
108
- mobileRightPadding: e(n()),
97
+ mobileRightPadding: e(s()),
109
98
  /** Mobile-only padding (left) */
110
- mobileLeftPadding: e(n()),
99
+ mobileLeftPadding: e(s()),
111
100
  /** Disable responsive scaling */
112
101
  unresponsive: e(o()),
113
102
  /** Layout orientation ('vertical' | 'horizontal') */
@@ -117,14 +106,14 @@ const d = {
117
106
  /** Block type marker used by some legacy variants */
118
107
  blockType: e(t()),
119
108
  /** Size variant marker (legacy data may use string or number) */
120
- size: e(h([t(), n()])),
109
+ size: e(f([t(), s()])),
121
110
  /** Vertical responsiveness flag (legacy size=1 variants) */
122
111
  verticalResponsiveness: e(o()),
123
112
  /** Legacy "Move to next line" price placement toggle (cardPricePlacement.js) */
124
113
  isPriceMovedToNextLine: e(o()),
125
114
  /** Legacy "Hide if same as discounted" / delete-price-for-zero-sale toggle */
126
115
  isPriceDeletedForZeroSale: e(o())
127
- }), E = a({
116
+ }), L = a({
128
117
  /**
129
118
  * Legacy recommendation block configs keyed by block ID.
130
119
  * Pass this when loading a template authored with the v1
@@ -132,59 +121,51 @@ const d = {
132
121
  * strategy, currency, locale, and layout data.
133
122
  */
134
123
  recommendationConfigs: e(
135
- k(t(), D),
124
+ k(t(), I),
136
125
  {}
137
126
  )
138
- }), M = a({
127
+ }), P = a({
139
128
  /** Initial HTML content */
140
129
  html: e(t(), ""),
141
130
  /** Initial CSS content */
142
131
  css: e(t(), ""),
143
132
  /** Preselected dynamic content items */
144
133
  preselectedDynamicContent: e(
145
- c(v),
134
+ c(A),
146
135
  []
147
136
  ),
148
- /**
149
- * Partner-keyed set of dynamic-content items the account offers, e.g.
150
- * `{ [partnerName]: [{ text, value, children }] }`. Guido flattens it
151
- * (union across partners, leaf attributes only) into the label→token map
152
- * that repairs label-form placeholders (`{{ Phone Number }}`) in dropped
153
- * saved modules.
154
- */
155
- dynamicContentList: e(P, {}),
156
137
  /** Valid custom field attribute names from the partner's categorized fields */
157
138
  customFieldAttributes: e(c(t()), []),
158
139
  /** Selected unsubscribe page IDs */
159
- selectedUnsubscribePages: e(c(n()), []),
140
+ selectedUnsubscribePages: e(c(s()), []),
160
141
  /** Force recreate template in Stripo storage (use true when updating externally modified templates) */
161
142
  forceRecreate: e(o(), !1),
162
143
  /** Migration-only inputs (legacy block configs) */
163
- migration: e(E, {})
164
- }), N = a({
144
+ migration: e(L, {})
145
+ }), v = a({
165
146
  /** Sender display name */
166
147
  senderName: e(t(), ""),
167
148
  /** Email subject line */
168
149
  subject: e(t(), "")
169
- }), O = a({
150
+ }), E = a({
170
151
  /** Locale for the editor UI */
171
152
  locale: e(t(), "en"),
172
153
  /** Path to translations object */
173
154
  translationsPath: e(t(), "window.trans[Object.keys(window.trans)[0]]"),
174
155
  /** Migration date for template compatibility */
175
- migrationDate: e(n(), 1759696858),
156
+ migrationDate: e(s(), 1759696858),
176
157
  /** Email header settings */
177
- emailHeader: e(N, { senderName: "", subject: "" }),
158
+ emailHeader: e(v, { senderName: "", subject: "" }),
178
159
  /** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
179
- savedModulesFolderName: e(t(), y.SAVED_MODULES),
160
+ savedModulesFolderName: e(t(), S.SAVED_MODULES),
180
161
  /** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
181
- defaultModulesFolderName: e(t(), y.DEFAULT_MODULES)
182
- }), x = a({
162
+ defaultModulesFolderName: e(t(), S.DEFAULT_MODULES)
163
+ }), M = a({
183
164
  /** Whether to show the header bar */
184
165
  showHeader: e(o(), !0),
185
166
  /** Custom label for back button (if shown) */
186
167
  backButtonLabel: e(t())
187
- }), F = a({
168
+ }), O = a({
188
169
  /** Enable dynamic content insertion */
189
170
  dynamicContent: e(o(), !0),
190
171
  /** Enable save as template functionality */
@@ -203,7 +184,7 @@ const d = {
203
184
  liquidSyntax: e(o(), !1),
204
185
  /** Enable autosave (3-min interval + tab-hide). User toggles on/off from the header. */
205
186
  autosave: e(o(), !1)
206
- }), U = l([
187
+ }), N = l([
207
188
  "amp-accordion",
208
189
  "amp-carousel",
209
190
  "amp-form-controls",
@@ -217,7 +198,7 @@ const d = {
217
198
  "text-block",
218
199
  "timer-block",
219
200
  "video-block"
220
- ]), B = l([
201
+ ]), D = l([
221
202
  "dynamic-content",
222
203
  "checkbox-block",
223
204
  "radio-button-block",
@@ -225,15 +206,15 @@ const d = {
225
206
  "unsubscribe-block",
226
207
  "coupon-block",
227
208
  "items-block"
228
- ]), w = a({
209
+ ]), x = a({
229
210
  /** Default blocks to exclude from the editor */
230
211
  excludeDefaults: e(
231
- c(U),
212
+ c(N),
232
213
  []
233
214
  ),
234
215
  /** Custom blocks to include in the editor */
235
216
  includeCustoms: e(
236
- c(B),
217
+ c(D),
237
218
  []
238
219
  )
239
220
  }), m = a({
@@ -242,8 +223,8 @@ const d = {
242
223
  /** Human-readable description */
243
224
  description: e(t()),
244
225
  /** Priority for rule ordering (lower = earlier) */
245
- priority: n()
246
- }), H = a({
226
+ priority: s()
227
+ }), F = a({
247
228
  ...m.entries,
248
229
  type: i("replace"),
249
230
  /** String to search for */
@@ -252,7 +233,7 @@ const d = {
252
233
  replacement: t(),
253
234
  /** Replace all occurrences (default: false) */
254
235
  replaceAll: e(o())
255
- }), _ = a({
236
+ }), U = a({
256
237
  ...m.entries,
257
238
  type: i("regex"),
258
239
  /** Regex pattern string */
@@ -261,87 +242,85 @@ const d = {
261
242
  replacement: t(),
262
243
  /** Regex flags (e.g., 'gi') */
263
244
  flags: e(t())
264
- }), j = a({
245
+ }), B = a({
265
246
  ...m.entries,
266
247
  type: i("remove"),
267
248
  /** Strings or patterns to remove */
268
249
  targets: c(t())
269
- }), q = a({
250
+ }), w = a({
270
251
  ...m.entries,
271
252
  type: i("custom"),
272
253
  /** Custom processor function */
273
- processor: f(
254
+ processor: h(
274
255
  (u) => typeof u == "function",
275
256
  "processor must be a function"
276
257
  )
277
- }), G = R("type", [
278
- H,
279
- _,
280
- j,
281
- q
282
- ]), V = a({
258
+ }), H = g("type", [
259
+ F,
260
+ U,
261
+ B,
262
+ w
263
+ ]), j = a({
283
264
  /** Custom compiler rules to apply */
284
- customRules: e(c(G), []),
265
+ customRules: e(c(H), []),
285
266
  /** Skip default compiler rules */
286
267
  ignoreDefaultRules: e(o(), !1)
287
- }), z = a({
268
+ }), q = a({
288
269
  /**
289
270
  * External validation handler called before save completes.
290
271
  * Return false to cancel the save operation.
291
272
  */
292
273
  externalValidation: e(
293
- f(
274
+ h(
294
275
  (u) => typeof u == "function",
295
276
  "externalValidation must be a function"
296
277
  )
297
278
  )
298
- }), K = a({
279
+ }), V = a({
299
280
  // Required sections
300
281
  /** Identity configuration (required) */
301
- identity: A,
282
+ identity: R,
302
283
  /** Partner configuration (required) */
303
- partner: L,
284
+ partner: C,
304
285
  // Optional sections (with defaults)
305
286
  /** Template content and presets */
306
- template: e(M, {}),
287
+ template: e(P, {}),
307
288
  /** Editor settings */
308
- editor: e(O, {}),
289
+ editor: e(E, {}),
309
290
  /** UI configuration */
310
- ui: e(x, {}),
291
+ ui: e(M, {}),
311
292
  /** Feature toggles */
312
- features: e(F, {}),
293
+ features: e(O, {}),
313
294
  /** Block configuration */
314
- blocks: e(w, {}),
295
+ blocks: e(x, {}),
315
296
  /** Compiler configuration */
316
- compiler: e(V, {}),
297
+ compiler: e(j, {}),
317
298
  /** Callbacks and event handlers */
318
- callbacks: e(z, {})
299
+ callbacks: e(q, {})
319
300
  });
320
301
  export {
321
- w as BlocksSchema,
322
- z as CallbacksSchema,
323
- G as CompilerRuleSchema,
324
- V as CompilerSchema,
325
- B as CustomBlockTypeSchema,
326
- q as CustomRuleSchema,
327
- U as DefaultBlockTypeSchema,
328
- P as DynamicContentListSchema,
329
- S as DynamicContentNodeSchema,
330
- v as DynamicContentSchema,
331
- O as EditorSchema,
332
- N as EmailHeaderSchema,
333
- I as FallbackFontSchema,
334
- F as FeaturesSchema,
335
- K as GuidoConfigSchema,
336
- A as IdentitySchema,
337
- D as LegacyRecommendationConfigSchema,
302
+ x as BlocksSchema,
303
+ q as CallbacksSchema,
304
+ H as CompilerRuleSchema,
305
+ j as CompilerSchema,
306
+ D as CustomBlockTypeSchema,
307
+ w as CustomRuleSchema,
308
+ N as DefaultBlockTypeSchema,
309
+ A as DynamicContentSchema,
310
+ E as EditorSchema,
311
+ v as EmailHeaderSchema,
312
+ T as FallbackFontSchema,
313
+ O as FeaturesSchema,
314
+ V as GuidoConfigSchema,
315
+ R as IdentitySchema,
316
+ I as LegacyRecommendationConfigSchema,
338
317
  d as MessageType,
339
- L as PartnerSchema,
318
+ C as PartnerSchema,
340
319
  r as ProductType,
341
- _ as RegexRuleSchema,
342
- j as RemoveRuleSchema,
343
- H as ReplaceRuleSchema,
344
- E as TemplateMigrationSchema,
345
- M as TemplateSchema,
346
- x as UISchema
320
+ U as RegexRuleSchema,
321
+ B as RemoveRuleSchema,
322
+ F as ReplaceRuleSchema,
323
+ L as TemplateMigrationSchema,
324
+ P as TemplateSchema,
325
+ M as UISchema
347
326
  };
@@ -3,16 +3,16 @@ import i from "./Guido.vue2.js";
3
3
  import a from "../_virtual/_plugin-vue2_normalizer.js";
4
4
  var t = function() {
5
5
  var o = this, r = o._self._c, e = o._self._setupProxy;
6
- return r("div", { ref: "wrapperRef", staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper, { ref: "headerWrapperRef" }), r(e.AutoSaveController), e.editorStore.isPreviewModeOpen ? r(e.PreviewContainer) : o._e(), r("div", { directives: [{ name: "show", rawName: "v-show", value: !e.previewStore.isLoaded, expression: "!previewStore.isLoaded" }], staticClass: "guido-editor__container", class: { "guido-editor__no-header": e.noHeader }, attrs: { id: "guido-editor" } }), r(e.Toaster), r(e.FilterSelectionDrawer), r(e.SaveAsTemplateDrawer), e.isTestPartner() ? o._e() : r(e.OnboardingWrapper, { on: { "onboarding-finished": function(p) {
6
+ return r("div", { ref: "wrapperRef", staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper, { ref: "headerWrapperRef" }), r(e.AutoSaveController), e.editorStore.isPreviewModeOpen ? r(e.PreviewContainer) : o._e(), r("div", { directives: [{ name: "show", rawName: "v-show", value: !e.previewStore.isLoaded, expression: "!previewStore.isLoaded" }], staticClass: "guido-editor__container", class: { "guido-editor__no-header": e.noHeader }, attrs: { id: "guido-editor" } }), r(e.Toaster), r(e.FilterSelectionDrawer), r(e.SaveAsTemplateDrawer), e.FORCE_ONBOARDING_FOR_TESTING || !e.isTestPartner() ? r(e.OnboardingWrapper, { on: { "onboarding-finished": function(_) {
7
7
  return e.emit("onboarding:finished");
8
- } } }), r(e.UnsubscribeWrapper), r(e.LoadingWrapper)], 1);
8
+ } } }) : o._e(), r(e.UnsubscribeWrapper), r(e.LoadingWrapper)], 1);
9
9
  }, n = [], s = /* @__PURE__ */ a(
10
10
  i,
11
11
  t,
12
12
  n,
13
13
  !1,
14
14
  null,
15
- "50dac6de"
15
+ "57d338df"
16
16
  );
17
17
  const l = s.exports;
18
18
  export {
@@ -1,42 +1,42 @@
1
- import { defineComponent as X, defineAsyncComponent as I, ref as W, computed as x, watch as Y, onMounted as Z, onUnmounted as ee } from "vue";
1
+ import { defineComponent as X, defineAsyncComponent as P, ref as G, computed as W, watch as Y, onMounted as Z, onUnmounted as ee } from "vue";
2
2
  import { useCortexBlueprintBridge as oe } from "../composables/useCortexBlueprintBridge.js";
3
3
  import { provideGuidoActions as te } from "../composables/useGuidoActions.js";
4
4
  import { useGuidoStateBridge as ne } from "../composables/useGuidoStateBridge.js";
5
5
  import { usePartner as re } from "../composables/usePartner.js";
6
6
  import { useStripo as se } from "../composables/useStripo.js";
7
7
  import { useTimerClone as ae } from "../composables/useTimerClone.js";
8
- import { migrate as G } from "../config/migrator/index.js";
8
+ import { migrate as x } from "../config/migrator/index.js";
9
9
  import { ModuleFolderDefaults as H } from "../enums/defaults.js";
10
- import { RIBBON_SELECTOR as ce } from "../enums/onboarding.js";
11
- import { useRecommendationExtensionStore as ie } from "../extensions/Blocks/Recommendation/store/recommendation.js";
12
- import me from "./organisms/AutoSaveController.vue.js";
13
- import de from "./organisms/base/Toaster.vue.js";
14
- import le from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
15
- import ue from "./organisms/header/HeaderWrapper.vue.js";
16
- import pe from "./organisms/LoadingWrapper.vue.js";
17
- import fe from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
18
- import ve from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
19
- import { useStripoApi as Se } from "../services/stripoApi.js";
20
- import { useConfigStore as ye } from "../stores/config.js";
21
- import { useDynamicContentStore as he } from "../stores/dynamic-content.js";
10
+ import { FORCE_ONBOARDING_FOR_TESTING as ce, RIBBON_SELECTOR as ie } from "../enums/onboarding.js";
11
+ import { useRecommendationExtensionStore as me } from "../extensions/Blocks/Recommendation/store/recommendation.js";
12
+ import de from "./organisms/AutoSaveController.vue.js";
13
+ import le from "./organisms/base/Toaster.vue.js";
14
+ import ue from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
15
+ import pe from "./organisms/header/HeaderWrapper.vue.js";
16
+ import fe from "./organisms/LoadingWrapper.vue.js";
17
+ import ve from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
18
+ import Se from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
19
+ import { useStripoApi as ye } from "../services/stripoApi.js";
20
+ import { useConfigStore as he } from "../stores/config.js";
21
+ import { useDynamicContentStore as ge } from "../stores/dynamic-content.js";
22
22
  import { useEditorStore as $ } from "../stores/editor.js";
23
- import { usePreviewStore as ge } from "../stores/preview.js";
24
- import { useTemplateStore as be } from "../stores/template.js";
25
- import { useUnsubscribeStore as Ee } from "../stores/unsubscribe.js";
26
- const Ve = /* @__PURE__ */ X({
23
+ import { usePreviewStore as be } from "../stores/preview.js";
24
+ import { useTemplateStore as Ee } from "../stores/template.js";
25
+ import { useUnsubscribeStore as we } from "../stores/unsubscribe.js";
26
+ const je = /* @__PURE__ */ X({
27
27
  __name: "Guido",
28
28
  props: {
29
29
  config: null
30
30
  },
31
31
  emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change", "ready", "onboarding:finished", "test-email:click"],
32
32
  setup(z, { expose: q, emit: n }) {
33
- const b = z, K = I(
33
+ const b = z, K = P(
34
34
  () => import("./organisms/email-preview/PreviewContainer.vue.js")
35
- ), V = I(
35
+ ), V = P(
36
36
  () => import("./organisms/onboarding/OnboardingWrapper.vue.js")
37
- ), E = W(), p = W(), f = he(), w = Ee(), i = ye();
37
+ ), E = G(), p = G(), f = ge(), w = we(), i = he();
38
38
  i.init(b.config);
39
- const m = $(), j = ge(), d = x(() => m.hasChanges), { isTestPartner: J } = re(), D = () => {
39
+ const m = $(), j = be(), d = W(() => m.hasChanges), { isTestPartner: J } = re(), D = () => {
40
40
  var e;
41
41
  return (e = E.value) == null ? void 0 : e.handleSave(!0);
42
42
  }, C = (e) => {
@@ -44,25 +44,25 @@ const Ve = /* @__PURE__ */ X({
44
44
  }, {
45
45
  templateId: v,
46
46
  userId: T,
47
- partnerName: L,
48
- username: k,
47
+ partnerName: O,
48
+ username: _,
49
49
  template: o,
50
50
  editor: s
51
- } = i, l = (o == null ? void 0 : o.html) || "", F = (o == null ? void 0 : o.css) || "", S = (o == null ? void 0 : o.preselectedDynamicContent) || [], U = (s == null ? void 0 : s.savedModulesFolderName) || H.SAVED_MODULES, _ = (s == null ? void 0 : s.defaultModulesFolderName) || H.DEFAULT_MODULES;
51
+ } = i, l = (o == null ? void 0 : o.html) || "", F = (o == null ? void 0 : o.css) || "", S = (o == null ? void 0 : o.preselectedDynamicContent) || [], R = (s == null ? void 0 : s.savedModulesFolderName) || H.SAVED_MODULES, L = (s == null ? void 0 : s.defaultModulesFolderName) || H.DEFAULT_MODULES;
52
52
  oe(), ne();
53
53
  const y = {
54
54
  emailId: v,
55
55
  userId: T,
56
- username: k,
57
- partnerName: L,
58
- savedModulesFolderName: U,
59
- defaultModulesFolderName: _
60
- }, M = {
56
+ username: _,
57
+ partnerName: O,
58
+ savedModulesFolderName: R,
59
+ defaultModulesFolderName: L
60
+ }, N = {
61
61
  preselectedDynamicContentList: S,
62
62
  onReady: () => {
63
63
  console.debug("guido:ready"), n("ready");
64
64
  }
65
- }, { initPlugin: O } = se(y, M), { getDefaultTemplate: P } = Se(), { cloneTimersOnSave: R, hasTimerBlocks: A } = ae(), Q = x(() => {
65
+ }, { initPlugin: k } = se(y, N), { getDefaultTemplate: U } = ye(), { cloneTimersOnSave: A, hasTimerBlocks: B } = ae(), Q = W(() => {
66
66
  var e;
67
67
  return !((e = i.ui) != null && e.showHeader);
68
68
  });
@@ -81,9 +81,9 @@ const Ve = /* @__PURE__ */ X({
81
81
  console.debug("guido:test-email:click"), n("test-email:click");
82
82
  }
83
83
  });
84
- const B = (e) => {
84
+ const I = (e) => {
85
85
  console.debug("dynamic-content:close", e), f.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
86
- }, N = () => {
86
+ }, M = () => {
87
87
  console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
88
88
  };
89
89
  Y(() => d.value, () => {
@@ -96,22 +96,22 @@ const Ve = /* @__PURE__ */ X({
96
96
  let a = null;
97
97
  const g = () => {
98
98
  var t;
99
- const e = document.querySelector(ce);
99
+ const e = document.querySelector(ie);
100
100
  (t = p.value) == null || t.style.setProperty("--ribbon-offset", `${(e == null ? void 0 : e.offsetHeight) ?? 0}px`);
101
101
  };
102
102
  return Z(async () => {
103
103
  var t, u;
104
- console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow"), ie().$reset(), $().$reset(), m.templateId = v, be().$reset(), g();
104
+ console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow"), me().$reset(), $().$reset(), m.templateId = v, Ee().$reset(), g();
105
105
  const e = (t = p.value) == null ? void 0 : t.parentElement;
106
106
  e && (a = new ResizeObserver(g), a.observe(e));
107
107
  try {
108
108
  w.selectedUnsubscribePages = (o == null ? void 0 : o.selectedUnsubscribePages) || [];
109
109
  const c = ((u = o == null ? void 0 : o.migration) == null ? void 0 : u.recommendationConfigs) ?? {};
110
110
  let r = {
111
- html: l && await G(l, c),
111
+ html: l && await x(l, c),
112
112
  css: F
113
113
  };
114
- r.html || (r = await P(), r.html = await G(r.html, c)), A(r.html) && (r.html = await R(r.html)), await O(r), f.selectedDynamicContentList = S;
114
+ r.html || (r = await U(), r.html = await x(r.html, c)), B(r.html) && (r.html = await A(r.html)), await k(r), f.selectedDynamicContentList = S;
115
115
  } catch (c) {
116
116
  console.error("Failed to initialize Stripo editor:", c);
117
117
  }
@@ -126,15 +126,15 @@ const Ve = /* @__PURE__ */ X({
126
126
  i.reset();
127
127
  }), q({
128
128
  dynamicContent: {
129
- insert: B,
130
- close: N
129
+ insert: I,
130
+ close: M
131
131
  },
132
132
  hasChanges: d,
133
133
  saveSilent: D,
134
134
  setLoading: C
135
- }), { __sfc: !0, PreviewContainer: K, OnboardingWrapper: V, headerWrapperRef: E, wrapperRef: p, dynamicContentStore: f, unsubscribeStore: w, props: b, configStore: i, editorStore: m, previewStore: j, hasChanges: d, isTestPartner: J, saveSilent: D, setLoading: C, templateId: v, userId: T, partnerName: L, username: k, templateConfig: o, editorConfig: s, html: l, css: F, preselectedDynamicContentList: S, savedModulesFolderName: U, defaultModulesFolderName: _, emit: n, metadata: y, options: M, initPlugin: O, getDefaultTemplate: P, cloneTimersOnSave: R, hasTimerBlocks: A, noHeader: Q, insertDynamicContent: B, closeDynamicContent: N, handleDynamicContentOpen: h, ribbonObserver: a, updateRibbonOffset: g, AutoSaveController: me, Toaster: de, FilterSelectionDrawer: le, HeaderWrapper: ue, LoadingWrapper: pe, SaveAsTemplateDrawer: fe, UnsubscribeWrapper: ve };
135
+ }), { __sfc: !0, PreviewContainer: K, OnboardingWrapper: V, headerWrapperRef: E, wrapperRef: p, dynamicContentStore: f, unsubscribeStore: w, props: b, configStore: i, editorStore: m, previewStore: j, hasChanges: d, isTestPartner: J, saveSilent: D, setLoading: C, templateId: v, userId: T, partnerName: O, username: _, templateConfig: o, editorConfig: s, html: l, css: F, preselectedDynamicContentList: S, savedModulesFolderName: R, defaultModulesFolderName: L, emit: n, metadata: y, options: N, initPlugin: k, getDefaultTemplate: U, cloneTimersOnSave: A, hasTimerBlocks: B, noHeader: Q, insertDynamicContent: I, closeDynamicContent: M, handleDynamicContentOpen: h, ribbonObserver: a, updateRibbonOffset: g, FORCE_ONBOARDING_FOR_TESTING: ce, AutoSaveController: de, Toaster: le, FilterSelectionDrawer: ue, HeaderWrapper: pe, LoadingWrapper: fe, SaveAsTemplateDrawer: ve, UnsubscribeWrapper: Se };
136
136
  }
137
137
  });
138
138
  export {
139
- Ve as default
139
+ je as default
140
140
  };
@@ -15,7 +15,7 @@ var u = function() {
15
15
  p,
16
16
  !1,
17
17
  null,
18
- "6e711fd7"
18
+ "82128f7d"
19
19
  );
20
20
  const v = c.exports;
21
21
  export {
@@ -10,9 +10,9 @@ var s = function() {
10
10
  d,
11
11
  !1,
12
12
  null,
13
- "d11dd577"
13
+ "5c02dcc7"
14
14
  );
15
- const c = i.exports;
15
+ const p = i.exports;
16
16
  export {
17
- c as default
17
+ p as default
18
18
  };
@@ -8,8 +8,6 @@ const c = /* @__PURE__ */ n({
8
8
  setup(l, { expose: r }) {
9
9
  const e = m(null);
10
10
  return r({
11
- // Stryker disable next-line OptionalChaining: RightSlot is always rendered (no
12
- // v-if), so rightSlotRef.value is never null and `?.` cannot short-circuit.
13
11
  handleSave: (t) => {
14
12
  var o;
15
13
  return (o = e.value) == null ? void 0 : o.handleSave(t);
@@ -14,7 +14,7 @@ var n = function() {
14
14
  a,
15
15
  !1,
16
16
  null,
17
- "fad98586"
17
+ "64c52560"
18
18
  );
19
19
  const _ = c.exports;
20
20
  export {