@elementor/editor-editing-panel 4.3.0-1048 → 4.3.0-1049

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.
package/dist/index.mjs CHANGED
@@ -5885,27 +5885,371 @@ var init = () => {
5885
5885
  }
5886
5886
  };
5887
5887
 
5888
- // src/controls-registry/element-controls/tabs-control/tabs-control.tsx
5888
+ // src/controls-registry/element-controls/accordion-items-control/accordion-items-control.tsx
5889
5889
  import * as React95 from "react";
5890
+ import { ControlFormLabel as ControlFormLabel3, Repeater } from "@elementor/editor-controls";
5891
+ import { updateElementEditorSettings as updateElementEditorSettings2, useElementChildren, useElementEditorSettings as useElementEditorSettings2 } from "@elementor/editor-elements";
5892
+ import { booleanPropTypeUtil as booleanPropTypeUtil4 } from "@elementor/editor-props";
5893
+ import { Stack as Stack15, TextField as TextField2 } from "@elementor/ui";
5894
+ import { __ as __70 } from "@wordpress/i18n";
5895
+
5896
+ // src/controls-registry/element-controls/accordion-items-control/use-actions.ts
5890
5897
  import {
5891
- ControlFormLabel as ControlFormLabel3,
5892
- Repeater,
5898
+ createElements,
5899
+ duplicateElements,
5900
+ generateElementId,
5901
+ getContainer as getContainer2,
5902
+ moveElements,
5903
+ removeElements
5904
+ } from "@elementor/editor-elements";
5905
+ import { booleanPropTypeUtil as booleanPropTypeUtil2, escapedHtmlPropTypeUtil as escapedHtmlPropTypeUtil2 } from "@elementor/editor-props";
5906
+ import { __ as __68, sprintf } from "@wordpress/i18n";
5907
+ var ACCORDION_ELEMENT_TYPE = "e-accordion";
5908
+ var ACCORDION_ITEM_ELEMENT_TYPE = "e-accordion-item";
5909
+ var ACCORDION_ITEM_HEADER_ELEMENT_TYPE = "e-accordion-item-header";
5910
+ var ACCORDION_ITEM_TITLE_ELEMENT_TYPE = "e-accordion-item-title";
5911
+ var ACCORDION_ITEM_ICON_ELEMENT_TYPE = "e-accordion-item-icon";
5912
+ var ACCORDION_ITEM_CONTENT_ELEMENT_TYPE = "e-accordion-item-content";
5913
+ var PARAGRAPH_WIDGET_TYPE = "e-paragraph";
5914
+ var getItemTitle = (position) => (
5915
+ /* translators: %d: Accordion item position. */
5916
+ sprintf(__68("Accordion Item %d", "elementor"), position)
5917
+ );
5918
+ var TRAILING_NUMBER = /(\d+)\s*$/;
5919
+ var getNextItemNumber = (existingTitles) => {
5920
+ const taken = new Set(existingTitles.filter((title) => Boolean(title)));
5921
+ const highest = existingTitles.reduce((max, title) => {
5922
+ const [, trailingNumber] = title?.match(TRAILING_NUMBER) ?? [];
5923
+ const parsed = trailingNumber ? Number(trailingNumber) : 0;
5924
+ return Number.isFinite(parsed) && parsed > max ? parsed : max;
5925
+ }, 0);
5926
+ let next = highest + 1;
5927
+ while (taken.has(getItemTitle(next))) {
5928
+ next += 1;
5929
+ }
5930
+ return next;
5931
+ };
5932
+ var buildItemModel = (position, showIcon) => {
5933
+ const numberedTitle = getItemTitle(position);
5934
+ return {
5935
+ elType: ACCORDION_ITEM_ELEMENT_TYPE,
5936
+ id: generateElementId(),
5937
+ editor_settings: { title: numberedTitle, initial_position: position },
5938
+ elements: [
5939
+ {
5940
+ elType: ACCORDION_ITEM_HEADER_ELEMENT_TYPE,
5941
+ id: generateElementId(),
5942
+ editor_settings: { title: __68("Header", "elementor") },
5943
+ // Seeded from the root's *current* `show_icon` value, not the schema default: if a user
5944
+ // has already turned Show Icon off, a newly added item must start with its icon hidden
5945
+ // too, not re-show one just because the item itself is brand new. See the comment on
5946
+ // the mirrored prop in `Atomic_Accordion_Item_Header` for why this duplication exists.
5947
+ settings: { show_icon: booleanPropTypeUtil2.create(showIcon) },
5948
+ elements: [
5949
+ {
5950
+ elType: ACCORDION_ITEM_TITLE_ELEMENT_TYPE,
5951
+ id: generateElementId(),
5952
+ editor_settings: { title: __68("Title", "elementor") },
5953
+ elements: [
5954
+ {
5955
+ elType: "widget",
5956
+ widgetType: PARAGRAPH_WIDGET_TYPE,
5957
+ id: generateElementId(),
5958
+ // A leaf still needs an explicit empty `elements`: `ElementModel.initialize()` only
5959
+ // turns the attribute into a collection when it is defined, and v1 code walking a
5960
+ // subtree (`deselectRecursive()` on delete) calls `.forEach()` on it unguarded.
5961
+ elements: [],
5962
+ settings: {
5963
+ paragraph: escapedHtmlPropTypeUtil2.create(numberedTitle),
5964
+ tag: { $$type: "string", value: "span" }
5965
+ }
5966
+ }
5967
+ ]
5968
+ },
5969
+ {
5970
+ elType: ACCORDION_ITEM_ICON_ELEMENT_TYPE,
5971
+ id: generateElementId(),
5972
+ editor_settings: { title: __68("Icon", "elementor") },
5973
+ elements: [],
5974
+ hydrateDefaultChildren: true
5975
+ }
5976
+ ]
5977
+ },
5978
+ {
5979
+ elType: ACCORDION_ITEM_CONTENT_ELEMENT_TYPE,
5980
+ id: generateElementId(),
5981
+ editor_settings: { title: __68("Content", "elementor") },
5982
+ elements: [],
5983
+ hydrateDefaultChildren: true
5984
+ }
5985
+ ]
5986
+ };
5987
+ };
5988
+ var useActions = () => {
5989
+ const addItem = ({
5990
+ accordionId,
5991
+ existingTitles,
5992
+ items: items3,
5993
+ showIcon
5994
+ }) => {
5995
+ const accordion = getContainer2(accordionId);
5996
+ if (!accordion) {
5997
+ throw new Error("Accordion container not found");
5998
+ }
5999
+ const titles = [...existingTitles];
6000
+ items3.forEach(() => {
6001
+ const position = getNextItemNumber(titles);
6002
+ createElements({
6003
+ title: __68("Accordion", "elementor"),
6004
+ elements: [
6005
+ {
6006
+ container: accordion,
6007
+ // `buildItemModel()` returns `V1ElementData`, whose `elements` field is plain nested
6008
+ // data (`V1ElementData[]`) - correct for a tree we're constructing to send as a
6009
+ // creation payload. `CreateElementParams['model']` is derived from
6010
+ // `V1ElementModelProps`, whose `elements` field is typed as `V1Model<...>[]` - live
6011
+ // Backbone-model wrappers with `get`/`set`/`toJSON`, the shape for reading an
6012
+ // *existing* element out of the document, not for describing one to create. A single
6013
+ // cast is enough (the two types overlap enough for TS to allow it directly); no
6014
+ // `unknown` escape hatch needed.
6015
+ model: buildItemModel(position, showIcon)
6016
+ }
6017
+ ]
6018
+ });
6019
+ titles.push(getItemTitle(position));
6020
+ });
6021
+ };
6022
+ const removeItem = ({ items: items3 }) => {
6023
+ removeElements({
6024
+ title: __68("Accordion", "elementor"),
6025
+ elementIds: items3.map(({ item }) => item.id)
6026
+ });
6027
+ };
6028
+ const duplicateItem = ({ items: items3 }) => {
6029
+ duplicateElements({
6030
+ title: __68("Duplicate Accordion Item", "elementor"),
6031
+ elementIds: items3.map(({ item }) => item.id)
6032
+ });
6033
+ };
6034
+ const moveItem = ({
6035
+ accordionId,
6036
+ movedElementId,
6037
+ toIndex
6038
+ }) => {
6039
+ const accordion = getContainer2(accordionId);
6040
+ const movedElement = getContainer2(movedElementId);
6041
+ if (!accordion || !movedElement) {
6042
+ throw new Error("Accordion item or container not found");
6043
+ }
6044
+ moveElements({
6045
+ title: __68("Reorder Accordion Items", "elementor"),
6046
+ moves: [
6047
+ {
6048
+ element: movedElement,
6049
+ targetContainer: accordion,
6050
+ options: { at: toIndex }
6051
+ }
6052
+ ]
6053
+ });
6054
+ };
6055
+ return {
6056
+ addItem,
6057
+ removeItem,
6058
+ duplicateItem,
6059
+ moveItem
6060
+ };
6061
+ };
6062
+
6063
+ // src/controls-registry/element-controls/accordion-items-control/use-show-icon-write-through.ts
6064
+ import { useEffect as useEffect9, useRef as useRef20 } from "react";
6065
+ import { getContainer as getContainer3, getElementSettings as getElementSettings2, updateElementSettings as updateElementSettings4 } from "@elementor/editor-elements";
6066
+ import { booleanPropTypeUtil as booleanPropTypeUtil3 } from "@elementor/editor-props";
6067
+ import { undoable as undoable5 } from "@elementor/editor-v1-adapters";
6068
+ import { __ as __69 } from "@wordpress/i18n";
6069
+ var ACCORDION_ITEM_HEADER_ELEMENT_TYPE2 = "e-accordion-item-header";
6070
+ var cascadeShowIconToHeaders = undoable5(
6071
+ {
6072
+ do: ({ accordionId, showIcon }) => {
6073
+ const headerIds = getAccordionHeaderIds(accordionId);
6074
+ const previous = Object.fromEntries(
6075
+ headerIds.map(
6076
+ (headerId) => [
6077
+ headerId,
6078
+ getElementSettings2(headerId, [
6079
+ "show_icon"
6080
+ ]).show_icon
6081
+ ]
6082
+ )
6083
+ );
6084
+ headerIds.forEach((headerId) => {
6085
+ updateElementSettings4({
6086
+ id: headerId,
6087
+ props: { show_icon: booleanPropTypeUtil3.create(showIcon) },
6088
+ withHistory: false
6089
+ });
6090
+ });
6091
+ return { previous };
6092
+ },
6093
+ undo: (_payload, { previous }) => {
6094
+ Object.entries(previous).forEach(([headerId, previousValue]) => {
6095
+ updateElementSettings4({
6096
+ id: headerId,
6097
+ props: { show_icon: previousValue ?? null },
6098
+ withHistory: false
6099
+ });
6100
+ });
6101
+ }
6102
+ },
6103
+ {
6104
+ title: __69("Accordion", "elementor"),
6105
+ subtitle: __69("Show Icon", "elementor"),
6106
+ // `undoable()`'s debounce only delays when the *history entry* is pushed onto the undo stack -
6107
+ // the settings write itself (`do()`) still runs synchronously on every call. The root's own
6108
+ // `show_icon` change goes through `SettingsField` -> `useUndoableUpdateElementProp`
6109
+ // (`settings-field.tsx`), which debounces its history push by `HISTORY_DEBOUNCE_WAIT` (800ms).
6110
+ // Without matching that here, this cascade's history entry (pushed immediately) would land on
6111
+ // the undo stack *before* the root's (pushed 800ms later), so the first Undo after a toggle
6112
+ // would revert the root switch alone while every header stayed on its new value - the switch and
6113
+ // the icons would visibly disagree until a second Undo. Matching the debounce window fixes the
6114
+ // stack order to be deterministic (root's own entry, then this one) regardless of how quickly a
6115
+ // user hits Undo. It does not make the two changes one atomic transaction - see the comment on
6116
+ // `useShowIconWriteThrough` for why that would require forking the shared `Switch_Control`.
6117
+ debounce: { wait: HISTORY_DEBOUNCE_WAIT }
6118
+ }
6119
+ );
6120
+ function getAccordionHeaderIds(accordionId) {
6121
+ const accordion = getContainer3(accordionId);
6122
+ const itemContainers = (accordion?.children ?? []).filter(
6123
+ (child) => child.model.get("elType") === ACCORDION_ITEM_ELEMENT_TYPE
6124
+ );
6125
+ const headerContainers = itemContainers.map(
6126
+ (item) => item.children?.find((child) => child.model.get("elType") === ACCORDION_ITEM_HEADER_ELEMENT_TYPE2)
6127
+ ).filter((header) => Boolean(header));
6128
+ return headerContainers.map((header) => header.id);
6129
+ }
6130
+ function useShowIconWriteThrough(accordionId, showIcon) {
6131
+ const previousRef = useRef20(null);
6132
+ useEffect9(() => {
6133
+ const previous = previousRef.current;
6134
+ previousRef.current = { accordionId, showIcon };
6135
+ if (!previous || previous.accordionId !== accordionId || previous.showIcon === showIcon) {
6136
+ return;
6137
+ }
6138
+ cascadeShowIconToHeaders({ accordionId, showIcon });
6139
+ }, [accordionId, showIcon]);
6140
+ }
6141
+
6142
+ // src/controls-registry/element-controls/accordion-items-control/accordion-items-control.tsx
6143
+ var AccordionItemsControl = ({ label }) => {
6144
+ const { element, settings } = useElement();
6145
+ const { addItem, duplicateItem, moveItem, removeItem } = useActions();
6146
+ const { [ACCORDION_ITEM_ELEMENT_TYPE]: items3 } = useElementChildren(
6147
+ element.id,
6148
+ { [ACCORDION_ELEMENT_TYPE]: ACCORDION_ITEM_ELEMENT_TYPE },
6149
+ { includeSelfAsParent: true }
6150
+ );
6151
+ const showIcon = booleanPropTypeUtil4.extract(settings.show_icon) ?? true;
6152
+ useShowIconWriteThrough(element.id, showIcon);
6153
+ const repeaterValues = items3.map((item, index) => {
6154
+ return {
6155
+ id: item.id,
6156
+ title: item.editorSettings?.title,
6157
+ index
6158
+ };
6159
+ });
6160
+ const setValue = (_newValues, _options, meta) => {
6161
+ if (meta?.action?.type === "add") {
6162
+ return addItem({
6163
+ accordionId: element.id,
6164
+ // The new item's number comes from the titles already in use, not from the item count -
6165
+ // see `getNextItemNumber`.
6166
+ existingTitles: repeaterValues.map(({ title }) => title),
6167
+ items: meta.action.payload,
6168
+ showIcon
6169
+ });
6170
+ }
6171
+ if (meta?.action?.type === "remove") {
6172
+ return removeItem({ items: meta.action.payload });
6173
+ }
6174
+ if (meta?.action?.type === "duplicate") {
6175
+ return duplicateItem({ items: meta.action.payload });
6176
+ }
6177
+ if (meta?.action?.type === "reorder") {
6178
+ const { from, to } = meta.action.payload;
6179
+ return moveItem({
6180
+ accordionId: element.id,
6181
+ movedElementId: items3[from].id,
6182
+ toIndex: to
6183
+ });
6184
+ }
6185
+ };
6186
+ return /* @__PURE__ */ React95.createElement(
6187
+ Repeater,
6188
+ {
6189
+ showToggle: false,
6190
+ values: repeaterValues,
6191
+ setValues: setValue,
6192
+ showRemove: repeaterValues.length > 1,
6193
+ label,
6194
+ adornment: () => null,
6195
+ itemSettings: {
6196
+ getId: ({ item }) => item.id,
6197
+ initialValues: { id: "", title: __70("Accordion Item", "elementor") },
6198
+ Label: ItemLabel,
6199
+ Content: ItemContent,
6200
+ Icon: () => null
6201
+ }
6202
+ }
6203
+ );
6204
+ };
6205
+ var ItemLabel = ({ value }) => {
6206
+ return /* @__PURE__ */ React95.createElement(Stack15, { sx: { minHeight: 20 }, direction: "row", alignItems: "center", gap: 1.5 }, /* @__PURE__ */ React95.createElement("span", null, value?.title));
6207
+ };
6208
+ var ItemContent = ({ value }) => {
6209
+ if (!value.id) {
6210
+ return null;
6211
+ }
6212
+ return /* @__PURE__ */ React95.createElement(Stack15, { p: 2, gap: 1.5 }, /* @__PURE__ */ React95.createElement(ItemNameControl, { elementId: value.id }));
6213
+ };
6214
+ var ItemNameControl = ({ elementId }) => {
6215
+ const editorSettings = useElementEditorSettings2(elementId);
6216
+ const label = editorSettings?.title ?? "";
6217
+ return /* @__PURE__ */ React95.createElement(Stack15, { gap: 1 }, /* @__PURE__ */ React95.createElement(ControlFormLabel3, null, __70("Name", "elementor")), /* @__PURE__ */ React95.createElement(
6218
+ TextField2,
6219
+ {
6220
+ size: "tiny",
6221
+ value: label,
6222
+ onChange: ({ target }) => {
6223
+ updateElementEditorSettings2({
6224
+ elementId,
6225
+ settings: { title: target.value }
6226
+ });
6227
+ }
6228
+ }
6229
+ ));
6230
+ };
6231
+
6232
+ // src/controls-registry/element-controls/tabs-control/tabs-control.tsx
6233
+ import * as React96 from "react";
6234
+ import {
6235
+ ControlFormLabel as ControlFormLabel4,
6236
+ Repeater as Repeater2,
5893
6237
  useBoundProp as useBoundProp7
5894
6238
  } from "@elementor/editor-controls";
5895
6239
  import {
5896
- updateElementEditorSettings as updateElementEditorSettings2,
5897
- useElementChildren,
5898
- useElementEditorSettings as useElementEditorSettings2
6240
+ updateElementEditorSettings as updateElementEditorSettings3,
6241
+ useElementChildren as useElementChildren2,
6242
+ useElementEditorSettings as useElementEditorSettings3
5899
6243
  } from "@elementor/editor-elements";
5900
6244
  import { numberPropTypeUtil as numberPropTypeUtil4 } from "@elementor/editor-props";
5901
6245
  import { InfoCircleFilledIcon as InfoCircleFilledIcon2 } from "@elementor/icons";
5902
- import { Alert as Alert4, Chip as Chip4, Infotip as Infotip2, Stack as Stack15, Switch as Switch2, TextField as TextField2, Typography as Typography5 } from "@elementor/ui";
5903
- import { __ as __69 } from "@wordpress/i18n";
6246
+ import { Alert as Alert4, Chip as Chip4, Infotip as Infotip2, Stack as Stack16, Switch as Switch2, TextField as TextField3, Typography as Typography5 } from "@elementor/ui";
6247
+ import { __ as __72 } from "@wordpress/i18n";
5904
6248
 
5905
6249
  // src/controls-registry/element-controls/get-element-by-type.ts
5906
- import { getContainer as getContainer2 } from "@elementor/editor-elements";
6250
+ import { getContainer as getContainer4 } from "@elementor/editor-elements";
5907
6251
  var getElementByType = (elementId, type) => {
5908
- const currentElement = getContainer2(elementId);
6252
+ const currentElement = getContainer4(elementId);
5909
6253
  if (!currentElement) {
5910
6254
  return null;
5911
6255
  }
@@ -5918,17 +6262,17 @@ var getElementByType = (elementId, type) => {
5918
6262
  // src/controls-registry/element-controls/tabs-control/use-actions.ts
5919
6263
  import { useBoundProp as useBoundProp6 } from "@elementor/editor-controls";
5920
6264
  import {
5921
- createElements,
5922
- duplicateElements,
5923
- getContainer as getContainer3,
5924
- moveElements,
5925
- removeElements
6265
+ createElements as createElements2,
6266
+ duplicateElements as duplicateElements2,
6267
+ getContainer as getContainer5,
6268
+ moveElements as moveElements2,
6269
+ removeElements as removeElements2
5926
6270
  } from "@elementor/editor-elements";
5927
6271
  import { numberPropTypeUtil as numberPropTypeUtil3 } from "@elementor/editor-props";
5928
- import { __ as __68 } from "@wordpress/i18n";
6272
+ import { __ as __71 } from "@wordpress/i18n";
5929
6273
  var TAB_ELEMENT_TYPE = "e-tab";
5930
6274
  var TAB_CONTENT_ELEMENT_TYPE = "e-tab-content";
5931
- var useActions = () => {
6275
+ var useActions2 = () => {
5932
6276
  const { value, setValue: setDefaultActiveTab } = useBoundProp6(numberPropTypeUtil3);
5933
6277
  const defaultActiveTab = value ?? 0;
5934
6278
  const duplicateItem = ({
@@ -5941,14 +6285,14 @@ var useActions = () => {
5941
6285
  });
5942
6286
  items3.forEach(({ item, index }) => {
5943
6287
  const tabId = item.id;
5944
- const tabContentAreaContainer = getContainer3(tabContentAreaId);
6288
+ const tabContentAreaContainer = getContainer5(tabContentAreaId);
5945
6289
  const tabContentId = tabContentAreaContainer?.children?.[index]?.id;
5946
6290
  if (!tabContentId) {
5947
6291
  throw new Error("Original content ID is required for duplication");
5948
6292
  }
5949
- duplicateElements({
6293
+ duplicateElements2({
5950
6294
  elementIds: [tabId, tabContentId],
5951
- title: __68("Duplicate Tab", "elementor"),
6295
+ title: __71("Duplicate Tab", "elementor"),
5952
6296
  onDuplicateElements: () => {
5953
6297
  if (newDefault !== defaultActiveTab) {
5954
6298
  setDefaultActiveTab(newDefault, {}, { withHistory: false });
@@ -5969,10 +6313,10 @@ var useActions = () => {
5969
6313
  movedElementId,
5970
6314
  movedElementIndex
5971
6315
  }) => {
5972
- const tabContentContainer = getContainer3(tabContentAreaId);
6316
+ const tabContentContainer = getContainer5(tabContentAreaId);
5973
6317
  const tabContent = tabContentContainer?.children?.[movedElementIndex];
5974
- const movedElement = getContainer3(movedElementId);
5975
- const tabsMenu = getContainer3(tabsMenuId);
6318
+ const movedElement = getContainer5(movedElementId);
6319
+ const tabsMenu = getContainer5(tabsMenuId);
5976
6320
  if (!tabContent) {
5977
6321
  throw new Error("Content element is required");
5978
6322
  }
@@ -5984,8 +6328,8 @@ var useActions = () => {
5984
6328
  to: toIndex,
5985
6329
  defaultActiveTab
5986
6330
  });
5987
- moveElements({
5988
- title: __68("Reorder Tabs", "elementor"),
6331
+ moveElements2({
6332
+ title: __71("Reorder Tabs", "elementor"),
5989
6333
  moves: [
5990
6334
  {
5991
6335
  element: movedElement,
@@ -6018,11 +6362,11 @@ var useActions = () => {
6018
6362
  items: items3,
6019
6363
  defaultActiveTab
6020
6364
  });
6021
- removeElements({
6022
- title: __68("Tabs", "elementor"),
6365
+ removeElements2({
6366
+ title: __71("Tabs", "elementor"),
6023
6367
  elementIds: items3.flatMap(({ item, index }) => {
6024
6368
  const tabId = item.id;
6025
- const tabContentContainer = getContainer3(tabContentAreaId);
6369
+ const tabContentContainer = getContainer5(tabContentAreaId);
6026
6370
  const tabContentId = tabContentContainer?.children?.[index]?.id;
6027
6371
  if (!tabContentId) {
6028
6372
  throw new Error("Content ID is required");
@@ -6046,15 +6390,15 @@ var useActions = () => {
6046
6390
  tabsMenuId,
6047
6391
  items: items3
6048
6392
  }) => {
6049
- const tabContentArea = getContainer3(tabContentAreaId);
6050
- const tabsMenu = getContainer3(tabsMenuId);
6393
+ const tabContentArea = getContainer5(tabContentAreaId);
6394
+ const tabsMenu = getContainer5(tabsMenuId);
6051
6395
  if (!tabContentArea || !tabsMenu) {
6052
6396
  throw new Error("Tab containers not found");
6053
6397
  }
6054
6398
  items3.forEach(({ index }) => {
6055
6399
  const position = index + 1;
6056
- createElements({
6057
- title: __68("Tabs", "elementor"),
6400
+ createElements2({
6401
+ title: __71("Tabs", "elementor"),
6058
6402
  elements: [
6059
6403
  {
6060
6404
  container: tabContentArea,
@@ -6123,12 +6467,12 @@ var calculateDefaultOnDuplicate = ({
6123
6467
  var TAB_MENU_ELEMENT_TYPE = "e-tabs-menu";
6124
6468
  var TAB_CONTENT_AREA_ELEMENT_TYPE = "e-tabs-content-area";
6125
6469
  var TabsControl = ({ label }) => {
6126
- return /* @__PURE__ */ React95.createElement(SettingsField, { bind: "default-active-tab", propDisplayName: __69("Tabs", "elementor") }, /* @__PURE__ */ React95.createElement(TabsControlContent, { label }));
6470
+ return /* @__PURE__ */ React96.createElement(SettingsField, { bind: "default-active-tab", propDisplayName: __72("Tabs", "elementor") }, /* @__PURE__ */ React96.createElement(TabsControlContent, { label }));
6127
6471
  };
6128
6472
  var TabsControlContent = ({ label }) => {
6129
6473
  const { element } = useElement();
6130
- const { addItem, duplicateItem, moveItem, removeItem } = useActions();
6131
- const { [TAB_ELEMENT_TYPE]: tabLinks } = useElementChildren(element.id, {
6474
+ const { addItem, duplicateItem, moveItem, removeItem } = useActions2();
6475
+ const { [TAB_ELEMENT_TYPE]: tabLinks } = useElementChildren2(element.id, {
6132
6476
  [TAB_MENU_ELEMENT_TYPE]: TAB_ELEMENT_TYPE
6133
6477
  });
6134
6478
  const tabList = getElementByType(element.id, TAB_MENU_ELEMENT_TYPE);
@@ -6167,8 +6511,8 @@ var TabsControlContent = ({ label }) => {
6167
6511
  });
6168
6512
  }
6169
6513
  };
6170
- return /* @__PURE__ */ React95.createElement(
6171
- Repeater,
6514
+ return /* @__PURE__ */ React96.createElement(
6515
+ Repeater2,
6172
6516
  {
6173
6517
  showToggle: false,
6174
6518
  values: repeaterValues,
@@ -6178,16 +6522,16 @@ var TabsControlContent = ({ label }) => {
6178
6522
  itemSettings: {
6179
6523
  getId: ({ item }) => item.id,
6180
6524
  initialValues: { id: "", title: "Tab" },
6181
- Label: ItemLabel,
6182
- Content: ItemContent,
6525
+ Label: ItemLabel2,
6526
+ Content: ItemContent2,
6183
6527
  Icon: () => null
6184
6528
  }
6185
6529
  }
6186
6530
  );
6187
6531
  };
6188
- var ItemLabel = ({ value, index }) => {
6532
+ var ItemLabel2 = ({ value, index }) => {
6189
6533
  const elementTitle = value?.title;
6190
- return /* @__PURE__ */ React95.createElement(Stack15, { sx: { minHeight: 20 }, direction: "row", alignItems: "center", gap: 1.5 }, /* @__PURE__ */ React95.createElement("span", null, elementTitle), /* @__PURE__ */ React95.createElement(ItemDefaultTab, { index }));
6534
+ return /* @__PURE__ */ React96.createElement(Stack16, { sx: { minHeight: 20 }, direction: "row", alignItems: "center", gap: 1.5 }, /* @__PURE__ */ React96.createElement("span", null, elementTitle), /* @__PURE__ */ React96.createElement(ItemDefaultTab, { index }));
6191
6535
  };
6192
6536
  var ItemDefaultTab = ({ index }) => {
6193
6537
  const { value: defaultItem } = useBoundProp7(numberPropTypeUtil4);
@@ -6195,18 +6539,18 @@ var ItemDefaultTab = ({ index }) => {
6195
6539
  if (!isDefault) {
6196
6540
  return null;
6197
6541
  }
6198
- return /* @__PURE__ */ React95.createElement(Chip4, { size: "tiny", shape: "rounded", label: __69("Default", "elementor") });
6542
+ return /* @__PURE__ */ React96.createElement(Chip4, { size: "tiny", shape: "rounded", label: __72("Default", "elementor") });
6199
6543
  };
6200
- var ItemContent = ({ value, index }) => {
6544
+ var ItemContent2 = ({ value, index }) => {
6201
6545
  if (!value.id) {
6202
6546
  return null;
6203
6547
  }
6204
- return /* @__PURE__ */ React95.createElement(Stack15, { p: 2, gap: 1.5 }, /* @__PURE__ */ React95.createElement(TabLabelControl, { elementId: value.id }), /* @__PURE__ */ React95.createElement(SettingsField, { bind: "default-active-tab", propDisplayName: __69("Tabs", "elementor") }, /* @__PURE__ */ React95.createElement(DefaultTabControl, { tabIndex: index })));
6548
+ return /* @__PURE__ */ React96.createElement(Stack16, { p: 2, gap: 1.5 }, /* @__PURE__ */ React96.createElement(TabLabelControl, { elementId: value.id }), /* @__PURE__ */ React96.createElement(SettingsField, { bind: "default-active-tab", propDisplayName: __72("Tabs", "elementor") }, /* @__PURE__ */ React96.createElement(DefaultTabControl, { tabIndex: index })));
6205
6549
  };
6206
6550
  var DefaultTabControl = ({ tabIndex }) => {
6207
6551
  const { value, setValue } = useBoundProp7(numberPropTypeUtil4);
6208
6552
  const isDefault = value === tabIndex;
6209
- return /* @__PURE__ */ React95.createElement(Stack15, { direction: "row", alignItems: "center", justifyContent: "space-between", gap: 2 }, /* @__PURE__ */ React95.createElement(ControlFormLabel3, null, __69("Set as default tab", "elementor")), /* @__PURE__ */ React95.createElement(ConditionalTooltip, { showTooltip: isDefault, placement: "right" }, /* @__PURE__ */ React95.createElement(
6553
+ return /* @__PURE__ */ React96.createElement(Stack16, { direction: "row", alignItems: "center", justifyContent: "space-between", gap: 2 }, /* @__PURE__ */ React96.createElement(ControlFormLabel4, null, __72("Set as default tab", "elementor")), /* @__PURE__ */ React96.createElement(ConditionalTooltip, { showTooltip: isDefault, placement: "right" }, /* @__PURE__ */ React96.createElement(
6210
6554
  Switch2,
6211
6555
  {
6212
6556
  size: "small",
@@ -6222,15 +6566,15 @@ var DefaultTabControl = ({ tabIndex }) => {
6222
6566
  )));
6223
6567
  };
6224
6568
  var TabLabelControl = ({ elementId }) => {
6225
- const editorSettings = useElementEditorSettings2(elementId);
6569
+ const editorSettings = useElementEditorSettings3(elementId);
6226
6570
  const label = editorSettings?.title ?? "";
6227
- return /* @__PURE__ */ React95.createElement(Stack15, { gap: 1 }, /* @__PURE__ */ React95.createElement(ControlFormLabel3, null, __69("Tab name", "elementor")), /* @__PURE__ */ React95.createElement(
6228
- TextField2,
6571
+ return /* @__PURE__ */ React96.createElement(Stack16, { gap: 1 }, /* @__PURE__ */ React96.createElement(ControlFormLabel4, null, __72("Tab name", "elementor")), /* @__PURE__ */ React96.createElement(
6572
+ TextField3,
6229
6573
  {
6230
6574
  size: "tiny",
6231
6575
  value: label,
6232
6576
  onChange: ({ target }) => {
6233
- updateElementEditorSettings2({
6577
+ updateElementEditorSettings3({
6234
6578
  elementId,
6235
6579
  settings: { title: target.value }
6236
6580
  });
@@ -6245,28 +6589,29 @@ var ConditionalTooltip = ({
6245
6589
  if (!showTooltip) {
6246
6590
  return children;
6247
6591
  }
6248
- return /* @__PURE__ */ React95.createElement(
6592
+ return /* @__PURE__ */ React96.createElement(
6249
6593
  Infotip2,
6250
6594
  {
6251
6595
  arrow: false,
6252
- content: /* @__PURE__ */ React95.createElement(
6596
+ content: /* @__PURE__ */ React96.createElement(
6253
6597
  Alert4,
6254
6598
  {
6255
6599
  color: "secondary",
6256
- icon: /* @__PURE__ */ React95.createElement(InfoCircleFilledIcon2, { fontSize: "tiny" }),
6600
+ icon: /* @__PURE__ */ React96.createElement(InfoCircleFilledIcon2, { fontSize: "tiny" }),
6257
6601
  size: "small",
6258
6602
  sx: { width: 288 }
6259
6603
  },
6260
- /* @__PURE__ */ React95.createElement(Typography5, { variant: "body2" }, __69("To change the default tab, simply set another tab as default.", "elementor"))
6604
+ /* @__PURE__ */ React96.createElement(Typography5, { variant: "body2" }, __72("To change the default tab, simply set another tab as default.", "elementor"))
6261
6605
  )
6262
6606
  },
6263
- /* @__PURE__ */ React95.createElement("span", null, children)
6607
+ /* @__PURE__ */ React96.createElement("span", null, children)
6264
6608
  );
6265
6609
  };
6266
6610
 
6267
6611
  // src/controls-registry/element-controls/registry.ts
6268
6612
  var controlTypes2 = {
6269
- tabs: { component: TabsControl, layout: "full" }
6613
+ tabs: { component: TabsControl, layout: "full" },
6614
+ "accordion-items": { component: AccordionItemsControl, layout: "full" }
6270
6615
  };
6271
6616
  var registerElementControls = () => {
6272
6617
  Object.entries(controlTypes2).forEach(
@@ -6286,7 +6631,7 @@ import {
6286
6631
  import { controlActionsMenu as controlActionsMenu2 } from "@elementor/menus";
6287
6632
 
6288
6633
  // src/dynamics/components/background-control-dynamic-tag.tsx
6289
- import * as React96 from "react";
6634
+ import * as React97 from "react";
6290
6635
  import { PropKeyProvider as PropKeyProvider4, PropProvider as PropProvider4, useBoundProp as useBoundProp9 } from "@elementor/editor-controls";
6291
6636
  import {
6292
6637
  backgroundImageOverlayPropTypeUtil
@@ -6429,26 +6774,26 @@ var useDynamicTag = (tagName) => {
6429
6774
  };
6430
6775
 
6431
6776
  // src/dynamics/components/background-control-dynamic-tag.tsx
6432
- var BackgroundControlDynamicTagIcon = () => /* @__PURE__ */ React96.createElement(DatabaseIcon, { fontSize: "tiny" });
6777
+ var BackgroundControlDynamicTagIcon = () => /* @__PURE__ */ React97.createElement(DatabaseIcon, { fontSize: "tiny" });
6433
6778
  var BackgroundControlDynamicTagLabel = ({ value }) => {
6434
6779
  const context = useBoundProp9(backgroundImageOverlayPropTypeUtil);
6435
- return /* @__PURE__ */ React96.createElement(PropProvider4, { ...context, value: value.value }, /* @__PURE__ */ React96.createElement(PropKeyProvider4, { bind: "image" }, /* @__PURE__ */ React96.createElement(Wrapper2, { rawValue: value.value })));
6780
+ return /* @__PURE__ */ React97.createElement(PropProvider4, { ...context, value: value.value }, /* @__PURE__ */ React97.createElement(PropKeyProvider4, { bind: "image" }, /* @__PURE__ */ React97.createElement(Wrapper2, { rawValue: value.value })));
6436
6781
  };
6437
6782
  var Wrapper2 = ({ rawValue }) => {
6438
6783
  const { propType } = useBoundProp9();
6439
6784
  const imageOverlayPropType = propType.prop_types["background-image-overlay"];
6440
- return /* @__PURE__ */ React96.createElement(PropProvider4, { propType: imageOverlayPropType.shape.image, value: rawValue, setValue: () => void 0 }, /* @__PURE__ */ React96.createElement(PropKeyProvider4, { bind: "src" }, /* @__PURE__ */ React96.createElement(Content, { rawValue: rawValue.image })));
6785
+ return /* @__PURE__ */ React97.createElement(PropProvider4, { propType: imageOverlayPropType.shape.image, value: rawValue, setValue: () => void 0 }, /* @__PURE__ */ React97.createElement(PropKeyProvider4, { bind: "src" }, /* @__PURE__ */ React97.createElement(Content, { rawValue: rawValue.image })));
6441
6786
  };
6442
6787
  var Content = ({ rawValue }) => {
6443
6788
  const src = rawValue.value.src;
6444
6789
  const dynamicTag = useDynamicTag(src.value.name || "");
6445
- return /* @__PURE__ */ React96.createElement(React96.Fragment, null, dynamicTag?.label);
6790
+ return /* @__PURE__ */ React97.createElement(React97.Fragment, null, dynamicTag?.label);
6446
6791
  };
6447
6792
 
6448
6793
  // src/dynamics/components/dynamic-selection-control.tsx
6449
- import * as React100 from "react";
6794
+ import * as React101 from "react";
6450
6795
  import {
6451
- ControlFormLabel as ControlFormLabel4,
6796
+ ControlFormLabel as ControlFormLabel5,
6452
6797
  PropKeyProvider as PropKeyProvider6,
6453
6798
  PropProvider as PropProvider6,
6454
6799
  useBoundProp as useBoundProp12
@@ -6463,7 +6808,7 @@ import {
6463
6808
  Grid as Grid8,
6464
6809
  IconButton as IconButton2,
6465
6810
  Popover,
6466
- Stack as Stack17,
6811
+ Stack as Stack18,
6467
6812
  Tab as Tab2,
6468
6813
  TabPanel as TabPanel2,
6469
6814
  Tabs as Tabs2,
@@ -6471,7 +6816,7 @@ import {
6471
6816
  usePopupState as usePopupState2,
6472
6817
  useTabs as useTabs2
6473
6818
  } from "@elementor/ui";
6474
- import { __ as __71 } from "@wordpress/i18n";
6819
+ import { __ as __74 } from "@wordpress/i18n";
6475
6820
 
6476
6821
  // src/hooks/use-persist-dynamic-value.ts
6477
6822
  import { useSessionStorage as useSessionStorage5 } from "@elementor/session";
@@ -6482,11 +6827,11 @@ var usePersistDynamicValue = (propKey) => {
6482
6827
  };
6483
6828
 
6484
6829
  // src/dynamics/dynamic-control.tsx
6485
- import * as React98 from "react";
6830
+ import * as React99 from "react";
6486
6831
  import { PropKeyProvider as PropKeyProvider5, PropProvider as PropProvider5, useBoundProp as useBoundProp10 } from "@elementor/editor-controls";
6487
6832
 
6488
6833
  // src/dynamics/components/dynamic-conditional-control.tsx
6489
- import * as React97 from "react";
6834
+ import * as React98 from "react";
6490
6835
  import { useMemo as useMemo13 } from "react";
6491
6836
  import { isDependencyMet as isDependencyMet3 } from "@elementor/editor-props";
6492
6837
  var DynamicConditionalControl = ({
@@ -6528,10 +6873,10 @@ var DynamicConditionalControl = ({
6528
6873
  return { ...defaults, ...convertedSettings };
6529
6874
  }, [defaults, convertedSettings]);
6530
6875
  if (!propType?.dependencies?.terms.length) {
6531
- return /* @__PURE__ */ React97.createElement(React97.Fragment, null, children);
6876
+ return /* @__PURE__ */ React98.createElement(React98.Fragment, null, children);
6532
6877
  }
6533
6878
  const isHidden = !isDependencyMet3(propType?.dependencies, effectiveSettings).isMet;
6534
- return isHidden ? null : /* @__PURE__ */ React97.createElement(React97.Fragment, null, children);
6879
+ return isHidden ? null : /* @__PURE__ */ React98.createElement(React98.Fragment, null, children);
6535
6880
  };
6536
6881
 
6537
6882
  // src/dynamics/dynamic-control.tsx
@@ -6556,7 +6901,7 @@ var DynamicControl = ({ bind, children }) => {
6556
6901
  });
6557
6902
  };
6558
6903
  const propType = createTopLevelObjectType({ schema: dynamicTag.props_schema });
6559
- return /* @__PURE__ */ React98.createElement(PropProvider5, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React98.createElement(PropKeyProvider5, { bind }, /* @__PURE__ */ React98.createElement(
6904
+ return /* @__PURE__ */ React99.createElement(PropProvider5, { propType, setValue: setDynamicValue, value: { [bind]: dynamicValue } }, /* @__PURE__ */ React99.createElement(PropKeyProvider5, { bind }, /* @__PURE__ */ React99.createElement(
6560
6905
  DynamicConditionalControl,
6561
6906
  {
6562
6907
  propType: dynamicPropType,
@@ -6568,13 +6913,13 @@ var DynamicControl = ({ bind, children }) => {
6568
6913
  };
6569
6914
 
6570
6915
  // src/dynamics/components/dynamic-selection.tsx
6571
- import * as React99 from "react";
6572
- import { Fragment as Fragment16, useEffect as useEffect9, useState as useState10 } from "react";
6916
+ import * as React100 from "react";
6917
+ import { Fragment as Fragment16, useEffect as useEffect10, useState as useState10 } from "react";
6573
6918
  import { trackUpgradePromotionClick, trackViewPromotion, useBoundProp as useBoundProp11 } from "@elementor/editor-controls";
6574
6919
  import { CtaButton, PopoverHeader, PopoverMenuList, SearchField, SectionPopoverBody } from "@elementor/editor-ui";
6575
6920
  import { DatabaseIcon as DatabaseIcon2 } from "@elementor/icons";
6576
- import { Divider as Divider7, Link as Link2, Stack as Stack16, Typography as Typography6, useTheme as useTheme3 } from "@elementor/ui";
6577
- import { __ as __70 } from "@wordpress/i18n";
6921
+ import { Divider as Divider7, Link as Link2, Stack as Stack17, Typography as Typography6, useTheme as useTheme3 } from "@elementor/ui";
6922
+ import { __ as __73 } from "@wordpress/i18n";
6578
6923
  var SIZE2 = "tiny";
6579
6924
  var PROMO_TEXT_WIDTH = 170;
6580
6925
  var PRO_DYNAMIC_TAGS_URL = "https://go.elementor.com/go-pro-dynamic-tags-modal/";
@@ -6589,7 +6934,7 @@ var DynamicSelection = ({ close: closePopover, expired = false }) => {
6589
6934
  const isCurrentValueDynamic = !!dynamicValue;
6590
6935
  const options13 = useFilteredOptions(searchValue);
6591
6936
  const hasNoDynamicTags = !options13.length && !searchValue.trim();
6592
- useEffect9(() => {
6937
+ useEffect10(() => {
6593
6938
  if (hasNoDynamicTags) {
6594
6939
  trackViewPromotion({ target_name: "dynamic_tags" });
6595
6940
  } else if (expired) {
@@ -6621,19 +6966,19 @@ var DynamicSelection = ({ close: closePopover, expired = false }) => {
6621
6966
  ]);
6622
6967
  const getPopOverContent = () => {
6623
6968
  if (hasNoDynamicTags) {
6624
- return /* @__PURE__ */ React99.createElement(NoDynamicTags, null);
6969
+ return /* @__PURE__ */ React100.createElement(NoDynamicTags, null);
6625
6970
  }
6626
6971
  if (expired) {
6627
- return /* @__PURE__ */ React99.createElement(ExpiredDynamicTags, null);
6972
+ return /* @__PURE__ */ React100.createElement(ExpiredDynamicTags, null);
6628
6973
  }
6629
- return /* @__PURE__ */ React99.createElement(Fragment16, null, /* @__PURE__ */ React99.createElement(
6974
+ return /* @__PURE__ */ React100.createElement(Fragment16, null, /* @__PURE__ */ React100.createElement(
6630
6975
  SearchField,
6631
6976
  {
6632
6977
  value: searchValue,
6633
6978
  onSearch: handleSearch,
6634
- placeholder: __70("Search dynamic tags\u2026", "elementor")
6979
+ placeholder: __73("Search dynamic tags\u2026", "elementor")
6635
6980
  }
6636
- ), /* @__PURE__ */ React99.createElement(Divider7, null), /* @__PURE__ */ React99.createElement(
6981
+ ), /* @__PURE__ */ React100.createElement(Divider7, null), /* @__PURE__ */ React100.createElement(
6637
6982
  PopoverMenuList,
6638
6983
  {
6639
6984
  items: virtualizedItems,
@@ -6641,21 +6986,21 @@ var DynamicSelection = ({ close: closePopover, expired = false }) => {
6641
6986
  onClose: closePopover,
6642
6987
  selectedValue: dynamicValue?.name,
6643
6988
  itemStyle: (item) => item.type === "item" ? { paddingInlineStart: theme.spacing(3.5) } : {},
6644
- noResultsComponent: /* @__PURE__ */ React99.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") })
6989
+ noResultsComponent: /* @__PURE__ */ React100.createElement(NoResults, { searchValue, onClear: () => setSearchValue("") })
6645
6990
  }
6646
6991
  ));
6647
6992
  };
6648
- return /* @__PURE__ */ React99.createElement(SectionPopoverBody, { "aria-label": __70("Dynamic tags", "elementor") }, /* @__PURE__ */ React99.createElement(
6993
+ return /* @__PURE__ */ React100.createElement(SectionPopoverBody, { "aria-label": __73("Dynamic tags", "elementor") }, /* @__PURE__ */ React100.createElement(
6649
6994
  PopoverHeader,
6650
6995
  {
6651
- title: __70("Dynamic tags", "elementor"),
6996
+ title: __73("Dynamic tags", "elementor"),
6652
6997
  onClose: closePopover,
6653
- icon: /* @__PURE__ */ React99.createElement(DatabaseIcon2, { fontSize: SIZE2 })
6998
+ icon: /* @__PURE__ */ React100.createElement(DatabaseIcon2, { fontSize: SIZE2 })
6654
6999
  }
6655
7000
  ), getPopOverContent());
6656
7001
  };
6657
- var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React99.createElement(
6658
- Stack16,
7002
+ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React100.createElement(
7003
+ Stack17,
6659
7004
  {
6660
7005
  gap: 1,
6661
7006
  alignItems: "center",
@@ -6665,12 +7010,12 @@ var NoResults = ({ searchValue, onClear }) => /* @__PURE__ */ React99.createElem
6665
7010
  color: "text.secondary",
6666
7011
  sx: { pb: 3.5 }
6667
7012
  },
6668
- /* @__PURE__ */ React99.createElement(DatabaseIcon2, { fontSize: "large" }),
6669
- /* @__PURE__ */ React99.createElement(Typography6, { align: "center", variant: "subtitle2" }, __70("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React99.createElement("br", null), "\u201C", searchValue, "\u201D."),
6670
- /* @__PURE__ */ React99.createElement(Typography6, { align: "center", variant: "caption", sx: { display: "flex", flexDirection: "column" } }, __70("Try something else.", "elementor"), /* @__PURE__ */ React99.createElement(Link2, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __70("Clear & try again", "elementor")))
7013
+ /* @__PURE__ */ React100.createElement(DatabaseIcon2, { fontSize: "large" }),
7014
+ /* @__PURE__ */ React100.createElement(Typography6, { align: "center", variant: "subtitle2" }, __73("Sorry, nothing matched", "elementor"), /* @__PURE__ */ React100.createElement("br", null), "\u201C", searchValue, "\u201D."),
7015
+ /* @__PURE__ */ React100.createElement(Typography6, { align: "center", variant: "caption", sx: { display: "flex", flexDirection: "column" } }, __73("Try something else.", "elementor"), /* @__PURE__ */ React100.createElement(Link2, { color: "text.secondary", variant: "caption", component: "button", onClick: onClear }, __73("Clear & try again", "elementor")))
6671
7016
  );
6672
- var NoDynamicTags = () => /* @__PURE__ */ React99.createElement(React99.Fragment, null, /* @__PURE__ */ React99.createElement(Divider7, null), /* @__PURE__ */ React99.createElement(
6673
- Stack16,
7017
+ var NoDynamicTags = () => /* @__PURE__ */ React100.createElement(React100.Fragment, null, /* @__PURE__ */ React100.createElement(Divider7, null), /* @__PURE__ */ React100.createElement(
7018
+ Stack17,
6674
7019
  {
6675
7020
  gap: 1,
6676
7021
  alignItems: "center",
@@ -6680,10 +7025,10 @@ var NoDynamicTags = () => /* @__PURE__ */ React99.createElement(React99.Fragment
6680
7025
  color: "text.secondary",
6681
7026
  sx: { pb: 3.5 }
6682
7027
  },
6683
- /* @__PURE__ */ React99.createElement(DatabaseIcon2, { fontSize: "large" }),
6684
- /* @__PURE__ */ React99.createElement(Typography6, { align: "center", variant: "subtitle2" }, __70("Streamline your workflow with dynamic tags", "elementor")),
6685
- /* @__PURE__ */ React99.createElement(Typography6, { align: "center", variant: "caption", width: PROMO_TEXT_WIDTH }, __70("Upgrade now to display your content dynamically.", "elementor")),
6686
- /* @__PURE__ */ React99.createElement(
7028
+ /* @__PURE__ */ React100.createElement(DatabaseIcon2, { fontSize: "large" }),
7029
+ /* @__PURE__ */ React100.createElement(Typography6, { align: "center", variant: "subtitle2" }, __73("Streamline your workflow with dynamic tags", "elementor")),
7030
+ /* @__PURE__ */ React100.createElement(Typography6, { align: "center", variant: "caption", width: PROMO_TEXT_WIDTH }, __73("Upgrade now to display your content dynamically.", "elementor")),
7031
+ /* @__PURE__ */ React100.createElement(
6687
7032
  CtaButton,
6688
7033
  {
6689
7034
  size: "small",
@@ -6692,8 +7037,8 @@ var NoDynamicTags = () => /* @__PURE__ */ React99.createElement(React99.Fragment
6692
7037
  }
6693
7038
  )
6694
7039
  ));
6695
- var ExpiredDynamicTags = () => /* @__PURE__ */ React99.createElement(React99.Fragment, null, /* @__PURE__ */ React99.createElement(Divider7, null), /* @__PURE__ */ React99.createElement(
6696
- Stack16,
7040
+ var ExpiredDynamicTags = () => /* @__PURE__ */ React100.createElement(React100.Fragment, null, /* @__PURE__ */ React100.createElement(Divider7, null), /* @__PURE__ */ React100.createElement(
7041
+ Stack17,
6697
7042
  {
6698
7043
  gap: 1,
6699
7044
  alignItems: "center",
@@ -6703,16 +7048,16 @@ var ExpiredDynamicTags = () => /* @__PURE__ */ React99.createElement(React99.Fra
6703
7048
  color: "text.secondary",
6704
7049
  sx: { pb: 3.5 }
6705
7050
  },
6706
- /* @__PURE__ */ React99.createElement(DatabaseIcon2, { fontSize: "large" }),
6707
- /* @__PURE__ */ React99.createElement(Typography6, { align: "center", variant: "subtitle2" }, __70("Unlock your Dynamic tags again", "elementor")),
6708
- /* @__PURE__ */ React99.createElement(Typography6, { align: "center", variant: "caption", width: PROMO_TEXT_WIDTH }, __70("Dynamic tags need Elementor Pro. Renew now to keep them active.", "elementor")),
6709
- /* @__PURE__ */ React99.createElement(
7051
+ /* @__PURE__ */ React100.createElement(DatabaseIcon2, { fontSize: "large" }),
7052
+ /* @__PURE__ */ React100.createElement(Typography6, { align: "center", variant: "subtitle2" }, __73("Unlock your Dynamic tags again", "elementor")),
7053
+ /* @__PURE__ */ React100.createElement(Typography6, { align: "center", variant: "caption", width: PROMO_TEXT_WIDTH }, __73("Dynamic tags need Elementor Pro. Renew now to keep them active.", "elementor")),
7054
+ /* @__PURE__ */ React100.createElement(
6710
7055
  CtaButton,
6711
7056
  {
6712
7057
  size: "small",
6713
7058
  href: RENEW_DYNAMIC_TAGS_URL,
6714
7059
  onClick: () => trackUpgradePromotionClick({ target_name: "dynamic_tags" }),
6715
- children: __70("Renew Now", "elementor")
7060
+ children: __73("Renew Now", "elementor")
6716
7061
  }
6717
7062
  )
6718
7063
  ));
@@ -6749,7 +7094,7 @@ var DynamicSelectionControl = ({ OriginalControl, ...props }) => {
6749
7094
  const { name: tagName = "" } = value;
6750
7095
  const dynamicTag = useDynamicTag(tagName);
6751
7096
  if (!isDynamicTagSupported(tagName) && OriginalControl) {
6752
- return /* @__PURE__ */ React100.createElement(PropProvider6, { propType: originalPropType, value: { [bind]: null }, setValue: setAnyValue }, /* @__PURE__ */ React100.createElement(PropKeyProvider6, { bind }, /* @__PURE__ */ React100.createElement(OriginalControl, { ...props })));
7097
+ return /* @__PURE__ */ React101.createElement(PropProvider6, { propType: originalPropType, value: { [bind]: null }, setValue: setAnyValue }, /* @__PURE__ */ React101.createElement(PropKeyProvider6, { bind }, /* @__PURE__ */ React101.createElement(OriginalControl, { ...props })));
6753
7098
  }
6754
7099
  const removeDynamicTag = () => {
6755
7100
  setAnyValue(propValueFromHistory ?? null);
@@ -6757,25 +7102,25 @@ var DynamicSelectionControl = ({ OriginalControl, ...props }) => {
6757
7102
  if (!dynamicTag) {
6758
7103
  throw new Error(`Dynamic tag ${tagName} not found`);
6759
7104
  }
6760
- return /* @__PURE__ */ React100.createElement(Box8, null, /* @__PURE__ */ React100.createElement(
7105
+ return /* @__PURE__ */ React101.createElement(Box8, null, /* @__PURE__ */ React101.createElement(
6761
7106
  Tag,
6762
7107
  {
6763
7108
  fullWidth: true,
6764
7109
  showActionsOnHover: true,
6765
7110
  label: dynamicTag.label,
6766
- startIcon: /* @__PURE__ */ React100.createElement(DatabaseIcon3, { fontSize: SIZE3 }),
7111
+ startIcon: /* @__PURE__ */ React101.createElement(DatabaseIcon3, { fontSize: SIZE3 }),
6767
7112
  ...bindTrigger2(selectionPopoverState),
6768
- actions: /* @__PURE__ */ React100.createElement(React100.Fragment, null, /* @__PURE__ */ React100.createElement(DynamicSettingsPopover, { dynamicTag, disabled: readonly }), /* @__PURE__ */ React100.createElement(
7113
+ actions: /* @__PURE__ */ React101.createElement(React101.Fragment, null, /* @__PURE__ */ React101.createElement(DynamicSettingsPopover, { dynamicTag, disabled: readonly }), /* @__PURE__ */ React101.createElement(
6769
7114
  IconButton2,
6770
7115
  {
6771
7116
  size: SIZE3,
6772
7117
  onClick: removeDynamicTag,
6773
- "aria-label": __71("Remove dynamic value", "elementor")
7118
+ "aria-label": __74("Remove dynamic value", "elementor")
6774
7119
  },
6775
- /* @__PURE__ */ React100.createElement(XIcon, { fontSize: SIZE3 })
7120
+ /* @__PURE__ */ React101.createElement(XIcon, { fontSize: SIZE3 })
6776
7121
  ))
6777
7122
  }
6778
- ), /* @__PURE__ */ React100.createElement(
7123
+ ), /* @__PURE__ */ React101.createElement(
6779
7124
  Popover,
6780
7125
  {
6781
7126
  disablePortal: true,
@@ -6787,7 +7132,7 @@ var DynamicSelectionControl = ({ OriginalControl, ...props }) => {
6787
7132
  },
6788
7133
  ...bindPopover(selectionPopoverState)
6789
7134
  },
6790
- /* @__PURE__ */ React100.createElement(SectionPopoverBody2, { "aria-label": __71("Dynamic tags", "elementor") }, /* @__PURE__ */ React100.createElement(DynamicSelection, { close: selectionPopoverState.close, expired: readonly }))
7135
+ /* @__PURE__ */ React101.createElement(SectionPopoverBody2, { "aria-label": __74("Dynamic tags", "elementor") }, /* @__PURE__ */ React101.createElement(DynamicSelection, { close: selectionPopoverState.close, expired: readonly }))
6791
7136
  ));
6792
7137
  };
6793
7138
  var DynamicSettingsPopover = ({
@@ -6799,16 +7144,16 @@ var DynamicSettingsPopover = ({
6799
7144
  if (!hasDynamicSettings) {
6800
7145
  return null;
6801
7146
  }
6802
- return /* @__PURE__ */ React100.createElement(React100.Fragment, null, /* @__PURE__ */ React100.createElement(
7147
+ return /* @__PURE__ */ React101.createElement(React101.Fragment, null, /* @__PURE__ */ React101.createElement(
6803
7148
  IconButton2,
6804
7149
  {
6805
7150
  size: SIZE3,
6806
7151
  disabled,
6807
7152
  ...!disabled && bindTrigger2(popupState),
6808
- "aria-label": __71("Dynamic settings", "elementor")
7153
+ "aria-label": __74("Dynamic settings", "elementor")
6809
7154
  },
6810
- /* @__PURE__ */ React100.createElement(SettingsIcon, { fontSize: SIZE3 })
6811
- ), /* @__PURE__ */ React100.createElement(
7155
+ /* @__PURE__ */ React101.createElement(SettingsIcon, { fontSize: SIZE3 })
7156
+ ), /* @__PURE__ */ React101.createElement(
6812
7157
  Popover,
6813
7158
  {
6814
7159
  disablePortal: true,
@@ -6820,14 +7165,14 @@ var DynamicSettingsPopover = ({
6820
7165
  },
6821
7166
  ...bindPopover(popupState)
6822
7167
  },
6823
- /* @__PURE__ */ React100.createElement(SectionPopoverBody2, { "aria-label": __71("Dynamic settings", "elementor") }, /* @__PURE__ */ React100.createElement(
7168
+ /* @__PURE__ */ React101.createElement(SectionPopoverBody2, { "aria-label": __74("Dynamic settings", "elementor") }, /* @__PURE__ */ React101.createElement(
6824
7169
  PopoverHeader2,
6825
7170
  {
6826
7171
  title: dynamicTag.label,
6827
7172
  onClose: popupState.close,
6828
- icon: /* @__PURE__ */ React100.createElement(DatabaseIcon3, { fontSize: SIZE3 })
7173
+ icon: /* @__PURE__ */ React101.createElement(DatabaseIcon3, { fontSize: SIZE3 })
6829
7174
  }
6830
- ), /* @__PURE__ */ React100.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls, tagName: dynamicTag.name }))
7175
+ ), /* @__PURE__ */ React101.createElement(DynamicSettings, { controls: dynamicTag.atomic_controls, tagName: dynamicTag.name }))
6831
7176
  ));
6832
7177
  };
6833
7178
  var DynamicSettings = ({ controls, tagName }) => {
@@ -6838,9 +7183,9 @@ var DynamicSettings = ({ controls, tagName }) => {
6838
7183
  }
6839
7184
  if (tagsWithoutTabs.includes(tagName)) {
6840
7185
  const singleTab = tabs[0];
6841
- return /* @__PURE__ */ React100.createElement(React100.Fragment, null, /* @__PURE__ */ React100.createElement(Divider8, null), /* @__PURE__ */ React100.createElement(ControlsItemsStack, { items: singleTab.value.items }));
7186
+ return /* @__PURE__ */ React101.createElement(React101.Fragment, null, /* @__PURE__ */ React101.createElement(Divider8, null), /* @__PURE__ */ React101.createElement(ControlsItemsStack, { items: singleTab.value.items }));
6842
7187
  }
6843
- return /* @__PURE__ */ React100.createElement(React100.Fragment, null, tabs.length > 1 && /* @__PURE__ */ React100.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React100.createElement(
7188
+ return /* @__PURE__ */ React101.createElement(React101.Fragment, null, tabs.length > 1 && /* @__PURE__ */ React101.createElement(Tabs2, { size: "small", variant: "fullWidth", ...getTabsProps() }, tabs.map(({ value }, index) => /* @__PURE__ */ React101.createElement(
6844
7189
  Tab2,
6845
7190
  {
6846
7191
  key: index,
@@ -6848,15 +7193,15 @@ var DynamicSettings = ({ controls, tagName }) => {
6848
7193
  sx: { px: 1, py: 0.5 },
6849
7194
  ...getTabProps(index)
6850
7195
  }
6851
- ))), /* @__PURE__ */ React100.createElement(Divider8, null), tabs.map(({ value }, index) => {
6852
- return /* @__PURE__ */ React100.createElement(
7196
+ ))), /* @__PURE__ */ React101.createElement(Divider8, null), tabs.map(({ value }, index) => {
7197
+ return /* @__PURE__ */ React101.createElement(
6853
7198
  TabPanel2,
6854
7199
  {
6855
7200
  key: index,
6856
7201
  sx: { flexGrow: 1, py: 0, overflowY: "auto" },
6857
7202
  ...getTabPanelProps(index)
6858
7203
  },
6859
- /* @__PURE__ */ React100.createElement(ControlsItemsStack, { items: value.items })
7204
+ /* @__PURE__ */ React101.createElement(ControlsItemsStack, { items: value.items })
6860
7205
  );
6861
7206
  }));
6862
7207
  };
@@ -6898,11 +7243,11 @@ var Control2 = ({ control }) => {
6898
7243
  display: "grid",
6899
7244
  gridTemplateColumns: isSwitchControl ? "minmax(0, 1fr) max-content" : "1fr 1fr"
6900
7245
  } : {};
6901
- return /* @__PURE__ */ React100.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React100.createElement(Grid8, { container: true, gap: 0.75, sx: layoutStyleProps }, control.label ? /* @__PURE__ */ React100.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React100.createElement(ControlFormLabel4, null, control.label)) : null, /* @__PURE__ */ React100.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React100.createElement(Control, { type: control.type, props: controlProps }))));
7246
+ return /* @__PURE__ */ React101.createElement(DynamicControl, { bind: control.bind }, /* @__PURE__ */ React101.createElement(Grid8, { container: true, gap: 0.75, sx: layoutStyleProps }, control.label ? /* @__PURE__ */ React101.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React101.createElement(ControlFormLabel5, null, control.label)) : null, /* @__PURE__ */ React101.createElement(Grid8, { item: true, xs: 12 }, /* @__PURE__ */ React101.createElement(Control, { type: control.type, props: controlProps }))));
6902
7247
  };
6903
7248
  function ControlsItemsStack({ items: items3 }) {
6904
- return /* @__PURE__ */ React100.createElement(Stack17, { p: 2, gap: 2, sx: { overflowY: "auto" } }, items3.map(
6905
- (item) => item.type === "control" ? /* @__PURE__ */ React100.createElement(Control2, { key: item.value.bind, control: item.value }) : null
7249
+ return /* @__PURE__ */ React101.createElement(Stack18, { p: 2, gap: 2, sx: { overflowY: "auto" } }, items3.map(
7250
+ (item) => item.type === "control" ? /* @__PURE__ */ React101.createElement(Control2, { key: item.value.bind, control: item.value }) : null
6906
7251
  ));
6907
7252
  }
6908
7253
 
@@ -6959,18 +7304,18 @@ function getDynamicValue(name, settings, renderPostId) {
6959
7304
  }
6960
7305
 
6961
7306
  // src/dynamics/hooks/use-prop-dynamic-action.tsx
6962
- import * as React101 from "react";
7307
+ import * as React102 from "react";
6963
7308
  import { useBoundProp as useBoundProp13 } from "@elementor/editor-controls";
6964
7309
  import { DatabaseIcon as DatabaseIcon4 } from "@elementor/icons";
6965
- import { __ as __72 } from "@wordpress/i18n";
7310
+ import { __ as __75 } from "@wordpress/i18n";
6966
7311
  var usePropDynamicAction = () => {
6967
7312
  const { propType } = useBoundProp13();
6968
7313
  const visible = !!propType && supportsDynamic(propType);
6969
7314
  return {
6970
7315
  visible,
6971
7316
  icon: DatabaseIcon4,
6972
- title: __72("Dynamic tags", "elementor"),
6973
- content: ({ close }) => /* @__PURE__ */ React101.createElement(DynamicSelection, { close })
7317
+ title: __75("Dynamic tags", "elementor"),
7318
+ content: ({ close }) => /* @__PURE__ */ React102.createElement(DynamicSelection, { close })
6974
7319
  };
6975
7320
  };
6976
7321
 
@@ -7005,7 +7350,7 @@ import { useBoundProp as useBoundProp14 } from "@elementor/editor-controls";
7005
7350
  import { hasVariable as hasVariable2 } from "@elementor/editor-variables";
7006
7351
  import { BrushBigIcon } from "@elementor/icons";
7007
7352
  import { controlActionsMenu as controlActionsMenu3 } from "@elementor/menus";
7008
- import { __ as __73 } from "@wordpress/i18n";
7353
+ import { __ as __76 } from "@wordpress/i18n";
7009
7354
 
7010
7355
  // src/utils/is-equal.ts
7011
7356
  function isEqual(a, b) {
@@ -7081,22 +7426,22 @@ function useResetStyleValueProps() {
7081
7426
  const visible = calculateVisibility();
7082
7427
  return {
7083
7428
  visible,
7084
- title: __73("Clear", "elementor"),
7429
+ title: __76("Clear", "elementor"),
7085
7430
  icon: BrushBigIcon,
7086
7431
  onClick: () => resetValue()
7087
7432
  };
7088
7433
  }
7089
7434
 
7090
7435
  // src/styles-inheritance/components/styles-inheritance-indicator.tsx
7091
- import * as React107 from "react";
7436
+ import * as React108 from "react";
7092
7437
  import { useBoundProp as useBoundProp15 } from "@elementor/editor-controls";
7093
7438
  import { isEmpty as isEmpty3 } from "@elementor/editor-props";
7094
7439
  import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY4 } from "@elementor/editor-styles-repository";
7095
- import { __ as __77 } from "@wordpress/i18n";
7440
+ import { __ as __80 } from "@wordpress/i18n";
7096
7441
 
7097
7442
  // src/styles-inheritance/components/styles-inheritance-infotip.tsx
7098
- import * as React106 from "react";
7099
- import { useMemo as useMemo14, useRef as useRef20, useState as useState12 } from "react";
7443
+ import * as React107 from "react";
7444
+ import { useMemo as useMemo14, useRef as useRef21, useState as useState12 } from "react";
7100
7445
  import {
7101
7446
  createPropsResolver as createPropsResolver2,
7102
7447
  stylesInheritanceTransformersRegistry
@@ -7110,31 +7455,31 @@ import {
7110
7455
  ClickAwayListener,
7111
7456
  IconButton as IconButton3,
7112
7457
  Infotip as Infotip3,
7113
- Stack as Stack18,
7458
+ Stack as Stack19,
7114
7459
  Tooltip as Tooltip7
7115
7460
  } from "@elementor/ui";
7116
- import { __ as __76 } from "@wordpress/i18n";
7461
+ import { __ as __79 } from "@wordpress/i18n";
7117
7462
 
7118
7463
  // src/styles-inheritance/hooks/use-normalized-inheritance-chain-items.tsx
7119
- import { isValidElement, useEffect as useEffect10, useState as useState11 } from "react";
7464
+ import { isValidElement, useEffect as useEffect11, useState as useState11 } from "react";
7120
7465
  import { UnknownStyleStateError } from "@elementor/editor-canvas";
7121
7466
  import {
7122
7467
  isClassState as isClassState2,
7123
7468
  isPseudoState
7124
7469
  } from "@elementor/editor-styles";
7125
7470
  import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY2 } from "@elementor/editor-styles-repository";
7126
- import { __ as __74 } from "@wordpress/i18n";
7471
+ import { __ as __77 } from "@wordpress/i18n";
7127
7472
  var MAXIMUM_ITEMS = 2;
7128
7473
  var useNormalizedInheritanceChainItems = (inheritanceChain, bind, resolve) => {
7129
7474
  const [items3, setItems] = useState11([]);
7130
- useEffect10(() => {
7475
+ useEffect11(() => {
7131
7476
  (async () => {
7132
7477
  const normalizedItems = await Promise.all(
7133
7478
  inheritanceChain.filter(({ style }) => style).map((item, index) => normalizeInheritanceItem(item, index, bind, resolve))
7134
7479
  );
7135
7480
  const validItems = normalizedItems.map((item) => ({
7136
7481
  ...item,
7137
- displayLabel: ELEMENTS_BASE_STYLES_PROVIDER_KEY2 !== item.provider ? item.displayLabel : __74("Base", "elementor")
7482
+ displayLabel: ELEMENTS_BASE_STYLES_PROVIDER_KEY2 !== item.provider ? item.displayLabel : __77("Base", "elementor")
7138
7483
  })).filter((item) => !item.value || item.displayLabel !== "").slice(0, MAXIMUM_ITEMS);
7139
7484
  setItems(validItems);
7140
7485
  })();
@@ -7191,7 +7536,7 @@ var getTransformedValue = async (item, bind, resolve) => {
7191
7536
  };
7192
7537
 
7193
7538
  // src/styles-inheritance/components/infotip/breakpoint-icon.tsx
7194
- import * as React102 from "react";
7539
+ import * as React103 from "react";
7195
7540
  import { useBreakpoints } from "@elementor/editor-responsive";
7196
7541
  import {
7197
7542
  DesktopIcon,
@@ -7222,20 +7567,20 @@ var BreakpointIcon = ({ breakpoint }) => {
7222
7567
  return null;
7223
7568
  }
7224
7569
  const breakpointLabel = breakpoints.find((breakpointItem) => breakpointItem.id === currentBreakpoint)?.label;
7225
- return /* @__PURE__ */ React102.createElement(Tooltip4, { title: breakpointLabel, placement: "top" }, /* @__PURE__ */ React102.createElement(IconComponent, { fontSize: SIZE4, sx: { mt: "2px" } }));
7570
+ return /* @__PURE__ */ React103.createElement(Tooltip4, { title: breakpointLabel, placement: "top" }, /* @__PURE__ */ React103.createElement(IconComponent, { fontSize: SIZE4, sx: { mt: "2px" } }));
7226
7571
  };
7227
7572
 
7228
7573
  // src/styles-inheritance/components/infotip/label-chip.tsx
7229
- import * as React103 from "react";
7574
+ import * as React104 from "react";
7230
7575
  import { ELEMENTS_BASE_STYLES_PROVIDER_KEY as ELEMENTS_BASE_STYLES_PROVIDER_KEY3 } from "@elementor/editor-styles-repository";
7231
7576
  import { InfoCircleIcon as InfoCircleIcon2 } from "@elementor/icons";
7232
7577
  import { Chip as Chip5, Tooltip as Tooltip5 } from "@elementor/ui";
7233
- import { __ as __75 } from "@wordpress/i18n";
7578
+ import { __ as __78 } from "@wordpress/i18n";
7234
7579
  var SIZE5 = "tiny";
7235
7580
  var LabelChip = ({ displayLabel, provider }) => {
7236
7581
  const isBaseStyle = provider === ELEMENTS_BASE_STYLES_PROVIDER_KEY3;
7237
- const chipIcon = isBaseStyle ? /* @__PURE__ */ React103.createElement(Tooltip5, { title: __75("Inherited from base styles", "elementor"), placement: "top" }, /* @__PURE__ */ React103.createElement(InfoCircleIcon2, { fontSize: SIZE5 })) : void 0;
7238
- return /* @__PURE__ */ React103.createElement(
7582
+ const chipIcon = isBaseStyle ? /* @__PURE__ */ React104.createElement(Tooltip5, { title: __78("Inherited from base styles", "elementor"), placement: "top" }, /* @__PURE__ */ React104.createElement(InfoCircleIcon2, { fontSize: SIZE5 })) : void 0;
7583
+ return /* @__PURE__ */ React104.createElement(
7239
7584
  Chip5,
7240
7585
  {
7241
7586
  label: displayLabel,
@@ -7261,10 +7606,10 @@ var LabelChip = ({ displayLabel, provider }) => {
7261
7606
  };
7262
7607
 
7263
7608
  // src/styles-inheritance/components/infotip/value-component.tsx
7264
- import * as React104 from "react";
7609
+ import * as React105 from "react";
7265
7610
  import { Tooltip as Tooltip6, Typography as Typography7 } from "@elementor/ui";
7266
7611
  var ValueComponent = ({ index, value }) => {
7267
- return /* @__PURE__ */ React104.createElement(Tooltip6, { title: value, placement: "top" }, /* @__PURE__ */ React104.createElement(
7612
+ return /* @__PURE__ */ React105.createElement(Tooltip6, { title: value, placement: "top" }, /* @__PURE__ */ React105.createElement(
7268
7613
  Typography7,
7269
7614
  {
7270
7615
  variant: "caption",
@@ -7286,9 +7631,9 @@ var ValueComponent = ({ index, value }) => {
7286
7631
  };
7287
7632
 
7288
7633
  // src/styles-inheritance/components/infotip/action-icons.tsx
7289
- import * as React105 from "react";
7634
+ import * as React106 from "react";
7290
7635
  import { Box as Box9 } from "@elementor/ui";
7291
- var ActionIcons = () => /* @__PURE__ */ React105.createElement(Box9, { display: "flex", gap: 0.5, alignItems: "center" });
7636
+ var ActionIcons = () => /* @__PURE__ */ React106.createElement(Box9, { display: "flex", gap: 0.5, alignItems: "center" });
7292
7637
 
7293
7638
  // src/styles-inheritance/components/styles-inheritance-infotip.tsx
7294
7639
  var SECTION_PADDING_INLINE = 32;
@@ -7302,7 +7647,7 @@ var StylesInheritanceInfotip = ({
7302
7647
  isDisabled
7303
7648
  }) => {
7304
7649
  const [showInfotip, setShowInfotip] = useState12(false);
7305
- const triggerRef = useRef20(null);
7650
+ const triggerRef = useRef21(null);
7306
7651
  const toggleInfotip = () => {
7307
7652
  if (isDisabled) {
7308
7653
  return;
@@ -7324,7 +7669,7 @@ var StylesInheritanceInfotip = ({
7324
7669
  });
7325
7670
  }, [key, propType]);
7326
7671
  const items3 = useNormalizedInheritanceChainItems(inheritanceChain, key, resolve);
7327
- const infotipContent = /* @__PURE__ */ React106.createElement(ClickAwayListener, { onClickAway: closeInfotip }, /* @__PURE__ */ React106.createElement(
7672
+ const infotipContent = /* @__PURE__ */ React107.createElement(ClickAwayListener, { onClickAway: closeInfotip }, /* @__PURE__ */ React107.createElement(
7328
7673
  Card,
7329
7674
  {
7330
7675
  elevation: 0,
@@ -7337,7 +7682,7 @@ var StylesInheritanceInfotip = ({
7337
7682
  flexDirection: "column"
7338
7683
  }
7339
7684
  },
7340
- /* @__PURE__ */ React106.createElement(
7685
+ /* @__PURE__ */ React107.createElement(
7341
7686
  Box10,
7342
7687
  {
7343
7688
  sx: {
@@ -7347,9 +7692,9 @@ var StylesInheritanceInfotip = ({
7347
7692
  backgroundColor: "background.paper"
7348
7693
  }
7349
7694
  },
7350
- /* @__PURE__ */ React106.createElement(PopoverHeader3, { title: __76("Style origin", "elementor"), onClose: closeInfotip })
7695
+ /* @__PURE__ */ React107.createElement(PopoverHeader3, { title: __79("Style origin", "elementor"), onClose: closeInfotip })
7351
7696
  ),
7352
- /* @__PURE__ */ React106.createElement(
7697
+ /* @__PURE__ */ React107.createElement(
7353
7698
  CardContent,
7354
7699
  {
7355
7700
  sx: {
@@ -7363,39 +7708,39 @@ var StylesInheritanceInfotip = ({
7363
7708
  }
7364
7709
  }
7365
7710
  },
7366
- /* @__PURE__ */ React106.createElement(Stack18, { gap: 1.5, sx: { pl: 2, pr: 1, pt: 1.5, pb: 1.5 }, role: "list" }, items3.map((item, index) => {
7367
- return /* @__PURE__ */ React106.createElement(
7711
+ /* @__PURE__ */ React107.createElement(Stack19, { gap: 1.5, sx: { pl: 2, pr: 1, pt: 1.5, pb: 1.5 }, role: "list" }, items3.map((item, index) => {
7712
+ return /* @__PURE__ */ React107.createElement(
7368
7713
  Box10,
7369
7714
  {
7370
7715
  key: item.id,
7371
7716
  display: "flex",
7372
7717
  gap: 0.5,
7373
7718
  role: "listitem",
7374
- "aria-label": __76("Inheritance item: %s", "elementor").replace(
7719
+ "aria-label": __79("Inheritance item: %s", "elementor").replace(
7375
7720
  "%s",
7376
7721
  item.displayLabel
7377
7722
  )
7378
7723
  },
7379
- /* @__PURE__ */ React106.createElement(
7724
+ /* @__PURE__ */ React107.createElement(
7380
7725
  Box10,
7381
7726
  {
7382
7727
  display: "flex",
7383
7728
  gap: 0.5,
7384
7729
  sx: { flexWrap: "wrap", width: "100%", alignItems: "flex-start" }
7385
7730
  },
7386
- /* @__PURE__ */ React106.createElement(BreakpointIcon, { breakpoint: item.breakpoint }),
7387
- /* @__PURE__ */ React106.createElement(LabelChip, { displayLabel: item.displayLabel, provider: item.provider }),
7388
- /* @__PURE__ */ React106.createElement(ValueComponent, { index, value: item.value })
7731
+ /* @__PURE__ */ React107.createElement(BreakpointIcon, { breakpoint: item.breakpoint }),
7732
+ /* @__PURE__ */ React107.createElement(LabelChip, { displayLabel: item.displayLabel, provider: item.provider }),
7733
+ /* @__PURE__ */ React107.createElement(ValueComponent, { index, value: item.value })
7389
7734
  ),
7390
- /* @__PURE__ */ React106.createElement(ActionIcons, null)
7735
+ /* @__PURE__ */ React107.createElement(ActionIcons, null)
7391
7736
  );
7392
7737
  }))
7393
7738
  )
7394
7739
  ));
7395
7740
  if (isDisabled) {
7396
- return /* @__PURE__ */ React106.createElement(Box10, { sx: { display: "inline-flex" } }, children);
7741
+ return /* @__PURE__ */ React107.createElement(Box10, { sx: { display: "inline-flex" } }, children);
7397
7742
  }
7398
- return /* @__PURE__ */ React106.createElement(Box10, { ref: triggerRef, sx: { display: "inline-flex" } }, /* @__PURE__ */ React106.createElement(
7743
+ return /* @__PURE__ */ React107.createElement(Box10, { ref: triggerRef, sx: { display: "inline-flex" } }, /* @__PURE__ */ React107.createElement(
7399
7744
  TooltipOrInfotip,
7400
7745
  {
7401
7746
  showInfotip,
@@ -7403,7 +7748,7 @@ var StylesInheritanceInfotip = ({
7403
7748
  infotipContent,
7404
7749
  isDisabled
7405
7750
  },
7406
- /* @__PURE__ */ React106.createElement(
7751
+ /* @__PURE__ */ React107.createElement(
7407
7752
  IconButton3,
7408
7753
  {
7409
7754
  onClick: toggleInfotip,
@@ -7423,10 +7768,10 @@ function TooltipOrInfotip({
7423
7768
  isDisabled
7424
7769
  }) {
7425
7770
  if (isDisabled) {
7426
- return /* @__PURE__ */ React106.createElement(Box10, { sx: { display: "inline-flex" } }, children);
7771
+ return /* @__PURE__ */ React107.createElement(Box10, { sx: { display: "inline-flex" } }, children);
7427
7772
  }
7428
7773
  if (showInfotip) {
7429
- return /* @__PURE__ */ React106.createElement(React106.Fragment, null, /* @__PURE__ */ React106.createElement(
7774
+ return /* @__PURE__ */ React107.createElement(React107.Fragment, null, /* @__PURE__ */ React107.createElement(
7430
7775
  Backdrop,
7431
7776
  {
7432
7777
  open: showInfotip,
@@ -7436,7 +7781,7 @@ function TooltipOrInfotip({
7436
7781
  zIndex: (theme) => theme.zIndex.modal - 1
7437
7782
  }
7438
7783
  }
7439
- ), /* @__PURE__ */ React106.createElement(
7784
+ ), /* @__PURE__ */ React107.createElement(
7440
7785
  Infotip3,
7441
7786
  {
7442
7787
  placement: "top-end",
@@ -7448,7 +7793,7 @@ function TooltipOrInfotip({
7448
7793
  children
7449
7794
  ));
7450
7795
  }
7451
- return /* @__PURE__ */ React106.createElement(Tooltip7, { title: __76("Style origin", "elementor"), placement: "top" }, children);
7796
+ return /* @__PURE__ */ React107.createElement(Tooltip7, { title: __79("Style origin", "elementor"), placement: "top" }, children);
7452
7797
  }
7453
7798
 
7454
7799
  // src/styles-inheritance/components/styles-inheritance-indicator.tsx
@@ -7461,7 +7806,7 @@ var StylesInheritanceIndicator = ({
7461
7806
  if (!path || !inheritanceChain.length) {
7462
7807
  return null;
7463
7808
  }
7464
- return /* @__PURE__ */ React107.createElement(Indicator, { inheritanceChain, path, propType });
7809
+ return /* @__PURE__ */ React108.createElement(Indicator, { inheritanceChain, path, propType });
7465
7810
  };
7466
7811
  var Indicator = ({ inheritanceChain, path, propType, isDisabled }) => {
7467
7812
  const { id: currentStyleId, provider: currentStyleProvider, meta: currentStyleMeta } = useStyle();
@@ -7477,7 +7822,7 @@ var Indicator = ({ inheritanceChain, path, propType, isDisabled }) => {
7477
7822
  getColor: isFinalValue && currentStyleProvider ? getStylesProviderThemeColor(currentStyleProvider.getKey()) : void 0,
7478
7823
  isOverridden: hasValue && !isFinalValue ? true : void 0
7479
7824
  };
7480
- return /* @__PURE__ */ React107.createElement(
7825
+ return /* @__PURE__ */ React108.createElement(
7481
7826
  StylesInheritanceInfotip,
7482
7827
  {
7483
7828
  inheritanceChain,
@@ -7486,17 +7831,17 @@ var Indicator = ({ inheritanceChain, path, propType, isDisabled }) => {
7486
7831
  label,
7487
7832
  isDisabled
7488
7833
  },
7489
- /* @__PURE__ */ React107.createElement(StyleIndicator, { ...styleIndicatorProps })
7834
+ /* @__PURE__ */ React108.createElement(StyleIndicator, { ...styleIndicatorProps })
7490
7835
  );
7491
7836
  };
7492
7837
  var getLabel = ({ isFinalValue, hasValue }) => {
7493
7838
  if (isFinalValue) {
7494
- return __77("This is the final value", "elementor");
7839
+ return __80("This is the final value", "elementor");
7495
7840
  }
7496
7841
  if (hasValue) {
7497
- return __77("This value is overridden by another style", "elementor");
7842
+ return __80("This value is overridden by another style", "elementor");
7498
7843
  }
7499
- return __77("This has value from another style", "elementor");
7844
+ return __80("This has value from another style", "elementor");
7500
7845
  };
7501
7846
 
7502
7847
  // src/styles-inheritance/init-styles-inheritance-transformers.ts
@@ -7521,7 +7866,7 @@ var excludePropTypeTransformers = /* @__PURE__ */ new Set([
7521
7866
  ]);
7522
7867
 
7523
7868
  // src/styles-inheritance/transformers/array-transformer.tsx
7524
- import * as React108 from "react";
7869
+ import * as React109 from "react";
7525
7870
  import { createTransformer as createTransformer2 } from "@elementor/editor-canvas";
7526
7871
  var arrayTransformer = createTransformer2((values) => {
7527
7872
  if (!values || values.length === 0) {
@@ -7531,16 +7876,16 @@ var arrayTransformer = createTransformer2((values) => {
7531
7876
  if (allStrings) {
7532
7877
  return values.join(" ");
7533
7878
  }
7534
- return /* @__PURE__ */ React108.createElement(React108.Fragment, null, values.map((item, index) => /* @__PURE__ */ React108.createElement(React108.Fragment, { key: index }, index > 0 && " ", item)));
7879
+ return /* @__PURE__ */ React109.createElement(React109.Fragment, null, values.map((item, index) => /* @__PURE__ */ React109.createElement(React109.Fragment, { key: index }, index > 0 && " ", item)));
7535
7880
  });
7536
7881
 
7537
7882
  // src/styles-inheritance/transformers/background-color-overlay-transformer.tsx
7538
- import * as React109 from "react";
7883
+ import * as React110 from "react";
7539
7884
  import { createTransformer as createTransformer3 } from "@elementor/editor-canvas";
7540
- import { Stack as Stack19, styled as styled7, UnstableColorIndicator } from "@elementor/ui";
7541
- var backgroundColorOverlayTransformer = createTransformer3((value) => /* @__PURE__ */ React109.createElement(Stack19, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React109.createElement(ItemLabelColor, { value })));
7885
+ import { Stack as Stack20, styled as styled7, UnstableColorIndicator } from "@elementor/ui";
7886
+ var backgroundColorOverlayTransformer = createTransformer3((value) => /* @__PURE__ */ React110.createElement(Stack20, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React110.createElement(ItemLabelColor, { value })));
7542
7887
  var ItemLabelColor = ({ value: { color } }) => {
7543
- return /* @__PURE__ */ React109.createElement("span", null, color);
7888
+ return /* @__PURE__ */ React110.createElement("span", null, color);
7544
7889
  };
7545
7890
  var StyledUnstableColorIndicator = styled7(UnstableColorIndicator)(({ theme }) => ({
7546
7891
  width: "1em",
@@ -7551,20 +7896,20 @@ var StyledUnstableColorIndicator = styled7(UnstableColorIndicator)(({ theme }) =
7551
7896
  }));
7552
7897
 
7553
7898
  // src/styles-inheritance/transformers/background-gradient-overlay-transformer.tsx
7554
- import * as React110 from "react";
7899
+ import * as React111 from "react";
7555
7900
  import { createTransformer as createTransformer4 } from "@elementor/editor-canvas";
7556
- import { Stack as Stack20 } from "@elementor/ui";
7557
- import { __ as __78 } from "@wordpress/i18n";
7558
- var backgroundGradientOverlayTransformer = createTransformer4((value) => /* @__PURE__ */ React110.createElement(Stack20, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React110.createElement(ItemIconGradient, { value }), /* @__PURE__ */ React110.createElement(ItemLabelGradient, { value })));
7901
+ import { Stack as Stack21 } from "@elementor/ui";
7902
+ import { __ as __81 } from "@wordpress/i18n";
7903
+ var backgroundGradientOverlayTransformer = createTransformer4((value) => /* @__PURE__ */ React111.createElement(Stack21, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React111.createElement(ItemIconGradient, { value }), /* @__PURE__ */ React111.createElement(ItemLabelGradient, { value })));
7559
7904
  var ItemIconGradient = ({ value }) => {
7560
7905
  const gradient = getGradientValue(value);
7561
- return /* @__PURE__ */ React110.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
7906
+ return /* @__PURE__ */ React111.createElement(StyledUnstableColorIndicator, { size: "inherit", component: "span", value: gradient });
7562
7907
  };
7563
7908
  var ItemLabelGradient = ({ value }) => {
7564
7909
  if (value.type === "linear") {
7565
- return /* @__PURE__ */ React110.createElement("span", null, __78("Linear gradient", "elementor"));
7910
+ return /* @__PURE__ */ React111.createElement("span", null, __81("Linear gradient", "elementor"));
7566
7911
  }
7567
- return /* @__PURE__ */ React110.createElement("span", null, __78("Radial gradient", "elementor"));
7912
+ return /* @__PURE__ */ React111.createElement("span", null, __81("Radial gradient", "elementor"));
7568
7913
  };
7569
7914
  var getGradientValue = (gradient) => {
7570
7915
  const stops = gradient.stops?.map(({ color, offset }) => `${color} ${offset ?? 0}%`)?.join(",");
@@ -7575,15 +7920,15 @@ var getGradientValue = (gradient) => {
7575
7920
  };
7576
7921
 
7577
7922
  // src/styles-inheritance/transformers/background-image-overlay-transformer.tsx
7578
- import * as React111 from "react";
7923
+ import * as React112 from "react";
7579
7924
  import { createTransformer as createTransformer5 } from "@elementor/editor-canvas";
7580
7925
  import { EllipsisWithTooltip as EllipsisWithTooltip2 } from "@elementor/editor-ui";
7581
- import { CardMedia, Stack as Stack21 } from "@elementor/ui";
7926
+ import { CardMedia, Stack as Stack22 } from "@elementor/ui";
7582
7927
  import { useWpMediaAttachment } from "@elementor/wp-media";
7583
- var backgroundImageOverlayTransformer = createTransformer5((value) => /* @__PURE__ */ React111.createElement(Stack21, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React111.createElement(ItemIconImage, { value }), /* @__PURE__ */ React111.createElement(ItemLabelImage, { value })));
7928
+ var backgroundImageOverlayTransformer = createTransformer5((value) => /* @__PURE__ */ React112.createElement(Stack22, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React112.createElement(ItemIconImage, { value }), /* @__PURE__ */ React112.createElement(ItemLabelImage, { value })));
7584
7929
  var ItemIconImage = ({ value }) => {
7585
7930
  const { imageUrl } = useImage(value);
7586
- return /* @__PURE__ */ React111.createElement(
7931
+ return /* @__PURE__ */ React112.createElement(
7587
7932
  CardMedia,
7588
7933
  {
7589
7934
  image: imageUrl,
@@ -7599,7 +7944,7 @@ var ItemIconImage = ({ value }) => {
7599
7944
  };
7600
7945
  var ItemLabelImage = ({ value }) => {
7601
7946
  const { imageTitle } = useImage(value);
7602
- return /* @__PURE__ */ React111.createElement(EllipsisWithTooltip2, { title: imageTitle }, /* @__PURE__ */ React111.createElement("span", null, imageTitle));
7947
+ return /* @__PURE__ */ React112.createElement(EllipsisWithTooltip2, { title: imageTitle }, /* @__PURE__ */ React112.createElement("span", null, imageTitle));
7603
7948
  };
7604
7949
  var useImage = (image) => {
7605
7950
  let imageTitle, imageUrl = null;
@@ -7624,7 +7969,7 @@ var getFileExtensionFromFilename = (filename) => {
7624
7969
  };
7625
7970
 
7626
7971
  // src/styles-inheritance/transformers/box-shadow-transformer.tsx
7627
- import * as React112 from "react";
7972
+ import * as React113 from "react";
7628
7973
  import { createTransformer as createTransformer6 } from "@elementor/editor-canvas";
7629
7974
  var boxShadowTransformer = createTransformer6((value) => {
7630
7975
  if (!value) {
@@ -7634,13 +7979,13 @@ var boxShadowTransformer = createTransformer6((value) => {
7634
7979
  const colorValue = color || "#000000";
7635
7980
  const sizes = [hOffset || "0px", vOffset || "0px", blur || "10px", spread || "0px"].join(" ");
7636
7981
  const positionValue = position || "outset";
7637
- return /* @__PURE__ */ React112.createElement(React112.Fragment, null, colorValue, " ", positionValue, ", ", sizes);
7982
+ return /* @__PURE__ */ React113.createElement(React113.Fragment, null, colorValue, " ", positionValue, ", ", sizes);
7638
7983
  });
7639
7984
 
7640
7985
  // src/styles-inheritance/transformers/color-transformer.tsx
7641
- import * as React113 from "react";
7986
+ import * as React114 from "react";
7642
7987
  import { createTransformer as createTransformer7 } from "@elementor/editor-canvas";
7643
- import { Stack as Stack22, styled as styled8, UnstableColorIndicator as UnstableColorIndicator2 } from "@elementor/ui";
7988
+ import { Stack as Stack23, styled as styled8, UnstableColorIndicator as UnstableColorIndicator2 } from "@elementor/ui";
7644
7989
  function isValidCSSColor(value) {
7645
7990
  if (!value.trim()) {
7646
7991
  return false;
@@ -7658,7 +8003,7 @@ var colorTransformer = createTransformer7((value) => {
7658
8003
  if (!isValidCSSColor(value)) {
7659
8004
  return value;
7660
8005
  }
7661
- return /* @__PURE__ */ React113.createElement(Stack22, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React113.createElement(StyledColorIndicator, { size: "inherit", component: "span", value }), /* @__PURE__ */ React113.createElement("span", null, value));
8006
+ return /* @__PURE__ */ React114.createElement(Stack23, { direction: "row", gap: 1, alignItems: "center" }, /* @__PURE__ */ React114.createElement(StyledColorIndicator, { size: "inherit", component: "span", value }), /* @__PURE__ */ React114.createElement("span", null, value));
7662
8007
  });
7663
8008
 
7664
8009
  // src/styles-inheritance/transformers/repeater-to-items-transformer.tsx