@useinsider/guido 3.2.0-beta.739a669 → 3.2.0-beta.78d83bd

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 (46) hide show
  1. package/dist/components/organisms/onboarding/AMPOnboarding.vue2.js +31 -51
  2. package/dist/components/organisms/onboarding/GenericOnboarding.vue.js +1 -1
  3. package/dist/components/organisms/onboarding/GenericOnboarding.vue2.js +22 -23
  4. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +1 -1
  5. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +39 -37
  6. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue.js +3 -3
  7. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue2.js +41 -30
  8. package/dist/components/organisms/onboarding/VersionHistoryOnboarding.vue2.js +14 -15
  9. package/dist/composables/useFullStoryBridge.js +14 -0
  10. package/dist/composables/useStripo.js +44 -42
  11. package/dist/config/compiler/unsubscribeCompilerRules.js +40 -37
  12. package/dist/config/compiler/utils/recommendationCompilerUtils.js +33 -30
  13. package/dist/config/migrator/recommendationMigrator.js +1 -1
  14. package/dist/enums/onboarding.js +2 -7
  15. package/dist/enums/unsubscribe.js +34 -27
  16. package/dist/extensions/Blocks/Items/template.js +46 -48
  17. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +1 -1
  18. package/dist/extensions/Blocks/Recommendation/controls/customAttribute/index.js +21 -18
  19. package/dist/extensions/Blocks/Recommendation/controls/customAttribute/textTrim.js +99 -0
  20. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +6 -6
  21. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +3 -1
  22. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +27 -57
  23. package/dist/extensions/Blocks/Recommendation/controls/shared/textTrimCssRules.js +14 -0
  24. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +18 -17
  25. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +29 -25
  26. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +11 -11
  27. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +17 -14
  28. package/dist/guido.css +1 -1
  29. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +324 -219
  30. package/dist/package.json.js +1 -1
  31. package/dist/src/composables/useFullStoryBridge.d.ts +11 -0
  32. package/dist/src/enums/onboarding.d.ts +0 -6
  33. package/dist/src/enums/unsubscribe.d.ts +5 -0
  34. package/dist/src/extensions/Blocks/Recommendation/constants/controlIds.d.ts +1 -0
  35. package/dist/src/extensions/Blocks/Recommendation/controls/customAttribute/index.d.ts +3 -0
  36. package/dist/src/extensions/Blocks/Recommendation/controls/customAttribute/textTrim.d.ts +35 -0
  37. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +3 -20
  38. package/dist/src/extensions/Blocks/Recommendation/controls/shared/textTrimCssRules.d.ts +29 -0
  39. package/dist/src/stores/onboarding.d.ts +0 -4
  40. package/dist/static/styles/components/button.css.js +16 -9
  41. package/dist/static/styles/components/loader.css.js +4 -0
  42. package/dist/static/styles/components/narrow-panel.css.js +52 -0
  43. package/dist/stores/onboarding.js +0 -4
  44. package/package.json +3 -3
  45. package/dist/composables/useRibbonOffset.js +0 -21
  46. package/dist/src/composables/useRibbonOffset.d.ts +0 -4
@@ -4,13 +4,13 @@ var B = class d {
4
4
  * @param requiredMethods - Array of method names that must be implemented
5
5
  * @param classRef - Reference to the class constructor for validation caching
6
6
  */
7
- constructor(t, n) {
8
- if (n !== d) {
9
- d.validatedClasses.has(n) || this.validateImplementation(t, n);
10
- const i = d.validationErrors.get(n);
7
+ constructor(t, a) {
8
+ if (a !== d) {
9
+ d.validatedClasses.has(a) || this.validateImplementation(t, a);
10
+ const i = d.validationErrors.get(a);
11
11
  if (i && i.length > 0)
12
12
  throw new Error(
13
- `${n.name} has validation errors:
13
+ `${a.name} has validation errors:
14
14
  ${i.map((o) => ` - ${o}`).join(`
15
15
  `)}`
16
16
  );
@@ -20,23 +20,30 @@ ${i.map((o) => ` - ${o}`).join(`
20
20
  * Validates that all required methods are properly implemented in the subclass.
21
21
  * This validation runs only once per class type and results are cached.
22
22
  */
23
- validateImplementation(t, n) {
24
- var x;
25
- const i = [], o = n.name, Y = Object.getPrototypeOf(this);
23
+ validateImplementation(t, a) {
24
+ var v;
25
+ const i = [], o = a.name, $ = Object.getPrototypeOf(this);
26
26
  t.forEach((u) => {
27
27
  if (typeof this[u] != "function") {
28
28
  i.push(`Method ${u}() is not defined`);
29
29
  return;
30
30
  }
31
- Y[u] === n.prototype[u] && i.push(`Method ${u}() must be implemented (currently using base class error-throwing implementation)`);
32
- }), d.validatedClasses.add(n), i.length > 0 ? (d.validationErrors.set(n, i), console.error(`[${o} Validation] ${o} validation failed:`, i)) : typeof process < "u" && ((x = process.env) == null ? void 0 : x.NODE_ENV) === "development" && console.log(`[${o} Validation] ✅ ${o} validated successfully`);
31
+ $[u] === a.prototype[u] && i.push(`Method ${u}() must be implemented (currently using base class error-throwing implementation)`);
32
+ }), d.validatedClasses.add(a), i.length > 0 ? (d.validationErrors.set(a, i), console.error(`[${o} Validation] ${o} validation failed:`, i)) : typeof process < "u" && ((v = process.env) == null ? void 0 : v.NODE_ENV) === "development" && console.log(`[${o} Validation] ✅ ${o} validated successfully`);
33
+ }
34
+ /**
35
+ * Lifecycle method for cleaning up resources (e.g., removing DOM artifacts from document.body).
36
+ * Override this method in subclasses to implement custom cleanup logic.
37
+ * Called when the editor is reinitialized or the extension is uninstalled.
38
+ */
39
+ destroy() {
33
40
  }
34
41
  };
35
42
  B.validatedClasses = /* @__PURE__ */ new Set();
36
43
  B.validationErrors = /* @__PURE__ */ new Map();
37
- var s = B, $ = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.STRUCTURE = "STRUCTURE", e.CONTAINER = "CONTAINER", e))($ || {}), v = class c extends s {
44
+ var s = B, W = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.CONTAINER = "CONTAINER", e.STRUCTURE = "STRUCTURE", e.STRIPE = "STRIPE", e))(W || {}), y = class T extends s {
38
45
  constructor() {
39
- super(c.REQUIRED_METHODS, c);
46
+ super(T.REQUIRED_METHODS, T);
40
47
  }
41
48
  /**
42
49
  * Determines if the block should be available for use in the editor.
@@ -133,6 +140,14 @@ var s = B, $ = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.STRUCTURE = "STRUCT
133
140
  shouldDisplayQuickAddIcon() {
134
141
  return !1;
135
142
  }
143
+ /**
144
+ * Determines if the block should be shown in the blocks panel.
145
+ * Override to hide the block from the blocks panel while keeping it available elsewhere.
146
+ * @returns True if the block should appear in the blocks panel. Defaults to true.
147
+ */
148
+ shouldDisplayInBlocksPanel() {
149
+ return !0;
150
+ }
136
151
  /**
137
152
  * @description Determines if nested blocks selection allowed in extension of type {@link BlockCompositionType.STRUCTURE}
138
153
  */
@@ -161,6 +176,14 @@ var s = B, $ = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.STRUCTURE = "STRUCT
161
176
  getTemplate() {
162
177
  throw new Error("Method getTemplate() must be implemented by the subclass");
163
178
  }
179
+ /**
180
+ * Gets a CSS template string that contains the custom styles that apply to the block.
181
+ * This CSS will be used when a block is dragged into the editor and removed when the last block is deleted.
182
+ * @returns An CSS string.
183
+ */
184
+ getTemplateStyles() {
185
+ return "";
186
+ }
164
187
  /**
165
188
  * Gets the URL or path to the icon representing this block in the editor's block panel.
166
189
  * @returns A string representing the icon source (e.g., URL, data URI).
@@ -195,10 +218,10 @@ var s = B, $ = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.STRUCTURE = "STRUCT
195
218
  throw new Error("Method getDescription() must be implemented by the subclass");
196
219
  }
197
220
  };
198
- v.REQUIRED_METHODS = ["getId", "getTemplate", "getIcon", "getName", "getDescription"];
199
- var Qe = v, W = class T extends s {
221
+ y.REQUIRED_METHODS = ["getId", "getTemplate", "getIcon", "getName", "getDescription"];
222
+ var $e = y, z = class I extends s {
200
223
  constructor() {
201
- super(T.REQUIRED_METHODS, T);
224
+ super(I.REQUIRED_METHODS, I);
202
225
  }
203
226
  /**
204
227
  * @deprecated - use {@link getPreviewInnerHtml} instead
@@ -213,8 +236,8 @@ var Qe = v, W = class T extends s {
213
236
  throw new Error("Method getPreviewInnerHtml() must be implemented by the subclass");
214
237
  }
215
238
  };
216
- W.REQUIRED_METHODS = ["getPreviewInnerHtml"];
217
- var fe = class {
239
+ z.REQUIRED_METHODS = ["getPreviewInnerHtml"];
240
+ var We = class {
218
241
  /**
219
242
  * Generates HTML representation for a block item
220
243
  * @param block - The block item to generate HTML for
@@ -232,6 +255,13 @@ var fe = class {
232
255
  isBlockHintVisible(e) {
233
256
  return !0;
234
257
  }
258
+ /**
259
+ * Determines whether a draggable handle should be displayed in modules panel
260
+ * @returns True if the block panel should be reorderable
261
+ */
262
+ isPanelPlacementChangeEnabled() {
263
+ return !0;
264
+ }
235
265
  /**
236
266
  * Gets the hint text for a block
237
267
  * @param block - The block item to get hint for
@@ -281,7 +311,7 @@ var fe = class {
281
311
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
282
312
  getModulesTabIconName(e) {
283
313
  }
284
- }, z = class b extends s {
314
+ }, Z = class b extends s {
285
315
  constructor() {
286
316
  super(b.REQUIRED_METHODS, b);
287
317
  }
@@ -298,85 +328,84 @@ var fe = class {
298
328
  throw new Error("Method onClick() must be implemented by the subclass");
299
329
  }
300
330
  };
301
- z.REQUIRED_METHODS = ["getId", "getIcon", "getLabel", "onClick"];
302
- var Z = {
331
+ Z.REQUIRED_METHODS = ["getId", "getIcon", "getLabel", "onClick"];
332
+ var j = {
303
333
  src: "src",
304
- alt: "alt",
305
334
  href: "href",
306
335
  width: "width",
307
336
  height: "height"
308
- }, Ye = {
309
- BLOCK_IMAGE: Z
310
- }, y = "esd-block-button", U = "esd-block-text", P = "esd-block-image", j = "esd-structure", q = "esd-block-video", J = "esd-block-social", ee = "esd-block-banner", te = "esd-block-timer", re = "esd-block-menu", ne = "esd-block-html", ae = "esd-block-spacer", se = "esd-container-frame", ie = "esd-stripe", le = "esd-amp-form", I = ((e) => (e.BUTTON = `.${y}`, e.TEXT = `.${U}`, e.IMAGE = `.${P}`, e.STRUCTURE = `.${j}`, e.VIDEO = `.${q}`, e.SOCIAL = `.${J}`, e.BANNER = `.${ee}`, e.TIMER = `.${te}`, e.MENU = `.${re}`, e.HTML = `.${ne}`, e.SPACER = `.${ae}`, e.CONTAINER = `.${se}`, e.STRIPE = `.${ie}`, e.FORM = `.${le}`, e))(I || {}), Ee = /* @__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))(Ee || {}), w = /* @__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))(w || {}), 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.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 || {}), F = /* @__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.DIRECTION = "textBlockDirectionForm", e.INSERT_FORM = "textBlockInsertForm", e.LINK_DATA = "textBlockLinkDataForm", e.FORMAT = "textBlockTextFormatForm", e.FIXED_HEIGHT = "textFixedHeightForm", e.INTERNAL_INDENTS = "textInternalIndents", e.LINE_HEIGHT = "textLineHeightForm", e.LINKS_COLOR = "textLinksFontColorForm", e.MIME_TYPE = "textMimeTypeForm", e.NO_LINE_WRAPS = "textNoLineWrapsForm", e))(F || {}), H = /* @__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))(H || {}), oe = /* @__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))(oe || {}), a = {
311
- BLOCK_BUTTON: K,
312
- BLOCK_TEXT: F,
313
- BLOCK_IMAGE: H,
314
- GENERAL: w
315
- }, de = /* @__PURE__ */ ((e) => (e.previewDeviceMode = "previewDeviceMode", e.panelPosition = "panelPosition", e))(de || {}), ue = /* @__PURE__ */ ((e) => (e.DESKTOP = "DESKTOP", e.MOBILE = "MOBILE", e))(ue || {}), Ie = /* @__PURE__ */ ((e) => (e.SETTINGS = "settings", e.STYLES = "styles", e.DATA = "data", e))(Ie || {}), r = {
337
+ }, ze = {
338
+ BLOCK_IMAGE: j
339
+ }, P = "esd-block-button", U = "esd-block-text", w = "esd-block-image", q = "esd-structure", J = "esd-block-video", ee = "esd-block-social", te = "esd-block-banner", re = "esd-block-timer", ae = "esd-block-menu", ne = "esd-block-html", se = "esd-block-spacer", ie = "esd-container-frame", le = "esd-stripe", Ee = "esd-amp-form", c = ((e) => (e.BUTTON = `.${P}`, e.TEXT = `.${U}`, e.IMAGE = `.${w}`, e.STRUCTURE = `.${q}`, e.VIDEO = `.${J}`, e.SOCIAL = `.${ee}`, e.BANNER = `.${te}`, e.TIMER = `.${re}`, e.MENU = `.${ae}`, e.HTML = `.${ne}`, e.SPACER = `.${se}`, e.CONTAINER = `.${ie}`, e.STRIPE = `.${le}`, e.FORM = `.${Ee}`, e))(c || {}), oe = /* @__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))(oe || {}), K = /* @__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))(K || {}), F = /* @__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.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))(F || {}), H = /* @__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.DIRECTION = "textBlockDirectionForm", e.INSERT_FORM = "textBlockInsertForm", 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))(H || {}), k = /* @__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))(k || {}), de = /* @__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))(de || {}), n = {
340
+ BLOCK_BUTTON: F,
341
+ BLOCK_TEXT: H,
342
+ BLOCK_IMAGE: k,
343
+ GENERAL: K
344
+ }, ue = /* @__PURE__ */ ((e) => (e.previewDeviceMode = "previewDeviceMode", e.panelPosition = "panelPosition", e))(ue || {}), ce = /* @__PURE__ */ ((e) => (e.DESKTOP = "DESKTOP", e.MOBILE = "MOBILE", e))(ce || {}), Te = /* @__PURE__ */ ((e) => (e.SETTINGS = "settings", e.STYLES = "styles", e.DATA = "data", e))(Te || {}), r = {
316
345
  name: "name",
317
346
  disabled: "disabled"
318
- }, ce = {
347
+ }, Ie = {
319
348
  ...r,
320
349
  caption: "caption",
321
350
  icon: "icon"
322
- }, Te = {
351
+ }, be = {
323
352
  ...r,
324
353
  caption: "caption"
325
- }, be = {
354
+ }, he = {
326
355
  ...r,
327
356
  minValue: "min-value",
328
357
  maxValue: "max-value",
329
358
  step: "step"
330
- }, Oe = {
359
+ }, me = {
331
360
  ...r,
332
361
  placeholder: "placeholder",
333
362
  minDate: "min-date"
334
- }, he = {
363
+ }, ge = {
335
364
  ...r,
336
365
  text: "text",
337
366
  hint: "hint"
338
- }, ge = {
367
+ }, Oe = {
339
368
  ...r,
340
369
  type: "type"
341
- }, me = {
370
+ }, Re = {
342
371
  ...r,
343
372
  buttons: "buttons"
344
- }, k = {
373
+ }, p = {
345
374
  ...r,
346
375
  searchable: "searchable",
347
376
  multiSelect: "multi-select",
348
377
  placeholder: "placeholder",
349
378
  items: "items"
350
- }, Re = {
351
- ...k,
352
- addCustomFontOption: "add-custom-font-option"
353
379
  }, Le = {
380
+ ...p,
381
+ addCustomFontOption: "add-custom-font-option"
382
+ }, _e = {
354
383
  ...r,
355
384
  text: "text",
356
385
  value: "value"
357
- }, _e = {
386
+ }, Ce = {
358
387
  ...r,
359
388
  text: "text",
360
389
  hint: "hint",
361
390
  icon: "icon",
362
391
  value: "value"
363
- }, Ce = {
392
+ }, Ae = {
364
393
  ...r,
365
394
  buttons: "buttons"
366
- }, Ae = {
395
+ }, Ne = {
367
396
  ...r,
368
397
  text: "text",
369
398
  hint: "hint",
370
399
  icon: "icon",
371
400
  value: "value"
372
- }, Ne = {
401
+ }, De = {
373
402
  ...r,
374
403
  placeholder: "placeholder"
375
- }, De = {
404
+ }, Se = {
376
405
  ...r,
377
406
  resizable: "resizable",
378
407
  placeholder: "placeholder"
379
- }, Se = {
408
+ }, Me = {
380
409
  ...r,
381
410
  img: "img",
382
411
  src: "src",
@@ -390,47 +419,51 @@ var Z = {
390
419
  }, Be = {
391
420
  ...r,
392
421
  controlId: "control-id"
393
- }, Me = {
422
+ }, xe = {
394
423
  ...r,
395
424
  expanded: "expanded"
396
- }, xe = {
425
+ }, ve = {
397
426
  ...r,
398
427
  icon: "icon",
399
428
  position: "position"
400
- }, ve = {
401
- ...r
402
429
  }, ye = {
430
+ ...r
431
+ }, Pe = {
403
432
  ...r,
404
433
  icon: "icon"
405
434
  }, Ue = {
406
435
  ...r
407
- }, $e = {
436
+ }, we = {
437
+ ...r,
438
+ blockId: "block-id"
439
+ }, Ze = {
408
440
  DEFAULT: r,
409
- BUTTON: ce,
410
- CHECKBOX: Te,
411
- CHECK_BUTTONS: Ce,
441
+ BUTTON: Ie,
442
+ CHECKBOX: be,
443
+ CHECK_BUTTONS: Ae,
412
444
  COLOR: r,
413
- COUNTER: be,
414
- DATEPICKER: Oe,
415
- LABEL: he,
416
- MESSAGE: ge,
417
- RADIO_BUTTONS: me,
418
- SELECTPICKER: k,
419
- FONT_FAMILY_SELECT: Re,
445
+ COUNTER: he,
446
+ DATEPICKER: me,
447
+ LABEL: ge,
448
+ MESSAGE: Oe,
449
+ RADIO_BUTTONS: Re,
450
+ SELECTPICKER: p,
451
+ FONT_FAMILY_SELECT: Le,
420
452
  SWITCHER: r,
421
- TEXT: Ne,
422
- TEXTAREA: De,
423
- ICON: Se,
424
- CHECK_ITEM: _e,
425
- SELECT_ITEM: Le,
426
- RADIO_ITEM: Ae,
453
+ TEXT: De,
454
+ TEXTAREA: Se,
455
+ ICON: Me,
456
+ CHECK_ITEM: Ce,
457
+ SELECT_ITEM: _e,
458
+ RADIO_ITEM: Ne,
427
459
  NESTED_CONTROL: Be,
428
- EXPANDABLE: Me,
429
- ORDERABLE: xe,
430
- ORDERABLE_ITEM: ve,
431
- ORDERABLE_ICON: ye,
432
- REPEATABLE: Ue
433
- }, Pe = /* @__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.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))(Pe || {}), M = class {
460
+ EXPANDABLE: xe,
461
+ ORDERABLE: ve,
462
+ ORDERABLE_ITEM: ye,
463
+ ORDERABLE_ICON: Pe,
464
+ REPEATABLE: Ue,
465
+ DRAGGABLE_BLOCK: we
466
+ }, Ke = /* @__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.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))(Ke || {}), x = class {
434
467
  /**
435
468
  * @description returns map of nodes parent control operates on
436
469
  */
@@ -461,68 +494,68 @@ var Z = {
461
494
  isVisible(e) {
462
495
  return !0;
463
496
  }
464
- }, l = class extends M {
497
+ }, l = class extends x {
465
498
  getTargetNodes(e) {
466
- const t = e.querySelectorAll(I.BUTTON), n = e.asElement().hasClass(y) ? [e] : [];
467
- return t.length ? t : n;
499
+ const t = e.querySelectorAll(c.BUTTON), a = e.asElement().hasClass(P) ? [e] : [];
500
+ return t.length ? t : a;
468
501
  }
469
- }, We = class extends l {
502
+ }, je = class extends l {
470
503
  getParentControlId() {
471
- return a.BLOCK_BUTTON.BORDER_RADIUS;
504
+ return n.BLOCK_BUTTON.BORDER_RADIUS;
472
505
  }
473
506
  getLabels() {
474
507
  }
475
- }, ze = class extends l {
508
+ }, qe = class extends l {
476
509
  getParentControlId() {
477
- return a.BLOCK_BUTTON.ALIGNMENT;
510
+ return n.BLOCK_BUTTON.ALIGNMENT;
478
511
  }
479
- }, Ze = class extends l {
512
+ }, Je = class extends l {
480
513
  getParentControlId() {
481
- return a.GENERAL.BACKGROUND_COLOR;
514
+ return n.GENERAL.BACKGROUND_COLOR;
482
515
  }
483
- }, je = class extends l {
516
+ }, et = class extends l {
484
517
  getParentControlId() {
485
- return a.BLOCK_BUTTON.BORDER;
518
+ return n.BLOCK_BUTTON.BORDER;
486
519
  }
487
520
  getLabels() {
488
521
  }
489
- }, qe = class extends l {
522
+ }, tt = class extends l {
490
523
  getParentControlId() {
491
- return a.BLOCK_BUTTON.COLOR;
524
+ return n.BLOCK_BUTTON.COLOR;
492
525
  }
493
- }, Je = class extends l {
526
+ }, rt = class extends l {
494
527
  getParentControlId() {
495
- return a.BLOCK_BUTTON.ADJUST_TO_WIDTH;
528
+ return n.BLOCK_BUTTON.ADJUST_TO_WIDTH;
496
529
  }
497
- }, et = class extends l {
530
+ }, at = class extends l {
498
531
  getParentControlId() {
499
- return a.BLOCK_BUTTON.FONT_FAMILY;
532
+ return n.BLOCK_BUTTON.FONT_FAMILY;
500
533
  }
501
- }, tt = class extends l {
534
+ }, nt = class extends l {
502
535
  getParentControlId() {
503
- return a.BLOCK_BUTTON.EXTERNAL_INDENTS;
536
+ return n.BLOCK_BUTTON.EXTERNAL_INDENTS;
504
537
  }
505
- }, rt = class extends l {
538
+ }, st = class extends l {
506
539
  getParentControlId() {
507
- return a.BLOCK_BUTTON.INTERNAL_INDENTS;
540
+ return n.BLOCK_BUTTON.INTERNAL_INDENTS;
508
541
  }
509
- }, nt = class extends l {
542
+ }, it = class extends l {
510
543
  getParentControlId() {
511
- return a.BLOCK_BUTTON.TEXT;
544
+ return n.BLOCK_BUTTON.TEXT;
512
545
  }
513
- }, at = class extends l {
546
+ }, lt = class extends l {
514
547
  getParentControlId() {
515
- return a.BLOCK_BUTTON.FONT_SIZE;
548
+ return n.BLOCK_BUTTON.FONT_SIZE;
516
549
  }
517
- }, st = class extends l {
550
+ }, Et = class extends l {
518
551
  getParentControlId() {
519
- return a.BLOCK_BUTTON.TEXT_STYLE_AND_COLOR;
552
+ return n.BLOCK_BUTTON.TEXT_STYLE_AND_COLOR;
520
553
  }
521
554
  getLabels() {
522
555
  }
523
- }, X = class O extends s {
556
+ }, X = class h extends s {
524
557
  constructor() {
525
- super(O.REQUIRED_METHODS, O);
558
+ super(h.REQUIRED_METHODS, h);
526
559
  }
527
560
  /**
528
561
  * @description Allows to determine if control should be visible or hidden in control panel.
@@ -576,9 +609,9 @@ var Z = {
576
609
  }
577
610
  };
578
611
  X.REQUIRED_METHODS = ["getId", "getTemplate"];
579
- var it = X, we = class h extends s {
612
+ var ot = X, Fe = class m extends s {
580
613
  constructor() {
581
- super(h.REQUIRED_METHODS, h);
614
+ super(m.REQUIRED_METHODS, m);
582
615
  }
583
616
  /**
584
617
  * Gets the unique identifier for this tab.
@@ -645,30 +678,95 @@ var it = X, we = class h extends s {
645
678
  onDestroy() {
646
679
  }
647
680
  };
648
- we.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
649
- var p = class extends M {
681
+ Fe.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
682
+ var G = class extends x {
650
683
  getTargetNodes(e) {
651
- const t = e.querySelectorAll(I.IMAGE), n = e.asElement().hasClass(P) ? [e] : [];
652
- return t.length ? t : n;
684
+ const t = e.querySelectorAll(c.IMAGE), a = e.asElement().hasClass(w) ? [e] : [];
685
+ return t.length ? t : a;
653
686
  }
654
- }, lt = class extends p {
687
+ }, dt = class extends G {
655
688
  getParentControlId() {
656
- return a.BLOCK_IMAGE.EXTERNAL_INDENTS;
689
+ return n.BLOCK_IMAGE.EXTERNAL_INDENTS;
657
690
  }
658
- }, Et = class extends p {
691
+ }, ut = class extends G {
659
692
  getParentControlId() {
660
- return a.BLOCK_IMAGE.SIZE;
693
+ return n.BLOCK_IMAGE.SIZE;
661
694
  }
662
- }, G = class g extends s {
695
+ }, He = class g extends s {
663
696
  constructor() {
664
697
  super(g.REQUIRED_METHODS, g);
665
698
  }
699
+ /**
700
+ * Gets the unique identifier for this tab.
701
+ * This ID is used for registration.
702
+ * @returns A unique string ID.
703
+ */
704
+ getId() {
705
+ throw new Error("Method getId() must be implemented by the subclass");
706
+ }
707
+ /**
708
+ * Gets the icon key representing this tab in the header.
709
+ * @returns A string representing the icon key from the IconsRegistry
710
+ */
711
+ getIcon() {
712
+ throw new Error("Method getIcon() must be implemented by the subclass");
713
+ }
714
+ /**
715
+ * Retrieves the index of the tab associated with the panel.
716
+ * The index represents the position/order of the tab in the UI.
717
+ *
718
+ * @returns {number} The index of the tab.
719
+ */
720
+ getTabIndex() {
721
+ throw new Error("Method getTabIndex() must be implemented by the subclass");
722
+ }
723
+ /**
724
+ * Gets the display name of the tab shown to the user in the header hint.
725
+ * Use `this.api.translate()` for localization.
726
+ * @returns The localized tab name string.
727
+ */
728
+ getName() {
729
+ throw new Error("Method getName() must be implemented by the subclass");
730
+ }
731
+ /**
732
+ * Determines if the tab should be available for use in the editor.
733
+ * Override to provide custom logic based on the editor state or configuration.
734
+ * @returns True if the tab is enabled, false otherwise. Defaults to true.
735
+ */
736
+ isEnabled() {
737
+ return !0;
738
+ }
739
+ /**
740
+ * Gets the HTML template string that defines the initial structure of this tab.
741
+ * @returns An HTML string.
742
+ */
743
+ getTemplate() {
744
+ throw new Error("Method getTemplate() must be implemented by the subclass");
745
+ }
746
+ /**
747
+ * Optional hook called when the modules panel tab is initially rendered.
748
+ * Use this for setup tasks like attaching event listeners to the panel's template elements.
749
+ */
750
+ onRender() {
751
+ }
752
+ /**
753
+ * Lifecycle hook called when any part of the document template has changed.
754
+ * This can be frequent; use cautiously for performance-sensitive operations.
755
+ */
756
+ onDocumentChanged() {
757
+ }
758
+ };
759
+ He.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
760
+ var V = class O extends s {
761
+ constructor() {
762
+ super(O.REQUIRED_METHODS, O);
763
+ }
666
764
  registerBlockControls(t) {
667
765
  throw new Error("Method registerBlockControls() must be implemented by the subclass");
668
766
  }
669
767
  };
670
- G.REQUIRED_METHODS = ["registerBlockControls"];
671
- var ot = G, dt = class {
768
+ V.REQUIRED_METHODS = ["registerBlockControls"];
769
+ var ct = V, Tt = class {
672
770
  constructor(e, t) {
673
771
  this.tabId = e, this.controlsIds = t;
674
772
  }
@@ -691,42 +789,42 @@ var ot = G, dt = class {
691
789
  const t = this.controlsIds.indexOf(e);
692
790
  t !== -1 && this.controlsIds.splice(t, 1);
693
791
  }
694
- }, E = class extends M {
792
+ }, E = class extends x {
695
793
  getTargetNodes(e) {
696
- const t = e.querySelectorAll(I.TEXT), n = e.asElement().hasClass(U) ? [e] : [];
697
- return t.length ? t : n;
794
+ const t = e.querySelectorAll(c.TEXT), a = e.asElement().hasClass(U) ? [e] : [];
795
+ return t.length ? t : a;
698
796
  }
699
- }, ut = class extends E {
797
+ }, It = class extends E {
700
798
  getParentControlId() {
701
- return a.GENERAL.TEXT_ALIGN;
799
+ return n.GENERAL.TEXT_ALIGN;
702
800
  }
703
- }, It = class extends E {
801
+ }, bt = class extends E {
704
802
  getParentControlId() {
705
- return a.GENERAL.TEXT_COLOR;
803
+ return n.GENERAL.TEXT_COLOR;
706
804
  }
707
- }, ct = class extends E {
805
+ }, ht = class extends E {
708
806
  getParentControlId() {
709
- return a.BLOCK_TEXT.FONT_FAMILY;
807
+ return n.BLOCK_TEXT.FONT_FAMILY;
710
808
  }
711
- }, Tt = class extends E {
809
+ }, mt = class extends E {
712
810
  getParentControlId() {
713
- return a.GENERAL.TEXT_LINE_SPACING;
811
+ return n.GENERAL.TEXT_LINE_SPACING;
714
812
  }
715
- }, bt = class extends E {
813
+ }, gt = class extends E {
716
814
  getParentControlId() {
717
- return a.BLOCK_TEXT.INTERNAL_INDENTS;
815
+ return n.BLOCK_TEXT.INTERNAL_INDENTS;
718
816
  }
719
817
  }, Ot = class extends E {
720
818
  getParentControlId() {
721
- return a.GENERAL.TEXT_SIZE;
819
+ return n.GENERAL.TEXT_SIZE;
722
820
  }
723
- }, ht = class extends E {
821
+ }, Rt = class extends E {
724
822
  getParentControlId() {
725
- return a.GENERAL.TEXT_STYLE;
823
+ return n.GENERAL.TEXT_STYLE;
726
824
  }
727
- }, Ke = class {
825
+ }, ke = class {
728
826
  constructor(e) {
729
- this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.generalPanelTabs = [], 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.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);
827
+ 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);
730
828
  }
731
829
  getI18n() {
732
830
  return this.i18n;
@@ -785,9 +883,12 @@ var ot = G, dt = class {
785
883
  getGeneralPanelTabs() {
786
884
  return this.generalPanelTabs;
787
885
  }
788
- }, gt = class {
886
+ getModulesPanelTabs() {
887
+ return this.modulesPanelTabs;
888
+ }
889
+ }, Lt = class {
789
890
  constructor() {
790
- this.styles = [], this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.generalPanelTabs = [];
891
+ this.styles = [], this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.generalPanelTabs = [], this.modulesPanelTabs = [];
791
892
  }
792
893
  withLocalization(e) {
793
894
  return this.i18n = e, this;
@@ -852,8 +953,11 @@ var ot = G, dt = class {
852
953
  addGeneralPanelTab(e) {
853
954
  return this.generalPanelTabs.push(e), this;
854
955
  }
956
+ addModulesPanelTab(e) {
957
+ return this.modulesPanelTabs.push(e), this;
958
+ }
855
959
  build() {
856
- return new Ke({
960
+ return new ke({
857
961
  i18n: this.i18n,
858
962
  styles: this.styles.map((e) => e.trim()).join(`
859
963
  `),
@@ -872,21 +976,22 @@ var ot = G, dt = class {
872
976
  blocksPanel: this.blocksPanel,
873
977
  iconsRegistry: this.iconsRegistry,
874
978
  externalImageLibraryTab: this.externalImageLibraryTab,
875
- generalPanelTabs: this.generalPanelTabs
979
+ generalPanelTabs: this.generalPanelTabs,
980
+ modulesPanelTabs: this.modulesPanelTabs
876
981
  });
877
982
  }
878
- }, Fe = class m extends s {
983
+ }, pe = class R extends s {
879
984
  constructor() {
880
- super(m.REQUIRED_METHODS, m);
985
+ super(R.REQUIRED_METHODS, R);
881
986
  }
882
987
  openAiAssistant(t) {
883
988
  throw new Error("Method openAiAssistant() must be implemented by the subclass");
884
989
  }
885
990
  };
886
- Fe.REQUIRED_METHODS = ["openAiAssistant"];
887
- var He = class R extends s {
991
+ pe.REQUIRED_METHODS = ["openAiAssistant"];
992
+ var Xe = class L extends s {
888
993
  constructor() {
889
- super(R.REQUIRED_METHODS, R);
994
+ super(L.REQUIRED_METHODS, L);
890
995
  }
891
996
  /**
892
997
  * Retrieves the name of the category.
@@ -903,7 +1008,7 @@ var He = class R extends s {
903
1008
  * @param {ExternalDisplayConditionSelectedCB} _successCallback - Callback executed with the updated or newly created condition upon success.
904
1009
  * @param {() => void} _cancelCallback - Callback executed when the dialog is closed without making changes.
905
1010
  */
906
- openExternalDisplayConditionsDialog(t, n, i) {
1011
+ openExternalDisplayConditionsDialog(t, a, i) {
907
1012
  throw new Error("Method openExternalDisplayConditionsDialog() must be implemented by the subclass");
908
1013
  }
909
1014
  /**
@@ -924,19 +1029,19 @@ var He = class R extends s {
924
1029
  throw new Error("Method getContextActionIndex() must be implemented by the subclass");
925
1030
  }
926
1031
  };
927
- He.REQUIRED_METHODS = ["getCategoryName", "openExternalDisplayConditionsDialog"];
928
- var ke = class L extends s {
1032
+ Xe.REQUIRED_METHODS = ["getCategoryName", "openExternalDisplayConditionsDialog"];
1033
+ var Ge = class _ extends s {
929
1034
  constructor() {
930
- super(L.REQUIRED_METHODS, L);
1035
+ super(_.REQUIRED_METHODS, _);
931
1036
  }
932
- openImageLibrary(t, n, i) {
1037
+ openImageLibrary(t, a, i) {
933
1038
  throw new Error("Method openImageLibrary() must be implemented by the subclass");
934
1039
  }
935
1040
  };
936
- ke.REQUIRED_METHODS = ["openImageLibrary"];
937
- var Xe = class _ extends s {
1041
+ Ge.REQUIRED_METHODS = ["openImageLibrary"];
1042
+ var Ve = class C extends s {
938
1043
  constructor() {
939
- super(_.REQUIRED_METHODS, _);
1044
+ super(C.REQUIRED_METHODS, C);
940
1045
  }
941
1046
  /**
942
1047
  * @description Returns the translated name/label for the tab
@@ -951,39 +1056,39 @@ var Xe = class _ extends s {
951
1056
  * @param _onImageSelectCallback - Callback to invoke when an image is selected
952
1057
  * @param _selectedNode - (Optional) Selected node for which the gallery is being opened
953
1058
  */
954
- openImageLibraryTab(t, n, i) {
1059
+ openImageLibraryTab(t, a, i) {
955
1060
  throw new Error("Method openImageLibraryTab() must be implemented by the subclass");
956
1061
  }
957
1062
  };
958
- Xe.REQUIRED_METHODS = ["getName", "openImageLibraryTab"];
959
- var pe = class C extends s {
1063
+ Ve.REQUIRED_METHODS = ["getName", "openImageLibraryTab"];
1064
+ var Qe = class A extends s {
960
1065
  constructor() {
961
- super(C.REQUIRED_METHODS, C);
1066
+ super(A.REQUIRED_METHODS, A);
962
1067
  }
963
- openSmartElementsLibrary(t, n) {
1068
+ openSmartElementsLibrary(t, a) {
964
1069
  throw new Error("Method openSmartElementsLibrary() must be implemented by the subclass");
965
1070
  }
966
1071
  };
967
- pe.REQUIRED_METHODS = ["openSmartElementsLibrary"];
968
- var Ge = class A extends s {
1072
+ Qe.REQUIRED_METHODS = ["openSmartElementsLibrary"];
1073
+ var fe = class N extends s {
969
1074
  constructor() {
970
- super(A.REQUIRED_METHODS, A);
1075
+ super(N.REQUIRED_METHODS, N);
971
1076
  }
972
- openExternalVideosLibraryDialog(t, n, i) {
1077
+ openExternalVideosLibraryDialog(t, a, i) {
973
1078
  throw new Error("Method openExternalVideosLibraryDialog() must be implemented by the subclass");
974
1079
  }
975
1080
  };
976
- Ge.REQUIRED_METHODS = ["openExternalVideosLibraryDialog"];
977
- var V = class N extends s {
1081
+ fe.REQUIRED_METHODS = ["openExternalVideosLibraryDialog"];
1082
+ var Q = class D extends s {
978
1083
  constructor() {
979
- super(N.REQUIRED_METHODS, N);
1084
+ super(D.REQUIRED_METHODS, D);
980
1085
  }
981
1086
  registerIconsSvg(t) {
982
1087
  throw new Error("Method registerIconsSvg() must be implemented by the subclass");
983
1088
  }
984
1089
  };
985
- V.REQUIRED_METHODS = ["registerIconsSvg"];
986
- var mt = V, Rt = class {
1090
+ Q.REQUIRED_METHODS = ["registerIconsSvg"];
1091
+ var _t = Q, Ct = class {
987
1092
  constructor(e) {
988
1093
  this.key = e;
989
1094
  }
@@ -996,9 +1101,9 @@ var mt = V, Rt = class {
996
1101
  params: this.params
997
1102
  };
998
1103
  }
999
- }, Q = class D extends s {
1104
+ }, f = class S extends s {
1000
1105
  constructor() {
1001
- super(D.REQUIRED_METHODS, D);
1106
+ super(S.REQUIRED_METHODS, S);
1002
1107
  }
1003
1108
  /**
1004
1109
  * Called when the UI element should render its content into the provided container.
@@ -1033,7 +1138,7 @@ var mt = V, Rt = class {
1033
1138
  * @param name - The name of the attribute that was updated.
1034
1139
  * @param value - The new value of the attribute.
1035
1140
  */
1036
- onAttributeUpdated(t, n) {
1141
+ onAttributeUpdated(t, a) {
1037
1142
  }
1038
1143
  /**
1039
1144
  * Gets the unique identifier for this UI element type.
@@ -1051,64 +1156,64 @@ var mt = V, Rt = class {
1051
1156
  throw new Error("Method getTemplate() must be implemented by the subclass");
1052
1157
  }
1053
1158
  };
1054
- Q.REQUIRED_METHODS = ["onRender", "getId", "getTemplate"];
1055
- var Lt = Q, f = class S extends s {
1159
+ f.REQUIRED_METHODS = ["onRender", "getId", "getTemplate"];
1160
+ var At = f, Y = class M extends s {
1056
1161
  constructor() {
1057
- super(S.REQUIRED_METHODS, S);
1162
+ super(M.REQUIRED_METHODS, M);
1058
1163
  }
1059
1164
  registerUiElements(t) {
1060
1165
  throw new Error("Method registerUiElements() must be implemented by the subclass");
1061
1166
  }
1062
1167
  };
1063
- f.REQUIRED_METHODS = ["registerUiElements"];
1064
- var _t = f;
1168
+ Y.REQUIRED_METHODS = ["registerUiElements"];
1169
+ var Nt = Y;
1065
1170
  export {
1066
- Qe as Block,
1067
- Ye as BlockAttr,
1068
- $ as BlockCompositionType,
1069
- I as BlockSelector,
1070
- Ee as BlockType,
1071
- fe as BlocksPanel,
1072
- M as BuiltInControl,
1073
- a as BuiltInControlTypes,
1074
- ze as ButtonAlignBuiltInControl,
1075
- Ze as ButtonBackgroundColorBuiltInControl,
1076
- je as ButtonBorderBuiltInControl,
1077
- We as ButtonBorderRadiusBuiltInControl,
1078
- qe as ButtonColorBuiltInControl,
1079
- K as ButtonControls,
1080
- Je as ButtonFitToContainerBuiltInControl,
1081
- et as ButtonFontFamilyBuiltInControl,
1082
- tt as ButtonMarginsBuiltInControl,
1083
- rt as ButtonPaddingsBuiltInControl,
1084
- nt as ButtonTextBuiltInControl,
1085
- at as ButtonTextSizeBuiltInControl,
1086
- st as ButtonTextStyleAndFontColorBuiltInControl,
1087
- oe as ContainerControls,
1088
- it as Control,
1089
- de as EditorStatePropertyType,
1090
- Ke as Extension,
1091
- gt as ExtensionBuilder,
1092
- w as GeneralControls,
1093
- mt as IconsRegistry,
1094
- H as ImageControls,
1095
- lt as ImageMarginsBuiltInControl,
1096
- Et as ImageSizeBuiltInControl,
1097
- Rt as ModificationDescription,
1098
- ue as PreviewDeviceMode,
1099
- ot as SettingsPanelRegistry,
1100
- dt as SettingsPanelTab,
1101
- Ie as SettingsTab,
1102
- ut as TextAlignBuiltInControl,
1103
- It as TextColorBuiltInControl,
1104
- F as TextControls,
1105
- ct as TextFontFamilyBuiltInControl,
1106
- Tt as TextLineSpacingBuiltInControl,
1107
- bt as TextPaddingsBuiltInControl,
1171
+ $e as Block,
1172
+ ze as BlockAttr,
1173
+ W as BlockCompositionType,
1174
+ c as BlockSelector,
1175
+ oe as BlockType,
1176
+ We as BlocksPanel,
1177
+ x as BuiltInControl,
1178
+ n as BuiltInControlTypes,
1179
+ qe as ButtonAlignBuiltInControl,
1180
+ Je as ButtonBackgroundColorBuiltInControl,
1181
+ et as ButtonBorderBuiltInControl,
1182
+ je as ButtonBorderRadiusBuiltInControl,
1183
+ tt as ButtonColorBuiltInControl,
1184
+ F as ButtonControls,
1185
+ rt as ButtonFitToContainerBuiltInControl,
1186
+ at as ButtonFontFamilyBuiltInControl,
1187
+ nt as ButtonMarginsBuiltInControl,
1188
+ st as ButtonPaddingsBuiltInControl,
1189
+ it as ButtonTextBuiltInControl,
1190
+ lt as ButtonTextSizeBuiltInControl,
1191
+ Et as ButtonTextStyleAndFontColorBuiltInControl,
1192
+ de as ContainerControls,
1193
+ ot as Control,
1194
+ ue as EditorStatePropertyType,
1195
+ ke as Extension,
1196
+ Lt as ExtensionBuilder,
1197
+ K as GeneralControls,
1198
+ _t as IconsRegistry,
1199
+ k as ImageControls,
1200
+ dt as ImageMarginsBuiltInControl,
1201
+ ut as ImageSizeBuiltInControl,
1202
+ Ct as ModificationDescription,
1203
+ ce as PreviewDeviceMode,
1204
+ ct as SettingsPanelRegistry,
1205
+ Tt as SettingsPanelTab,
1206
+ Te as SettingsTab,
1207
+ It as TextAlignBuiltInControl,
1208
+ bt as TextColorBuiltInControl,
1209
+ H as TextControls,
1210
+ ht as TextFontFamilyBuiltInControl,
1211
+ mt as TextLineSpacingBuiltInControl,
1212
+ gt as TextPaddingsBuiltInControl,
1108
1213
  Ot as TextSizeBuiltInControl,
1109
- ht as TextStyleBuiltInControl,
1110
- $e as UEAttr,
1111
- Lt as UIElement,
1112
- _t as UIElementTagRegistry,
1113
- Pe as UIElementType
1214
+ Rt as TextStyleBuiltInControl,
1215
+ Ze as UEAttr,
1216
+ At as UIElement,
1217
+ Nt as UIElementTagRegistry,
1218
+ Ke as UIElementType
1114
1219
  };