@useinsider/guido 3.19.0-beta.acb00a2 → 3.19.0-beta.c604f7d

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 (64) hide show
  1. package/dist/@types/config/schemas.js +21 -20
  2. package/dist/components/Guido.vue.js +8 -8
  3. package/dist/components/Guido.vue2.js +72 -71
  4. package/dist/components/organisms/AutoSaveController.vue2.js +10 -8
  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 +36 -52
  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 +5 -5
  14. package/dist/components/organisms/header/LeftSlot.vue2.js +32 -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 +35 -0
  28. package/dist/composables/useActionsApi.js +20 -24
  29. package/dist/composables/useCortexBlueprintBridge.js +54 -122
  30. package/dist/composables/useCustomInterfaceAppearance.js +42 -41
  31. package/dist/composables/useEmailTemplateApplier.js +52 -108
  32. package/dist/config/i18n/en/labels.json.js +36 -4
  33. package/dist/config/i18n/en/tooltips.json.js +2 -1
  34. package/dist/guido.css +1 -1
  35. package/dist/sprite.svg +6 -0
  36. package/dist/src/@types/config/schemas.d.ts +2 -0
  37. package/dist/src/components/organisms/AutoSaveController.vue.d.ts +3 -1
  38. package/dist/src/components/organisms/header/EditorActionsMenu.vue.d.ts +2 -0
  39. package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -3
  40. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -3
  41. package/dist/src/components/organisms/header/accessibility/AccessibilityToolbar.vue.d.ts +2 -0
  42. package/dist/src/components/organisms/header/accessibility/ColorVisionSelect.vue.d.ts +2 -0
  43. package/dist/src/components/organisms/onboarding/EditorTabBarOnboarding.vue.d.ts +2 -0
  44. package/dist/src/composables/useAccessibilityApi.d.ts +15 -0
  45. package/dist/src/composables/useActionsApi.d.ts +2 -2
  46. package/dist/src/composables/useConfig.d.ts +2 -0
  47. package/dist/src/composables/useCortexBlueprintBridge.d.ts +3 -2
  48. package/dist/src/composables/useEmailTemplateApplier.d.ts +5 -18
  49. package/dist/src/stores/config.d.ts +20 -0
  50. package/dist/src/stores/editor.d.ts +109 -0
  51. package/dist/src/stores/guido-email-editor.d.ts +10 -20
  52. package/dist/src/stores/onboarding.d.ts +952 -21
  53. package/dist/src/stores/version-history.d.ts +1 -1
  54. package/dist/src/utils/timeUtil.d.ts +5 -0
  55. package/dist/static/styles/components/accessibility.css.js +234 -0
  56. package/dist/static/styles/variables.css.js +2 -0
  57. package/dist/stores/editor.js +7 -4
  58. package/dist/stores/guido-email-editor.js +1 -3
  59. package/dist/stores/onboarding.js +43 -21
  60. package/dist/utils/timeUtil.js +6 -17
  61. package/package.json +1 -1
  62. package/dist/components/organisms/header/AutoSaveToggle.vue.js +0 -22
  63. package/dist/components/organisms/header/AutoSaveToggle.vue2.js +0 -19
  64. /package/dist/src/components/organisms/header/{AutoSaveToggle.vue.d.ts → AutoSaveStatus.vue.d.ts} +0 -0
@@ -1,115 +1,59 @@
1
- import { useActionsApi as x } from "./useActionsApi.js";
2
- import { useConfig as z } from "./useConfig.js";
3
- import { useEditorLock as N } from "./useEditorLock.js";
4
- import { useToaster as K } from "./useToaster.js";
5
- import { useTranslations as R } from "./useTranslations.js";
6
- import { ToasterTypeOptions as U } from "../enums/toaster.js";
7
- import { useDynamicContentStore as F } from "../stores/dynamic-content.js";
8
- import { useEditorStore as G } from "../stores/editor.js";
9
- import { flattenDynamicContentList as $ } from "../utils/genericUtil.js";
10
- import { extractUsedDynamicContent as j } from "../utils/registerUsedDynamicContent.js";
11
- import { ref as J, watch as V } from "vue";
12
- const W = 250, M = 12e4, X = 1e3, p = { status: "superseded" }, A = { status: "failed", error: new Error("Blueprint has no html to apply") }, a = J({}), O = /* @__PURE__ */ new Map(), m = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map();
13
- let d = null;
14
- const E = () => {
15
- d && (clearInterval(d), d = null);
16
- }, ue = () => {
17
- const { updateHtmlAndCss: i } = x(), { runExclusive: P } = N(), { showToaster: T } = K(), w = R(), { template: _ } = z(), b = F(), g = G(), y = (e, t) => {
18
- m.get(e) !== t && (m.set(e, t), T({
19
- type: U.Error,
20
- message: w("newsletter.ai-template-failed-apply")
21
- }));
22
- }, C = () => {
23
- var e, t;
24
- return g.isStripoInitialized && typeof ((t = (e = window.StripoEditorApi) == null ? void 0 : e.actionsApi) == null ? void 0 : t.updateHtmlAndCss) == "function";
25
- }, L = (e) => {
26
- a.value[e] === void 0 && (a.value = { ...a.value, [e]: "pending" });
27
- }, l = (e, t) => {
28
- a.value = { ...a.value, [e]: t };
29
- }, Q = (e) => {
30
- var t;
1
+ import { useActionsApi as C } from "./useActionsApi.js";
2
+ import { useConfig as h } from "./useConfig.js";
3
+ import { useToaster as D } from "./useToaster.js";
4
+ import { useTranslations as E } from "./useTranslations.js";
5
+ import { ToasterTypeOptions as f } from "../enums/toaster.js";
6
+ import { useDynamicContentStore as A } from "../stores/dynamic-content.js";
7
+ import { flattenDynamicContentList as w } from "../utils/genericUtil.js";
8
+ import { extractUsedDynamicContent as S } from "../utils/registerUsedDynamicContent.js";
9
+ import { ref as O } from "vue";
10
+ const U = 250, o = O({}), s = {}, u = /* @__PURE__ */ new Map(), z = () => {
11
+ const { updateHtmlAndCss: r } = C(), { showToaster: m } = D(), y = E(), { template: T } = h(), d = A(), g = (e, t) => {
12
+ const a = y(e);
13
+ return a === e ? t : a;
14
+ }, v = (e) => {
15
+ o.value[e] === void 0 && (o.value = { ...o.value, [e]: "pending" });
16
+ }, l = (e, t, a) => {
17
+ var c;
18
+ o.value = { ...o.value, [e]: "applying" };
31
19
  try {
32
- const r = $((t = _.value) == null ? void 0 : t.dynamicContentList), n = j(e, r);
33
- n.length > 0 && b.registerDynamicContent(n);
34
- } catch {
35
- }
36
- }, H = (e, t) => {
37
- m.delete(e), O.get(e) !== t && (O.set(e, t), T({
38
- type: U.Success,
39
- message: w("newsletter.ai-template-applied")
40
- }));
41
- }, D = async (e, t, r) => {
42
- const n = (u.get(e) ?? 0) + 1;
43
- u.set(e, n), l(e, "applying");
44
- try {
45
- await P(() => i(t, r));
46
- } catch (o) {
47
- return u.get(e) !== n ? p : (console.error("[guido:apply] editor did not acknowledge the template apply", o), l(e, "failed"), y(e, t), { status: "failed", error: o });
48
- }
49
- return u.get(e) !== n ? p : (l(e, "applied"), Q(t), H(e, t), { status: "applied" });
50
- }, I = (e) => {
51
- const t = s.get(e);
52
- t && (clearTimeout(t.timer), s.delete(e), t.settle(p));
53
- }, S = (e) => {
54
- const t = c.get(e);
55
- t && (clearTimeout(t.timer), c.delete(e), t.settle(p));
56
- }, B = () => {
57
- [...c.keys()].forEach(S);
58
- }, h = async () => {
59
- if (s.size === 0) {
60
- E();
61
- return;
62
- }
63
- if (!C())
64
- return;
65
- E();
66
- const e = [...s.entries()];
67
- s.clear(), e.forEach(([, o]) => clearTimeout(o.timer));
68
- const t = e.pop();
69
- if (e.forEach(([o, f]) => {
70
- l(o, "failed"), f.settle({ status: "failed", error: new Error("Displaced by a newer apply") });
71
- }), !t)
72
- return;
73
- const [r, n] = t;
74
- n.settle(await D(r, n.html, n.css));
75
- }, q = (e, t, r) => new Promise((n) => {
76
- I(e);
77
- const o = setTimeout(() => {
78
- s.delete(e), l(e, "failed"), y(e, t), n({
79
- status: "failed",
80
- error: new Error(`Editor did not become ready within ${M}ms`)
20
+ r(t, a).catch((n) => {
21
+ console.warn("Editor did not acknowledge the template apply.", n);
22
+ }), o.value = { ...o.value, [e]: "applied" };
23
+ try {
24
+ const n = w((c = T.value) == null ? void 0 : c.dynamicContentList), i = S(t, n);
25
+ i.length > 0 && d.registerDynamicContent(i);
26
+ } catch {
27
+ }
28
+ u.get(e) !== t && (u.set(e, t), m({
29
+ type: f.Success,
30
+ message: g("newsletter.ai-template-applied", "Template applied to the editor")
31
+ }));
32
+ } catch (n) {
33
+ o.value = { ...o.value, [e]: "failed" }, m({
34
+ type: f.Error,
35
+ message: n instanceof Error ? n.message : "Failed to apply template"
81
36
  });
82
- }, M);
83
- s.set(e, { html: t, css: r, timer: o, settle: n }), l(e, "applying"), d ?? (d = setInterval(() => {
84
- h();
85
- }, X));
86
- }), v = (e, t, r) => C() ? D(e, t, r) : q(e, t, r);
87
- return V(() => g.isStripoInitialized, (e) => {
88
- e && h();
89
- }, { immediate: !0 }), { applyStatus: a, markPending: L, applyTemplate: (e, t) => {
90
- const { html: r } = t;
91
- return r ? (B(), v(e, r, t.css ?? "")) : Promise.resolve(A);
37
+ }
38
+ }, p = (e) => {
39
+ const t = s[e];
40
+ t && (clearTimeout(t), delete s[e]);
41
+ };
42
+ return { applyStatus: o, markPending: v, applyTemplate: (e, t) => {
43
+ t.html && (p(e), l(e, t.html, t.css ?? ""));
92
44
  }, applyTemplateDebounced: (e, t) => {
93
- const { html: r } = t;
94
- if (!r)
95
- return Promise.resolve(A);
96
- const n = t.css ?? "";
97
- return new Promise((o) => {
98
- S(e);
99
- const f = setTimeout(() => {
100
- c.delete(e), v(e, r, n).then(o);
101
- }, W);
102
- c.set(e, { timer: f, settle: o });
103
- });
45
+ if (!t.html)
46
+ return;
47
+ p(e);
48
+ const { html: a } = t, c = t.css ?? "";
49
+ s[e] = setTimeout(() => {
50
+ delete s[e], l(e, a, c);
51
+ }, U);
104
52
  } };
105
- }, me = () => {
106
- c.forEach((i) => {
107
- clearTimeout(i.timer), i.settle(p);
108
- }), c.clear(), s.forEach((i) => {
109
- clearTimeout(i.timer), i.settle(p);
110
- }), s.clear(), E(), m.clear(), a.value = {};
53
+ }, G = () => {
54
+ Object.values(s).forEach(clearTimeout), Object.keys(s).forEach((r) => delete s[r]), o.value = {};
111
55
  };
112
56
  export {
113
- me as resetEmailTemplateApplier,
114
- ue as useEmailTemplateApplier
57
+ G as resetEmailTemplateApplier,
58
+ z as useEmailTemplateApplier
115
59
  };
@@ -1,19 +1,51 @@
1
- const e = "Items", o = "Default", t = "Custom", s = {
1
+ const e = "Items", o = "Default", i = "Custom", t = {
2
2
  "Global Styles & Layout": "Global Styles and Layout",
3
3
  "Structures & Modules": "Structures and Modules",
4
4
  "Recommendation Block": "Recommendation Block",
5
5
  Items: e,
6
6
  "This block is switched from the Old Version to the New Version. We recommend you check the Recommendation block and test your message to ensure it works properly.": "This block is switched from the Old Version to the New Version. We recommend you check the Recommendation block and test your message to ensure it works properly.",
7
7
  "This block is switched from the Old Version to the New Version. We recommend you check the Items block and test your message to ensure it works properly.": "This block is switched from the Old Version to the New Version. We recommend you check the Items block and test your message to ensure it works properly.",
8
+ "email-editor.a11y-hide-images": "Hide images",
9
+ "email-editor.a11y-show-images": "Show images",
10
+ "email-editor.cvd-none": "No Color Deficiency",
11
+ "email-editor.cvd-protanopia": "Protanopia",
12
+ "email-editor.cvd-protanopia-description": "Causes red-green confusion and makes reds appear darker.",
13
+ "email-editor.cvd-deuteranopia": "Deuteranopia",
14
+ "email-editor.cvd-deuteranopia-description": "Causes red-green confusion.",
15
+ "email-editor.cvd-tritanopia": "Tritanopia",
16
+ "email-editor.cvd-tritanopia-description": "Causes blue-yellow confusion.",
17
+ "email-editor.cvd-achromatopsia": "Achromatopsia",
18
+ "email-editor.cvd-achromatopsia-description": "Causes complete color blindness.",
19
+ "email-editor.more-actions": "More actions",
20
+ "email-editor.preferences": "Preferences",
21
+ "email-editor.actions": "Actions",
22
+ "email-editor.accessibility-test": "Accessibility Test",
23
+ "email-editor.autosaved-at-today": "{boldStart}Autosaved{boldEnd} at {time}, Today",
24
+ "email-editor.autosaved-at-date": "{boldStart}Autosaved{boldEnd} at {date}",
25
+ "email-editor.export-html": "Export HTML",
26
+ "email-editor.onboarding-kebab-title": "Discover Preferences and Actions",
27
+ "email-editor.onboarding-kebab-description": "You can now access your Preferences and Actions easily such as Autosave, Export HTML, Version History, Accessibility Test and Save As Template.",
28
+ "email-editor.onboarding-autosave-title": "Autosave Your Design",
29
+ "email-editor.onboarding-autosave-description": "You can save your design automatically by enabling Autosave without losing your work.",
30
+ "email-editor.onboarding-accessibility-title": "Test Accessibility of Your Design",
31
+ "email-editor.onboarding-accessibility-description": "You can test the accessibility of your design to see the Failed, Passed items and update the Failed ones accordingly.",
8
32
  "Pixel Tracking Opt-in": "Pixel Tracking Opt-in",
9
33
  "OPT-IN SELECTION": "OPT-IN SELECTION",
10
34
  "UNSUBSCRIBE GROUPS": "UNSUBSCRIBE GROUPS",
11
35
  Default: o,
12
- Custom: t
36
+ Custom: i,
37
+ "Foreground color": "Foreground Color",
38
+ "Contrast ratio": "Contrast Ratio",
39
+ "You’ve fixed all issues!": `No Failed Items
40
+ You have no failed items.`,
41
+ "No accessibility issues found": `No Failed Items
42
+ You have no failed items.`,
43
+ "You have no ignored issues yet": `No Ignored Items
44
+ You have no ignored items.`
13
45
  };
14
46
  export {
15
- t as Custom,
47
+ i as Custom,
16
48
  o as Default,
17
49
  e as Items,
18
- s as default
50
+ t as default
19
51
  };
@@ -76,7 +76,8 @@ const e = {
76
76
  "The data source link is unavailable. Please, make sure there is an access to the data source.": "Enter an accessible Data Source Link to contiue.",
77
77
  "The file should not exceed the maximum resolution of {maxImageResolution}px.": "Upload files up to 1024x512 pixels to continue.",
78
78
  "The option is disabled because was overridden in the Code editor": "The option is disabled because it was overridden in the Code Editor.",
79
- "Dropdown with a list of available data services, preliminarily created in the Data section → Services tab of the Account.": "Service for Data Collection lets you enter a form submission URL for the recipients to submit."
79
+ "Dropdown with a list of available data services, preliminarily created in the Data section → Services tab of the Account.": "Service for Data Collection lets you enter a form submission URL for the recipients to submit.",
80
+ 'Read more about the issue on <a target="_blank" rel="noopener noreferrer" href="{url}">ACT Rules Community Group forum</a>': 'Read more about the issue on <a target="_blank" rel="noopener noreferrer" href="{url}">ACT Rules Community Group forum.</a>'
80
81
  };
81
82
  export {
82
83
  e as default
package/dist/guido.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";.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-87033101]{position:relative;display:inline-block}.new-tag[data-v-87033101]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-87033101] .guido__view-option-selection-desktop svg,[data-v-87033101] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-87033101] .in-segments-wrapper__button_selected,[data-v-87033101] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-87033101] .in-tooltip-wrapper-v2__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-6ebabfe4]{position:relative;display:inline-block}.new-tag[data-v-6ebabfe4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-6ebabfe4] .guido__verion-history-view-option-selection-desktop svg,[data-v-6ebabfe4] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-6ebabfe4] .in-segments-wrapper__button_selected,[data-v-6ebabfe4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-6ebabfe4] .in-tooltip-wrapper-v2__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-1ca6baf0]{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-59690055]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-59690055]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-59690055]{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-cf946232]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-cf946232]{min-height:504px}.iframe-wrapper[data-v-f255b2bb]{width:258px}.iframe-scaled[data-v-f255b2bb]{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-6bcaca8a] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-f16f20f8] .vueperslides__bullets{pointer-events:none!important}[data-v-f16f20f8] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-bb3cca55] .vueperslides__bullets{pointer-events:none!important}[data-v-bb3cca55] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-19d8cb42] .vueperslides__bullets,[data-v-ec2027ff] .vueperslides__bullets,[data-v-b09e80c4] .vueperslides__bullets{pointer-events:none!important}[data-v-b09e80c4] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-9bdef600] .vueperslides__parallax-wrapper{padding-bottom:110px!important}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd]{width:100%;max-width:none}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd] .in-skeleton{width:100%!important}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd] .in-dropdown-box__container{width:413px}.assign-strategy-drawer .spaced-dot-sep{background-image:linear-gradient(90deg,#91949f 20%,#fff0 0);background-position:center bottom;background-repeat:repeat-x;background-size:5px 1px}.assign-strategy-drawer .spaced-dot-sep--top{background-position:center top}.assign-strategy-drawer .spaced-dot-sep--fc-n:first-child{background:none}.legacy-strategy-updated-modal[data-v-da2225a1]{position:relative;z-index:145}
1
+ @charset "UTF-8";.gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-15610de9] .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}.color-vision-select__dropdown[data-v-64cb50da]{z-index:20;width:387px}.accessibility-toolbar[data-v-c389d28f]{gap:16px}.accessibility-toolbar[data-v-c389d28f] .in-segments-wrapper__button svg{margin-right:0}.accessibility-toolbar[data-v-c389d28f] .in-segments-wrapper__button .clearfix:after{content:none}.view-options-wrapper[data-v-87033101]{position:relative;display:inline-block}.new-tag[data-v-87033101]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-87033101] .guido__view-option-selection-desktop svg,[data-v-87033101] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-87033101] .in-segments-wrapper__button_selected,[data-v-87033101] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-87033101] .in-tooltip-wrapper-v2__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-6ebabfe4]{position:relative;display:inline-block}.new-tag[data-v-6ebabfe4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-6ebabfe4] .guido__verion-history-view-option-selection-desktop svg,[data-v-6ebabfe4] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-6ebabfe4] .in-segments-wrapper__button_selected,[data-v-6ebabfe4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-6ebabfe4] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-actions-menu__dropdown[data-v-d0e6b57a]{z-index:20;width:222px}.editor-actions[data-v-4036dff9]{gap:16px}.editor-actions__divider[data-v-4036dff9]{width:1px;height:40px;background-color:#e1e1e1}.right-slot[data-v-efc32e0d]{gap:16px}.header-wrapper[data-v-3c713746]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-b5af7c3e]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-b5af7c3e]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-b5af7c3e]{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-cf946232]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-cf946232]{min-height:504px}.iframe-wrapper[data-v-f255b2bb]{width:258px}.iframe-scaled[data-v-f255b2bb]{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-6bcaca8a] .vueperslides__parallax-wrapper{padding-bottom:110px!important}.guido-tab-bar-onboarding[data-v-42f02a1f]{z-index:21}[data-v-f16f20f8] .vueperslides__bullets{pointer-events:none!important}[data-v-f16f20f8] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-bb3cca55] .vueperslides__bullets{pointer-events:none!important}[data-v-bb3cca55] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-19d8cb42] .vueperslides__bullets,[data-v-ec2027ff] .vueperslides__bullets,[data-v-b09e80c4] .vueperslides__bullets{pointer-events:none!important}[data-v-b09e80c4] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-9bdef600] .vueperslides__parallax-wrapper{padding-bottom:110px!important}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd]{width:100%;max-width:none}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd] .in-skeleton{width:100%!important}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd] .in-dropdown-box__container{width:413px}.assign-strategy-drawer .spaced-dot-sep{background-image:linear-gradient(90deg,#91949f 20%,#fff0 0);background-position:center bottom;background-repeat:repeat-x;background-size:5px 1px}.assign-strategy-drawer .spaced-dot-sep--top{background-position:center top}.assign-strategy-drawer .spaced-dot-sep--fc-n:first-child{background:none}.legacy-strategy-updated-modal[data-v-da2225a1]{position:relative;z-index:145}
package/dist/sprite.svg CHANGED
@@ -3107,6 +3107,12 @@
3107
3107
  <symbol viewBox="0 0 24 24" data-token-name="line-replace-dynamic-content" id="line-replace-dynamic-content">
3108
3108
  <path fill-rule="evenodd" clip-rule="evenodd" d="M10.8327 5.42341C11.2222 5.81502 11.221 6.44877 10.8301 6.83894C10.8013 6.86765 10.7712 6.89425 10.74 6.91873L8.70549 8.95706C8.31533 9.34795 7.68275 9.34795 7.29259 8.95706C6.90243 8.56617 6.90243 7.93242 7.29259 7.54153L7.73664 7.09666L7.00053 7.09662C6.44823 7.0966 6.00049 7.54432 6.00049 8.09662V10.0001C6.00049 10.5524 5.55277 11.0001 5.00049 11.0001C4.4482 11.0001 4.00049 10.5524 4.00049 10.0001V8.09662C4.00049 6.43972 5.34372 5.09655 7.00062 5.09662L7.6872 5.09665L7.30179 4.70909C6.91235 4.31748 6.91353 3.68372 7.30442 3.29356C7.69531 2.9034 8.32788 2.90458 8.71732 3.29619L10.8327 5.42341ZM12 6.00024C12 4.89567 12.8954 4.00024 14 4.00024H18C19.1046 4.00024 20 4.89567 20 6.00024V10.0002C20 11.1048 19.1046 12.0002 18 12.0002H14C12.8954 12.0002 12 11.1048 12 10.0002V6.00024ZM14 6.00024H18V10.0002H14V6.00024ZM4 14.0002C4 12.8957 4.89543 12.0002 6 12.0002H10C11.1046 12.0002 12 12.8957 12 14.0002V18.0002C12 19.1048 11.1046 20.0002 10 20.0002H6C4.89543 20.0002 4 19.1048 4 18.0002V14.0002ZM6 14.0002H10V18.0002H6V14.0002ZM13.2939 17.1612C12.9031 17.5513 12.9019 18.1851 13.2913 18.5767L15.4067 20.7039C15.7961 21.0955 16.4287 21.0967 16.8196 20.7065C17.2105 20.3164 17.2117 19.6826 16.8222 19.291L16.4368 18.9034L17.1234 18.9035C18.7803 18.9035 20.1235 17.5604 20.1235 15.9035V14C20.1235 13.4477 19.6758 13 19.1235 13C18.5713 13 18.1235 13.4477 18.1235 14L18.1235 15.9035C18.1235 16.4558 17.6758 16.9035 17.1235 16.9035L16.3874 16.9034L16.8314 16.4586C17.2216 16.0677 17.2216 15.4339 16.8314 15.043C16.4413 14.6522 15.8087 14.6522 15.4185 15.043L13.384 17.0814C13.3528 17.1058 13.3227 17.1324 13.2939 17.1612Z"/>
3109
3109
  </symbol>
3110
+ <symbol viewBox="0 0 24 24" id="line-accessibility">
3111
+ <g transform="translate(2 2)">
3112
+ <rect x="1" y="1" width="18" height="18" rx="9" fill="none" stroke="currentColor" stroke-width="2"/>
3113
+ <path fill="currentColor" d="M14.8125 6.08473C15.332 5.94828 15.6875 6.47668 15.6875 6.95875C15.6873 7.44052 15.2498 7.66778 14.8125 7.8318C14.798 7.83727 14.7826 7.84147 14.7676 7.84547L12.3262 8.69898C12.013 8.81663 11.8784 8.93913 11.8486 8.99391C11.848 8.99533 11.8475 8.9975 11.8467 8.99879C11.8153 9.05489 11.7235 9.29227 11.8379 10.0076L11.9961 11.238L12.8887 16.0154C12.8969 16.0521 12.9036 16.0895 12.9092 16.1267C12.9741 16.5696 12.6498 16.9997 12.0342 16.9998C11.4983 16.9998 11.2617 16.63 11.1592 16.1267C11.1592 16.1267 10.3701 11.8181 9.9873 11.8181C9.60444 11.8205 8.94137 15.6235 8.83887 16.1267C8.7363 16.63 8.49971 16.9998 7.96387 16.9998C7.34999 16.9996 7.02548 16.5711 7.08887 16.1296L7.0957 16.0955C7.09789 16.0818 7.09981 16.0676 7.10254 16.0545L7.9834 11.2371L8.1416 10.0066C8.17359 9.80644 8.26392 9.23379 8.15137 8.9441C8.11665 8.85389 8.0452 8.7492 7.7793 8.64723L5.17962 7.83495C5.17734 7.83424 5.17578 7.83212 5.17578 7.82972C5.17578 7.82745 5.17437 7.82541 5.17224 7.8246C4.74007 7.66146 4.31254 7.43412 4.3125 6.95777C4.31258 6.47553 4.66813 5.9482 5.1875 6.08473C5.26161 6.10405 5.33481 6.12744 5.40625 6.15504C6.12486 6.3593 8.37146 6.9607 9.98828 6.9607C11.7281 6.96068 14.1981 6.26431 14.707 6.115C14.7342 6.10658 14.7619 6.09917 14.7891 6.09156L14.7998 6.08766L14.8125 6.08473ZM9.70117 3.02906C9.99821 2.96998 10.3061 3.00106 10.5859 3.11695C10.8657 3.23286 11.1052 3.42866 11.2734 3.68043C11.4416 3.93217 11.5312 4.22828 11.5312 4.53101C11.5308 4.93693 11.369 5.326 11.082 5.61305C10.795 5.9001 10.406 6.06183 10 6.06226C9.69721 6.06226 9.40119 5.97264 9.14941 5.80445C8.89762 5.63621 8.70086 5.39673 8.58496 5.11695C8.46918 4.83725 8.439 4.52909 8.49805 4.23219C8.55716 3.93526 8.70292 3.6621 8.91699 3.44801C9.13112 3.23391 9.4042 3.08814 9.70117 3.02906Z"/>
3114
+ </g>
3115
+ </symbol>
3110
3116
  <svg viewBox="0 0 24 24" data-token-name="line-advanced-settings" id="line-advanced-settings">
3111
3117
  <path fill-rule="evenodd" clip-rule="evenodd" d="M16 3C15.4477 3 15 3.44772 15 4V6V8C15 8.55228 15.4477 9 16 9C16.5523 9 17 8.55228 17 8V7H20C20.5523 7 21 6.55228 21 6C21 5.44772 20.5523 5 20 5H17V4C17 3.44772 16.5523 3 16 3ZM3 6C3 5.44772 3.44772 5 4 5H12C12.5523 5 13 5.44772 13 6C13 6.55228 12.5523 7 12 7H4C3.44772 7 3 6.55228 3 6ZM16 15C15.4477 15 15 15.4477 15 16V18V20C15 20.5523 15.4477 21 16 21C16.5523 21 17 20.5523 17 20V19H20C20.5523 19 21 18.5523 21 18C21 17.4477 20.5523 17 20 17H17V16C17 15.4477 16.5523 15 16 15ZM3 18C3 17.4477 3.44772 17 4 17H12C12.5523 17 13 17.4477 13 18C13 18.5523 12.5523 19 12 19H4C3.44772 19 3 18.5523 3 18ZM7 10C7 9.44772 7.44772 9 8 9C8.55228 9 9 9.44772 9 10V12V14C9 14.5523 8.55228 15 8 15C7.44772 15 7 14.5523 7 14V13H4C3.44772 13 3 12.5523 3 12C3 11.4477 3.44772 11 4 11H7V10ZM12 11C11.4477 11 11 11.4477 11 12C11 12.5523 11.4477 13 12 13H20C20.5523 13 21 12.5523 21 12C21 11.4477 20.5523 11 20 11H12Z"/>
3112
3118
  </svg>
@@ -399,6 +399,7 @@ export declare const FeaturesSchema: v.ObjectSchema<{
399
399
  readonly liquidSyntax: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
400
400
  /** Enable autosave (3-min interval + tab-hide). User toggles on/off from the header. */
401
401
  readonly autosave: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
402
+ readonly accessibilityTesting: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
402
403
  /** Enable pre-save domain-allowlist validation (opt-in; Guido self-serves the block toaster) */
403
404
  readonly allowlistEnabled: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
404
405
  /** Enable persistent link tracking-id assignment for the click heatmap (opt-in) */
@@ -807,6 +808,7 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
807
808
  readonly liquidSyntax: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
808
809
  /** Enable autosave (3-min interval + tab-hide). User toggles on/off from the header. */
809
810
  readonly autosave: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
811
+ readonly accessibilityTesting: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
810
812
  /** Enable pre-save domain-allowlist validation (opt-in; Guido self-serves the block toaster) */
811
813
  readonly allowlistEnabled: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
812
814
  /** Enable persistent link tracking-id assignment for the click heatmap (opt-in) */
@@ -1,2 +1,4 @@
1
- declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
1
+ declare const _default: import("vue").DefineComponent<{}, {
2
+ saveSilent: () => Promise<Omit<import("../../@types/stripo").SavedTemplateDetails, "metadata" | "silent"> | undefined>;
3
+ }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
4
  export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;
@@ -1,4 +1,2 @@
1
- declare const _default: import("vue").DefineComponent<{}, {
2
- handleSave: (isSilent: boolean) => Promise<Omit<import("../../../@types/stripo.js").SavedTemplateDetails, "metadata" | "silent"> | undefined> | undefined;
3
- }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
4
2
  export default _default;
@@ -1,4 +1,2 @@
1
- declare const _default: import("vue").DefineComponent<{}, {
2
- handleSave: (isSilent: boolean) => Promise<Omit<import("../../../@types/stripo.js").SavedTemplateDetails, "metadata" | "silent"> | undefined> | undefined;
3
- }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
4
2
  export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;
@@ -0,0 +1,15 @@
1
+ import type { ColorVisionDeficiency } from '@@/Types/api/accessibility-api';
2
+ export declare const useAccessibilityApi: () => {
3
+ openAccessibilityTestingMode: () => void;
4
+ closeAccessibilityTestingMode: () => void;
5
+ toggleAccessibilityTestingMode: () => void;
6
+ isAccessibilityTestingModeOpen: () => boolean;
7
+ showImages: () => void;
8
+ hideImages: () => void;
9
+ toggleImages: () => void;
10
+ setColorVisionDeficiency: (type: ColorVisionDeficiency) => void;
11
+ getColorVisionDeficiency: () => ColorVisionDeficiency;
12
+ switchToDesktopPreview: () => void;
13
+ switchToMobilePreview: () => void;
14
+ toggleCodeEditor: () => void;
15
+ };
@@ -1,5 +1,5 @@
1
- import type { CompileEmailOptions } from '@@/Types/actions-api';
2
- import { GetCompiledEmailOptions, CompiledEmailResult, TemplateData } from '@@/Types/actions-api';
1
+ import type { CompileEmailOptions } from '@@/Types/api/actions-api';
2
+ import { GetCompiledEmailOptions, CompiledEmailResult, TemplateData } from '@@/Types/api/actions-api';
3
3
  export declare const useActionsApi: () => {
4
4
  getCompiledEmail: (options?: GetCompiledEmailOptions) => Promise<CompiledEmailResult>;
5
5
  getTemplateData: () => Promise<TemplateData>;
@@ -99,6 +99,7 @@ export declare const useConfig: () => {
99
99
  modulesDisabled: boolean;
100
100
  liquidSyntax: boolean;
101
101
  autosave: boolean;
102
+ accessibilityTesting: boolean;
102
103
  allowlistEnabled: boolean;
103
104
  linkTrackingIds: boolean;
104
105
  reusableRecommendationStrategy: boolean;
@@ -236,6 +237,7 @@ export declare const useConfig: () => {
236
237
  modulesDisabled: boolean;
237
238
  liquidSyntax: boolean;
238
239
  autosave: boolean;
240
+ accessibilityTesting: boolean;
239
241
  allowlistEnabled: boolean;
240
242
  linkTrackingIds: boolean;
241
243
  reusableRecommendationStrategy: boolean;
@@ -17,11 +17,12 @@
17
17
  * - `error` segments (and message-level `isError` / `isCancelled`) trigger
18
18
  * a localized toaster.
19
19
  *
20
- * Every apply settles into a terminal `applyAcks` entry, so cortex moves its button on the write, not the click.
21
- *
22
20
  * In dev (`import.meta.env.DEV`) every observed segment + message-level flag
23
21
  * change is also `console.debug`-logged with the prefix `[guido:cortex]` so a
24
22
  * developer can watch the agent stream in real time. In production this is
25
23
  * gated behind `localStorage.guido:debug:ai === '1'`.
24
+ *
25
+ * If cortex-fe isn't loaded the chat store is undefined and the bridge is a
26
+ * no-op (intentional — Guido must still work standalone).
26
27
  */
27
28
  export declare const useCortexBlueprintBridge: () => void;
@@ -1,16 +1,4 @@
1
1
  type ApplyStatus = 'pending' | 'applying' | 'applied' | 'failed';
2
- /**
3
- * Terminal outcome of an apply; every promise here settles with one, since the bridge acks on it.
4
- * `superseded`: a newer payload for the same key replaced this one and owns the ack.
5
- */
6
- export type ApplyOutcome = {
7
- status: 'applied';
8
- } | {
9
- status: 'failed';
10
- error: unknown;
11
- } | {
12
- status: 'superseded';
13
- };
14
2
  /**
15
3
  * Applies email_template blueprints from the chat agent to the Stripo editor.
16
4
  *
@@ -21,19 +9,18 @@ export type ApplyOutcome = {
21
9
  * - manual Apply click (first apply): immediate.
22
10
  * - blueprint_update after the user has applied once: debounced 250 ms trailing
23
11
  * so rapid mid-stream updates don't thrash updateHtmlAndCss.
24
- * - a click before Stripo is ready is queued and flushed when `isStripoInitialized` flips.
25
12
  */
26
13
  export declare const useEmailTemplateApplier: () => {
27
14
  applyStatus: import("vue").Ref<Record<string, ApplyStatus>>;
28
- markPending: (key: string) => void;
29
- applyTemplate: (key: string, data: {
15
+ markPending: (blueprintId: string) => void;
16
+ applyTemplate: (blueprintId: string, data: {
30
17
  html?: string;
31
18
  css?: string;
32
- }) => Promise<ApplyOutcome>;
33
- applyTemplateDebounced: (key: string, data: {
19
+ }) => void;
20
+ applyTemplateDebounced: (blueprintId: string, data: {
34
21
  html?: string;
35
22
  css?: string;
36
- }) => Promise<ApplyOutcome>;
23
+ }) => void;
37
24
  };
38
25
  export declare const resetEmailTemplateApplier: () => void;
39
26
  export {};
@@ -104,6 +104,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
104
104
  modulesDisabled: boolean;
105
105
  liquidSyntax: boolean;
106
106
  autosave: boolean;
107
+ accessibilityTesting: boolean;
107
108
  allowlistEnabled: boolean;
108
109
  linkTrackingIds: boolean;
109
110
  reusableRecommendationStrategy: boolean;
@@ -247,6 +248,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
247
248
  modulesDisabled: boolean;
248
249
  liquidSyntax: boolean;
249
250
  autosave: boolean;
251
+ accessibilityTesting: boolean;
250
252
  allowlistEnabled: boolean;
251
253
  linkTrackingIds: boolean;
252
254
  reusableRecommendationStrategy: boolean;
@@ -390,6 +392,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
390
392
  modulesDisabled: boolean;
391
393
  liquidSyntax: boolean;
392
394
  autosave: boolean;
395
+ accessibilityTesting: boolean;
393
396
  allowlistEnabled: boolean;
394
397
  linkTrackingIds: boolean;
395
398
  reusableRecommendationStrategy: boolean;
@@ -533,6 +536,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
533
536
  modulesDisabled: boolean;
534
537
  liquidSyntax: boolean;
535
538
  autosave: boolean;
539
+ accessibilityTesting: boolean;
536
540
  allowlistEnabled: boolean;
537
541
  linkTrackingIds: boolean;
538
542
  reusableRecommendationStrategy: boolean;
@@ -676,6 +680,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
676
680
  modulesDisabled: boolean;
677
681
  liquidSyntax: boolean;
678
682
  autosave: boolean;
683
+ accessibilityTesting: boolean;
679
684
  allowlistEnabled: boolean;
680
685
  linkTrackingIds: boolean;
681
686
  reusableRecommendationStrategy: boolean;
@@ -819,6 +824,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
819
824
  modulesDisabled: boolean;
820
825
  liquidSyntax: boolean;
821
826
  autosave: boolean;
827
+ accessibilityTesting: boolean;
822
828
  allowlistEnabled: boolean;
823
829
  linkTrackingIds: boolean;
824
830
  reusableRecommendationStrategy: boolean;
@@ -962,6 +968,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
962
968
  modulesDisabled: boolean;
963
969
  liquidSyntax: boolean;
964
970
  autosave: boolean;
971
+ accessibilityTesting: boolean;
965
972
  allowlistEnabled: boolean;
966
973
  linkTrackingIds: boolean;
967
974
  reusableRecommendationStrategy: boolean;
@@ -1105,6 +1112,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1105
1112
  modulesDisabled: boolean;
1106
1113
  liquidSyntax: boolean;
1107
1114
  autosave: boolean;
1115
+ accessibilityTesting: boolean;
1108
1116
  allowlistEnabled: boolean;
1109
1117
  linkTrackingIds: boolean;
1110
1118
  reusableRecommendationStrategy: boolean;
@@ -1248,6 +1256,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1248
1256
  modulesDisabled: boolean;
1249
1257
  liquidSyntax: boolean;
1250
1258
  autosave: boolean;
1259
+ accessibilityTesting: boolean;
1251
1260
  allowlistEnabled: boolean;
1252
1261
  linkTrackingIds: boolean;
1253
1262
  reusableRecommendationStrategy: boolean;
@@ -1391,6 +1400,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1391
1400
  modulesDisabled: boolean;
1392
1401
  liquidSyntax: boolean;
1393
1402
  autosave: boolean;
1403
+ accessibilityTesting: boolean;
1394
1404
  allowlistEnabled: boolean;
1395
1405
  linkTrackingIds: boolean;
1396
1406
  reusableRecommendationStrategy: boolean;
@@ -1534,6 +1544,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1534
1544
  modulesDisabled: boolean;
1535
1545
  liquidSyntax: boolean;
1536
1546
  autosave: boolean;
1547
+ accessibilityTesting: boolean;
1537
1548
  allowlistEnabled: boolean;
1538
1549
  linkTrackingIds: boolean;
1539
1550
  reusableRecommendationStrategy: boolean;
@@ -1677,6 +1688,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1677
1688
  modulesDisabled: boolean;
1678
1689
  liquidSyntax: boolean;
1679
1690
  autosave: boolean;
1691
+ accessibilityTesting: boolean;
1680
1692
  allowlistEnabled: boolean;
1681
1693
  linkTrackingIds: boolean;
1682
1694
  reusableRecommendationStrategy: boolean;
@@ -1820,6 +1832,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1820
1832
  modulesDisabled: boolean;
1821
1833
  liquidSyntax: boolean;
1822
1834
  autosave: boolean;
1835
+ accessibilityTesting: boolean;
1823
1836
  allowlistEnabled: boolean;
1824
1837
  linkTrackingIds: boolean;
1825
1838
  reusableRecommendationStrategy: boolean;
@@ -1963,6 +1976,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1963
1976
  modulesDisabled: boolean;
1964
1977
  liquidSyntax: boolean;
1965
1978
  autosave: boolean;
1979
+ accessibilityTesting: boolean;
1966
1980
  allowlistEnabled: boolean;
1967
1981
  linkTrackingIds: boolean;
1968
1982
  reusableRecommendationStrategy: boolean;
@@ -2106,6 +2120,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2106
2120
  modulesDisabled: boolean;
2107
2121
  liquidSyntax: boolean;
2108
2122
  autosave: boolean;
2123
+ accessibilityTesting: boolean;
2109
2124
  allowlistEnabled: boolean;
2110
2125
  linkTrackingIds: boolean;
2111
2126
  reusableRecommendationStrategy: boolean;
@@ -2249,6 +2264,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2249
2264
  modulesDisabled: boolean;
2250
2265
  liquidSyntax: boolean;
2251
2266
  autosave: boolean;
2267
+ accessibilityTesting: boolean;
2252
2268
  allowlistEnabled: boolean;
2253
2269
  linkTrackingIds: boolean;
2254
2270
  reusableRecommendationStrategy: boolean;
@@ -2392,6 +2408,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2392
2408
  modulesDisabled: boolean;
2393
2409
  liquidSyntax: boolean;
2394
2410
  autosave: boolean;
2411
+ accessibilityTesting: boolean;
2395
2412
  allowlistEnabled: boolean;
2396
2413
  linkTrackingIds: boolean;
2397
2414
  reusableRecommendationStrategy: boolean;
@@ -2535,6 +2552,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2535
2552
  modulesDisabled: boolean;
2536
2553
  liquidSyntax: boolean;
2537
2554
  autosave: boolean;
2555
+ accessibilityTesting: boolean;
2538
2556
  allowlistEnabled: boolean;
2539
2557
  linkTrackingIds: boolean;
2540
2558
  reusableRecommendationStrategy: boolean;
@@ -2678,6 +2696,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2678
2696
  modulesDisabled: boolean;
2679
2697
  liquidSyntax: boolean;
2680
2698
  autosave: boolean;
2699
+ accessibilityTesting: boolean;
2681
2700
  allowlistEnabled: boolean;
2682
2701
  linkTrackingIds: boolean;
2683
2702
  reusableRecommendationStrategy: boolean;
@@ -2823,6 +2842,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2823
2842
  modulesDisabled: boolean;
2824
2843
  liquidSyntax: boolean;
2825
2844
  autosave: boolean;
2845
+ accessibilityTesting: boolean;
2826
2846
  allowlistEnabled: boolean;
2827
2847
  linkTrackingIds: boolean;
2828
2848
  reusableRecommendationStrategy: boolean;