@useinsider/guido 3.20.1-beta.8a05319 → 3.20.1-beta.c235b0d

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 (67) hide show
  1. package/dist/@types/config/schemas.js +11 -10
  2. package/dist/components/Guido.vue.js +4 -4
  3. package/dist/components/Guido.vue2.js +58 -51
  4. package/dist/components/organisms/AutoSaveController.vue2.js +19 -9
  5. package/dist/components/organisms/header/AutoSaveStatus.vue.js +17 -0
  6. package/dist/components/organisms/header/AutoSaveStatus.vue2.js +25 -0
  7. package/dist/components/organisms/header/EditorActions.vue.js +13 -13
  8. package/dist/components/organisms/header/EditorActions.vue2.js +57 -72
  9. package/dist/components/organisms/header/EditorActionsMenu.vue.js +20 -0
  10. package/dist/components/organisms/header/EditorActionsMenu.vue2.js +98 -0
  11. package/dist/components/organisms/header/HeaderWrapper.vue.js +6 -6
  12. package/dist/components/organisms/header/HeaderWrapper.vue2.js +9 -17
  13. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  14. package/dist/components/organisms/header/LeftSlot.vue2.js +28 -23
  15. package/dist/components/organisms/header/MiddleSlot.vue.js +4 -4
  16. package/dist/components/organisms/header/MiddleSlot.vue2.js +8 -7
  17. package/dist/components/organisms/header/RightSlot.vue.js +9 -8
  18. package/dist/components/organisms/header/RightSlot.vue2.js +13 -18
  19. package/dist/components/organisms/header/accessibility/AccessibilityToolbar.vue.js +18 -0
  20. package/dist/components/organisms/header/accessibility/AccessibilityToolbar.vue2.js +37 -0
  21. package/dist/components/organisms/header/accessibility/ColorVisionSelect.vue.js +22 -0
  22. package/dist/components/organisms/header/accessibility/ColorVisionSelect.vue2.js +48 -0
  23. package/dist/components/organisms/onboarding/EditorTabBarOnboarding.vue.js +19 -0
  24. package/dist/components/organisms/onboarding/EditorTabBarOnboarding.vue2.js +90 -0
  25. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +12 -12
  26. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +56 -38
  27. package/dist/composables/useAccessibilityApi.js +45 -0
  28. package/dist/composables/useCustomInterfaceAppearance.js +42 -41
  29. package/dist/config/compiler/itemsCompilerRules.js +12 -5
  30. package/dist/config/compiler/utils/itemsCompilerUtils.js +65 -45
  31. package/dist/config/i18n/en/labels.json.js +36 -4
  32. package/dist/config/i18n/en/tooltips.json.js +2 -1
  33. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +103 -91
  34. package/dist/extensions/Blocks/Recommendation/utils/captureStyleTemplates.js +72 -70
  35. package/dist/extensions/Blocks/Recommendation/utils/compositionKeys.js +69 -60
  36. package/dist/guido.css +1 -1
  37. package/dist/sprite.svg +10 -0
  38. package/dist/src/@types/config/schemas.d.ts +2 -0
  39. package/dist/src/components/organisms/AutoSaveController.vue.d.ts +19 -1
  40. package/dist/src/components/organisms/header/EditorActionsMenu.vue.d.ts +2 -0
  41. package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -19
  42. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -19
  43. package/dist/src/components/organisms/header/accessibility/AccessibilityToolbar.vue.d.ts +2 -0
  44. package/dist/src/components/organisms/header/accessibility/ColorVisionSelect.vue.d.ts +2 -0
  45. package/dist/src/components/organisms/onboarding/EditorTabBarOnboarding.vue.d.ts +2 -0
  46. package/dist/src/composables/useAccessibilityApi.d.ts +13 -0
  47. package/dist/src/composables/useActionsApi.d.ts +2 -2
  48. package/dist/src/composables/useConfig.d.ts +2 -0
  49. package/dist/src/config/compiler/utils/itemsCompilerUtils.d.ts +5 -0
  50. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +3 -0
  51. package/dist/src/extensions/Blocks/Recommendation/utils/compositionKeys.d.ts +4 -0
  52. package/dist/src/stores/autosave.d.ts +73 -1
  53. package/dist/src/stores/config.d.ts +20 -0
  54. package/dist/src/stores/editor.d.ts +109 -0
  55. package/dist/src/stores/onboarding.d.ts +952 -21
  56. package/dist/src/stores/version-history.d.ts +1 -1
  57. package/dist/src/utils/timeUtil.d.ts +5 -0
  58. package/dist/static/styles/components/accessibility.css.js +234 -0
  59. package/dist/static/styles/variables.css.js +2 -0
  60. package/dist/stores/autosave.js +12 -7
  61. package/dist/stores/editor.js +7 -4
  62. package/dist/stores/onboarding.js +43 -21
  63. package/dist/utils/timeUtil.js +6 -17
  64. package/package.json +1 -1
  65. package/dist/components/organisms/header/AutoSaveToggle.vue.js +0 -22
  66. package/dist/components/organisms/header/AutoSaveToggle.vue2.js +0 -19
  67. /package/dist/src/components/organisms/header/{AutoSaveToggle.vue.d.ts → AutoSaveStatus.vue.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
- import { ModuleFolderDefaults as f } from "../../enums/defaults.js";
2
- import { object as a, number as s, optional as e, string as t, picklist as m, pipe as i, minLength as b, custom as k, boolean as o, array as c, transform as y, unknown as r, record as g, fallback as R, literal as u, looseObject as C, variant as I, union as h, 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 m, pipe as i, minLength as b, custom as k, boolean as o, array as c, transform as y, unknown as r, record as g, fallback as R, literal as u, looseObject as C, variant as T, union as h, lazy as I } from "../../node_modules/valibot/dist/index.js";
3
3
  const p = {
4
4
  /** Promotional/marketing emails */
5
5
  PROMOTIONAL: 1,
@@ -76,17 +76,17 @@ const p = {
76
76
  value: t()
77
77
  })
78
78
  )
79
- }), S = T(() => C({
79
+ }), f = I(() => C({
80
80
  text: e(t()),
81
81
  // eslint-disable-next-line camelcase -- backend field name
82
82
  tag_text: e(t()),
83
83
  value: e(t()),
84
- children: e(c(S)),
84
+ children: e(c(f)),
85
85
  // eslint-disable-next-line camelcase -- backend field name
86
- select_items: e(c(S))
86
+ select_items: e(c(f))
87
87
  })), N = g(
88
88
  t(),
89
- R(c(S), [])
89
+ R(c(f), [])
90
90
  ), P = C({
91
91
  /** Block ID (matches the dictionary key and the legacy HTML element id) */
92
92
  id: e(s()),
@@ -210,9 +210,9 @@ const p = {
210
210
  /** Email header settings */
211
211
  emailHeader: e(D, { senderName: "", subject: "" }),
212
212
  /** Folder name for user-saved modules (used by Stripo plugin panel for path construction) */
213
- savedModulesFolderName: e(t(), f.SAVED_MODULES),
213
+ savedModulesFolderName: e(t(), S.SAVED_MODULES),
214
214
  /** Folder name for default/prebuilt modules (used by Stripo plugin panel for path construction) */
215
- defaultModulesFolderName: e(t(), f.DEFAULT_MODULES)
215
+ defaultModulesFolderName: e(t(), S.DEFAULT_MODULES)
216
216
  }), F = a({
217
217
  /** Whether to show the header bar */
218
218
  showHeader: e(o(), !0),
@@ -237,6 +237,7 @@ const p = {
237
237
  liquidSyntax: e(o(), !1),
238
238
  /** Enable autosave (3-min interval + tab-hide). User toggles on/off from the header. */
239
239
  autosave: e(o(), !1),
240
+ accessibilityTesting: e(o(), !1),
240
241
  /** Enable pre-save domain-allowlist validation (opt-in; Guido self-serves the block toaster) */
241
242
  allowlistEnabled: e(o(), !1),
242
243
  /** Enable persistent link tracking-id assignment for the click heatmap (opt-in) */
@@ -315,7 +316,7 @@ const p = {
315
316
  (n) => typeof n == "function",
316
317
  "processor must be a function"
317
318
  )
318
- }), V = I("type", [
319
+ }), V = T("type", [
319
320
  H,
320
321
  _,
321
322
  q,
@@ -367,7 +368,7 @@ export {
367
368
  G as CustomRuleSchema,
368
369
  w as DefaultBlockTypeSchema,
369
370
  N as DynamicContentListSchema,
370
- S as DynamicContentNodeSchema,
371
+ f as DynamicContentNodeSchema,
371
372
  M as DynamicContentSchema,
372
373
  O as EditorSchema,
373
374
  D as EmailHeaderSchema,
@@ -3,7 +3,7 @@ import o from "./Guido.vue2.js";
3
3
  import i from "../_virtual/_plugin-vue2_normalizer.js";
4
4
  var t = function() {
5
5
  var a = this, r = a._self._c, e = a._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) : a._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.AuthErrorModal), r(e.FilterSelectionDrawer), e.isRrsEnabled || e.hasAssignedStrategy ? r(e.AssignStrategyDrawer) : a._e(), e.isRrsEnabled || e.hasAssignedStrategy ? r(e.RemoveStrategyModal) : a._e(), e.isRrsEnabled ? r(e.LegacyStrategyUpdatedModal) : a._e(), r(e.SaveAsTemplateDrawer), e.isSaveValidationEnabled ? r(e.ValidationErrorDrawer) : a._e(), e.isTestPartner() ? a._e() : r(e.OnboardingWrapper, { on: { "onboarding-finished": function(_) {
6
+ return r("div", { ref: "wrapperRef", staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper), r(e.AutoSaveController, { ref: "autoSaveControllerRef" }), e.editorStore.isPreviewModeOpen ? r(e.PreviewContainer) : a._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.AuthErrorModal), r(e.FilterSelectionDrawer), e.isRrsEnabled || e.hasAssignedStrategy ? r(e.AssignStrategyDrawer) : a._e(), e.isRrsEnabled || e.hasAssignedStrategy ? r(e.RemoveStrategyModal) : a._e(), e.isRrsEnabled ? r(e.LegacyStrategyUpdatedModal) : a._e(), r(e.SaveAsTemplateDrawer), e.isSaveValidationEnabled ? r(e.ValidationErrorDrawer) : a._e(), e.isTestPartner() ? a._e() : r(e.OnboardingWrapper, { on: { "onboarding-finished": function(_) {
7
7
  return e.emit("onboarding:finished");
8
8
  } } }), r(e.UnsubscribeWrapper), r(e.LoadingWrapper)], 1);
9
9
  }, s = [], n = /* @__PURE__ */ i(
@@ -12,9 +12,9 @@ var t = function() {
12
12
  s,
13
13
  !1,
14
14
  null,
15
- "1b5c844a"
15
+ "6a54dbe6"
16
16
  );
17
- const v = n.exports;
17
+ const c = n.exports;
18
18
  export {
19
- v as default
19
+ c as default
20
20
  };
@@ -1,4 +1,4 @@
1
- import { defineComponent as se, defineAsyncComponent as m, ref as W, computed as p, watch as G, onMounted as ie, onUnmounted as ce } from "vue";
1
+ import { defineComponent as ie, defineAsyncComponent as m, ref as V, computed as p, watch as H, onMounted as ae, onUnmounted as ce } from "vue";
2
2
  import { useCortexBlueprintBridge as de } from "../composables/useCortexBlueprintBridge.js";
3
3
  import { useEditorLock as me } from "../composables/useEditorLock.js";
4
4
  import { provideGuidoActions as le } from "../composables/useGuidoActions.js";
@@ -7,8 +7,8 @@ import { usePartner as pe } from "../composables/usePartner.js";
7
7
  import { useSaveValidationRollout as fe } from "../composables/useSaveValidationRollout.js";
8
8
  import { useStripo as ye } from "../composables/useStripo.js";
9
9
  import { useTimerClone as ge } from "../composables/useTimerClone.js";
10
- import { migrate as V } from "../config/migrator/index.js";
11
- import { ModuleFolderDefaults as $ } from "../enums/defaults.js";
10
+ import { migrate as W } from "../config/migrator/index.js";
11
+ import { ModuleFolderDefaults as G } from "../enums/defaults.js";
12
12
  import { RIBBON_SELECTOR as Se } from "../enums/onboarding.js";
13
13
  import { useRecommendationExtensionStore as E } from "../extensions/Blocks/Recommendation/store/recommendation.js";
14
14
  import ve from "./organisms/AutoSaveController.vue.js";
@@ -16,28 +16,28 @@ import be from "./organisms/base/AuthErrorModal.vue.js";
16
16
  import he from "./organisms/base/Toaster.vue.js";
17
17
  import Ee from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
18
18
  import we from "./organisms/header/HeaderWrapper.vue.js";
19
- import De from "./organisms/LoadingWrapper.vue.js";
20
- import Ce from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
19
+ import Ce from "./organisms/LoadingWrapper.vue.js";
20
+ import De from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
21
21
  import ke from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
22
- import Fe from "./organisms/validation/ValidationErrorDrawer.vue.js";
23
- import { useStripoApi as Re } from "../services/stripoApi.js";
22
+ import Te from "./organisms/validation/ValidationErrorDrawer.vue.js";
23
+ import { useStripoApi as Fe } from "../services/stripoApi.js";
24
24
  import { useConfigStore as Me } from "../stores/config.js";
25
- import { useDynamicContentStore as Te } from "../stores/dynamic-content.js";
25
+ import { useDynamicContentStore as Re } from "../stores/dynamic-content.js";
26
26
  import { useEditorStore as w } from "../stores/editor.js";
27
27
  import { usePreviewStore as Ie } from "../stores/preview.js";
28
28
  import { useSaveValidationStore as Le } from "../stores/save-validation.js";
29
- import { useTemplateStore as Ue } from "../stores/template.js";
30
- import { useUnsubscribeStore as Ae } from "../stores/unsubscribe.js";
31
- import { readTrackFloor as z } from "../utils/linkTrackingIds.js";
32
- const lt = /* @__PURE__ */ se({
29
+ import { useTemplateStore as Ae } from "../stores/template.js";
30
+ import { useUnsubscribeStore as Oe } from "../stores/unsubscribe.js";
31
+ import { readTrackFloor as $ } from "../utils/linkTrackingIds.js";
32
+ const lt = /* @__PURE__ */ ie({
33
33
  __name: "Guido",
34
34
  props: {
35
35
  config: null,
36
36
  ready: { type: Boolean, default: !0 }
37
37
  },
38
38
  emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change", "ready", "onboarding:finished", "test-email:click"],
39
- setup(H, { expose: q, emit: r }) {
40
- const s = H, K = m(
39
+ setup(z, { expose: q, emit: r }) {
40
+ const a = z, K = m(
41
41
  () => import("./organisms/email-preview/PreviewContainer.vue.js")
42
42
  ), j = m(
43
43
  () => import("./organisms/onboarding/OnboardingWrapper.vue.js")
@@ -45,15 +45,22 @@ const lt = /* @__PURE__ */ se({
45
45
  () => import("./organisms/extensions/recommendation/AssignStrategyDrawer.vue.js")
46
46
  ), Q = m(
47
47
  () => import("./organisms/extensions/recommendation/RemoveStrategyModal.vue.js")
48
- ), X = m(
48
+ ), C = V(), X = m(
49
49
  () => import("./organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.js")
50
- ), D = W(), f = W(), y = Te(), C = Ae(), o = Me();
51
- s.ready && o.init(s.config);
52
- const c = w(), Y = Ie(), l = p(() => c.hasChanges), { isTestPartner: Z } = pe(), { isEnabled: ee } = fe(), k = () => {
50
+ ), f = V(), y = Re(), D = Oe(), o = Me();
51
+ a.ready && o.init(a.config);
52
+ const s = w(), Y = Ie(), l = p(() => s.hasChanges), { isTestPartner: Z } = pe(), { isEnabled: ee } = fe(), k = () => {
53
53
  var t;
54
- return (t = D.value) == null ? void 0 : t.handleSave(!0);
55
- }, F = (t) => {
56
- c.loadingStatus = t;
54
+ if (!s.isNormalMode) {
55
+ console.debug("guido:save:silent:blocked", {
56
+ isVersionHistoryOpen: s.isVersionHistoryOpen,
57
+ isAccessibilityTestingOpen: s.isAccessibilityTestingOpen
58
+ });
59
+ return;
60
+ }
61
+ return (t = C.value) == null ? void 0 : t.saveSilent();
62
+ }, T = (t) => {
63
+ s.loadingStatus = t;
57
64
  };
58
65
  de(), ue();
59
66
  const g = () => {
@@ -63,12 +70,12 @@ const lt = /* @__PURE__ */ se({
63
70
  userId: o.userId,
64
71
  username: o.username,
65
72
  partnerName: o.partnerName,
66
- savedModulesFolderName: ((t = o.editor) == null ? void 0 : t.savedModulesFolderName) || $.SAVED_MODULES,
67
- defaultModulesFolderName: ((e = o.editor) == null ? void 0 : e.defaultModulesFolderName) || $.DEFAULT_MODULES
73
+ savedModulesFolderName: ((t = o.editor) == null ? void 0 : t.savedModulesFolderName) || G.SAVED_MODULES,
74
+ defaultModulesFolderName: ((e = o.editor) == null ? void 0 : e.defaultModulesFolderName) || G.DEFAULT_MODULES
68
75
  };
69
- }, { initPlugin: R, preloadRuntime: M } = ye(), { runExclusive: T, beginMount: I, isCurrentMount: S } = me();
76
+ }, { initPlugin: F, preloadRuntime: M } = ye(), { runExclusive: R, beginMount: I, isCurrentMount: S } = me();
70
77
  let u = 0;
71
- const { getDefaultTemplate: L } = Re(), { cloneTimersOnSave: U, hasTimerBlocks: A } = ge(), te = p(() => {
78
+ const { getDefaultTemplate: L } = Fe(), { cloneTimersOnSave: A, hasTimerBlocks: O } = ge(), te = p(() => {
72
79
  var t;
73
80
  return !((t = o.ui) != null && t.showHeader);
74
81
  }), oe = p(() => o.isFeatureEnabled("reusableRecommendationStrategy")), ne = p(
@@ -89,19 +96,19 @@ const lt = /* @__PURE__ */ se({
89
96
  console.debug("guido:test-email:click"), r("test-email:click");
90
97
  }
91
98
  });
92
- const B = (t) => {
99
+ const U = (t) => {
93
100
  console.debug("dynamic-content:close", t), y.setSelectedDynamicContent(t), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: t }));
94
101
  }, N = () => {
95
102
  console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
96
103
  };
97
- G(() => l.value, () => {
104
+ H(() => l.value, () => {
98
105
  r("on-change", l.value);
99
106
  });
100
107
  const v = (t) => {
101
- const e = t, { attribute: a, position: d } = e.detail;
102
- console.debug("dynamic-content:open", e.detail), r("dynamic-content:open", a, d);
108
+ const e = t, { attribute: i, position: d } = e.detail;
109
+ console.debug("dynamic-content:open", e.detail), r("dynamic-content:open", i, d);
103
110
  };
104
- let i = null;
111
+ let c = null;
105
112
  const b = () => {
106
113
  var e;
107
114
  const t = document.querySelector(Se);
@@ -109,52 +116,52 @@ const lt = /* @__PURE__ */ se({
109
116
  }, h = async () => {
110
117
  var t;
111
118
  try {
112
- o.initialized || o.init(s.config), c.templateId = o.templateId;
113
- const e = o.template, a = (e == null ? void 0 : e.html) || "", d = (e == null ? void 0 : e.css) || "", P = (e == null ? void 0 : e.preselectedDynamicContent) || [];
114
- C.selectedUnsubscribePages = (e == null ? void 0 : e.selectedUnsubscribePages) || [];
115
- const _ = ((t = e == null ? void 0 : e.migration) == null ? void 0 : t.recommendationConfigs) ?? {}, O = o.isFeatureEnabled("linkTrackingIds"), x = {
119
+ o.initialized || o.init(a.config), s.templateId = o.templateId;
120
+ const e = o.template, i = (e == null ? void 0 : e.html) || "", d = (e == null ? void 0 : e.css) || "", B = (e == null ? void 0 : e.preselectedDynamicContent) || [];
121
+ D.selectedUnsubscribePages = (e == null ? void 0 : e.selectedUnsubscribePages) || [];
122
+ const P = ((t = e == null ? void 0 : e.migration) == null ? void 0 : t.recommendationConfigs) ?? {}, _ = o.isFeatureEnabled("linkTrackingIds"), x = {
116
123
  partnerName: o.partnerName,
117
124
  campaignUrls: e == null ? void 0 : e.recommendationCampaignUrls,
118
125
  rrsEnabled: o.isFeatureEnabled("reusableRecommendationStrategy")
119
126
  };
120
127
  let n = {
121
- html: a && await V(a, _, x),
128
+ html: i && await W(i, P, x),
122
129
  css: d
123
130
  };
124
- n.html || (n = await L(), n.html = await V(n.html, _, x));
125
- const re = O ? z(n.html, (e == null ? void 0 : e.trackIdCounter) || 0) : 0;
126
- A(n.html) && (n.html = await U(n.html)), O && (c.trackIdSessionFloor = Math.max(re, z(n.html)));
127
- const ae = {
128
- preselectedDynamicContentList: P,
131
+ n.html || (n = await L(), n.html = await W(n.html, P, x));
132
+ const re = _ ? $(n.html, (e == null ? void 0 : e.trackIdCounter) || 0) : 0;
133
+ O(n.html) && (n.html = await A(n.html)), _ && (s.trackIdSessionFloor = Math.max(re, $(n.html)));
134
+ const se = {
135
+ preselectedDynamicContentList: B,
129
136
  onReady: () => {
130
137
  console.debug("guido:ready"), r("ready");
131
138
  }
132
139
  };
133
- u = I(), await R(n, g(), ae), y.selectedDynamicContentList = P;
140
+ u = I(), await F(n, g(), se), y.selectedDynamicContentList = B;
134
141
  } catch (e) {
135
142
  console.error("Failed to initialize Stripo editor:", e);
136
143
  }
137
144
  };
138
- return ie(async () => {
145
+ return ae(async () => {
139
146
  var e;
140
- console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow"), E().$reset(), w().$reset(), Ue().$reset(), Le().$reset(), b();
147
+ console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow"), E().$reset(), w().$reset(), Ae().$reset(), Le().$reset(), b();
141
148
  const t = (e = f.value) == null ? void 0 : e.parentElement;
142
- if (t && (i = new ResizeObserver(b), i.observe(t)), M(), s.ready)
149
+ if (t && (c = new ResizeObserver(b), c.observe(t)), M(), a.ready)
143
150
  await h();
144
151
  else {
145
- const a = G(() => s.ready, (d) => {
146
- d && (a(), h());
152
+ const i = H(() => a.ready, (d) => {
153
+ d && (i(), h());
147
154
  });
148
155
  }
149
156
  document.addEventListener("dynamic-content:open", v);
150
157
  }), ce(() => {
151
- if (i == null || i.disconnect(), document.removeEventListener("dynamic-content:open", v), E().disposeStrategyPageReturn(), S(u))
158
+ if (c == null || c.disconnect(), document.removeEventListener("dynamic-content:open", v), E().disposeStrategyPageReturn(), S(u))
152
159
  try {
153
160
  w().isStripoInitialized = !1;
154
161
  } catch (t) {
155
162
  console.debug("Failed to close the editor readiness gate on unmount", t);
156
163
  }
157
- T(async () => {
164
+ R(async () => {
158
165
  if (S(u))
159
166
  try {
160
167
  window.UIEditor.removeEditor();
@@ -164,13 +171,13 @@ const lt = /* @__PURE__ */ se({
164
171
  }), o.reset();
165
172
  }), q({
166
173
  dynamicContent: {
167
- insert: B,
174
+ insert: U,
168
175
  close: N
169
176
  },
170
177
  hasChanges: l,
171
178
  saveSilent: k,
172
- setLoading: F
173
- }), { __sfc: !0, PreviewContainer: K, OnboardingWrapper: j, AssignStrategyDrawer: J, RemoveStrategyModal: Q, LegacyStrategyUpdatedModal: X, headerWrapperRef: D, wrapperRef: f, dynamicContentStore: y, unsubscribeStore: C, props: s, configStore: o, editorStore: c, previewStore: Y, hasChanges: l, isTestPartner: Z, isSaveValidationEnabled: ee, saveSilent: k, setLoading: F, emit: r, buildMetadata: g, initPlugin: R, preloadRuntime: M, runExclusive: T, beginMount: I, isCurrentMount: S, mountGeneration: u, getDefaultTemplate: L, cloneTimersOnSave: U, hasTimerBlocks: A, noHeader: te, isRrsEnabled: oe, hasAssignedStrategy: ne, insertDynamicContent: B, closeDynamicContent: N, handleDynamicContentOpen: v, ribbonObserver: i, updateRibbonOffset: b, startEditor: h, AutoSaveController: ve, AuthErrorModal: be, Toaster: he, FilterSelectionDrawer: Ee, HeaderWrapper: we, LoadingWrapper: De, SaveAsTemplateDrawer: Ce, UnsubscribeWrapper: ke, ValidationErrorDrawer: Fe };
179
+ setLoading: T
180
+ }), { __sfc: !0, PreviewContainer: K, OnboardingWrapper: j, AssignStrategyDrawer: J, RemoveStrategyModal: Q, autoSaveControllerRef: C, LegacyStrategyUpdatedModal: X, wrapperRef: f, dynamicContentStore: y, unsubscribeStore: D, props: a, configStore: o, editorStore: s, previewStore: Y, hasChanges: l, isTestPartner: Z, isSaveValidationEnabled: ee, saveSilent: k, setLoading: T, emit: r, buildMetadata: g, initPlugin: F, preloadRuntime: M, runExclusive: R, beginMount: I, isCurrentMount: S, mountGeneration: u, getDefaultTemplate: L, cloneTimersOnSave: A, hasTimerBlocks: O, noHeader: te, isRrsEnabled: oe, hasAssignedStrategy: ne, insertDynamicContent: U, closeDynamicContent: N, handleDynamicContentOpen: v, ribbonObserver: c, updateRibbonOffset: b, startEditor: h, AutoSaveController: ve, AuthErrorModal: be, Toaster: he, FilterSelectionDrawer: Ee, HeaderWrapper: we, LoadingWrapper: Ce, SaveAsTemplateDrawer: De, UnsubscribeWrapper: ke, ValidationErrorDrawer: Te };
174
181
  }
175
182
  });
176
183
  export {
@@ -1,14 +1,24 @@
1
- import { defineComponent as r } from "vue";
2
- import { useAutoSave as s } from "../../composables/useAutoSave.js";
3
- import { useSave as n } from "../../composables/useSave.js";
4
- import { useSaveValidationRollout as u } from "../../composables/useSaveValidationRollout.js";
5
- const v = /* @__PURE__ */ r({
1
+ import { defineComponent as i } from "vue";
2
+ import { useAutoSave as l } from "../../composables/useAutoSave.js";
3
+ import { useSave as m } from "../../composables/useSave.js";
4
+ import { useSaveValidationRollout as c } from "../../composables/useSaveValidationRollout.js";
5
+ import { useToaster as p } from "../../composables/useToaster.js";
6
+ const b = /* @__PURE__ */ i({
6
7
  __name: "AutoSaveController",
7
- setup(m) {
8
- const { save: e, saveRawOnly: o } = n(), { isEnabled: t } = u(), a = () => t.value ? o() : e(!1, !0);
9
- return s(a), { __sfc: !0, save: e, saveRawOnly: o, isEnabled: t, backgroundSave: a };
8
+ setup(v, { expose: n }) {
9
+ const { save: e, saveRawOnly: t } = m(), { isEnabled: o } = c(), { handleError: r } = p(), a = () => o.value ? t() : e(!1, !0);
10
+ l(a);
11
+ const s = async () => {
12
+ try {
13
+ return await e(!0);
14
+ } catch (u) {
15
+ r(u, "Failed to save template");
16
+ return;
17
+ }
18
+ };
19
+ return n({ saveSilent: s }), { __sfc: !0, save: e, saveRawOnly: t, isEnabled: o, handleError: r, backgroundSave: a, saveSilent: s };
10
20
  }
11
21
  });
12
22
  export {
13
- v as default
23
+ b as default
14
24
  };
@@ -0,0 +1,17 @@
1
+ import t from "./AutoSaveStatus.vue2.js";
2
+ import r from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var _ = function() {
4
+ var s = this, e = s._self._c, a = s._self._setupProxy;
5
+ return a.isFeatureEnabled("autosave") ? e("div", { staticClass: "d-f a-i-c auto-save-status" }, [a.autosaveStore.status === a.AUTOSAVE_STATUS.SAVING ? e("span", { staticClass: "d-f a-i-c f-s-1" }, [e(a.InLoading, { attrs: { "color-class": "i-c-53", size: "16" } }), e("span", { staticClass: "ml-1 t-c-53" }, [s._v(s._s(a.trans("newsletter.saving")))])], 1) : a.savedLabel ? e("span", { staticClass: "f-s-1 t-c-53" }, [s._v(s._s(a.savedLabel.before)), a.savedLabel.word ? e("span", { staticClass: "f-w-600" }, [s._v(s._s(a.savedLabel.word))]) : s._e(), s._v(s._s(a.savedLabel.after))]) : s._e()]) : s._e();
6
+ }, n = [], o = /* @__PURE__ */ r(
7
+ t,
8
+ _,
9
+ n,
10
+ !1,
11
+ null,
12
+ null
13
+ );
14
+ const v = o.exports;
15
+ export {
16
+ v as default
17
+ };
@@ -0,0 +1,25 @@
1
+ import { defineComponent as p, computed as S } from "vue";
2
+ import { useConfig as A } from "../../../composables/useConfig.js";
3
+ import { useTranslations as T } from "../../../composables/useTranslations.js";
4
+ import { useAutosaveStore as v, AUTOSAVE_STATUS as m } from "../../../stores/autosave.js";
5
+ import { autoSaveTimestamp as b } from "../../../utils/timeUtil.js";
6
+ import { InLoading as D } from "@useinsider/design-system-vue";
7
+ const j = /* @__PURE__ */ p({
8
+ __name: "AutoSaveStatus",
9
+ setup(O) {
10
+ const { isFeatureEnabled: u } = A(), a = v(), n = T(), t = "__BOLD_START__", o = "__BOLD_END__", s = (i) => i.split(t).join("").split(o).join(""), _ = S(() => {
11
+ if (a.status !== m.SAVED || !a.lastSavedAt)
12
+ return null;
13
+ const { isToday: i, time: c, date: f } = b(a.lastSavedAt), l = { boldStart: t, boldEnd: o }, e = i ? n("email-editor.autosaved-at-today", { ...l, time: c }) : n("email-editor.autosaved-at-date", { ...l, date: f }), r = e.indexOf(t), d = e.indexOf(o, r + t.length);
14
+ return r === -1 || d === -1 ? { before: s(e), word: "", after: "" } : {
15
+ before: s(e.slice(0, r)),
16
+ word: s(e.slice(r + t.length, d)),
17
+ after: s(e.slice(d + o.length))
18
+ };
19
+ });
20
+ return { __sfc: !0, isFeatureEnabled: u, autosaveStore: a, trans: n, BOLD_START: t, BOLD_END: o, stripMarkers: s, savedLabel: _, AUTOSAVE_STATUS: m, InLoading: D };
21
+ }
22
+ });
23
+ export {
24
+ j as default
25
+ };
@@ -1,23 +1,23 @@
1
- import l from "./EditorActions.vue2.js";
1
+ import a from "./EditorActions.vue2.js";
2
2
  /* empty css */
3
- import d from "../../../_virtual/_plugin-vue2_normalizer.js";
4
- var u = function() {
5
- var s, i, n, a;
6
- var o = this, e = o._self._c, t = o._self._setupProxy;
7
- return e("div", { staticClass: "d-f editor-actions" }, [t.isVersionHistoryButtonVisible ? e(t.InButtonV2, { attrs: { id: "guido__history-button", "left-icon": "line-architect-version-history", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isVersionHistoryButtonDisabled, "label-text-status": !1, "selected-status": t.editorStore.isVersionHistoryOpen, "tooltip-options": t.getTooltipOptions("guido__history-button"), "tooltip-text": t.versionHistoryTooltipText }, on: { click: t.handleVersionHistory } }) : o._e(), e(t.InButtonV2, { attrs: { id: "guido__export-button", "left-icon": "line-export", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isExportButtonDisabled, "label-text-status": !1, "loading-status": t.isExporting, "tooltip-options": t.getTooltipOptions("guido__export-button"), "tooltip-text": t.trans("newsletter.export") }, on: { click: t.handleExport } }), (i = (s = t.config) == null ? void 0 : s.features) != null && i.saveAsTemplate ? e(t.InButtonV2, { attrs: { id: "guido__save-as-button", "left-icon": "line-newsletter-save-as-template", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isSaveAsButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__save-as-button"), "tooltip-text": t.trans("newsletter.save-templates") }, on: { click: t.handleSaveAs } }) : o._e(), (a = (n = t.config) == null ? void 0 : n.features) != null && a.testMessage ? e(t.InButtonV2, { attrs: { id: "guido__test-button", "left-icon": "line-architect-test-journey", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isTestButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__test-button", { staticPosition: "bottom right" }), "tooltip-text": t.trans("newsletter.test-email") }, on: { click: t.handleTestEmail } }) : o._e(), t.editorStore.isPreviewModeOpen ? o._e() : e(t.InButtonV2, { staticClass: "ml-3", attrs: { id: "guido__save-button", "disabled-status": !t.isSaving && t.editorStore.isSaveButtonDisabled, "label-text": t.saveLabel, "loading-status": t.isSaving }, on: { click: function(r) {
3
+ import r from "../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var d = function() {
5
+ var o, s;
6
+ var i = this, e = i._self._c, t = i._self._setupProxy;
7
+ return e("div", { staticClass: "d-f a-i-c editor-actions" }, [!t.editorStore.isPreviewModeOpen && t.hasContentOnTheLeft ? e("div", { staticClass: "editor-actions__divider" }) : i._e(), (s = (o = t.config) == null ? void 0 : o.features) != null && s.testMessage ? e(t.InButtonV2, { attrs: { id: "guido__test-button", "left-icon": "line-architect-test-journey", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isTestButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__test-button", { staticPosition: "bottom right" }), "tooltip-text": t.trans("newsletter.test-email") }, on: { click: t.handleTestEmail } }) : i._e(), e(t.EditorActionsMenu), t.editorStore.isPreviewModeOpen ? i._e() : e("div", { staticClass: "editor-actions__divider" }), t.editorStore.isPreviewModeOpen ? i._e() : e(t.InButtonV2, { staticClass: "ml-3", attrs: { id: "guido__save-button", "disabled-status": !t.isSaving && t.editorStore.isSaveButtonDisabled, "label-text": t.saveLabel, "loading-status": t.isSaving }, on: { click: function(n) {
8
8
  return t.handleSave(!1);
9
- } } }), e(t.MigrationConfirmModal, { ref: "migrationModalRef", on: { confirm: function(r) {
9
+ } } }), e(t.MigrationConfirmModal, { ref: "migrationModalRef", on: { confirm: function(n) {
10
10
  return t.executeSave(!1);
11
11
  } } })], 1);
12
- }, c = [], p = /* @__PURE__ */ d(
12
+ }, l = [], c = /* @__PURE__ */ r(
13
+ a,
14
+ d,
13
15
  l,
14
- u,
15
- c,
16
16
  !1,
17
17
  null,
18
- "2cccbd44"
18
+ "f36a9d0c"
19
19
  );
20
- const v = p.exports;
20
+ const p = c.exports;
21
21
  export {
22
- v as default
22
+ p as default
23
23
  };
@@ -1,83 +1,68 @@
1
- import { defineComponent as I, computed as c, ref as u } from "vue";
2
- import { useActionsApi as P } from "../../../composables/useActionsApi.js";
3
- import { useConfig as W } from "../../../composables/useConfig.js";
4
- import { useExport as j } from "../../../composables/useExport.js";
5
- import { useTestEmailClick as G } from "../../../composables/useGuidoActions.js";
6
- import { useHtmlCompiler as J } from "../../../composables/useHtmlCompiler.js";
7
- import { useSave as K } from "../../../composables/useSave.js";
8
- import { useSaveValidation as N } from "../../../composables/useSaveValidation.js";
9
- import { useSaveValidationRollout as Q } from "../../../composables/useSaveValidationRollout.js";
10
- import { useToaster as U } from "../../../composables/useToaster.js";
11
- import { useTranslations as X } from "../../../composables/useTranslations.js";
12
- import { useVersionHistoryApi as Y } from "../../../composables/useVersionHistoryApi.js";
13
- import { useLiquidValidator as Z } from "../../../composables/validators/useLiquidValidator.js";
14
- import { ToasterTypeOptions as $ } from "../../../enums/toaster.js";
15
- import { useConfigStore as tt } from "../../../stores/config.js";
16
- import { useEditorStore as ot } from "../../../stores/editor.js";
17
- import { useSaveValidationStore as et } from "../../../stores/save-validation.js";
18
- import { useTemplateStore as rt } from "../../../stores/template.js";
19
- import { getTooltipOptions as it } from "../../../utils/tooltipUtils.js";
20
- import { InButtonV2 as st } from "@useinsider/design-system-vue";
21
- import { storeToRefs as at } from "pinia";
22
- import nt from "./MigrationConfirmModal.vue.js";
23
- const bt = /* @__PURE__ */ I({
1
+ import { defineComponent as F, computed as x, ref as A } from "vue";
2
+ import { useActionsApi as H } from "../../../composables/useActionsApi.js";
3
+ import { useConfig as O } from "../../../composables/useConfig.js";
4
+ import { useTestEmailClick as R } from "../../../composables/useGuidoActions.js";
5
+ import { useHtmlCompiler as B } from "../../../composables/useHtmlCompiler.js";
6
+ import { useSave as z } from "../../../composables/useSave.js";
7
+ import { useSaveValidation as D } from "../../../composables/useSaveValidation.js";
8
+ import { useSaveValidationRollout as I } from "../../../composables/useSaveValidationRollout.js";
9
+ import { useToaster as W } from "../../../composables/useToaster.js";
10
+ import { useTranslations as j } from "../../../composables/useTranslations.js";
11
+ import { useLiquidValidator as G } from "../../../composables/validators/useLiquidValidator.js";
12
+ import { ToasterTypeOptions as J } from "../../../enums/toaster.js";
13
+ import { useAutosaveStore as K } from "../../../stores/autosave.js";
14
+ import { useConfigStore as N } from "../../../stores/config.js";
15
+ import { useEditorStore as P } from "../../../stores/editor.js";
16
+ import { useSaveValidationStore as Q } from "../../../stores/save-validation.js";
17
+ import { useTemplateStore as U } from "../../../stores/template.js";
18
+ import { getTooltipOptions as X } from "../../../utils/tooltipUtils.js";
19
+ import { InButtonV2 as Y } from "@useinsider/design-system-vue";
20
+ import { storeToRefs as Z } from "pinia";
21
+ import $ from "./EditorActionsMenu.vue.js";
22
+ import tt from "./MigrationConfirmModal.vue.js";
23
+ const Vt = /* @__PURE__ */ F({
24
24
  __name: "EditorActions",
25
- setup(lt, { expose: k }) {
26
- const { config: p, isFeatureEnabled: f } = W(), { exportHtml: d } = j(), { save: v } = K(), { validateCurrentTemplate: y } = N(), { isEnabled: i } = Q(), { showToaster: S, handleError: s } = U(), { openVersionHistory: g, closeVersionHistory: h } = Y(), { getCompiledEmail: T } = P(), { compileHtml: w } = J(), { validateLiquidSyntax: E } = Z(), V = tt(), o = ot(), H = et(), x = rt(), { hasMigrations: C } = at(x), r = X(), F = c(() => i.value && V.allowSaveWithErrors ? r("email-editor.save-and-continue") : "Save"), a = u(!1), n = u(!1), _ = u(), l = G(), q = () => {
27
- if (o.isVersionHistoryOpen) {
28
- h();
29
- return;
30
- }
31
- g();
32
- }, B = async () => {
33
- a.value = !0, await d(), a.value = !1;
34
- }, L = () => {
35
- o.isSaveAsTemplateDrawerOpen = !0;
36
- }, R = c(() => o.isVersionHistoryOpen ? r("newsletter.close-version-history") : r("newsletter.version-history")), D = c(
37
- () => {
38
- var t, e;
39
- return ((e = (t = p.value) == null ? void 0 : t.features) == null ? void 0 : e.versionHistory) && !o.isPreviewModeOpen;
40
- }
41
- ), A = async (t) => {
42
- n.value = !0, t || (o.loadingStatus = !0);
43
- let e;
25
+ setup(ot, { expose: L }) {
26
+ const { config: M, isFeatureEnabled: r } = O(), { save: u } = z(), { validateCurrentTemplate: c } = D(), { isEnabled: i } = I(), { showToaster: f, handleError: s } = W(), { getCompiledEmail: d } = H(), { compileHtml: p } = B(), { validateLiquidSyntax: v } = G(), S = N(), e = P(), g = Q(), h = U(), y = K(), { hasMigrations: T } = Z(h), b = x(() => r("liquidSyntax") || r("autosave") && y.hasStatusLabel), a = j(), k = x(() => i.value && S.allowSaveWithErrors ? a("email-editor.save-and-continue") : "Save"), n = A(!1), E = A(), l = R(), w = async (t) => {
27
+ n.value = !0, t || (e.loadingStatus = !0);
28
+ let o;
44
29
  try {
45
- e = await v(t);
46
- } catch (b) {
47
- s(b, "Failed to save template");
30
+ o = await u(t);
31
+ } catch (_) {
32
+ s(_, "Failed to save template");
48
33
  } finally {
49
- n.value = !1, !t && !e && (o.loadingStatus = !1);
34
+ n.value = !1, !t && !o && (e.loadingStatus = !1);
50
35
  }
51
- return e;
52
- }, O = (t) => {
53
- var e;
54
- if (!t && C.value) {
55
- (e = _.value) == null || e.open();
36
+ return o;
37
+ }, C = (t) => {
38
+ var o;
39
+ if (!t && T.value) {
40
+ (o = E.value) == null || o.open();
56
41
  return;
57
42
  }
58
- return A(t);
43
+ return w(t);
59
44
  }, m = async () => {
60
- o.loadingStatus = !0;
45
+ e.loadingStatus = !0;
61
46
  try {
62
- return await y();
47
+ return await c();
63
48
  } catch (t) {
64
49
  return console.warn("Test-path validation failed; sending without the drawer.", t), [];
65
50
  } finally {
66
- o.loadingStatus = !1;
51
+ e.loadingStatus = !1;
67
52
  }
68
- }, M = async () => {
53
+ }, V = async () => {
69
54
  const t = await m();
70
- t.length && H.open(t, "test");
71
- }, z = async () => {
55
+ t.length && g.open(t, "test");
56
+ }, q = async () => {
72
57
  if (i.value) {
73
58
  if ((await m()).length) {
74
- S({
75
- type: $.Error,
76
- message: r("email-editor.validation-errors-found"),
59
+ f({
60
+ type: J.Error,
61
+ message: a("email-editor.validation-errors-found"),
77
62
  actionButton: {
78
- text: r("email-editor.check-errors"),
63
+ text: a("email-editor.check-errors"),
79
64
  onClick: () => {
80
- M();
65
+ V();
81
66
  }
82
67
  },
83
68
  autoHide: !1
@@ -87,26 +72,26 @@ const bt = /* @__PURE__ */ I({
87
72
  l();
88
73
  return;
89
74
  }
90
- if (f("liquidSyntax")) {
91
- o.loadingStatus = !0;
75
+ if (r("liquidSyntax")) {
76
+ e.loadingStatus = !0;
92
77
  try {
93
- const { html: t } = await T({ minimize: !0, resetDataSavedFlag: !1 }), { compiledHtml: e } = w(t);
94
- if (!await E(e))
78
+ const { html: t } = await d({ minimize: !0, resetDataSavedFlag: !1 }), { compiledHtml: o } = p(t);
79
+ if (!await v(o))
95
80
  return;
96
81
  } catch (t) {
97
82
  s(t, "Failed to prepare test email");
98
83
  return;
99
84
  } finally {
100
- o.loadingStatus = !1;
85
+ e.loadingStatus = !1;
101
86
  }
102
87
  }
103
88
  l();
104
89
  };
105
- return k({
106
- handleSave: O
107
- }), { __sfc: !0, config: p, isFeatureEnabled: f, exportHtml: d, save: v, validateCurrentTemplate: y, isEnabled: i, showToaster: S, handleError: s, openVersionHistory: g, closeVersionHistory: h, getCompiledEmail: T, compileHtml: w, validateLiquidSyntax: E, configStore: V, editorStore: o, saveValidationStore: H, templateStore: x, hasMigrations: C, trans: r, saveLabel: F, isExporting: a, isSaving: n, migrationModalRef: _, testEmailClick: l, handleVersionHistory: q, handleExport: B, handleSaveAs: L, versionHistoryTooltipText: R, isVersionHistoryButtonVisible: D, executeSave: A, handleSave: O, collectTestErrors: m, openTestErrors: M, handleTestEmail: z, getTooltipOptions: it, InButtonV2: st, MigrationConfirmModal: nt };
90
+ return L({
91
+ handleSave: C
92
+ }), { __sfc: !0, config: M, isFeatureEnabled: r, save: u, validateCurrentTemplate: c, isEnabled: i, showToaster: f, handleError: s, getCompiledEmail: d, compileHtml: p, validateLiquidSyntax: v, configStore: S, editorStore: e, saveValidationStore: g, templateStore: h, autosaveStore: y, hasMigrations: T, hasContentOnTheLeft: b, trans: a, saveLabel: k, isSaving: n, migrationModalRef: E, testEmailClick: l, executeSave: w, handleSave: C, collectTestErrors: m, openTestErrors: V, handleTestEmail: q, getTooltipOptions: X, InButtonV2: Y, EditorActionsMenu: $, MigrationConfirmModal: tt };
108
93
  }
109
94
  });
110
95
  export {
111
- bt as default
96
+ Vt as default
112
97
  };