@useinsider/guido 3.8.1-beta.34bf80d → 3.8.1-beta.6c0ee3f

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 (30) hide show
  1. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +8 -8
  2. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +12 -15
  3. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +5 -5
  4. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue2.js +15 -16
  5. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue.js +5 -5
  6. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue2.js +37 -42
  7. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +3 -3
  8. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +37 -40
  9. package/dist/composables/useSave.js +14 -14
  10. package/dist/composables/validators/useUnsubscribeBlockValidator.js +17 -26
  11. package/dist/extensions/Blocks/Recommendation/block.js +4 -1
  12. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +154 -137
  13. package/dist/extensions/Blocks/Unsubscribe/block.js +37 -40
  14. package/dist/extensions/Blocks/Unsubscribe/control.js +16 -19
  15. package/dist/extensions/Blocks/controlFactories.js +76 -57
  16. package/dist/guido.css +1 -1
  17. package/dist/src/composables/validators/useUnsubscribeBlockValidator.d.ts +0 -1
  18. package/dist/src/extensions/Blocks/CouponBlock/controls/index.d.ts +1 -1
  19. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +3 -3
  20. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +1 -1
  21. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +1 -1
  22. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +1 -1
  23. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +1 -1
  24. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +1 -1
  25. package/dist/src/extensions/Blocks/controlFactories.d.ts +10 -1
  26. package/dist/src/stores/unsubscribe.d.ts +1 -11
  27. package/dist/stores/unsubscribe.js +7 -8
  28. package/package.json +1 -1
  29. package/dist/composables/usePreviewInteractionGuard.js +0 -17
  30. package/dist/src/composables/usePreviewInteractionGuard.d.ts +0 -3
@@ -72,11 +72,11 @@ export declare const OldPriceControls: {
72
72
  new (): {
73
73
  getId(): string;
74
74
  getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
75
+ getAdditionalModifications(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
75
76
  getParentControlId(): string;
76
77
  api: import("@stripoinc/ui-editor-extensions").ControlApi;
77
78
  getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
78
79
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
79
- getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
80
80
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
81
81
  };
82
82
  };
@@ -75,11 +75,11 @@ export declare const OmnibusDiscountControls: {
75
75
  new (): {
76
76
  getId(): string;
77
77
  getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
78
+ getAdditionalModifications(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
78
79
  getParentControlId(): string;
79
80
  api: import("@stripoinc/ui-editor-extensions").ControlApi;
80
81
  getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
81
82
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
82
- getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
83
83
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
84
84
  };
85
85
  };
@@ -75,11 +75,11 @@ export declare const OmnibusPriceControls: {
75
75
  new (): {
76
76
  getId(): string;
77
77
  getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
78
+ getAdditionalModifications(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
78
79
  getParentControlId(): string;
79
80
  api: import("@stripoinc/ui-editor-extensions").ControlApi;
80
81
  getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
81
82
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
82
- getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
83
83
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
84
84
  };
85
85
  };
@@ -72,11 +72,11 @@ export declare const PriceControls: {
72
72
  new (): {
73
73
  getId(): string;
74
74
  getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
75
+ getAdditionalModifications(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
75
76
  getParentControlId(): string;
76
77
  api: import("@stripoinc/ui-editor-extensions").ControlApi;
77
78
  getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
78
79
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
79
- getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
80
80
  isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
81
81
  };
82
82
  };
@@ -98,11 +98,20 @@ export declare function createTextBackgroundColorControl(controlId: string, targ
98
98
  new (): {
99
99
  getId(): string;
100
100
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
101
+ /**
102
+ * Mirrors the picked background onto each target cell as an INLINE style.
103
+ *
104
+ * Stripo's built-in applies the background as a stylesheet rule, not inline. On
105
+ * regeneration we re-bake the captured color inline (cellBgStyleAttr); inline then
106
+ * outranks Stripo's rule in the cascade, so a later re-edit silently has no effect
107
+ * (SD-143023). Writing the inline here keeps it the single source of truth and in
108
+ * sync on every edit. Merged into the parent control's single patch (no extra apply).
109
+ */
110
+ getAdditionalModifications(root: ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
101
111
  getParentControlId(): string;
102
112
  api: import("@stripoinc/ui-editor-extensions").ControlApi;
103
113
  getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
104
114
  getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
105
- getAdditionalModifications(_root: ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
106
115
  isVisible(_node: ImmutableHtmlNode): boolean;
107
116
  };
108
117
  };
@@ -10,7 +10,6 @@ interface StoreState {
10
10
  typeSelectionDrawerStatus: boolean;
11
11
  isGlobalUnsubscribeDisabled: boolean;
12
12
  isSubscriptionPreferencesCenterDisabled: boolean;
13
- pendingBlockId: string | null;
14
13
  }
15
14
  export declare const useUnsubscribeStore: import("pinia").StoreDefinition<"guidoUnsubscribe", StoreState, {
16
15
  getSelectedCollection: (state: {
@@ -36,7 +35,6 @@ export declare const useUnsubscribeStore: import("pinia").StoreDefinition<"guido
36
35
  typeSelectionDrawerStatus: boolean;
37
36
  isGlobalUnsubscribeDisabled: boolean;
38
37
  isSubscriptionPreferencesCenterDisabled: boolean;
39
- pendingBlockId: string | null;
40
38
  } & import("pinia").PiniaCustomStateProperties<StoreState>) => number[];
41
39
  getSelectedTemplateByActiveType: (state: {
42
40
  templates: {
@@ -61,7 +59,6 @@ export declare const useUnsubscribeStore: import("pinia").StoreDefinition<"guido
61
59
  typeSelectionDrawerStatus: boolean;
62
60
  isGlobalUnsubscribeDisabled: boolean;
63
61
  isSubscriptionPreferencesCenterDisabled: boolean;
64
- pendingBlockId: string | null;
65
62
  } & import("pinia").PiniaCustomStateProperties<StoreState>) => number;
66
63
  getTemplatesByActiveType: (state: {
67
64
  templates: {
@@ -86,7 +83,6 @@ export declare const useUnsubscribeStore: import("pinia").StoreDefinition<"guido
86
83
  typeSelectionDrawerStatus: boolean;
87
84
  isGlobalUnsubscribeDisabled: boolean;
88
85
  isSubscriptionPreferencesCenterDisabled: boolean;
89
- pendingBlockId: string | null;
90
86
  } & import("pinia").PiniaCustomStateProperties<StoreState>) => {
91
87
  id: number;
92
88
  name: string;
@@ -123,7 +119,6 @@ export declare const useUnsubscribeStore: import("pinia").StoreDefinition<"guido
123
119
  typeSelectionDrawerStatus: boolean;
124
120
  isGlobalUnsubscribeDisabled: boolean;
125
121
  isSubscriptionPreferencesCenterDisabled: boolean;
126
- pendingBlockId: string | null;
127
122
  } & import("pinia").PiniaCustomStateProperties<StoreState>) => (id: number) => string;
128
123
  getSelectedUnsubscribePagesByCollection: (state: {
129
124
  templates: {
@@ -148,7 +143,6 @@ export declare const useUnsubscribeStore: import("pinia").StoreDefinition<"guido
148
143
  typeSelectionDrawerStatus: boolean;
149
144
  isGlobalUnsubscribeDisabled: boolean;
150
145
  isSubscriptionPreferencesCenterDisabled: boolean;
151
- pendingBlockId: string | null;
152
146
  } & import("pinia").PiniaCustomStateProperties<StoreState>) => (collectionType: number) => number[];
153
147
  isActiveTypeFirstInCollection: (state: {
154
148
  templates: {
@@ -173,7 +167,6 @@ export declare const useUnsubscribeStore: import("pinia").StoreDefinition<"guido
173
167
  typeSelectionDrawerStatus: boolean;
174
168
  isGlobalUnsubscribeDisabled: boolean;
175
169
  isSubscriptionPreferencesCenterDisabled: boolean;
176
- pendingBlockId: string | null;
177
170
  } & import("pinia").PiniaCustomStateProperties<StoreState>) => boolean;
178
171
  isActiveTypeLastInCollection: (state: {
179
172
  templates: {
@@ -198,7 +191,6 @@ export declare const useUnsubscribeStore: import("pinia").StoreDefinition<"guido
198
191
  typeSelectionDrawerStatus: boolean;
199
192
  isGlobalUnsubscribeDisabled: boolean;
200
193
  isSubscriptionPreferencesCenterDisabled: boolean;
201
- pendingBlockId: string | null;
202
194
  } & import("pinia").PiniaCustomStateProperties<StoreState>) => boolean;
203
195
  hasTemplatesByCollectionType: (state: {
204
196
  templates: {
@@ -223,7 +215,6 @@ export declare const useUnsubscribeStore: import("pinia").StoreDefinition<"guido
223
215
  typeSelectionDrawerStatus: boolean;
224
216
  isGlobalUnsubscribeDisabled: boolean;
225
217
  isSubscriptionPreferencesCenterDisabled: boolean;
226
- pendingBlockId: string | null;
227
218
  } & import("pinia").PiniaCustomStateProperties<StoreState>) => Record<number, boolean>;
228
219
  unsubscribePagesStatus: (state: {
229
220
  templates: {
@@ -248,11 +239,10 @@ export declare const useUnsubscribeStore: import("pinia").StoreDefinition<"guido
248
239
  typeSelectionDrawerStatus: boolean;
249
240
  isGlobalUnsubscribeDisabled: boolean;
250
241
  isSubscriptionPreferencesCenterDisabled: boolean;
251
- pendingBlockId: string | null;
252
242
  } & import("pinia").PiniaCustomStateProperties<StoreState>) => boolean;
253
243
  }, {
254
244
  $reset(): void;
255
- fetchTemplates(force?: boolean): Promise<void>;
245
+ fetchTemplates(): Promise<void>;
256
246
  setCollection(collectionType: number): void;
257
247
  setCollectionWithoutAutoSelection(collectionType: number): void;
258
248
  setSelectedTemplate(template: number): void;
@@ -1,6 +1,6 @@
1
1
  import { TYPE_COLLECTIONS as i, PAGE_TYPES as p } from "../enums/unsubscribe.js";
2
2
  import { useUnsubscribeApi as d } from "../services/unsubscribeApi.js";
3
- import { defineStore as u } from "pinia";
3
+ import { defineStore as h } from "pinia";
4
4
  let o = null;
5
5
  const r = () => ({
6
6
  templates: [],
@@ -12,9 +12,8 @@ const r = () => ({
12
12
  pageSelectionDrawerStatus: !1,
13
13
  typeSelectionDrawerStatus: !1,
14
14
  isGlobalUnsubscribeDisabled: !1,
15
- isSubscriptionPreferencesCenterDisabled: !1,
16
- pendingBlockId: null
17
- }), b = u("guidoUnsubscribe", {
15
+ isSubscriptionPreferencesCenterDisabled: !1
16
+ }), b = h("guidoUnsubscribe", {
18
17
  state: () => r(),
19
18
  getters: {
20
19
  getSelectedCollection: (e) => i[e.selectedCollectionType],
@@ -63,10 +62,10 @@ const r = () => ({
63
62
  selectedUnsubscribePages: t
64
63
  });
65
64
  },
66
- async fetchTemplates(e = !1) {
67
- !e && this.templates.length || ((e || !o) && (o = (async () => {
68
- const { getUnsubscribePages: t } = d();
69
- this.templates = await t();
65
+ async fetchTemplates() {
66
+ this.templates.length || (o || (o = (async () => {
67
+ const { getUnsubscribePages: e } = d();
68
+ this.templates = await e();
70
69
  })().finally(() => {
71
70
  o = null;
72
71
  })), await o);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "3.8.1-beta.34bf80d",
3
+ "version": "3.8.1-beta.6c0ee3f",
4
4
  "description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
5
5
  "main": "./dist/guido.umd.cjs",
6
6
  "module": "./dist/library.js",
@@ -1,17 +0,0 @@
1
- const o = ["click", "auxclick", "submit"], c = (t) => {
2
- t.preventDefault(), t.stopPropagation();
3
- }, a = () => ({ blockPreviewInteractions: (r) => {
4
- try {
5
- const e = r.contentDocument;
6
- if (!e)
7
- return;
8
- o.forEach((n) => {
9
- e.addEventListener(n, c, !0);
10
- });
11
- } catch (e) {
12
- console.warn("[usePreviewInteractionGuard] Could not guard preview iframe:", e);
13
- }
14
- } });
15
- export {
16
- a as usePreviewInteractionGuard
17
- };
@@ -1,3 +0,0 @@
1
- export declare const usePreviewInteractionGuard: () => {
2
- blockPreviewInteractions: (iframe: HTMLIFrameElement) => void;
3
- };