@useinsider/guido 3.20.1 → 3.21.0

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 (56) hide show
  1. package/dist/components/Guido.vue.js +1 -1
  2. package/dist/components/Guido.vue2.js +65 -64
  3. package/dist/components/organisms/AutoSaveController.vue2.js +10 -9
  4. package/dist/components/organisms/header/EditorActions.vue.js +4 -4
  5. package/dist/components/organisms/header/EditorActions.vue2.js +53 -51
  6. package/dist/components/organisms/validation/ValidationErrorDrawer.vue.js +3 -3
  7. package/dist/components/organisms/validation/ValidationErrorDrawer.vue2.js +23 -22
  8. package/dist/composables/useAutoSave.js +46 -44
  9. package/dist/composables/useLegacyStrategyConversion.js +16 -16
  10. package/dist/composables/useSave.js +26 -23
  11. package/dist/composables/useSaveValidation.js +113 -114
  12. package/dist/composables/useSaveValidationRollout.js +17 -6
  13. package/dist/composables/useStripo.js +4 -3
  14. package/dist/extensions/Blocks/Items/block.js +43 -42
  15. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +296 -223
  16. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +221 -203
  17. package/dist/extensions/Blocks/Recommendation/utils/blockRefresh.js +19 -0
  18. package/dist/extensions/Blocks/Recommendation/utils/nodeConfigWriter.js +51 -36
  19. package/dist/extensions/Blocks/Recommendation/utils/strategyCommit.js +31 -35
  20. package/dist/extensions/Blocks/Unsubscribe/block.js +70 -75
  21. package/dist/guido.css +1 -1
  22. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +271 -192
  23. package/dist/package.json.js +1 -1
  24. package/dist/services/settingsApi.js +11 -0
  25. package/dist/src/components/Guido.vue.d.ts +1 -1
  26. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
  27. package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -1
  28. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  29. package/dist/src/composables/useAutoSave.d.ts +4 -1
  30. package/dist/src/composables/useSaveValidationRollout.d.ts +1 -0
  31. package/dist/src/extensions/Blocks/Checkbox/controls/blockBackground/index.d.ts +1 -0
  32. package/dist/src/extensions/Blocks/CouponBlock/controls/index.d.ts +8 -0
  33. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +40 -0
  34. package/dist/src/extensions/Blocks/RadioButton/controls/blockBackground/index.d.ts +1 -0
  35. package/dist/src/extensions/Blocks/Recommendation/controls/blockBackground/index.d.ts +1 -0
  36. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +11 -0
  37. package/dist/src/extensions/Blocks/Recommendation/controls/customAttribute/index.d.ts +7 -0
  38. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +2 -0
  39. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +18 -3
  40. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +7 -0
  41. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +7 -0
  42. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +7 -0
  43. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +7 -0
  44. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +7 -0
  45. package/dist/src/extensions/Blocks/Recommendation/controls/title/index.d.ts +7 -0
  46. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +9 -1
  47. package/dist/src/extensions/Blocks/Recommendation/utils/blockRefresh.d.ts +17 -0
  48. package/dist/src/extensions/Blocks/Recommendation/utils/nodeConfigWriter.d.ts +7 -0
  49. package/dist/src/extensions/Blocks/Unsubscribe/block.d.ts +1 -6
  50. package/dist/src/extensions/Blocks/_Boilerplate/controls/blockBackground/index.d.ts +1 -0
  51. package/dist/src/extensions/Blocks/controlFactories.d.ts +22 -0
  52. package/dist/src/services/settingsApi.d.ts +6 -0
  53. package/dist/src/stores/setup-settings.d.ts +4 -0
  54. package/dist/static/styles/components/button.css.js +5 -0
  55. package/dist/stores/setup-settings.js +10 -0
  56. package/package.json +4 -4
@@ -11,7 +11,7 @@ var v = class d {
11
11
  if (s && s.length > 0)
12
12
  throw new Error(
13
13
  `${r.name} has validation errors:
14
- ${s.map((o) => ` - ${o}`).join(`
14
+ ${s.map((E) => ` - ${E}`).join(`
15
15
  `)}`
16
16
  );
17
17
  }
@@ -22,14 +22,14 @@ ${s.map((o) => ` - ${o}`).join(`
22
22
  */
23
23
  validateImplementation(t, r) {
24
24
  var P;
25
- const s = [], o = r.name, W = Object.getPrototypeOf(this);
25
+ const s = [], E = r.name, Z = Object.getPrototypeOf(this);
26
26
  t.forEach((u) => {
27
27
  if (typeof this[u] != "function") {
28
28
  s.push(`Method ${u}() is not defined`);
29
29
  return;
30
30
  }
31
- W[u] === r.prototype[u] && s.push(`Method ${u}() must be implemented (currently using base class error-throwing implementation)`);
32
- }), d.validatedClasses.add(r), s.length > 0 ? (d.validationErrors.set(r, s), console.error(`[${o} Validation] ${o} validation failed:`, s)) : typeof process < "u" && ((P = process.env) == null ? void 0 : P.NODE_ENV) === "development" && console.log(`[${o} Validation] ✅ ${o} validated successfully`);
31
+ Z[u] === r.prototype[u] && s.push(`Method ${u}() must be implemented (currently using base class error-throwing implementation)`);
32
+ }), d.validatedClasses.add(r), s.length > 0 ? (d.validationErrors.set(r, s), console.error(`[${E} Validation] ${E} validation failed:`, s)) : typeof process < "u" && ((P = process.env) == null ? void 0 : P.NODE_ENV) === "development" && console.log(`[${E} Validation] ✅ ${E} validated successfully`);
33
33
  }
34
34
  /**
35
35
  * Lifecycle method for cleaning up resources (e.g., removing DOM artifacts from document.body).
@@ -41,9 +41,9 @@ ${s.map((o) => ` - ${o}`).join(`
41
41
  };
42
42
  v.validatedClasses = /* @__PURE__ */ new Set();
43
43
  v.validationErrors = /* @__PURE__ */ new Map();
44
- var i = v, z = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.CONTAINER = "CONTAINER", e.STRUCTURE = "STRUCTURE", e.STRIPE = "STRIPE", e))(z || {}), y = class c extends i {
44
+ var i = v, q = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.CONTAINER = "CONTAINER", e.STRUCTURE = "STRUCTURE", e.STRIPE = "STRIPE", e))(q || {}), U = class T extends i {
45
45
  constructor() {
46
- super(c.REQUIRED_METHODS, c);
46
+ super(T.REQUIRED_METHODS, T);
47
47
  }
48
48
  /**
49
49
  * Determines if the block should be available for use in the editor.
@@ -160,6 +160,14 @@ var i = v, z = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.CONTAINER = "CONTAI
160
160
  allowInnerBlocksDND() {
161
161
  return !0;
162
162
  }
163
+ /**
164
+ * Determines whether standard image blocks nested anywhere inside this extension block
165
+ * expose the on-canvas resize control.
166
+ * @returns True to allow nested image resize. Defaults to true.
167
+ */
168
+ isNestedImageResizeEnabled() {
169
+ return !0;
170
+ }
163
171
  allowInteractWithAMPWhenSelected() {
164
172
  return !0;
165
173
  }
@@ -221,10 +229,10 @@ var i = v, z = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.CONTAINER = "CONTAI
221
229
  throw new Error("Method getDescription() must be implemented by the subclass");
222
230
  }
223
231
  };
224
- y.REQUIRED_METHODS = ["getId", "getTemplate", "getIcon", "getName", "getDescription"];
225
- var qe = y, Z = class T extends i {
232
+ U.REQUIRED_METHODS = ["getId", "getTemplate", "getIcon", "getName", "getDescription"];
233
+ var et = U, j = class g extends i {
226
234
  constructor() {
227
- super(T.REQUIRED_METHODS, T);
235
+ super(g.REQUIRED_METHODS, g);
228
236
  }
229
237
  /**
230
238
  * @deprecated - use {@link getPreviewInnerHtml} instead
@@ -238,8 +246,8 @@ var qe = y, Z = class T extends i {
238
246
  throw new Error("Method getPreviewInnerHtml() must be implemented by the subclass");
239
247
  }
240
248
  };
241
- Z.REQUIRED_METHODS = ["getPreviewInnerHtml"];
242
- var je = class {
249
+ j.REQUIRED_METHODS = ["getPreviewInnerHtml"];
250
+ var tt = class {
243
251
  /**
244
252
  * Generates HTML representation for a block item
245
253
  * @param block - The block item to generate HTML for
@@ -313,7 +321,7 @@ var je = class {
313
321
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
314
322
  getModulesTabIconName(e) {
315
323
  }
316
- }, q = class b extends i {
324
+ }, J = class b extends i {
317
325
  constructor() {
318
326
  super(b.REQUIRED_METHODS, b);
319
327
  }
@@ -330,86 +338,93 @@ var je = class {
330
338
  throw new Error("Method onClick() must be implemented by the subclass");
331
339
  }
332
340
  };
333
- q.REQUIRED_METHODS = ["getId", "getIcon", "getLabel", "onClick"];
334
- var j = {
341
+ J.REQUIRED_METHODS = ["getId", "getIcon", "getLabel", "onClick"];
342
+ var ee = {
335
343
  src: "src",
336
344
  alt: "alt",
337
345
  href: "href",
338
346
  width: "width",
339
347
  height: "height"
340
- }, Je = {
341
- BLOCK_IMAGE: j
342
- }, U = "esd-block-button", w = "esd-block-text", K = "esd-block-image", J = "esd-structure", ee = "esd-block-video", te = "esd-block-social", re = "esd-block-banner", ae = "esd-block-timer", ne = "esd-block-menu", se = "esd-block-html", ie = "esd-block-spacer", le = "esd-container-frame", Ee = "esd-stripe", oe = "esd-amp-form", I = ((e) => (e.BUTTON = `.${U}`, e.TEXT = `.${w}`, e.IMAGE = `.${K}`, e.STRUCTURE = `.${J}`, e.VIDEO = `.${ee}`, e.SOCIAL = `.${te}`, e.BANNER = `.${re}`, e.TIMER = `.${ae}`, e.MENU = `.${ne}`, e.HTML = `.${se}`, e.SPACER = `.${ie}`, e.CONTAINER = `.${le}`, e.STRIPE = `.${Ee}`, e.FORM = `.${oe}`, e))(I || {}), de = /* @__PURE__ */ ((e) => (e.BLOCK_IMAGE = "BLOCK_IMAGE", e.BLOCK_TEXT = "BLOCK_TEXT", e.BLOCK_BUTTON = "BLOCK_BUTTON", e.BLOCK_SPACER = "BLOCK_SPACER", e.BLOCK_VIDEO = "BLOCK_VIDEO", e.BLOCK_SOCIAL = "BLOCK_SOCIAL", e.BLOCK_BANNER = "BLOCK_BANNER", e.BLOCK_TIMER = "BLOCK_TIMER", e.BLOCK_MENU = "BLOCK_MENU", e.BLOCK_MENU_ITEM = "BLOCK_MENU_ITEM", e.BLOCK_HTML = "BLOCK_HTML", e.BLOCK_AMP_CAROUSEL = "BLOCK_AMP_CAROUSEL", e.BLOCK_AMP_ACCORDION = "BLOCK_AMP_ACCORDION", e.BLOCK_AMP_FORM = "BLOCK_AMP_FORM", e.CONTAINER = "CONTAINER", e.FORM_CONTAINER = "FORM_CONTAINER", e.STRUCTURE = "STRUCTURE", e.STRIPE = "STRIPE", e.EMPTY_CONTAINER = "EMPTY_CONTAINER", e.CUSTOM_BLOCK_LINK = "CUSTOM_BLOCK_LINK", e.CUSTOM_BLOCK_IMAGE = "CUSTOM_BLOCK_IMAGE", e.CUSTOM_BLOCK_TEXT = "CUSTOM_BLOCK_TEXT", e))(de || {}), F = /* @__PURE__ */ ((e) => (e.ANCHOR_LINK_CONTAINER = "anchorLinkFormContainer", e.APPLY_CONDITION = "applyCondition", e.APPLY_CONDITION_SWITCHER = "applyConditionSwitcher", e.BACKGROUND_COLOR = "backgroundColor", e.BACKGROUND_IMAGE = "generalImageContainer", e.TEXT_COLOR = "textColor", e.TEXT_STYLE = "textStyle", e.TEXT_SIZE = "textSize", e.TEXT_LINE_SPACING = "textLineSpacing", e.TEXT_ALIGN = "textAlign", e.FIXED_HEIGHT_SWITCHER = "fixedHeightSwitcherForm", e.HIDDEN_NODE = "hiddenNode", e.SMART_BLOCK = "smartBlock", e.SYNCHRONIZED_MODULE = "synchronizedModuleForm", e.FONT_FAMILY = "generalFontFamilyForm", e.BLOCK_INTERNAL_INDENTS = "generalBlockInternalIndents", e.STRUCTURE_INTERNAL_INDENTS = "generalStructureInternalIndents", e))(F || {}), H = /* @__PURE__ */ ((e) => (e.ADJUST_TO_WIDTH = "adjustToWidth", e.ALIGNMENT = "buttonAlignment", e.BORDER = "buttonBorder", e.BORDER_RADIUS = "buttonBorderRadius", e.COLOR = "buttonColor", e.BUTTON_BLOCK_BACKGROUND_COLOR = "buttonBlockBackgroundColor", e.EXTERNAL_INDENTS = "buttonExternalIndents", e.FIXED_HEIGHT = "buttonFixedHeightForm", e.FONT_COLOR = "buttonFontColor", e.FONT_FAMILY = "buttonFontFamily", e.FONT_SIZE = "buttonFontSize", e.FONT_WEIGHT = "buttonFontWeight", e.ICON = "buttonIconContainer", e.ICON_ALIGN = "buttonIconAlign", e.ICON_INDENT = "buttonIconIndent", e.ICON_WIDTH = "buttonIconWidth", e.IMAGE = "buttonImageForm", e.INTERNAL_INDENTS = "buttonInternalIndents", e.LINK = "buttonLink", e.MIME_TYPE = "buttonMimeTypeForm", e.SWITCHER_HOVERED_STYLES = "buttonSwitcherHoveredStylesForm", e.TEXT = "buttonText", e.TEXT_STYLE_AND_COLOR = "buttonTextStyleAndColorForm", e.HOVERED_BORDER_COLOR = "hoveredStyleBorderButtonForm", e.HOVERED_COLOR = "hoveredButtonColorForm", e.HOVERED_TEXT_COLOR = "hoveredButtonTextColorForm", e))(H || {}), k = /* @__PURE__ */ ((e) => (e.HIDDEN_NODE = "hiddenNodeText", e.PARAGRAPH_STYLE = "paragraphStyleForm", e.ALIGN = "textAlignmentForm", e.ANCHOR_CONTAINER = "textAnchorForm", e.FONT_BACKGROUND_COLOR = "textBlockFontBackgroundColor", e.TEXT_BLOCK_BACKGROUND_COLOR = "textBlockBackgroundColor", e.FONT_COLOR = "textBlockFontColor", e.TEXT_BLOCK_FONT_FAMILY = "textBlockFontFamily", e.FONT_FAMILY = "textFontFamily", e.FONT_SIZE = "textBlockFontSize", e.FONT_WEIGHT = "textBlockFontWeight", e.DIRECTION = "textBlockDirectionForm", e.INSERT_FORM = "textBlockInsertForm", e.LETTER_SPACING = "textBlockLetterSpacing", e.LINK_DATA = "textBlockLinkDataForm", e.FORMAT = "textBlockTextFormatForm", e.FIXED_HEIGHT = "textFixedHeightForm", e.INTERNAL_INDENTS = "textInternalIndents", e.LINE_HEIGHT = "textLineHeightForm", e.MIME_TYPE = "textMimeTypeForm", e.NO_LINE_WRAPS = "textNoLineWrapsForm", e))(k || {}), X = /* @__PURE__ */ ((e) => (e.ALT_TEXT = "altText", e.LINK = "blockLink", e.ALIGNMENT = "imageAlignment", e.ANCHOR_LINK_CONTAINER = "imageAnchorLinkContainerForm", e.BORDER_RADIUS = "imageBorderRadiusForm", e.IMAGE = "imageImageForm", e.EXTERNAL_INDENTS = "imageExternalIndents", e.MIME_TYPE = "imageMimeTypeForm", e.RESPONSIVE = "imageResponsive", e.ROLLOVER_IMAGE = "imageRolloverImageForm", e.ROLLOVER_SWITCHER = "imageRolloverSwitcherForm", e.SIZE = "imageSizeContainer", e))(X || {}), ue = /* @__PURE__ */ ((e) => (e.BACKGROUND_COLOR = "containerBackgroundColorForm", e.BORDER_FORM = "containerBorderForm", e.BORDER_RADIUS = "containerBorderRadiusForm", e.EXTERNAL_INDENTS = "containerExternalIndentsForm", e.IMAGE_CONTAINER = "containerImageContainerForm", e.MIME_TYPE = "containerMimeTypeForm", e.DISPLAY_CONDITIONS = "displayConditions", e.HIDDEN_NODE = "containerHiddenNodeForm", e))(ue || {}), n = {
343
- BLOCK_BUTTON: H,
344
- BLOCK_TEXT: k,
345
- BLOCK_IMAGE: X,
348
+ }, rt = {
349
+ BLOCK_IMAGE: ee
350
+ }, w = "esd-block-button", K = "esd-block-text", H = "esd-block-image", te = "esd-structure", re = "esd-block-video", ae = "esd-block-social", ne = "esd-block-banner", se = "esd-block-timer", ie = "esd-block-menu", le = "esd-block-html", Ee = "esd-block-spacer", oe = "esd-container-frame", de = "esd-stripe", ue = "esd-amp-form", c = ((e) => (e.BUTTON = `.${w}`, e.TEXT = `.${K}`, e.IMAGE = `.${H}`, e.STRUCTURE = `.${te}`, e.VIDEO = `.${re}`, e.SOCIAL = `.${ae}`, e.BANNER = `.${ne}`, e.TIMER = `.${se}`, e.MENU = `.${ie}`, e.HTML = `.${le}`, e.SPACER = `.${Ee}`, e.CONTAINER = `.${oe}`, e.STRIPE = `.${de}`, e.FORM = `.${ue}`, e))(c || {}), ce = /* @__PURE__ */ ((e) => (e.BLOCK_IMAGE = "BLOCK_IMAGE", e.BLOCK_TEXT = "BLOCK_TEXT", e.BLOCK_BUTTON = "BLOCK_BUTTON", e.BLOCK_SPACER = "BLOCK_SPACER", e.BLOCK_VIDEO = "BLOCK_VIDEO", e.BLOCK_SOCIAL = "BLOCK_SOCIAL", e.BLOCK_BANNER = "BLOCK_BANNER", e.BLOCK_TIMER = "BLOCK_TIMER", e.BLOCK_MENU = "BLOCK_MENU", e.BLOCK_MENU_ITEM = "BLOCK_MENU_ITEM", e.BLOCK_HTML = "BLOCK_HTML", e.BLOCK_AMP_CAROUSEL = "BLOCK_AMP_CAROUSEL", e.BLOCK_AMP_ACCORDION = "BLOCK_AMP_ACCORDION", e.BLOCK_AMP_FORM = "BLOCK_AMP_FORM", e.CONTAINER = "CONTAINER", e.FORM_CONTAINER = "FORM_CONTAINER", e.STRUCTURE = "STRUCTURE", e.STRIPE = "STRIPE", e.EMPTY_CONTAINER = "EMPTY_CONTAINER", e.CUSTOM_BLOCK_LINK = "CUSTOM_BLOCK_LINK", e.CUSTOM_BLOCK_IMAGE = "CUSTOM_BLOCK_IMAGE", e.CUSTOM_BLOCK_TEXT = "CUSTOM_BLOCK_TEXT", e))(ce || {}), F = /* @__PURE__ */ ((e) => (e.ANCHOR_LINK_CONTAINER = "anchorLinkFormContainer", e.APPLY_CONDITION = "applyCondition", e.APPLY_CONDITION_SWITCHER = "applyConditionSwitcher", e.BACKGROUND_COLOR = "backgroundColor", e.BACKGROUND_IMAGE = "generalImageContainer", e.TEXT_COLOR = "textColor", e.TEXT_STYLE = "textStyle", e.TEXT_SIZE = "textSize", e.TEXT_LINE_SPACING = "textLineSpacing", e.TEXT_ALIGN = "textAlign", e.FIXED_HEIGHT_SWITCHER = "fixedHeightSwitcherForm", e.HIDDEN_NODE = "hiddenNode", e.SMART_BLOCK = "smartBlock", e.SYNCHRONIZED_MODULE = "synchronizedModuleForm", e.FONT_FAMILY = "generalFontFamilyForm", e.BLOCK_INTERNAL_INDENTS = "generalBlockInternalIndents", e.STRUCTURE_INTERNAL_INDENTS = "generalStructureInternalIndents", e))(F || {}), k = /* @__PURE__ */ ((e) => (e.ADJUST_TO_WIDTH = "adjustToWidth", e.ALIGNMENT = "buttonAlignment", e.BORDER = "buttonBorder", e.BORDER_RADIUS = "buttonBorderRadius", e.COLOR = "buttonColor", e.BUTTON_BLOCK_BACKGROUND_COLOR = "buttonBlockBackgroundColor", e.EXTERNAL_INDENTS = "buttonExternalIndents", e.FIXED_HEIGHT = "buttonFixedHeightForm", e.FONT_COLOR = "buttonFontColor", e.FONT_FAMILY = "buttonFontFamily", e.FONT_SIZE = "buttonFontSize", e.FONT_WEIGHT = "buttonFontWeight", e.ICON = "buttonIconContainer", e.ICON_ALIGN = "buttonIconAlign", e.ICON_INDENT = "buttonIconIndent", e.ICON_WIDTH = "buttonIconWidth", e.IMAGE = "buttonImageForm", e.INTERNAL_INDENTS = "buttonInternalIndents", e.LINK = "buttonLink", e.MIME_TYPE = "buttonMimeTypeForm", e.SWITCHER_HOVERED_STYLES = "buttonSwitcherHoveredStylesForm", e.TEXT = "buttonText", e.TEXT_STYLE_AND_COLOR = "buttonTextStyleAndColorForm", e.HOVERED_BORDER_COLOR = "hoveredStyleBorderButtonForm", e.HOVERED_COLOR = "hoveredButtonColorForm", e.HOVERED_TEXT_COLOR = "hoveredButtonTextColorForm", e))(k || {}), X = /* @__PURE__ */ ((e) => (e.HIDDEN_NODE = "hiddenNodeText", e.PARAGRAPH_STYLE = "paragraphStyleForm", e.ALIGN = "textAlignmentForm", e.ANCHOR_CONTAINER = "textAnchorForm", e.FONT_BACKGROUND_COLOR = "textBlockFontBackgroundColor", e.TEXT_BLOCK_BACKGROUND_COLOR = "textBlockBackgroundColor", e.FONT_COLOR = "textBlockFontColor", e.TEXT_BLOCK_FONT_FAMILY = "textBlockFontFamily", e.FONT_FAMILY = "textFontFamily", e.FONT_SIZE = "textBlockFontSize", e.FONT_WEIGHT = "textBlockFontWeight", e.DIRECTION = "textBlockDirectionForm", e.INSERT_FORM = "textBlockInsertForm", e.LETTER_SPACING = "textBlockLetterSpacing", e.LINK_DATA = "textBlockLinkDataForm", e.FORMAT = "textBlockTextFormatForm", e.FIXED_HEIGHT = "textFixedHeightForm", e.INTERNAL_INDENTS = "textInternalIndents", e.LINE_HEIGHT = "textLineHeightForm", e.MIME_TYPE = "textMimeTypeForm", e.NO_LINE_WRAPS = "textNoLineWrapsForm", e))(X || {}), p = /* @__PURE__ */ ((e) => (e.ALT_TEXT = "altText", e.LINK = "blockLink", e.ALIGNMENT = "imageAlignment", e.ANCHOR_LINK_CONTAINER = "imageAnchorLinkContainerForm", e.BORDER_RADIUS = "imageBorderRadiusForm", e.IMAGE = "imageImageForm", e.EXTERNAL_INDENTS = "imageExternalIndents", e.MIME_TYPE = "imageMimeTypeForm", e.RESPONSIVE = "imageResponsive", e.ROLLOVER_IMAGE = "imageRolloverImageForm", e.ROLLOVER_SWITCHER = "imageRolloverSwitcherForm", e.SIZE = "imageSizeContainer", e))(p || {}), Te = /* @__PURE__ */ ((e) => (e.BACKGROUND_COLOR = "containerBackgroundColorForm", e.BORDER_FORM = "containerBorderForm", e.BORDER_RADIUS = "containerBorderRadiusForm", e.EXTERNAL_INDENTS = "containerExternalIndentsForm", e.IMAGE_CONTAINER = "containerImageContainerForm", e.MIME_TYPE = "containerMimeTypeForm", e.DISPLAY_CONDITIONS = "displayConditions", e.HIDDEN_NODE = "containerHiddenNodeForm", e))(Te || {}), n = {
351
+ BLOCK_BUTTON: k,
352
+ BLOCK_TEXT: X,
353
+ BLOCK_IMAGE: p,
346
354
  GENERAL: F
347
- }, Ie = /* @__PURE__ */ ((e) => (e.SAVE_AS_MODULE = "saveAsModule", e.IMPROVE_WITH_AI = "improveWithAI", e.MOVE = "move", e.COPY = "copy", e.REMOVE = "remove", e.CLEAR_CONTAINER = "clearContainer", e.EXTERNAL_DISPLAY_CONDITION = "externalDisplayCondition", e))(Ie || {}), ce = /* @__PURE__ */ ((e) => (e.previewDeviceMode = "previewDeviceMode", e.panelPosition = "panelPosition", e.themeMode = "themeMode", e))(ce || {}), Te = /* @__PURE__ */ ((e) => (e.DESKTOP = "DESKTOP", e.MOBILE = "MOBILE", e))(Te || {}), be = /* @__PURE__ */ ((e) => (e.SETTINGS = "settings", e.STYLES = "styles", e.DATA = "data", e))(be || {}), a = {
355
+ }, ge = /* @__PURE__ */ ((e) => (e.SAVE_AS_MODULE = "saveAsModule", e.IMPROVE_WITH_AI = "improveWithAI", e.MOVE = "move", e.COPY = "copy", e.REMOVE = "remove", e.CLEAR_CONTAINER = "clearContainer", e.EXTERNAL_DISPLAY_CONDITION = "externalDisplayCondition", e))(ge || {}), be = /* @__PURE__ */ ((e) => (e.previewDeviceMode = "previewDeviceMode", e.panelPosition = "panelPosition", e.themeMode = "themeMode", e))(be || {}), Ie = /* @__PURE__ */ ((e) => (e.DESKTOP = "DESKTOP", e.MOBILE = "MOBILE", e))(Ie || {}), he = /* @__PURE__ */ ((e) => (e.SETTINGS = "settings", e.STYLES = "styles", e.DATA = "data", e))(he || {}), a = {
348
356
  name: "name",
349
357
  disabled: "disabled"
350
- }, he = {
358
+ }, me = {
351
359
  ...a,
352
360
  caption: "caption",
353
361
  icon: "icon"
354
- }, me = {
362
+ }, Oe = {
355
363
  ...a,
356
364
  caption: "caption"
357
- }, ge = {
365
+ }, Le = {
358
366
  ...a,
359
367
  minValue: "min-value",
360
368
  maxValue: "max-value",
361
- step: "step"
362
- }, Oe = {
369
+ step: "step",
370
+ counterRangeEnabled: "counter-range-enabled",
371
+ counterRangeHeight: "counter-range-height"
372
+ }, Re = {
363
373
  ...a,
364
374
  placeholder: "placeholder",
365
375
  minDate: "min-date"
366
- }, Re = {
376
+ }, _e = {
367
377
  ...a,
368
378
  text: "text",
369
379
  hint: "hint"
370
- }, Le = {
380
+ }, Ce = {
371
381
  ...a,
372
382
  type: "type",
373
383
  icon: "icon"
374
- }, _e = {
384
+ }, Ae = {
375
385
  ...a,
376
386
  buttons: "buttons"
377
- }, p = {
387
+ }, G = {
378
388
  ...a,
379
389
  searchable: "searchable",
380
390
  multiSelect: "multi-select",
381
391
  placeholder: "placeholder",
382
392
  items: "items"
383
- }, Ce = {
384
- ...p,
393
+ }, Ne = {
394
+ ...G,
385
395
  addCustomFontOption: "add-custom-font-option"
386
- }, Ae = {
396
+ }, De = {
387
397
  ...a,
388
398
  text: "text",
389
399
  value: "value"
390
- }, Ne = {
400
+ }, Me = {
391
401
  ...a,
392
402
  text: "text",
393
403
  hint: "hint",
394
404
  icon: "icon",
395
405
  value: "value"
396
- }, De = {
406
+ }, Se = {
397
407
  ...a,
398
408
  buttons: "buttons"
399
- }, Se = {
409
+ }, Be = {
400
410
  ...a,
401
411
  text: "text",
402
412
  hint: "hint",
403
413
  icon: "icon",
404
414
  value: "value"
405
- }, Me = {
415
+ }, V = {
406
416
  ...a,
407
417
  placeholder: "placeholder"
408
- }, Be = {
418
+ }, xe = {
419
+ ...V,
420
+ hasMergeTagIcon: "has-merge-tag-icon",
421
+ maxLength: "max-length",
422
+ singleLine: "single-line"
423
+ }, ve = {
409
424
  ...a,
410
425
  resizable: "resizable",
411
426
  placeholder: "placeholder"
412
- }, ve = {
427
+ }, ye = {
413
428
  ...a,
414
429
  img: "img",
415
430
  src: "src",
@@ -420,61 +435,62 @@ var j = {
420
435
  isActive: "is-active",
421
436
  visibility: "visibility",
422
437
  transform: "transform"
423
- }, xe = {
438
+ }, Pe = {
424
439
  ...a,
425
440
  controlId: "control-id"
426
- }, Pe = {
441
+ }, Ue = {
427
442
  ...a,
428
443
  expanded: "expanded"
429
- }, ye = {
444
+ }, we = {
430
445
  ...a,
431
446
  icon: "icon",
432
447
  position: "position"
433
- }, Ue = {
448
+ }, Ke = {
434
449
  ...a
435
- }, we = {
450
+ }, He = {
436
451
  ...a,
437
452
  icon: "icon"
438
- }, Ke = {
439
- ...a
440
453
  }, Fe = {
454
+ ...a
455
+ }, ke = {
441
456
  ...a,
442
457
  blockId: "block-id"
443
- }, He = {
458
+ }, Xe = {
444
459
  ...a
445
- }, ke = {
460
+ }, pe = {
446
461
  ...a,
447
462
  placeholder: "placeholder"
448
- }, et = {
463
+ }, at = {
449
464
  DEFAULT: a,
450
- BUTTON: he,
451
- CHECKBOX: me,
452
- CHECK_BUTTONS: De,
465
+ BUTTON: me,
466
+ CHECKBOX: Oe,
467
+ CHECK_BUTTONS: Se,
453
468
  COLOR: a,
454
- COUNTER: ge,
455
- DATEPICKER: Oe,
456
- LABEL: Re,
457
- MESSAGE: Le,
458
- RADIO_BUTTONS: _e,
459
- SELECTPICKER: p,
460
- FONT_FAMILY_SELECT: Ce,
469
+ COUNTER: Le,
470
+ DATEPICKER: Re,
471
+ LABEL: _e,
472
+ MESSAGE: Ce,
473
+ RADIO_BUTTONS: Ae,
474
+ SELECTPICKER: G,
475
+ FONT_FAMILY_SELECT: Ne,
461
476
  SWITCHER: a,
462
- TEXT: Me,
463
- TEXTAREA: Be,
464
- ICON: ve,
465
- CHECK_ITEM: Ne,
466
- SELECT_ITEM: Ae,
467
- RADIO_ITEM: Se,
468
- NESTED_CONTROL: xe,
469
- EXPANDABLE: Pe,
470
- ORDERABLE: ye,
471
- ORDERABLE_ITEM: Ue,
472
- ORDERABLE_ICON: we,
473
- REPEATABLE: Ke,
474
- DRAGGABLE_BLOCK: Fe,
475
- AMP_FORM_SERVICE_PICKER: He,
476
- MULTIPLE_SELECT: ke
477
- }, Xe = /* @__PURE__ */ ((e) => (e.BUTTON = "UE-BUTTON", e.CHECKBOX = "UE-CHECKBOX", e.CHECK_BUTTONS = "UE-CHECK-BUTTONS", e.COLOR = "UE-COLOR", e.COUNTER = "UE-COUNTER", e.DATEPICKER = "UE-DATEPICKER", e.LABEL = "UE-LABEL", e.MESSAGE = "UE-MESSAGE", e.RADIO_BUTTONS = "UE-RADIO-BUTTONS", e.SELECTPICKER = "UE-SELECT", e.SWITCHER = "UE-SWITCHER", e.TEXT = "UE-TEXT", e.RICH_TEXT = "UE-RICH-TEXT", e.TEXTAREA = "UE-TEXTAREA", e.CHECK_ITEM = "UE-CHECK-ITEM", e.RADIO_ITEM = "UE-RADIO-ITEM", e.SELECT_ITEM = "UE-SELECT-ITEM", e.ICON = "UE-ICON", e.MERGETAGS = "UE-MERGETAGS", e.FONT_FAMILY_SELECT = "UE-FONT-FAMILY-SELECT", e.NESTED_CONTROL = "UE-NESTED-CONTROL", e.EXPANDABLE = "UE-EXPANDABLE", e.EXPANDABLE_HEADER = "UE-EXPANDABLE_HEADER", e.EXPANDABLE_CONTENT = "UE-EXPANDABLE_CONTENT", e.ORDERABLE = "UE-ORDERABLE", e.ORDERABLE_ITEM = "UE-ORDERABLE-ITEM", e.ORDERABLE_ICON = "UE-ORDERABLE-ICON", e.REPEATABLE = "UE-REPEATABLE", e.DRAGGABLE_BLOCK = "UE-DRAGGABLE-BLOCK", e.AMP_FORM_SERVICE_PICKER = "UE-AMP-FORM-SERVICE-PICKER", e.MULTIPLE_SELECT = "UE-MULTIPLE_SELECT", e.SCROLLABLE = "UE-SCROLLABLE-CONTAINER", e.POPUP_PANEL = "UE-POPUP-PANEL", e))(Xe || {}), x = class {
477
+ TEXT: V,
478
+ RICH_TEXT: xe,
479
+ TEXTAREA: ve,
480
+ ICON: ye,
481
+ CHECK_ITEM: Me,
482
+ SELECT_ITEM: De,
483
+ RADIO_ITEM: Be,
484
+ NESTED_CONTROL: Pe,
485
+ EXPANDABLE: Ue,
486
+ ORDERABLE: we,
487
+ ORDERABLE_ITEM: Ke,
488
+ ORDERABLE_ICON: He,
489
+ REPEATABLE: Fe,
490
+ DRAGGABLE_BLOCK: ke,
491
+ AMP_FORM_SERVICE_PICKER: Xe,
492
+ MULTIPLE_SELECT: pe
493
+ }, Ge = /* @__PURE__ */ ((e) => (e.BUTTON = "UE-BUTTON", e.CHECKBOX = "UE-CHECKBOX", e.CHECK_BUTTONS = "UE-CHECK-BUTTONS", e.COLOR = "UE-COLOR", e.COUNTER = "UE-COUNTER", e.DATEPICKER = "UE-DATEPICKER", e.LABEL = "UE-LABEL", e.MESSAGE = "UE-MESSAGE", e.RADIO_BUTTONS = "UE-RADIO-BUTTONS", e.SELECTPICKER = "UE-SELECT", e.SWITCHER = "UE-SWITCHER", e.TEXT = "UE-TEXT", e.RICH_TEXT = "UE-RICH-TEXT", e.TEXTAREA = "UE-TEXTAREA", e.CHECK_ITEM = "UE-CHECK-ITEM", e.RADIO_ITEM = "UE-RADIO-ITEM", e.SELECT_ITEM = "UE-SELECT-ITEM", e.ICON = "UE-ICON", e.MERGETAGS = "UE-MERGETAGS", e.FONT_FAMILY_SELECT = "UE-FONT-FAMILY-SELECT", e.NESTED_CONTROL = "UE-NESTED-CONTROL", e.EXPANDABLE = "UE-EXPANDABLE", e.EXPANDABLE_HEADER = "UE-EXPANDABLE_HEADER", e.EXPANDABLE_CONTENT = "UE-EXPANDABLE_CONTENT", e.ORDERABLE = "UE-ORDERABLE", e.ORDERABLE_ITEM = "UE-ORDERABLE-ITEM", e.ORDERABLE_ICON = "UE-ORDERABLE-ICON", e.REPEATABLE = "UE-REPEATABLE", e.DRAGGABLE_BLOCK = "UE-DRAGGABLE-BLOCK", e.AMP_FORM_SERVICE_PICKER = "UE-AMP-FORM-SERVICE-PICKER", e.MULTIPLE_SELECT = "UE-MULTIPLE_SELECT", e.SCROLLABLE = "UE-SCROLLABLE-CONTAINER", e.POPUP_PANEL = "UE-POPUP-PANEL", e))(Ge || {}), y = class {
478
494
  /**
479
495
  * @description returns map of nodes parent control operates on
480
496
  */
@@ -505,68 +521,76 @@ var j = {
505
521
  isVisible(e) {
506
522
  return !0;
507
523
  }
508
- }, l = class extends x {
524
+ /**
525
+ * Element Lock category of this control. Return `undefined` (the default) to inherit the category of
526
+ * the extended parent control — a control extending a style parent is governed by the style-lock
527
+ * automatically. Override with an explicit {@link ElementLockCategory} only to change that.
528
+ * @returns The Element Lock category, or `undefined` to inherit from the parent control.
529
+ */
530
+ getElementLockCategory() {
531
+ }
532
+ }, l = class extends y {
509
533
  getTargetNodes(e) {
510
- const t = e.querySelectorAll(I.BUTTON), r = e.asElement().hasClass(U) ? [e] : [];
534
+ const t = e.querySelectorAll(c.BUTTON), r = e.asElement().hasClass(w) ? [e] : [];
511
535
  return t.length ? t : r;
512
536
  }
513
- }, tt = class extends l {
537
+ }, nt = class extends l {
514
538
  getParentControlId() {
515
539
  return n.BLOCK_BUTTON.BORDER_RADIUS;
516
540
  }
517
541
  getLabels() {
518
542
  }
519
- }, rt = class extends l {
543
+ }, st = class extends l {
520
544
  getParentControlId() {
521
545
  return n.BLOCK_BUTTON.ALIGNMENT;
522
546
  }
523
- }, at = class extends l {
547
+ }, it = class extends l {
524
548
  getParentControlId() {
525
549
  return n.GENERAL.BACKGROUND_COLOR;
526
550
  }
527
- }, nt = class extends l {
551
+ }, lt = class extends l {
528
552
  getParentControlId() {
529
553
  return n.BLOCK_BUTTON.BORDER;
530
554
  }
531
555
  getLabels() {
532
556
  }
533
- }, st = class extends l {
557
+ }, Et = class extends l {
534
558
  getParentControlId() {
535
559
  return n.BLOCK_BUTTON.COLOR;
536
560
  }
537
- }, it = class extends l {
561
+ }, ot = class extends l {
538
562
  getParentControlId() {
539
563
  return n.BLOCK_BUTTON.ADJUST_TO_WIDTH;
540
564
  }
541
- }, lt = class extends l {
565
+ }, dt = class extends l {
542
566
  getParentControlId() {
543
567
  return n.BLOCK_BUTTON.FONT_FAMILY;
544
568
  }
545
- }, Et = class extends l {
569
+ }, ut = class extends l {
546
570
  getParentControlId() {
547
571
  return n.BLOCK_BUTTON.EXTERNAL_INDENTS;
548
572
  }
549
- }, ot = class extends l {
573
+ }, ct = class extends l {
550
574
  getParentControlId() {
551
575
  return n.BLOCK_BUTTON.INTERNAL_INDENTS;
552
576
  }
553
- }, dt = class extends l {
577
+ }, Tt = class extends l {
554
578
  getParentControlId() {
555
579
  return n.BLOCK_BUTTON.TEXT;
556
580
  }
557
- }, ut = class extends l {
581
+ }, gt = class extends l {
558
582
  getParentControlId() {
559
583
  return n.BLOCK_BUTTON.FONT_SIZE;
560
584
  }
561
- }, It = class extends l {
585
+ }, bt = class extends l {
562
586
  getParentControlId() {
563
587
  return n.BLOCK_BUTTON.TEXT_STYLE_AND_COLOR;
564
588
  }
565
589
  getLabels() {
566
590
  }
567
- }, G = class h extends i {
591
+ }, Q = class I extends i {
568
592
  constructor() {
569
- super(h.REQUIRED_METHODS, h);
593
+ super(I.REQUIRED_METHODS, I);
570
594
  }
571
595
  /**
572
596
  * @description Allows to determine if control should be visible or hidden in control panel.
@@ -618,11 +642,21 @@ var j = {
618
642
  */
619
643
  onDocumentChanged(t) {
620
644
  }
645
+ /**
646
+ * Element Lock category of this control. Under `preventContentEdit` the editor disables (and rejects
647
+ * patches from) controls categorised as `content`; under `preventStyleEdit` — the `style` ones.
648
+ * Defaults to {@link ElementLockCategory.CONTENT}; override and return {@link ElementLockCategory.STYLE}
649
+ * for controls that edit visual styling so they are governed by the style-lock instead.
650
+ * @returns The Element Lock category governing this control.
651
+ */
652
+ getElementLockCategory() {
653
+ return "content";
654
+ }
621
655
  };
622
- G.REQUIRED_METHODS = ["getId", "getTemplate"];
623
- var ct = G, pe = class m extends i {
656
+ Q.REQUIRED_METHODS = ["getId", "getTemplate"];
657
+ var It = Q, Ve = class h extends i {
624
658
  constructor() {
625
- super(m.REQUIRED_METHODS, m);
659
+ super(h.REQUIRED_METHODS, h);
626
660
  }
627
661
  /**
628
662
  * Gets the unique identifier for this tab.
@@ -689,23 +723,23 @@ var ct = G, pe = class m extends i {
689
723
  onDestroy() {
690
724
  }
691
725
  };
692
- pe.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
693
- var V = class extends x {
726
+ Ve.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
727
+ var f = class extends y {
694
728
  getTargetNodes(e) {
695
- const t = e.querySelectorAll(I.IMAGE), r = e.asElement().hasClass(K) ? [e] : [];
729
+ const t = e.querySelectorAll(c.IMAGE), r = e.asElement().hasClass(H) ? [e] : [];
696
730
  return t.length ? t : r;
697
731
  }
698
- }, Tt = class extends V {
732
+ }, ht = class extends f {
699
733
  getParentControlId() {
700
734
  return n.BLOCK_IMAGE.EXTERNAL_INDENTS;
701
735
  }
702
- }, bt = class extends V {
736
+ }, mt = class extends f {
703
737
  getParentControlId() {
704
738
  return n.BLOCK_IMAGE.SIZE;
705
739
  }
706
- }, Ge = class g extends i {
740
+ }, Qe = class m extends i {
707
741
  constructor() {
708
- super(g.REQUIRED_METHODS, g);
742
+ super(m.REQUIRED_METHODS, m);
709
743
  }
710
744
  /**
711
745
  * Gets the unique identifier for this tab.
@@ -767,8 +801,8 @@ var V = class extends x {
767
801
  onDocumentChanged() {
768
802
  }
769
803
  };
770
- Ge.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
771
- var f = class O extends i {
804
+ Qe.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
805
+ var Y = class O extends i {
772
806
  constructor() {
773
807
  super(O.REQUIRED_METHODS, O);
774
808
  }
@@ -776,10 +810,10 @@ var f = class O extends i {
776
810
  throw new Error("Method registerBlockControls() must be implemented by the subclass");
777
811
  }
778
812
  };
779
- f.REQUIRED_METHODS = ["registerBlockControls"];
780
- var ht = f, mt = class R {
813
+ Y.REQUIRED_METHODS = ["registerBlockControls"];
814
+ var Ot = Y, Lt = class L {
781
815
  constructor(t, r) {
782
- this.tabId = t, this.controls = r.map(R.normalizeControl);
816
+ this.tabId = t, this.controls = r.map(L.normalizeControl);
783
817
  }
784
818
  getTabId() {
785
819
  return this.tabId;
@@ -797,7 +831,7 @@ var ht = f, mt = class R {
797
831
  return this.label = t, this;
798
832
  }
799
833
  addControl(t, r) {
800
- const s = R.normalizeControl(t);
834
+ const s = L.normalizeControl(t);
801
835
  return r < 0 ? this.controls.unshift(s) : r > this.controls.length ? this.controls.push(s) : this.controls.splice(r, 0, s), this;
802
836
  }
803
837
  deleteControl(t) {
@@ -814,42 +848,42 @@ var ht = f, mt = class R {
814
848
  id: t.id
815
849
  };
816
850
  }
817
- }, E = class extends x {
851
+ }, o = class extends y {
818
852
  getTargetNodes(e) {
819
- const t = e.querySelectorAll(I.TEXT), r = e.asElement().hasClass(w) ? [e] : [];
853
+ const t = e.querySelectorAll(c.TEXT), r = e.asElement().hasClass(K) ? [e] : [];
820
854
  return t.length ? t : r;
821
855
  }
822
- }, gt = class extends E {
856
+ }, Rt = class extends o {
823
857
  getParentControlId() {
824
858
  return n.GENERAL.TEXT_ALIGN;
825
859
  }
826
- }, Ot = class extends E {
860
+ }, _t = class extends o {
827
861
  getParentControlId() {
828
862
  return n.GENERAL.TEXT_COLOR;
829
863
  }
830
- }, Rt = class extends E {
864
+ }, Ct = class extends o {
831
865
  getParentControlId() {
832
866
  return n.BLOCK_TEXT.FONT_FAMILY;
833
867
  }
834
- }, Lt = class extends E {
868
+ }, At = class extends o {
835
869
  getParentControlId() {
836
870
  return n.GENERAL.TEXT_LINE_SPACING;
837
871
  }
838
- }, _t = class extends E {
872
+ }, Nt = class extends o {
839
873
  getParentControlId() {
840
874
  return n.BLOCK_TEXT.INTERNAL_INDENTS;
841
875
  }
842
- }, Ct = class extends E {
876
+ }, Dt = class extends o {
843
877
  getParentControlId() {
844
878
  return n.GENERAL.TEXT_SIZE;
845
879
  }
846
- }, At = class extends E {
880
+ }, Mt = class extends o {
847
881
  getParentControlId() {
848
882
  return n.GENERAL.TEXT_STYLE;
849
883
  }
850
- }, Ve = class {
884
+ }, fe = class {
851
885
  constructor(e) {
852
- this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.generalPanelTabs = [], this.modulesPanelTabs = [], this.i18n = e == null ? void 0 : e.i18n, this.styles = e == null ? void 0 : e.styles, this.previewStyles = e == null ? void 0 : e.previewStyles, this.uiElements = (e == null ? void 0 : e.uiElements) ?? [], this.uiElementTagRegistry = e == null ? void 0 : e.uiElementTagRegistry, this.controls = (e == null ? void 0 : e.controls) ?? [], this.settingsPanelRegistry = e == null ? void 0 : e.settingsPanelRegistry, this.contextActions = (e == null ? void 0 : e.contextActions) ?? [], this.blocks = (e == null ? void 0 : e.blocks) ?? [], this.generalPanelTabs = (e == null ? void 0 : e.generalPanelTabs) ?? [], this.modulesPanelTabs = (e == null ? void 0 : e.modulesPanelTabs) ?? [], this.externalSmartElementsLibrary = e == null ? void 0 : e.externalSmartElementsLibrary, this.externalImageLibrary = e == null ? void 0 : e.externalImageLibrary, this.externalImageLibraryTab = e == null ? void 0 : e.externalImageLibraryTab, this.externalAiAssistant = e == null ? void 0 : e.externalAiAssistant, this.externalDisplayConditionsLibrary = e == null ? void 0 : e.externalDisplayConditionsLibrary, this.externalVideoLibrary = e == null ? void 0 : e.externalVideoLibrary, this.blocksPanel = e == null ? void 0 : e.blocksPanel, this.iconsRegistry = e == null ? void 0 : e.iconsRegistry, this.id = Math.random().toString(36).substring(2);
886
+ this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.generalPanelTabs = [], this.modulesPanelTabs = [], this.i18n = e == null ? void 0 : e.i18n, this.styles = e == null ? void 0 : e.styles, this.previewStyles = e == null ? void 0 : e.previewStyles, this.uiElements = (e == null ? void 0 : e.uiElements) ?? [], this.uiElementTagRegistry = e == null ? void 0 : e.uiElementTagRegistry, this.controls = (e == null ? void 0 : e.controls) ?? [], this.settingsPanelRegistry = e == null ? void 0 : e.settingsPanelRegistry, this.contextActions = (e == null ? void 0 : e.contextActions) ?? [], this.blocks = (e == null ? void 0 : e.blocks) ?? [], this.generalPanelTabs = (e == null ? void 0 : e.generalPanelTabs) ?? [], this.modulesPanelTabs = (e == null ? void 0 : e.modulesPanelTabs) ?? [], this.externalSmartElementsLibrary = e == null ? void 0 : e.externalSmartElementsLibrary, this.externalImageLibrary = e == null ? void 0 : e.externalImageLibrary, this.externalImageLibraryTab = e == null ? void 0 : e.externalImageLibraryTab, this.externalMergeTagsLibrary = e == null ? void 0 : e.externalMergeTagsLibrary, this.externalAiAssistant = e == null ? void 0 : e.externalAiAssistant, this.externalDisplayConditionsLibrary = e == null ? void 0 : e.externalDisplayConditionsLibrary, this.externalVideoLibrary = e == null ? void 0 : e.externalVideoLibrary, this.blocksPanel = e == null ? void 0 : e.blocksPanel, this.iconsRegistry = e == null ? void 0 : e.iconsRegistry, this.id = Math.random().toString(36).substring(2);
853
887
  }
854
888
  getI18n() {
855
889
  return this.i18n;
@@ -890,6 +924,9 @@ var ht = f, mt = class R {
890
924
  getExternalImageLibraryTab() {
891
925
  return this.externalImageLibraryTab;
892
926
  }
927
+ getExternalMergeTagsLibrary() {
928
+ return this.externalMergeTagsLibrary;
929
+ }
893
930
  getExternalAiAssistant() {
894
931
  return this.externalAiAssistant;
895
932
  }
@@ -911,7 +948,7 @@ var ht = f, mt = class R {
911
948
  getModulesPanelTabs() {
912
949
  return this.modulesPanelTabs;
913
950
  }
914
- }, Nt = class {
951
+ }, St = class {
915
952
  constructor() {
916
953
  this.styles = [], this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.generalPanelTabs = [], this.modulesPanelTabs = [];
917
954
  }
@@ -957,6 +994,9 @@ var ht = f, mt = class R {
957
994
  withExternalImageLibraryTab(e) {
958
995
  return this.externalImageLibraryTab = e, this;
959
996
  }
997
+ withExternalMergeTagsLibrary(e) {
998
+ return this.externalMergeTagsLibrary = e, this;
999
+ }
960
1000
  withExternalAiAssistant(e) {
961
1001
  return this.externalAiAssistant = e, this;
962
1002
  }
@@ -982,7 +1022,7 @@ var ht = f, mt = class R {
982
1022
  return this.modulesPanelTabs.push(e), this;
983
1023
  }
984
1024
  build() {
985
- return new Ve({
1025
+ return new fe({
986
1026
  i18n: this.i18n,
987
1027
  styles: this.styles.map((e) => e.trim()).join(`
988
1028
  `),
@@ -1001,20 +1041,21 @@ var ht = f, mt = class R {
1001
1041
  blocksPanel: this.blocksPanel,
1002
1042
  iconsRegistry: this.iconsRegistry,
1003
1043
  externalImageLibraryTab: this.externalImageLibraryTab,
1044
+ externalMergeTagsLibrary: this.externalMergeTagsLibrary,
1004
1045
  generalPanelTabs: this.generalPanelTabs,
1005
1046
  modulesPanelTabs: this.modulesPanelTabs
1006
1047
  });
1007
1048
  }
1008
- }, fe = class L extends i {
1049
+ }, Ye = class R extends i {
1009
1050
  constructor() {
1010
- super(L.REQUIRED_METHODS, L);
1051
+ super(R.REQUIRED_METHODS, R);
1011
1052
  }
1012
1053
  openAiAssistant(t) {
1013
1054
  throw new Error("Method openAiAssistant() must be implemented by the subclass");
1014
1055
  }
1015
1056
  };
1016
- fe.REQUIRED_METHODS = ["openAiAssistant"];
1017
- var Qe = class _ extends i {
1057
+ Ye.REQUIRED_METHODS = ["openAiAssistant"];
1058
+ var $e = class _ extends i {
1018
1059
  constructor() {
1019
1060
  super(_.REQUIRED_METHODS, _);
1020
1061
  }
@@ -1054,8 +1095,8 @@ var Qe = class _ extends i {
1054
1095
  throw new Error("Method getContextActionIndex() must be implemented by the subclass");
1055
1096
  }
1056
1097
  };
1057
- Qe.REQUIRED_METHODS = ["getCategoryName", "openExternalDisplayConditionsDialog"];
1058
- var Ye = class C extends i {
1098
+ $e.REQUIRED_METHODS = ["getCategoryName", "openExternalDisplayConditionsDialog"];
1099
+ var We = class C extends i {
1059
1100
  constructor() {
1060
1101
  super(C.REQUIRED_METHODS, C);
1061
1102
  }
@@ -1063,8 +1104,8 @@ var Ye = class C extends i {
1063
1104
  throw new Error("Method openImageLibrary() must be implemented by the subclass");
1064
1105
  }
1065
1106
  };
1066
- Ye.REQUIRED_METHODS = ["openImageLibrary"];
1067
- var $e = class A extends i {
1107
+ We.REQUIRED_METHODS = ["openImageLibrary"];
1108
+ var ze = class A extends i {
1068
1109
  constructor() {
1069
1110
  super(A.REQUIRED_METHODS, A);
1070
1111
  }
@@ -1085,26 +1126,35 @@ var $e = class A extends i {
1085
1126
  throw new Error("Method openImageLibraryTab() must be implemented by the subclass");
1086
1127
  }
1087
1128
  };
1088
- $e.REQUIRED_METHODS = ["getName", "openImageLibraryTab"];
1089
- var We = class N extends i {
1129
+ ze.REQUIRED_METHODS = ["getName", "openImageLibraryTab"];
1130
+ var Ze = class N extends i {
1090
1131
  constructor() {
1091
1132
  super(N.REQUIRED_METHODS, N);
1092
1133
  }
1134
+ openMergeTagsLibrary(t, r, s, E) {
1135
+ throw new Error("Method openMergeTagsLibrary() must be implemented by the subclass");
1136
+ }
1137
+ };
1138
+ Ze.REQUIRED_METHODS = ["openMergeTagsLibrary"];
1139
+ var qe = class D extends i {
1140
+ constructor() {
1141
+ super(D.REQUIRED_METHODS, D);
1142
+ }
1093
1143
  openSmartElementsLibrary(t, r) {
1094
1144
  throw new Error("Method openSmartElementsLibrary() must be implemented by the subclass");
1095
1145
  }
1096
1146
  };
1097
- We.REQUIRED_METHODS = ["openSmartElementsLibrary"];
1098
- var ze = class D extends i {
1147
+ qe.REQUIRED_METHODS = ["openSmartElementsLibrary"];
1148
+ var je = class M extends i {
1099
1149
  constructor() {
1100
- super(D.REQUIRED_METHODS, D);
1150
+ super(M.REQUIRED_METHODS, M);
1101
1151
  }
1102
1152
  openExternalVideosLibraryDialog(t, r, s) {
1103
1153
  throw new Error("Method openExternalVideosLibraryDialog() must be implemented by the subclass");
1104
1154
  }
1105
1155
  };
1106
- ze.REQUIRED_METHODS = ["openExternalVideosLibraryDialog"];
1107
- var Q = class S extends i {
1156
+ je.REQUIRED_METHODS = ["openExternalVideosLibraryDialog"];
1157
+ var $ = class S extends i {
1108
1158
  constructor() {
1109
1159
  super(S.REQUIRED_METHODS, S);
1110
1160
  }
@@ -1112,23 +1162,52 @@ var Q = class S extends i {
1112
1162
  throw new Error("Method registerIconsSvg() must be implemented by the subclass");
1113
1163
  }
1114
1164
  };
1115
- Q.REQUIRED_METHODS = ["registerIconsSvg"];
1116
- var Dt = Q, St = class {
1165
+ $.REQUIRED_METHODS = ["registerIconsSvg"];
1166
+ var Bt = $, xt = class {
1117
1167
  constructor(e) {
1118
- this.key = e;
1168
+ this.hidden = !1, this.key = e;
1119
1169
  }
1120
1170
  withParams(e) {
1121
1171
  return this.params = e, this;
1122
1172
  }
1173
+ /**
1174
+ * Marks the modification as a background change.
1175
+ *
1176
+ * @description
1177
+ * The modification is applied to the template as usual, but the patch it produces is kept out of
1178
+ * the version history UI and out of undo/redo, so the user never sees (nor can accidentally undo)
1179
+ * a change they did not make. The change still belongs to the document, so restoring an older
1180
+ * version keeps it consistent with the rest of the template.
1181
+ *
1182
+ * The patch is saved like any other, but the host application is not notified about it: the
1183
+ * `onDataChanged` callback stays silent for background modifications. Do not rely on it to track
1184
+ * changes an extension makes this way.
1185
+ *
1186
+ * @summary Hides the modification from version history and undo/redo.
1187
+ *
1188
+ * @param hidden - Pass false to keep the modification visible. Defaults to true.
1189
+ * @returns The current ModificationDescription instance for method chaining.
1190
+ */
1191
+ asHidden(e = !0) {
1192
+ return this.hidden = e, this;
1193
+ }
1194
+ /**
1195
+ * Tells whether the modification was marked as a background change via {@link asHidden}.
1196
+ *
1197
+ * @returns True when the produced patch must stay out of version history and undo/redo.
1198
+ */
1199
+ isHidden() {
1200
+ return this.hidden;
1201
+ }
1123
1202
  getValue() {
1124
1203
  return {
1125
1204
  key: this.key,
1126
1205
  params: this.params
1127
1206
  };
1128
1207
  }
1129
- }, Y = class M extends i {
1208
+ }, W = class B extends i {
1130
1209
  constructor() {
1131
- super(M.REQUIRED_METHODS, M);
1210
+ super(B.REQUIRED_METHODS, B);
1132
1211
  }
1133
1212
  /**
1134
1213
  * Called when the UI element should render its content into the provided container.
@@ -1181,65 +1260,65 @@ var Dt = Q, St = class {
1181
1260
  throw new Error("Method getTemplate() must be implemented by the subclass");
1182
1261
  }
1183
1262
  };
1184
- Y.REQUIRED_METHODS = ["onRender", "getId", "getTemplate"];
1185
- var Mt = Y, $ = class B extends i {
1263
+ W.REQUIRED_METHODS = ["onRender", "getId", "getTemplate"];
1264
+ var vt = W, z = class x extends i {
1186
1265
  constructor() {
1187
- super(B.REQUIRED_METHODS, B);
1266
+ super(x.REQUIRED_METHODS, x);
1188
1267
  }
1189
1268
  registerUiElements(t) {
1190
1269
  throw new Error("Method registerUiElements() must be implemented by the subclass");
1191
1270
  }
1192
1271
  };
1193
- $.REQUIRED_METHODS = ["registerUiElements"];
1194
- var Bt = $;
1272
+ z.REQUIRED_METHODS = ["registerUiElements"];
1273
+ var yt = z;
1195
1274
  export {
1196
- qe as Block,
1197
- Je as BlockAttr,
1198
- z as BlockCompositionType,
1199
- I as BlockSelector,
1200
- de as BlockType,
1201
- je as BlocksPanel,
1202
- x as BuiltInControl,
1275
+ et as Block,
1276
+ rt as BlockAttr,
1277
+ q as BlockCompositionType,
1278
+ c as BlockSelector,
1279
+ ce as BlockType,
1280
+ tt as BlocksPanel,
1281
+ y as BuiltInControl,
1203
1282
  n as BuiltInControlTypes,
1204
- rt as ButtonAlignBuiltInControl,
1205
- at as ButtonBackgroundColorBuiltInControl,
1206
- nt as ButtonBorderBuiltInControl,
1207
- tt as ButtonBorderRadiusBuiltInControl,
1208
- st as ButtonColorBuiltInControl,
1209
- H as ButtonControls,
1210
- it as ButtonFitToContainerBuiltInControl,
1211
- lt as ButtonFontFamilyBuiltInControl,
1212
- Et as ButtonMarginsBuiltInControl,
1213
- ot as ButtonPaddingsBuiltInControl,
1214
- dt as ButtonTextBuiltInControl,
1215
- ut as ButtonTextSizeBuiltInControl,
1216
- It as ButtonTextStyleAndFontColorBuiltInControl,
1217
- ue as ContainerControls,
1218
- Ie as ContextActionType,
1219
- ct as Control,
1220
- ce as EditorStatePropertyType,
1221
- Ve as Extension,
1222
- Nt as ExtensionBuilder,
1283
+ st as ButtonAlignBuiltInControl,
1284
+ it as ButtonBackgroundColorBuiltInControl,
1285
+ lt as ButtonBorderBuiltInControl,
1286
+ nt as ButtonBorderRadiusBuiltInControl,
1287
+ Et as ButtonColorBuiltInControl,
1288
+ k as ButtonControls,
1289
+ ot as ButtonFitToContainerBuiltInControl,
1290
+ dt as ButtonFontFamilyBuiltInControl,
1291
+ ut as ButtonMarginsBuiltInControl,
1292
+ ct as ButtonPaddingsBuiltInControl,
1293
+ Tt as ButtonTextBuiltInControl,
1294
+ gt as ButtonTextSizeBuiltInControl,
1295
+ bt as ButtonTextStyleAndFontColorBuiltInControl,
1296
+ Te as ContainerControls,
1297
+ ge as ContextActionType,
1298
+ It as Control,
1299
+ be as EditorStatePropertyType,
1300
+ fe as Extension,
1301
+ St as ExtensionBuilder,
1223
1302
  F as GeneralControls,
1224
- Dt as IconsRegistry,
1225
- X as ImageControls,
1226
- Tt as ImageMarginsBuiltInControl,
1227
- bt as ImageSizeBuiltInControl,
1228
- St as ModificationDescription,
1229
- Te as PreviewDeviceMode,
1230
- ht as SettingsPanelRegistry,
1231
- mt as SettingsPanelTab,
1232
- be as SettingsTab,
1233
- gt as TextAlignBuiltInControl,
1234
- Ot as TextColorBuiltInControl,
1235
- k as TextControls,
1236
- Rt as TextFontFamilyBuiltInControl,
1237
- Lt as TextLineSpacingBuiltInControl,
1238
- _t as TextPaddingsBuiltInControl,
1239
- Ct as TextSizeBuiltInControl,
1240
- At as TextStyleBuiltInControl,
1241
- et as UEAttr,
1242
- Mt as UIElement,
1243
- Bt as UIElementTagRegistry,
1244
- Xe as UIElementType
1303
+ Bt as IconsRegistry,
1304
+ p as ImageControls,
1305
+ ht as ImageMarginsBuiltInControl,
1306
+ mt as ImageSizeBuiltInControl,
1307
+ xt as ModificationDescription,
1308
+ Ie as PreviewDeviceMode,
1309
+ Ot as SettingsPanelRegistry,
1310
+ Lt as SettingsPanelTab,
1311
+ he as SettingsTab,
1312
+ Rt as TextAlignBuiltInControl,
1313
+ _t as TextColorBuiltInControl,
1314
+ X as TextControls,
1315
+ Ct as TextFontFamilyBuiltInControl,
1316
+ At as TextLineSpacingBuiltInControl,
1317
+ Nt as TextPaddingsBuiltInControl,
1318
+ Dt as TextSizeBuiltInControl,
1319
+ Mt as TextStyleBuiltInControl,
1320
+ at as UEAttr,
1321
+ vt as UIElement,
1322
+ yt as UIElementTagRegistry,
1323
+ Ge as UIElementType
1245
1324
  };