@useinsider/guido 3.12.0-beta.ea5b317 → 3.12.0-beta.eb4ca1c
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.
- package/README.md +5 -0
- package/dist/@types/config/schemas.js +64 -50
- package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +1 -1
- package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +8 -8
- package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +5 -5
- package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue2.js +10 -10
- package/dist/composables/useAllowlistToast.js +21 -0
- package/dist/composables/usePreviewInteractionGuard.js +36 -11
- package/dist/composables/useRecommendationPreview.js +61 -60
- package/dist/composables/useSave.js +44 -24
- package/dist/composables/useUserRole.js +13 -0
- package/dist/composables/validators/useAllowlistValidator.js +31 -0
- package/dist/enums/roles.js +4 -0
- package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +1 -1
- package/dist/extensions/Blocks/Recommendation/controls/blockBackground/index.js +10 -0
- package/dist/extensions/Blocks/Recommendation/extension.js +23 -21
- package/dist/extensions/Blocks/Recommendation/settingsPanel.js +41 -40
- package/dist/extensions/Blocks/Unsubscribe/utils/constants.js +3 -2
- package/dist/extensions/Blocks/controlFactories.js +125 -75
- package/dist/guido.css +1 -1
- package/dist/services/stripoApi.js +18 -18
- package/dist/src/@types/config/schemas.d.ts +32 -0
- package/dist/src/composables/useAllowlistToast.d.ts +17 -0
- package/dist/src/composables/useConfig.d.ts +4 -0
- package/dist/src/composables/usePreviewInteractionGuard.d.ts +1 -1
- package/dist/src/composables/useUserRole.d.ts +8 -0
- package/dist/src/composables/validators/useAllowlistValidator.d.ts +9 -0
- package/dist/src/enums/roles.d.ts +9 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/controlIds.d.ts +1 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/blockBackground/index.d.ts +14 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +1 -0
- package/dist/src/extensions/Blocks/Unsubscribe/utils/constants.d.ts +1 -0
- package/dist/src/extensions/Blocks/controlFactories.d.ts +36 -0
- package/dist/src/stores/config.d.ts +36 -0
- package/dist/src/utils/urlSchemes.d.ts +6 -0
- package/dist/static/styles/components/base-input.css.js +6 -7
- package/dist/utils/urlSchemes.js +4 -0
- package/package.json +1 -1
|
@@ -115,6 +115,42 @@ export declare function createTextBackgroundColorControl(controlId: string, targ
|
|
|
115
115
|
isVisible(_node: ImmutableHtmlNode): boolean;
|
|
116
116
|
};
|
|
117
117
|
};
|
|
118
|
+
/**
|
|
119
|
+
* Factory for a background-color control that paints a whole extension block (SD-145082).
|
|
120
|
+
*
|
|
121
|
+
* Base is `ButtonBackgroundColorBuiltInControl` because its `GENERAL.BACKGROUND_COLOR` form key
|
|
122
|
+
* round-trips through `getValues()`; the block-text base (`TextBlockBackgroundBuiltInControl`, the
|
|
123
|
+
* built-in this replaces) reports `textBlockBackgroundColor`, which our read path never sees. That
|
|
124
|
+
* borrowed base targets the block's Buy buttons, so `getTargetNodes` here is a GUARD that keeps it
|
|
125
|
+
* off the buttons — not the write path.
|
|
126
|
+
*
|
|
127
|
+
* The write is entirely ours (`getAdditionalModifications`): Stripo's built-in emits a stylesheet
|
|
128
|
+
* rule that inline styles from regeneration outrank (SD-143023), so it would silently no-op on the
|
|
129
|
+
* next edit. We write inline `background-color` + `bgcolor` on the block `<td>` instead — surviving
|
|
130
|
+
* regeneration and reaching Outlook, matching the migrator's convention.
|
|
131
|
+
*/
|
|
132
|
+
export declare function createBlockBackgroundColorControl(controlId: string, blockRootSelector?: string): {
|
|
133
|
+
new (): {
|
|
134
|
+
getId(): string;
|
|
135
|
+
/** The parent control renders its own generic title; restore the block-level wording. */
|
|
136
|
+
getLabels(): {
|
|
137
|
+
title: string;
|
|
138
|
+
};
|
|
139
|
+
/** Guard: redirect the borrowed button parent onto the block `<td>` so it never paints the Buy buttons. */
|
|
140
|
+
getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
|
|
141
|
+
/**
|
|
142
|
+
* Writes the picked background onto the block as an inline style plus a `bgcolor`
|
|
143
|
+
* attribute. This is the whole mechanism, not a mirror: the parent control's own
|
|
144
|
+
* write never reaches the block element (verified at runtime). `bgcolor` is the
|
|
145
|
+
* channel Outlook honours on a `<td>`, and matches what the migrator emits.
|
|
146
|
+
*/
|
|
147
|
+
getAdditionalModifications(root: ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
148
|
+
getParentControlId(): string;
|
|
149
|
+
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
150
|
+
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
151
|
+
isVisible(_node: ImmutableHtmlNode): boolean;
|
|
152
|
+
};
|
|
153
|
+
};
|
|
118
154
|
/**
|
|
119
155
|
* Factory function to create paddings controls for different block elements
|
|
120
156
|
* When targetBlockId and containerSelector are not provided, applies directly to root
|
|
@@ -101,6 +101,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
101
101
|
modulesDisabled: boolean;
|
|
102
102
|
liquidSyntax: boolean;
|
|
103
103
|
autosave: boolean;
|
|
104
|
+
allowlistEnabled: boolean;
|
|
104
105
|
};
|
|
105
106
|
blocks: {
|
|
106
107
|
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")[];
|
|
@@ -140,6 +141,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
140
141
|
};
|
|
141
142
|
callbacks: {
|
|
142
143
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
144
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
143
145
|
};
|
|
144
146
|
} | null;
|
|
145
147
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => IdentityConfig | null;
|
|
@@ -238,6 +240,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
238
240
|
modulesDisabled: boolean;
|
|
239
241
|
liquidSyntax: boolean;
|
|
240
242
|
autosave: boolean;
|
|
243
|
+
allowlistEnabled: boolean;
|
|
241
244
|
};
|
|
242
245
|
blocks: {
|
|
243
246
|
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")[];
|
|
@@ -277,6 +280,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
277
280
|
};
|
|
278
281
|
callbacks: {
|
|
279
282
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
283
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
280
284
|
};
|
|
281
285
|
} | null;
|
|
282
286
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => PartnerConfig | null;
|
|
@@ -375,6 +379,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
375
379
|
modulesDisabled: boolean;
|
|
376
380
|
liquidSyntax: boolean;
|
|
377
381
|
autosave: boolean;
|
|
382
|
+
allowlistEnabled: boolean;
|
|
378
383
|
};
|
|
379
384
|
blocks: {
|
|
380
385
|
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")[];
|
|
@@ -414,6 +419,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
414
419
|
};
|
|
415
420
|
callbacks: {
|
|
416
421
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
422
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
417
423
|
};
|
|
418
424
|
} | null;
|
|
419
425
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => TemplateConfig | null;
|
|
@@ -512,6 +518,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
512
518
|
modulesDisabled: boolean;
|
|
513
519
|
liquidSyntax: boolean;
|
|
514
520
|
autosave: boolean;
|
|
521
|
+
allowlistEnabled: boolean;
|
|
515
522
|
};
|
|
516
523
|
blocks: {
|
|
517
524
|
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")[];
|
|
@@ -551,6 +558,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
551
558
|
};
|
|
552
559
|
callbacks: {
|
|
553
560
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
561
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
554
562
|
};
|
|
555
563
|
} | null;
|
|
556
564
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => EditorConfig | null;
|
|
@@ -649,6 +657,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
649
657
|
modulesDisabled: boolean;
|
|
650
658
|
liquidSyntax: boolean;
|
|
651
659
|
autosave: boolean;
|
|
660
|
+
allowlistEnabled: boolean;
|
|
652
661
|
};
|
|
653
662
|
blocks: {
|
|
654
663
|
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")[];
|
|
@@ -688,6 +697,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
688
697
|
};
|
|
689
698
|
callbacks: {
|
|
690
699
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
700
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
691
701
|
};
|
|
692
702
|
} | null;
|
|
693
703
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => UIConfig | null;
|
|
@@ -786,6 +796,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
786
796
|
modulesDisabled: boolean;
|
|
787
797
|
liquidSyntax: boolean;
|
|
788
798
|
autosave: boolean;
|
|
799
|
+
allowlistEnabled: boolean;
|
|
789
800
|
};
|
|
790
801
|
blocks: {
|
|
791
802
|
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")[];
|
|
@@ -825,6 +836,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
825
836
|
};
|
|
826
837
|
callbacks: {
|
|
827
838
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
839
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
828
840
|
};
|
|
829
841
|
} | null;
|
|
830
842
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => FeaturesConfig | null;
|
|
@@ -923,6 +935,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
923
935
|
modulesDisabled: boolean;
|
|
924
936
|
liquidSyntax: boolean;
|
|
925
937
|
autosave: boolean;
|
|
938
|
+
allowlistEnabled: boolean;
|
|
926
939
|
};
|
|
927
940
|
blocks: {
|
|
928
941
|
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")[];
|
|
@@ -962,6 +975,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
962
975
|
};
|
|
963
976
|
callbacks: {
|
|
964
977
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
978
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
965
979
|
};
|
|
966
980
|
} | null;
|
|
967
981
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => BlocksConfig | null;
|
|
@@ -1060,6 +1074,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1060
1074
|
modulesDisabled: boolean;
|
|
1061
1075
|
liquidSyntax: boolean;
|
|
1062
1076
|
autosave: boolean;
|
|
1077
|
+
allowlistEnabled: boolean;
|
|
1063
1078
|
};
|
|
1064
1079
|
blocks: {
|
|
1065
1080
|
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")[];
|
|
@@ -1099,6 +1114,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1099
1114
|
};
|
|
1100
1115
|
callbacks: {
|
|
1101
1116
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
1117
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
1102
1118
|
};
|
|
1103
1119
|
} | null;
|
|
1104
1120
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => CompilerConfig | null;
|
|
@@ -1197,6 +1213,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1197
1213
|
modulesDisabled: boolean;
|
|
1198
1214
|
liquidSyntax: boolean;
|
|
1199
1215
|
autosave: boolean;
|
|
1216
|
+
allowlistEnabled: boolean;
|
|
1200
1217
|
};
|
|
1201
1218
|
blocks: {
|
|
1202
1219
|
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")[];
|
|
@@ -1236,6 +1253,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1236
1253
|
};
|
|
1237
1254
|
callbacks: {
|
|
1238
1255
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
1256
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
1239
1257
|
};
|
|
1240
1258
|
} | null;
|
|
1241
1259
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => CallbacksConfig | null;
|
|
@@ -1334,6 +1352,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1334
1352
|
modulesDisabled: boolean;
|
|
1335
1353
|
liquidSyntax: boolean;
|
|
1336
1354
|
autosave: boolean;
|
|
1355
|
+
allowlistEnabled: boolean;
|
|
1337
1356
|
};
|
|
1338
1357
|
blocks: {
|
|
1339
1358
|
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")[];
|
|
@@ -1373,6 +1392,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1373
1392
|
};
|
|
1374
1393
|
callbacks: {
|
|
1375
1394
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
1395
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
1376
1396
|
};
|
|
1377
1397
|
} | null;
|
|
1378
1398
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
|
|
@@ -1471,6 +1491,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1471
1491
|
modulesDisabled: boolean;
|
|
1472
1492
|
liquidSyntax: boolean;
|
|
1473
1493
|
autosave: boolean;
|
|
1494
|
+
allowlistEnabled: boolean;
|
|
1474
1495
|
};
|
|
1475
1496
|
blocks: {
|
|
1476
1497
|
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")[];
|
|
@@ -1510,6 +1531,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1510
1531
|
};
|
|
1511
1532
|
callbacks: {
|
|
1512
1533
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
1534
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
1513
1535
|
};
|
|
1514
1536
|
} | null;
|
|
1515
1537
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
|
|
@@ -1608,6 +1630,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1608
1630
|
modulesDisabled: boolean;
|
|
1609
1631
|
liquidSyntax: boolean;
|
|
1610
1632
|
autosave: boolean;
|
|
1633
|
+
allowlistEnabled: boolean;
|
|
1611
1634
|
};
|
|
1612
1635
|
blocks: {
|
|
1613
1636
|
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")[];
|
|
@@ -1647,6 +1670,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1647
1670
|
};
|
|
1648
1671
|
callbacks: {
|
|
1649
1672
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
1673
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
1650
1674
|
};
|
|
1651
1675
|
} | null;
|
|
1652
1676
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
|
|
@@ -1745,6 +1769,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1745
1769
|
modulesDisabled: boolean;
|
|
1746
1770
|
liquidSyntax: boolean;
|
|
1747
1771
|
autosave: boolean;
|
|
1772
|
+
allowlistEnabled: boolean;
|
|
1748
1773
|
};
|
|
1749
1774
|
blocks: {
|
|
1750
1775
|
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")[];
|
|
@@ -1784,6 +1809,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1784
1809
|
};
|
|
1785
1810
|
callbacks: {
|
|
1786
1811
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
1812
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
1787
1813
|
};
|
|
1788
1814
|
} | null;
|
|
1789
1815
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
|
|
@@ -1882,6 +1908,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1882
1908
|
modulesDisabled: boolean;
|
|
1883
1909
|
liquidSyntax: boolean;
|
|
1884
1910
|
autosave: boolean;
|
|
1911
|
+
allowlistEnabled: boolean;
|
|
1885
1912
|
};
|
|
1886
1913
|
blocks: {
|
|
1887
1914
|
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")[];
|
|
@@ -1921,6 +1948,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1921
1948
|
};
|
|
1922
1949
|
callbacks: {
|
|
1923
1950
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
1951
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
1924
1952
|
};
|
|
1925
1953
|
} | null;
|
|
1926
1954
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => number;
|
|
@@ -2019,6 +2047,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
2019
2047
|
modulesDisabled: boolean;
|
|
2020
2048
|
liquidSyntax: boolean;
|
|
2021
2049
|
autosave: boolean;
|
|
2050
|
+
allowlistEnabled: boolean;
|
|
2022
2051
|
};
|
|
2023
2052
|
blocks: {
|
|
2024
2053
|
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")[];
|
|
@@ -2058,6 +2087,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
2058
2087
|
};
|
|
2059
2088
|
callbacks: {
|
|
2060
2089
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
2090
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
2061
2091
|
};
|
|
2062
2092
|
} | null;
|
|
2063
2093
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => number;
|
|
@@ -2156,6 +2186,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
2156
2186
|
modulesDisabled: boolean;
|
|
2157
2187
|
liquidSyntax: boolean;
|
|
2158
2188
|
autosave: boolean;
|
|
2189
|
+
allowlistEnabled: boolean;
|
|
2159
2190
|
};
|
|
2160
2191
|
blocks: {
|
|
2161
2192
|
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")[];
|
|
@@ -2195,6 +2226,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
2195
2226
|
};
|
|
2196
2227
|
callbacks: {
|
|
2197
2228
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
2229
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
2198
2230
|
};
|
|
2199
2231
|
} | null;
|
|
2200
2232
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
|
|
@@ -2293,6 +2325,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
2293
2325
|
modulesDisabled: boolean;
|
|
2294
2326
|
liquidSyntax: boolean;
|
|
2295
2327
|
autosave: boolean;
|
|
2328
|
+
allowlistEnabled: boolean;
|
|
2296
2329
|
};
|
|
2297
2330
|
blocks: {
|
|
2298
2331
|
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")[];
|
|
@@ -2332,6 +2365,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
2332
2365
|
};
|
|
2333
2366
|
callbacks: {
|
|
2334
2367
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
2368
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
2335
2369
|
};
|
|
2336
2370
|
} | null;
|
|
2337
2371
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => boolean;
|
|
@@ -2430,6 +2464,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
2430
2464
|
modulesDisabled: boolean;
|
|
2431
2465
|
liquidSyntax: boolean;
|
|
2432
2466
|
autosave: boolean;
|
|
2467
|
+
allowlistEnabled: boolean;
|
|
2433
2468
|
};
|
|
2434
2469
|
blocks: {
|
|
2435
2470
|
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")[];
|
|
@@ -2469,6 +2504,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
2469
2504
|
};
|
|
2470
2505
|
callbacks: {
|
|
2471
2506
|
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
2507
|
+
resolveAllowlistToast?: import("../@types/config/schemas").ResolveAllowlistToastHandler | undefined;
|
|
2472
2508
|
};
|
|
2473
2509
|
} | null;
|
|
2474
2510
|
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => (feature: keyof FeaturesConfig) => boolean;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* URL schemes that are safe to follow from partner-authored email HTML. Shared so a
|
|
3
|
+
* future bypass fix lands in one place — the preview guard and the recommendation
|
|
4
|
+
* sanitizer both gate on it. Stored with the trailing colon to match `anchor.protocol`.
|
|
5
|
+
*/
|
|
6
|
+
export declare const BASE_SAFE_URL_SCHEMES: readonly string[];
|
|
@@ -3,8 +3,12 @@ const n = `.base-input {
|
|
|
3
3
|
border-radius: 4px;
|
|
4
4
|
background-color: var(--guido-color-gray-0);
|
|
5
5
|
align-items: center;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
/* 40px is a floor, never a cap: \`.base-input\` is shared by every settings field,
|
|
7
|
+
including Stripo's own auto-height inputs (e.g. the link field) that expand on
|
|
8
|
+
focus. A fixed max-height clamped their inner box; keep 40px only as the floor. */
|
|
9
|
+
min-height: 40px;
|
|
10
|
+
height: auto;
|
|
11
|
+
max-height: none;
|
|
8
12
|
box-sizing: content-box;
|
|
9
13
|
outline: none;
|
|
10
14
|
resize: vertical;
|
|
@@ -36,11 +40,6 @@ ue-contenteditable .base-input {
|
|
|
36
40
|
line-height: 24px;
|
|
37
41
|
}
|
|
38
42
|
|
|
39
|
-
/* Image link input is auto-height; lift the fixed 40px cap so it can grow. */
|
|
40
|
-
ue-contenteditable.link-autoheight-contenteditable .base-input {
|
|
41
|
-
max-height: none;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
43
|
ue-icon-component.icon-button.icon-clear-input {
|
|
45
44
|
right: 2px;
|
|
46
45
|
top: 2px;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@useinsider/guido",
|
|
3
|
-
"version": "3.12.0-beta.
|
|
3
|
+
"version": "3.12.0-beta.eb4ca1c",
|
|
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",
|