@useinsider/guido 3.11.0-beta.f2b79f2 → 3.11.0-beta.f398c54

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.
@@ -1,5 +1,5 @@
1
1
  import { ModuleFolderDefaults as S } 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 h, boolean as o, array as c, record as k, literal as i, looseObject as g, variant as R, union as f, unknown as s } from "../../node_modules/valibot/dist/index.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
- }, C = a({
15
+ }, R = a({
16
16
  /** Unique identifier for the template being edited */
17
17
  templateId: p(
18
18
  t(),
@@ -30,7 +30,7 @@ const d = {
30
30
  name: t(),
31
31
  /** Fallback font family (e.g., "serif" or "sans-serif") */
32
32
  family: t()
33
- }), A = a({
33
+ }), C = a({
34
34
  /** Partner/organization name (required) */
35
35
  name: p(
36
36
  t(),
@@ -54,7 +54,7 @@ const d = {
54
54
  username: e(t(), "Guido User"),
55
55
  /** Fallback font settings from partner settings — used to match backend size calculation */
56
56
  fallbackFont: e(T)
57
- }), y = a({
57
+ }), A = a({
58
58
  /** Display text for the dynamic content */
59
59
  text: t(),
60
60
  /** Template variable value (e.g., {{username}}) */
@@ -68,35 +68,35 @@ const d = {
68
68
  value: t()
69
69
  })
70
70
  )
71
- }), I = g({
71
+ }), I = y({
72
72
  /** Block ID (matches the dictionary key and the legacy HTML element id) */
73
- id: e(n()),
73
+ id: e(s()),
74
74
  /** Decimal places for price display (legacy data may use string or number) */
75
- decimalCount: e(f([t(), n()])),
75
+ decimalCount: e(f([t(), s()])),
76
76
  /** Pinned product IDs (empty array when filter-driven) */
77
- productIds: e(c(s())),
77
+ productIds: e(c(n())),
78
78
  /** Whether the block requested live products at send time */
79
79
  sendProductRequestFlag: e(o()),
80
80
  /** Whether to randomize product order */
81
81
  shuffleProducts: e(o()),
82
82
  /** Filter rules driving product selection */
83
- filters: e(c(s())),
83
+ filters: e(c(n())),
84
84
  /** Currency code (e.g. 'EUR') — sometimes absent in legacy data */
85
85
  currency: e(t()),
86
86
  /** Currency display settings (separators, alignment, decimals) */
87
- currencySettings: e(s()),
87
+ currencySettings: e(n()),
88
88
  /** Locale (e.g. 'nl_NL') */
89
89
  language: e(t()),
90
90
  /** Recommendation strategy key (e.g. 'newArrivals') */
91
91
  strategy: e(t()),
92
92
  /** Snapshot of products as rendered by the legacy block */
93
- recommendedProducts: e(c(s())),
93
+ recommendedProducts: e(c(n())),
94
94
  /** Number of product cards per row */
95
- cardsInRow: e(n()),
95
+ cardsInRow: e(s()),
96
96
  /** Mobile-only padding (right) */
97
- mobileRightPadding: e(n()),
97
+ mobileRightPadding: e(s()),
98
98
  /** Mobile-only padding (left) */
99
- mobileLeftPadding: e(n()),
99
+ mobileLeftPadding: e(s()),
100
100
  /** Disable responsive scaling */
101
101
  unresponsive: e(o()),
102
102
  /** Layout orientation ('vertical' | 'horizontal') */
@@ -106,14 +106,14 @@ const d = {
106
106
  /** Block type marker used by some legacy variants */
107
107
  blockType: e(t()),
108
108
  /** Size variant marker (legacy data may use string or number) */
109
- size: e(f([t(), n()])),
109
+ size: e(f([t(), s()])),
110
110
  /** Vertical responsiveness flag (legacy size=1 variants) */
111
111
  verticalResponsiveness: e(o()),
112
112
  /** Legacy "Move to next line" price placement toggle (cardPricePlacement.js) */
113
113
  isPriceMovedToNextLine: e(o()),
114
114
  /** Legacy "Hide if same as discounted" / delete-price-for-zero-sale toggle */
115
115
  isPriceDeletedForZeroSale: e(o())
116
- }), v = a({
116
+ }), L = a({
117
117
  /**
118
118
  * Legacy recommendation block configs keyed by block ID.
119
119
  * Pass this when loading a template authored with the v1
@@ -124,34 +124,25 @@ const d = {
124
124
  k(t(), I),
125
125
  {}
126
126
  )
127
- }), L = a({
127
+ }), P = a({
128
128
  /** Initial HTML content */
129
129
  html: e(t(), ""),
130
130
  /** Initial CSS content */
131
131
  css: e(t(), ""),
132
132
  /** Preselected dynamic content items */
133
133
  preselectedDynamicContent: e(
134
- c(y),
135
- []
136
- ),
137
- /**
138
- * Full set of dynamic-content items the account offers (label + token).
139
- * Used as the label→token map that repairs label-form placeholders
140
- * (e.g. `{{ Phone Number }}`) in dropped saved modules.
141
- */
142
- availableDynamicContent: e(
143
- c(y),
134
+ c(A),
144
135
  []
145
136
  ),
146
137
  /** Valid custom field attribute names from the partner's categorized fields */
147
138
  customFieldAttributes: e(c(t()), []),
148
139
  /** Selected unsubscribe page IDs */
149
- selectedUnsubscribePages: e(c(n()), []),
140
+ selectedUnsubscribePages: e(c(s()), []),
150
141
  /** Force recreate template in Stripo storage (use true when updating externally modified templates) */
151
142
  forceRecreate: e(o(), !1),
152
143
  /** Migration-only inputs (legacy block configs) */
153
- migration: e(v, {})
154
- }), P = a({
144
+ migration: e(L, {})
145
+ }), v = a({
155
146
  /** Sender display name */
156
147
  senderName: e(t(), ""),
157
148
  /** Email subject line */
@@ -162,9 +153,9 @@ const d = {
162
153
  /** Path to translations object */
163
154
  translationsPath: e(t(), "window.trans[Object.keys(window.trans)[0]]"),
164
155
  /** Migration date for template compatibility */
165
- migrationDate: e(n(), 1759696858),
156
+ migrationDate: e(s(), 1759696858),
166
157
  /** Email header settings */
167
- emailHeader: e(P, { senderName: "", subject: "" }),
158
+ emailHeader: e(v, { senderName: "", subject: "" }),
168
159
  /** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
169
160
  savedModulesFolderName: e(t(), S.SAVED_MODULES),
170
161
  /** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
@@ -193,7 +184,7 @@ const d = {
193
184
  liquidSyntax: e(o(), !1),
194
185
  /** Enable autosave (3-min interval + tab-hide). User toggles on/off from the header. */
195
186
  autosave: e(o(), !1)
196
- }), D = l([
187
+ }), N = l([
197
188
  "amp-accordion",
198
189
  "amp-carousel",
199
190
  "amp-form-controls",
@@ -207,7 +198,7 @@ const d = {
207
198
  "text-block",
208
199
  "timer-block",
209
200
  "video-block"
210
- ]), N = l([
201
+ ]), D = l([
211
202
  "dynamic-content",
212
203
  "checkbox-block",
213
204
  "radio-button-block",
@@ -218,12 +209,12 @@ const d = {
218
209
  ]), x = a({
219
210
  /** Default blocks to exclude from the editor */
220
211
  excludeDefaults: e(
221
- c(D),
212
+ c(N),
222
213
  []
223
214
  ),
224
215
  /** Custom blocks to include in the editor */
225
216
  includeCustoms: e(
226
- c(N),
217
+ c(D),
227
218
  []
228
219
  )
229
220
  }), m = a({
@@ -232,7 +223,7 @@ const d = {
232
223
  /** Human-readable description */
233
224
  description: e(t()),
234
225
  /** Priority for rule ordering (lower = earlier) */
235
- priority: n()
226
+ priority: s()
236
227
  }), F = a({
237
228
  ...m.entries,
238
229
  type: i("replace"),
@@ -264,7 +255,7 @@ const d = {
264
255
  (u) => typeof u == "function",
265
256
  "processor must be a function"
266
257
  )
267
- }), H = R("type", [
258
+ }), H = g("type", [
268
259
  F,
269
260
  U,
270
261
  B,
@@ -288,12 +279,12 @@ const d = {
288
279
  }), V = a({
289
280
  // Required sections
290
281
  /** Identity configuration (required) */
291
- identity: C,
282
+ identity: R,
292
283
  /** Partner configuration (required) */
293
- partner: A,
284
+ partner: C,
294
285
  // Optional sections (with defaults)
295
286
  /** Template content and presets */
296
- template: e(L, {}),
287
+ template: e(P, {}),
297
288
  /** Editor settings */
298
289
  editor: e(E, {}),
299
290
  /** UI configuration */
@@ -312,24 +303,24 @@ export {
312
303
  q as CallbacksSchema,
313
304
  H as CompilerRuleSchema,
314
305
  j as CompilerSchema,
315
- N as CustomBlockTypeSchema,
306
+ D as CustomBlockTypeSchema,
316
307
  w as CustomRuleSchema,
317
- D as DefaultBlockTypeSchema,
318
- y as DynamicContentSchema,
308
+ N as DefaultBlockTypeSchema,
309
+ A as DynamicContentSchema,
319
310
  E as EditorSchema,
320
- P as EmailHeaderSchema,
311
+ v as EmailHeaderSchema,
321
312
  T as FallbackFontSchema,
322
313
  O as FeaturesSchema,
323
314
  V as GuidoConfigSchema,
324
- C as IdentitySchema,
315
+ R as IdentitySchema,
325
316
  I as LegacyRecommendationConfigSchema,
326
317
  d as MessageType,
327
- A as PartnerSchema,
318
+ C as PartnerSchema,
328
319
  r as ProductType,
329
320
  U as RegexRuleSchema,
330
321
  B as RemoveRuleSchema,
331
322
  F as ReplaceRuleSchema,
332
- v as TemplateMigrationSchema,
333
- L as TemplateSchema,
323
+ L as TemplateMigrationSchema,
324
+ P as TemplateSchema,
334
325
  M as UISchema
335
326
  };
@@ -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 {
@@ -1,45 +1,44 @@
1
- import { useActionsApi as x } from "./useActionsApi.js";
2
- import { useBlocksConfig as O } from "./useBlocksConfig.js";
3
- import { useConfig as q } from "./useConfig.js";
4
- import { useCustomInterfaceAppearance as H } from "./useCustomInterfaceAppearance.js";
5
- import { useFullStoryBridge as N } from "./useFullStoryBridge.js";
6
- import { useModuleDynamicContentRepair as z } from "./useModuleDynamicContentRepair.js";
7
- import { useStripoEventHandler as L } from "./useStripoEventHandler.js";
8
- import { useStripoNotifications as $ } from "./useStripoNotifications.js";
9
- import { useToaster as G } from "./useToaster.js";
10
- import { localePatch as J } from "../config/i18n/index.js";
11
- import { en as C } from "../config/i18n/en/index.js";
12
- import { ToasterTypeOptions as X } from "../enums/toaster.js";
13
- import { useStripoApi as j } from "../services/stripoApi.js";
14
- import K from "../static/styles/customEditorStyle.css.js";
15
- import { useEditorStore as w } from "../stores/editor.js";
16
- import { buildMergeTagEntries as Q } from "../utils/genericUtil.js";
17
- import W from "../package.json.js";
18
- const ye = (b, l) => {
19
- const { features: c, template: u, isFeatureEnabled: m } = q(), { handleError: p, showToaster: k } = G(), { getToken: v, getCustomFonts: T, getSyncModulesStatus: B } = j(), { handleEvent: F } = L(), { handleModuleAdd: M } = z(), { getStripoBlocksConfig: A } = O(), { getStripoNotifications: V } = $(), _ = async (s, i = [], r = !1) => {
20
- var S, y, h, E;
21
- const e = w(), { html: f, css: a } = s, { baseBlocks: t, extensions: d } = await A(), g = ((S = c.value) == null ? void 0 : S.displayConditions) ?? !0, P = ((y = c.value) == null ? void 0 : y.modulesDisabled) ?? !1, I = ((h = u.value) == null ? void 0 : h.forceRecreate) ?? !1;
1
+ import { useActionsApi as U } from "./useActionsApi.js";
2
+ import { useBlocksConfig as R } from "./useBlocksConfig.js";
3
+ import { useConfig as x } from "./useConfig.js";
4
+ import { useCustomInterfaceAppearance as O } from "./useCustomInterfaceAppearance.js";
5
+ import { useFullStoryBridge as q } from "./useFullStoryBridge.js";
6
+ import { useStripoEventHandler as H } from "./useStripoEventHandler.js";
7
+ import { useStripoNotifications as N } from "./useStripoNotifications.js";
8
+ import { useToaster as z } from "./useToaster.js";
9
+ import { localePatch as L } from "../config/i18n/index.js";
10
+ import { en as h } from "../config/i18n/en/index.js";
11
+ import { ToasterTypeOptions as $ } from "../enums/toaster.js";
12
+ import { useStripoApi as G } from "../services/stripoApi.js";
13
+ import J from "../static/styles/customEditorStyle.css.js";
14
+ import { useEditorStore as E } from "../stores/editor.js";
15
+ import { dynamicContentToMergeTags as X } from "../utils/genericUtil.js";
16
+ import j from "../package.json.js";
17
+ const fo = (C, l) => {
18
+ const { features: c, template: w, isFeatureEnabled: u } = x(), { handleError: m, showToaster: b } = z(), { getToken: T, getCustomFonts: k, getSyncModulesStatus: B } = G(), { handleEvent: F } = H(), { getStripoBlocksConfig: v } = R(), { getStripoNotifications: V } = N(), _ = async (s, i = [], r = !1) => {
19
+ var g, S, y;
20
+ const o = E(), { html: p, css: a } = s, { baseBlocks: t, extensions: d } = await v(), f = ((g = c.value) == null ? void 0 : g.displayConditions) ?? !0, M = ((S = c.value) == null ? void 0 : S.modulesDisabled) ?? !1, P = ((y = w.value) == null ? void 0 : y.forceRecreate) ?? !1;
22
21
  await window.UIEditor.initEditor(
23
22
  document.querySelector("#guido-editor"),
24
23
  {
25
- metadata: b,
26
- html: f,
24
+ metadata: C,
25
+ html: p,
27
26
  css: a,
28
- forceRecreate: I,
27
+ forceRecreate: P,
29
28
  locale: "en",
30
29
  undoButtonSelector: "#guido__undo-button",
31
30
  redoButtonSelector: "#guido__redo-button",
32
31
  mobileViewButtonSelector: ".guido__view-option-selection-mobile",
33
32
  desktopViewButtonSelector: ".guido__view-option-selection-desktop",
34
33
  codeEditorButtonSelector: "#guido__code-button",
35
- customAppearanceMergetags: !m("liquidSyntax"),
34
+ customAppearanceMergetags: !u("liquidSyntax"),
36
35
  customAppearanceMergetagsBorderColor: "#f1f3fe",
37
36
  customAppearanceMergetagsBackgroundColor: "#f1f3fe",
38
- customViewStyles: K,
39
- conditionsEnabled: g,
40
- customConditionsEnabled: g,
37
+ customViewStyles: J,
38
+ conditionsEnabled: f,
39
+ customConditionsEnabled: f,
41
40
  enableXSSSecurity: !0,
42
- modulesDisabled: P,
41
+ modulesDisabled: M,
43
42
  syncModulesEnabled: r,
44
43
  messageSettingsEnabled: !0,
45
44
  displayGmailAnnotations: !0,
@@ -57,45 +56,43 @@ const ye = (b, l) => {
57
56
  },
58
57
  mergeTags: [
59
58
  {
60
- entries: Q(
59
+ entries: X(
61
60
  l.preselectedDynamicContentList,
62
- ((E = u.value) == null ? void 0 : E.availableDynamicContent) ?? [],
63
- m("liquidSyntax")
61
+ u("liquidSyntax")
64
62
  )
65
63
  }
66
64
  ],
67
- async onTokenRefreshRequest(o) {
65
+ async onTokenRefreshRequest(e) {
68
66
  try {
69
- const n = await v();
70
- o(n);
67
+ const n = await T();
68
+ e(n);
71
69
  } catch (n) {
72
- p(n, "Failed to refresh token");
70
+ m(n, "Failed to refresh token");
73
71
  }
74
72
  },
75
73
  onTemplateLoaded() {
76
74
  try {
77
- const { importCss: o } = H(), { activateCustomViewStyles: n, updateTimerInClonedTemplate: R } = x(), { injectFullStory: U } = N();
78
- o(), n(), U(), R(), l.onReady(), e.isStripoInitialized = !0, e.loadingStatus = !1, setTimeout(() => {
79
- e.hasChanges = !1;
75
+ const { importCss: e } = O(), { activateCustomViewStyles: n, updateTimerInClonedTemplate: D } = U(), { injectFullStory: I } = q();
76
+ e(), n(), I(), D(), l.onReady(), o.isStripoInitialized = !0, o.loadingStatus = !1, setTimeout(() => {
77
+ o.hasChanges = !1;
80
78
  }, 1e3);
81
- } catch (o) {
82
- p(o, "Failed to load custom interface appearance");
79
+ } catch (e) {
80
+ m(e, "Failed to load custom interface appearance");
83
81
  }
84
82
  },
85
- onCodeEditorVisibilityChanged(o) {
86
- e.isCodeEditorOpen = o;
83
+ onCodeEditorVisibilityChanged(e) {
84
+ o.isCodeEditorOpen = e;
87
85
  },
88
- onEditorVisualModeChanged(o) {
89
- e.editorVisualMode = o.toLowerCase();
86
+ onEditorVisualModeChanged(e) {
87
+ o.editorVisualMode = e.toLowerCase();
90
88
  },
91
- onVersionHistoryVisibilityChanged(o) {
92
- e.isVersionHistoryOpen = o;
89
+ onVersionHistoryVisibilityChanged(e) {
90
+ o.isVersionHistoryOpen = e;
93
91
  },
94
92
  onDataChanged() {
95
- e.hasChanges = !0;
93
+ o.hasChanges = !0;
96
94
  },
97
95
  onEvent: F,
98
- onModuleAdd: M,
99
96
  notifications: V(),
100
97
  ignoreClickOutsideSelectors: [
101
98
  "#guido-dynamic-content-modal",
@@ -103,16 +100,16 @@ const ye = (b, l) => {
103
100
  ".in-drawer__container"
104
101
  ],
105
102
  extensions: d,
106
- localePatch: J
103
+ localePatch: L
107
104
  }
108
105
  );
109
- }, D = (s) => new Promise((i, r) => {
106
+ }, A = (s) => new Promise((i, r) => {
110
107
  var d;
111
108
  if (document.getElementById("UiEditorScript")) {
112
109
  Promise.resolve(s()).then(i, r);
113
110
  return;
114
111
  }
115
- const e = W.guido, a = `https://email-static.useinsider.com/guido/${(d = e == null ? void 0 : e.stripo) == null ? void 0 : d.version}/UIEditor.js`, t = document.createElement("script");
112
+ const o = j.guido, a = `https://email-static.useinsider.com/guido/${(d = o == null ? void 0 : o.stripo) == null ? void 0 : d.version}/UIEditor.js`, t = document.createElement("script");
116
113
  t.id = "UiEditorScript", t.type = "module", t.src = a, t.onload = () => {
117
114
  Promise.resolve(s()).then(i, r);
118
115
  }, t.onerror = () => {
@@ -120,21 +117,21 @@ const ye = (b, l) => {
120
117
  }, document.body.appendChild(t);
121
118
  });
122
119
  return { initPlugin: async (s) => {
123
- const i = w();
120
+ const i = E();
124
121
  try {
125
- await D(async () => {
126
- const [r, e] = await Promise.all([
127
- T(),
122
+ await A(async () => {
123
+ const [r, o] = await Promise.all([
124
+ k(),
128
125
  B()
129
126
  ]);
130
- i.syncModulesEnabled = e, await _(s, r, e);
127
+ i.syncModulesEnabled = o, await _(s, r, o);
131
128
  });
132
129
  } catch {
133
- i.loadingStatus = !1, k({
134
- type: X.Error,
135
- message: C["An error has occurred. Please report the error code to support."],
130
+ i.loadingStatus = !1, b({
131
+ type: $.Error,
132
+ message: h["An error has occurred. Please report the error code to support."],
136
133
  actionButton: {
137
- text: C["Reload page"],
134
+ text: h["Reload page"],
138
135
  onClick: () => window.location.reload()
139
136
  }
140
137
  });
@@ -142,5 +139,5 @@ const ye = (b, l) => {
142
139
  } };
143
140
  };
144
141
  export {
145
- ye as useStripo
142
+ fo as useStripo
146
143
  };
package/dist/guido.css CHANGED
@@ -1 +1 @@
1
- .gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-73199fa4] .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-2cb418af] .in-progress-wrapper__progress p span:last-child{display:none!important}[data-v-2cb418af] .in-progress-description-status{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-fad98586]{gap:8px}.version-history__toolbar[data-v-fad98586]{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}.auto-save-toggle[data-v-2c964af4]{position:relative}.auto-save-toggle__info-box[data-v-2c964af4]{position:absolute;top:100%;left:0;z-index:10;width:280px}.editor-actions[data-v-6e711fd7]{gap:4px}.header-wrapper[data-v-d11dd577]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-50dac6de]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-50dac6de]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-50dac6de]{height:calc(100vh - 75px - var(--ribbon-offset))}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-91a26acd]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-91a26acd]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-91a26acd]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-91a26acd]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-91a26acd]{object-fit:cover;transform:scale(1)}[data-v-b9a93c6e] .guido__verion-history-view-option-selection-desktop svg,[data-v-b9a93c6e] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-b9a93c6e] .in-segments-wrapper__button_selected,[data-v-b9a93c6e] .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-06afaecb]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-06afaecb]{min-height:504px}.iframe-wrapper[data-v-cbafc185]{width:258px}.iframe-scaled[data-v-cbafc185]{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-7419ae06] .vueperslides__bullets,[data-v-796d193b] .vueperslides__bullets{pointer-events:none!important}[data-v-796d193b] .vueperslides__parallax-wrapper{height:110px!important}[data-v-cadfc82d] .vueperslides__bullets{pointer-events:none!important}[data-v-cadfc82d] .vueperslides__parallax-wrapper{height:110px!important}
1
+ .gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-73199fa4] .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-2cb418af] .in-progress-wrapper__progress p span:last-child{display:none!important}[data-v-2cb418af] .in-progress-description-status{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}.auto-save-toggle[data-v-2c964af4]{position:relative}.auto-save-toggle__info-box[data-v-2c964af4]{position:absolute;top:100%;left:0;z-index:10;width:280px}.editor-actions[data-v-82128f7d]{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-50dac6de]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-50dac6de]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-50dac6de]{height:calc(100vh - 75px - var(--ribbon-offset))}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-91a26acd]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-91a26acd]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-91a26acd]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-91a26acd]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-91a26acd]{object-fit:cover;transform:scale(1)}[data-v-b9a93c6e] .guido__verion-history-view-option-selection-desktop svg,[data-v-b9a93c6e] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-b9a93c6e] .in-segments-wrapper__button_selected,[data-v-b9a93c6e] .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-06afaecb]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-06afaecb]{min-height:504px}.iframe-wrapper[data-v-cbafc185]{width:258px}.iframe-scaled[data-v-cbafc185]{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-7419ae06] .vueperslides__bullets,[data-v-796d193b] .vueperslides__bullets{pointer-events:none!important}[data-v-796d193b] .vueperslides__parallax-wrapper{height:110px!important}[data-v-cadfc82d] .vueperslides__bullets{pointer-events:none!important}[data-v-cadfc82d] .vueperslides__parallax-wrapper{height:110px!important}
@@ -227,24 +227,6 @@ export declare const TemplateSchema: v.ObjectSchema<{
227
227
  readonly value: v.StringSchema<undefined>;
228
228
  }, undefined>, undefined>;
229
229
  }, undefined>, undefined>, readonly []>;
230
- /**
231
- * Full set of dynamic-content items the account offers (label + token).
232
- * Used as the label→token map that repairs label-form placeholders
233
- * (e.g. `{{ Phone Number }}`) in dropped saved modules.
234
- */
235
- readonly availableDynamicContent: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
236
- /** Display text for the dynamic content */
237
- readonly text: v.StringSchema<undefined>;
238
- /** Template variable value (e.g., {{username}}) */
239
- readonly value: v.StringSchema<undefined>;
240
- /** Fallback value if variable is empty */
241
- readonly fallback: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
242
- /** Optional formatting options */
243
- readonly format: v.OptionalSchema<v.ObjectSchema<{
244
- readonly key: v.StringSchema<undefined>;
245
- readonly value: v.StringSchema<undefined>;
246
- }, undefined>, undefined>;
247
- }, undefined>, undefined>, readonly []>;
248
230
  /** Valid custom field attribute names from the partner's categorized fields */
249
231
  readonly customFieldAttributes: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, readonly []>;
250
232
  /** Selected unsubscribe page IDs */
@@ -640,24 +622,6 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
640
622
  readonly value: v.StringSchema<undefined>;
641
623
  }, undefined>, undefined>;
642
624
  }, undefined>, undefined>, readonly []>;
643
- /**
644
- * Full set of dynamic-content items the account offers (label + token).
645
- * Used as the label→token map that repairs label-form placeholders
646
- * (e.g. `{{ Phone Number }}`) in dropped saved modules.
647
- */
648
- readonly availableDynamicContent: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
649
- /** Display text for the dynamic content */
650
- readonly text: v.StringSchema<undefined>;
651
- /** Template variable value (e.g., {{username}}) */
652
- readonly value: v.StringSchema<undefined>;
653
- /** Fallback value if variable is empty */
654
- readonly fallback: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
655
- /** Optional formatting options */
656
- readonly format: v.OptionalSchema<v.ObjectSchema<{
657
- readonly key: v.StringSchema<undefined>;
658
- readonly value: v.StringSchema<undefined>;
659
- }, undefined>, undefined>;
660
- }, undefined>, undefined>, readonly []>;
661
625
  /** Valid custom field attribute names from the partner's categorized fields */
662
626
  readonly customFieldAttributes: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, readonly []>;
663
627
  /** Selected unsubscribe page IDs */
@@ -34,15 +34,6 @@ export declare const useConfig: () => {
34
34
  value: string;
35
35
  } | undefined;
36
36
  }[];
37
- availableDynamicContent: {
38
- text: string;
39
- value: string;
40
- fallback?: string | undefined;
41
- format?: {
42
- key: string;
43
- value: string;
44
- } | undefined;
45
- }[];
46
37
  customFieldAttributes: string[];
47
38
  selectedUnsubscribePages: number[];
48
39
  forceRecreate: boolean;
@@ -171,15 +162,6 @@ export declare const useConfig: () => {
171
162
  value: string;
172
163
  } | undefined;
173
164
  }[];
174
- availableDynamicContent: {
175
- text: string;
176
- value: string;
177
- fallback?: string | undefined;
178
- format?: {
179
- key: string;
180
- value: string;
181
- } | undefined;
182
- }[];
183
165
  customFieldAttributes: string[];
184
166
  selectedUnsubscribePages: number[];
185
167
  forceRecreate: boolean;
@@ -0,0 +1 @@
1
+ export {};
@@ -21,8 +21,8 @@ export declare const useHttp: (defaultOptions?: HttpOptions) => {
21
21
  loading: import("vue").ComputedRef<boolean>;
22
22
  error: import("vue").ComputedRef<{
23
23
  message: string;
24
- status?: number | undefined;
25
- statusText?: string | undefined;
24
+ status?: number;
25
+ statusText?: string;
26
26
  response?: {
27
27
  readonly headers: {
28
28
  append: (name: string, value: string) => void;