@useinsider/guido 3.27.0-beta.3e42e7a → 3.27.0-beta.ad1c5f2

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 (36) hide show
  1. package/dist/components/Guido.vue.js +1 -1
  2. package/dist/components/Guido.vue2.js +46 -45
  3. package/dist/components/organisms/onboarding/GenericOnboarding.vue.js +5 -5
  4. package/dist/components/organisms/onboarding/GenericOnboarding.vue2.js +15 -15
  5. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +6 -6
  6. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +28 -27
  7. package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.js +3 -3
  8. package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue2.js +42 -27
  9. package/dist/composables/useCustomInterfaceAppearance.js +50 -50
  10. package/dist/composables/useFullStoryBridge.js +10 -9
  11. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +14 -14
  12. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +52 -40
  13. package/dist/extensions/Blocks/Recommendation/controls/syncInfoMessage.js +15 -15
  14. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +17 -15
  15. package/dist/extensions/Blocks/common-control.js +25 -25
  16. package/dist/extensions/DynamicContent/dynamic-content.js +15 -17
  17. package/dist/guido.css +1 -1
  18. package/dist/package.json.js +4 -4
  19. package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +2 -0
  20. package/dist/src/extensions/Blocks/common-control.d.ts +1 -1
  21. package/dist/src/stores/onboarding.d.ts +1 -0
  22. package/dist/src/utils/editorShadowRoot.d.ts +1 -0
  23. package/dist/static/stripo-runtime-manifest.json.js +2 -2
  24. package/dist/stores/onboarding.js +4 -1
  25. package/dist/utils/editorShadowRoot.js +8 -0
  26. package/package.json +11 -3
  27. package/dist/src/extensions/Blocks/_Boilerplate/block.d.ts +0 -11
  28. package/dist/src/extensions/Blocks/_Boilerplate/constants/controlIds.d.ts +0 -7
  29. package/dist/src/extensions/Blocks/_Boilerplate/constants/index.d.ts +0 -10
  30. package/dist/src/extensions/Blocks/_Boilerplate/constants/selectors.d.ts +0 -16
  31. package/dist/src/extensions/Blocks/_Boilerplate/control.d.ts +0 -17
  32. package/dist/src/extensions/Blocks/_Boilerplate/controls/blockBackground/index.d.ts +0 -15
  33. package/dist/src/extensions/Blocks/_Boilerplate/extension.d.ts +0 -2
  34. package/dist/src/extensions/Blocks/_Boilerplate/iconsRegistry.d.ts +0 -4
  35. package/dist/src/extensions/Blocks/_Boilerplate/settingsPanel.d.ts +0 -4
  36. package/dist/src/extensions/Blocks/_Boilerplate/template.d.ts +0 -6
@@ -2,16 +2,17 @@ var c = Object.defineProperty;
2
2
  var g = (o, s, t) => s in o ? c(o, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[s] = t;
3
3
  var r = (o, s, t) => g(o, typeof s != "symbol" ? s + "" : s, t);
4
4
  import { useConfig as d } from "../../composables/useConfig.js";
5
- import { mergeTagToDynamicContent as m, dynamicContentToMergeTags as u } from "../../utils/genericUtil.js";
6
- import { UIElement as h, UIElementType as a, UEAttr as T, UIElementTagRegistry as y } from "../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
- import { ExternalMergeTagsLibrary as C } from "./dynamic-content-modal.js";
5
+ import { findEditorShadowRoot as m } from "../../utils/editorShadowRoot.js";
6
+ import { mergeTagToDynamicContent as u, dynamicContentToMergeTags as h } from "../../utils/genericUtil.js";
7
+ import { UIElement as T, UIElementType as a, UEAttr as y, UIElementTagRegistry as C } from "../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
8
+ import { ExternalMergeTagsLibrary as E } from "./dynamic-content-modal.js";
8
9
  const l = "external-dynamic-content-ui-element", L = "button-add-dynamic-content";
9
- class w extends y {
10
+ class B extends C {
10
11
  registerUiElements(s) {
11
12
  s[a.MERGETAGS] = l;
12
13
  }
13
14
  }
14
- class f extends h {
15
+ class x extends T {
15
16
  constructor() {
16
17
  super(...arguments);
17
18
  r(this, "mergeTagsButton", null);
@@ -44,7 +45,7 @@ class f extends h {
44
45
  onAttributeUpdated(t, e) {
45
46
  if (t !== "mergeTag" || !(e != null && e.value))
46
47
  return;
47
- const n = m(e), i = this._getLastClickedPosition();
48
+ const n = u(e), i = this._getLastClickedPosition();
48
49
  this.lastClickedElement = null, this.lastClickedFrame = null, this._openDynamicContentLibrary(n, i);
49
50
  }
50
51
  openMergeTagLibrary() {
@@ -56,12 +57,12 @@ class f extends h {
56
57
  * Dispatches event with dynamic content data and position
57
58
  */
58
59
  _openDynamicContentLibrary(t, e) {
59
- this.mergeTagsLibrary || (this.mergeTagsLibrary = new C()), this.mergeTagsLibrary.openMergeTagsLibrary(
60
+ this.mergeTagsLibrary || (this.mergeTagsLibrary = new E()), this.mergeTagsLibrary.openMergeTagsLibrary(
60
61
  t,
61
62
  (n) => {
62
63
  if (n.text && n.value) {
63
64
  const { isFeatureEnabled: i } = d();
64
- this.api.triggerValueChange(u([n], i("liquidSyntax"))[0]);
65
+ this.api.triggerValueChange(h([n], i("liquidSyntax"))[0]);
65
66
  } else
66
67
  this.api.triggerValueChange(null);
67
68
  },
@@ -94,12 +95,9 @@ class f extends h {
94
95
  * Gets the editor iframe element
95
96
  */
96
97
  _getEditorFrame() {
97
- var n;
98
- const t = document.querySelector("ui-editor");
99
- if (!(t != null && t.shadowRoot))
100
- return null;
101
- const e = t.shadowRoot.querySelector("iframe");
102
- return (n = e == null ? void 0 : e.contentWindow) != null && n.document ? e : null;
98
+ var e, n;
99
+ const t = (e = m()) == null ? void 0 : e.querySelector("iframe");
100
+ return (n = t == null ? void 0 : t.contentWindow) != null && n.document ? t : null;
103
101
  }
104
102
  /**
105
103
  * Finds merge tag element in the element tree
@@ -147,7 +145,7 @@ class f extends h {
147
145
  <${a.BUTTON}
148
146
  id="guido__btn-add-dynamic-content"
149
147
  class="btn btn-primary"
150
- ${T.BUTTON.name}="${L}">
148
+ ${y.BUTTON.name}="${L}">
151
149
  <${a.ICON} src="plus" class="icon icon-button color-primary">
152
150
  </${a.ICON}>
153
151
  ${this.api.translate("Add Dynamic Content")}
@@ -156,6 +154,6 @@ class f extends h {
156
154
  }
157
155
  }
158
156
  export {
159
- w as DynamicContentTagRegistry,
160
- f as DynamicContentUiElementExtension
157
+ B as DynamicContentTagRegistry,
158
+ x as DynamicContentUiElementExtension
161
159
  };
package/dist/guido.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";.auth-error-modal[data-v-b4d7ae51]{position:relative;z-index:145}.gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-9d988e4b] .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-391019bc]{gap:16px}.accessibility-toolbar[data-v-391019bc] .in-segments-wrapper__button svg{margin-right:0}.accessibility-toolbar[data-v-391019bc] .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-bdb3b37a]{z-index:20;width:222px}.editor-actions[data-v-9a028d08]{gap:16px}.editor-actions__divider[data-v-9a028d08]{width:1px;height:40px;background-color:#e1e1e1}.right-slot[data-v-77451c9a]{gap:16px}.header-wrapper[data-v-3c713746]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.validation-error-list[data-v-e48cebe9]{gap:16px}.validation-error-row[data-v-e48cebe9]{gap:8px;padding:24px;border:1px solid #E1E1E1;border-radius:8px}.validation-error-row__icon[data-v-e48cebe9]{flex-shrink:0;font-size:24px;line-height:0}.validation-error-row__text[data-v-e48cebe9]{font-size:13px;line-height:16px;color:#292929;word-break:break-word}.guido-editor__wrapper[data-v-ed74fdf8]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-ed74fdf8]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-ed74fdf8]{height:calc(100vh - 75px - var(--ribbon-offset))}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-eaf8e461]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-eaf8e461]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-eaf8e461]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-eaf8e461]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-eaf8e461]{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-219b4f7c]{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}.guido-display-condition-create__separator[data-v-929822bc]{height:1px;margin:0 0 24px;background-image:linear-gradient(to right,currentColor 1px,transparent 1px);background-size:5px 1px}.guido-display-condition-create__methods[data-v-929822bc]{gap:16px}.guido-display-condition-select-root[data-v-0d740001] .in-drawer__footer{justify-content:flex-start}.guido-display-condition-select__delete-modal[data-v-0d740001]{position:relative;z-index:145}.guido-display-condition-select__delete-modal[data-v-0d740001] .in-modal-v2-wrapper__header-title{margin-bottom:0}.guido-display-condition-select-root[data-v-0d740001] .in-drawer__content>div{display:flex;flex-direction:column;min-height:100%}.guido-display-condition-select__list[data-v-0d740001]{display:flex;flex-direction:column;gap:24px;margin:0;padding:0;list-style:none}.guido-display-condition-card__header[data-v-0d740001]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px}.guido-display-condition-card__text[data-v-0d740001]{min-width:0}.guido-display-condition-card__name[data-v-0d740001],.guido-display-condition-card__description[data-v-0d740001]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guido-display-condition-card__actions[data-v-0d740001]{display:flex;flex-shrink:0;align-items:center;gap:16px}.guido-display-condition-card__split[data-v-0d740001]{position:relative;display:flex;gap:1px}.guido-display-condition-card__menu[data-v-0d740001]{z-index:2;min-width:115px}.guido-display-condition-card__divider[data-v-0d740001]{width:1px;height:24px}.guido-display-condition-card__code[data-v-0d740001]{margin:1px 15px 15px;padding:8px;font-family:inherit;white-space:pre-wrap;word-break:break-word}.legacy-strategy-updated-modal[data-v-da2225a1]{position:relative;z-index:145}
1
+ @charset "UTF-8";.auth-error-modal[data-v-b4d7ae51]{position:relative;z-index:145}.gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-9d988e4b] .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-391019bc]{gap:16px}.accessibility-toolbar[data-v-391019bc] .in-segments-wrapper__button svg{margin-right:0}.accessibility-toolbar[data-v-391019bc] .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-bdb3b37a]{z-index:20;width:222px}.editor-actions[data-v-9a028d08]{gap:16px}.editor-actions__divider[data-v-9a028d08]{width:1px;height:40px;background-color:#e1e1e1}.right-slot[data-v-77451c9a]{gap:16px}.header-wrapper[data-v-3c713746]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.validation-error-list[data-v-e48cebe9]{gap:16px}.validation-error-row[data-v-e48cebe9]{gap:8px;padding:24px;border:1px solid #E1E1E1;border-radius:8px}.validation-error-row__icon[data-v-e48cebe9]{flex-shrink:0;font-size:24px;line-height:0}.validation-error-row__text[data-v-e48cebe9]{font-size:13px;line-height:16px;color:#292929;word-break:break-word}.guido-editor__wrapper[data-v-8fc59697]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-8fc59697]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-8fc59697]{height:calc(100vh - 75px - var(--ribbon-offset))}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-eaf8e461]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-eaf8e461]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-eaf8e461]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-eaf8e461]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-eaf8e461]{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-219b4f7c]{z-index:21}[data-v-fcba7e99] .vueperslides__bullets{pointer-events:none!important}[data-v-fcba7e99] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-1a34025a] .vueperslides__bullets{pointer-events:none!important}[data-v-1a34025a] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-8fc96a58] .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}.guido-display-condition-create__separator[data-v-929822bc]{height:1px;margin:0 0 24px;background-image:linear-gradient(to right,currentColor 1px,transparent 1px);background-size:5px 1px}.guido-display-condition-create__methods[data-v-929822bc]{gap:16px}.guido-display-condition-select-root[data-v-0d740001] .in-drawer__footer{justify-content:flex-start}.guido-display-condition-select__delete-modal[data-v-0d740001]{position:relative;z-index:145}.guido-display-condition-select__delete-modal[data-v-0d740001] .in-modal-v2-wrapper__header-title{margin-bottom:0}.guido-display-condition-select-root[data-v-0d740001] .in-drawer__content>div{display:flex;flex-direction:column;min-height:100%}.guido-display-condition-select__list[data-v-0d740001]{display:flex;flex-direction:column;gap:24px;margin:0;padding:0;list-style:none}.guido-display-condition-card__header[data-v-0d740001]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px}.guido-display-condition-card__text[data-v-0d740001]{min-width:0}.guido-display-condition-card__name[data-v-0d740001],.guido-display-condition-card__description[data-v-0d740001]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guido-display-condition-card__actions[data-v-0d740001]{display:flex;flex-shrink:0;align-items:center;gap:16px}.guido-display-condition-card__split[data-v-0d740001]{position:relative;display:flex;gap:1px}.guido-display-condition-card__menu[data-v-0d740001]{z-index:2;min-width:115px}.guido-display-condition-card__divider[data-v-0d740001]{width:1px;height:24px}.guido-display-condition-card__code[data-v-0d740001]{margin:1px 15px 15px;padding:8px;font-family:inherit;white-space:pre-wrap;word-break:break-word}.legacy-strategy-updated-modal[data-v-da2225a1]{position:relative;z-index:145}
@@ -1,9 +1,9 @@
1
- const o = "3.27.0-beta.3e42e7a", e = { stripo: { version: "2.83.1" } }, s = {
1
+ const o = "3.27.0-beta.ad1c5f2", s = { stripo: { version: "2.86.1" } }, t = {
2
2
  version: o,
3
- guido: e
3
+ guido: s
4
4
  };
5
5
  export {
6
- s as default,
7
- e as guido,
6
+ t as default,
7
+ s as guido,
8
8
  o as version
9
9
  };
@@ -22,5 +22,7 @@ export declare class StrategyControl extends CommonControl {
22
22
  onDestroy(): void;
23
23
  private _teardown;
24
24
  private _setupButtonListeners;
25
+ private _closeLegacyOnboarding;
26
+ private _syncLegacyOnboarding;
25
27
  private _renderState;
26
28
  }
@@ -71,7 +71,7 @@ export declare abstract class CommonControl extends Control {
71
71
  abstract getId(): string;
72
72
  abstract getTemplate(): string;
73
73
  abstract onRender(): Promise<void> | void;
74
- getContainer(): ShadowRoot;
74
+ getContainer(): ShadowRoot | null;
75
75
  onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
76
76
  onDestroy(): void;
77
77
  protected forgetLastPanelNode(): void;
@@ -3120,6 +3120,7 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
3120
3120
  start(type: OnboardingType): void;
3121
3121
  startOnboarding(type: OnboardingType): void;
3122
3122
  closeForSession(type: OnboardingType): void;
3123
+ resetOnboarding(type: OnboardingType): void;
3123
3124
  close(type: OnboardingType): Promise<void>;
3124
3125
  next(type: OnboardingType): void;
3125
3126
  previous(type: OnboardingType): void;
@@ -0,0 +1 @@
1
+ export declare const findEditorShadowRoot: () => ShadowRoot | null;
@@ -1,9 +1,9 @@
1
- const s = "2.83.1", n = ["UIEditor.js", "zone.js", "styles-BWH3PMR4.css", "polyfills-FF3RLU5F.js", "main-OTN2PYRT.js", "chunk-62K3AMOD.js", "chunk-6RGJBGUG.js", "chunk-6W43DTQG.js", "chunk-EC4WGEOZ.js", "chunk-GLBBUJ54.js", "chunk-GPJLJCMF.js", "chunk-MDCDEJUH.js", "chunk-P7HQTFJV.js", "chunk-PA4WGBC4.js", "chunk-QMDAV6OU.js", "chunk-R2F3ADM2.js", "chunk-YSKQ2TWF.js", "chunk-ZU5ASRKR.js", "assets/css/uiEditor.css", "assets/i18n/en.json", "assets/icons/ui-editor-icons.sprite.svg", "assets/icons/ui-editor-icons.map.json", "assets/imageeditor/scripts.min.js", "assets/imageeditor/assets/icons/merged.svg"], i = {
1
+ const s = "2.86.1", n = ["UIEditor.js", "zone.js", "styles-BWH3PMR4.css", "polyfills-FF3RLU5F.js", "main-QEKXZ3YR.js", "chunk-5T7CEBI5.js", "chunk-62K3AMOD.js", "chunk-66LFOY5U.js", "chunk-AMCKJHBC.js", "chunk-BOERNIOQ.js", "chunk-BVZUBVXH.js", "chunk-I2DLD5I4.js", "chunk-IEC5XOV2.js", "chunk-ILRQX7FO.js", "chunk-LBYVYY25.js", "chunk-LC3XAPU2.js", "chunk-OZSNTS6D.js", "chunk-PBUSX63H.js", "chunk-PYISBD2D.js", "assets/css/uiEditor.css", "assets/i18n/en.json", "assets/icons/ui-editor-icons.sprite.svg", "assets/icons/ui-editor-icons.map.json", "assets/imageeditor/scripts.min.js", "assets/imageeditor/assets/icons/merged.svg"], c = {
2
2
  version: s,
3
3
  files: n
4
4
  };
5
5
  export {
6
- i as default,
6
+ c as default,
7
7
  n as files,
8
8
  s as version
9
9
  };
@@ -89,7 +89,10 @@ const e = () => ({
89
89
  this.shouldShowOnboarding(n) && !this.isActive(n) && this.start(n);
90
90
  },
91
91
  closeForSession(n) {
92
- this.closedThisSession.includes(n) || this.closedThisSession.push(n), this.onboardings[n].isActive = !1, this.onboardings[n].cardIndex = 0, this.onboardings[n].config = [], this.onboardings[n].cardOffset = 0;
92
+ this.resetOnboarding(n), this.closedThisSession.push(n);
93
+ },
94
+ resetOnboarding(n) {
95
+ this.closedThisSession = this.closedThisSession.filter((o) => o !== n), this.onboardings[n].isActive = !1, this.onboardings[n].cardIndex = 0, this.onboardings[n].config = [], this.onboardings[n].cardOffset = 0;
93
96
  },
94
97
  async close(n) {
95
98
  this.closeForSession(n);
@@ -0,0 +1,8 @@
1
+ import { UI_EDITOR_SELECTOR as t } from "../enums/onboarding.js";
2
+ const n = () => {
3
+ const o = document.querySelector(t);
4
+ return (o == null ? void 0 : o.shadowRoot) ?? null;
5
+ };
6
+ export {
7
+ n as findEditorShadowRoot
8
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "3.27.0-beta.3e42e7a",
3
+ "version": "3.27.0-beta.ad1c5f2",
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",
@@ -46,9 +46,11 @@
46
46
  "test:watch": "vitest",
47
47
  "test:visual-update": "npx playwright test --update-snapshots --reporter html",
48
48
  "test:e2e:coverage": "E2E_COVERAGE=true playwright test",
49
+ "coverage:e2e:seed": "node scripts/e2e-coverage/seed-unloaded-coverage.mjs",
49
50
  "coverage:e2e:report": "nyc report --reporter=lcov --reporter=text-summary --report-dir=coverage/e2e",
51
+ "coverage:e2e:verify": "node scripts/e2e-coverage/verify-lcov-inventory.mjs",
50
52
  "test:mutation": "stryker run",
51
- "test:mutation:since": "CHANGED=$(git diff --name-only --diff-filter=AMR origin/develop...HEAD -- 'src/**/*.ts' ':(glob)src/components/organisms/onboarding/**/*.vue' ':(glob)src/components/organisms/header/**/*.vue' ':(glob)src/components/organisms/unsubscribe/**/*.vue' ':(glob)src/components/organisms/save-as-template/**/*.vue' ':(glob)src/components/organisms/email-preview/**/*.vue' ':(glob)src/components/wrappers/**/*.vue' 'src/components/Guido.vue' ':(exclude)src/**/*.test.ts' ':(exclude)src/**/index.ts' ':(exclude)src/@types/**' ':(exclude)src/enums/**' ':(exclude)src/mock/**' ':(exclude)src/**/_Boilerplate/**' | paste -sd, -); if [ -n \"$CHANGED\" ]; then stryker run --incremental --mutate \"$CHANGED\"; else echo \"No changed mutatable src files vs origin/develop\"; fi",
53
+ "test:mutation:since": "CHANGED=$(git diff --name-only --diff-filter=AMR origin/develop...HEAD -- 'src/**/*.ts' ':(glob)src/components/organisms/onboarding/**/*.vue' ':(glob)src/components/organisms/header/**/*.vue' ':(glob)src/components/organisms/unsubscribe/**/*.vue' ':(glob)src/components/organisms/save-as-template/**/*.vue' ':(glob)src/components/organisms/email-preview/**/*.vue' ':(glob)src/components/wrappers/**/*.vue' 'src/components/Guido.vue' ':(exclude)src/**/*.test.ts' ':(exclude)src/**/index.ts' ':(exclude)src/@types/**' ':(exclude)src/enums/**' ':(exclude)src/mock/**' | paste -sd, -); if [ -n \"$CHANGED\" ]; then stryker run --incremental --mutate \"$CHANGED\"; else echo \"No changed mutatable src files vs origin/develop\"; fi",
52
54
  "stripo:manifest": "node scripts/stripo-runtime-manifest.mjs",
53
55
  "prepare": "husky",
54
56
  "preinstall": "rm -rf ./node_modules/.vite"
@@ -99,9 +101,11 @@
99
101
  "globals": "16.0.0",
100
102
  "happy-dom": "15.11.7",
101
103
  "husky": "9.1.7",
104
+ "istanbul-lib-instrument": "6.0.3",
102
105
  "msw": "2.10.3",
103
106
  "nyc": "18.0.0",
104
107
  "sass": "1.69.7",
108
+ "test-exclude": "7.0.2",
105
109
  "typescript": "5.5.4",
106
110
  "typescript-eslint": "8.26.0",
107
111
  "vite-plugin-dts": "4.5.4",
@@ -124,11 +128,15 @@
124
128
  "lcov",
125
129
  "text-summary"
126
130
  ],
131
+ "extension": [
132
+ ".ts",
133
+ ".vue"
134
+ ],
127
135
  "all": false
128
136
  },
129
137
  "guido": {
130
138
  "stripo": {
131
- "version": "2.83.1"
139
+ "version": "2.86.1"
132
140
  }
133
141
  }
134
142
  }
@@ -1,11 +0,0 @@
1
- import { Block, BlockCompositionType } from '@stripoinc/ui-editor-extensions';
2
- export declare const BLOCK_ID = "{{your-block}}";
3
- export declare class CustomBlock extends Block {
4
- constructor();
5
- getId(): string;
6
- getIcon(): string;
7
- getBlockCompositionType(): BlockCompositionType;
8
- getName(): string;
9
- getDescription(): string;
10
- getTemplate(): string;
11
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * Control IDs used in the Extension
3
- * These IDs are returned by the getId() method of each control
4
- */
5
- export declare enum BlockControlId {
6
- BLOCK_BACKGROUND = "{{your-block}}-background-color-control"
7
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * Extension Constants
3
- *
4
- * This module re-exports all constants for the extension.
5
- * Import from this file for cleaner imports.
6
- * @example
7
- * import { BlockControlId, BLOCK_ROOT_SELECTOR } from './constants';
8
- */
9
- export { BlockControlId } from './controlIds';
10
- export { BLOCK_ROOT_SELECTOR, CSS_CLASS_BLOCK, CSS_CLASS_BLOCK_V2, } from './selectors';
@@ -1,16 +0,0 @@
1
- /**
2
- * CSS selectors and class names used across the extension
3
- *
4
- * Declare them ONCE here and import everywhere (template, migrator, save validator,
5
- * controls). The same literal re-typed across those files is how a rename half-lands.
6
- */
7
- /** Stable contract class, if the backend selects this block by name. Renaming breaks it. */
8
- export declare const CSS_CLASS_BLOCK = "{{your-block}}";
9
- /** Current block class — what the template emits and the migrator upgrades legacy blocks to. */
10
- export declare const CSS_CLASS_BLOCK_V2 = "{{your-block}}-v2";
11
- /**
12
- * Block root selector — the block `<td>` itself.
13
- * Used across block-level controls so edits apply to the whole block, not the title cell.
14
- * Derived from the class so a rename cannot half-land.
15
- */
16
- export declare const BLOCK_ROOT_SELECTOR = ".{{your-block}}-v2";
@@ -1,17 +0,0 @@
1
- import { Control, ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
2
- export declare const CONTROL_BLOCK_ID = "ui-elements-{{your-control-block}}";
3
- export declare class CustomControl extends Control {
4
- private currentNode?;
5
- private selectedUnsubGroup?;
6
- private unsubList;
7
- getId(): string;
8
- _setFormValues(): void;
9
- _getLabel(text: string, name?: string): string;
10
- _getSelectItem(text: string, value: string): string;
11
- _getSelect(): string;
12
- getTemplate(): string;
13
- _onSelectChange(value: string | number): void;
14
- _listenToFormUpdates(): void;
15
- onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
16
- onRender(): Promise<void>;
17
- }
@@ -1,15 +0,0 @@
1
- export declare const BlockBackgroundControl: {
2
- new (): {
3
- getId(): string;
4
- getLabels(): {
5
- title: string;
6
- };
7
- getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
8
- 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;
9
- getParentControlId(): string;
10
- api: import("@stripoinc/ui-editor-extensions").ControlApi;
11
- getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
12
- isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
13
- getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
14
- };
15
- };
@@ -1,2 +0,0 @@
1
- declare const _default: import("@stripoinc/ui-editor-extensions").Extension;
2
- export default _default;
@@ -1,4 +0,0 @@
1
- import { IconsRegistry } from '@stripoinc/ui-editor-extensions';
2
- export declare class MyIconsRegistry extends IconsRegistry {
3
- registerIconsSvg(iconsMap: Record<string, string>): void;
4
- }
@@ -1,4 +0,0 @@
1
- import { SettingsPanelRegistry, SettingsPanelTab } from '@stripoinc/ui-editor-extensions';
2
- export declare class SettingsPanel extends SettingsPanelRegistry {
3
- registerBlockControls(blockControlsMap: Record<string, SettingsPanelTab[]>): void;
4
- }
@@ -1,6 +0,0 @@
1
- declare const migrationTemplate = "\n <td \n align=\"left\" \n esd-extension-block-id=\"checkbox-block\" \n class=\"checkbox-block-v2 esd-block-checkbox esd-checkbox-block esd-extension-block es-p20\"\n >\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n <td align=\"left\" width=\"39\" style=\"vertical-align: top\">\n <input type=\"checkbox\">\n </td>\n <td align=\"left\" width=\"816\" style=\"vertical-align: top\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>{-{-TITLE-}-}</tr>\n <tr>{-{-DESCRIPTION-}-}</tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n";
2
- /**
3
- * @returns The template for the default checkbox block
4
- */
5
- export declare function getDefaultTemplate(): string;
6
- export default migrationTemplate;