@useinsider/guido 2.0.0-beta.d170da6 → 2.0.0-beta.dbde199

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 (32) hide show
  1. package/README.md +2 -0
  2. package/dist/@types/config/schemas.js +3 -1
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +15 -17
  5. package/dist/composables/useStripo.js +40 -40
  6. package/dist/extensions/Blocks/Items/controls/cardComposition.js +13 -4
  7. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +12 -6
  8. package/dist/extensions/Blocks/Recommendation/constants.js +8 -7
  9. package/dist/extensions/Blocks/Recommendation/control.js +19 -4
  10. package/dist/extensions/Blocks/Recommendation/controls/index.js +123 -96
  11. package/dist/extensions/Blocks/Recommendation/controls/priceHideControl.js +60 -0
  12. package/dist/extensions/Blocks/Recommendation/controls/priceInlineLayoutControl.js +160 -0
  13. package/dist/extensions/Blocks/Recommendation/extension.js +17 -15
  14. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +41 -33
  15. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +15 -12
  16. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +8 -8
  17. package/dist/extensions/Blocks/controlFactories.js +70 -70
  18. package/dist/guido.css +1 -1
  19. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +364 -286
  20. package/dist/package.json.js +1 -1
  21. package/dist/services/stripoApi.js +6 -10
  22. package/dist/src/@types/config/schemas.d.ts +4 -0
  23. package/dist/src/composables/useConfig.d.ts +2 -0
  24. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +4 -0
  25. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +9 -1
  26. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +62 -0
  27. package/dist/src/extensions/Blocks/Recommendation/controls/priceHideControl.d.ts +16 -0
  28. package/dist/src/extensions/Blocks/Recommendation/controls/priceInlineLayoutControl.d.ts +50 -0
  29. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +1 -1
  30. package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +1 -1
  31. package/dist/src/stores/config.d.ts +17 -0
  32. package/package.json +3 -3
@@ -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 c extends a {
200
200
  constructor() {
201
- super(_.REQUIRED_METHODS, _);
201
+ super(c.REQUIRED_METHODS, c);
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 O extends a {
218
218
  constructor() {
219
- super(h.REQUIRED_METHODS, h);
219
+ super(O.REQUIRED_METHODS, O);
220
220
  }
221
221
  getId() {
222
222
  throw new Error("Method getId() must be implemented by the subclass");
@@ -227,93 +227,93 @@ 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
239
  width: "width"
240
- }, at = {
240
+ }, j = {
241
241
  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,
242
+ }, Pe = {
243
+ BLOCK_IMAGE: Z,
244
+ BLOCK_BUTTON: j
245
+ }, 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 = {
246
+ BLOCK_BUTTON: K,
247
+ BLOCK_TEXT: F,
248
248
  BLOCK_IMAGE: H,
249
- GENERAL: F
250
- }, Lt = /* @__PURE__ */ ((t) => (t.SETTINGS = "settings", t.STYLES = "styles", t.DATA = "data", t))(Lt || {}), o = {
249
+ GENERAL: P
250
+ }, ue = /* @__PURE__ */ ((e) => (e.SETTINGS = "settings", e.STYLES = "styles", e.DATA = "data", e))(ue || {}), E = {
251
251
  name: "name",
252
252
  disabled: "disabled"
253
- }, Ct = {
254
- ...o,
253
+ }, Ie = {
254
+ ...E,
255
255
  caption: "caption",
256
256
  icon: "icon"
257
- }, mt = {
258
- ...o,
257
+ }, Te = {
258
+ ...E,
259
259
  caption: "caption"
260
- }, gt = {
261
- ...o,
260
+ }, ce = {
261
+ ...E,
262
262
  minValue: "min-value",
263
263
  maxValue: "max-value",
264
264
  step: "step"
265
- }, bt = {
266
- ...o,
265
+ }, Oe = {
266
+ ...E,
267
267
  text: "text"
268
- }, Nt = {
269
- ...o
268
+ }, he = {
269
+ ...E
270
270
  }, X = {
271
- ...o,
271
+ ...E,
272
272
  searchable: "searchable",
273
273
  multiSelect: "multi-select",
274
274
  placeholder: "placeholder",
275
275
  items: "items"
276
- }, At = {
276
+ }, ge = {
277
277
  ...X
278
- }, Dt = {
278
+ }, be = {
279
279
  text: "text",
280
280
  value: "value"
281
- }, St = {
281
+ }, me = {
282
282
  text: "text",
283
283
  icon: "icon",
284
284
  value: "value"
285
- }, Bt = {
286
- ...o
287
- }, Mt = {
285
+ }, Re = {
286
+ ...E
287
+ }, _e = {
288
288
  controlId: "control-id"
289
- }, xt = {
290
- ...o,
289
+ }, Le = {
290
+ ...E,
291
291
  icon: "icon",
292
292
  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: Nt,
293
+ }, Ce = {
294
+ ...E
295
+ }, Ke = {
296
+ BUTTON: Ie,
297
+ CHECKBOX: Te,
298
+ COLOR: E,
299
+ COUNTER: ce,
300
+ LABEL: Oe,
301
+ RADIO_BUTTONS: he,
302
302
  SELECTPICKER: X,
303
- FONT_FAMILY_SELECT: At,
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 {
303
+ FONT_FAMILY_SELECT: ge,
304
+ SWITCHER: E,
305
+ TEXT: Re,
306
+ SELECT_ITEM: be,
307
+ RADIO_ITEM: me,
308
+ NESTED_CONTROL: _e,
309
+ ORDERABLE: Le,
310
+ ORDERABLE_ITEM: Ce
311
+ }, 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
312
  /**
313
313
  * @description returns map of nodes parent control operates on
314
314
  */
315
- getTargetNodes(t) {
316
- return [t];
315
+ getTargetNodes(e) {
316
+ return [e];
317
317
  }
318
318
  /**
319
319
  * @description returns map of labels used by parent control UI
@@ -328,7 +328,7 @@ var st = {
328
328
  /**
329
329
  * @description returns custom modifications to be included in the parent control patch
330
330
  */
331
- getAdditionalModifications(t) {
331
+ getAdditionalModifications(e) {
332
332
  }
333
333
  /**
334
334
  * Determines whether the specified HTML node is visible.
@@ -336,77 +336,77 @@ var st = {
336
336
  * @param _node - The HTML node to evaluate for visibility, provided as an immutable object.
337
337
  * @return A boolean value indicating whether the node is visible. Returns `true` if the node is visible, otherwise `false`.
338
338
  */
339
- isVisible(t) {
339
+ isVisible(e) {
340
340
  return !0;
341
341
  }
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;
342
+ }, i = class extends M {
343
+ getTargetNodes(e) {
344
+ const t = e.querySelectorAll(I.BUTTON), r = e.asElement().hasClass(v) ? [e] : [];
345
+ return t.length ? t : r;
346
346
  }
347
- }, Gt = class extends i {
347
+ }, Fe = class extends i {
348
348
  getParentControlId() {
349
349
  return n.BLOCK_BUTTON.BORDER_RADIUS;
350
350
  }
351
351
  getLabels() {
352
352
  }
353
- }, Qt = class extends i {
353
+ }, He = class extends i {
354
354
  getParentControlId() {
355
355
  return n.BLOCK_BUTTON.ALIGNMENT;
356
356
  }
357
- }, ft = class extends i {
357
+ }, Xe = class extends i {
358
358
  getParentControlId() {
359
359
  return n.GENERAL.BACKGROUND_COLOR;
360
360
  }
361
- }, Yt = class extends i {
361
+ }, ke = class extends i {
362
362
  getParentControlId() {
363
363
  return n.BLOCK_BUTTON.BORDER;
364
364
  }
365
365
  getLabels() {
366
366
  }
367
- }, $t = class extends i {
367
+ }, Ge = class extends i {
368
368
  getParentControlId() {
369
369
  return n.BLOCK_BUTTON.COLOR;
370
370
  }
371
- }, Wt = class extends i {
371
+ }, Ve = class extends i {
372
372
  getParentControlId() {
373
373
  return n.BLOCK_BUTTON.ADJUST_TO_WIDTH;
374
374
  }
375
- }, zt = class extends i {
375
+ }, pe = class extends i {
376
376
  getParentControlId() {
377
377
  return n.BLOCK_BUTTON.FONT_FAMILY;
378
378
  }
379
- }, Zt = class extends i {
379
+ }, Qe = class extends i {
380
380
  getParentControlId() {
381
381
  return n.BLOCK_BUTTON.EXTERNAL_INDENTS;
382
382
  }
383
- }, jt = class extends i {
383
+ }, fe = class extends i {
384
384
  getParentControlId() {
385
385
  return n.BLOCK_BUTTON.INTERNAL_INDENTS;
386
386
  }
387
- }, qt = class extends i {
387
+ }, Ye = class extends i {
388
388
  getParentControlId() {
389
389
  return n.BLOCK_BUTTON.TEXT;
390
390
  }
391
- }, Jt = class extends i {
391
+ }, $e = class extends i {
392
392
  getParentControlId() {
393
393
  return n.BLOCK_BUTTON.FONT_SIZE;
394
394
  }
395
- }, te = class extends i {
395
+ }, We = class extends i {
396
396
  getParentControlId() {
397
397
  return n.BLOCK_BUTTON.TEXT_STYLE_AND_COLOR;
398
398
  }
399
399
  getLabels() {
400
400
  }
401
- }, k = class R extends a {
401
+ }, k = class h extends a {
402
402
  constructor() {
403
- super(R.REQUIRED_METHODS, R);
403
+ super(h.REQUIRED_METHODS, h);
404
404
  }
405
405
  /**
406
406
  * @description Allows to determine if control should be visible or hidden in control panel.
407
407
  * Called on every node modification.
408
408
  */
409
- isVisible(e) {
409
+ isVisible(t) {
410
410
  return !0;
411
411
  }
412
412
  /**
@@ -443,42 +443,112 @@ var st = {
443
443
  * Implement this to react to changes in the block/structure and update the control's UI elements accordingly.
444
444
  * @param node - The updated immutable HTML node representing the control's context.
445
445
  */
446
- onTemplateNodeUpdated(e) {
446
+ onTemplateNodeUpdated(t) {
447
447
  }
448
448
  /**
449
449
  * Lifecycle hook called when any part of the document template has changed.
450
450
  * This can be frequent; use cautiously for performance-sensitive operations.
451
451
  * @param _node - The immutable HTML node representing current node instance
452
452
  */
453
- onDocumentChanged(e) {
453
+ onDocumentChanged(t) {
454
454
  }
455
455
  };
456
456
  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;
457
+ var ze = k, Ne = class g extends a {
458
+ constructor() {
459
+ super(g.REQUIRED_METHODS, g);
460
+ }
461
+ /**
462
+ * Gets the unique identifier for this tab.
463
+ * This ID is used for registration.
464
+ * @returns A unique string ID.
465
+ */
466
+ getId() {
467
+ throw new Error("Method getId() must be implemented by the subclass");
468
+ }
469
+ /**
470
+ * Gets the icon key representing this tab in the header.
471
+ * @returns A string representing the icon key from the IconsRegistry
472
+ */
473
+ getIcon() {
474
+ throw new Error("Method getIcon() must be implemented by the subclass");
475
+ }
476
+ /**
477
+ * Retrieves the index of the tab associated with the panel.
478
+ * The index represents the position/order of the tab in the UI.
479
+ *
480
+ * @returns {number} The index of the tab.
481
+ */
482
+ getTabIndex() {
483
+ throw new Error("Method getTabIndex() must be implemented by the subclass");
484
+ }
485
+ /**
486
+ * Gets the display name of the tab shown to the user in the header hint.
487
+ * Use `this.api.translate()` for localization.
488
+ * @returns The localized tab name string.
489
+ */
490
+ getName() {
491
+ throw new Error("Method getName() must be implemented by the subclass");
492
+ }
493
+ /**
494
+ * Determines if the tab should be available for use in the editor.
495
+ * Override to provide custom logic based on the editor state or configuration.
496
+ * @returns True if the tab is enabled, false otherwise. Defaults to true.
497
+ */
498
+ isEnabled() {
499
+ return !0;
500
+ }
501
+ /**
502
+ * Gets the HTML template string that defines the initial template of general tab.
503
+ * @returns An HTML string.
504
+ */
505
+ getTemplate() {
506
+ throw new Error("Method getTemplate() must be implemented by the subclass");
507
+ }
508
+ /**
509
+ * Lifecycle hook called when any part of the document template has changed.
510
+ * This can be frequent; use cautiously for performance-sensitive operations.
511
+ */
512
+ onDocumentChanged() {
513
+ }
514
+ /**
515
+ * Optional hook called when the general panel tab is initially rendered.
516
+ * Use this for setup tasks like attaching event listeners to the panel's template elements.
517
+ */
518
+ onRender() {
519
+ }
520
+ /**
521
+ * Optional cleanup hook called when the general panel tab is being destroyed.
522
+ */
523
+ onDestroy() {
524
+ }
525
+ };
526
+ Ne.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
527
+ var G = class extends M {
528
+ getTargetNodes(e) {
529
+ const t = e.querySelectorAll(I.IMAGE), r = e.asElement().hasClass(w) ? [e] : [];
530
+ return t.length ? t : r;
461
531
  }
462
- }, re = class extends V {
532
+ }, Ze = class extends G {
463
533
  getParentControlId() {
464
534
  return n.BLOCK_IMAGE.EXTERNAL_INDENTS;
465
535
  }
466
- }, ne = class extends V {
536
+ }, je = class extends G {
467
537
  getParentControlId() {
468
538
  return n.BLOCK_IMAGE.SIZE;
469
539
  }
470
- }, G = class L extends a {
540
+ }, V = class b extends a {
471
541
  constructor() {
472
- super(L.REQUIRED_METHODS, L);
542
+ super(b.REQUIRED_METHODS, b);
473
543
  }
474
- registerBlockControls(e) {
544
+ registerBlockControls(t) {
475
545
  throw new Error("Method registerBlockControls() must be implemented by the subclass");
476
546
  }
477
547
  };
478
- G.REQUIRED_METHODS = ["registerBlockControls"];
479
- var se = G, ae = class {
480
- constructor(t, e) {
481
- this.tabId = t, this.controlsIds = e;
548
+ V.REQUIRED_METHODS = ["registerBlockControls"];
549
+ var qe = V, Je = class {
550
+ constructor(e, t) {
551
+ this.tabId = e, this.controlsIds = t;
482
552
  }
483
553
  getTabId() {
484
554
  return this.tabId;
@@ -489,52 +559,52 @@ var se = G, ae = class {
489
559
  getControlsIds() {
490
560
  return this.controlsIds;
491
561
  }
492
- withLabel(t) {
493
- return this.label = t, this;
562
+ withLabel(e) {
563
+ return this.label = e, this;
494
564
  }
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;
565
+ addControl(e, t) {
566
+ return t < 0 ? this.controlsIds.unshift(e) : t > this.controlsIds.length ? this.controlsIds.push(e) : this.controlsIds.splice(t, 0, e), this;
497
567
  }
498
- deleteControl(t) {
499
- const e = this.controlsIds.indexOf(t);
500
- e !== -1 && this.controlsIds.splice(e, 1);
568
+ deleteControl(e) {
569
+ const t = this.controlsIds.indexOf(e);
570
+ t !== -1 && this.controlsIds.splice(t, 1);
501
571
  }
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;
572
+ }, l = class extends M {
573
+ getTargetNodes(e) {
574
+ const t = e.querySelectorAll(I.TEXT), r = e.asElement().hasClass(U) ? [e] : [];
575
+ return t.length ? t : r;
506
576
  }
507
- }, ie = class extends d {
577
+ }, et = class extends l {
508
578
  getParentControlId() {
509
579
  return n.GENERAL.TEXT_ALIGN;
510
580
  }
511
- }, oe = class extends d {
581
+ }, tt = class extends l {
512
582
  getParentControlId() {
513
583
  return n.GENERAL.TEXT_COLOR;
514
584
  }
515
- }, Ee = class extends d {
585
+ }, rt = class extends l {
516
586
  getParentControlId() {
517
587
  return n.BLOCK_TEXT.FONT_FAMILY;
518
588
  }
519
- }, le = class extends d {
589
+ }, nt = class extends l {
520
590
  getParentControlId() {
521
591
  return n.GENERAL.TEXT_LINE_SPACING;
522
592
  }
523
- }, de = class extends d {
593
+ }, at = class extends l {
524
594
  getParentControlId() {
525
595
  return n.BLOCK_TEXT.INTERNAL_INDENTS;
526
596
  }
527
- }, ue = class extends d {
597
+ }, st = class extends l {
528
598
  getParentControlId() {
529
599
  return n.GENERAL.TEXT_SIZE;
530
600
  }
531
- }, Ie = class extends d {
601
+ }, it = class extends l {
532
602
  getParentControlId() {
533
603
  return n.GENERAL.TEXT_STYLE;
534
604
  }
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);
605
+ }, De = class {
606
+ constructor(e) {
607
+ 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
608
  }
539
609
  getI18n() {
540
610
  return this.i18n;
@@ -590,104 +660,111 @@ var se = G, ae = class {
590
660
  getIconsRegistry() {
591
661
  return this.iconsRegistry;
592
662
  }
593
- }, Oe = class {
663
+ getGeneralPanelTabs() {
664
+ return this.generalPanelTabs;
665
+ }
666
+ }, Et = class {
594
667
  constructor() {
595
- this.styles = [], this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [];
668
+ this.styles = [], this.uiElements = [], this.controls = [], this.contextActions = [], this.blocks = [], this.generalPanelTabs = [];
596
669
  }
597
- withLocalization(t) {
598
- return this.i18n = t, this;
670
+ withLocalization(e) {
671
+ return this.i18n = e, this;
599
672
  }
600
673
  /**
601
674
  * @deprecated Use addStyles() instead. This method will be removed in a future version.
602
675
  */
603
- withStyles(t) {
604
- return this.styles = [t], this;
676
+ withStyles(e) {
677
+ return this.styles = [e], this;
605
678
  }
606
- addStyles(t) {
607
- return this.styles.push(t), this;
679
+ addStyles(e) {
680
+ return this.styles.push(e), this;
608
681
  }
609
682
  /**
610
683
  * @description defines custom developer styles to use inside the editor document preview
611
684
  */
612
- withPreviewStyles(t) {
613
- return this.previewStyles = t, this;
685
+ withPreviewStyles(e) {
686
+ return this.previewStyles = e, this;
614
687
  }
615
- addContextAction(t) {
616
- return this.contextActions.push(t), this;
688
+ addContextAction(e) {
689
+ return this.contextActions.push(e), this;
617
690
  }
618
- addUiElement(t) {
619
- return this.uiElements.push(t), this;
691
+ addUiElement(e) {
692
+ return this.uiElements.push(e), this;
620
693
  }
621
- withUiElementTagRegistry(t) {
622
- return this.uiElementTagRegistry = t, this;
694
+ withUiElementTagRegistry(e) {
695
+ return this.uiElementTagRegistry = e, this;
623
696
  }
624
- addControl(t) {
625
- return this.controls.push(t), this;
697
+ addControl(e) {
698
+ return this.controls.push(e), this;
626
699
  }
627
- withSettingsPanelRegistry(t) {
628
- return this.settingsPanelRegistry = t, this;
700
+ withSettingsPanelRegistry(e) {
701
+ return this.settingsPanelRegistry = e, this;
629
702
  }
630
- withExternalSmartElementsLibrary(t) {
631
- return this.externalSmartElementsLibrary = t, this;
703
+ withExternalSmartElementsLibrary(e) {
704
+ return this.externalSmartElementsLibrary = e, this;
632
705
  }
633
- withExternalImageLibrary(t) {
634
- return this.externalImageLibrary = t, this;
706
+ withExternalImageLibrary(e) {
707
+ return this.externalImageLibrary = e, this;
635
708
  }
636
- withExternalImageLibraryTab(t) {
637
- return this.externalImageLibraryTab = t, this;
709
+ withExternalImageLibraryTab(e) {
710
+ return this.externalImageLibraryTab = e, this;
638
711
  }
639
- withExternalAiAssistant(t) {
640
- return this.externalAiAssistant = t, this;
712
+ withExternalAiAssistant(e) {
713
+ return this.externalAiAssistant = e, this;
641
714
  }
642
- withExternalDisplayCondition(t) {
643
- return this.externalDisplayConditionsLibrary = t, this;
715
+ withExternalDisplayCondition(e) {
716
+ return this.externalDisplayConditionsLibrary = e, this;
644
717
  }
645
- withExternalVideosLibrary(t) {
646
- return this.externalVideoLibrary = t, this;
718
+ withExternalVideosLibrary(e) {
719
+ return this.externalVideoLibrary = e, this;
647
720
  }
648
- withBlocksPanel(t) {
649
- return this.blocksPanel = t, this;
721
+ withBlocksPanel(e) {
722
+ return this.blocksPanel = e, this;
650
723
  }
651
- addBlock(t) {
652
- return this.blocks.push(t), this;
724
+ addBlock(e) {
725
+ return this.blocks.push(e), this;
653
726
  }
654
- withIconsRegistry(t) {
655
- return this.iconsRegistry = t, this;
727
+ withIconsRegistry(e) {
728
+ return this.iconsRegistry = e, this;
729
+ }
730
+ addGeneralPanelTab(e) {
731
+ return this.generalPanelTabs.push(e), this;
656
732
  }
657
733
  build() {
658
- return new Ut(
659
- this.i18n,
660
- (this.styles || []).map((t) => t.trim()).join(`
734
+ return new De({
735
+ i18n: this.i18n,
736
+ styles: this.styles.map((e) => e.trim()).join(`
661
737
  `),
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 {
738
+ uiElements: this.uiElements,
739
+ uiElementTagRegistry: this.uiElementTagRegistry,
740
+ controls: this.controls,
741
+ settingsPanelRegistry: this.settingsPanelRegistry,
742
+ contextActions: this.contextActions,
743
+ blocks: this.blocks,
744
+ externalSmartElementsLibrary: this.externalSmartElementsLibrary,
745
+ externalImageLibrary: this.externalImageLibrary,
746
+ previewStyles: this.previewStyles,
747
+ externalAiAssistant: this.externalAiAssistant,
748
+ externalDisplayConditionsLibrary: this.externalDisplayConditionsLibrary,
749
+ externalVideoLibrary: this.externalVideoLibrary,
750
+ blocksPanel: this.blocksPanel,
751
+ iconsRegistry: this.iconsRegistry,
752
+ externalImageLibraryTab: this.externalImageLibraryTab,
753
+ generalPanelTabs: this.generalPanelTabs
754
+ });
755
+ }
756
+ }, Se = class m extends a {
680
757
  constructor() {
681
- super(C.REQUIRED_METHODS, C);
758
+ super(m.REQUIRED_METHODS, m);
682
759
  }
683
- openAiAssistant({ value: e, onDataSelectCallback: r, onCancelCallback: s, type: E }) {
760
+ openAiAssistant(t) {
684
761
  throw new Error("Method openAiAssistant() must be implemented by the subclass");
685
762
  }
686
763
  };
687
- pt.REQUIRED_METHODS = ["openAiAssistant"];
688
- var Kt = class m extends a {
764
+ Se.REQUIRED_METHODS = ["openAiAssistant"];
765
+ var Be = class R extends a {
689
766
  constructor() {
690
- super(m.REQUIRED_METHODS, m);
767
+ super(R.REQUIRED_METHODS, R);
691
768
  }
692
769
  /**
693
770
  * Retrieves the name of the category.
@@ -700,11 +777,11 @@ var Kt = class m extends a {
700
777
  /**
701
778
  * Opens a popup dialog for creating or updating a display condition.
702
779
  *
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.
780
+ * @param {DisplayCondition} _currentCondition - The currently selected display condition to edit.
781
+ * @param {ExternalDisplayConditionSelectedCB} _successCallback - Callback executed with the updated or newly created condition upon success.
782
+ * @param {() => void} _cancelCallback - Callback executed when the dialog is closed without making changes.
706
783
  */
707
- openExternalDisplayConditionsDialog(e, r, s) {
784
+ openExternalDisplayConditionsDialog(t, r, s) {
708
785
  throw new Error("Method openExternalDisplayConditionsDialog() must be implemented by the subclass");
709
786
  }
710
787
  /**
@@ -725,19 +802,19 @@ var Kt = class m extends a {
725
802
  throw new Error("Method getContextActionIndex() must be implemented by the subclass");
726
803
  }
727
804
  };
728
- Kt.REQUIRED_METHODS = ["getCategoryName", "openExternalDisplayConditionsDialog"];
729
- var Ft = class g extends a {
805
+ Be.REQUIRED_METHODS = ["getCategoryName", "openExternalDisplayConditionsDialog"];
806
+ var Me = class _ extends a {
730
807
  constructor() {
731
- super(g.REQUIRED_METHODS, g);
808
+ super(_.REQUIRED_METHODS, _);
732
809
  }
733
- openImageLibrary(e, r, s) {
810
+ openImageLibrary(t, r, s) {
734
811
  throw new Error("Method openImageLibrary() must be implemented by the subclass");
735
812
  }
736
813
  };
737
- Ft.REQUIRED_METHODS = ["openImageLibrary"];
738
- var wt = class b extends a {
814
+ Me.REQUIRED_METHODS = ["openImageLibrary"];
815
+ var xe = class L extends a {
739
816
  constructor() {
740
- super(b.REQUIRED_METHODS, b);
817
+ super(L.REQUIRED_METHODS, L);
741
818
  }
742
819
  /**
743
820
  * @description Returns the translated name/label for the tab
@@ -750,45 +827,46 @@ var wt = class b extends a {
750
827
  * @description Opens the external image library tab and provides a container for rendering
751
828
  * @param _container - DOM element container where the external library UI should be rendered
752
829
  * @param _onImageSelectCallback - Callback to invoke when an image is selected
830
+ * @param _selectedNode - (Optional) Selected node for which the gallery is being opened
753
831
  */
754
- openImageLibraryTab(e, r) {
832
+ openImageLibraryTab(t, r, s) {
755
833
  throw new Error("Method openImageLibraryTab() must be implemented by the subclass");
756
834
  }
757
835
  };
758
- wt.REQUIRED_METHODS = ["getName", "openImageLibraryTab"];
759
- var Pt = class N extends a {
836
+ xe.REQUIRED_METHODS = ["getName", "openImageLibraryTab"];
837
+ var ye = class C extends a {
760
838
  constructor() {
761
- super(N.REQUIRED_METHODS, N);
839
+ super(C.REQUIRED_METHODS, C);
762
840
  }
763
- openSmartElementsLibrary(e, r) {
841
+ openSmartElementsLibrary(t, r) {
764
842
  throw new Error("Method openSmartElementsLibrary() must be implemented by the subclass");
765
843
  }
766
844
  };
767
- Pt.REQUIRED_METHODS = ["openSmartElementsLibrary"];
768
- var Ht = class A extends a {
845
+ ye.REQUIRED_METHODS = ["openSmartElementsLibrary"];
846
+ var ve = class A extends a {
769
847
  constructor() {
770
848
  super(A.REQUIRED_METHODS, A);
771
849
  }
772
- openExternalVideosLibraryDialog(e, r, s) {
850
+ openExternalVideosLibraryDialog(t, r, s) {
773
851
  throw new Error("Method openExternalVideosLibraryDialog() must be implemented by the subclass");
774
852
  }
775
853
  };
776
- Ht.REQUIRED_METHODS = ["openExternalVideosLibraryDialog"];
777
- var Q = class D extends a {
854
+ ve.REQUIRED_METHODS = ["openExternalVideosLibraryDialog"];
855
+ var p = class N extends a {
778
856
  constructor() {
779
- super(D.REQUIRED_METHODS, D);
857
+ super(N.REQUIRED_METHODS, N);
780
858
  }
781
- registerIconsSvg(e) {
859
+ registerIconsSvg(t) {
782
860
  throw new Error("Method registerIconsSvg() must be implemented by the subclass");
783
861
  }
784
862
  };
785
- Q.REQUIRED_METHODS = ["registerIconsSvg"];
786
- var Te = Q, ce = class {
787
- constructor(t) {
788
- this.key = t;
863
+ p.REQUIRED_METHODS = ["registerIconsSvg"];
864
+ var lt = p, ot = class {
865
+ constructor(e) {
866
+ this.key = e;
789
867
  }
790
- withParams(t) {
791
- return this.params = t, this;
868
+ withParams(e) {
869
+ return this.params = e, this;
792
870
  }
793
871
  getValue() {
794
872
  return {
@@ -796,15 +874,15 @@ var Te = Q, ce = class {
796
874
  params: this.params
797
875
  };
798
876
  }
799
- }, f = class S extends a {
877
+ }, Q = class D extends a {
800
878
  constructor() {
801
- super(S.REQUIRED_METHODS, S);
879
+ super(D.REQUIRED_METHODS, D);
802
880
  }
803
881
  /**
804
882
  * Called when the UI element should render its content into the provided container.
805
883
  * @param container - The HTMLElement where the UI element should be rendered.
806
884
  */
807
- onRender(e) {
885
+ onRender(t) {
808
886
  throw new Error("Method onRender() must be implemented by the subclass");
809
887
  }
810
888
  /**
@@ -825,7 +903,7 @@ var Te = Q, ce = class {
825
903
  * Implement this if the element manages a state or value and needs to be updated externally.
826
904
  * @param value - The new value to set.
827
905
  */
828
- setValue(e) {
906
+ setValue(t) {
829
907
  }
830
908
  /**
831
909
  * @description Optional hook called when one of the element's supported attributes ({@link UEAttr}) gets updated externally.
@@ -833,7 +911,7 @@ var Te = Q, ce = class {
833
911
  * @param name - The name of the attribute that was updated.
834
912
  * @param value - The new value of the attribute.
835
913
  */
836
- onAttributeUpdated(e, r) {
914
+ onAttributeUpdated(t, r) {
837
915
  }
838
916
  /**
839
917
  * Gets the unique identifier for this UI element type.
@@ -851,61 +929,61 @@ var Te = Q, ce = class {
851
929
  throw new Error("Method getTemplate() must be implemented by the subclass");
852
930
  }
853
931
  };
854
- f.REQUIRED_METHODS = ["onRender", "getId", "getTemplate"];
855
- var _e = f, Y = class B extends a {
932
+ Q.REQUIRED_METHODS = ["onRender", "getId", "getTemplate"];
933
+ var dt = Q, f = class S extends a {
856
934
  constructor() {
857
- super(B.REQUIRED_METHODS, B);
935
+ super(S.REQUIRED_METHODS, S);
858
936
  }
859
- registerUiElements(e) {
937
+ registerUiElements(t) {
860
938
  throw new Error("Method registerUiElements() must be implemented by the subclass");
861
939
  }
862
940
  };
863
- Y.REQUIRED_METHODS = ["registerUiElements"];
864
- var he = Y;
941
+ f.REQUIRED_METHODS = ["registerUiElements"];
942
+ var ut = f;
865
943
  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,
944
+ we as Block,
945
+ Pe as BlockAttr,
946
+ $ as BlockCompositionType,
947
+ I as BlockSelector,
948
+ oe as BlockType,
949
+ M as BuiltInControl,
872
950
  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,
951
+ He as ButtonAlignBuiltInControl,
952
+ Xe as ButtonBackgroundColorBuiltInControl,
953
+ ke as ButtonBorderBuiltInControl,
954
+ Fe as ButtonBorderRadiusBuiltInControl,
955
+ Ge as ButtonColorBuiltInControl,
956
+ K as ButtonControls,
957
+ Ve as ButtonFitToContainerBuiltInControl,
958
+ pe as ButtonFontFamilyBuiltInControl,
959
+ Qe as ButtonMarginsBuiltInControl,
960
+ fe as ButtonPaddingsBuiltInControl,
961
+ Ye as ButtonTextBuiltInControl,
962
+ $e as ButtonTextSizeBuiltInControl,
963
+ We as ButtonTextStyleAndFontColorBuiltInControl,
964
+ de as ContainerControls,
965
+ ze as Control,
966
+ De as Extension,
967
+ Et as ExtensionBuilder,
968
+ P as GeneralControls,
969
+ lt as IconsRegistry,
892
970
  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 TextColorBuiltInControl,
901
- P as TextControls,
902
- Ee as TextFontFamilyBuiltInControl,
903
- le as TextLineSpacingBuiltInControl,
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
971
+ Ze as ImageMarginsBuiltInControl,
972
+ je as ImageSizeBuiltInControl,
973
+ ot as ModificationDescription,
974
+ qe as SettingsPanelRegistry,
975
+ Je as SettingsPanelTab,
976
+ ue as SettingsTab,
977
+ et as TextAlignBuiltInControl,
978
+ tt as TextColorBuiltInControl,
979
+ F as TextControls,
980
+ rt as TextFontFamilyBuiltInControl,
981
+ nt as TextLineSpacingBuiltInControl,
982
+ at as TextPaddingsBuiltInControl,
983
+ st as TextSizeBuiltInControl,
984
+ it as TextStyleBuiltInControl,
985
+ Ke as UEAttr,
986
+ dt as UIElement,
987
+ ut as UIElementTagRegistry,
988
+ Ae as UIElementType
911
989
  };