@useinsider/guido 3.21.2-beta.cfc5be2 → 3.21.2-beta.d9d48aa

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 (69) hide show
  1. package/README.md +9 -1
  2. package/dist/@types/config/schemas.js +19 -19
  3. package/dist/components/Guido.vue.js +8 -8
  4. package/dist/components/Guido.vue2.js +76 -74
  5. package/dist/components/organisms/unsubscribe/LegacyUnsubscribeConvertedModal.vue.js +17 -0
  6. package/dist/components/organisms/unsubscribe/LegacyUnsubscribeConvertedModal.vue2.js +30 -0
  7. package/dist/composables/useBlocksConfig.js +24 -32
  8. package/dist/composables/useModuleRepair.js +32 -23
  9. package/dist/config/migrator/index.js +10 -9
  10. package/dist/config/migrator/legacyUnsubscribeTextMigrator.js +16 -0
  11. package/dist/enums/academy.js +2 -2
  12. package/dist/guido.css +1 -1
  13. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +92 -93
  14. package/dist/node_modules/valibot/dist/index.js +261 -297
  15. package/dist/src/@types/config/schemas.d.ts +4 -4
  16. package/dist/src/composables/useConfig.d.ts +2 -2
  17. package/dist/src/composables/useModuleRepair.d.ts +2 -11
  18. package/dist/src/config/migrator/legacyUnsubscribeTextMigrator.d.ts +1 -0
  19. package/dist/src/enums/academy.d.ts +1 -1
  20. package/dist/src/stores/config.d.ts +20 -166
  21. package/dist/src/stores/editor.d.ts +25 -0
  22. package/dist/src/utils/legacyUnsubscribeConversion.d.ts +10 -0
  23. package/dist/stores/config.js +6 -13
  24. package/dist/stores/editor.js +15 -14
  25. package/dist/utils/legacyUnsubscribeConversion.js +49 -0
  26. package/dist/utils/pairProductVariables.js +14 -15
  27. package/package.json +1 -1
  28. package/dist/@types/display-condition.js +0 -25
  29. package/dist/components/organisms/display-conditions/CodeEditorField.vue.js +0 -20
  30. package/dist/components/organisms/display-conditions/CodeEditorField.vue2.js +0 -30
  31. package/dist/components/organisms/display-conditions/DisplayConditionCreateDrawer.vue.js +0 -30
  32. package/dist/components/organisms/display-conditions/DisplayConditionCreateDrawer.vue2.js +0 -71
  33. package/dist/components/organisms/display-conditions/DisplayConditionSelectDrawer.vue.js +0 -34
  34. package/dist/components/organisms/display-conditions/DisplayConditionSelectDrawer.vue2.js +0 -57
  35. package/dist/components/organisms/display-conditions/DisplayConditionsHost.vue.js +0 -17
  36. package/dist/components/organisms/display-conditions/DisplayConditionsHost.vue2.js +0 -22
  37. package/dist/composables/useDisplayConditions.js +0 -102
  38. package/dist/enums/display-condition.js +0 -12
  39. package/dist/extensions/DisplayConditions/bridge.js +0 -17
  40. package/dist/extensions/DisplayConditions/constants.js +0 -17
  41. package/dist/extensions/DisplayConditions/control.js +0 -178
  42. package/dist/extensions/DisplayConditions/display-conditions.css.js +0 -201
  43. package/dist/extensions/DisplayConditions/extension.js +0 -28
  44. package/dist/extensions/DisplayConditions/iconsRegistry.js +0 -20
  45. package/dist/extensions/DisplayConditions/library.js +0 -27
  46. package/dist/extensions/DisplayConditions/settingsPanel.js +0 -17
  47. package/dist/services/displayConditionApi.js +0 -39
  48. package/dist/src/@types/display-condition.d.ts +0 -59
  49. package/dist/src/components/organisms/display-conditions/CodeEditorField.vue.d.ts +0 -43
  50. package/dist/src/components/organisms/display-conditions/DisplayConditionSelectDrawer.vue.d.ts +0 -2
  51. package/dist/src/components/organisms/display-conditions/DisplayConditionsHost.vue.d.ts +0 -2
  52. package/dist/src/composables/useDisplayConditions.d.ts +0 -16
  53. package/dist/src/enums/display-condition.d.ts +0 -15
  54. package/dist/src/extensions/DisplayConditions/bridge.d.ts +0 -6
  55. package/dist/src/extensions/DisplayConditions/constants.d.ts +0 -14
  56. package/dist/src/extensions/DisplayConditions/control.d.ts +0 -23
  57. package/dist/src/extensions/DisplayConditions/extension.d.ts +0 -2
  58. package/dist/src/extensions/DisplayConditions/iconsRegistry.d.ts +0 -4
  59. package/dist/src/extensions/DisplayConditions/library.d.ts +0 -8
  60. package/dist/src/extensions/DisplayConditions/settingsPanel.d.ts +0 -5
  61. package/dist/src/mock/api/display-conditions.d.ts +0 -2
  62. package/dist/src/services/displayConditionApi.d.ts +0 -8
  63. package/dist/src/stores/display-condition.d.ts +0 -81
  64. package/dist/src/utils/displayCondition.d.ts +0 -10
  65. package/dist/src/utils/protectTableText.d.ts +0 -2
  66. package/dist/stores/display-condition.js +0 -28
  67. package/dist/utils/displayCondition.js +0 -26
  68. package/dist/utils/protectTableText.js +0 -22
  69. /package/dist/src/components/organisms/{display-conditions/DisplayConditionCreateDrawer.vue.d.ts → unsubscribe/LegacyUnsubscribeConvertedModal.vue.d.ts} +0 -0
@@ -384,8 +384,6 @@ export declare const UISchema: v.ObjectSchema<{
384
384
  readonly showHeader: v.OptionalSchema<v.BooleanSchema<undefined>, true>;
385
385
  /** Custom label for back button (if shown) */
386
386
  readonly backButtonLabel: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
387
- /** Replace Stripo's display-condition UI with the Conditions tab and create/select drawers */
388
- readonly externalDisplayConditions: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
389
387
  }, undefined>;
390
388
  /**
391
389
  * Features configuration - enable/disable editor features
@@ -416,6 +414,8 @@ export declare const FeaturesSchema: v.ObjectSchema<{
416
414
  /** Allow persisting a template that still has validation errors (drawer "Save and Continue" soft-save). Host sets false for transactional + unsubscribe. */
417
415
  readonly allowSaveWithErrors: v.OptionalSchema<v.BooleanSchema<undefined>, true>;
418
416
  readonly reusableRecommendationStrategy: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
417
+ /** Convert linkless legacy unsubscribe blocks into text blocks and warn with a modal (opt-in) */
418
+ readonly legacyUnsubscribeConversion: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
419
419
  }, undefined>;
420
420
  /**
421
421
  * Default block types available in Stripo
@@ -806,8 +806,6 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
806
806
  readonly showHeader: v.OptionalSchema<v.BooleanSchema<undefined>, true>;
807
807
  /** Custom label for back button (if shown) */
808
808
  readonly backButtonLabel: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
809
- /** Replace Stripo's display-condition UI with the Conditions tab and create/select drawers */
810
- readonly externalDisplayConditions: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
811
809
  }, undefined>, {}>;
812
810
  /** Feature toggles */
813
811
  readonly features: v.OptionalSchema<v.ObjectSchema<{
@@ -836,6 +834,8 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
836
834
  /** Allow persisting a template that still has validation errors (drawer "Save and Continue" soft-save). Host sets false for transactional + unsubscribe. */
837
835
  readonly allowSaveWithErrors: v.OptionalSchema<v.BooleanSchema<undefined>, true>;
838
836
  readonly reusableRecommendationStrategy: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
837
+ /** Convert linkless legacy unsubscribe blocks into text blocks and warn with a modal (opt-in) */
838
+ readonly legacyUnsubscribeConversion: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
839
839
  }, undefined>, {}>;
840
840
  /** Block configuration */
841
841
  readonly blocks: v.OptionalSchema<v.ObjectSchema<{
@@ -89,7 +89,6 @@ export declare const useConfig: () => {
89
89
  ui: {
90
90
  showHeader: boolean;
91
91
  backButtonLabel?: string | undefined;
92
- externalDisplayConditions: boolean;
93
92
  };
94
93
  features: {
95
94
  dynamicContent: boolean;
@@ -105,6 +104,7 @@ export declare const useConfig: () => {
105
104
  linkTrackingIds: boolean;
106
105
  allowSaveWithErrors: boolean;
107
106
  reusableRecommendationStrategy: boolean;
107
+ legacyUnsubscribeConversion: boolean;
108
108
  };
109
109
  blocks: {
110
110
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -229,7 +229,6 @@ export declare const useConfig: () => {
229
229
  ui: import("vue").ComputedRef<{
230
230
  showHeader: boolean;
231
231
  backButtonLabel?: string | undefined;
232
- externalDisplayConditions: boolean;
233
232
  } | null>;
234
233
  features: import("vue").ComputedRef<{
235
234
  dynamicContent: boolean;
@@ -245,6 +244,7 @@ export declare const useConfig: () => {
245
244
  linkTrackingIds: boolean;
246
245
  allowSaveWithErrors: boolean;
247
246
  reusableRecommendationStrategy: boolean;
247
+ legacyUnsubscribeConversion: boolean;
248
248
  } | null>;
249
249
  blocks: import("vue").ComputedRef<{
250
250
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -1,17 +1,8 @@
1
1
  import type { ModuleAddData, ModuleModifier } from '@@/Types/stripo';
2
2
  export declare const UNRESOLVED_DYNAMIC_CONTENT_ON_DROP_KEY = "dynamic-content.unresolved-attributes-on-drop";
3
3
  /**
4
- * Repairs saved modules as they are dropped or copied into the editor, in one pass
5
- * over the module HTML. Two independent repairs run through a single write-back:
6
- *
7
- * - Dynamic content: saved modules serialize merge-tag chips by their display label
8
- * (`{{ Phone Number }}`); this maps them back to their canonical token
9
- * (`{{phone_number}}`) using the account's dynamic-content list.
10
- * - Items currency: v2 Items blocks can carry price `data-curency` /
11
- * `data-currency_symbol` attrs that drifted from their `esd-ext-config`; these are
12
- * healed from config (the export contract reads those exact attrs).
13
- *
14
- * Wired into Stripo via the `onModuleAdd` init callback (see `useStripo`).
4
+ * Repairs dropped/copied saved modules (items currency, linkless legacy unsubscribe → text block,
5
+ * dynamic-content labels → tokens) in one write-back; wired via Stripo's `onModuleAdd` (see `useStripo`).
15
6
  */
16
7
  export declare const useModuleRepair: () => {
17
8
  handleModuleAdd: (data: ModuleAddData, modifier: ModuleModifier) => void;
@@ -0,0 +1 @@
1
+ export declare const migrateLegacyUnsubscribeText: (html: string) => string;
@@ -8,7 +8,7 @@ export declare const ACADEMY_LINKS: {
8
8
  readonly EMAIL_EDITOR: "https://academy.insiderone.com/docs/email-drag-and-drop-editor";
9
9
  readonly GLOBAL_UNSUBSCRIBE: "https://academy.insiderone.com/docs/global-unsubscribe-preference-center";
10
10
  readonly AMP_FOR_EMAILS: "https://academy.insiderone.com/docs/amp-for-emails";
11
- readonly EMAIL_DISPLAY_CONDITIONS: "https://academy.insiderone.com/docs/new-editor-add-display-conditions-to-an-email";
12
11
  readonly EMAIL_RECOMMENDATION_BLOCK: "https://academy.insiderone.com/docs/new-editor-email-recommendation-block";
12
+ readonly LEGACY_UNSUBSCRIBE_MODULE: "https://academy.insiderone.com/docs/new-editor-add-unsubscribe-pages-into-emails";
13
13
  };
14
14
  export type AcademyLinkKey = keyof typeof ACADEMY_LINKS;
@@ -94,7 +94,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
94
94
  ui: {
95
95
  showHeader: boolean;
96
96
  backButtonLabel?: string | undefined;
97
- externalDisplayConditions: boolean;
98
97
  };
99
98
  features: {
100
99
  dynamicContent: boolean;
@@ -110,6 +109,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
110
109
  linkTrackingIds: boolean;
111
110
  allowSaveWithErrors: boolean;
112
111
  reusableRecommendationStrategy: boolean;
112
+ legacyUnsubscribeConversion: boolean;
113
113
  };
114
114
  blocks: {
115
115
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -240,7 +240,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
240
240
  ui: {
241
241
  showHeader: boolean;
242
242
  backButtonLabel?: string | undefined;
243
- externalDisplayConditions: boolean;
244
243
  };
245
244
  features: {
246
245
  dynamicContent: boolean;
@@ -256,6 +255,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
256
255
  linkTrackingIds: boolean;
257
256
  allowSaveWithErrors: boolean;
258
257
  reusableRecommendationStrategy: boolean;
258
+ legacyUnsubscribeConversion: boolean;
259
259
  };
260
260
  blocks: {
261
261
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -386,7 +386,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
386
386
  ui: {
387
387
  showHeader: boolean;
388
388
  backButtonLabel?: string | undefined;
389
- externalDisplayConditions: boolean;
390
389
  };
391
390
  features: {
392
391
  dynamicContent: boolean;
@@ -402,6 +401,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
402
401
  linkTrackingIds: boolean;
403
402
  allowSaveWithErrors: boolean;
404
403
  reusableRecommendationStrategy: boolean;
404
+ legacyUnsubscribeConversion: boolean;
405
405
  };
406
406
  blocks: {
407
407
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -532,7 +532,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
532
532
  ui: {
533
533
  showHeader: boolean;
534
534
  backButtonLabel?: string | undefined;
535
- externalDisplayConditions: boolean;
536
535
  };
537
536
  features: {
538
537
  dynamicContent: boolean;
@@ -548,6 +547,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
548
547
  linkTrackingIds: boolean;
549
548
  allowSaveWithErrors: boolean;
550
549
  reusableRecommendationStrategy: boolean;
550
+ legacyUnsubscribeConversion: boolean;
551
551
  };
552
552
  blocks: {
553
553
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -678,7 +678,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
678
678
  ui: {
679
679
  showHeader: boolean;
680
680
  backButtonLabel?: string | undefined;
681
- externalDisplayConditions: boolean;
682
681
  };
683
682
  features: {
684
683
  dynamicContent: boolean;
@@ -694,6 +693,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
694
693
  linkTrackingIds: boolean;
695
694
  allowSaveWithErrors: boolean;
696
695
  reusableRecommendationStrategy: boolean;
696
+ legacyUnsubscribeConversion: boolean;
697
697
  };
698
698
  blocks: {
699
699
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -824,7 +824,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
824
824
  ui: {
825
825
  showHeader: boolean;
826
826
  backButtonLabel?: string | undefined;
827
- externalDisplayConditions: boolean;
828
827
  };
829
828
  features: {
830
829
  dynamicContent: boolean;
@@ -840,6 +839,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
840
839
  linkTrackingIds: boolean;
841
840
  allowSaveWithErrors: boolean;
842
841
  reusableRecommendationStrategy: boolean;
842
+ legacyUnsubscribeConversion: boolean;
843
843
  };
844
844
  blocks: {
845
845
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -970,7 +970,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
970
970
  ui: {
971
971
  showHeader: boolean;
972
972
  backButtonLabel?: string | undefined;
973
- externalDisplayConditions: boolean;
974
973
  };
975
974
  features: {
976
975
  dynamicContent: boolean;
@@ -986,6 +985,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
986
985
  linkTrackingIds: boolean;
987
986
  allowSaveWithErrors: boolean;
988
987
  reusableRecommendationStrategy: boolean;
988
+ legacyUnsubscribeConversion: boolean;
989
989
  };
990
990
  blocks: {
991
991
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -1116,7 +1116,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1116
1116
  ui: {
1117
1117
  showHeader: boolean;
1118
1118
  backButtonLabel?: string | undefined;
1119
- externalDisplayConditions: boolean;
1120
1119
  };
1121
1120
  features: {
1122
1121
  dynamicContent: boolean;
@@ -1132,6 +1131,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1132
1131
  linkTrackingIds: boolean;
1133
1132
  allowSaveWithErrors: boolean;
1134
1133
  reusableRecommendationStrategy: boolean;
1134
+ legacyUnsubscribeConversion: boolean;
1135
1135
  };
1136
1136
  blocks: {
1137
1137
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -1262,7 +1262,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1262
1262
  ui: {
1263
1263
  showHeader: boolean;
1264
1264
  backButtonLabel?: string | undefined;
1265
- externalDisplayConditions: boolean;
1266
1265
  };
1267
1266
  features: {
1268
1267
  dynamicContent: boolean;
@@ -1278,6 +1277,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1278
1277
  linkTrackingIds: boolean;
1279
1278
  allowSaveWithErrors: boolean;
1280
1279
  reusableRecommendationStrategy: boolean;
1280
+ legacyUnsubscribeConversion: boolean;
1281
1281
  };
1282
1282
  blocks: {
1283
1283
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -1408,7 +1408,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1408
1408
  ui: {
1409
1409
  showHeader: boolean;
1410
1410
  backButtonLabel?: string | undefined;
1411
- externalDisplayConditions: boolean;
1412
1411
  };
1413
1412
  features: {
1414
1413
  dynamicContent: boolean;
@@ -1424,6 +1423,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1424
1423
  linkTrackingIds: boolean;
1425
1424
  allowSaveWithErrors: boolean;
1426
1425
  reusableRecommendationStrategy: boolean;
1426
+ legacyUnsubscribeConversion: boolean;
1427
1427
  };
1428
1428
  blocks: {
1429
1429
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -1554,7 +1554,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1554
1554
  ui: {
1555
1555
  showHeader: boolean;
1556
1556
  backButtonLabel?: string | undefined;
1557
- externalDisplayConditions: boolean;
1558
1557
  };
1559
1558
  features: {
1560
1559
  dynamicContent: boolean;
@@ -1570,6 +1569,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1570
1569
  linkTrackingIds: boolean;
1571
1570
  allowSaveWithErrors: boolean;
1572
1571
  reusableRecommendationStrategy: boolean;
1572
+ legacyUnsubscribeConversion: boolean;
1573
1573
  };
1574
1574
  blocks: {
1575
1575
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -1700,7 +1700,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1700
1700
  ui: {
1701
1701
  showHeader: boolean;
1702
1702
  backButtonLabel?: string | undefined;
1703
- externalDisplayConditions: boolean;
1704
1703
  };
1705
1704
  features: {
1706
1705
  dynamicContent: boolean;
@@ -1716,6 +1715,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1716
1715
  linkTrackingIds: boolean;
1717
1716
  allowSaveWithErrors: boolean;
1718
1717
  reusableRecommendationStrategy: boolean;
1718
+ legacyUnsubscribeConversion: boolean;
1719
1719
  };
1720
1720
  blocks: {
1721
1721
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -1846,7 +1846,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1846
1846
  ui: {
1847
1847
  showHeader: boolean;
1848
1848
  backButtonLabel?: string | undefined;
1849
- externalDisplayConditions: boolean;
1850
1849
  };
1851
1850
  features: {
1852
1851
  dynamicContent: boolean;
@@ -1862,6 +1861,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1862
1861
  linkTrackingIds: boolean;
1863
1862
  allowSaveWithErrors: boolean;
1864
1863
  reusableRecommendationStrategy: boolean;
1864
+ legacyUnsubscribeConversion: boolean;
1865
1865
  };
1866
1866
  blocks: {
1867
1867
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -1992,7 +1992,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1992
1992
  ui: {
1993
1993
  showHeader: boolean;
1994
1994
  backButtonLabel?: string | undefined;
1995
- externalDisplayConditions: boolean;
1996
1995
  };
1997
1996
  features: {
1998
1997
  dynamicContent: boolean;
@@ -2008,6 +2007,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2008
2007
  linkTrackingIds: boolean;
2009
2008
  allowSaveWithErrors: boolean;
2010
2009
  reusableRecommendationStrategy: boolean;
2010
+ legacyUnsubscribeConversion: boolean;
2011
2011
  };
2012
2012
  blocks: {
2013
2013
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -2138,7 +2138,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2138
2138
  ui: {
2139
2139
  showHeader: boolean;
2140
2140
  backButtonLabel?: string | undefined;
2141
- externalDisplayConditions: boolean;
2142
2141
  };
2143
2142
  features: {
2144
2143
  dynamicContent: boolean;
@@ -2154,6 +2153,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2154
2153
  linkTrackingIds: boolean;
2155
2154
  allowSaveWithErrors: boolean;
2156
2155
  reusableRecommendationStrategy: boolean;
2156
+ legacyUnsubscribeConversion: boolean;
2157
2157
  };
2158
2158
  blocks: {
2159
2159
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -2284,7 +2284,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2284
2284
  ui: {
2285
2285
  showHeader: boolean;
2286
2286
  backButtonLabel?: string | undefined;
2287
- externalDisplayConditions: boolean;
2288
2287
  };
2289
2288
  features: {
2290
2289
  dynamicContent: boolean;
@@ -2300,6 +2299,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2300
2299
  linkTrackingIds: boolean;
2301
2300
  allowSaveWithErrors: boolean;
2302
2301
  reusableRecommendationStrategy: boolean;
2302
+ legacyUnsubscribeConversion: boolean;
2303
2303
  };
2304
2304
  blocks: {
2305
2305
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -2430,7 +2430,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2430
2430
  ui: {
2431
2431
  showHeader: boolean;
2432
2432
  backButtonLabel?: string | undefined;
2433
- externalDisplayConditions: boolean;
2434
2433
  };
2435
2434
  features: {
2436
2435
  dynamicContent: boolean;
@@ -2446,6 +2445,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2446
2445
  linkTrackingIds: boolean;
2447
2446
  allowSaveWithErrors: boolean;
2448
2447
  reusableRecommendationStrategy: boolean;
2448
+ legacyUnsubscribeConversion: boolean;
2449
2449
  };
2450
2450
  blocks: {
2451
2451
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -2588,7 +2588,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2588
2588
  ui: {
2589
2589
  showHeader: boolean;
2590
2590
  backButtonLabel?: string | undefined;
2591
- externalDisplayConditions: boolean;
2592
2591
  };
2593
2592
  features: {
2594
2593
  dynamicContent: boolean;
@@ -2604,6 +2603,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2604
2603
  linkTrackingIds: boolean;
2605
2604
  allowSaveWithErrors: boolean;
2606
2605
  reusableRecommendationStrategy: boolean;
2606
+ legacyUnsubscribeConversion: boolean;
2607
2607
  };
2608
2608
  blocks: {
2609
2609
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -2734,153 +2734,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2734
2734
  ui: {
2735
2735
  showHeader: boolean;
2736
2736
  backButtonLabel?: string | undefined;
2737
- externalDisplayConditions: boolean;
2738
- };
2739
- features: {
2740
- dynamicContent: boolean;
2741
- saveAsTemplate: boolean;
2742
- versionHistory: boolean;
2743
- testMessage: boolean;
2744
- displayConditions: boolean;
2745
- unsubscribe: boolean;
2746
- modulesDisabled: boolean;
2747
- liquidSyntax: boolean;
2748
- autosave: boolean;
2749
- allowlistEnabled: boolean;
2750
- linkTrackingIds: boolean;
2751
- allowSaveWithErrors: boolean;
2752
- reusableRecommendationStrategy: boolean;
2753
- };
2754
- blocks: {
2755
- excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
2756
- includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
2757
- };
2758
- compiler: {
2759
- customRules: ({
2760
- type: "replace";
2761
- search: string;
2762
- replacement: string;
2763
- replaceAll?: boolean | undefined;
2764
- id: string;
2765
- description?: string | undefined;
2766
- priority: number;
2767
- } | {
2768
- type: "regex";
2769
- pattern: string;
2770
- replacement: string;
2771
- flags?: string | undefined;
2772
- id: string;
2773
- description?: string | undefined;
2774
- priority: number;
2775
- } | {
2776
- type: "remove";
2777
- targets: string[];
2778
- id: string;
2779
- description?: string | undefined;
2780
- priority: number;
2781
- } | {
2782
- type: "custom";
2783
- processor: (html: string) => string;
2784
- id: string;
2785
- description?: string | undefined;
2786
- priority: number;
2787
- })[];
2788
- ignoreDefaultRules: boolean;
2789
- };
2790
- callbacks: {
2791
- externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
2792
- };
2793
- } | null;
2794
- } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => boolean;
2795
- /**
2796
- * Check if the Insider display-condition UI replaces Stripo's
2797
- */
2798
- externalDisplayConditions: (state: {
2799
- initialized: boolean;
2800
- config: {
2801
- identity: {
2802
- templateId: string;
2803
- userId: string;
2804
- variationId?: string | undefined;
2805
- campaignId?: string | undefined;
2806
- templateLibraryId?: string | undefined;
2807
- };
2808
- partner: {
2809
- name: string;
2810
- productType: 60 | 49 | 97;
2811
- messageType: 1 | 2;
2812
- username: string;
2813
- fallbackFont?: {
2814
- name: string;
2815
- family: string;
2816
- } | undefined;
2817
- };
2818
- template: {
2819
- html: string;
2820
- css: string;
2821
- preselectedDynamicContent: {
2822
- text: string;
2823
- value: string;
2824
- fallback?: string | undefined;
2825
- format?: {
2826
- key: string;
2827
- value: string;
2828
- } | undefined;
2829
- }[];
2830
- dynamicContentList: {
2831
- [x: string]: import("../library").DynamicContentNode[];
2832
- };
2833
- customFieldAttributes: string[];
2834
- selectedUnsubscribePages: number[];
2835
- forceRecreate: boolean;
2836
- trackIdCounter: number;
2837
- recommendationCampaignUrls?: Record<string, unknown> | undefined;
2838
- migration: {
2839
- recommendationConfigs: {
2840
- [x: string]: {
2841
- id?: number | undefined;
2842
- decimalCount?: string | number | undefined;
2843
- productIds?: unknown[] | undefined;
2844
- sendProductRequestFlag?: boolean | undefined;
2845
- shuffleProducts?: boolean | undefined;
2846
- filters?: unknown[] | undefined;
2847
- currency?: string | undefined;
2848
- currencySettings?: unknown;
2849
- language?: string | undefined;
2850
- strategy?: string | undefined;
2851
- recommendedProducts?: unknown[] | undefined;
2852
- cardsInRow?: number | undefined;
2853
- mobileRightPadding?: number | undefined;
2854
- mobileLeftPadding?: number | undefined;
2855
- unresponsive?: boolean | undefined;
2856
- orientation?: string | undefined;
2857
- textTrimming?: boolean | undefined;
2858
- blockType?: string | undefined;
2859
- size?: string | number | undefined;
2860
- verticalResponsiveness?: boolean | undefined;
2861
- isPriceMovedToNextLine?: boolean | undefined;
2862
- isPriceDeletedForZeroSale?: boolean | undefined;
2863
- } & {
2864
- [key: string]: unknown;
2865
- };
2866
- };
2867
- };
2868
- };
2869
- editor: {
2870
- locale: string;
2871
- translationsPath: string;
2872
- migrationDate: number;
2873
- emailHeader: {
2874
- senderName: string;
2875
- subject: string;
2876
- };
2877
- savedModulesFolderName: string;
2878
- defaultModulesFolderName: string;
2879
- };
2880
- ui: {
2881
- showHeader: boolean;
2882
- backButtonLabel?: string | undefined;
2883
- externalDisplayConditions: boolean;
2884
2737
  };
2885
2738
  features: {
2886
2739
  dynamicContent: boolean;
@@ -2896,6 +2749,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2896
2749
  linkTrackingIds: boolean;
2897
2750
  allowSaveWithErrors: boolean;
2898
2751
  reusableRecommendationStrategy: boolean;
2752
+ legacyUnsubscribeConversion: boolean;
2899
2753
  };
2900
2754
  blocks: {
2901
2755
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -3028,7 +2882,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
3028
2882
  ui: {
3029
2883
  showHeader: boolean;
3030
2884
  backButtonLabel?: string | undefined;
3031
- externalDisplayConditions: boolean;
3032
2885
  };
3033
2886
  features: {
3034
2887
  dynamicContent: boolean;
@@ -3044,6 +2897,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
3044
2897
  linkTrackingIds: boolean;
3045
2898
  allowSaveWithErrors: boolean;
3046
2899
  reusableRecommendationStrategy: boolean;
2900
+ legacyUnsubscribeConversion: boolean;
3047
2901
  };
3048
2902
  blocks: {
3049
2903
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];