@useinsider/guido 2.0.0-beta.6b24cb0 → 2.0.0-beta.6da018c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/@types/config/schemas.js +36 -50
  2. package/dist/components/Guido.vue.js +1 -1
  3. package/dist/components/Guido.vue2.js +59 -57
  4. package/dist/components/organisms/base/Toaster.vue.js +6 -6
  5. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +6 -6
  6. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue2.js +2 -2
  7. package/dist/components/organisms/header/RightSlot.vue2.js +10 -10
  8. package/dist/composables/useConfig.js +27 -29
  9. package/dist/composables/useSave.js +11 -13
  10. package/dist/extensions/Blocks/CouponBlock/constants.js +4 -0
  11. package/dist/extensions/Blocks/CouponBlock/controls/index.js +29 -0
  12. package/dist/extensions/Blocks/CouponBlock/extension.js +5 -4
  13. package/dist/extensions/Blocks/CouponBlock/settingsPanel.js +20 -14
  14. package/dist/extensions/Blocks/CouponBlock/template.js +22 -11
  15. package/dist/extensions/Blocks/Unsubscribe/extension.js +9 -9
  16. package/dist/extensions/Blocks/controlFactories.js +122 -111
  17. package/dist/guido.css +1 -1
  18. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +57 -52
  19. package/dist/src/@types/config/index.d.ts +2 -2
  20. package/dist/src/@types/config/schemas.d.ts +0 -26
  21. package/dist/src/@types/config/types.d.ts +1 -7
  22. package/dist/src/composables/useConfig.d.ts +0 -6
  23. package/dist/src/extensions/Blocks/CouponBlock/constants.d.ts +14 -0
  24. package/dist/src/extensions/Blocks/CouponBlock/controls/index.d.ts +108 -0
  25. package/dist/src/extensions/Blocks/CouponBlock/template.d.ts +1 -1
  26. package/dist/src/extensions/Blocks/controlFactories.d.ts +30 -7
  27. package/dist/src/stores/config.d.ts +1 -146
  28. package/dist/static/styles/components/button.css.js +1 -1
  29. package/dist/stores/config.js +0 -7
  30. package/package.json +1 -1
@@ -23,12 +23,12 @@ ${s.map((E) => ` - ${E}`).join(`
23
23
  validateImplementation(e, r) {
24
24
  var I;
25
25
  const s = [], E = r.name, T = Object.getPrototypeOf(this);
26
- e.forEach((l) => {
27
- if (typeof this[l] != "function") {
28
- s.push(`Method ${l}() is not defined`);
26
+ e.forEach((d) => {
27
+ if (typeof this[d] != "function") {
28
+ s.push(`Method ${d}() is not defined`);
29
29
  return;
30
30
  }
31
- T[l] === r.prototype[l] && s.push(`Method ${l}() must be implemented (currently using base class error-throwing implementation)`);
31
+ T[d] === r.prototype[d] && s.push(`Method ${d}() must be implemented (currently using base class error-throwing implementation)`);
32
32
  }), u.validatedClasses.add(r), s.length > 0 ? (u.validationErrors.set(r, s), console.error(`[${E} Validation] ${E} validation failed:`, s)) : typeof process < "u" && ((I = process.env) == null ? void 0 : I.NODE_ENV) === "development" && console.log(`[${E} Validation] ✅ ${E} validated successfully`);
33
33
  }
34
34
  };
@@ -254,10 +254,10 @@ var st = {
254
254
  ...o,
255
255
  caption: "caption",
256
256
  icon: "icon"
257
- }, mt = {
257
+ }, gt = {
258
258
  ...o,
259
259
  caption: "caption"
260
- }, gt = {
260
+ }, mt = {
261
261
  ...o,
262
262
  minValue: "min-value",
263
263
  maxValue: "max-value",
@@ -265,7 +265,7 @@ var st = {
265
265
  }, bt = {
266
266
  ...o,
267
267
  text: "text"
268
- }, At = {
268
+ }, Nt = {
269
269
  ...o
270
270
  }, X = {
271
271
  ...o,
@@ -273,7 +273,7 @@ var st = {
273
273
  multiSelect: "multi-select",
274
274
  placeholder: "placeholder",
275
275
  items: "items"
276
- }, Nt = {
276
+ }, At = {
277
277
  ...X
278
278
  }, Dt = {
279
279
  text: "text",
@@ -292,15 +292,15 @@ var st = {
292
292
  position: "position"
293
293
  }, vt = {
294
294
  ...o
295
- }, Vt = {
295
+ }, Gt = {
296
296
  BUTTON: Ct,
297
- CHECKBOX: mt,
297
+ CHECKBOX: gt,
298
298
  COLOR: o,
299
- COUNTER: gt,
299
+ COUNTER: mt,
300
300
  LABEL: bt,
301
- RADIO_BUTTONS: At,
301
+ RADIO_BUTTONS: Nt,
302
302
  SELECTPICKER: X,
303
- FONT_FAMILY_SELECT: Nt,
303
+ FONT_FAMILY_SELECT: At,
304
304
  SWITCHER: o,
305
305
  TEXT: Bt,
306
306
  SELECT_ITEM: Dt,
@@ -344,7 +344,7 @@ var st = {
344
344
  const e = t.querySelectorAll(O.BUTTON), r = t.asElement().hasClass(U) ? [t] : [];
345
345
  return e.length ? e : r;
346
346
  }
347
- }, Gt = class extends i {
347
+ }, Vt = class extends i {
348
348
  getParentControlId() {
349
349
  return n.BLOCK_BUTTON.BORDER_RADIUS;
350
350
  }
@@ -454,20 +454,20 @@ var st = {
454
454
  }
455
455
  };
456
456
  k.REQUIRED_METHODS = ["getId", "getTemplate"];
457
- var ee = k, V = class extends x {
457
+ var ee = k, G = class extends x {
458
458
  getTargetNodes(t) {
459
459
  const e = t.querySelectorAll(O.IMAGE), r = t.asElement().hasClass(K) ? [t] : [];
460
460
  return e.length ? e : r;
461
461
  }
462
- }, re = class extends V {
462
+ }, re = class extends G {
463
463
  getParentControlId() {
464
464
  return n.BLOCK_IMAGE.EXTERNAL_INDENTS;
465
465
  }
466
- }, ne = class extends V {
466
+ }, ne = class extends G {
467
467
  getParentControlId() {
468
468
  return n.BLOCK_IMAGE.SIZE;
469
469
  }
470
- }, G = class L extends a {
470
+ }, V = class L extends a {
471
471
  constructor() {
472
472
  super(L.REQUIRED_METHODS, L);
473
473
  }
@@ -475,8 +475,8 @@ var ee = k, V = class extends x {
475
475
  throw new Error("Method registerBlockControls() must be implemented by the subclass");
476
476
  }
477
477
  };
478
- G.REQUIRED_METHODS = ["registerBlockControls"];
479
- var se = G, ae = class {
478
+ V.REQUIRED_METHODS = ["registerBlockControls"];
479
+ var se = V, ae = class {
480
480
  constructor(t, e) {
481
481
  this.tabId = t, this.controlsIds = e;
482
482
  }
@@ -499,42 +499,46 @@ var se = G, ae = class {
499
499
  const e = this.controlsIds.indexOf(t);
500
500
  e !== -1 && this.controlsIds.splice(e, 1);
501
501
  }
502
- }, d = class extends x {
502
+ }, l = class extends x {
503
503
  getTargetNodes(t) {
504
504
  const e = t.querySelectorAll(O.TEXT), r = t.asElement().hasClass(p) ? [t] : [];
505
505
  return e.length ? e : r;
506
506
  }
507
- }, ie = class extends d {
507
+ }, ie = class extends l {
508
508
  getParentControlId() {
509
509
  return n.GENERAL.TEXT_ALIGN;
510
510
  }
511
- }, oe = class extends d {
511
+ }, oe = class extends l {
512
512
  getParentControlId() {
513
513
  return n.BLOCK_TEXT.TEXT_BLOCK_BACKGROUND_COLOR;
514
514
  }
515
- }, Ee = class extends d {
515
+ }, Ee = class extends l {
516
516
  getParentControlId() {
517
517
  return n.GENERAL.TEXT_COLOR;
518
518
  }
519
- }, le = class extends d {
519
+ }, le = class extends l {
520
520
  getParentControlId() {
521
521
  return n.BLOCK_TEXT.FONT_FAMILY;
522
522
  }
523
- }, de = class extends d {
523
+ }, de = class extends l {
524
+ getParentControlId() {
525
+ return n.GENERAL.TEXT_LINE_SPACING;
526
+ }
527
+ }, ue = class extends l {
524
528
  getParentControlId() {
525
529
  return n.BLOCK_TEXT.INTERNAL_INDENTS;
526
530
  }
527
- }, ue = class extends d {
531
+ }, Ie = class extends l {
528
532
  getParentControlId() {
529
533
  return n.GENERAL.TEXT_SIZE;
530
534
  }
531
- }, Ie = class extends d {
535
+ }, Oe = class extends l {
532
536
  getParentControlId() {
533
537
  return n.GENERAL.TEXT_STYLE;
534
538
  }
535
539
  }, Ut = class {
536
- constructor(t, e, r = [], s, E = [], T, I = [], l = [], v, $, W, z, Z, j, q, J, tt) {
537
- this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.i18n = t, this.styles = e, this.previewStyles = W, this.uiElements = r, this.uiElementTagRegistry = s, this.controls = E, this.settingsPanelRegistry = T, this.contextActions = I, this.blocks = l, this.externalSmartElementsLibrary = v, this.externalImageLibrary = $, this.externalImageLibraryTab = tt, this.externalAiAssistant = z, this.externalDisplayConditionsLibrary = Z, this.externalVideoLibrary = j, this.blocksPanel = q, this.iconsRegistry = J, this.id = Math.random().toString(36).substring(2);
540
+ constructor(t, e, r = [], s, E = [], T, I = [], d = [], v, $, W, z, Z, j, q, J, tt) {
541
+ this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.i18n = t, this.styles = e, this.previewStyles = W, this.uiElements = r, this.uiElementTagRegistry = s, this.controls = E, this.settingsPanelRegistry = T, this.contextActions = I, this.blocks = d, this.externalSmartElementsLibrary = v, this.externalImageLibrary = $, this.externalImageLibraryTab = tt, this.externalAiAssistant = z, this.externalDisplayConditionsLibrary = Z, this.externalVideoLibrary = j, this.blocksPanel = q, this.iconsRegistry = J, this.id = Math.random().toString(36).substring(2);
538
542
  }
539
543
  getI18n() {
540
544
  return this.i18n;
@@ -590,7 +594,7 @@ var se = G, ae = class {
590
594
  getIconsRegistry() {
591
595
  return this.iconsRegistry;
592
596
  }
593
- }, Oe = class {
597
+ }, Te = class {
594
598
  constructor() {
595
599
  this.styles = [], this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [];
596
600
  }
@@ -685,9 +689,9 @@ var se = G, ae = class {
685
689
  }
686
690
  };
687
691
  pt.REQUIRED_METHODS = ["openAiAssistant"];
688
- var Kt = class m extends a {
692
+ var Kt = class g extends a {
689
693
  constructor() {
690
- super(m.REQUIRED_METHODS, m);
694
+ super(g.REQUIRED_METHODS, g);
691
695
  }
692
696
  /**
693
697
  * Retrieves the name of the category.
@@ -726,9 +730,9 @@ var Kt = class m extends a {
726
730
  }
727
731
  };
728
732
  Kt.REQUIRED_METHODS = ["getCategoryName", "openExternalDisplayConditionsDialog"];
729
- var Ft = class g extends a {
733
+ var Ft = class m extends a {
730
734
  constructor() {
731
- super(g.REQUIRED_METHODS, g);
735
+ super(m.REQUIRED_METHODS, m);
732
736
  }
733
737
  openImageLibrary(e, r, s) {
734
738
  throw new Error("Method openImageLibrary() must be implemented by the subclass");
@@ -756,18 +760,18 @@ var wt = class b extends a {
756
760
  }
757
761
  };
758
762
  wt.REQUIRED_METHODS = ["getName", "openImageLibraryTab"];
759
- var Pt = class A extends a {
763
+ var Pt = class N extends a {
760
764
  constructor() {
761
- super(A.REQUIRED_METHODS, A);
765
+ super(N.REQUIRED_METHODS, N);
762
766
  }
763
767
  openSmartElementsLibrary(e, r) {
764
768
  throw new Error("Method openSmartElementsLibrary() must be implemented by the subclass");
765
769
  }
766
770
  };
767
771
  Pt.REQUIRED_METHODS = ["openSmartElementsLibrary"];
768
- var Ht = class N extends a {
772
+ var Ht = class A extends a {
769
773
  constructor() {
770
- super(N.REQUIRED_METHODS, N);
774
+ super(A.REQUIRED_METHODS, A);
771
775
  }
772
776
  openExternalVideosLibraryDialog(e, r, s) {
773
777
  throw new Error("Method openExternalVideosLibraryDialog() must be implemented by the subclass");
@@ -783,7 +787,7 @@ var Q = class D extends a {
783
787
  }
784
788
  };
785
789
  Q.REQUIRED_METHODS = ["registerIconsSvg"];
786
- var Te = Q, ce = class {
790
+ var ce = Q, _e = class {
787
791
  constructor(t) {
788
792
  this.key = t;
789
793
  }
@@ -852,7 +856,7 @@ var Te = Q, ce = class {
852
856
  }
853
857
  };
854
858
  f.REQUIRED_METHODS = ["onRender", "getId", "getTemplate"];
855
- var _e = f, Y = class B extends a {
859
+ var he = f, Y = class B extends a {
856
860
  constructor() {
857
861
  super(B.REQUIRED_METHODS, B);
858
862
  }
@@ -861,7 +865,7 @@ var _e = f, Y = class B extends a {
861
865
  }
862
866
  };
863
867
  Y.REQUIRED_METHODS = ["registerUiElements"];
864
- var he = Y;
868
+ var Re = Y;
865
869
  export {
866
870
  Xt as Block,
867
871
  kt as BlockAttr,
@@ -873,7 +877,7 @@ export {
873
877
  Qt as ButtonAlignBuiltInControl,
874
878
  ft as ButtonBackgroundColorBuiltInControl,
875
879
  Yt as ButtonBorderBuiltInControl,
876
- Gt as ButtonBorderRadiusBuiltInControl,
880
+ Vt as ButtonBorderRadiusBuiltInControl,
877
881
  $t as ButtonColorBuiltInControl,
878
882
  w as ButtonControls,
879
883
  Wt as ButtonFitToContainerBuiltInControl,
@@ -886,13 +890,13 @@ export {
886
890
  Rt as ContainerControls,
887
891
  ee as Control,
888
892
  Ut as Extension,
889
- Oe as ExtensionBuilder,
893
+ Te as ExtensionBuilder,
890
894
  F as GeneralControls,
891
- Te as IconsRegistry,
895
+ ce as IconsRegistry,
892
896
  H as ImageControls,
893
897
  re as ImageMarginsBuiltInControl,
894
898
  ne as ImageSizeBuiltInControl,
895
- ce as ModificationDescription,
899
+ _e as ModificationDescription,
896
900
  se as SettingsPanelRegistry,
897
901
  ae as SettingsPanelTab,
898
902
  Lt as SettingsTab,
@@ -901,11 +905,12 @@ export {
901
905
  Ee as TextColorBuiltInControl,
902
906
  P as TextControls,
903
907
  le as TextFontFamilyBuiltInControl,
904
- de as TextPaddingsBuiltInControl,
905
- ue as TextSizeBuiltInControl,
906
- Ie as TextStyleBuiltInControl,
907
- Vt as UEAttr,
908
- _e as UIElement,
909
- he as UIElementTagRegistry,
908
+ de as TextLineSpacingBuiltInControl,
909
+ ue as TextPaddingsBuiltInControl,
910
+ Ie as TextSizeBuiltInControl,
911
+ Oe as TextStyleBuiltInControl,
912
+ Gt as UEAttr,
913
+ he as UIElement,
914
+ Re as UIElementTagRegistry,
910
915
  yt as UIElementType
911
916
  };
@@ -7,8 +7,8 @@
7
7
  * - Default values for optional configuration
8
8
  * - Validation utilities
9
9
  */
10
- export { MessageType, ProductType, GuidoConfigSchema, IdentitySchema, PartnerSchema, TemplateSchema, EditorSchema, UISchema, FeaturesSchema, BlocksSchema, CompilerSchema, CallbacksSchema, DynamicContentSchema, EmailHeaderSchema, DefaultBlockTypeSchema, CustomBlockTypeSchema, CompilerRuleSchema, CompilerRuleTypeSchema, ReplaceRuleSchema, RegexRuleSchema, RemoveRuleSchema, CustomRuleSchema, } from './schemas';
11
- export type { GuidoConfig, GuidoConfigInput, IdentityConfig, IdentityConfigInput, PartnerConfig, PartnerConfigInput, TemplateConfig, TemplateConfigInput, EditorConfig, EditorConfigInput, UIConfig, UIConfigInput, FeaturesConfig, FeaturesConfigInput, BlocksConfig, BlocksConfigInput, CompilerConfig, CompilerConfigInput, CallbacksConfig, CallbacksConfigInput, ExternalValidationHandler, EmailHeader, DynamicContent, DefaultBlockType, CustomBlockType, BlockType, FeatureName, CompilerRule, ReplaceRule, RegexRule, RemoveRule, CustomRule, DeepPartial, ConfigOverrides, } from './types';
10
+ export { MessageType, ProductType, GuidoConfigSchema, IdentitySchema, PartnerSchema, TemplateSchema, EditorSchema, UISchema, FeaturesSchema, BlocksSchema, CompilerSchema, DynamicContentSchema, EmailHeaderSchema, DefaultBlockTypeSchema, CustomBlockTypeSchema, CompilerRuleSchema, CompilerRuleTypeSchema, ReplaceRuleSchema, RegexRuleSchema, RemoveRuleSchema, CustomRuleSchema, } from './schemas';
11
+ export type { GuidoConfig, GuidoConfigInput, IdentityConfig, IdentityConfigInput, PartnerConfig, PartnerConfigInput, TemplateConfig, TemplateConfigInput, EditorConfig, EditorConfigInput, UIConfig, UIConfigInput, FeaturesConfig, FeaturesConfigInput, BlocksConfig, BlocksConfigInput, CompilerConfig, CompilerConfigInput, EmailHeader, DynamicContent, DefaultBlockType, CustomBlockType, BlockType, FeatureName, CompilerRule, ReplaceRule, RegexRule, RemoveRule, CustomRule, DeepPartial, ConfigOverrides, } from './types';
12
12
  export { DEFAULT_EMAIL_HEADER, DEFAULT_TEMPLATE, DEFAULT_EDITOR, DEFAULT_UI, DEFAULT_FEATURES, DEFAULT_BLOCKS, DEFAULT_COMPILER, DEFAULT_PRODUCT_TYPE, DEFAULT_MESSAGE_TYPE, DEFAULT_USERNAME, EDITOR_TYPE, TEST_PARTNERS, isTestPartner, } from './defaults';
13
13
  export { validateConfig, parseConfig, parseConfigSafe, getValidationErrors, isValidConfig, validateIdentity, validatePartner, } from './validator';
14
14
  export type { ValidationResult, ValidationError, } from './validator';
@@ -5,14 +5,7 @@
5
5
  * All types are inferred from these schemas to ensure single source of truth.
6
6
  * @module @types/config/schemas
7
7
  */
8
- import type { SavedTemplateDetails } from '../stripo';
9
8
  import * as v from 'valibot';
10
- /**
11
- * Handler function for external validation before save
12
- * @param data - The template details to validate
13
- * @returns Promise<boolean> - true if valid, false to cancel save
14
- */
15
- export type ExternalValidationHandler = (data: SavedTemplateDetails) => Promise<boolean>;
16
9
  /**
17
10
  * Message type constants for email templates
18
11
  */
@@ -351,16 +344,6 @@ export declare const CompilerSchema: v.ObjectSchema<{
351
344
  /** Skip default compiler rules */
352
345
  readonly ignoreDefaultRules: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
353
346
  }, undefined>;
354
- /**
355
- * Callbacks configuration - event handlers and hooks
356
- */
357
- export declare const CallbacksSchema: v.ObjectSchema<{
358
- /**
359
- * External validation handler called before save completes.
360
- * Return false to cancel the save operation.
361
- */
362
- readonly externalValidation: v.OptionalSchema<v.CustomSchema<ExternalValidationHandler, v.ErrorMessage<v.CustomIssue> | undefined>, undefined>;
363
- }, undefined>;
364
347
  /**
365
348
  * Complete Guido configuration schema
366
349
  *
@@ -373,7 +356,6 @@ export declare const CallbacksSchema: v.ObjectSchema<{
373
356
  * - features: Feature toggles
374
357
  * - blocks: Block configuration
375
358
  * - compiler: HTML compilation
376
- * - callbacks: Event handlers and hooks
377
359
  */
378
360
  export declare const GuidoConfigSchema: v.ObjectSchema<{
379
361
  /** Identity configuration (required) */
@@ -524,12 +506,4 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
524
506
  /** Skip default compiler rules */
525
507
  readonly ignoreDefaultRules: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
526
508
  }, undefined>, {}>;
527
- /** Callbacks and event handlers */
528
- readonly callbacks: v.OptionalSchema<v.ObjectSchema<{
529
- /**
530
- * External validation handler called before save completes.
531
- * Return false to cancel the save operation.
532
- */
533
- readonly externalValidation: v.OptionalSchema<v.CustomSchema<ExternalValidationHandler, v.ErrorMessage<v.CustomIssue> | undefined>, undefined>;
534
- }, undefined>, {}>;
535
509
  }, undefined>;
@@ -5,7 +5,7 @@
5
5
  * This ensures type definitions are always in sync with validation.
6
6
  * @module @types/config/types
7
7
  */
8
- import type { GuidoConfigSchema, IdentitySchema, PartnerSchema, TemplateSchema, EditorSchema, UISchema, FeaturesSchema, BlocksSchema, CompilerSchema, CallbacksSchema, DynamicContentSchema, EmailHeaderSchema, CompilerRuleSchema, ReplaceRuleSchema, RegexRuleSchema, RemoveRuleSchema, CustomRuleSchema, DefaultBlockTypeSchema, CustomBlockTypeSchema, ExternalValidationHandler } from './schemas';
8
+ import type { GuidoConfigSchema, IdentitySchema, PartnerSchema, TemplateSchema, EditorSchema, UISchema, FeaturesSchema, BlocksSchema, CompilerSchema, DynamicContentSchema, EmailHeaderSchema, CompilerRuleSchema, ReplaceRuleSchema, RegexRuleSchema, RemoveRuleSchema, CustomRuleSchema, DefaultBlockTypeSchema, CustomBlockTypeSchema } from './schemas';
9
9
  import type * as v from 'valibot';
10
10
  /**
11
11
  * Complete validated Guido configuration.
@@ -41,10 +41,6 @@ export type FeaturesConfig = v.InferOutput<typeof FeaturesSchema>;
41
41
  export type BlocksConfig = v.InferOutput<typeof BlocksSchema>;
42
42
  /** Compiler configuration (custom rules, ignore defaults) */
43
43
  export type CompilerConfig = v.InferOutput<typeof CompilerSchema>;
44
- /** Callbacks configuration (event handlers and hooks) */
45
- export type CallbacksConfig = v.InferOutput<typeof CallbacksSchema>;
46
- /** Re-export ExternalValidationHandler for convenience */
47
- export type { ExternalValidationHandler };
48
44
  /** Email header configuration (senderName, subject) */
49
45
  export type EmailHeader = v.InferOutput<typeof EmailHeaderSchema>;
50
46
  /** Dynamic content item */
@@ -89,8 +85,6 @@ export type FeaturesConfigInput = v.InferInput<typeof FeaturesSchema>;
89
85
  export type BlocksConfigInput = v.InferInput<typeof BlocksSchema>;
90
86
  /** Input type for compiler configuration */
91
87
  export type CompilerConfigInput = v.InferInput<typeof CompilerSchema>;
92
- /** Input type for callbacks configuration */
93
- export type CallbacksConfigInput = v.InferInput<typeof CallbacksSchema>;
94
88
  /** Default Stripo block types */
95
89
  export type DefaultBlockType = v.InferOutput<typeof DefaultBlockTypeSchema>;
96
90
  /** Custom Guido block types */
@@ -90,9 +90,6 @@ export declare const useConfig: () => {
90
90
  })[];
91
91
  ignoreDefaultRules: boolean;
92
92
  };
93
- callbacks: {
94
- externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
95
- };
96
93
  } | null>;
97
94
  initialized: import("vue").Ref<boolean>;
98
95
  identity: import("vue").ComputedRef<{
@@ -178,9 +175,6 @@ export declare const useConfig: () => {
178
175
  })[];
179
176
  ignoreDefaultRules: boolean;
180
177
  } | null>;
181
- callbacks: import("vue").ComputedRef<{
182
- externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
183
- } | null>;
184
178
  templateId: import("vue").ComputedRef<string>;
185
179
  userId: import("vue").ComputedRef<string>;
186
180
  variationId: import("vue").ComputedRef<string>;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Control IDs used in the CouponBlock Extension
3
+ * These IDs are returned by the getId() method of each control
4
+ */
5
+ export declare enum CouponControlId {
6
+ TEXT_ALIGN = "coupon-block-text-align-control",
7
+ TEXT_COLOR = "coupon-block-text-color-control",
8
+ TEXT_SIZE = "coupon-block-text-size-control",
9
+ TEXT_STYLE = "coupon-block-text-style-control",
10
+ TEXT_FONT_FAMILY = "coupon-block-text-font-family-control",
11
+ TEXT_BACKGROUND = "coupon-block-text-background-control",
12
+ TEXT_PADDINGS = "coupon-block-text-paddings-control",
13
+ TEXT_LINE_SPACING = "coupon-block-text-line-spacing-control"
14
+ }
@@ -0,0 +1,108 @@
1
+ /**
2
+ * CouponBlock Control Instances
3
+ *
4
+ * This file generates all control instances for the CouponBlock
5
+ * using the reusable factory functions from controlFactories.ts
6
+ *
7
+ * Note: Factory-generated controls use runtime class generation which TypeScript
8
+ * cannot fully type-check. The controls are type-safe at runtime.
9
+ *
10
+ * These controls apply directly to the selected root element (no targetBlockId/containerSelector)
11
+ * to ensure styles are applied correctly regardless of nested element structure.
12
+ */
13
+ export declare const TextAlignControl: {
14
+ new (): {
15
+ getId(): string;
16
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
17
+ getParentControlId(): string;
18
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
19
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
20
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
21
+ 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;
22
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
23
+ };
24
+ };
25
+ export declare const TextColorControl: {
26
+ new (): {
27
+ getId(): string;
28
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
29
+ getParentControlId(): string;
30
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
31
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
32
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
33
+ 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;
34
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
35
+ };
36
+ };
37
+ export declare const TextSizeControl: {
38
+ new (): {
39
+ getId(): string;
40
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
41
+ getParentControlId(): string;
42
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
43
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
44
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
45
+ 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;
46
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
47
+ };
48
+ };
49
+ export declare const TextStyleControl: {
50
+ new (): {
51
+ getId(): string;
52
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
53
+ getParentControlId(): string;
54
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
55
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
56
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
57
+ 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;
58
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
59
+ };
60
+ };
61
+ export declare const TextFontFamilyControl: {
62
+ new (): {
63
+ getId(): string;
64
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
65
+ getParentControlId(): string;
66
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
67
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
68
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
69
+ 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;
70
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
71
+ };
72
+ };
73
+ export declare const TextBackgroundControl: {
74
+ new (): {
75
+ getId(): string;
76
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
77
+ getParentControlId(): string;
78
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
79
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
80
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
81
+ 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;
82
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
83
+ };
84
+ };
85
+ export declare const TextPaddingsControl: {
86
+ new (): {
87
+ getId(): string;
88
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
89
+ getParentControlId(): string;
90
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
91
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
92
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
93
+ 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;
94
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
95
+ };
96
+ };
97
+ export declare const TextLineSpacingControl: {
98
+ new (): {
99
+ getId(): string;
100
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
101
+ getParentControlId(): string;
102
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
103
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
104
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
105
+ 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;
106
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
107
+ };
108
+ };
@@ -1,3 +1,3 @@
1
- declare const migrationTemplate = "\n <td \n class=\"coupon-block coupon-block-v2 ins-coupon-code esd-block-text esd-extension-block\" \n esd-extension-block-id=\"coupon-block\"\n >\n <p class=\"ins-title\" contenteditable=\"false\">{@COUPON_CODE}</p>\n </td>\n";
1
+ declare const migrationTemplate = "\n <td\n class=\"coupon-block coupon-block-v2 ins-coupon-code esd-block-text esd-extension-block\"\n esd-extension-block-id=\"coupon-block\"\n >\n <p class=\"ins-title\" contenteditable=\"false\">{@COUPON_CODE}</p>\n </td>\n";
2
2
  export declare function getDefaultTemplate(): string;
3
3
  export default migrationTemplate;
@@ -12,8 +12,9 @@
12
12
  import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
13
13
  /**
14
14
  * Factory function to create text align controls for different block elements
15
+ * When targetBlockId and containerSelector are not provided, applies directly to root
15
16
  */
16
- export declare function createTextAlignControl(controlId: string, targetBlockId: string, containerSelector: string): {
17
+ export declare function createTextAlignControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
17
18
  new (): {
18
19
  getId(): string;
19
20
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
@@ -27,8 +28,9 @@ export declare function createTextAlignControl(controlId: string, targetBlockId:
27
28
  };
28
29
  /**
29
30
  * Factory function to create text color controls for different block elements
31
+ * When targetBlockId and containerSelector are not provided, applies directly to root
30
32
  */
31
- export declare function createTextColorControl(controlId: string, targetBlockId: string, containerSelector?: string): {
33
+ export declare function createTextColorControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
32
34
  new (): {
33
35
  getId(): string;
34
36
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
@@ -42,8 +44,9 @@ export declare function createTextColorControl(controlId: string, targetBlockId:
42
44
  };
43
45
  /**
44
46
  * Factory function to create text size controls for different block elements
47
+ * When targetBlockId and containerSelector are not provided, applies directly to root
45
48
  */
46
- export declare function createTextSizeControl(controlId: string, targetBlockId: string, containerSelector?: string): {
49
+ export declare function createTextSizeControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
47
50
  new (): {
48
51
  getId(): string;
49
52
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
@@ -57,8 +60,9 @@ export declare function createTextSizeControl(controlId: string, targetBlockId:
57
60
  };
58
61
  /**
59
62
  * Factory function to create text style controls for different block elements
63
+ * When targetBlockId and containerSelector are not provided, applies directly to root
60
64
  */
61
- export declare function createTextStyleControl(controlId: string, targetBlockId: string, containerSelector?: string): {
65
+ export declare function createTextStyleControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
62
66
  new (): {
63
67
  getId(): string;
64
68
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
@@ -72,8 +76,9 @@ export declare function createTextStyleControl(controlId: string, targetBlockId:
72
76
  };
73
77
  /**
74
78
  * Factory function to create text font family controls for different block elements
79
+ * When targetBlockId and containerSelector are not provided, applies directly to root
75
80
  */
76
- export declare function createTextFontFamilyControl(controlId: string, targetBlockId: string, containerSelector?: string): {
81
+ export declare function createTextFontFamilyControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
77
82
  new (): {
78
83
  getId(): string;
79
84
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
@@ -87,8 +92,9 @@ export declare function createTextFontFamilyControl(controlId: string, targetBlo
87
92
  };
88
93
  /**
89
94
  * Factory function to create text background color controls for different block elements
95
+ * When targetBlockId and containerSelector are not provided, applies directly to root
90
96
  */
91
- export declare function createTextBackgroundColorControl(controlId: string, targetBlockId: string, containerSelector?: string): {
97
+ export declare function createTextBackgroundColorControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
92
98
  new (): {
93
99
  getId(): string;
94
100
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
@@ -102,8 +108,25 @@ export declare function createTextBackgroundColorControl(controlId: string, targ
102
108
  };
103
109
  /**
104
110
  * Factory function to create paddings controls for different block elements
111
+ * When targetBlockId and containerSelector are not provided, applies directly to root
105
112
  */
106
- export declare function createPaddingsControl(controlId: string, targetBlockId: string, containerSelector?: string): {
113
+ export declare function createPaddingsControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
114
+ new (): {
115
+ getId(): string;
116
+ getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];
117
+ getParentControlId(): string;
118
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
119
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
120
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
121
+ getAdditionalModifications(_root: ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
122
+ isVisible(_node: ImmutableHtmlNode): boolean;
123
+ };
124
+ };
125
+ /**
126
+ * Factory function to create text line spacing controls for different block elements
127
+ * When targetBlockId and containerSelector are not provided, applies directly to root
128
+ */
129
+ export declare function createTextLineSpacingControl(controlId: string, targetBlockId?: string, containerSelector?: string): {
107
130
  new (): {
108
131
  getId(): string;
109
132
  getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[];