@useinsider/guido 2.0.0-beta.a3f32aa → 2.0.0-beta.b46bbf6

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 (40) hide show
  1. package/dist/@types/config/schemas.js +33 -45
  2. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +2 -2
  3. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +5 -5
  4. package/dist/components/organisms/header/RightSlot.vue2.js +10 -10
  5. package/dist/composables/useConfig.js +27 -29
  6. package/dist/composables/useSave.js +11 -13
  7. package/dist/composables/useStripo.js +54 -55
  8. package/dist/config/migrator/index.js +9 -8
  9. package/dist/config/migrator/itemsBlockMigrator.js +283 -0
  10. package/dist/extensions/Blocks/Items/block.js +39 -40
  11. package/dist/extensions/Blocks/Items/controls/cardComposition.js +46 -49
  12. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +28 -26
  13. package/dist/extensions/Blocks/Items/controls/settingsControl.js +132 -127
  14. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +2 -2
  15. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +58 -48
  16. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +48 -58
  17. package/dist/extensions/Blocks/Items/store/items-block.js +2 -2
  18. package/dist/extensions/Blocks/Items/template.js +296 -123
  19. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +172 -0
  20. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +11 -20
  21. package/dist/extensions/Blocks/Recommendation/control.js +1 -1
  22. package/dist/extensions/Blocks/Unsubscribe/extension.js +9 -9
  23. package/dist/extensions/Blocks/common-control.js +64 -53
  24. package/dist/guido.css +1 -1
  25. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +366 -287
  26. package/dist/src/@types/config/index.d.ts +2 -2
  27. package/dist/src/@types/config/schemas.d.ts +4 -26
  28. package/dist/src/@types/config/types.d.ts +1 -7
  29. package/dist/src/composables/useConfig.d.ts +2 -6
  30. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +6 -0
  31. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -1
  32. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -4
  33. package/dist/src/extensions/Blocks/Items/template.d.ts +20 -1
  34. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +71 -0
  35. package/dist/src/extensions/Blocks/common-control.d.ts +13 -8
  36. package/dist/src/stores/config.d.ts +18 -145
  37. package/dist/static/styles/components/narrow-panel.css.js +0 -10
  38. package/dist/stores/config.js +0 -7
  39. package/package.json +3 -3
  40. package/dist/package.json.js +0 -7
@@ -1,17 +1,17 @@
1
- var M = class u {
1
+ var B = class d {
2
2
  /**
3
3
  * Validates that all required methods are properly implemented in the subclass.
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(e, r) {
8
- if (r !== u) {
9
- u.validatedClasses.has(r) || this.validateImplementation(e, r);
10
- const s = u.validationErrors.get(r);
7
+ constructor(t, r) {
8
+ if (r !== d) {
9
+ d.validatedClasses.has(r) || this.validateImplementation(t, r);
10
+ const s = d.validationErrors.get(r);
11
11
  if (s && s.length > 0)
12
12
  throw new Error(
13
13
  `${r.name} has validation errors:
14
- ${s.map((E) => ` - ${E}`).join(`
14
+ ${s.map((o) => ` - ${o}`).join(`
15
15
  `)}`
16
16
  );
17
17
  }
@@ -20,23 +20,23 @@ ${s.map((E) => ` - ${E}`).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(e, r) {
24
- var I;
25
- const s = [], E = r.name, T = Object.getPrototypeOf(this);
26
- e.forEach((l) => {
27
- if (typeof this[l] != "function") {
28
- s.push(`Method ${l}() is not defined`);
23
+ validateImplementation(t, r) {
24
+ var x;
25
+ const s = [], o = r.name, Y = Object.getPrototypeOf(this);
26
+ t.forEach((u) => {
27
+ if (typeof this[u] != "function") {
28
+ s.push(`Method ${u}() is not defined`);
29
29
  return;
30
30
  }
31
- T[l] === r.prototype[l] && s.push(`Method ${l}() must be implemented (currently using base class error-throwing implementation)`);
32
- }), u.validatedClasses.add(r), s.length > 0 ? (u.validationErrors.set(r, s), console.error(`[${E} Validation] ${E} validation failed:`, s)) : typeof process < "u" && ((I = process.env) == null ? void 0 : I.NODE_ENV) === "development" && console.log(`[${E} Validation] ✅ ${E} validated successfully`);
31
+ Y[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" && ((x = process.env) == null ? void 0 : x.NODE_ENV) === "development" && console.log(`[${o} Validation] ✅ ${o} validated successfully`);
33
33
  }
34
34
  };
35
- M.validatedClasses = /* @__PURE__ */ new Set();
36
- M.validationErrors = /* @__PURE__ */ new Map();
37
- var a = M, et = /* @__PURE__ */ ((t) => (t.BLOCK = "BLOCK", t.STRUCTURE = "STRUCTURE", t.CONTAINER = "CONTAINER", t))(et || {}), y = class c extends a {
35
+ B.validatedClasses = /* @__PURE__ */ new Set();
36
+ B.validationErrors = /* @__PURE__ */ new Map();
37
+ var a = B, $ = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.STRUCTURE = "STRUCTURE", e.CONTAINER = "CONTAINER", e))($ || {}), y = class T extends a {
38
38
  constructor() {
39
- super(c.REQUIRED_METHODS, c);
39
+ super(T.REQUIRED_METHODS, T);
40
40
  }
41
41
  /**
42
42
  * Determines if the block should be available for use in the editor.
@@ -86,28 +86,28 @@ var a = M, et = /* @__PURE__ */ ((t) => (t.BLOCK = "BLOCK", t.STRUCTURE = "STRUC
86
86
  * @param node - The immutable HTML node representing the selected block instance.
87
87
  */
88
88
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
89
- onSelect(e) {
89
+ onSelect(t) {
90
90
  }
91
91
  /**
92
92
  * Lifecycle hook called when an instance of this block is copied.
93
93
  * @param modifier - The HTML node modifier to apply changes to the copied block instance.
94
94
  */
95
95
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
96
- onCopy(e) {
96
+ onCopy(t) {
97
97
  }
98
98
  /**
99
99
  * Lifecycle hook called when an instance of this block is deleted.
100
100
  * @param node - The immutable HTML node representing the block instance being deleted.
101
101
  */
102
102
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
103
- onDelete(e) {
103
+ onDelete(t) {
104
104
  }
105
105
  /**
106
106
  * Lifecycle hook called after a new instance of this block is created and added to the document (e.g., via drag-and-drop).
107
107
  * @param node - The immutable HTML node representing the newly created block instance.
108
108
  */
109
109
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
110
- onCreated(e) {
110
+ onCreated(t) {
111
111
  }
112
112
  /**
113
113
  * Lifecycle hook called when any part of the document template has changed.
@@ -115,7 +115,7 @@ var a = M, et = /* @__PURE__ */ ((t) => (t.BLOCK = "BLOCK", t.STRUCTURE = "STRUC
115
115
  * @param node - The immutable HTML node representing current node instance
116
116
  */
117
117
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
118
- onDocumentChanged(e) {
118
+ onDocumentChanged(t) {
119
119
  }
120
120
  /**
121
121
  * @description Determines if block is atomic or composite.
@@ -183,7 +183,7 @@ var a = M, et = /* @__PURE__ */ ((t) => (t.BLOCK = "BLOCK", t.STRUCTURE = "STRUC
183
183
  *
184
184
  * @return {string} The name of the block panel.
185
185
  */
186
- getSettingsPanelName() {
186
+ getSettingsPanelTitleHtml() {
187
187
  return "";
188
188
  }
189
189
  /**
@@ -196,27 +196,27 @@ var a = M, et = /* @__PURE__ */ ((t) => (t.BLOCK = "BLOCK", t.STRUCTURE = "STRUC
196
196
  }
197
197
  };
198
198
  y.REQUIRED_METHODS = ["getId", "getTemplate", "getIcon", "getName", "getDescription"];
199
- var Xt = y, rt = class _ extends a {
199
+ var we = y, W = class O extends a {
200
200
  constructor() {
201
- super(_.REQUIRED_METHODS, _);
201
+ super(O.REQUIRED_METHODS, O);
202
202
  }
203
203
  /**
204
204
  * @deprecated - use {@link getPreviewInnerHtml} instead
205
205
  */
206
206
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
207
- getPreviewHtml(e) {
207
+ getPreviewHtml(t) {
208
208
  }
209
209
  /**
210
210
  * @description returns custom content to be displayed inside the {@link Block} root TD element
211
211
  */
212
- getPreviewInnerHtml(e) {
212
+ getPreviewInnerHtml(t) {
213
213
  throw new Error("Method getPreviewInnerHtml() must be implemented by the subclass");
214
214
  }
215
215
  };
216
- rt.REQUIRED_METHODS = ["getPreviewInnerHtml"];
217
- var nt = class h extends a {
216
+ W.REQUIRED_METHODS = ["getPreviewInnerHtml"];
217
+ var z = class c extends a {
218
218
  constructor() {
219
- super(h.REQUIRED_METHODS, h);
219
+ super(c.REQUIRED_METHODS, c);
220
220
  }
221
221
  getId() {
222
222
  throw new Error("Method getId() must be implemented by the subclass");
@@ -227,93 +227,94 @@ var nt = class h extends a {
227
227
  getLabel() {
228
228
  throw new Error("Method getLabel() must be implemented by the subclass");
229
229
  }
230
- onClick(e) {
230
+ onClick(t) {
231
231
  throw new Error("Method onClick() must be implemented by the subclass");
232
232
  }
233
233
  };
234
- nt.REQUIRED_METHODS = ["getId", "getIcon", "getLabel", "onClick"];
235
- var st = {
234
+ z.REQUIRED_METHODS = ["getId", "getIcon", "getLabel", "onClick"];
235
+ var Z = {
236
236
  src: "src",
237
237
  alt: "alt",
238
238
  href: "href",
239
- width: "width"
240
- }, at = {
239
+ width: "width",
240
+ height: "height"
241
+ }, j = {
241
242
  href: "href"
242
- }, kt = {
243
- BLOCK_IMAGE: st,
244
- BLOCK_BUTTON: at
245
- }, U = "esd-block-button", p = "esd-block-text", K = "esd-block-image", it = "esd-structure", ot = "esd-block-video", Et = "esd-block-social", lt = "esd-block-banner", dt = "esd-block-timer", ut = "esd-block-menu", It = "esd-block-html", Ot = "esd-block-spacer", Tt = "esd-container-frame", ct = "esd-stripe", _t = "esd-amp-form", O = ((t) => (t.BUTTON = `.${U}`, t.TEXT = `.${p}`, t.IMAGE = `.${K}`, t.STRUCTURE = `.${it}`, t.VIDEO = `.${ot}`, t.SOCIAL = `.${Et}`, t.BANNER = `.${lt}`, t.TIMER = `.${dt}`, t.MENU = `.${ut}`, t.HTML = `.${It}`, t.SPACER = `.${Ot}`, t.CONTAINER = `.${Tt}`, t.STRIPE = `.${ct}`, t.FORM = `.${_t}`, t))(O || {}), ht = /* @__PURE__ */ ((t) => (t.BLOCK_IMAGE = "BLOCK_IMAGE", t.BLOCK_TEXT = "BLOCK_TEXT", t.BLOCK_BUTTON = "BLOCK_BUTTON", t.BLOCK_SPACER = "BLOCK_SPACER", t.BLOCK_VIDEO = "BLOCK_VIDEO", t.BLOCK_SOCIAL = "BLOCK_SOCIAL", t.BLOCK_BANNER = "BLOCK_BANNER", t.BLOCK_TIMER = "BLOCK_TIMER", t.BLOCK_MENU = "BLOCK_MENU", t.BLOCK_MENU_ITEM = "BLOCK_MENU_ITEM", t.BLOCK_HTML = "BLOCK_HTML", t.BLOCK_AMP_CAROUSEL = "BLOCK_AMP_CAROUSEL", t.BLOCK_AMP_ACCORDION = "BLOCK_AMP_ACCORDION", t.BLOCK_AMP_FORM = "BLOCK_AMP_FORM", t.CONTAINER = "CONTAINER", t.FORM_CONTAINER = "FORM_CONTAINER", t.STRUCTURE = "STRUCTURE", t.STRIPE = "STRIPE", t.EMPTY_CONTAINER = "EMPTY_CONTAINER", t.CUSTOM_BLOCK_LINK = "CUSTOM_BLOCK_LINK", t.CUSTOM_BLOCK_IMAGE = "CUSTOM_BLOCK_IMAGE", t.CUSTOM_BLOCK_TEXT = "CUSTOM_BLOCK_TEXT", t))(ht || {}), F = /* @__PURE__ */ ((t) => (t.ANCHOR_LINK_CONTAINER = "anchorLinkFormContainer", t.APPLY_CONDITION = "applyCondition", t.APPLY_CONDITION_SWITCHER = "applyConditionSwitcher", t.BACKGROUND_COLOR = "backgroundColor", t.BACKGROUND_IMAGE = "generalImageContainer", t.TEXT_COLOR = "textColor", t.TEXT_STYLE = "textStyle", t.TEXT_SIZE = "textSize", t.TEXT_LINE_SPACING = "textLineSpacing", t.TEXT_ALIGN = "textAlign", t.FIXED_HEIGHT_SWITCHER = "fixedHeightSwitcherForm", t.HIDDEN_NODE = "hiddenNode", t.SMART_BLOCK = "smartBlock", t.SYNCHRONIZED_MODULE = "synchronizedModuleForm", t.FONT_FAMILY = "generalFontFamilyForm", t.BLOCK_INTERNAL_INDENTS = "generalBlockInternalIndents", t.STRUCTURE_INTERNAL_INDENTS = "generalStructureInternalIndents", t))(F || {}), w = /* @__PURE__ */ ((t) => (t.ADJUST_TO_WIDTH = "adjustToWidth", t.ALIGNMENT = "buttonAlignment", t.BORDER = "buttonBorder", t.BORDER_RADIUS = "buttonBorderRadius", t.COLOR = "buttonColor", t.BUTTON_BLOCK_BACKGROUND_COLOR = "buttonBlockBackgroundColor", t.EXTERNAL_INDENTS = "buttonExternalIndents", t.FIXED_HEIGHT = "buttonFixedHeightForm", t.FONT_COLOR = "buttonFontColor", t.FONT_FAMILY = "buttonFontFamily", t.FONT_SIZE = "buttonFontSize", t.ICON = "buttonIconContainer", t.ICON_ALIGN = "buttonIconAlign", t.ICON_INDENT = "buttonIconIndent", t.ICON_WIDTH = "buttonIconWidth", t.IMAGE = "buttonImageForm", t.INTERNAL_INDENTS = "buttonInternalIndents", t.LINK = "buttonLink", t.MIME_TYPE = "buttonMimeTypeForm", t.SWITCHER_HOVERED_STYLES = "buttonSwitcherHoveredStylesForm", t.TEXT = "buttonText", t.TEXT_STYLE_AND_COLOR = "buttonTextStyleAndColorForm", t.HOVERED_BORDER_COLOR = "hoveredStyleBorderButtonForm", t.HOVERED_COLOR = "hoveredButtonColorForm", t.HOVERED_TEXT_COLOR = "hoveredButtonTextColorForm", t))(w || {}), P = /* @__PURE__ */ ((t) => (t.HIDDEN_NODE = "hiddenNodeText", t.PARAGRAPH_STYLE = "paragraphStyleForm", t.ALIGN = "textAlignmentForm", t.ANCHOR_CONTAINER = "textAnchorForm", t.FONT_BACKGROUND_COLOR = "textBlockFontBackgroundColor", t.TEXT_BLOCK_BACKGROUND_COLOR = "textBlockBackgroundColor", t.FONT_COLOR = "textBlockFontColor", t.TEXT_BLOCK_FONT_FAMILY = "textBlockFontFamily", t.FONT_FAMILY = "textFontFamily", t.FONT_SIZE = "textBlockFontSize", t.DIRECTION = "textBlockDirectionForm", t.INSERT_FORM = "textBlockInsertForm", t.LINK_DATA = "textBlockLinkDataForm", t.FORMAT = "textBlockTextFormatForm", t.FIXED_HEIGHT = "textFixedHeightForm", t.INTERNAL_INDENTS = "textInternalIndents", t.LINE_HEIGHT = "textLineHeightForm", t.LINKS_COLOR = "textLinksFontColorForm", t.MIME_TYPE = "textMimeTypeForm", t.NO_LINE_WRAPS = "textNoLineWrapsForm", t))(P || {}), H = /* @__PURE__ */ ((t) => (t.ALT_TEXT = "altText", t.LINK = "blockLink", t.ALIGNMENT = "imageAlignment", t.ANCHOR_LINK_CONTAINER = "imageAnchorLinkContainerForm", t.BORDER_RADIUS = "imageBorderRadiusForm", t.IMAGE = "imageImageForm", t.EXTERNAL_INDENTS = "imageExternalIndents", t.MIME_TYPE = "imageMimeTypeForm", t.RESPONSIVE = "imageResponsive", t.ROLLOVER_IMAGE = "imageRolloverImageForm", t.ROLLOVER_SWITCHER = "imageRolloverSwitcherForm", t.SIZE = "imageSizeContainer", t))(H || {}), Rt = /* @__PURE__ */ ((t) => (t.BACKGROUND_COLOR = "containerBackgroundColorForm", t.BORDER_FORM = "containerBorderForm", t.BORDER_RADIUS = "containerBorderRadiusForm", t.EXTERNAL_INDENTS = "containerExternalIndentsForm", t.IMAGE_CONTAINER = "containerImageContainerForm", t.MIME_TYPE = "containerMimeTypeForm", t.DISPLAY_CONDITIONS = "displayConditions", t.HIDDEN_NODE = "containerHiddenNodeForm", t))(Rt || {}), n = {
246
- BLOCK_BUTTON: w,
247
- BLOCK_TEXT: P,
243
+ }, Pe = {
244
+ BLOCK_IMAGE: Z,
245
+ BLOCK_BUTTON: j
246
+ }, v = "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", ne = "esd-block-menu", ae = "esd-block-html", se = "esd-block-spacer", ie = "esd-container-frame", Ee = "esd-stripe", le = "esd-amp-form", I = ((e) => (e.BUTTON = `.${v}`, e.TEXT = `.${U}`, e.IMAGE = `.${w}`, e.STRUCTURE = `.${q}`, e.VIDEO = `.${J}`, e.SOCIAL = `.${ee}`, e.BANNER = `.${te}`, e.TIMER = `.${re}`, e.MENU = `.${ne}`, e.HTML = `.${ae}`, e.SPACER = `.${se}`, e.CONTAINER = `.${ie}`, e.STRIPE = `.${Ee}`, e.FORM = `.${le}`, e))(I || {}), 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 || {}), P = /* @__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))(P || {}), 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 || {}), 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 = {
247
+ BLOCK_BUTTON: K,
248
+ BLOCK_TEXT: F,
248
249
  BLOCK_IMAGE: H,
249
- GENERAL: F
250
- }, Lt = /* @__PURE__ */ ((t) => (t.SETTINGS = "settings", t.STYLES = "styles", t.DATA = "data", t))(Lt || {}), o = {
250
+ GENERAL: P
251
+ }, ue = /* @__PURE__ */ ((e) => (e.SETTINGS = "settings", e.STYLES = "styles", e.DATA = "data", e))(ue || {}), E = {
251
252
  name: "name",
252
253
  disabled: "disabled"
253
- }, Ct = {
254
- ...o,
254
+ }, Ie = {
255
+ ...E,
255
256
  caption: "caption",
256
257
  icon: "icon"
257
- }, mt = {
258
- ...o,
258
+ }, Te = {
259
+ ...E,
259
260
  caption: "caption"
260
- }, gt = {
261
- ...o,
261
+ }, Oe = {
262
+ ...E,
262
263
  minValue: "min-value",
263
264
  maxValue: "max-value",
264
265
  step: "step"
265
- }, bt = {
266
- ...o,
266
+ }, ce = {
267
+ ...E,
267
268
  text: "text"
268
- }, At = {
269
- ...o
269
+ }, he = {
270
+ ...E
270
271
  }, X = {
271
- ...o,
272
+ ...E,
272
273
  searchable: "searchable",
273
274
  multiSelect: "multi-select",
274
275
  placeholder: "placeholder",
275
276
  items: "items"
276
- }, Nt = {
277
+ }, ge = {
277
278
  ...X
278
- }, Dt = {
279
+ }, be = {
279
280
  text: "text",
280
281
  value: "value"
281
- }, St = {
282
+ }, me = {
282
283
  text: "text",
283
284
  icon: "icon",
284
285
  value: "value"
285
- }, Bt = {
286
- ...o
287
- }, Mt = {
286
+ }, Re = {
287
+ ...E
288
+ }, _e = {
288
289
  controlId: "control-id"
289
- }, xt = {
290
- ...o,
290
+ }, Le = {
291
+ ...E,
291
292
  icon: "icon",
292
293
  position: "position"
293
- }, vt = {
294
- ...o
295
- }, Vt = {
296
- BUTTON: Ct,
297
- CHECKBOX: mt,
298
- COLOR: o,
299
- COUNTER: gt,
300
- LABEL: bt,
301
- RADIO_BUTTONS: At,
294
+ }, Ce = {
295
+ ...E
296
+ }, Ke = {
297
+ BUTTON: Ie,
298
+ CHECKBOX: Te,
299
+ COLOR: E,
300
+ COUNTER: Oe,
301
+ LABEL: ce,
302
+ RADIO_BUTTONS: he,
302
303
  SELECTPICKER: X,
303
- FONT_FAMILY_SELECT: Nt,
304
- SWITCHER: o,
305
- TEXT: Bt,
306
- SELECT_ITEM: Dt,
307
- RADIO_ITEM: St,
308
- NESTED_CONTROL: Mt,
309
- ORDERABLE: xt,
310
- ORDERABLE_ITEM: vt
311
- }, yt = /* @__PURE__ */ ((t) => (t.BUTTON = "UE-BUTTON", t.CHECKBOX = "UE-CHECKBOX", t.CHECK_BUTTONS = "UE-CHECK-BUTTONS", t.COLOR = "UE-COLOR", t.COUNTER = "UE-COUNTER", t.DATEPICKER = "UE-DATEPICKER", t.LABEL = "UE-LABEL", t.MESSAGE = "UE-MESSAGE", t.RADIO_BUTTONS = "UE-RADIO-BUTTONS", t.SELECTPICKER = "UE-SELECT", t.SWITCHER = "UE-SWITCHER", t.TEXT = "UE-TEXT", t.TEXTAREA = "UE-TEXTAREA", t.CHECK_ITEM = "UE-CHECK-ITEM", t.RADIO_ITEM = "UE-RADIO-ITEM", t.SELECT_ITEM = "UE-SELECT-ITEM", t.ICON = "UE-ICON", t.MERGETAGS = "UE-MERGETAGS", t.FONT_FAMILY_SELECT = "UE-FONT-FAMILY-SELECT", t.NESTED_CONTROL = "UE-NESTED-CONTROL", t.EXPANDABLE = "UE-EXPANDABLE", t.EXPANDABLE_HEADER = "UE-EXPANDABLE_HEADER", t.EXPANDABLE_CONTENT = "UE-EXPANDABLE_CONTENT", t.ORDERABLE = "UE-ORDERABLE", t.ORDERABLE_ITEM = "UE-ORDERABLE-ITEM", t.ORDERABLE_ICON = "UE-ORDERABLE-ICON", t))(yt || {}), x = class {
304
+ FONT_FAMILY_SELECT: ge,
305
+ SWITCHER: E,
306
+ TEXT: Re,
307
+ SELECT_ITEM: be,
308
+ RADIO_ITEM: me,
309
+ NESTED_CONTROL: _e,
310
+ ORDERABLE: Le,
311
+ ORDERABLE_ITEM: Ce
312
+ }, Ae = /* @__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))(Ae || {}), M = class {
312
313
  /**
313
314
  * @description returns map of nodes parent control operates on
314
315
  */
315
- getTargetNodes(t) {
316
- return [t];
316
+ getTargetNodes(e) {
317
+ return [e];
317
318
  }
318
319
  /**
319
320
  * @description returns map of labels used by parent control UI
@@ -328,7 +329,7 @@ var st = {
328
329
  /**
329
330
  * @description returns custom modifications to be included in the parent control patch
330
331
  */
331
- getAdditionalModifications(t) {
332
+ getAdditionalModifications(e) {
332
333
  }
333
334
  /**
334
335
  * Determines whether the specified HTML node is visible.
@@ -336,77 +337,77 @@ var st = {
336
337
  * @param _node - The HTML node to evaluate for visibility, provided as an immutable object.
337
338
  * @return A boolean value indicating whether the node is visible. Returns `true` if the node is visible, otherwise `false`.
338
339
  */
339
- isVisible(t) {
340
+ isVisible(e) {
340
341
  return !0;
341
342
  }
342
- }, i = class extends x {
343
- getTargetNodes(t) {
344
- const e = t.querySelectorAll(O.BUTTON), r = t.asElement().hasClass(U) ? [t] : [];
345
- return e.length ? e : r;
343
+ }, i = class extends M {
344
+ getTargetNodes(e) {
345
+ const t = e.querySelectorAll(I.BUTTON), r = e.asElement().hasClass(v) ? [e] : [];
346
+ return t.length ? t : r;
346
347
  }
347
- }, Gt = class extends i {
348
+ }, Fe = class extends i {
348
349
  getParentControlId() {
349
350
  return n.BLOCK_BUTTON.BORDER_RADIUS;
350
351
  }
351
352
  getLabels() {
352
353
  }
353
- }, Qt = class extends i {
354
+ }, He = class extends i {
354
355
  getParentControlId() {
355
356
  return n.BLOCK_BUTTON.ALIGNMENT;
356
357
  }
357
- }, ft = class extends i {
358
+ }, Xe = class extends i {
358
359
  getParentControlId() {
359
360
  return n.GENERAL.BACKGROUND_COLOR;
360
361
  }
361
- }, Yt = class extends i {
362
+ }, ke = class extends i {
362
363
  getParentControlId() {
363
364
  return n.BLOCK_BUTTON.BORDER;
364
365
  }
365
366
  getLabels() {
366
367
  }
367
- }, $t = class extends i {
368
+ }, Ge = class extends i {
368
369
  getParentControlId() {
369
370
  return n.BLOCK_BUTTON.COLOR;
370
371
  }
371
- }, Wt = class extends i {
372
+ }, Ve = class extends i {
372
373
  getParentControlId() {
373
374
  return n.BLOCK_BUTTON.ADJUST_TO_WIDTH;
374
375
  }
375
- }, zt = class extends i {
376
+ }, Qe = class extends i {
376
377
  getParentControlId() {
377
378
  return n.BLOCK_BUTTON.FONT_FAMILY;
378
379
  }
379
- }, Zt = class extends i {
380
+ }, pe = class extends i {
380
381
  getParentControlId() {
381
382
  return n.BLOCK_BUTTON.EXTERNAL_INDENTS;
382
383
  }
383
- }, jt = class extends i {
384
+ }, fe = class extends i {
384
385
  getParentControlId() {
385
386
  return n.BLOCK_BUTTON.INTERNAL_INDENTS;
386
387
  }
387
- }, qt = class extends i {
388
+ }, Ye = class extends i {
388
389
  getParentControlId() {
389
390
  return n.BLOCK_BUTTON.TEXT;
390
391
  }
391
- }, Jt = class extends i {
392
+ }, $e = class extends i {
392
393
  getParentControlId() {
393
394
  return n.BLOCK_BUTTON.FONT_SIZE;
394
395
  }
395
- }, te = class extends i {
396
+ }, We = class extends i {
396
397
  getParentControlId() {
397
398
  return n.BLOCK_BUTTON.TEXT_STYLE_AND_COLOR;
398
399
  }
399
400
  getLabels() {
400
401
  }
401
- }, k = class R extends a {
402
+ }, k = class h extends a {
402
403
  constructor() {
403
- super(R.REQUIRED_METHODS, R);
404
+ super(h.REQUIRED_METHODS, h);
404
405
  }
405
406
  /**
406
407
  * @description Allows to determine if control should be visible or hidden in control panel.
407
408
  * Called on every node modification.
408
409
  */
409
- isVisible(e) {
410
+ isVisible(t) {
410
411
  return !0;
411
412
  }
412
413
  /**
@@ -443,42 +444,112 @@ var st = {
443
444
  * Implement this to react to changes in the block/structure and update the control's UI elements accordingly.
444
445
  * @param node - The updated immutable HTML node representing the control's context.
445
446
  */
446
- onTemplateNodeUpdated(e) {
447
+ onTemplateNodeUpdated(t) {
447
448
  }
448
449
  /**
449
450
  * Lifecycle hook called when any part of the document template has changed.
450
451
  * This can be frequent; use cautiously for performance-sensitive operations.
451
452
  * @param _node - The immutable HTML node representing current node instance
452
453
  */
453
- onDocumentChanged(e) {
454
+ onDocumentChanged(t) {
454
455
  }
455
456
  };
456
457
  k.REQUIRED_METHODS = ["getId", "getTemplate"];
457
- var ee = k, V = class extends x {
458
- getTargetNodes(t) {
459
- const e = t.querySelectorAll(O.IMAGE), r = t.asElement().hasClass(K) ? [t] : [];
460
- return e.length ? e : r;
458
+ var ze = k, Ne = class g extends a {
459
+ constructor() {
460
+ super(g.REQUIRED_METHODS, g);
461
+ }
462
+ /**
463
+ * Gets the unique identifier for this tab.
464
+ * This ID is used for registration.
465
+ * @returns A unique string ID.
466
+ */
467
+ getId() {
468
+ throw new Error("Method getId() must be implemented by the subclass");
469
+ }
470
+ /**
471
+ * Gets the icon key representing this tab in the header.
472
+ * @returns A string representing the icon key from the IconsRegistry
473
+ */
474
+ getIcon() {
475
+ throw new Error("Method getIcon() must be implemented by the subclass");
476
+ }
477
+ /**
478
+ * Retrieves the index of the tab associated with the panel.
479
+ * The index represents the position/order of the tab in the UI.
480
+ *
481
+ * @returns {number} The index of the tab.
482
+ */
483
+ getTabIndex() {
484
+ throw new Error("Method getTabIndex() must be implemented by the subclass");
485
+ }
486
+ /**
487
+ * Gets the display name of the tab shown to the user in the header hint.
488
+ * Use `this.api.translate()` for localization.
489
+ * @returns The localized tab name string.
490
+ */
491
+ getName() {
492
+ throw new Error("Method getName() must be implemented by the subclass");
493
+ }
494
+ /**
495
+ * Determines if the tab should be available for use in the editor.
496
+ * Override to provide custom logic based on the editor state or configuration.
497
+ * @returns True if the tab is enabled, false otherwise. Defaults to true.
498
+ */
499
+ isEnabled() {
500
+ return !0;
501
+ }
502
+ /**
503
+ * Gets the HTML template string that defines the initial template of general tab.
504
+ * @returns An HTML string.
505
+ */
506
+ getTemplate() {
507
+ throw new Error("Method getTemplate() must be implemented by the subclass");
508
+ }
509
+ /**
510
+ * Lifecycle hook called when any part of the document template has changed.
511
+ * This can be frequent; use cautiously for performance-sensitive operations.
512
+ */
513
+ onDocumentChanged() {
514
+ }
515
+ /**
516
+ * Optional hook called when the general panel tab is initially rendered.
517
+ * Use this for setup tasks like attaching event listeners to the panel's template elements.
518
+ */
519
+ onRender() {
520
+ }
521
+ /**
522
+ * Optional cleanup hook called when the general panel tab is being destroyed.
523
+ */
524
+ onDestroy() {
461
525
  }
462
- }, re = class extends V {
526
+ };
527
+ Ne.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
528
+ var G = class extends M {
529
+ getTargetNodes(e) {
530
+ const t = e.querySelectorAll(I.IMAGE), r = e.asElement().hasClass(w) ? [e] : [];
531
+ return t.length ? t : r;
532
+ }
533
+ }, Ze = class extends G {
463
534
  getParentControlId() {
464
535
  return n.BLOCK_IMAGE.EXTERNAL_INDENTS;
465
536
  }
466
- }, ne = class extends V {
537
+ }, je = class extends G {
467
538
  getParentControlId() {
468
539
  return n.BLOCK_IMAGE.SIZE;
469
540
  }
470
- }, G = class L extends a {
541
+ }, V = class b extends a {
471
542
  constructor() {
472
- super(L.REQUIRED_METHODS, L);
543
+ super(b.REQUIRED_METHODS, b);
473
544
  }
474
- registerBlockControls(e) {
545
+ registerBlockControls(t) {
475
546
  throw new Error("Method registerBlockControls() must be implemented by the subclass");
476
547
  }
477
548
  };
478
- G.REQUIRED_METHODS = ["registerBlockControls"];
479
- var se = G, ae = class {
480
- constructor(t, e) {
481
- this.tabId = t, this.controlsIds = e;
549
+ V.REQUIRED_METHODS = ["registerBlockControls"];
550
+ var qe = V, Je = class {
551
+ constructor(e, t) {
552
+ this.tabId = e, this.controlsIds = t;
482
553
  }
483
554
  getTabId() {
484
555
  return this.tabId;
@@ -489,52 +560,52 @@ var se = G, ae = class {
489
560
  getControlsIds() {
490
561
  return this.controlsIds;
491
562
  }
492
- withLabel(t) {
493
- return this.label = t, this;
563
+ withLabel(e) {
564
+ return this.label = e, this;
494
565
  }
495
- addControl(t, e) {
496
- return e < 0 ? this.controlsIds.unshift(t) : e > this.controlsIds.length ? this.controlsIds.push(t) : this.controlsIds.splice(e, 0, t), this;
566
+ addControl(e, t) {
567
+ return t < 0 ? this.controlsIds.unshift(e) : t > this.controlsIds.length ? this.controlsIds.push(e) : this.controlsIds.splice(t, 0, e), this;
497
568
  }
498
- deleteControl(t) {
499
- const e = this.controlsIds.indexOf(t);
500
- e !== -1 && this.controlsIds.splice(e, 1);
569
+ deleteControl(e) {
570
+ const t = this.controlsIds.indexOf(e);
571
+ t !== -1 && this.controlsIds.splice(t, 1);
501
572
  }
502
- }, d = class extends x {
503
- getTargetNodes(t) {
504
- const e = t.querySelectorAll(O.TEXT), r = t.asElement().hasClass(p) ? [t] : [];
505
- return e.length ? e : r;
573
+ }, l = class extends M {
574
+ getTargetNodes(e) {
575
+ const t = e.querySelectorAll(I.TEXT), r = e.asElement().hasClass(U) ? [e] : [];
576
+ return t.length ? t : r;
506
577
  }
507
- }, ie = class extends d {
578
+ }, et = class extends l {
508
579
  getParentControlId() {
509
580
  return n.GENERAL.TEXT_ALIGN;
510
581
  }
511
- }, oe = class extends d {
582
+ }, tt = class extends l {
512
583
  getParentControlId() {
513
584
  return n.BLOCK_TEXT.TEXT_BLOCK_BACKGROUND_COLOR;
514
585
  }
515
- }, Ee = class extends d {
586
+ }, rt = class extends l {
516
587
  getParentControlId() {
517
588
  return n.GENERAL.TEXT_COLOR;
518
589
  }
519
- }, le = class extends d {
590
+ }, nt = class extends l {
520
591
  getParentControlId() {
521
592
  return n.BLOCK_TEXT.FONT_FAMILY;
522
593
  }
523
- }, de = class extends d {
594
+ }, at = class extends l {
524
595
  getParentControlId() {
525
596
  return n.BLOCK_TEXT.INTERNAL_INDENTS;
526
597
  }
527
- }, ue = class extends d {
598
+ }, st = class extends l {
528
599
  getParentControlId() {
529
600
  return n.GENERAL.TEXT_SIZE;
530
601
  }
531
- }, Ie = class extends d {
602
+ }, it = class extends l {
532
603
  getParentControlId() {
533
604
  return n.GENERAL.TEXT_STYLE;
534
605
  }
535
- }, Ut = class {
536
- constructor(t, e, r = [], s, E = [], T, I = [], l = [], v, $, W, z, Z, j, q, J, tt) {
537
- this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.i18n = t, this.styles = e, this.previewStyles = W, this.uiElements = r, this.uiElementTagRegistry = s, this.controls = E, this.settingsPanelRegistry = T, this.contextActions = I, this.blocks = l, this.externalSmartElementsLibrary = v, this.externalImageLibrary = $, this.externalImageLibraryTab = tt, this.externalAiAssistant = z, this.externalDisplayConditionsLibrary = Z, this.externalVideoLibrary = j, this.blocksPanel = q, this.iconsRegistry = J, this.id = Math.random().toString(36).substring(2);
606
+ }, De = class {
607
+ constructor(e) {
608
+ 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);
538
609
  }
539
610
  getI18n() {
540
611
  return this.i18n;
@@ -590,104 +661,111 @@ var se = G, ae = class {
590
661
  getIconsRegistry() {
591
662
  return this.iconsRegistry;
592
663
  }
593
- }, Oe = class {
664
+ getGeneralPanelTabs() {
665
+ return this.generalPanelTabs;
666
+ }
667
+ }, Et = class {
594
668
  constructor() {
595
- this.styles = [], this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [];
669
+ this.styles = [], this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.generalPanelTabs = [];
596
670
  }
597
- withLocalization(t) {
598
- return this.i18n = t, this;
671
+ withLocalization(e) {
672
+ return this.i18n = e, this;
599
673
  }
600
674
  /**
601
675
  * @deprecated Use addStyles() instead. This method will be removed in a future version.
602
676
  */
603
- withStyles(t) {
604
- return this.styles = [t], this;
677
+ withStyles(e) {
678
+ return this.styles = [e], this;
605
679
  }
606
- addStyles(t) {
607
- return this.styles.push(t), this;
680
+ addStyles(e) {
681
+ return this.styles.push(e), this;
608
682
  }
609
683
  /**
610
684
  * @description defines custom developer styles to use inside the editor document preview
611
685
  */
612
- withPreviewStyles(t) {
613
- return this.previewStyles = t, this;
686
+ withPreviewStyles(e) {
687
+ return this.previewStyles = e, this;
688
+ }
689
+ addContextAction(e) {
690
+ return this.contextActions.push(e), this;
614
691
  }
615
- addContextAction(t) {
616
- return this.contextActions.push(t), this;
692
+ addUiElement(e) {
693
+ return this.uiElements.push(e), this;
617
694
  }
618
- addUiElement(t) {
619
- return this.uiElements.push(t), this;
695
+ withUiElementTagRegistry(e) {
696
+ return this.uiElementTagRegistry = e, this;
620
697
  }
621
- withUiElementTagRegistry(t) {
622
- return this.uiElementTagRegistry = t, this;
698
+ addControl(e) {
699
+ return this.controls.push(e), this;
623
700
  }
624
- addControl(t) {
625
- return this.controls.push(t), this;
701
+ withSettingsPanelRegistry(e) {
702
+ return this.settingsPanelRegistry = e, this;
626
703
  }
627
- withSettingsPanelRegistry(t) {
628
- return this.settingsPanelRegistry = t, this;
704
+ withExternalSmartElementsLibrary(e) {
705
+ return this.externalSmartElementsLibrary = e, this;
629
706
  }
630
- withExternalSmartElementsLibrary(t) {
631
- return this.externalSmartElementsLibrary = t, this;
707
+ withExternalImageLibrary(e) {
708
+ return this.externalImageLibrary = e, this;
632
709
  }
633
- withExternalImageLibrary(t) {
634
- return this.externalImageLibrary = t, this;
710
+ withExternalImageLibraryTab(e) {
711
+ return this.externalImageLibraryTab = e, this;
635
712
  }
636
- withExternalImageLibraryTab(t) {
637
- return this.externalImageLibraryTab = t, this;
713
+ withExternalAiAssistant(e) {
714
+ return this.externalAiAssistant = e, this;
638
715
  }
639
- withExternalAiAssistant(t) {
640
- return this.externalAiAssistant = t, this;
716
+ withExternalDisplayCondition(e) {
717
+ return this.externalDisplayConditionsLibrary = e, this;
641
718
  }
642
- withExternalDisplayCondition(t) {
643
- return this.externalDisplayConditionsLibrary = t, this;
719
+ withExternalVideosLibrary(e) {
720
+ return this.externalVideoLibrary = e, this;
644
721
  }
645
- withExternalVideosLibrary(t) {
646
- return this.externalVideoLibrary = t, this;
722
+ withBlocksPanel(e) {
723
+ return this.blocksPanel = e, this;
647
724
  }
648
- withBlocksPanel(t) {
649
- return this.blocksPanel = t, this;
725
+ addBlock(e) {
726
+ return this.blocks.push(e), this;
650
727
  }
651
- addBlock(t) {
652
- return this.blocks.push(t), this;
728
+ withIconsRegistry(e) {
729
+ return this.iconsRegistry = e, this;
653
730
  }
654
- withIconsRegistry(t) {
655
- return this.iconsRegistry = t, this;
731
+ addGeneralPanelTab(e) {
732
+ return this.generalPanelTabs.push(e), this;
656
733
  }
657
734
  build() {
658
- return new Ut(
659
- this.i18n,
660
- (this.styles || []).map((t) => t.trim()).join(`
735
+ return new De({
736
+ i18n: this.i18n,
737
+ styles: this.styles.map((e) => e.trim()).join(`
661
738
  `),
662
- this.uiElements,
663
- this.uiElementTagRegistry,
664
- this.controls,
665
- this.settingsPanelRegistry,
666
- this.contextActions,
667
- this.blocks,
668
- this.externalSmartElementsLibrary,
669
- this.externalImageLibrary,
670
- this.previewStyles,
671
- this.externalAiAssistant,
672
- this.externalDisplayConditionsLibrary,
673
- this.externalVideoLibrary,
674
- this.blocksPanel,
675
- this.iconsRegistry,
676
- this.externalImageLibraryTab
677
- );
678
- }
679
- }, pt = class C extends a {
739
+ uiElements: this.uiElements,
740
+ uiElementTagRegistry: this.uiElementTagRegistry,
741
+ controls: this.controls,
742
+ settingsPanelRegistry: this.settingsPanelRegistry,
743
+ contextActions: this.contextActions,
744
+ blocks: this.blocks,
745
+ externalSmartElementsLibrary: this.externalSmartElementsLibrary,
746
+ externalImageLibrary: this.externalImageLibrary,
747
+ previewStyles: this.previewStyles,
748
+ externalAiAssistant: this.externalAiAssistant,
749
+ externalDisplayConditionsLibrary: this.externalDisplayConditionsLibrary,
750
+ externalVideoLibrary: this.externalVideoLibrary,
751
+ blocksPanel: this.blocksPanel,
752
+ iconsRegistry: this.iconsRegistry,
753
+ externalImageLibraryTab: this.externalImageLibraryTab,
754
+ generalPanelTabs: this.generalPanelTabs
755
+ });
756
+ }
757
+ }, Se = class m extends a {
680
758
  constructor() {
681
- super(C.REQUIRED_METHODS, C);
759
+ super(m.REQUIRED_METHODS, m);
682
760
  }
683
- openAiAssistant({ value: e, onDataSelectCallback: r, onCancelCallback: s, type: E }) {
761
+ openAiAssistant(t) {
684
762
  throw new Error("Method openAiAssistant() must be implemented by the subclass");
685
763
  }
686
764
  };
687
- pt.REQUIRED_METHODS = ["openAiAssistant"];
688
- var Kt = class m extends a {
765
+ Se.REQUIRED_METHODS = ["openAiAssistant"];
766
+ var Be = class R extends a {
689
767
  constructor() {
690
- super(m.REQUIRED_METHODS, m);
768
+ super(R.REQUIRED_METHODS, R);
691
769
  }
692
770
  /**
693
771
  * Retrieves the name of the category.
@@ -700,11 +778,11 @@ var Kt = class m extends a {
700
778
  /**
701
779
  * Opens a popup dialog for creating or updating a display condition.
702
780
  *
703
- * @param {DisplayCondition} currentCondition - The currently selected display condition to edit.
704
- * @param {ExternalDisplayConditionSelectedCB} successCallback - Callback executed with the updated or newly created condition upon success.
705
- * @param {() => void} cancelCallback - Callback executed when the dialog is closed without making changes.
781
+ * @param {DisplayCondition} _currentCondition - The currently selected display condition to edit.
782
+ * @param {ExternalDisplayConditionSelectedCB} _successCallback - Callback executed with the updated or newly created condition upon success.
783
+ * @param {() => void} _cancelCallback - Callback executed when the dialog is closed without making changes.
706
784
  */
707
- openExternalDisplayConditionsDialog(e, r, s) {
785
+ openExternalDisplayConditionsDialog(t, r, s) {
708
786
  throw new Error("Method openExternalDisplayConditionsDialog() must be implemented by the subclass");
709
787
  }
710
788
  /**
@@ -725,19 +803,19 @@ var Kt = class m extends a {
725
803
  throw new Error("Method getContextActionIndex() must be implemented by the subclass");
726
804
  }
727
805
  };
728
- Kt.REQUIRED_METHODS = ["getCategoryName", "openExternalDisplayConditionsDialog"];
729
- var Ft = class g extends a {
806
+ Be.REQUIRED_METHODS = ["getCategoryName", "openExternalDisplayConditionsDialog"];
807
+ var Me = class _ extends a {
730
808
  constructor() {
731
- super(g.REQUIRED_METHODS, g);
809
+ super(_.REQUIRED_METHODS, _);
732
810
  }
733
- openImageLibrary(e, r, s) {
811
+ openImageLibrary(t, r, s) {
734
812
  throw new Error("Method openImageLibrary() must be implemented by the subclass");
735
813
  }
736
814
  };
737
- Ft.REQUIRED_METHODS = ["openImageLibrary"];
738
- var wt = class b extends a {
815
+ Me.REQUIRED_METHODS = ["openImageLibrary"];
816
+ var xe = class L extends a {
739
817
  constructor() {
740
- super(b.REQUIRED_METHODS, b);
818
+ super(L.REQUIRED_METHODS, L);
741
819
  }
742
820
  /**
743
821
  * @description Returns the translated name/label for the tab
@@ -750,45 +828,46 @@ var wt = class b extends a {
750
828
  * @description Opens the external image library tab and provides a container for rendering
751
829
  * @param _container - DOM element container where the external library UI should be rendered
752
830
  * @param _onImageSelectCallback - Callback to invoke when an image is selected
831
+ * @param _selectedNode - (Optional) Selected node for which the gallery is being opened
753
832
  */
754
- openImageLibraryTab(e, r) {
833
+ openImageLibraryTab(t, r, s) {
755
834
  throw new Error("Method openImageLibraryTab() must be implemented by the subclass");
756
835
  }
757
836
  };
758
- wt.REQUIRED_METHODS = ["getName", "openImageLibraryTab"];
759
- var Pt = class A extends a {
837
+ xe.REQUIRED_METHODS = ["getName", "openImageLibraryTab"];
838
+ var ye = class C extends a {
760
839
  constructor() {
761
- super(A.REQUIRED_METHODS, A);
840
+ super(C.REQUIRED_METHODS, C);
762
841
  }
763
- openSmartElementsLibrary(e, r) {
842
+ openSmartElementsLibrary(t, r) {
764
843
  throw new Error("Method openSmartElementsLibrary() must be implemented by the subclass");
765
844
  }
766
845
  };
767
- Pt.REQUIRED_METHODS = ["openSmartElementsLibrary"];
768
- var Ht = class N extends a {
846
+ ye.REQUIRED_METHODS = ["openSmartElementsLibrary"];
847
+ var ve = class A extends a {
769
848
  constructor() {
770
- super(N.REQUIRED_METHODS, N);
849
+ super(A.REQUIRED_METHODS, A);
771
850
  }
772
- openExternalVideosLibraryDialog(e, r, s) {
851
+ openExternalVideosLibraryDialog(t, r, s) {
773
852
  throw new Error("Method openExternalVideosLibraryDialog() must be implemented by the subclass");
774
853
  }
775
854
  };
776
- Ht.REQUIRED_METHODS = ["openExternalVideosLibraryDialog"];
777
- var Q = class D extends a {
855
+ ve.REQUIRED_METHODS = ["openExternalVideosLibraryDialog"];
856
+ var Q = class N extends a {
778
857
  constructor() {
779
- super(D.REQUIRED_METHODS, D);
858
+ super(N.REQUIRED_METHODS, N);
780
859
  }
781
- registerIconsSvg(e) {
860
+ registerIconsSvg(t) {
782
861
  throw new Error("Method registerIconsSvg() must be implemented by the subclass");
783
862
  }
784
863
  };
785
864
  Q.REQUIRED_METHODS = ["registerIconsSvg"];
786
- var Te = Q, ce = class {
787
- constructor(t) {
788
- this.key = t;
865
+ var lt = Q, ot = class {
866
+ constructor(e) {
867
+ this.key = e;
789
868
  }
790
- withParams(t) {
791
- return this.params = t, this;
869
+ withParams(e) {
870
+ return this.params = e, this;
792
871
  }
793
872
  getValue() {
794
873
  return {
@@ -796,15 +875,15 @@ var Te = Q, ce = class {
796
875
  params: this.params
797
876
  };
798
877
  }
799
- }, f = class S extends a {
878
+ }, p = class D extends a {
800
879
  constructor() {
801
- super(S.REQUIRED_METHODS, S);
880
+ super(D.REQUIRED_METHODS, D);
802
881
  }
803
882
  /**
804
883
  * Called when the UI element should render its content into the provided container.
805
884
  * @param container - The HTMLElement where the UI element should be rendered.
806
885
  */
807
- onRender(e) {
886
+ onRender(t) {
808
887
  throw new Error("Method onRender() must be implemented by the subclass");
809
888
  }
810
889
  /**
@@ -825,7 +904,7 @@ var Te = Q, ce = class {
825
904
  * Implement this if the element manages a state or value and needs to be updated externally.
826
905
  * @param value - The new value to set.
827
906
  */
828
- setValue(e) {
907
+ setValue(t) {
829
908
  }
830
909
  /**
831
910
  * @description Optional hook called when one of the element's supported attributes ({@link UEAttr}) gets updated externally.
@@ -833,7 +912,7 @@ var Te = Q, ce = class {
833
912
  * @param name - The name of the attribute that was updated.
834
913
  * @param value - The new value of the attribute.
835
914
  */
836
- onAttributeUpdated(e, r) {
915
+ onAttributeUpdated(t, r) {
837
916
  }
838
917
  /**
839
918
  * Gets the unique identifier for this UI element type.
@@ -851,61 +930,61 @@ var Te = Q, ce = class {
851
930
  throw new Error("Method getTemplate() must be implemented by the subclass");
852
931
  }
853
932
  };
854
- f.REQUIRED_METHODS = ["onRender", "getId", "getTemplate"];
855
- var _e = f, Y = class B extends a {
933
+ p.REQUIRED_METHODS = ["onRender", "getId", "getTemplate"];
934
+ var dt = p, f = class S extends a {
856
935
  constructor() {
857
- super(B.REQUIRED_METHODS, B);
936
+ super(S.REQUIRED_METHODS, S);
858
937
  }
859
- registerUiElements(e) {
938
+ registerUiElements(t) {
860
939
  throw new Error("Method registerUiElements() must be implemented by the subclass");
861
940
  }
862
941
  };
863
- Y.REQUIRED_METHODS = ["registerUiElements"];
864
- var he = Y;
942
+ f.REQUIRED_METHODS = ["registerUiElements"];
943
+ var ut = f;
865
944
  export {
866
- Xt as Block,
867
- kt as BlockAttr,
868
- et as BlockCompositionType,
869
- O as BlockSelector,
870
- ht as BlockType,
871
- x as BuiltInControl,
945
+ we as Block,
946
+ Pe as BlockAttr,
947
+ $ as BlockCompositionType,
948
+ I as BlockSelector,
949
+ oe as BlockType,
950
+ M as BuiltInControl,
872
951
  n as BuiltInControlTypes,
873
- Qt as ButtonAlignBuiltInControl,
874
- ft as ButtonBackgroundColorBuiltInControl,
875
- Yt as ButtonBorderBuiltInControl,
876
- Gt as ButtonBorderRadiusBuiltInControl,
877
- $t as ButtonColorBuiltInControl,
878
- w as ButtonControls,
879
- Wt as ButtonFitToContainerBuiltInControl,
880
- zt as ButtonFontFamilyBuiltInControl,
881
- Zt as ButtonMarginsBuiltInControl,
882
- jt as ButtonPaddingsBuiltInControl,
883
- qt as ButtonTextBuiltInControl,
884
- Jt as ButtonTextSizeBuiltInControl,
885
- te as ButtonTextStyleAndFontColorBuiltInControl,
886
- Rt as ContainerControls,
887
- ee as Control,
888
- Ut as Extension,
889
- Oe as ExtensionBuilder,
890
- F as GeneralControls,
891
- Te as IconsRegistry,
952
+ He as ButtonAlignBuiltInControl,
953
+ Xe as ButtonBackgroundColorBuiltInControl,
954
+ ke as ButtonBorderBuiltInControl,
955
+ Fe as ButtonBorderRadiusBuiltInControl,
956
+ Ge as ButtonColorBuiltInControl,
957
+ K as ButtonControls,
958
+ Ve as ButtonFitToContainerBuiltInControl,
959
+ Qe as ButtonFontFamilyBuiltInControl,
960
+ pe as ButtonMarginsBuiltInControl,
961
+ fe as ButtonPaddingsBuiltInControl,
962
+ Ye as ButtonTextBuiltInControl,
963
+ $e as ButtonTextSizeBuiltInControl,
964
+ We as ButtonTextStyleAndFontColorBuiltInControl,
965
+ de as ContainerControls,
966
+ ze as Control,
967
+ De as Extension,
968
+ Et as ExtensionBuilder,
969
+ P as GeneralControls,
970
+ lt as IconsRegistry,
892
971
  H as ImageControls,
893
- re as ImageMarginsBuiltInControl,
894
- ne as ImageSizeBuiltInControl,
895
- ce as ModificationDescription,
896
- se as SettingsPanelRegistry,
897
- ae as SettingsPanelTab,
898
- Lt as SettingsTab,
899
- ie as TextAlignBuiltInControl,
900
- oe as TextBlockBackgroundBuiltInControl,
901
- Ee as TextColorBuiltInControl,
902
- P as TextControls,
903
- le as TextFontFamilyBuiltInControl,
904
- de as TextPaddingsBuiltInControl,
905
- ue as TextSizeBuiltInControl,
906
- Ie as TextStyleBuiltInControl,
907
- Vt as UEAttr,
908
- _e as UIElement,
909
- he as UIElementTagRegistry,
910
- yt as UIElementType
972
+ Ze as ImageMarginsBuiltInControl,
973
+ je as ImageSizeBuiltInControl,
974
+ ot as ModificationDescription,
975
+ qe as SettingsPanelRegistry,
976
+ Je as SettingsPanelTab,
977
+ ue as SettingsTab,
978
+ et as TextAlignBuiltInControl,
979
+ tt as TextBlockBackgroundBuiltInControl,
980
+ rt as TextColorBuiltInControl,
981
+ F as TextControls,
982
+ nt as TextFontFamilyBuiltInControl,
983
+ at as TextPaddingsBuiltInControl,
984
+ st as TextSizeBuiltInControl,
985
+ it as TextStyleBuiltInControl,
986
+ Ke as UEAttr,
987
+ dt as UIElement,
988
+ ut as UIElementTagRegistry,
989
+ Ae as UIElementType
911
990
  };